From bc0dc681ad3d02ce0184b18fc438b6d723eeee00 Mon Sep 17 00:00:00 2001 From: Vanja Skuric Date: Sun, 5 Jun 2016 01:28:13 +0200 Subject: [PATCH] Backported steadyUniversalFoam, steadyUniversalMRFFoam and tutorials (vanilla OF 3.0.1) --- .../compressible/steadyUniversalFoam/UEqn.H | 7 +------ .../steadyUniversalFoam/convergenceCheck.H | 9 -------- .../steadyUniversalFoam/createFields.H | 2 ++ .../compressible/steadyUniversalFoam/hEqn.H | 3 +-- .../steadyUniversalFoam/initConvergenceCheck.H | 7 ------- .../compressible/steadyUniversalFoam/pEqn.H | 14 ++++--------- .../steadyUniversalFoam/steadyUniversalFoam.C | 10 ++++----- .../compressible/steadyUniversalMRFFoam/UEqn.H | 7 +------ .../steadyUniversalMRFFoam/convergenceCheck.H | 9 -------- .../steadyUniversalMRFFoam/createFields.H | 2 ++ .../compressible/steadyUniversalMRFFoam/iEqn.H | 5 ++--- .../steadyUniversalMRFFoam/initConvergenceCheck.H | 7 ------- .../compressible/steadyUniversalMRFFoam/pEqn.H | 14 ++++--------- .../steadyUniversalMRFFoam.C | 10 ++++----- .../axialTurbineGgiJump/system/fvSchemes | 24 ---------------------- .../axialTurbineMixingPlane/system/fvSchemes | 6 ------ 16 files changed, 25 insertions(+), 111 deletions(-) delete mode 100644 applications/solvers/compressible/steadyUniversalFoam/convergenceCheck.H delete mode 100644 applications/solvers/compressible/steadyUniversalFoam/initConvergenceCheck.H delete mode 100644 applications/solvers/compressible/steadyUniversalMRFFoam/convergenceCheck.H delete mode 100644 applications/solvers/compressible/steadyUniversalMRFFoam/initConvergenceCheck.H diff --git a/applications/solvers/compressible/steadyUniversalFoam/UEqn.H b/applications/solvers/compressible/steadyUniversalFoam/UEqn.H index 4e2e22af0..204c349fb 100644 --- a/applications/solvers/compressible/steadyUniversalFoam/UEqn.H +++ b/applications/solvers/compressible/steadyUniversalFoam/UEqn.H @@ -10,9 +10,4 @@ UEqn.relax(); - eqnResidual = solve - ( - UEqn == -fvc::grad(p) - ).initialResidual(); - - maxResidual = max(eqnResidual, maxResidual); + solve(UEqn == -fvc::grad(p)); diff --git a/applications/solvers/compressible/steadyUniversalFoam/convergenceCheck.H b/applications/solvers/compressible/steadyUniversalFoam/convergenceCheck.H deleted file mode 100644 index 895806319..000000000 --- a/applications/solvers/compressible/steadyUniversalFoam/convergenceCheck.H +++ /dev/null @@ -1,9 +0,0 @@ -// check convergence - -if (maxResidual < convergenceCriterion) -{ - Info<< "reached convergence criterion: " << convergenceCriterion << endl; - runTime.writeAndEnd(); - Info<< "latestTime = " << runTime.timeName() << endl; -} - diff --git a/applications/solvers/compressible/steadyUniversalFoam/createFields.H b/applications/solvers/compressible/steadyUniversalFoam/createFields.H index fed1a01c7..5bc4417ad 100644 --- a/applications/solvers/compressible/steadyUniversalFoam/createFields.H +++ b/applications/solvers/compressible/steadyUniversalFoam/createFields.H @@ -39,3 +39,5 @@ thermo ) ); + + mesh.schemesDict().setFluxRequired(p.name()); diff --git a/applications/solvers/compressible/steadyUniversalFoam/hEqn.H b/applications/solvers/compressible/steadyUniversalFoam/hEqn.H index c379926a8..0a5c1e1db 100644 --- a/applications/solvers/compressible/steadyUniversalFoam/hEqn.H +++ b/applications/solvers/compressible/steadyUniversalFoam/hEqn.H @@ -23,8 +23,7 @@ hEqn.relax(); - eqnResidual = hEqn.solve().initialResidual(); - maxResidual = max(eqnResidual, maxResidual); + hEqn.solve(); // Bounding of enthalpy taken out thermo.correct(); diff --git a/applications/solvers/compressible/steadyUniversalFoam/initConvergenceCheck.H b/applications/solvers/compressible/steadyUniversalFoam/initConvergenceCheck.H deleted file mode 100644 index 47a1852f0..000000000 --- a/applications/solvers/compressible/steadyUniversalFoam/initConvergenceCheck.H +++ /dev/null @@ -1,7 +0,0 @@ -// initialize values for convergence checks - - scalar eqnResidual = 1, maxResidual = 0; - scalar convergenceCriterion = 0; - - pimple.readIfPresent("convergence", convergenceCriterion); - diff --git a/applications/solvers/compressible/steadyUniversalFoam/pEqn.H b/applications/solvers/compressible/steadyUniversalFoam/pEqn.H index 636de243d..8eec3318e 100644 --- a/applications/solvers/compressible/steadyUniversalFoam/pEqn.H +++ b/applications/solvers/compressible/steadyUniversalFoam/pEqn.H @@ -7,7 +7,7 @@ // Needs to be outside of loop since p is changing, but psi and rho are not surfaceScalarField rhoReff = rhof - psisf*fvc::interpolate(p); - for (int corr = 0; corr < nCorr; corr++) + while (pimple.correct()) { U = rUA*UEqn.H(); @@ -20,7 +20,7 @@ p.storePrevIter(); - for (int nonOrth = 0; nonOrth <= nNonOrthCorr; nonOrth++) + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn ( @@ -30,16 +30,10 @@ - fvm::laplacian(rho*rUA, p) ); - // Retain the residual from the first pressure solution - eqnResidual = pEqn.solve().initialResidual(); - - if (corr == 0 && nonOrth == 0) - { - maxResidual = max(eqnResidual, maxResidual); - } + pEqn.solve(); // Calculate the flux - if (nonOrth == nNonOrthCorr) + if (pimple.finalNonOrthogonalIter()) { phi = phid2 + pEqn.flux(); } diff --git a/applications/solvers/compressible/steadyUniversalFoam/steadyUniversalFoam.C b/applications/solvers/compressible/steadyUniversalFoam/steadyUniversalFoam.C index 42fab40e4..633440a2c 100644 --- a/applications/solvers/compressible/steadyUniversalFoam/steadyUniversalFoam.C +++ b/applications/solvers/compressible/steadyUniversalFoam/steadyUniversalFoam.C @@ -36,6 +36,7 @@ Author #include "basicPsiThermo.H" #include "basicRhoThermo.H" #include "RASModel.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -46,9 +47,11 @@ int main(int argc, char *argv[]) # include "createTime.H" # include "createMesh.H" + + pimpleControl pimple(mesh); + # include "createThermo.H" # include "createFields.H" -# include "readPIMPLEControls.H" # include "initContinuityErrs.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -59,11 +62,8 @@ int main(int argc, char *argv[]) { Info<< "Time = " << runTime.timeName() << nl << endl; -# include "readPIMPLEControls.H" # include "readFieldBounds.H" -# include "initConvergenceCheck.H" - # include "UEqn.H" # include "pEqn.H" @@ -79,8 +79,6 @@ int main(int argc, char *argv[]) Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" << nl << endl; - -# include "convergenceCheck.H" } # include "clearThermo.H" diff --git a/applications/solvers/compressible/steadyUniversalMRFFoam/UEqn.H b/applications/solvers/compressible/steadyUniversalMRFFoam/UEqn.H index 1c39c948b..f1c57b01d 100644 --- a/applications/solvers/compressible/steadyUniversalMRFFoam/UEqn.H +++ b/applications/solvers/compressible/steadyUniversalMRFFoam/UEqn.H @@ -13,9 +13,4 @@ UEqn.relax(); - eqnResidual = solve - ( - UEqn == -fvc::grad(p) - ).initialResidual(); - - maxResidual = max(eqnResidual, maxResidual); + solve(UEqn == -fvc::grad(p)); diff --git a/applications/solvers/compressible/steadyUniversalMRFFoam/convergenceCheck.H b/applications/solvers/compressible/steadyUniversalMRFFoam/convergenceCheck.H deleted file mode 100644 index 895806319..000000000 --- a/applications/solvers/compressible/steadyUniversalMRFFoam/convergenceCheck.H +++ /dev/null @@ -1,9 +0,0 @@ -// check convergence - -if (maxResidual < convergenceCriterion) -{ - Info<< "reached convergence criterion: " << convergenceCriterion << endl; - runTime.writeAndEnd(); - Info<< "latestTime = " << runTime.timeName() << endl; -} - diff --git a/applications/solvers/compressible/steadyUniversalMRFFoam/createFields.H b/applications/solvers/compressible/steadyUniversalMRFFoam/createFields.H index 5a432a884..42753a251 100644 --- a/applications/solvers/compressible/steadyUniversalMRFFoam/createFields.H +++ b/applications/solvers/compressible/steadyUniversalMRFFoam/createFields.H @@ -80,3 +80,5 @@ mesh ); i == h - 0.5*(magSqr(Urot) - magSqr(Urel)); + + mesh.schemesDict().setFluxRequired(p.name()); diff --git a/applications/solvers/compressible/steadyUniversalMRFFoam/iEqn.H b/applications/solvers/compressible/steadyUniversalMRFFoam/iEqn.H index 861099c75..5a59595f4 100644 --- a/applications/solvers/compressible/steadyUniversalMRFFoam/iEqn.H +++ b/applications/solvers/compressible/steadyUniversalMRFFoam/iEqn.H @@ -7,7 +7,7 @@ Urot == U - Urel; fvScalarMatrix iEqn - ( + ( fvm::ddt(rho, i) + fvm::div(phi, i) - fvm::laplacian(turbulence->alphaEff(), i) @@ -18,8 +18,7 @@ iEqn.relax(); - eqnResidual = iEqn.solve().initialResidual(); - maxResidual = max(eqnResidual, maxResidual); + iEqn.solve(); // From rothalpy, calculate enthalpy after solution of rothalpy equation h = i + 0.5*(magSqr(Urot) - magSqr(Urel)); diff --git a/applications/solvers/compressible/steadyUniversalMRFFoam/initConvergenceCheck.H b/applications/solvers/compressible/steadyUniversalMRFFoam/initConvergenceCheck.H deleted file mode 100644 index 47a1852f0..000000000 --- a/applications/solvers/compressible/steadyUniversalMRFFoam/initConvergenceCheck.H +++ /dev/null @@ -1,7 +0,0 @@ -// initialize values for convergence checks - - scalar eqnResidual = 1, maxResidual = 0; - scalar convergenceCriterion = 0; - - pimple.readIfPresent("convergence", convergenceCriterion); - diff --git a/applications/solvers/compressible/steadyUniversalMRFFoam/pEqn.H b/applications/solvers/compressible/steadyUniversalMRFFoam/pEqn.H index 636de243d..8eec3318e 100644 --- a/applications/solvers/compressible/steadyUniversalMRFFoam/pEqn.H +++ b/applications/solvers/compressible/steadyUniversalMRFFoam/pEqn.H @@ -7,7 +7,7 @@ // Needs to be outside of loop since p is changing, but psi and rho are not surfaceScalarField rhoReff = rhof - psisf*fvc::interpolate(p); - for (int corr = 0; corr < nCorr; corr++) + while (pimple.correct()) { U = rUA*UEqn.H(); @@ -20,7 +20,7 @@ p.storePrevIter(); - for (int nonOrth = 0; nonOrth <= nNonOrthCorr; nonOrth++) + while (pimple.correctNonOrthogonal()) { fvScalarMatrix pEqn ( @@ -30,16 +30,10 @@ - fvm::laplacian(rho*rUA, p) ); - // Retain the residual from the first pressure solution - eqnResidual = pEqn.solve().initialResidual(); - - if (corr == 0 && nonOrth == 0) - { - maxResidual = max(eqnResidual, maxResidual); - } + pEqn.solve(); // Calculate the flux - if (nonOrth == nNonOrthCorr) + if (pimple.finalNonOrthogonalIter()) { phi = phid2 + pEqn.flux(); } diff --git a/applications/solvers/compressible/steadyUniversalMRFFoam/steadyUniversalMRFFoam.C b/applications/solvers/compressible/steadyUniversalMRFFoam/steadyUniversalMRFFoam.C index 757afc5ee..cbfecbeeb 100644 --- a/applications/solvers/compressible/steadyUniversalMRFFoam/steadyUniversalMRFFoam.C +++ b/applications/solvers/compressible/steadyUniversalMRFFoam/steadyUniversalMRFFoam.C @@ -43,6 +43,7 @@ GE CONFIDENTIAL INFORMATION 2016 General Electric Company. All Rights Reserved #include "basicRhoThermo.H" #include "RASModel.H" #include "MRFZones.H" +#include "pimpleControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -53,9 +54,11 @@ int main(int argc, char *argv[]) # include "createTime.H" # include "createMesh.H" + + pimpleControl pimple(mesh); + # include "createThermo.H" # include "createFields.H" -# include "readPIMPLEControls.H" # include "initContinuityErrs.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -66,11 +69,8 @@ int main(int argc, char *argv[]) { Info<< "Time = " << runTime.timeName() << nl << endl; -# include "readPIMPLEControls.H" # include "readFieldBounds.H" -# include "initConvergenceCheck.H" - # include "UEqn.H" # include "pEqn.H" @@ -86,8 +86,6 @@ int main(int argc, char *argv[]) Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" << nl << endl; - -# include "convergenceCheck.H" } # include "clearThermo.H" diff --git a/tutorials/compressible/steadyUniversalMRFFoam/axialTurbineGgiJump/system/fvSchemes b/tutorials/compressible/steadyUniversalMRFFoam/axialTurbineGgiJump/system/fvSchemes index f2a536827..ea3d83e12 100755 --- a/tutorials/compressible/steadyUniversalMRFFoam/axialTurbineGgiJump/system/fvSchemes +++ b/tutorials/compressible/steadyUniversalMRFFoam/axialTurbineGgiJump/system/fvSchemes @@ -72,12 +72,6 @@ snGradSchemes default limited 0.5; } -fluxRequired -{ - default no; - p; -} - mixingPlane { default areaAveraging; @@ -86,22 +80,4 @@ mixingPlane omega areaAveraging; } - - - - - - - - - - - - - - - - - - // ************************************************************************* // diff --git a/tutorials/compressible/steadyUniversalMRFFoam/axialTurbineMixingPlane/system/fvSchemes b/tutorials/compressible/steadyUniversalMRFFoam/axialTurbineMixingPlane/system/fvSchemes index 268ba8029..49b4c21d3 100644 --- a/tutorials/compressible/steadyUniversalMRFFoam/axialTurbineMixingPlane/system/fvSchemes +++ b/tutorials/compressible/steadyUniversalMRFFoam/axialTurbineMixingPlane/system/fvSchemes @@ -72,12 +72,6 @@ snGradSchemes default limited 0.5; } -fluxRequired -{ - default no; - p; -} - mixingPlane { default areaAveraging; -- 2.11.4.GIT