From 5dc9b66ba366725e6edeb18f6dc86ab5cf70c98e Mon Sep 17 00:00:00 2001 From: Henry <Henry> Date: Wed, 13 Oct 2010 13:09:24 +0100 Subject: [PATCH] New Courant number now implemented in most solvers CHT solvers still to do --- .../solvers/combustion/PDRFoam/StCourantNo.H | 13 ++++------ .../adjointContinuityErrs.H | 4 ++-- .../shallowWaterFoam/CourantNo.H | 24 +++++++++---------- .../multiphase/cavitatingFoam/CourantNo.H | 20 +++++++++------- .../multiphase/interFoam/alphaCourantNo.H | 4 ++-- .../solvers/multiphase/interFoam/setDeltaT.H | 4 ++-- .../interMixingFoam/alphaCourantNo.H | 18 ++++++-------- .../multiphaseInterFoam/alphaCourantNo.H | 13 +++++----- .../multiphaseMixture/multiphaseMixture.C | 9 ++++--- .../multiphaseMixture/multiphaseMixture.H | 2 +- .../multiphase/twoPhaseEulerFoam/CourantNos.H | 7 +++--- src/dynamicFvMesh/include/meshCourantNo.H | 11 ++++----- .../compressible/compressibleCourantNo.H | 4 ++-- .../cfdTools/incompressible/CourantNo.H | 4 ++-- 14 files changed, 64 insertions(+), 73 deletions(-) diff --git a/applications/solvers/combustion/PDRFoam/StCourantNo.H b/applications/solvers/combustion/PDRFoam/StCourantNo.H index f755bb217be..8fac05d81c0 100644 --- a/applications/solvers/combustion/PDRFoam/StCourantNo.H +++ b/applications/solvers/combustion/PDRFoam/StCourantNo.H @@ -34,17 +34,14 @@ Description if (mesh.nInternalFaces()) { - surfaceScalarField SfUfbyDelta = - mesh.surfaceInterpolation::deltaCoeffs() - *mag(phiSt/fvc::interpolate(rho)); + scalarField sumPhi = + fvc::surfaceSum(mag(phiSt))().internalField() + /rho.internalField(); - StCoNum = - max(SfUfbyDelta/mesh.magSf()).value() - *runTime.deltaTValue(); + StCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); meanStCoNum = - (sum(SfUfbyDelta)/sum(mesh.magSf())).value() - *runTime.deltaTValue(); + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "St courant Number mean: " << meanStCoNum diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointContinuityErrs.H b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointContinuityErrs.H index 1023a26c702..d4d72cf6eff 100644 --- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointContinuityErrs.H +++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointContinuityErrs.H @@ -30,10 +30,10 @@ Description \*---------------------------------------------------------------------------*/ { - scalar sumLocalContErr = runTime.deltaT().value()* + scalar sumLocalContErr = runTime.deltaTValue()* mag(fvc::div(phia))().weightedAverage(mesh.V()).value(); - scalar globalContErr = runTime.deltaT().value()* + scalar globalContErr = runTime.deltaTValue()* fvc::div(phia)().weightedAverage(mesh.V()).value(); cumulativeContErr += globalContErr; diff --git a/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H b/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H index 65cd8e02cce..0dfa24316f2 100644 --- a/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H +++ b/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H @@ -36,23 +36,23 @@ scalar waveCoNum = 0.0; if (mesh.nInternalFaces()) { - surfaceScalarField SfUfbyDelta = - mesh.surfaceInterpolation::deltaCoeffs() - *mag(phi)/fvc::interpolate(h); + scalarField sumPhi = + fvc::surfaceSum(mag(phi))().internalField() + /h.internalField(); - CoNum = max(SfUfbyDelta/mesh.magSf()) - .value()*runTime.deltaTValue(); + CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - meanCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf())) - .value()*runTime.deltaTValue(); + meanCoNum = + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); // Gravity wave Courant number - waveCoNum = - 0.5*max + waveCoNum = 0.25*gMax + ( + fvc::surfaceSum ( - mesh.surfaceInterpolation::deltaCoeffs() - *sqrt(fvc::interpolate(h)) - ).value()*sqrt(magg).value()*runTime.deltaTValue(); + fvc::interpolate(sqrt(h))*mesh.magSf() + )().internalField()/mesh.V().field() + )*sqrt(magg).value()*runTime.deltaTValue(); } Info<< "Courant number mean: " << meanCoNum diff --git a/applications/solvers/multiphase/cavitatingFoam/CourantNo.H b/applications/solvers/multiphase/cavitatingFoam/CourantNo.H index d5c5c53cc69..8b26ba033e9 100644 --- a/applications/solvers/multiphase/cavitatingFoam/CourantNo.H +++ b/applications/solvers/multiphase/cavitatingFoam/CourantNo.H @@ -35,19 +35,21 @@ scalar acousticCoNum = 0.0; if (mesh.nInternalFaces()) { - surfaceScalarField SfUfbyDelta = - mesh.surfaceInterpolation::deltaCoeffs()*mag(phiv); + scalarField sumPhi = + fvc::surfaceSum(mag(phiv))().internalField(); - CoNum = max(SfUfbyDelta/mesh.magSf()) - .value()*runTime.deltaTValue(); + CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - meanCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf())) - .value()*runTime.deltaTValue(); + meanCoNum = + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); - acousticCoNum = max + acousticCoNum = 0.5*gMax ( - mesh.surfaceInterpolation::deltaCoeffs()/sqrt(fvc::interpolate(psi)) - ).value()*runTime.deltaTValue(); + fvc::surfaceSum + ( + fvc::interpolate(scalar(1)/sqrt(psi))*mesh.magSf() + )().internalField()/mesh.V().field() + )*runTime.deltaTValue(); } Info<< "phiv Courant Number mean: " << meanCoNum diff --git a/applications/solvers/multiphase/interFoam/alphaCourantNo.H b/applications/solvers/multiphase/interFoam/alphaCourantNo.H index 12d1b933d40..e5edfc76ca1 100644 --- a/applications/solvers/multiphase/interFoam/alphaCourantNo.H +++ b/applications/solvers/multiphase/interFoam/alphaCourantNo.H @@ -43,10 +43,10 @@ if (mesh.nInternalFaces()) pos(alpha1 - 0.01)*pos(0.99 - alpha1) *fvc::surfaceSum(mag(phi))().internalField(); - alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaT().value(); + alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); meanAlphaCoNum = - 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaT().value(); + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "Interface Courant Number mean: " << meanAlphaCoNum diff --git a/applications/solvers/multiphase/interFoam/setDeltaT.H b/applications/solvers/multiphase/interFoam/setDeltaT.H index b315dcd1a06..b619ed90f9d 100644 --- a/applications/solvers/multiphase/interFoam/setDeltaT.H +++ b/applications/solvers/multiphase/interFoam/setDeltaT.H @@ -42,12 +42,12 @@ if (adjustTimeStep) ( min ( - deltaTFact*runTime.deltaT().value(), + deltaTFact*runTime.deltaTValue(), maxDeltaT ) ); - Info<< "deltaT = " << runTime.deltaT().value() << endl; + Info<< "deltaT = " << runTime.deltaTValue() << endl; } // ************************************************************************* // diff --git a/applications/solvers/multiphase/interMixingFoam/alphaCourantNo.H b/applications/solvers/multiphase/interMixingFoam/alphaCourantNo.H index a560a60d270..105149f87ea 100644 --- a/applications/solvers/multiphase/interMixingFoam/alphaCourantNo.H +++ b/applications/solvers/multiphase/interMixingFoam/alphaCourantNo.H @@ -39,20 +39,16 @@ scalar meanAlphaCoNum = 0.0; if (mesh.nInternalFaces()) { - surfaceScalarField alpha1f = fvc::interpolate(alpha1); - surfaceScalarField alpha2f = fvc::interpolate(alpha2); - - surfaceScalarField SfUfbyDelta = max + scalarField sumPhi = max ( - pos(alpha1f - 0.01)*pos(0.99 - alpha1f), - pos(alpha2f - 0.01)*pos(0.99 - alpha2f) - )*mesh.surfaceInterpolation::deltaCoeffs()*mag(phi); + pos(alpha1 - 0.01)*pos(0.99 - alpha1), + pos(alpha2 - 0.01)*pos(0.99 - alpha2) + )*fvc::surfaceSum(mag(phi))().internalField(); - alphaCoNum = max(SfUfbyDelta/mesh.magSf()) - .value()*runTime.deltaT().value(); + alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - meanAlphaCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf())) - .value()*runTime.deltaT().value(); + meanAlphaCoNum = + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "Interface Courant Number mean: " << meanAlphaCoNum diff --git a/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H b/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H index 50e64f5f51e..a63ab62103e 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H @@ -39,15 +39,14 @@ scalar meanAlphaCoNum = 0.0; if (mesh.nInternalFaces()) { - surfaceScalarField SfUfbyDelta = - mixture.nearInterface() - *mesh.surfaceInterpolation::deltaCoeffs()*mag(phi); + scalarField sumPhi = + mixture.nearInterface()().internalField() + *fvc::surfaceSum(mag(phi))().internalField(); - alphaCoNum = max(SfUfbyDelta/mesh.magSf()) - .value()*runTime.deltaT().value(); + alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - meanAlphaCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf())) - .value()*runTime.deltaT().value(); + meanAlphaCoNum = + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "Interface Courant Number mean: " << meanAlphaCoNum diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C index c0582b5c139..22c45bad718 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C @@ -457,12 +457,12 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixture::K } -Foam::tmp<Foam::surfaceScalarField> +Foam::tmp<Foam::volScalarField> Foam::multiphaseMixture::nearInterface() const { - tmp<surfaceScalarField> tnearInt + tmp<volScalarField> tnearInt ( - new surfaceScalarField + new volScalarField ( IOobject ( @@ -477,8 +477,7 @@ Foam::multiphaseMixture::nearInterface() const forAllConstIter(PtrDictionary<phase>, phases_, iter) { - surfaceScalarField alphaf = fvc::interpolate(iter()); - tnearInt() = max(tnearInt(), pos(alphaf - 0.01)*pos(0.99 - alphaf)); + tnearInt() = max(tnearInt(), pos(iter() - 0.01)*pos(0.99 - iter())); } return tnearInt; diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H index 32a7f101180..6a58813e54e 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H @@ -258,7 +258,7 @@ public: //- Indicator of the proximity of the interface // Field values are 1 near and 0 away for the interface. - tmp<surfaceScalarField> nearInterface() const; + tmp<volScalarField> nearInterface() const; //- Solve for the mixture phase-fractions void solve(); diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/CourantNos.H b/applications/solvers/multiphase/twoPhaseEulerFoam/CourantNos.H index 75dcd68c7fb..ae6a13feb06 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/CourantNos.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/CourantNos.H @@ -1,11 +1,10 @@ # include "CourantNo.H" { - scalar UrCoNum = max + scalar UrCoNum = 0.5*gMax ( - mesh.surfaceInterpolation::deltaCoeffs()*mag(phia - phib) - /mesh.magSf() - ).value()*runTime.deltaT().value(); + fvc::surfaceSum(mag(phia - phib))().internalField()/mesh.V().field() + )*runTime.deltaTValue(); Info<< "Max Ur Courant Number = " << UrCoNum << endl; diff --git a/src/dynamicFvMesh/include/meshCourantNo.H b/src/dynamicFvMesh/include/meshCourantNo.H index 9ac0cb482fc..501611db18d 100644 --- a/src/dynamicFvMesh/include/meshCourantNo.H +++ b/src/dynamicFvMesh/include/meshCourantNo.H @@ -34,14 +34,13 @@ scalar meanMeshCoNum = 0.0; if (mesh.nInternalFaces()) { - surfaceScalarField SfUfbyDelta = - mesh.surfaceInterpolation::deltaCoeffs()*mag(mesh.phi()); + scalarField sumPhi = + fvc::surfaceSum(mag(mesh.phi()))().internalField(); - meshCoNum = max(SfUfbyDelta/mesh.magSf()) - .value()*runTime.deltaTValue(); + meshCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - meanMeshCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf())) - .value()*runTime.deltaTValue(); + meanMeshCoNum = + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "Mesh Courant Number mean: " << meanMeshCoNum diff --git a/src/finiteVolume/cfdTools/compressible/compressibleCourantNo.H b/src/finiteVolume/cfdTools/compressible/compressibleCourantNo.H index 73da862406d..c96ddeb22ff 100644 --- a/src/finiteVolume/cfdTools/compressible/compressibleCourantNo.H +++ b/src/finiteVolume/cfdTools/compressible/compressibleCourantNo.H @@ -38,10 +38,10 @@ if (mesh.nInternalFaces()) fvc::surfaceSum(mag(phi))().internalField() /rho.internalField(); - CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaT().value(); + CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); meanCoNum = - 0.5*(gSum(sumPhi)/sum(mesh.V().field()))*runTime.deltaT().value(); + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "Courant Number mean: " << meanCoNum diff --git a/src/finiteVolume/cfdTools/incompressible/CourantNo.H b/src/finiteVolume/cfdTools/incompressible/CourantNo.H index caef48a3966..8b917e1f89f 100644 --- a/src/finiteVolume/cfdTools/incompressible/CourantNo.H +++ b/src/finiteVolume/cfdTools/incompressible/CourantNo.H @@ -37,10 +37,10 @@ if (mesh.nInternalFaces()) scalarField sumPhi = fvc::surfaceSum(mag(phi))().internalField(); - CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaT().value(); + CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); meanCoNum = - 0.5*(gSum(sumPhi)/sum(mesh.V().field()))*runTime.deltaT().value(); + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "Courant Number mean: " << meanCoNum -- GitLab