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