From d5301772f7357eeabc7c9b73084c38f3310ccbd2 Mon Sep 17 00:00:00 2001
From: sergio <sergio>
Date: Thu, 15 Dec 2016 12:36:48 -0800
Subject: [PATCH] Update of interCondensingEvaporatingFoam and its tutorial

---
 .../interCondensingEvaporatingFoam/UEqn.H     |  1 -
 .../continuityError.H                         | 12 ----
 .../createFields.H                            | 21 +------
 .../interCondensingEvaporatingFoam/eEqn.H     |  2 -
 .../interCondensatingEvaporatingFoam.C        | 14 +++--
 .../interCondensingEvaporatingFoam/pEqn.H     |  5 +-
 .../constant/constant.C                       | 12 ++--
 .../condensatingVessel/0/T                    | 10 +---
 .../condensatingVessel/0/epsilon              | 56 +++++++++++++++++++
 .../condensatingVessel/0/k                    |  2 +-
 .../condensatingVessel/0/p                    | 53 ++++++++++++++++++
 .../condensatingVessel/Allrun                 |  4 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/transportProperties              |  2 +-
 .../constant/turbulenceProperties             |  2 +-
 .../condensatingVessel/system/controlDict     | 10 ++--
 .../condensatingVessel/system/fvSchemes       | 13 +++--
 .../condensatingVessel/system/fvSolution      | 10 +++-
 18 files changed, 157 insertions(+), 74 deletions(-)
 delete mode 100644 applications/solvers/multiphase/interCondensingEvaporatingFoam/continuityError.H
 create mode 100644 tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/epsilon
 create mode 100644 tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/p

diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/UEqn.H b/applications/solvers/multiphase/interCondensingEvaporatingFoam/UEqn.H
index 1e27597292e..249c5a3cb15 100644
--- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/UEqn.H
+++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/UEqn.H
@@ -2,7 +2,6 @@
     (
         fvm::ddt(rho, U)
       + fvm::div(rhoPhi, U)
-      - fvm::Sp(fvc::ddt(rho) + fvc::div(rhoPhi), U)
       + turbulence->divDevRhoReff(rho, U)
     );
 
diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/continuityError.H b/applications/solvers/multiphase/interCondensingEvaporatingFoam/continuityError.H
deleted file mode 100644
index 9a33fb896d4..00000000000
--- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/continuityError.H
+++ /dev/null
@@ -1,12 +0,0 @@
-volScalarField contErr(fvc::ddt(rho) + fvc::div(rhoPhi));
-
-scalar sumLocalContErr = runTime.deltaTValue()*
-    mag(contErr)().weightedAverage(mesh.V()).value();
-
-scalar globalContErr = runTime.deltaTValue()*
-    contErr.weightedAverage(mesh.V()).value();
-
-Info<< "time step continuity errors : sum local = " << sumLocalContErr
-    << ", global = " << globalContErr
-    << endl;
-
diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/createFields.H b/applications/solvers/multiphase/interCondensingEvaporatingFoam/createFields.H
index 20d3677bfcc..c0e2adcb51a 100644
--- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/createFields.H
+++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/createFields.H
@@ -28,20 +28,6 @@
 
     #include "createPhi.H"
 
-    // Create p before the thermo
-    volScalarField p
-    (
-        IOobject
-        (
-            "p",
-            runTime.timeName(),
-            mesh,
-            IOobject::NO_READ,
-            IOobject::AUTO_WRITE
-        ),
-        p_rgh
-    );
-
     // Creating e based thermo
     autoPtr<twoPhaseMixtureEThermo> thermo;
     thermo.set(new twoPhaseMixtureEThermo(U, phi));
@@ -54,9 +40,10 @@
 
     volScalarField& T = thermo->T();
     volScalarField& e = thermo->he();
+    e.oldTime();
 
     // Correct e from T and alpha
-    thermo->correct();
+    //thermo->correct();
 
     volScalarField& alpha1(thermo->alpha1());
     volScalarField& alpha2(thermo->alpha2());
