diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C index 2559b9d67a..e49d3c75fc 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 710f4c176f..1433215df8 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 944c2a2b46..344db63f93 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 f1ea496680..8c0b4fd798 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;