From fda01c740bac639aa75446d60c9e1f1be52248b8 Mon Sep 17 00:00:00 2001
From: andy <a.heather@opencfd.co.uk>
Date: Wed, 20 Oct 2010 17:31:33 +0100
Subject: [PATCH] ENH: Remove duplicate constProps() from parcel trackData

---
 .../KinematicParcel/KinematicParcel.C         |  6 +++---
 .../KinematicParcel/KinematicParcel.H         |  6 ------
 .../KinematicParcel/KinematicParcelI.H        |  9 ---------
 .../ReactingMultiphaseParcel.C                | 16 ++++++++--------
 .../ReactingMultiphaseParcel.H                |  6 ------
 .../ReactingMultiphaseParcelI.H               | 12 +-----------
 .../Templates/ReactingParcel/ReactingParcel.C | 12 ++++++------
 .../Templates/ReactingParcel/ReactingParcel.H |  6 ------
 .../ReactingParcel/ReactingParcelI.H          |  9 ---------
 .../Templates/ThermoParcel/ThermoParcel.C     | 19 ++++++++++++-------
 .../Templates/ThermoParcel/ThermoParcel.H     |  6 ------
 .../Templates/ThermoParcel/ThermoParcelI.H    |  9 ---------
 12 files changed, 30 insertions(+), 86 deletions(-)

diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
index 4cd8e6df9bf..c35b17a7ea5 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
@@ -40,7 +40,7 @@ void Foam::KinematicParcel<ParcelType>::setCellValues
 
     rhoc_ = td.rhoInterp().interpolate(this->position(), tetIs);
 
-    if (rhoc_ < td.constProps().rhoMin())
+    if (rhoc_ < td.cloud().constProps().rhoMin())
     {
         WarningIn
         (
@@ -51,9 +51,9 @@ void Foam::KinematicParcel<ParcelType>::setCellValues
                 "const label"
             ")"
         )   << "Limiting observed density in cell " << cellI << " to "
-            << td.constProps().rhoMin() <<  nl << endl;
+            << td.cloud().constProps().rhoMin() <<  nl << endl;
 
-        rhoc_ = td.constProps().rhoMin();
+        rhoc_ = td.cloud().constProps().rhoMin();
     }
 
     Uc_ = td.UInterp().interpolate(this->position(), tetIs);
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
index 70724cc8169..b1e2b45f2f6 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
@@ -168,9 +168,6 @@ public:
             //- Reference to the cloud containing this particle
             KinematicCloud<ParcelType>& cloud_;
 
-            //- Particle constant properties
-            const constantProperties& constProps_;
-
 
             // Interpolators for continuous phase fields
 
@@ -209,9 +206,6 @@ public:
             //- Return access to the owner cloud
             inline KinematicCloud<ParcelType>& cloud();
 
-            //- Return const access to the constant properties
-            inline const constantProperties& constProps() const;
-
             //- Return conat access to the interpolator for continuous
             //  phase density field
             inline const interpolation<scalar>& rhoInterp() const;
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H
index 8d7a9f0236a..3a9fc043737 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H
@@ -54,7 +54,6 @@ inline Foam::KinematicParcel<ParcelType>::trackData::trackData
 :
     Particle<ParcelType>::trackData(cloud),
     cloud_(cloud),
-    constProps_(cloud.constProps()),
     rhoInterp_
     (
         interpolation<scalar>::New
@@ -223,14 +222,6 @@ Foam::KinematicParcel<ParcelType>::trackData::cloud()
 }
 
 
-template <class ParcelType>
-inline const typename Foam::KinematicParcel<ParcelType>::constantProperties&
-Foam::KinematicParcel<ParcelType>::trackData::constProps() const
-{
-    return constProps_;
-}
-
-
 template<class ParcelType>
 inline const Foam::interpolation<Foam::scalar>&
 Foam::KinematicParcel<ParcelType>::trackData::rhoInterp() const
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
index 1402304f133..ecb353e0888 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
@@ -422,7 +422,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
     // Remove the particle when mass falls below minimum threshold
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    if (mass1 < td.constProps().minParticleMass())
+    if (mass1 < td.cloud().constProps().minParticleMass())
     {
         td.keepParticle = false;
 
@@ -469,7 +469,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
         this->U_ = U1;
 
         // Update particle density or diameter
-        if (td.constProps().constantVolume())
+        if (td.cloud().constProps().constantVolume())
         {
             this->rho_ = mass1/this->volume();
         }
@@ -541,8 +541,8 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calcDevolatilisation
         const scalar beta = sqr(cbrt(15.0) + cbrt(15.0));
         const label id =
             td.cloud().composition().localToGlobalCarrierId(GAS, i);
-        const scalar Cp = td.cloud().mcCarrierThermo().speciesData()[id].Cp(Ts);
-        const scalar W = td.cloud().mcCarrierThermo().speciesData()[id].W();
+        const scalar Cp = td.cloud().thermo().carrier().Cp(id, Ts);
+        const scalar W = td.cloud().thermo().carrier().W(id);
         const scalar Ni = dMassDV[i]/(this->areaS(d)*dt*W);
 
         // Dab calc'd using API vapour mass diffusivity function
@@ -615,12 +615,12 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calcSurfaceReactions
     );
 
     const scalar xsi = min(T/5000.0, 1.0);
