From d8f33c626ab7e1f9cee0489ff8438d2d37024e91 Mon Sep 17 00:00:00 2001
From: Andrew Heather <>
Date: Fri, 29 Jul 2022 15:01:29 +0100
Subject: [PATCH] ENH: lagrangian intermediate library - added logging controls

---
 .../Templates/CollidingCloud/CollidingCloud.C |  4 +-
 .../Templates/KinematicCloud/KinematicCloud.C | 30 ++++++++-----
 .../Templates/KinematicCloud/KinematicCloud.H |  6 +++
 .../clouds/Templates/MPPICCloud/MPPICCloud.C  |  6 +--
 .../Templates/ReactingCloud/ReactingCloud.C   |  2 +-
 .../ReactingHeterogeneousCloud.C              |  3 +-
 .../ReactingMultiphaseCloud.C                 |  4 +-
 .../Templates/ThermoCloud/ThermoCloud.C       |  2 +-
 .../Templates/ThermoCloud/ThermoCloudI.H      | 12 +++--
 .../FaceInteraction/FaceInteraction.C         |  6 +--
 .../FacePostProcessing/FacePostProcessing.C   | 11 ++---
 .../ParticleCollector/ParticleCollector.C     |  9 ++--
 .../ParticleZoneInfo/ParticleZoneInfo.C       | 10 ++---
 .../RemoveParcels/RemoveParcels.C             |  6 +--
 .../HeterogeneousReactingModel.C              |  6 ++-
 .../HeterogeneousReactingModel.H              |  4 +-
 .../InjectedParticleDistributionInjection.C   |  4 +-
 .../InjectedParticleDistributionInjection.H   |  4 +-
 .../InjectedParticleInjection.C               |  4 +-
 .../InjectedParticleInjection.H               |  4 +-
 .../InjectionModel/InjectionModel.C           |  8 ++--
 .../InjectionModel/InjectionModel.H           |  4 +-
 .../InjectionModel/InjectionModelList.C       | 44 ++++++++-----------
 .../InjectionModel/InjectionModelList.H       |  6 +--
 .../LocalInteraction/LocalInteraction.C       |  8 ++--
 .../LocalInteraction/LocalInteraction.H       |  4 +-
 .../MultiInteraction/MultiInteraction.C       |  8 ++--
 .../MultiInteraction/MultiInteraction.H       |  4 +-
 .../PatchInteractionModel.C                   |  6 ++-
 .../PatchInteractionModel.H                   |  4 +-
 .../RecycleInteraction/RecycleInteraction.C   | 16 +++----
 .../RecycleInteraction/RecycleInteraction.H   |  4 +-
 .../StandardWallInteraction.C                 |  8 ++--
 .../StandardWallInteraction.H                 |  4 +-
 .../KinematicSurfaceFilm.C                    | 26 +++--------
 .../KinematicSurfaceFilm.H                    |  4 +-
 .../NoSurfaceFilm/NoSurfaceFilm.C             |  5 ---
 .../NoSurfaceFilm/NoSurfaceFilm.H             |  6 ---
 .../SurfaceFilmModel/SurfaceFilmModel.C       |  6 ++-
 .../SurfaceFilmModel/SurfaceFilmModel.H       |  4 +-
 .../PhaseChangeModel/PhaseChangeModel.C       |  6 ++-
 .../PhaseChangeModel/PhaseChangeModel.H       |  4 +-
 .../DevolatilisationModel.C                   |  6 ++-
 .../DevolatilisationModel.H                   |  4 +-
 .../SurfaceReactionModel.C                    |  6 ++-
 .../SurfaceReactionModel.H                    |  4 +-
 .../ThermoSurfaceFilm/ThermoSurfaceFilm.C     |  4 +-
 .../ThermoSurfaceFilm/ThermoSurfaceFilm.H     |  4 +-
 48 files changed, 173 insertions(+), 181 deletions(-)

diff --git a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C
index 7cfca61ea6b..89ccfdeee0d 100644
--- a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C
@@ -208,7 +208,7 @@ void  Foam::CollidingCloud<CloudType>::motion
 
     if (nSubCycles > 1)
     {
-        Info<< "    " << nSubCycles << " move-collide subCycles" << endl;
+        Log_<< "    " << nSubCycles << " move-collide subCycles" << endl;
 
         subCycleTime moveCollideSubCycle
         (
@@ -238,7 +238,7 @@ void Foam::CollidingCloud<CloudType>::info()
     scalar rotationalKineticEnergy = rotationalKineticEnergyOfSystem();
     reduce(rotationalKineticEnergy, sumOp<scalar>());
 
-    Info<< "    Rotational kinetic energy       = "
+    Log_<< "    Rotational kinetic energy       = "
         << rotationalKineticEnergy << nl;
 }
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
index 460a83a8a35..db2132bf0ac 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
@@ -133,6 +133,8 @@ void Foam::KinematicCloud<CloudType>::solve
 {
     addProfiling(prof, "cloud::solve");
 
+    log = solution_.log();
+
     if (solution_.steadyState())
     {
         cloud.storeState();
@@ -267,7 +269,7 @@ void Foam::KinematicCloud<CloudType>::postEvolve
     const typename parcelType::trackingData& td
 )
 {
-    Info<< endl;
+    Log_<< endl;
 
     if (debug)
     {
@@ -457,7 +459,8 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
             mesh_,
             dimensionedScalar(dimMass, Zero)
         )
-    )
+    ),
+    log(true)
 {
     if (solution_.active())
     {
@@ -545,7 +548,8 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
             ),
             c.UCoeff_()
         )
-    )
+    ),
+    log(c.log)
 {}
 
 
@@ -611,7 +615,8 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
 
     UIntegrator_(nullptr),
     UTrans_(nullptr),
-    UCoeff_(nullptr)
+    UCoeff_(nullptr),
+    log(c.log)
 {}
 
 
@@ -743,7 +748,7 @@ void Foam::KinematicCloud<CloudType>::preEvolve
     // with topology change due to lazy evaluation of valid mesh dimensions
     label nGeometricD = mesh_.nGeometricD();
 
