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