From b3bc6f920d2f1b8611dcdf963181a424f5e4c1a7 Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Tue, 18 Jun 2019 14:20:55 +0100 Subject: [PATCH] ENH: {simple|pimple}Control - output on construction controlled by a 'verbose' flag --- .../pimpleControl/pimpleControl.C | 55 +++++++++++-------- .../pimpleControl/pimpleControl.H | 7 ++- .../simpleControl/simpleControl.C | 43 +++++++++------ .../simpleControl/simpleControl.H | 7 ++- 4 files changed, 70 insertions(+), 42 deletions(-) diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C index 5db57695b40..aea92a6ccc5 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C +++ b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C @@ -138,7 +138,12 @@ void Foam::pimpleControl::setFirstIterFlag(const bool check, const bool force) // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::pimpleControl::pimpleControl(fvMesh& mesh, const word& dictName) +Foam::pimpleControl::pimpleControl +( + fvMesh& mesh, + const word& dictName, + const bool verbose +) : solutionControl(mesh, dictName), solveFlow_(true), @@ -151,36 +156,38 @@ Foam::pimpleControl::pimpleControl(fvMesh& mesh, const word& dictName) { read(); - Info<< nl - << algorithmName_; - - if (nCorrPIMPLE_ > 1) + if (verbose) { - if (residualControl_.empty()) + Info<< nl << algorithmName_; + + if (nCorrPIMPLE_ > 1) { - Info<< ": no residual control data found. " - << "Calculations will employ " << nCorrPIMPLE_ - << " corrector loops" << nl; + if (residualControl_.empty()) + { + Info<< ": no residual control data found. " + << "Calculations will employ " << nCorrPIMPLE_ + << " corrector loops" << nl; + } + else + { + Info<< ": max iterations = " << nCorrPIMPLE_ << nl; + + for (const fieldData& ctrl : residualControl_) + { + Info<< " field " << ctrl.name << token::TAB + << ": relTol " << ctrl.relTol + << ", tolerance " << ctrl.absTol + << nl; + } + } } else { - Info<< ": max iterations = " << nCorrPIMPLE_ << nl; - - for (const fieldData& ctrl : residualControl_) - { - Info<< " field " << ctrl.name << token::TAB - << ": relTol " << ctrl.relTol - << ", tolerance " << ctrl.absTol - << nl; - } + Info<< ": Operating solver in PISO mode" << nl; } - } - else - { - Info<< ": Operating solver in PISO mode" << nl; - } - Info<< endl; + Info<< endl; + } } diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H index 612dd31f838..660a6a9f812 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H +++ b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H @@ -121,7 +121,12 @@ public: // Constructors //- Construct from mesh and the name of control sub-dictionary - pimpleControl(fvMesh& mesh, const word& dictName="PIMPLE"); + pimpleControl + ( + fvMesh& mesh, + const word& dictName = "PIMPLE", + const bool verbose = true + ); //- Destructor diff --git a/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.C b/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.C index 59a6af643dc..88daae803ac 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.C +++ b/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.C @@ -91,33 +91,44 @@ bool Foam::simpleControl::criteriaSatisfied() // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::simpleControl::simpleControl(fvMesh& mesh, const word& dictName) +Foam::simpleControl::simpleControl +( + fvMesh& mesh, + const word& dictName, + const bool verbose +) : solutionControl(mesh, dictName), initialised_(false) { read(); - Info<< nl - << algorithmName_; - - if (residualControl_.empty()) - { - Info<< ": no convergence criteria found. Calculations will run for " - << mesh_.time().endTime().value() - mesh_.time().startTime().value() - << " steps." << nl; - } - else + if (verbose) { - Info<< ": convergence criteria" << nl; - for (const fieldData& ctrl : residualControl_) + Info<< nl << algorithmName_; + + if (residualControl_.empty()) { - Info<< " field " << ctrl.name << token::TAB - << " tolerance " << ctrl.absTol + const scalar duration = + mesh_.time().endTime().value() + - mesh_.time().startTime().value(); + + Info<< ": no convergence criteria found. " + << "Calculations will run for " << duration << " steps." << nl; } + else + { + Info<< ": convergence criteria" << nl; + for (const fieldData& ctrl : residualControl_) + { + Info<< " field " << ctrl.name << token::TAB + << " tolerance " << ctrl.absTol + << nl; + } + } + Info<< endl; } - Info<< endl; } diff --git a/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.H b/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.H index bb934ed0a91..c0c8497d1cd 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.H +++ b/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.H @@ -93,7 +93,12 @@ public: // Constructors //- Construct from mesh and the name of control sub-dictionary - simpleControl(fvMesh& mesh, const word& dictName="SIMPLE"); + simpleControl + ( + fvMesh& mesh, + const word& dictName = "SIMPLE", + const bool verbose = true + ); //- Destructor -- GitLab