-    const scalar hRetentionCoeffMod =
-        (1.0 - xsi*xsi)*td.constProps().hRetentionCoeff();
+    const scalar coeff =
+        (1.0 - xsi*xsi)*td.cloud().constProps().hRetentionCoeff();
 
-    Sh += hRetentionCoeffMod*hReaction/dt;
+    Sh += coeff*hReaction/dt;
 
-    dhsTrans += (1.0 - hRetentionCoeffMod)*hReaction;
+    dhsTrans += (1.0 - coeff)*hReaction;
 }
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H
index 67041d5eb1a..36d95cc4aa5 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H
@@ -115,9 +115,6 @@ public:
             //- Reference to the cloud containing this particle
             ReactingMultiphaseCloud<ParcelType>& cloud_;
 
-            //- Particle constant properties
-            const constantProperties& constProps_;
-
 
     public:
 
@@ -136,9 +133,6 @@ public:
 
             //- Return access to the owner cloud
             inline ReactingMultiphaseCloud<ParcelType>& cloud();
-
-            //- Return const access to the constant properties
-            inline const constantProperties& constProps() const;
     };
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H
index 4d67ca43d46..9abaae0e2b5 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H
@@ -58,8 +58,7 @@ inline Foam::ReactingMultiphaseParcel<ParcelType>::trackData::trackData
 )
 :
     ReactingParcel<ParcelType>::trackData(cloud, part),
-    cloud_(cloud),
-    constProps_(cloud.constProps())
+    cloud_(cloud)
 {}
 
 
@@ -158,15 +157,6 @@ Foam::ReactingMultiphaseParcel<ParcelType>::trackData::cloud()
 }
 
 
-template<class ParcelType>
-inline const typename Foam::ReactingMultiphaseParcel<ParcelType>::
-constantProperties&
-Foam::ReactingMultiphaseParcel<ParcelType>::trackData::constProps() const
-{
-    return constProps_;
-}
-
-
 // * * * * * * * * * * ThermoParcel Member Functions * * * * * * * * * * * * //
 
 template<class ParcelType>
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
index 1c0539eda64..1ae4e01348d 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
@@ -48,7 +48,7 @@ void Foam::ReactingParcel<ParcelType>::setCellValues
         this->currentTetIndices()
     );
 
-    if (pc_ < td.constProps().pMin())
+    if (pc_ < td.cloud().constProps().pMin())
     {
         WarningIn
         (
@@ -59,9 +59,9 @@ void Foam::ReactingParcel<ParcelType>::setCellValues
                 "const label"
             ")"
         )   << "Limiting observed pressure in cell " << cellI << " to "
-            << td.constProps().pMin() <<  nl << endl;
+            << td.cloud().constProps().pMin() <<  nl << endl;
 
-        pc_ = td.constProps().pMin();
+        pc_ = td.cloud().constProps().pMin();
     }
 }
 
@@ -352,7 +352,7 @@ void Foam::ReactingParcel<ParcelType>::calc
 
     // Remove the particle when mass falls below minimum threshold
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    if (mass1 < td.constProps().minParticleMass())
+    if (mass1 < td.cloud().constProps().minParticleMass())
     {
         td.keepParticle = false;
 
@@ -382,7 +382,7 @@ void Foam::ReactingParcel<ParcelType>::calc
         this->U_ = U1;
 
         // Update particle density or diameter
-        if (td.constProps().constantVolume())
+        if (td.cloud().constProps().constantVolume())
         {
             this->rho_ = mass1/this->volume();
         }
@@ -425,7 +425,7 @@ void Foam::ReactingParcel<ParcelType>::calcPhaseChange
     if
     (
         !td.cloud().phaseChange().active()
-     || T < td.constProps().Tvap()
+     || T < td.cloud().constProps().Tvap()
      || YPhase < SMALL
     )
     {
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
index d4423bc8c14..901eb0396c5 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
@@ -121,9 +121,6 @@ public:
             //- Reference to the cloud containing this particle
             ReactingCloud<ParcelType>& cloud_;
 
-            //- Particle constant properties
-            const constantProperties& constProps_;
-
             //- Interpolator for continuous phase pressure field
             const interpolation<scalar>& pInterp_;
 
@@ -149,9 +146,6 @@ public:
             //- Return access to the owner cloud
             inline ReactingCloud<ParcelType>& cloud();
 
-            //- Return const access to the constant properties
-            inline const constantProperties& constProps() const;
-
             //- Return const access to the interpolator for continuous
             //  phase pressure field
             inline const interpolation<scalar>& pInterp() const;
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H
index 4206975a70c..8878dd29ed8 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H
@@ -48,7 +48,6 @@ inline Foam::ReactingParcel<ParcelType>::trackData::trackData
 :
     ThermoParcel<ParcelType>::trackData(cloud, part),
     cloud_(cloud),
-    constProps_(cloud.constProps()),
     pInterp_
     (
         interpolation<scalar>::New
@@ -167,14 +166,6 @@ Foam::ReactingParcel<ParcelType>::trackData::cloud()
 }
 
 
-template<class ParcelType>
-inline const typename Foam::ReactingParcel<ParcelType>::constantProperties&
-Foam::ReactingParcel<ParcelType>::trackData::constProps() const
-{
-    return constProps_;
-}
-
-
 template<class ParcelType>
 inline const Foam::interpolation<Foam::scalar>&
 Foam::ReactingParcel<ParcelType>::trackData::pInterp() const
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
index bdf5f1d2cb8..0a457a89719 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
@@ -47,7 +47,7 @@ void Foam::ThermoParcel<ParcelType>::setCellValues
 
     Tc_ = td.TInterp().interpolate(this->position(), tetIs);
 
-    if (Tc_ < td.constProps().TMin())
+    if (Tc_ < td.cloud().constProps().TMin())
     {
         WarningIn
         (
@@ -58,9 +58,9 @@ void Foam::ThermoParcel<ParcelType>::setCellValues
                 "const label"
             ")"
         )   << "Limiting observed temperature in cell " << cellI << " to "
-            << td.constProps().TMin() <<  nl << endl;
+            << td.cloud().constProps().TMin() <<  nl << endl;
 
-        Tc_ = td.constProps().TMin();
+        Tc_ = td.cloud().constProps().TMin();
     }
 }
 
@@ -107,7 +107,7 @@ void Foam::ThermoParcel<ParcelType>::calcSurfaceValues
 
     mus = td.muInterp().interpolate (this->position(), tetIs)/factor;
 
-    Pr = td.constProps().Pr();
+    Pr = td.cloud().constProps().Pr();
     kappa = Cpc_*mus/Pr;
 }
 
