diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C index 2559b9d67a159776763e8923b636f95220be30cb..e49d3c75fc13b924e2819aa22c30482eddb072a8 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C +++ b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C @@ -50,6 +50,8 @@ bool Foam::pimpleControl::read() SIMPLErho_ = pimpleDict.getOrDefault("SIMPLErho", false); turbOnFinalIterOnly_ = pimpleDict.getOrDefault("turbOnFinalIterOnly", true); + finalOnLastPimpleIterOnly_ = + pimpleDict.getOrDefault("finalOnLastPimpleIterOnly", false); return true; } @@ -153,7 +155,8 @@ Foam::pimpleControl::pimpleControl corrPISO_(0), SIMPLErho_(false), turbOnFinalIterOnly_(true), - converged_(false) + converged_(false), + finalOnLastPimpleIterOnly_(false) { read(); diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H index 710f4c176fbcfd075561cf406b176854cf0443e9..1433215df84c5ca1712f0da4472e8db8f7d8e61c 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H +++ b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2017 OpenCFD Ltd. + Copyright (C) 2017-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -94,6 +94,10 @@ protected: //- Converged flag bool converged_; + //- Flag to indicate wheter the final solver is used only on the + // final pimple iter + bool finalOnLastPimpleIterOnly_; + // Protected Member Functions diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControlI.H b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControlI.H index 944c2a2b465b889b25b744183d9bde69fe9ed81d..344db63f93e197fd5e835b4dbf66a885e3471491 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControlI.H +++ b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControlI.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -96,9 +97,18 @@ inline bool Foam::pimpleControl::finalIter() const inline bool Foam::pimpleControl::finalInnerIter() const { - return - corrPISO_ == nCorrPISO_ - && corrNonOrtho_ == nNonOrthCorr_ + 1; + bool finalInnerIter = + corrPISO_ == nCorrPISO_ + && corrNonOrtho_ == nNonOrthCorr_ + 1; + + if (finalOnLastPimpleIterOnly_) + { + return finalInnerIter && finalIter(); + } + else + { + return finalInnerIter; + } } diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/fvSolution index f1ea496680b26721c4264fde2d96b5728a7d75b2..8c0b4fd7982ddf4553047b64da0cac1c7e361a5f 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/fvSolution +++ b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/fvSolution @@ -58,6 +58,7 @@ PIMPLE momentumPredictor yes; nOuterCorrectors 1; nCorrectors 2; + finalOnLastPimpleIterOnly true; nNonOrthogonalCorrectors 0; pMax 1.2e5;