@@ -80,7 +67,6 @@
     );
     rho.oldTime();
 
-
     // Construct interface from alpha1 distribution
     interfaceProperties interface
     (
@@ -100,8 +86,7 @@
     volScalarField gh("gh", g & mesh.C());
     surfaceScalarField ghf("ghf", g & mesh.Cf());
 
-    //Update p with rho
-    p = p_rgh + rho*gh;
+    volScalarField& p = thermo->p();
 
     label pRefCell = 0;
     scalar pRefValue = 0.0;
diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/eEqn.H b/applications/solvers/multiphase/interCondensingEvaporatingFoam/eEqn.H
index 291d574d8aa..386e4cdff9d 100644
--- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/eEqn.H
+++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/eEqn.H
@@ -14,9 +14,7 @@
     fvScalarMatrix eEqn
     (
         fvm::ddt(rho, e)
-      + fvc::ddt(rho, K) + fvc::div(rhoPhi, K)
       + fvm::div(rhoPhi, e)
-      - fvm::Sp(fvc::ddt(rho) + fvc::div(rhoPhi), e)
       - fvm::laplacian(kappaEff/cp, e)
       + pDivU
     );
diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C b/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C
index 2fb0013224b..362e4d01325 100644
--- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C
+++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C
@@ -63,20 +63,21 @@ int main(int argc, char *argv[])
     pimpleControl pimple(mesh);
 
     #include "readGravitationalAcceleration.H"
-    #include "initContinuityErrs.H"
     #include "createFields.H"
     #include "createFvOptions.H"
     #include "createTimeControls.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
 
+    turbulence->validate();
+
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
     Info<< "\nStarting time loop\n" << endl;
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "CourantNo.H"
         #include "setDeltaT.H"
 
@@ -101,9 +102,12 @@ int main(int argc, char *argv[])
                 dimensionedScalar("0", dimMass/dimTime, 0)
             );
 
-            #include "alphaEqnSubCycle.H"
             mixture->correct();
 
+            #include "alphaEqnSubCycle.H"
+
+            solve(fvm::ddt(rho) + fvc::div(rhoPhi));
+
             #include "UEqn.H"
             #include "eEqn.H"
 
@@ -113,14 +117,14 @@ int main(int argc, char *argv[])
                 #include "pEqn.H"
             }
 
-            #include "continuityError.H"
-
             if (pimple.turbCorr())
             {
                 turbulence->correct();
             }
         }
 
+        rho = alpha1*rho1 + alpha2*rho2;
+
         runTime.write();
 
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/pEqn.H b/applications/solvers/multiphase/interCondensingEvaporatingFoam/pEqn.H
index 62de0895330..366dc78a120 100644
--- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/pEqn.H
+++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/pEqn.H
@@ -1,9 +1,7 @@
 {
     volScalarField rAU("rAU", 1.0/UEqn.A());
     surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
-
     volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
-
     surfaceScalarField phiHbyA
     (
         "phiHbyA",
@@ -53,8 +51,7 @@
         }
     }
 
-
-    p == p_rgh + rho*gh;
+    p = p_rgh + rho*gh;
 
     if (p_rgh.needReference())
     {
diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/temperaturePhaseChangeTwoPhaseMixtures/constant/constant.C b/applications/solvers/multiphase/interCondensingEvaporatingFoam/temperaturePhaseChangeTwoPhaseMixtures/constant/constant.C
index 6d3f21c2fb9..c215b3d21cb 100644
--- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/temperaturePhaseChangeTwoPhaseMixtures/constant/constant.C
+++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/temperaturePhaseChangeTwoPhaseMixtures/constant/constant.C
@@ -78,8 +78,8 @@ Foam::temperaturePhaseChangeTwoPhaseMixtures::constant::mDotAlphal() const
 
     return Pair<tmp<volScalarField>>
     (
-        coeffC_*mixture_.rho2()*max(TSat - T, T0),
-       -coeffE_*mixture_.rho1()*max(T - TSat, T0)
+        coeffC_*mixture_.rho2()*max(TSat - T.oldTime(), T0),
+       -coeffE_*mixture_.rho1()*max(T.oldTime() - TSat, T0)
     );
 }
 