@@ -238,7 +238,12 @@ Foam::scalar Foam::ThermoParcel<ParcelType>::calcHeatTransfer
 
     if (mag(htc) < ROOTVSMALL && !td.cloud().radiation())
     {
-        return max(T + dt*Sh/(this->volume(d)*rho*Cp), td.constProps().TMin());
+        return
+            max
+            (
+                T + dt*Sh/(this->volume(d)*rho*Cp),
+                td.cloud().constProps().TMin()
+            );
     }
 
     const scalar As = this->areaS(d);
@@ -250,7 +255,7 @@ Foam::scalar Foam::ThermoParcel<ParcelType>::calcHeatTransfer
             td.cloud().mesh().objectRegistry::lookupObject<volScalarField>("G");
         const scalar Gc = G[cellI];
         const scalar sigma = physicoChemical::sigma.value();
-        const scalar epsilon = td.constProps().epsilon0();
+        const scalar epsilon = td.cloud().constProps().epsilon0();
 
         ap = (ap + epsilon*Gc/(4.0*htc))/(1.0 + epsilon*sigma*pow3(T)/htc);
         bp += 6.0*(epsilon*(Gc/4.0 - sigma*pow4(T)));
@@ -261,7 +266,7 @@ Foam::scalar Foam::ThermoParcel<ParcelType>::calcHeatTransfer
     IntegrationScheme<scalar>::integrationResult Tres =
         td.cloud().TIntegrator().integrate(T, dt, ap, bp);
 
-    scalar Tnew = max(Tres.value(), td.constProps().TMin());
+    scalar Tnew = max(Tres.value(), td.cloud().constProps().TMin());
 
     dhsTrans += dt*htc*As*(0.5*(T + Tnew) - Tc_);
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
index 2924dc3eb0a..09ca7444c6b 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
@@ -138,9 +138,6 @@ public:
             //- Reference to the cloud containing this particle
             ThermoCloud<ParcelType>& cloud_;
 
-            //- Particle constant properties
-            const constantProperties& constProps_;
-
             //- Local copy of specific heat field
             //  Cp not stored on acrrier thermo, but returned as tmp<...>
             const volScalarField Cp_;
@@ -173,9 +170,6 @@ public:
             //- Return access to the owner cloud
             inline ThermoCloud<ParcelType>& cloud();
 
-            //- Return const access to the owner cloud
-            inline const constantProperties& constProps() const;
-
             //- Return const access to the interpolator for continuous
             //  phase temperature field
             inline const interpolation<scalar>& TInterp() const;
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H
index 69ba4e61094..76108f2b27a 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H
@@ -50,7 +50,6 @@ inline Foam::ThermoParcel<ParcelType>::trackData::trackData
 :
     KinematicParcel<ParcelType>::trackData(cloud, part),
     cloud_(cloud),
-    constProps_(cloud.constProps()),
     Cp_
     (
         IOobject
@@ -203,14 +202,6 @@ Foam::ThermoParcel<ParcelType>::trackData::cloud()
 }
 
 
-template <class ParcelType>
-inline const typename Foam::ThermoParcel<ParcelType>::constantProperties&
-Foam::ThermoParcel<ParcelType>::trackData::constProps() const
-{
-    return constProps_;
-}
-
-
 template<class ParcelType>
 inline const Foam::interpolation<Foam::scalar>&
 Foam::ThermoParcel<ParcelType>::trackData::TInterp() const
-- 
GitLab