-    Info<< "\nSolving" << nGeometricD << "-D cloud " << this->name() << endl;
+    Log_<< "\nSolving" << nGeometricD << "-D cloud " << this->name() << endl;
 
     this->dispersion().cacheFields(true);
     forces_.cacheFields(true);
@@ -881,7 +886,7 @@ void Foam::KinematicCloud<CloudType>::info()
       : 0
     );
 
-    Info<< "Cloud: " << this->name() << nl
+    Log_<< "Cloud: " << this->name() << nl
         << "    Current number of parcels       = " << nTotParcel << nl
         << "    Current mass in system          = "
         << returnReduce(massInSystem(), sumOp<scalar>()) << nl
@@ -890,9 +895,10 @@ void Foam::KinematicCloud<CloudType>::info()
         << "    Linear kinetic energy           = " << linearKineticEnergy << nl
         << "    Average particle per parcel     = " << particlePerParcel << nl;
 
-    injectors_.info(Info);
-    this->surfaceFilm().info(Info);
-    this->patchInteraction().info(Info);
+
+    injectors_.info();
+    this->surfaceFilm().info();
+    this->patchInteraction().info();
 
     if (this->packingModel().active())
     {
@@ -906,8 +912,8 @@ void Foam::KinematicCloud<CloudType>::info()
         const scalar alphaMin = gMin(alpha().primitiveField());
         const scalar alphaMax = gMax(alpha().primitiveField());
 
-        Info<< "    Min cell volume fraction        = " << alphaMin << endl;
-        Info<< "    Max cell volume fraction        = " << alphaMax << endl;
+        Log_<< "    Min cell volume fraction        = " << alphaMin << nl
+            << "    Max cell volume fraction        = " << alphaMax << endl;
 
         if (alphaMax < SMALL)
         {
@@ -933,7 +939,7 @@ void Foam::KinematicCloud<CloudType>::info()
 
         reduce(nMin, minOp<scalar>());
 
-        Info<< "    Min dense number of parcels     = " << nMin << endl;
+        Log_<< "    Min dense number of parcels     = " << nMin << endl;
     }
 }
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
index 288c7ec747f..267a7643cdd 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
@@ -302,6 +302,12 @@ protected:
 
 public:
 
+    // Public Data
+
+        //- Flag to write log into Info
+        bool log;
+
+
     // Constructors
 
         //- Construct given carrier gas fields
diff --git a/src/lagrangian/intermediate/clouds/Templates/MPPICCloud/MPPICCloud.C b/src/lagrangian/intermediate/clouds/Templates/MPPICCloud/MPPICCloud.C
index 54549cbe8cf..14dcb633edc 100644
--- a/src/lagrangian/intermediate/clouds/Templates/MPPICCloud/MPPICCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/MPPICCloud/MPPICCloud.C
@@ -286,8 +286,8 @@ void Foam::MPPICCloud<CloudType>::info()
     const scalar alphaMin = gMin(alpha().primitiveField());
     const scalar alphaMax = gMax(alpha().primitiveField());
 