@@ -112,8 +112,8 @@ Foam::temperaturePhaseChangeTwoPhaseMixtures::constant::mDot() const
 
     return Pair<tmp<volScalarField>>
     (
-        coeffC_*mixture_.rho2()*limitedAlpha2*max(TSat - T, T0),
-        coeffE_*mixture_.rho1()*limitedAlpha1*max(T - TSat, T0)
+        coeffC_*mixture_.rho2()*limitedAlpha2*max(TSat - T.oldTime(), T0),
+        coeffE_*mixture_.rho1()*limitedAlpha1*max(T.oldTime() - TSat, T0)
     );
 }
 
@@ -144,8 +144,8 @@ Foam::temperaturePhaseChangeTwoPhaseMixtures::constant::mDotDeltaT() const
 
     return Pair<tmp<volScalarField>>
     (
-        coeffC_*mixture_.rho2()*limitedAlpha2*pos(TSat - T),
-        coeffE_*mixture_.rho1()*limitedAlpha1*pos(T - TSat)
+        coeffC_*mixture_.rho2()*limitedAlpha2*pos(TSat - T.oldTime()),
+        coeffE_*mixture_.rho1()*limitedAlpha1*pos(T.oldTime() - TSat)
     );
 }
 
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/T b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/T
index e909b4147cd..b2e7a71174d 100644
--- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/T
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/T
@@ -16,7 +16,7 @@ FoamFile
 
 dimensions          [0 0 0 1 0 0 0];
 
