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