-    Info<< "    Min cell volume fraction        = " << alphaMin << endl;
-    Info<< "    Max cell volume fraction        = " << alphaMax << endl;
+    Log_ << "    Min cell volume fraction        = " << alphaMin << nl
+         << "    Max cell volume fraction        = " << alphaMax << endl;
 
     if (alphaMax < SMALL)
     {
@@ -313,7 +313,7 @@ void Foam::MPPICCloud<CloudType>::info()
 
     reduce(nMin, minOp<scalar>());
 
-    Info<< "    Min dense number of parcels     = " << nMin << endl;
+    Log_<< "    Min dense number of parcels     = " << nMin << endl;
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
index e1b91f54889..f50cdf9c439 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
@@ -336,7 +336,7 @@ void Foam::ReactingCloud<CloudType>::info()
 {
     CloudType::info();
 
-    this->phaseChange().info(Info);
+    this->phaseChange().info();
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingHeterogeneousCloud/ReactingHeterogeneousCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingHeterogeneousCloud/ReactingHeterogeneousCloud.C
index e11627b45a9..11f6214f095 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingHeterogeneousCloud/ReactingHeterogeneousCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingHeterogeneousCloud/ReactingHeterogeneousCloud.C
@@ -247,7 +247,8 @@ template<class CloudType>
 void Foam::ReactingHeterogeneousCloud<CloudType>::info()
 {
     CloudType::info();
-    heterogeneousReactionModel_->info(Info);
+
+    heterogeneousReactionModel_->info();
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
index b2b68dae3f5..be23dc5fa5e 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
@@ -287,8 +287,8 @@ void Foam::ReactingMultiphaseCloud<CloudType>::info()
 {
     CloudType::info();
 
-    this->devolatilisation().info(Info);
-    this->surfaceReaction().info(Info);
+    this->devolatilisation().info();
+    this->surfaceReaction().info();
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
index 35a0e140b3d..8eacefd6aae 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
@@ -484,7 +484,7 @@ void Foam::ThermoCloud<CloudType>::info()
 {
     CloudType::info();
 
-    Info<< "    Temperature min/max             = " << Tmin() << ", " << Tmax()
+    Log_<< "    Temperature min/max             = " << Tmin() << ", " << Tmax()
         << endl;
 }
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H
index 6413a68b9be..dac71f356e9 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H
@@ -226,13 +226,11 @@ template<class CloudType>
 inline Foam::tmp<Foam::fvScalarMatrix>
 Foam::ThermoCloud<CloudType>::Sh(volScalarField& hs) const
 {
-    if (debug)
-    {
-        Info<< "hsTrans min/max = " << min(hsTrans()).value() << ", "
-            << max(hsTrans()).value() << nl
-            << "hsCoeff min/max = " << min(hsCoeff()).value() << ", "
-            << max(hsCoeff()).value() << endl;
-    }
+    DebugInfo
+        << "hsTrans min/max = " << min(hsTrans()).value() << ", "
+        << max(hsTrans()).value() << nl
+        << "hsCoeff min/max = " << min(hsCoeff()).value() << ", "
+        << max(hsCoeff()).value() << endl;
 
     if (this->solution().coupled())
     {
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FaceInteraction/FaceInteraction.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FaceInteraction/FaceInteraction.C
index bb2162c1b32..0e06c6e1629 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FaceInteraction/FaceInteraction.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FaceInteraction/FaceInteraction.C
@@ -70,7 +70,7 @@ void Foam::FaceInteraction<CloudType>::write()
     const fvMesh& mesh = this->owner().mesh();
     const faceZoneMesh& fzm = mesh.faceZones();
 
-    Info<< type() << " output:" << nl;
+    Log_<< type() << " output:" << nl;
 
     // Retrieve any stored data
     const label nZones = faceZoneIDs_.size();
@@ -98,7 +98,7 @@ void Foam::FaceInteraction<CloudType>::write()
     forAll(faceZoneIDs_, i)
     {
         const label zonei = faceZoneIDs_[i];
-        Info<< "    Zone : " << fzm[zonei].name() << nl
+        Log_<< "    Zone : " << fzm[zonei].name() << nl
             << "        Escape  : " << npe[i] << nl
             << "        Stick   : " << nps[i] << nl
             << "        Rebound : " << npr[i] << nl;
@@ -116,7 +116,7 @@ void Foam::FaceInteraction<CloudType>::write()
                 << endl;
         }
     }
-    Info<< endl;
+    Log_<< endl;
 
     // Set restart data
     this->setModelProperty("nEscape", npe);
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C
index f6970e42a97..12c6875e998 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C
@@ -46,10 +46,7 @@ void Foam::FacePostProcessing<CloudType>::makeLogFile
     // Create the output file if not already created
     if (log_)
     {
-        if (debug)
-        {
-            Info<< "Creating output file." << endl;
-        }
+        DebugInfo << "Creating output file." << endl;
 
         if (Pstream::master())
         {
@@ -102,7 +99,7 @@ void Foam::FacePostProcessing<CloudType>::write()
 
     const label proci = Pstream::myProcNo();
 
-    Info<< type() << " output:" << nl;
+    Log_<< type() << " output:" << nl;
 
     List<scalarField> zoneMassTotal(mass_.size());
     List<scalarField> zoneMassFlowRate(massFlowRate_.size());
@@ -130,7 +127,7 @@ void Foam::FacePostProcessing<CloudType>::write()
             );
         const scalar sumMassFlowRate = sum(zoneMassFlowRate[zoneI]);
 
-        Info<< "    " << zoneName
+        Log_<< "    " << zoneName
             << ": total mass = " << sumMassTotal
             << "; average mass flow rate = " << sumMassFlowRate
             << nl;
@@ -143,7 +140,7 @@ void Foam::FacePostProcessing<CloudType>::write()
         }
     }
 
-    Info<< endl;
+    Log_<< endl;
 
 
     if (surfaceFormat_ != "none")
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C
index 6cfb6c04d3c..d00227e33cf 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C
@@ -47,10 +47,7 @@ void Foam::ParticleCollector<CloudType>::makeLogFile
     // Create the output file if not already created
     if (log_)
     {
-        if (debug)
-        {
-            Info<< "Creating output file" << endl;
-        }
+        DebugInfo<< "Creating output file" << endl;
 
         if (Pstream::master())
         {
@@ -419,7 +416,7 @@ void Foam::ParticleCollector<CloudType>::write()
         massTotal_[facei] += mass_[facei];
     }
 
-    Info<< type() << " output:" << nl;
+    Log_<< type() << " output:" << nl;
 
     Field<scalar> faceMassTotal(mass_.size(), Zero);
     this->getModelProperty("massTotal", faceMassTotal);
@@ -452,7 +449,7 @@ void Foam::ParticleCollector<CloudType>::write()
         }
     }
 
-    Info<< "    sum(total mass) = " << sumTotalMass << nl
+    Log_<< "    sum(total mass) = " << sumTotalMass << nl
         << "    sum(average mass flow rate) = " << sumAverageMFR << nl
         << endl;
 
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleZoneInfo/ParticleZoneInfo.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleZoneInfo/ParticleZoneInfo.C
index 62d38883429..e78d65a5ee7 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleZoneInfo/ParticleZoneInfo.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleZoneInfo/ParticleZoneInfo.C
@@ -287,7 +287,7 @@ void Foam::ParticleZoneInfo<CloudType>::postEvolve
     const typename parcelType::trackingData& td
 )
 {
-    Info<< this->type() << ":" << nl
+    Log_<< this->type() << ":" << nl
         << "    Cell zone                       = " << cellZoneName_ << nl
         << "    Contributions                   = "
         << returnReduce(movedParticles_.size(), sumOp<label>())
@@ -295,7 +295,7 @@ void Foam::ParticleZoneInfo<CloudType>::postEvolve
 
     if (!this->writeTime())
     {
-        Info<< endl;
+        Log_<< endl;
     }
 
     for (const auto& p : movedParticles_)
@@ -412,7 +412,7 @@ void Foam::ParticleZoneInfo<CloudType>::write()
                 }
             }
 
-            Info<< "    Number of particles             = " << nData << nl
+            Log_<< "    Number of particles             = " << nData << nl
                 << "    Written data to " << os.name() << endl;
 
             this->setModelProperty("data", globalParticles);
@@ -437,14 +437,14 @@ void Foam::ParticleZoneInfo<CloudType>::write()
             os << p << nl;
         }
 
-        Info<< "    Number of particles             = " << data_.size() << nl
+        Log_<< "    Number of particles             = " << data_.size() << nl
             << "    Written data to " << os.name() << endl;
 
         this->setModelProperty("data", data_);
         this->setModelProperty("maxIDs", maxIDs_);
     }
 