-internalField       uniform 368;
+internalField       uniform 375;
 
 boundaryField
 {
@@ -32,12 +32,8 @@ boundaryField
     }
     left
     {
-        type            compressible::turbulentHeatFluxTemperature;
-        heatSource      flux;
-        q               uniform -40e3;
-        kappaMethod     fluidThermo;
-        kappa           none;
-        value           $internalField;
+        type            fixedValue;
+        value           uniform 360;
     }
     right
     {
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/epsilon b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/epsilon
new file mode 100644
index 00000000000..4229ae55f65
--- /dev/null
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/epsilon
@@ -0,0 +1,56 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      epsilon;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -3 0 0 0 0];
+
+internalField   uniform 1;
+
+boundaryField
+{
+    bottom
+    {
+        type            epsilonWallFunction;
+        value           $internalField;
+    }
+
+    top
+    {
+        type            inletOutlet;
+        inletValue      $internalField;
+        value           $internalField;
+    }
+
+    left
+    {
+        type            epsilonWallFunction;
+        value           $internalField;
+    }
+
+    right
+    {
+        type            epsilonWallFunction;
+        value           $internalField;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/k b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/k
index 7d9331b8498..2aa6a1370ba 100644
--- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/k
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/k
@@ -17,7 +17,7 @@ FoamFile
 
 dimensions      [ 0 2 -2 0 0 0 0 ];
 
-internalField   uniform 2e-3;
+internalField   uniform 0.1;
 
 boundaryField
 {
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/p b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/p
new file mode 100644
index 00000000000..6e70556c85e
--- /dev/null
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/p
@@ -0,0 +1,53 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [ 1 -1 -2 0 0 0 0 ];
+
+internalField       uniform 1e5;
+
+boundaryField
+{
+    bottom
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    top
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    left
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    right
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/Allrun b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/Allrun
index 8a77ff80763..ebc19b3d2a4 100755
--- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/Allrun
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/Allrun
@@ -4,7 +4,9 @@ cd ${0%/*} || exit 1    # Run from this directory
 # Source tutorial run functions
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
+application=$(getApplication)
+
 runApplication blockMesh
-runApplication $(getApplication)
+runApplication $application
 
 #------------------------------------------------------------------------------
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/thermophysicalProperties b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/thermophysicalProperties
index 928e6bcdff5..843e4e92e7c 100644
--- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/thermophysicalProperties
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/thermophysicalProperties
@@ -16,6 +16,6 @@ FoamFile
 
 TSat             TSat       [0 0 0 1 0]    366;   // saturation temperature
 
-pDivU            true;
+pDivU            false;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/transportProperties b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/transportProperties
index 7b11306833f..a6ad8621d44 100644
--- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/transportProperties
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/transportProperties
@@ -17,7 +17,7 @@ FoamFile
 phases (liquid vapour);// FC-72
 
 
-sigma           sigma [1 0 -2 0 0 0 0] 0.07;
+sigma           sigma [1 0 -2 0 0 0 0] 0.0;
 
 liquid
 {
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/turbulenceProperties b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/turbulenceProperties
index 9907248c087..d791c09a0cf 100644
--- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/turbulenceProperties
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/turbulenceProperties
@@ -19,7 +19,7 @@ simulationType  RAS;
 
 RAS
 {
-    RASModel kOmega;
+    RASModel        kOmegaSST;
 
     turbulence      on;
     printCoeffs     on;
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/controlDict b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/controlDict
index 108ca5fe822..8038616849e 100644
--- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/controlDict
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/controlDict
@@ -25,11 +25,11 @@ stopAt          endTime;
 
 endTime         4;
 
-deltaT          1e-5;
+deltaT          1e-4;
 
 writeControl    adjustableRunTime;
 
-writeInterval   1e-1;
+writeInterval   0.1;
 
 purgeWrite      0;
 
@@ -45,11 +45,9 @@ timePrecision   6;
 
 runTimeModifiable yes;
 
-adjustTimeStep  yes;
+adjustTimeStep  no;
 
-maxCo           6.0;
-
-maxAlphaCo      6.0;
+maxCo           1.0;
 
 maxDeltaT       1e-2;
 
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSchemes b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSchemes
index 305d7279463..b00f7a636de 100644
--- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSchemes
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSchemes
@@ -29,10 +29,11 @@ divSchemes
 {
     default             none;
 
-    div(rhoPhi,U)       Gauss linear;
-    div(phi,omega)      Gauss linear;
-    div(phi,k)          Gauss linear;
-    div(rhoPhi,e)       Gauss linear;
+    div(rhoPhi,U)       Gauss upwind;
+    div(phi,omega)      Gauss upwind;
+    div(phi,epsilon)    Gauss upwind;
+    div(phi,k)          Gauss upwind;
+    div(rhoPhi,e)       Gauss upwind;
     div(rhoPhi,K)       Gauss upwind;
     div(phi,alpha)      Gauss vanLeer;
     div(phirb,alpha)    Gauss linear;
@@ -42,7 +43,7 @@ divSchemes
 
 laplacianSchemes
 {
-    default         Gauss linear orthogonal;
+    default         Gauss linear corrected;
 }
 
 interpolationSchemes
@@ -52,7 +53,7 @@ interpolationSchemes
 
 snGradSchemes
 {
-    default         orthogonal;
+    default         corrected;
 }
 
 wallDist
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSolution b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSolution
index 52d1527ecc0..0099e72397a 100644
--- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSolution
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSolution
@@ -17,9 +17,14 @@ FoamFile
 
 solvers
 {
+    ".*(rho|rhoFinal)"
+    {
+        solver          diagonal;
+    }
+
     "alpha.liquid.*"
     {
-        cAlpha          1;
+        cAlpha          0;
         nAlphaCorr      2;
         nAlphaSubCycles 2;
 
@@ -55,6 +60,7 @@ solvers
         nCellsInCoarsestLevel 10;
         agglomerator    faceAreaPair;
         mergeLevels     1;
+        maxIter         100;
     };
 
     p_rghFinal
@@ -111,7 +117,7 @@ PIMPLE
 {
     momentumPredictor   false;
     nOuterCorrectors    1;
-    nCorrectors         3;
+    nCorrectors         2;
     nNonOrthogonalCorrectors 0;
 }
 
-- 
GitLab