-    Info<< endl;
+    Log_<< endl;
 }
 
 
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/RemoveParcels/RemoveParcels.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/RemoveParcels/RemoveParcels.C
index 62a7d40910f..fb429212b21 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/RemoveParcels/RemoveParcels.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/RemoveParcels/RemoveParcels.C
@@ -81,7 +81,7 @@ void Foam::RemoveParcels<CloudType>::postEvolve
     const typename parcelType::trackingData& td
 )
 {
-    Info<< this->modelName() << " output:" << nl;
+    Log_<< this->modelName() << " output:" << nl;
 
     const fvMesh& mesh = this->owner().mesh();
     const faceZoneMesh& fzm = mesh.faceZones();
@@ -93,7 +93,7 @@ void Foam::RemoveParcels<CloudType>::postEvolve
         scalar zoneMass = returnReduce(mass_[i], sumOp<scalar>());
         label zoneNParcels = returnReduce(nParcels_[i], sumOp<label>());
 
-        Info<< "    faceZone " << zoneName
+        Log_<< "    faceZone " << zoneName
             << ": removed " << zoneNParcels
             << " parcels with mass " << zoneMass
             << nl;
@@ -127,7 +127,7 @@ void Foam::RemoveParcels<CloudType>::write()
         }
     }
 
-    Info<< endl;
+    Log_<< endl;
 
     if (resetOnWrite_)
     {
diff --git a/src/lagrangian/intermediate/submodels/HeterogeneousReactingModel/HeterogeneousReactingModel/HeterogeneousReactingModel.C b/src/lagrangian/intermediate/submodels/HeterogeneousReactingModel/HeterogeneousReactingModel/HeterogeneousReactingModel.C
index 121ed5e2ef4..7ca9590d4f9 100644
--- a/src/lagrangian/intermediate/submodels/HeterogeneousReactingModel/HeterogeneousReactingModel/HeterogeneousReactingModel.C
+++ b/src/lagrangian/intermediate/submodels/HeterogeneousReactingModel/HeterogeneousReactingModel/HeterogeneousReactingModel.C
@@ -87,12 +87,14 @@ Foam::label Foam::HeterogeneousReactingModel<CloudType>::nF() const
 
 
 template<class CloudType>
-void Foam::HeterogeneousReactingModel<CloudType>::info(Ostream& os)
+void Foam::HeterogeneousReactingModel<CloudType>::info()
 {
+    CloudSubModelBase<CloudType>::info();
+
     const scalar mass0 = this->template getBaseProperty<scalar>("mass");
     const scalar massTotal = mass0 + returnReduce(dMass_, sumOp<scalar>());
 
-    Info<< "    Mass transfer surface reaction  = " << massTotal << nl;
+    Log_<< "    Mass transfer surface reaction  = " << massTotal << nl;
 
     if (this->writeTime())
     {
diff --git a/src/lagrangian/intermediate/submodels/HeterogeneousReactingModel/HeterogeneousReactingModel/HeterogeneousReactingModel.H b/src/lagrangian/intermediate/submodels/HeterogeneousReactingModel/HeterogeneousReactingModel/HeterogeneousReactingModel.H
index 6e419bc5428..3d2daa75241 100644
--- a/src/lagrangian/intermediate/submodels/HeterogeneousReactingModel/HeterogeneousReactingModel/HeterogeneousReactingModel.H
+++ b/src/lagrangian/intermediate/submodels/HeterogeneousReactingModel/HeterogeneousReactingModel/HeterogeneousReactingModel.H
@@ -164,8 +164,8 @@ public:
         //- Number of progress variable
         virtual label nF() const;
 
-        //- Write injection info to stream
-        virtual void info(Ostream& os);
+        //- Write injection info
+        virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C
index d033f433eb3..3cdad615aba 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C
@@ -501,9 +501,9 @@ bool Foam::InjectedParticleDistributionInjection<CloudType>::validInjection
 
 
 template<class CloudType>
-void Foam::InjectedParticleDistributionInjection<CloudType>::info(Ostream& os)
+void Foam::InjectedParticleDistributionInjection<CloudType>::info()
 {
-    InjectionModel<CloudType>::info(os);
+    InjectionModel<CloudType>::info();
 
     if (this->writeTime())
     {
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.H
index 9ab3544a604..f78e5406d0d 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.H
@@ -243,8 +243,8 @@ public:
 
         // I-O
 
-            //- Write injection info to stream
-            void info(Ostream& os);
+            //- Write injection info
+            void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleInjection/InjectedParticleInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleInjection/InjectedParticleInjection.C
index 9e8b6597e4c..76e05f08fa2 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleInjection/InjectedParticleInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleInjection/InjectedParticleInjection.C
@@ -364,9 +364,9 @@ bool Foam::InjectedParticleInjection<CloudType>::validInjection
 
 
 template<class CloudType>
-void Foam::InjectedParticleInjection<CloudType>::info(Ostream& os)
+void Foam::InjectedParticleInjection<CloudType>::info()
 {
-    InjectionModel<CloudType>::info(os);
+    InjectionModel<CloudType>::info();
 
     if (this->writeTime())
     {
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleInjection/InjectedParticleInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleInjection/InjectedParticleInjection.H
index 8c1a35752db..666808ee27e 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleInjection/InjectedParticleInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleInjection/InjectedParticleInjection.H
@@ -208,8 +208,8 @@ public:
 
         // I-O
 
-            //- Write injection info to stream
-            void info(Ostream& os);
+            //- Write injection info
+            void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C
index 6578ff03dd6..a8e76293c0f 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C
@@ -237,7 +237,7 @@ void Foam::InjectionModel<CloudType>::postInjectCheck
 
     if (allParcelsAdded > 0)
     {
-        Info<< nl
+        Log_<< nl
             << "Cloud: " << this->owner().name()
             << " injector: " << this->modelName() << nl
             << "    Added " << allParcelsAdded << " new parcels" << nl << endl;
@@ -666,9 +666,11 @@ void Foam::InjectionModel<CloudType>::injectSteadyState
 
 
 template<class CloudType>
-void Foam::InjectionModel<CloudType>::info(Ostream& os)
+void Foam::InjectionModel<CloudType>::info()
 {
-    os  << "    Injector " << this->modelName() << ":" << nl
+    CloudSubModelBase<CloudType>::info();
+
+    Log_<< "    Injector " << this->modelName() << ":" << nl
         << "      - parcels added               = " << parcelsAddedTotal_ << nl
         << "      - mass introduced             = " << massInjected_ << nl;
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H
index 7de7e4cf6f4..b5015077886 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H
@@ -367,8 +367,8 @@ public:
 
         // I-O
 
-            //- Write injection info to stream
-            virtual void info(Ostream& os);
+            //- Write injection info
+            virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModelList.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModelList.C
index 4aa81a6726f..a4cc84a305b 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModelList.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModelList.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2012-2017 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -105,22 +106,15 @@ Foam::InjectionModelList<CloudType>::InjectionModelList
 {}
 
 
-// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
-
-template<class CloudType>
-Foam::InjectionModelList<CloudType>::~InjectionModelList()
-{}
-
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template<class CloudType>
 Foam::scalar Foam::InjectionModelList<CloudType>::timeStart() const
 {
     scalar minTime = GREAT;
-    forAll(*this, i)
+    for (const auto& model : *this)
     {
-        minTime = min(minTime, this->operator[](i).timeStart());
+        minTime = min(minTime, model.timeStart());
     }
 
     return minTime;
@@ -131,9 +125,9 @@ template<class CloudType>
 Foam::scalar Foam::InjectionModelList<CloudType>::timeEnd() const
 {
     scalar maxTime = -GREAT;
-    forAll(*this, i)
+    for (const auto& model : *this)
     {
-        maxTime = max(maxTime, this->operator[](i).timeEnd());
+        maxTime = max(maxTime, model.timeEnd());
     }
 
     return maxTime;
@@ -148,9 +142,9 @@ Foam::scalar Foam::InjectionModelList<CloudType>::volumeToInject
 )
 {
     scalar vol = 0.0;
-    forAll(*this, i)
+    for (auto& model : *this)
     {
-        vol += this->operator[](i).volumeToInject(time0, time1);
+        vol += model.volumeToInject(time0, time1);
     }
 
     return vol;
@@ -162,10 +156,10 @@ Foam::scalar Foam::InjectionModelList<CloudType>::averageParcelMass()
 {
     scalar mass = 0.0;
     scalar massTotal = 0.0;
-    forAll(*this, i)
+    for (auto& model : *this)
     {
-        scalar mt = this->operator[](i).massTotal();
-        mass += mt*this->operator[](i).averageParcelMass();
+        scalar mt = model.massTotal();
+        mass += mt*model.averageParcelMass();
         massTotal += mt;
     }
 
@@ -176,9 +170,9 @@ Foam::scalar Foam::InjectionModelList<CloudType>::averageParcelMass()
 template<class CloudType>
 void Foam::InjectionModelList<CloudType>::updateMesh()
 {
-    forAll(*this, i)
+    for (auto& model : *this)
     {
-        this->operator[](i).updateMesh();
+        model.updateMesh();
     }
 }
 
@@ -191,9 +185,9 @@ void Foam::InjectionModelList<CloudType>::inject
     typename CloudType::parcelType::trackingData& td
 )
 {
-    forAll(*this, i)
+    for (auto& model : *this)
     {
-        this->operator[](i).inject(cloud, td);
+        model.inject(cloud, td);
     }
 }
 
@@ -207,19 +201,19 @@ void Foam::InjectionModelList<CloudType>::injectSteadyState
     const scalar trackTime
 )
 {
-    forAll(*this, i)
+    for (auto& model : *this)
     {
-        this->operator[](i).injectSteadyState(cloud, td, trackTime);
+        model.injectSteadyState(cloud, td, trackTime);
     }
 }
 
 
 template<class CloudType>
-void Foam::InjectionModelList<CloudType>::info(Ostream& os)
+void Foam::InjectionModelList<CloudType>::info()
 {
-    forAll(*this, i)
+    for (auto& model : *this)
     {
-        this->operator[](i).info(os);
+        model.info();
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModelList.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModelList.H
index 615f2cc9cd3..2cf2888e035 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModelList.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModelList.H
@@ -78,7 +78,7 @@ public:
 
 
     //- Destructor
-    virtual ~InjectionModelList();
+    virtual ~InjectionModelList() = default;
 
 
 
@@ -127,8 +127,8 @@ public:
 
         // I-O
 
-            //- Write injection info to stream
-            virtual void info(Ostream& os);
+            //- Write injection info
+            virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C
index 8a835dbd61b..6bf4fd64df4 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C
@@ -341,9 +341,9 @@ bool Foam::LocalInteraction<CloudType>::correct
 
 
 template<class CloudType>
-void Foam::LocalInteraction<CloudType>::info(Ostream& os)
+void Foam::LocalInteraction<CloudType>::info()
 {
-    PatchInteractionModel<CloudType>::info(os);
+    PatchInteractionModel<CloudType>::info();
 
     // retrieve any stored data
     labelListList npe0(patchData_.size());
@@ -411,7 +411,7 @@ void Foam::LocalInteraction<CloudType>::info(Ostream& os)
             {
                 const word& patchName = patchData_[patchi].patchName();
 
-                os  << "    Parcel fate: patch " <<  patchName
+                Log_<< "    Parcel fate: patch " <<  patchName
                     << " (number, mass)" << nl
                     << "      - escape  (injector " << indexToInjector[indexi]
                     << " )  = " << npe[patchi][indexi]
@@ -428,7 +428,7 @@ void Foam::LocalInteraction<CloudType>::info(Ostream& os)
         {
             const word& patchName = patchData_[patchi].patchName();
 
-            os  << "    Parcel fate: patch " << patchName
+            Log_<< "    Parcel fate: patch " << patchName
                 << " (number, mass)" << nl
                 << "      - escape                      = "
                 << npe[patchi][0] << ", " << mpe[patchi][0] << nl
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.H b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.H
index 80d23d1f288..ce74b523808 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.H
@@ -145,8 +145,8 @@ public:
         );
 
 
-        //- Write patch interaction info to stream
-        virtual void info(Ostream& os);
+        //- Write patch interaction info
+        virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/MultiInteraction/MultiInteraction.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/MultiInteraction/MultiInteraction.C
index 3bc8234bd4e..09e74936c4f 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/MultiInteraction/MultiInteraction.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/MultiInteraction/MultiInteraction.C
@@ -187,12 +187,14 @@ void Foam::MultiInteraction<CloudType>::postEvolve()
 
 
 template<class CloudType>
-void Foam::MultiInteraction<CloudType>::info(Ostream& os)
+void Foam::MultiInteraction<CloudType>::info()
 {
+    PatchInteractionModel<CloudType>::info();
+
     for (auto& m : models_)
     {
-        Info<< "Patch interaction model " << m.type() << ':' << endl;
-        m.info(os);
+        Log_<< "Patch interaction model " << m.type() << ':' << endl;
+        m.info();
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/MultiInteraction/MultiInteraction.H b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/MultiInteraction/MultiInteraction.H
index 18f82f38ecc..98ac5d39538 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/MultiInteraction/MultiInteraction.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/MultiInteraction/MultiInteraction.H
@@ -152,8 +152,8 @@ public:
         //- Post-evolve hook
         virtual void postEvolve();
 
-        //- Write patch interaction info to stream
-        virtual void info(Ostream& os);
+        //- Write patch interaction
+        virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C
index 2c32af36f8a..8c1e32e6bcf 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C
@@ -214,8 +214,10 @@ void Foam::PatchInteractionModel<CloudType>::postEvolve()
 
 
 template<class CloudType>
-void Foam::PatchInteractionModel<CloudType>::info(Ostream& os)
+void Foam::PatchInteractionModel<CloudType>::info()
 {
+    CloudSubModelBase<CloudType>::info();
+
     const label escapedParcels0 =
         this->template getBaseProperty<label>("escapedParcels");
     const label escapedParcelsTotal =
@@ -226,7 +228,7 @@ void Foam::PatchInteractionModel<CloudType>::info(Ostream& os)
     const scalar escapedMassTotal =
         escapedMass0 + returnReduce(escapedMass_, sumOp<scalar>());
 
-    os  << "    Parcel fate: system (number, mass)" << nl
+    Log_<< "    Parcel fate: system (number, mass)" << nl
         << "      - escape                      = " << escapedParcelsTotal
         << ", " << escapedMassTotal << endl;
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H
index 17b3e62bbb4..aedf2ebf90c 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H
@@ -191,8 +191,8 @@ public:
         //- Post-evolve hook
         virtual void postEvolve();
 
-        //- Write patch interaction info to stream
-        virtual void info(Ostream& os);
+        //- Write patch interaction info
+        virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/RecycleInteraction/RecycleInteraction.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/RecycleInteraction/RecycleInteraction.C
index d8d28820a46..59c16af5e13 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/RecycleInteraction/RecycleInteraction.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/RecycleInteraction/RecycleInteraction.C
@@ -349,9 +349,9 @@ void Foam::RecycleInteraction<CloudType>::postEvolve()
 
 
 template<class CloudType>
-void Foam::RecycleInteraction<CloudType>::info(Ostream& os)
+void Foam::RecycleInteraction<CloudType>::info()
 {
-    PatchInteractionModel<CloudType>::info(os);
+    PatchInteractionModel<CloudType>::info();
 
     labelListList npr0(nRemoved_.size());
     scalarListList mpr0(massRemoved_.size());
@@ -416,12 +416,12 @@ void Foam::RecycleInteraction<CloudType>::info(Ostream& os)
         {
             const word& outPatchName =  recyclePatches_[i].first();
 
-            os  << "    Parcel fate: patch " <<  outPatchName
+            Log_<< "    Parcel fate: patch " <<  outPatchName
                 << " (number, mass)" << nl;
 
             forAll(mpr[i], indexi)
             {
-                os  << "      - removed  (injector " << indexToInjector[indexi]
+                Log_<< "      - removed  (injector " << indexToInjector[indexi]
                     << ")  = " << npr[i][indexi]
                     << ", " << mpr[i][indexi] << nl;
 
@@ -431,12 +431,12 @@ void Foam::RecycleInteraction<CloudType>::info(Ostream& os)
 
             const word& inPatchName = recyclePatches_[i].second();
 
-            os  << "    Parcel fate: patch " <<  inPatchName
+            Log_<< "    Parcel fate: patch " <<  inPatchName
                 << " (number, mass)" << nl;
 
             forAll(mpi[i], indexi)
             {
-                os  << "      - injected  (injector " << indexToInjector[indexi]
+                Log_<< "      - injected  (injector " << indexToInjector[indexi]
                     << ")  = " << npi[i][indexi]
                     << ", " << mpi[i][indexi] << nl;
                 this->file()
@@ -452,7 +452,7 @@ void Foam::RecycleInteraction<CloudType>::info(Ostream& os)
         {
             const word& outPatchName =  recyclePatches_[i].first();
 
-            os  << "    Parcel fate: patch " <<  outPatchName
+            Log_<< "    Parcel fate: patch " <<  outPatchName
                 << " (number, mass)" << nl
                 << "      - removed    = " << npr[i][0] << ", " << mpr[i][0]
                 << nl;
@@ -465,7 +465,7 @@ void Foam::RecycleInteraction<CloudType>::info(Ostream& os)
         {
             const word& inPatchName = recyclePatches_[i].second();
 
-            os  << "    Parcel fate: patch " <<  inPatchName
+            Log_<< "    Parcel fate: patch " <<  inPatchName
                 << " (number, mass)" << nl
                 << "      - injected   = " << npi[i][0] << ", " << mpi[i][0]
                 << nl;
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/RecycleInteraction/RecycleInteraction.H b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/RecycleInteraction/RecycleInteraction.H
index 9ae191b6220..5fd7165fa7d 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/RecycleInteraction/RecycleInteraction.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/RecycleInteraction/RecycleInteraction.H
@@ -204,8 +204,8 @@ public:
         //- Post-evolve hook
         virtual void postEvolve();
 
-        //- Write patch interaction info to stream
-        virtual void info(Ostream& os);
+        //- Write patch interaction info
+        virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C
index c196a2ab7e8..5f9f1033a7e 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C
@@ -257,9 +257,9 @@ bool Foam::StandardWallInteraction<CloudType>::correct
 
 
 template<class CloudType>
-void Foam::StandardWallInteraction<CloudType>::info(Ostream& os)
+void Foam::StandardWallInteraction<CloudType>::info()
 {
-    PatchInteractionModel<CloudType>::info(os);
+    PatchInteractionModel<CloudType>::info();
 
     labelListList npe0(nEscape_.size());
     scalarListList mpe0(nEscape_.size());
@@ -326,7 +326,7 @@ void Foam::StandardWallInteraction<CloudType>::info(Ostream& os)
             {
                 const word& patchName = mesh_.boundary()[patchi].name() ;
 
-                os  << "    Parcel fate: patch " <<  patchName
+                Log_<< "    Parcel fate: patch " <<  patchName
                     << " (number, mass)" << nl
                     << "      - escape  (injector " << indexToInjector[indexi]
                     << ")  = " << npe[patchi][indexi]
@@ -349,7 +349,7 @@ void Foam::StandardWallInteraction<CloudType>::info(Ostream& os)
         {
             const word& patchName = mesh_.boundary()[patchi].name();
 
-            os  << "    Parcel fate: patch (number, mass) "
+            Log_<< "    Parcel fate: patch (number, mass) "
                 << patchName << nl
                 << "      - escape                      = "
                 << npe[patchi][0] << ", " << mpe[patchi][0] << nl
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.H b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.H
index 71178cd36b5..1b821e97029 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.H
@@ -155,8 +155,8 @@ public:
         );
 
 
-        //- Write patch interaction info to stream
-        virtual void info(Ostream& os);
+        //- Write patch interaction info
+        virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/KinematicSurfaceFilm/KinematicSurfaceFilm.C b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/KinematicSurfaceFilm/KinematicSurfaceFilm.C
index bb2a93fc585..9805153880a 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/KinematicSurfaceFilm/KinematicSurfaceFilm.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/KinematicSurfaceFilm/KinematicSurfaceFilm.C
@@ -184,10 +184,7 @@ void Foam::KinematicSurfaceFilm<CloudType>::absorbInteraction
     bool& keepParticle
 )
 {
-    if (debug)
-    {
-        Info<< "Parcel " << p.origId() << " absorbInteraction" << endl;
-    }
+    DebugInfo<< "Parcel " << p.origId() << " absorbInteraction" << endl;
 
     // Patch face normal
     const vector& nf = pp.faceNormals()[facei];
@@ -231,10 +228,7 @@ void Foam::KinematicSurfaceFilm<CloudType>::bounceInteraction
     bool& keepParticle
 ) const
 {
-    if (debug)
-    {
-        Info<< "Parcel " << p.origId() << " bounceInteraction" << endl;
-    }
+    DebugInfo<< "Parcel " << p.origId() << " bounceInteraction" << endl;
 
     // Patch face normal
     const vector& nf = pp.faceNormals()[facei];
@@ -265,10 +259,7 @@ void Foam::KinematicSurfaceFilm<CloudType>::drySplashInteraction
     bool& keepParticle
 )
 {
-    if (debug)
-    {
-        Info<< "Parcel " << p.origId() << " drySplashInteraction" << endl;
-    }
+    DebugInfo<< "Parcel " << p.origId() << " drySplashInteraction" << endl;
 
     // Patch face velocity and normal
     const vector& Up = this->owner().U().boundaryField()[pp.index()][facei];
@@ -321,10 +312,7 @@ void Foam::KinematicSurfaceFilm<CloudType>::wetSplashInteraction
     bool& keepParticle
 )
 {
-    if (debug)
-    {
-        Info<< "Parcel " << p.origId() << " wetSplashInteraction" << endl;
-    }
+    DebugInfo<< "Parcel " << p.origId() << " wetSplashInteraction" << endl;
 
     // Patch face velocity and normal
     const vector& Up = this->owner().U().boundaryField()[pp.index()][facei];
@@ -815,15 +803,15 @@ void Foam::KinematicSurfaceFilm<CloudType>::setParcelProperties
 
 
 template<class CloudType>
-void Foam::KinematicSurfaceFilm<CloudType>::info(Ostream& os)
+void Foam::KinematicSurfaceFilm<CloudType>::info()
 {
-    SurfaceFilmModel<CloudType>::info(os);
+    SurfaceFilmModel<CloudType>::info();
 
     label nSplash0 = this->template getModelProperty<label>("nParcelsSplashed");
     label nSplashTotal =
         nSplash0 + returnReduce(nParcelsSplashed_, sumOp<label>());
 
-    os  << "      - new splash parcels          = " << nSplashTotal << endl;
+    Log_<< "      - new splash parcels          = " << nSplashTotal << endl;
 
     if (this->writeTime())
     {
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/KinematicSurfaceFilm/KinematicSurfaceFilm.H b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/KinematicSurfaceFilm/KinematicSurfaceFilm.H
index b98ccd6d771..d0300ef2d67 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/KinematicSurfaceFilm/KinematicSurfaceFilm.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/KinematicSurfaceFilm/KinematicSurfaceFilm.H
@@ -342,8 +342,8 @@ public:
 
         // I-O
 
-            //- Write surface film info to stream
-            virtual void info(Ostream& os);
+            //- Write surface film info
+            virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/NoSurfaceFilm/NoSurfaceFilm.C b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/NoSurfaceFilm/NoSurfaceFilm.C
index 924f5a37e15..f098ad2f34b 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/NoSurfaceFilm/NoSurfaceFilm.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/NoSurfaceFilm/NoSurfaceFilm.C
@@ -88,9 +88,4 @@ void Foam::NoSurfaceFilm<CloudType>::setParcelProperties
 {}
 
 
-template<class CloudType>
-void Foam::NoSurfaceFilm<CloudType>::info(Ostream&)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/NoSurfaceFilm/NoSurfaceFilm.H b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/NoSurfaceFilm/NoSurfaceFilm.H
index aa44958c737..eb4f734d746 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/NoSurfaceFilm/NoSurfaceFilm.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/NoSurfaceFilm/NoSurfaceFilm.H
@@ -114,12 +114,6 @@ public:
                 parcelType& p,
                 const label filmCelli
             ) const;
-
-
-        // I-O
-
-            //- Write surface film info to stream
-            virtual void info(Ostream& os);
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C
index 7c647a80aa6..e097e5d3fba 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C
@@ -436,8 +436,10 @@ void Foam::SurfaceFilmModel<CloudType>::setParcelProperties
 
 
 template<class CloudType>
-void Foam::SurfaceFilmModel<CloudType>::info(Ostream& os)
+void Foam::SurfaceFilmModel<CloudType>::info()
 {
+    CloudSubModelBase<CloudType>::info();
+
     label nTrans0 =
         this->template getModelProperty<label>("nParcelsTransferred");
 
@@ -457,7 +459,7 @@ void Foam::SurfaceFilmModel<CloudType>::info(Ostream& os)
         massTransferred0 + returnReduce(totalMassTransferred_, sumOp<scalar>());
 
 
-    os  << "    Surface film:" << nl
+    Log_<< "    Surface film:" << nl
         << "      - parcels absorbed            = " << nTransTotal << nl
         << "      - mass absorbed               = " << massTransferredTotal << nl
         << "      - parcels ejected             = " << nInjectTotal << endl;
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H
index 2c1410090e9..9238a322dfc 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H
@@ -275,8 +275,8 @@ public:
 
     // I-O
 
-        //- Write surface film info to stream
-        virtual void info(Ostream& os);
+        //- Write surface film info
+        virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.C
index 0daa0a77d4a..8639c2f500d 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.C
+++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.C
@@ -152,12 +152,14 @@ void Foam::PhaseChangeModel<CloudType>::addToPhaseChangeMass(const scalar dMass)
 
 
 template<class CloudType>
-void Foam::PhaseChangeModel<CloudType>::info(Ostream& os)
+void Foam::PhaseChangeModel<CloudType>::info()
 {
+    CloudSubModelBase<CloudType>::info();
+
     const scalar mass0 = this->template getBaseProperty<scalar>("mass");
     const scalar massTotal = mass0 + returnReduce(dMass_, sumOp<scalar>());
 
-    Info<< "    Mass transfer phase change      = " << massTotal << nl;
+    Log_<< "    Mass transfer phase change      = " << massTotal << nl;
 
     if (this->writeTime())
     {
diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H
index 70a40083df4..0aa1a63b9c3 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H
+++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H
@@ -199,8 +199,8 @@ public:
 
         // I-O
 
-            //- Write injection info to stream
-            virtual void info(Ostream& os);
+            //- Write injection info
+            virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.C
index cb8afcd60ca..b9afc243084 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.C
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.C
@@ -84,12 +84,14 @@ void Foam::DevolatilisationModel<CloudType>::addToDevolatilisationMass
 
 
 template<class CloudType>
-void Foam::DevolatilisationModel<CloudType>::info(Ostream& os)
+void Foam::DevolatilisationModel<CloudType>::info()
 {
+    CloudSubModelBase<CloudType>::info();
+
     const scalar mass0 = this->template getBaseProperty<scalar>("mass");
     const scalar massTotal = mass0 + returnReduce(dMass_, sumOp<scalar>());
 
-    Info<< "    Mass transfer devolatilisation  = " << massTotal << nl;
+    Log_<< "    Mass transfer devolatilisation  = " << massTotal << nl;
 
     if (this->writeTime())
     {
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H
index 1d194439b83..088080de864 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H
@@ -142,8 +142,8 @@ public:
 
         // I-O
 
-            //- Write injection info to stream
-            virtual void info(Ostream& os);
+            //- Write injection info
+            virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.C
index 569ef61711b..6c78bfe5f76 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.C
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.C
@@ -78,12 +78,14 @@ void Foam::SurfaceReactionModel<CloudType>::addToSurfaceReactionMass
 
 
 template<class CloudType>
-void Foam::SurfaceReactionModel<CloudType>::info(Ostream& os)
+void Foam::SurfaceReactionModel<CloudType>::info()
 {
+    CloudSubModelBase<CloudType>::info();
+
     const scalar mass0 = this->template getBaseProperty<scalar>("mass");
     const scalar massTotal = mass0 + returnReduce(dMass_, sumOp<scalar>());
 
-    Info<< "    Mass transfer surface reaction  = " << massTotal << nl;
+    Log_<< "    Mass transfer surface reaction  = " << massTotal << nl;
 
     if (this->writeTime())
     {
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
index b5af159926e..91a3d0870c7 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
@@ -155,8 +155,8 @@ public:
 
         // I-O
 
-            //- Write injection info to stream
-            virtual void info(Ostream& os);
+            //- Write injection info
+            virtual void info();
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C
index 83ee9c19e00..dbef189cc85 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C
@@ -275,9 +275,9 @@ void Foam::ThermoSurfaceFilm<CloudType>::setParcelProperties
 
 
 template<class CloudType>
-void Foam::ThermoSurfaceFilm<CloudType>::info(Ostream& os)
+void Foam::ThermoSurfaceFilm<CloudType>::info()
 {
-    KinematicSurfaceFilm<CloudType>::info(os);
+    KinematicSurfaceFilm<CloudType>::info();
 }
 
 
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H
index de985f84175..03ed5a41b08 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H
@@ -157,8 +157,8 @@ public:
 
         // I-O
 
-            //- Write surface film info to stream
-            virtual void info(Ostream& os);
+            //- Write surface film info
+            virtual void info();
 };
 
 
-- 
GitLab