diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
index f73a9229bed260b70f411c9f1f103dc3e238bc69..eb623df2f2e121e1f21936ec017ebee0c60b70ba 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
@@ -154,36 +154,7 @@ void Foam::KinematicCloud<ParcelType>::updateCellOccupancy()
 template<class ParcelType>
 void Foam::KinematicCloud<ParcelType>::evolveCloud()
 {
-    autoPtr<interpolation<scalar> > rhoInterpolator =
-        interpolation<scalar>::New
-        (
-            solution_.interpolationSchemes(),
-            rho_
-        );
-
-    autoPtr<interpolation<vector> > UInterpolator =
-        interpolation<vector>::New
-        (
-            solution_.interpolationSchemes(),
-            U_
-        );
-
-    autoPtr<interpolation<scalar> > muInterpolator =
-        interpolation<scalar>::New
-        (
-            solution_.interpolationSchemes(),
-            mu_
-        );
-
-    typename ParcelType::trackData td
-    (
-        *this,
-        constProps_,
-        rhoInterpolator(),
-        UInterpolator(),
-        muInterpolator(),
-        g_.value()
-    );
+    typename ParcelType::trackData td(*this);
 
     label preInjectionSize = this->size();
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
index f9a203b4ae698eed61c4b1dc7f7e060236b99f8c..f2b489a8c7eba050c7380e5cf96515b63f388b1a 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
@@ -214,13 +214,13 @@ protected:
 
         // References to the carrier gas fields
 
-            //- Density
+            //- Density [kg/m3]
             const volScalarField& rho_;
 
-            //- Velocity
+            //- Velocity [m/s]
             const volVectorField& U_;
 
-            //- Dynamic viscosity
+            //- Dynamic viscosity [Pa.s]
             const volScalarField& mu_;
 
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
index adbed66c81963d5a41c19f2d0add9cd56e700f36..cf3fec1732da77250167e2052cd8cf5e54afeb44 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
@@ -67,58 +67,15 @@ void Foam::ReactingCloud<ParcelType>::preEvolve()
 template<class ParcelType>
 void Foam::ReactingCloud<ParcelType>::evolveCloud()
 {
-    const volScalarField& T = this->thermo().thermo().T();
-    const volScalarField cp = this->thermo().thermo().Cp();
-    const volScalarField& p = this->thermo().thermo().p();
+    const volScalarField Cp = this->thermo().thermo().Cp();
 
-    autoPtr<interpolation<scalar> > rhoInterp = interpolation<scalar>::New
+    autoPtr<interpolation<scalar> > CpInterp = interpolation<scalar>::New
     (
         this->solution().interpolationSchemes(),
-        this->rho()
+        Cp
     );
 
-    autoPtr<interpolation<vector> > UInterp = interpolation<vector>::New
-    (
-        this->solution().interpolationSchemes(),
-        this->U()
-    );
-
-    autoPtr<interpolation<scalar> > muInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        this->mu()
-    );
-
-    autoPtr<interpolation<scalar> > TInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        T
-    );
-
-    autoPtr<interpolation<scalar> > cpInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        cp
-    );
-
-    autoPtr<interpolation<scalar> > pInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        p
-    );
-
-    typename ParcelType::trackData td
-    (
-        *this,
-        constProps_,
-        rhoInterp(),
-        UInterp(),
-        muInterp(),
-        TInterp(),
-        cpInterp(),
-        pInterp(),
-        this->g().value()
-    );
+    typename ParcelType::trackData td(*this, CpInterp());
 
     label preInjectionSize = this->size();
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
index b8f4ebceef349e7e4f4ea325600da1c0cd9b39cb..9dc75d51389e29a2a54417761e8081d1feee0284 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
@@ -40,58 +40,15 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::preEvolve()
 template<class ParcelType>
 void Foam::ReactingMultiphaseCloud<ParcelType>::evolveCloud()
 {
-    const volScalarField& T = this->thermo().thermo().T();
-    const volScalarField cp = this->thermo().thermo().Cp();
-    const volScalarField& p = this->thermo().thermo().p();
+    const volScalarField Cp = this->thermo().thermo().Cp();
 
-    autoPtr<interpolation<scalar> > rhoInterp = interpolation<scalar>::New
+    autoPtr<interpolation<scalar> > CpInterp = interpolation<scalar>::New
     (
         this->solution().interpolationSchemes(),
-        this->rho()
+        Cp
     );
 
-    autoPtr<interpolation<vector> > UInterp = interpolation<vector>::New
-    (
-        this->solution().interpolationSchemes(),
-        this->U()
-    );
-
-    autoPtr<interpolation<scalar> > muInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        this->mu()
-    );
-
-    autoPtr<interpolation<scalar> > TInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        T
-    );
-
-    autoPtr<interpolation<scalar> > cpInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        cp
-    );
-
-    autoPtr<interpolation<scalar> > pInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        p
-    );
-
-    typename ParcelType::trackData td
-    (
-        *this,
-        constProps_,
-        rhoInterp(),
-        UInterp(),
-        muInterp(),
-        TInterp(),
-        cpInterp(),
-        pInterp(),
-        this->g().value()
-    );
+    typename ParcelType::trackData td(*this, CpInterp());
 
     label preInjectionSize = this->size();
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
index 6790c8bb12faa9b23de6b037e620f52eda0d0e12..5296583c2b05c60eca7006deefdfa8955de9b811 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
@@ -41,50 +41,15 @@ void Foam::ThermoCloud<ParcelType>::preEvolve()
 template<class ParcelType>
 void Foam::ThermoCloud<ParcelType>::evolveCloud()
 {
-    const volScalarField& T = thermo_.thermo().T();
-    const volScalarField cp = thermo_.thermo().Cp();
+    const volScalarField Cp = thermo_.thermo().Cp();
 
-    autoPtr<interpolation<scalar> > rhoInterp = interpolation<scalar>::New
+    autoPtr<interpolation<scalar> > CpInterp = interpolation<scalar>::New
     (
         this->solution().interpolationSchemes(),
-        this->rho()
+        Cp
     );
 
-    autoPtr<interpolation<vector> > UInterp = interpolation<vector>::New
-    (
-        this->solution().interpolationSchemes(),
-        this->U()
-    );
-
-    autoPtr<interpolation<scalar> > muInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        this->mu()
-    );
-
-    autoPtr<interpolation<scalar> > TInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        T
-    );
-
-    autoPtr<interpolation<scalar> > cpInterp = interpolation<scalar>::New
-    (
-        this->solution().interpolationSchemes(),
-        cp
-    );
-
-    typename ParcelType::trackData td
-    (
-        *this,
-        constProps_,
-        rhoInterp(),
-        UInterp(),
-        muInterp(),
-        TInterp(),
-        cpInterp(),
-        this->g().value()
-    );
+    typename ParcelType::trackData td(*this, CpInterp());
 
     label preInjectionSize = this->size();
 
@@ -154,6 +119,8 @@ Foam::ThermoCloud<ParcelType>::ThermoCloud
     thermoCloud(),
     constProps_(this->particleProperties()),
     thermo_(thermo),
+    T_(thermo.thermo().T()),
+    p_(thermo.thermo().p()),
     heatTransferModel_
     (
         HeatTransferModel<ThermoCloud<ParcelType> >::New
@@ -220,7 +187,7 @@ void Foam::ThermoCloud<ParcelType>::checkParcelProperties
     if (!fullyDescribed)
     {
         parcel.T() = constProps_.T0();
-        parcel.cp() = constProps_.cp0();
+        parcel.Cp() = constProps_.Cp0();
     }
 }
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H
index a476dcb6f759be350d25d63cab1f60882ee5981c..ec7dc3562768c93dc8194c1dda2a64358d708198 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H
@@ -85,6 +85,12 @@ protected:
             //- SLG thermodynamics package
             const SLGThermo& thermo_;
 
+            //- Temperature [K]
+            const volScalarField& T_;
+
+            //- Pressure [Pa]
+            const volScalarField& p_;
+
 
         // References to the cloud sub-models
 
@@ -163,6 +169,12 @@ public:
             //- Return const access to thermo package
             inline const SLGThermo& thermo() const;
 
+            //- Return const access to the carrier temperature field
+            inline const volScalarField& T() const;
+
+            //- Return const access to the carrier prressure field
+            inline const volScalarField& p() const;
+
 
             // Sub-models
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H
index c5d2f37d615ed723a665c8955c423e1d88c0f366..887fbd30f28057c377187e6a8ff1674b6e951dd2 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H
@@ -44,6 +44,20 @@ inline const Foam::SLGThermo& Foam::ThermoCloud<ParcelType>::thermo() const
 }
 
 
+template<class ParcelType>
+inline const Foam::volScalarField& Foam::ThermoCloud<ParcelType>::T() const
+{
+    return T_;
+}
+
+
+template<class ParcelType>
+inline const Foam::volScalarField& Foam::ThermoCloud<ParcelType>::p() const
+{
+    return p_;
+}
+
+
 template<class ParcelType>
 inline const Foam::HeatTransferModel<Foam::ThermoCloud<ParcelType> >&
 Foam::ThermoCloud<ParcelType>::heatTransfer() const
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
index f88672be6e2b0d503f26863ee592970bf93d2207..70724cc8169f81cd2ec40af5d2efaeb8bda3bbea 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
@@ -175,13 +175,14 @@ public:
             // Interpolators for continuous phase fields
 
                 //- Density interpolator
-                const interpolation<scalar>& rhoInterp_;
+                autoPtr<interpolation<scalar> > rhoInterp_;
 
                 //- Velocity interpolator
-                const interpolation<vector>& UInterp_;
+                autoPtr<interpolation<vector> > UInterp_;
 
                 //- Dynamic viscosity interpolator
-                const interpolation<scalar>& muInterp_;
+                autoPtr<interpolation<scalar> > muInterp_;
+
 
             //- Local gravitational or other body-force acceleration
             const vector& g_;
@@ -199,11 +200,6 @@ public:
             inline trackData
             (
                 KinematicCloud<ParcelType>& cloud,
-                const constantProperties& constProps,
-                const interpolation<scalar>& rhoInterp,
-                const interpolation<vector>& UInterp,
-                const interpolation<scalar>& muInterp,
-                const vector& g,
                 trackPart part = tpLinearTrack
             );
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H
index 6b0cb76ba245937566190369076b082590f4c392..8d7a9f0236af269c7b4de7a98521f01c21c9a444 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H
@@ -49,21 +49,37 @@ template <class ParcelType>
 inline Foam::KinematicParcel<ParcelType>::trackData::trackData
 (
     KinematicCloud<ParcelType>& cloud,
-    const constantProperties& constProps,
-    const interpolation<scalar>& rhoInterp,
-    const interpolation<vector>& UInterp,
-    const interpolation<scalar>& muInterp,
-    const vector& g,
     trackPart part
 )
 :
     Particle<ParcelType>::trackData(cloud),
     cloud_(cloud),
-    constProps_(constProps),
-    rhoInterp_(rhoInterp),
-    UInterp_(UInterp),
-    muInterp_(muInterp),
-    g_(g),
+    constProps_(cloud.constProps()),
+    rhoInterp_
+    (
+        interpolation<scalar>::New
+        (
+            cloud.solution().interpolationSchemes(),
+            cloud.rho()
+        )
+    ),
+    UInterp_
+    (
+        interpolation<vector>::New
+        (
+            cloud.solution().interpolationSchemes(),
+            cloud.U()
+        )
+    ),
+    muInterp_
+    (
+        interpolation<scalar>::New
+        (
+            cloud.solution().interpolationSchemes(),
+            cloud.mu()
+        )
+    ),
+    g_(cloud.g().value()),
     part_(part)
 {}
 
@@ -219,7 +235,7 @@ template<class ParcelType>
 inline const Foam::interpolation<Foam::scalar>&
 Foam::KinematicParcel<ParcelType>::trackData::rhoInterp() const
 {
-    return rhoInterp_;
+    return rhoInterp_();
 }
 
 
@@ -227,7 +243,7 @@ template <class ParcelType>
 inline const Foam::interpolation<Foam::vector>&
 Foam::KinematicParcel<ParcelType>::trackData::UInterp() const
 {
-    return UInterp_;
+    return UInterp_();
 }
 
 
@@ -235,7 +251,7 @@ template<class ParcelType>
 inline const Foam::interpolation<Foam::scalar>&
 Foam::KinematicParcel<ParcelType>::trackData::muInterp() const
 {
-    return muInterp_;
+    return muInterp_();
 }
 
 
@@ -248,8 +264,7 @@ Foam::KinematicParcel<ParcelType>::trackData::g() const
 
 
 template<class ParcelType>
-inline
-typename Foam::KinematicParcel<ParcelType>::trackData::trackPart
+inline typename Foam::KinematicParcel<ParcelType>::trackData::trackPart
 Foam::KinematicParcel<ParcelType>::trackData::part() const
 {
     return part_;
@@ -257,8 +272,7 @@ Foam::KinematicParcel<ParcelType>::trackData::part() const
 
 
 template<class ParcelType>
-inline
-typename Foam::KinematicParcel<ParcelType>::trackData::trackPart&
+inline typename Foam::KinematicParcel<ParcelType>::trackData::trackPart&
 Foam::KinematicParcel<ParcelType>::trackData::part()
 {
     return part_;
@@ -497,16 +511,14 @@ inline Foam::scalar Foam::KinematicParcel<ParcelType>::mass() const
 
 
 template <class ParcelType>
-inline Foam::scalar
-Foam::KinematicParcel<ParcelType>::momentOfInertia() const
+inline Foam::scalar Foam::KinematicParcel<ParcelType>::momentOfInertia() const
 {
     return 0.1*mass()*sqr(d_);
 }
 
 
 template <class ParcelType>
-inline Foam::vector
-Foam::KinematicParcel<ParcelType>::omega() const
+inline Foam::vector Foam::KinematicParcel<ParcelType>::omega() const
 {
     return angularMomentum_/momentOfInertia();
 }
@@ -520,8 +532,7 @@ inline Foam::scalar Foam::KinematicParcel<ParcelType>::volume() const
 
 
 template <class ParcelType>
-inline Foam::scalar
-Foam::KinematicParcel<ParcelType>::volume(const scalar d)
+inline Foam::scalar Foam::KinematicParcel<ParcelType>::volume(const scalar d)
 {
     return pi/6.0*pow3(d);
 }
@@ -535,8 +546,7 @@ inline Foam::scalar Foam::KinematicParcel<ParcelType>::areaP() const
 
 
 template <class ParcelType>
-inline Foam::scalar
-Foam::KinematicParcel<ParcelType>::areaP(const scalar d)
+inline Foam::scalar Foam::KinematicParcel<ParcelType>::areaP(const scalar d)
 {
     return 0.25*areaS(d);
 }
@@ -550,16 +560,14 @@ inline Foam::scalar Foam::KinematicParcel<ParcelType>::areaS() const
 
 
 template <class ParcelType>
-inline Foam::scalar
-Foam::KinematicParcel<ParcelType>::areaS(const scalar d)
+inline Foam::scalar Foam::KinematicParcel<ParcelType>::areaS(const scalar d)
 {
     return pi*d*d;
 }
 
 
 template <class ParcelType>
-inline Foam::scalar
-Foam::KinematicParcel<ParcelType>::Re
+inline Foam::scalar Foam::KinematicParcel<ParcelType>::Re
 (
     const vector& U,
     const scalar d,
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
index e77064c5a1a01132a744198a9c9fe8350fde5b2c..dba3409a122423288588cd398d14fdbba74f3db9 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
@@ -44,7 +44,7 @@ const Foam::label Foam::ReactingMultiphaseParcel<ParcelType>::SLD(2);
 
 template<class ParcelType>
 template<class TrackData>
-Foam::scalar Foam::ReactingMultiphaseParcel<ParcelType>::cpEff
+Foam::scalar Foam::ReactingMultiphaseParcel<ParcelType>::CpEff
 (
     TrackData& td,
     const scalar p,
@@ -55,9 +55,9 @@ Foam::scalar Foam::ReactingMultiphaseParcel<ParcelType>::cpEff
 ) const
 {
     return
-        this->Y_[GAS]*td.cloud().composition().cp(idG, YGas_, p, T)
-      + this->Y_[LIQ]*td.cloud().composition().cp(idL, YLiquid_, p, T)
-      + this->Y_[SLD]*td.cloud().composition().cp(idS, YSolid_, p, T);
+        this->Y_[GAS]*td.cloud().composition().Cp(idG, YGas_, p, T)
+      + this->Y_[LIQ]*td.cloud().composition().Cp(idL, YLiquid_, p, T)
+      + this->Y_[SLD]*td.cloud().composition().Cp(idS, YSolid_, p, T);
 }
 
 
@@ -164,19 +164,19 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::cellValueSourceCorrection
     scalar massCellNew = massCell + addedMass;
     this->Uc_ += td.cloud().UTrans()[cellI]/massCellNew;
 
-    scalar cpEff = 0;
+    scalar CpEff = 0;
     if (addedMass > ROOTVSMALL)
     {
         forAll(td.cloud().rhoTrans(), i)
         {
             scalar Y = td.cloud().rhoTrans(i)[cellI]/addedMass;
-            cpEff += Y*td.cloud().thermo().carrier().Cp(i, this->Tc_);
+            CpEff += Y*td.cloud().thermo().carrier().Cp(i, this->Tc_);
         }
     }
-    const scalar cpc = td.cpInterp().psi()[cellI];
-    this->cpc_ = (massCell*cpc + addedMass*cpEff)/massCellNew;
+    const scalar Cpc = td.CpInterp().psi()[cellI];
+    this->Cpc_ = (massCell*Cpc + addedMass*CpEff)/massCellNew;
 
-    this->Tc_ += td.cloud().hsTrans()[cellI]/(this->cpc_*massCellNew);
+    this->Tc_ += td.cloud().hsTrans()[cellI]/(this->Cpc_*massCellNew);
 }
 
 
@@ -196,7 +196,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
     const vector& U0 = this->U_;
     const scalar rho0 = this->rho_;
     const scalar T0 = this->T_;
-    const scalar cp0 = this->cp_;
+    const scalar Cp0 = this->Cp_;
     const scalar mass0 = this->mass();
 
     const scalar pc = this->pc_;
@@ -367,7 +367,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
             d0,
             rho0,
             T0,
-            cp0,
+            Cp0,
             NCpW,
             Sh,
             dhsTrans
@@ -466,7 +466,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
 
     else
     {
-        this->cp_ = cpEff(td, pc, T1, idG, idL, idS);
+        this->Cp_ = CpEff(td, pc, T1, idG, idL, idS);
         this->T_ = T1;
         this->U_ = U1;
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H
index ed0b11e88e5b478b7e682cfca45e06be153c3e6f..b4b9ff213a2cdbca9b3979ae6c2733dcf9eb850c 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H
@@ -127,15 +127,10 @@ public:
             inline trackData
             (
                 ReactingMultiphaseCloud<ParcelType>& cloud,
-                const constantProperties& constProps,
-                const interpolation<scalar>& rhoInterp,
-                const interpolation<vector>& UInterp,
-                const interpolation<scalar>& muInterp,
-                const interpolation<scalar>& TInterp,
                 const interpolation<scalar>& CpInterp,
-                const interpolation<scalar>& pInterp,
-                const vector& g
-            );
+                typename ReactingParcel<ParcelType>::trackData::trackPart
+                    part = ReactingParcel<ParcelType>::trackData::tpLinearTrack
+             );
 
 
         // Member functions
@@ -154,7 +149,7 @@ private:
 
         //- Return the mixture effective specific heat capacity
         template<class TrackData>
-        scalar cpEff
+        scalar CpEff
         (
             TrackData& td,
             const scalar p,
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H
index cd18d3628ccc934efefd415c79d49912c2d48e39..454ec13f0efe97a343d2985711929afa0e76b240 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H
@@ -54,30 +54,13 @@ template<class ParcelType>
 inline Foam::ReactingMultiphaseParcel<ParcelType>::trackData::trackData
 (
     ReactingMultiphaseCloud<ParcelType>& cloud,
-    const constantProperties& constProps,
-    const interpolation<scalar>& rhoInterp,
-    const interpolation<vector>& UInterp,
-    const interpolation<scalar>& muInterp,
-    const interpolation<scalar>& TInterp,
     const interpolation<scalar>& CpInterp,
-    const interpolation<scalar>& pInterp,
-    const vector& g
+    typename ReactingParcel<ParcelType>::trackData::trackPart part
 )
 :
-    ReactingParcel<ParcelType>::trackData
-    (
-        cloud,
-        constProps,
-        rhoInterp,
-        UInterp,
-        muInterp,
-        TInterp,
-        CpInterp,
-        pInterp,
-        g
-    ),
+    ReactingParcel<ParcelType>::trackData(cloud, CpInterp, part),
     cloud_(cloud),
-    constProps_(constProps)
+    constProps_(cloud.constProps())
 {}
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
index edd2b8e6783a1e066ac4b2431e719c9f5f2affba..1c0539eda6424b690f9e2fba1d1f28ac39cfdff7 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
@@ -88,19 +88,19 @@ void Foam::ReactingParcel<ParcelType>::cellValueSourceCorrection
     scalar massCellNew = massCell + addedMass;
     this->Uc_ += td.cloud().UTrans()[cellI]/massCellNew;
 
-    scalar cpEff = 0;
+    scalar CpEff = 0;
     if (addedMass > ROOTVSMALL)
     {
         forAll(td.cloud().rhoTrans(), i)
         {
             scalar Y = td.cloud().rhoTrans(i)[cellI]/addedMass;
-            cpEff += Y*td.cloud().composition().carrier().Cp(i, this->Tc_);
+            CpEff += Y*td.cloud().composition().carrier().Cp(i, this->Tc_);
         }
     }
-    const scalar cpc = td.cpInterp().psi()[cellI];
-    this->cpc_ = (massCell*cpc + addedMass*cpEff)/massCellNew;
+    const scalar Cpc = td.CpInterp().psi()[cellI];
+    this->Cpc_ = (massCell*Cpc + addedMass*CpEff)/massCellNew;
 
-    this->Tc_ += td.cloud().hsTrans()[cellI]/(this->cpc_*massCellNew);
+    this->Tc_ += td.cloud().hsTrans()[cellI]/(this->Cpc_*massCellNew);
 }
 
 
@@ -162,7 +162,7 @@ void Foam::ReactingParcel<ParcelType>::correctSurfaceValues
     rhos = 0;
     mus = 0;
     kappa = 0;
-    scalar cps = 0;
+    scalar Cps = 0;
     scalar sumYiSqrtW = 0;
     scalar sumYiCbrtW = 0;
 
@@ -174,7 +174,7 @@ void Foam::ReactingParcel<ParcelType>::correctSurfaceValues
         rhos += Xs[i]*td.cloud().thermo().carrier().W(i);
         mus += Ys[i]*sqrtW*td.cloud().thermo().carrier().mu(i, T);
         kappa += Ys[i]*cbrtW*td.cloud().thermo().carrier().kappa(i, T);
-        cps += Xs[i]*td.cloud().thermo().carrier().Cp(i, T);
+        Cps += Xs[i]*td.cloud().thermo().carrier().Cp(i, T);
 
         sumYiSqrtW += Ys[i]*sqrtW;
         sumYiCbrtW += Ys[i]*cbrtW;
@@ -183,7 +183,7 @@ void Foam::ReactingParcel<ParcelType>::correctSurfaceValues
     rhos *= pc_/(specie::RR*T);
     mus /= sumYiSqrtW;
     kappa /= sumYiCbrtW;
-    Pr = cps*mus/kappa;
+    Pr = Cps*mus/kappa;
 }
 
 
@@ -226,7 +226,7 @@ void Foam::ReactingParcel<ParcelType>::calc
     const vector& U0 = this->U_;
     const scalar rho0 = this->rho_;
     const scalar T0 = this->T_;
-    const scalar cp0 = this->cp_;
+    const scalar Cp0 = this->Cp_;
     const scalar mass0 = this->mass();
 
 
@@ -315,7 +315,7 @@ void Foam::ReactingParcel<ParcelType>::calc
             d0,
             rho0,
             T0,
-            cp0,
+            Cp0,
             NCpW,
             Sh,
             dhsTrans
@@ -377,7 +377,7 @@ void Foam::ReactingParcel<ParcelType>::calc
 
     else
     {
-        this->cp_ = td.cloud().composition().cp(0, Y_, pc_, T1);
+        this->Cp_ = td.cloud().composition().Cp(0, Y_, pc_, T1);
         this->T_ = T1;
         this->U_ = U1;
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
index 6ae15d5098ebe41cbbb03109d748002d0530cf4a..0d6cc119ab55ba909fc1fc01796030b8b3a14430 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
@@ -139,14 +139,9 @@ public:
             inline trackData
             (
                 ReactingCloud<ParcelType>& cloud,
-                const constantProperties& constProps,
-                const interpolation<scalar>& rhoInterp,
-                const interpolation<vector>& UInterp,
-                const interpolation<scalar>& muInterp,
-                const interpolation<scalar>& TInterp,
                 const interpolation<scalar>& CpInterp,
-                const interpolation<scalar>& pInterp,
-                const vector& g
+                typename ThermoParcel<ParcelType>::trackData::trackPart
+                    part = ThermoParcel<ParcelType>::trackData::tpLinearTrack
             );
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H
index ffc87eb6391fa16afc6d757b7872b8a195b4c7cf..285a1af0dadf773e70746b5bb913b7c5963a2bfc 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H
@@ -43,30 +43,21 @@ template<class ParcelType>
 inline Foam::ReactingParcel<ParcelType>::trackData::trackData
 (
     ReactingCloud<ParcelType>& cloud,
-    const constantProperties& constProps,
-    const interpolation<scalar>& rhoInterp,
-    const interpolation<vector>& UInterp,
-    const interpolation<scalar>& muInterp,
-    const interpolation<scalar>& TInterp,
     const interpolation<scalar>& CpInterp,
-    const interpolation<scalar>& pInterp,
-    const vector& g
+    typename ThermoParcel<ParcelType>::trackData::trackPart part
 )
 :
-    ThermoParcel<ParcelType>::trackData
-    (
-        cloud,
-        constProps,
-        rhoInterp,
-        UInterp,
-        muInterp,
-        TInterp,
-        CpInterp,
-        g
-    ),
+    ThermoParcel<ParcelType>::trackData(cloud, CpInterp, part),
     cloud_(cloud),
-    constProps_(constProps),
-    pInterp_(pInterp)
+    constProps_(cloud.constProps()),
+    pInterp_
+    (
+        interpolation<scalar>::New
+        (
+            cloud.solution().interpolationSchemes(),
+            cloud.p()
+        )
+    )
 {}
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
index d04caf8cfc2134d8f1ef0f36b7437ec1d49c5800..bdf5f1d2cb80c3234bc9f6fc482df79249ee3970 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
@@ -43,7 +43,7 @@ void Foam::ThermoParcel<ParcelType>::setCellValues
 
     tetIndices tetIs = this->currentTetIndices();
 
-    cpc_ = td.cpInterp().interpolate(this->position(), tetIs);
+    Cpc_ = td.CpInterp().interpolate(this->position(), tetIs);
 
     Tc_ = td.TInterp().interpolate(this->position(), tetIs);
 
@@ -76,8 +76,8 @@ void Foam::ThermoParcel<ParcelType>::cellValueSourceCorrection
 {
     this->Uc_ += td.cloud().UTrans()[cellI]/this->massCell(cellI);
 
-    scalar cpMean = td.cpInterp().psi()[cellI];
-    Tc_ += td.cloud().hsTrans()[cellI]/(cpMean*this->massCell(cellI));
+    const scalar CpMean = td.CpInterp().psi()[cellI];
+    Tc_ += td.cloud().hsTrans()[cellI]/(CpMean*this->massCell(cellI));
 }
 
 
@@ -108,7 +108,7 @@ void Foam::ThermoParcel<ParcelType>::calcSurfaceValues
     mus = td.muInterp().interpolate (this->position(), tetIs)/factor;
 
     Pr = td.constProps().Pr();
-    kappa = cpc_*mus/Pr;
+    kappa = Cpc_*mus/Pr;
 }
 
 
@@ -128,7 +128,7 @@ void Foam::ThermoParcel<ParcelType>::calc
     const vector U0 = this->U_;
     const scalar rho0 = this->rho_;
     const scalar T0 = this->T_;
-    const scalar cp0 = this->cp_;
+    const scalar Cp0 = this->Cp_;
     const scalar mass0 = this->mass();
 
 
@@ -176,7 +176,7 @@ void Foam::ThermoParcel<ParcelType>::calc
             d0,
             rho0,
             T0,
-            cp0,
+            Cp0,
             NCpW,
             Sh,
             dhsTrans
@@ -222,7 +222,7 @@ Foam::scalar Foam::ThermoParcel<ParcelType>::calcHeatTransfer
     const scalar d,
     const scalar rho,
     const scalar T,
-    const scalar cp,
+    const scalar Cp,
     const scalar NCpW,
     const scalar Sh,
     scalar& dhsTrans
@@ -238,7 +238,7 @@ 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.constProps().TMin());
     }
 
     const scalar As = this->areaS(d);
@@ -255,7 +255,7 @@ Foam::scalar Foam::ThermoParcel<ParcelType>::calcHeatTransfer
         ap = (ap + epsilon*Gc/(4.0*htc))/(1.0 + epsilon*sigma*pow3(T)/htc);
         bp += 6.0*(epsilon*(Gc/4.0 - sigma*pow4(T)));
     }
-    bp /= rho*d*cp*(ap - T);
+    bp /= rho*d*Cp*(ap - T);
 
     // Integrate to find the new parcel temperature
     IntegrationScheme<scalar>::integrationResult Tres =
@@ -279,9 +279,9 @@ Foam::ThermoParcel<ParcelType>::ThermoParcel
 :
     KinematicParcel<ParcelType>(p),
     T_(p.T_),
-    cp_(p.cp_),
+    Cp_(p.Cp_),
     Tc_(p.Tc_),
-    cpc_(p.cpc_)
+    Cpc_(p.Cpc_)
 {}
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
index dc97dcba6c41e0303396b2e863976c596ac4c14c..38de73df1bc57835c5c42508dad1023410794971 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
@@ -83,7 +83,7 @@ public:
             const scalar TMin_;
 
             //- Particle specific heat capacity [J/(kg.K)]
-            const scalar cp0_;
+            const scalar Cp0_;
 
             //- Particle emissivity [] (radiation)
             const scalar epsilon0_;
@@ -112,7 +112,7 @@ public:
 
                 //- Return const access to the particle specific heat capacity
                 //  [J/(kg.K)]
-                inline scalar cp0() const;
+                inline scalar Cp0() const;
 
                 //- Return const access to the particle emissivity []
                 //  Active for radiation only
@@ -144,10 +144,10 @@ public:
             // Interpolators for continuous phase fields
 
                 //- Temperature field interpolator
-                const interpolation<scalar>& TInterp_;
+                autoPtr<interpolation<scalar> > TInterp_;
 
                 //- Specific heat capacity field interpolator
-                const interpolation<scalar>& cpInterp_;
+                const interpolation<scalar>& CpInterp_;
 
 
     public:
@@ -158,13 +158,9 @@ public:
             inline trackData
             (
                 ThermoCloud<ParcelType>& cloud,
-                const constantProperties& constProps,
-                const interpolation<scalar>& rhoInterp,
-                const interpolation<vector>& UInterp,
-                const interpolation<scalar>& muInterp,
-                const interpolation<scalar>& TInterp,
-                const interpolation<scalar>& cpInterp,
-                const vector& g
+                const interpolation<scalar>& CpInterp,
+                typename KinematicParcel<ParcelType>::trackData::trackPart
+                    part = KinematicParcel<ParcelType>::trackData::tpLinearTrack
             );
 
 
@@ -182,7 +178,7 @@ public:
 
             //- Return const access to the interpolator for continuous
             //  phase specific heat capacity field
-            inline const interpolation<scalar>& cpInterp() const;
+            inline const interpolation<scalar>& CpInterp() const;
     };
 
 
@@ -196,7 +192,7 @@ protected:
             scalar T_;
 
             //- Specific heat capacity [J/(kg.K)]
-            scalar cp_;
+            scalar Cp_;
 
 
         // Cell-based quantities
@@ -205,7 +201,7 @@ protected:
             scalar Tc_;
 
             //- Specific heat capacity [J/(kg.K)]
-            scalar cpc_;
+            scalar Cpc_;
 
 
     // Protected Member Functions
@@ -223,7 +219,7 @@ protected:
             const scalar d,            // diameter
             const scalar rho,          // density
             const scalar T,            // temperature
-            const scalar cp,           // specific heat capacity
+            const scalar Cp,           // specific heat capacity
             const scalar NCpW,         // Sum of N*Cp*W of emission species
             const scalar Sh,           // explicit particle enthalpy source
             scalar& dhsTrans           // sensible enthalpy transfer to carrier
@@ -302,7 +298,7 @@ public:
             inline scalar T() const;
 
             //- Return const access to specific heat capacity
-            inline scalar cp() const;
+            inline scalar Cp() const;
 
             //- Return the parcel sensible enthalpy
             inline scalar hs() const;
@@ -314,7 +310,7 @@ public:
             inline scalar& T();
 
             //- Return access to specific heat capacity
-            inline scalar& cp();
+            inline scalar& Cp();
 
 
         // Main calculation loop
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H
index 9e69a46fd05206b4b76f3196484b77c9cbce08cf..a7b9b9d68b91225e693b94b9f852ad106df7665e 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H
@@ -34,7 +34,7 @@ inline Foam::ThermoParcel<ParcelType>::constantProperties::constantProperties
     KinematicParcel<ParcelType>::constantProperties(parentDict),
     T0_(readScalar(this->dict().lookup("T0"))),
     TMin_(readScalar(this->dict().lookup("TMin"))),
-    cp0_(readScalar(this->dict().lookup("cp0"))),
+    Cp0_(readScalar(this->dict().lookup("Cp0"))),
     epsilon0_(readScalar(this->dict().lookup("epsilon0"))),
     f0_(readScalar(this->dict().lookup("f0"))),
     Pr_(readScalar(this->dict().lookup("Pr")))
@@ -45,28 +45,22 @@ template<class ParcelType>
 inline Foam::ThermoParcel<ParcelType>::trackData::trackData
 (
     ThermoCloud<ParcelType>& cloud,
-    const constantProperties& constProps,
-    const interpolation<scalar>& rhoInterp,
-    const interpolation<vector>& UInterp,
-    const interpolation<scalar>& muInterp,
-    const interpolation<scalar>& TInterp,
-    const interpolation<scalar>& cpInterp,
-    const vector& g
+    const interpolation<scalar>& CpInterp,
+    typename KinematicParcel<ParcelType>::trackData::trackPart part
 )
 :
-    KinematicParcel<ParcelType>::trackData
+    KinematicParcel<ParcelType>::trackData(cloud, part),
+    cloud_(cloud),
+    constProps_(cloud.constProps()),
+    TInterp_
     (
-        cloud,
-        constProps,
-        rhoInterp,
-        UInterp,
-        muInterp,
-        g
+        interpolation<scalar>::New
+        (
+            cloud.solution().interpolationSchemes(),
+            cloud.T()
+        )
     ),
-    cloud_(cloud),
-    constProps_(constProps),
-    TInterp_(TInterp),
-    cpInterp_(cpInterp)
+    CpInterp_(CpInterp)
 {}
 
 
@@ -82,9 +76,9 @@ inline Foam::ThermoParcel<ParcelType>::ThermoParcel
 :
     KinematicParcel<ParcelType>(owner, position, cellI, tetFaceI, tetPtI),
     T_(0.0),
-    cp_(0.0),
+    Cp_(0.0),
     Tc_(0.0),
-    cpc_(0.0)
+    Cpc_(0.0)
 {}
 
 
@@ -125,9 +119,9 @@ inline Foam::ThermoParcel<ParcelType>::ThermoParcel
         constProps
     ),
     T_(constProps.T0()),
-    cp_(constProps.cp0()),
+    Cp_(constProps.Cp0()),
     Tc_(0.0),
-    cpc_(0.0)
+    Cpc_(0.0)
 {}
 
 
@@ -151,9 +145,9 @@ Foam::ThermoParcel<ParcelType>::constantProperties::TMin() const
 
 template <class ParcelType>
 inline Foam::scalar
-Foam::ThermoParcel<ParcelType>::constantProperties::cp0() const
+Foam::ThermoParcel<ParcelType>::constantProperties::Cp0() const
 {
-    return cp0_;
+    return Cp0_;
 }
 
 
@@ -203,15 +197,15 @@ template<class ParcelType>
 inline const Foam::interpolation<Foam::scalar>&
 Foam::ThermoParcel<ParcelType>::trackData::TInterp() const
 {
-    return TInterp_;
+    return TInterp_();
 }
 
 
 template<class ParcelType>
 inline const Foam::interpolation<Foam::scalar>&
-Foam::ThermoParcel<ParcelType>::trackData::cpInterp() const
+Foam::ThermoParcel<ParcelType>::trackData::CpInterp() const
 {
-    return cpInterp_;
+    return CpInterp_;
 }
 
 
@@ -225,16 +219,16 @@ inline Foam::scalar Foam::ThermoParcel<ParcelType>::T() const
 
 
 template<class ParcelType>
-inline Foam::scalar Foam::ThermoParcel<ParcelType>::cp() const
+inline Foam::scalar Foam::ThermoParcel<ParcelType>::Cp() const
 {
-    return cp_;
+    return Cp_;
 }
 
 
 template<class ParcelType>
 inline Foam::scalar Foam::ThermoParcel<ParcelType>::hs() const
 {
-    return cp_*(T_ - 298.15);
+    return Cp_*(T_ - 298.15);
 }
 
 
@@ -246,9 +240,9 @@ inline Foam::scalar& Foam::ThermoParcel<ParcelType>::T()
 
 
 template<class ParcelType>
-inline Foam::scalar& Foam::ThermoParcel<ParcelType>::cp()
+inline Foam::scalar& Foam::ThermoParcel<ParcelType>::Cp()
 {
-    return cp_;
+    return Cp_;
 }
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C
index 447de83adc92707e01cf539192a7f1ca2146e06c..4ea8b8c2462694ad01fea555a3a8af4dcb7ea050 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C
@@ -32,7 +32,7 @@ template <class ParcelType>
 Foam::string Foam::ThermoParcel<ParcelType>::propHeader =
     KinematicParcel<ParcelType>::propHeader
   + " T"
-  + " cp";
+  + " Cp";
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
@@ -47,16 +47,16 @@ Foam::ThermoParcel<ParcelType>::ThermoParcel
 :
     KinematicParcel<ParcelType>(cloud, is, readFields),
     T_(0.0),
-    cp_(0.0),
+    Cp_(0.0),
     Tc_(0.0),
-    cpc_(0.0)
+    Cpc_(0.0)
 {
     if (readFields)
     {
         if (is.format() == IOstream::ASCII)
         {
             T_ = readScalar(is);
-            cp_ = readScalar(is);
+            Cp_ = readScalar(is);
         }
         else
         {
@@ -64,7 +64,7 @@ Foam::ThermoParcel<ParcelType>::ThermoParcel
             (
                 reinterpret_cast<char*>(&T_),
               + sizeof(T_)
-              + sizeof(cp_)
+              + sizeof(Cp_)
             );
         }
     }
@@ -90,8 +90,8 @@ void Foam::ThermoParcel<ParcelType>::readFields(Cloud<ParcelType>& c)
     IOField<scalar> T(c.fieldIOobject("T", IOobject::MUST_READ));
     c.checkFieldIOobject(c, T);
 
-    IOField<scalar> cp(c.fieldIOobject("cp", IOobject::MUST_READ));
-    c.checkFieldIOobject(c, cp);
+    IOField<scalar> Cp(c.fieldIOobject("Cp", IOobject::MUST_READ));
+    c.checkFieldIOobject(c, Cp);
 
 
     label i = 0;
@@ -100,7 +100,7 @@ void Foam::ThermoParcel<ParcelType>::readFields(Cloud<ParcelType>& c)
         ThermoParcel<ParcelType>& p = iter();
 
         p.T_ = T[i];
-        p.cp_ = cp[i];
+        p.Cp_ = Cp[i];
         i++;
     }
 }
@@ -114,7 +114,7 @@ void Foam::ThermoParcel<ParcelType>::writeFields(const Cloud<ParcelType>& c)
     label np =  c.size();
 
     IOField<scalar> T(c.fieldIOobject("T", IOobject::NO_READ), np);
-    IOField<scalar> cp(c.fieldIOobject("cp", IOobject::NO_READ), np);
+    IOField<scalar> Cp(c.fieldIOobject("Cp", IOobject::NO_READ), np);
 
     label i = 0;
     forAllConstIter(typename Cloud<ParcelType>, c, iter)
@@ -122,12 +122,12 @@ void Foam::ThermoParcel<ParcelType>::writeFields(const Cloud<ParcelType>& c)
         const ThermoParcel<ParcelType>& p = iter();
 
         T[i] = p.T_;
-        cp[i] = p.cp_;
+        Cp[i] = p.Cp_;
         i++;
     }
 
     T.write();
-    cp.write();
+    Cp.write();
 }
 
 
@@ -144,7 +144,7 @@ Foam::Ostream& Foam::operator<<
     {
         os  << static_cast<const KinematicParcel<ParcelType>&>(p)
             << token::SPACE << p.T()
-            << token::SPACE << p.cp();
+            << token::SPACE << p.Cp();
     }
     else
     {
@@ -152,7 +152,7 @@ Foam::Ostream& Foam::operator<<
         os.write
         (
             reinterpret_cast<const char*>(&p.T_),
-            sizeof(p.T()) + sizeof(p.cp())
+            sizeof(p.T()) + sizeof(p.Cp())
         );
     }
 
diff --git a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.C b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.C
index 7ce1c6d3c056cbada4157f10615792cf936d9a88..fff52dd90b03e12699d4be2dbdd84e4ad80194cc 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.C
+++ b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.C
@@ -368,7 +368,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::H
                      Y[i]
                     *(
                         thermo_.solids().properties()[gid].Hf()
-                      + thermo_.solids().properties()[gid].cp()*T
+                      + thermo_.solids().properties()[gid].Cp()*T
                      );
             }
             break;
@@ -433,7 +433,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::Hs
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                HsMixture += Y[i]*thermo_.solids().properties()[gid].cp()*T;
+                HsMixture += Y[i]*thermo_.solids().properties()[gid].Cp()*T;
             }
             break;
         }
@@ -517,7 +517,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::Hc
 
 
 template<class CloudType>
-Foam::scalar Foam::CompositionModel<CloudType>::cp
+Foam::scalar Foam::CompositionModel<CloudType>::Cp
 (
     const label phaseI,
     const scalarField& Y,
@@ -526,7 +526,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::cp
 ) const
 {
     const phaseProperties& props = phaseProps_[phaseI];
-    scalar cpMixture = 0.0;
+    scalar CpMixture = 0.0;
     switch (props.phase())
     {
         case phaseProperties::GAS:
@@ -534,7 +534,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::cp
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                cpMixture += Y[i]*thermo_.carrier().Cp(gid, T);
+                CpMixture += Y[i]*thermo_.carrier().Cp(gid, T);
             }
             break;
         }
@@ -543,7 +543,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::cp
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                cpMixture += Y[i]*thermo_.liquids().properties()[gid].cp(p, T);
+                CpMixture += Y[i]*thermo_.liquids().properties()[gid].Cp(p, T);
             }
             break;
         }
@@ -552,7 +552,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::cp
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                cpMixture += Y[i]*thermo_.solids().properties()[gid].cp();
+                CpMixture += Y[i]*thermo_.solids().properties()[gid].Cp();
             }
             break;
         }
@@ -560,7 +560,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::cp
         {
             FatalErrorIn
             (
-                "Foam::scalar Foam::CompositionModel<CloudType>::cp"
+                "Foam::scalar Foam::CompositionModel<CloudType>::Cp"
                 "("
                     "const label, "
                     "const scalarField&, "
@@ -571,7 +571,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::cp
         }
     }
 
-    return cpMixture;
+    return CpMixture;
 }
 
 
diff --git a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.H b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.H
index bff960c2edf899a7fd97df99191d5e61d7c4feeb..0e971d203803c4d2c45a65f123adde082ab9bc22 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.H
+++ b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.H
@@ -242,7 +242,7 @@ public:
             ) const;
 
             //- Return specific heat caoacity for the phase phaseI
-            virtual scalar cp
+            virtual scalar Cp
             (
                 const label phaseI,
                 const scalarField& Y,
diff --git a/src/lagrangian/intermediate/submodels/Reacting/InjectionModel/ReactingLookupTableInjection/ReactingLookupTableInjection.C b/src/lagrangian/intermediate/submodels/Reacting/InjectionModel/ReactingLookupTableInjection/ReactingLookupTableInjection.C
index 5c4b49370b1a5ec6a610120cab03006e107856ce..74629877d3ff08df54fb995d272085e9c5ea8cfc 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/InjectionModel/ReactingLookupTableInjection/ReactingLookupTableInjection.C
+++ b/src/lagrangian/intermediate/submodels/Reacting/InjectionModel/ReactingLookupTableInjection/ReactingLookupTableInjection.C
@@ -190,7 +190,7 @@ void Foam::ReactingLookupTableInjection<CloudType>::setProperties
     parcel.T() = injectors_[injectorI].T();
 
     // set particle specific heat capacity
-    parcel.cp() = injectors_[injectorI].cp();
+    parcel.Cp() = injectors_[injectorI].Cp();
 
     // set particle component mass fractions
     parcel.Y() = injectors_[injectorI].Y();
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/InjectionModel/ReactingMultiphaseLookupTableInjection/ReactingMultiphaseLookupTableInjection.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/InjectionModel/ReactingMultiphaseLookupTableInjection/ReactingMultiphaseLookupTableInjection.C
index 1178b5cc33f05394a18a0cbc59a346fd19d86a5f..cfdb19dfcdc1d42bf7b842ecd2edc956b5c27aa7 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/InjectionModel/ReactingMultiphaseLookupTableInjection/ReactingMultiphaseLookupTableInjection.C
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/InjectionModel/ReactingMultiphaseLookupTableInjection/ReactingMultiphaseLookupTableInjection.C
@@ -195,7 +195,7 @@ void Foam::ReactingMultiphaseLookupTableInjection<CloudType>::setProperties
     parcel.T() = injectors_[injectorI].T();
 
     // set particle specific heat capacity
-    parcel.cp() = injectors_[injectorI].cp();
+    parcel.Cp() = injectors_[injectorI].Cp();
 
     // set particle component mass fractions
     parcel.Y() = injectors_[injectorI].Y();
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionData.C b/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionData.C
index 23ea5aa1f6f82f145f807c2568aebb8432119de4..f499149b8857533474a1c78ae9bed44fd4b32f43 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionData.C
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionData.C
@@ -38,7 +38,7 @@ Foam::thermoParcelInjectionData::thermoParcelInjectionData()
 :
     kinematicParcelInjectionData(),
     T_(0.0),
-    cp_(0.0)
+    Cp_(0.0)
 {}
 
 
@@ -49,7 +49,7 @@ Foam::thermoParcelInjectionData::thermoParcelInjectionData
 :
     kinematicParcelInjectionData(dict),
     T_(readScalar(dict.lookup("T"))),
-    cp_(readScalar(dict.lookup("cp")))
+    Cp_(readScalar(dict.lookup("Cp")))
 {}
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionData.H b/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionData.H
index 3f6c4ac0841a8d373cae53ae2318fa8600eeff3e..9bec2120a7d7947e7edcae4e3f00077330900ef8 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionData.H
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionData.H
@@ -75,7 +75,7 @@ protected:
         scalar T_;
 
         //- Specific heat capacity [J/kg/K]
-        scalar cp_;
+        scalar Cp_;
 
 
 public:
@@ -105,7 +105,7 @@ public:
         inline scalar T() const;
 
         //- Return const access to the specific heat capacity
-        inline scalar cp() const;
+        inline scalar Cp() const;
 
 
     // Edit
@@ -114,7 +114,7 @@ public:
         inline scalar& T();
 
         //- Return access to the specific heat capacity
-        inline scalar& cp();
+        inline scalar& Cp();
 
 
     // I-O
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionDataI.H b/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionDataI.H
index 5069d456b77ed69e385b7bb46e1b4e5ee799e8d0..8cb96ee1d9becce8b03295d9772dcdf9814feba1 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionDataI.H
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionDataI.H
@@ -33,9 +33,9 @@ inline Foam::scalar Foam::thermoParcelInjectionData::T() const
 }
 
 
-inline Foam::scalar Foam::thermoParcelInjectionData::cp() const
+inline Foam::scalar Foam::thermoParcelInjectionData::Cp() const
 {
-    return cp_;
+    return Cp_;
 }
 
 
@@ -45,9 +45,9 @@ inline Foam::scalar& Foam::thermoParcelInjectionData::T()
 }
 
 
-inline Foam::scalar& Foam::thermoParcelInjectionData::cp()
+inline Foam::scalar& Foam::thermoParcelInjectionData::Cp()
 {
-    return cp_;
+    return Cp_;
 }
 
 
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionDataIO.C b/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionDataIO.C
index 5b3a54c561109b254df5ed34e182d45551b5ce77..390d195e3965bc7a1493a6448883bc9dfc9ec527 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionDataIO.C
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/thermoParcelInjectionDataIO.C
@@ -34,8 +34,8 @@ Foam::thermoParcelInjectionData::thermoParcelInjectionData(Istream& is)
     is.check("reading T");
     is >> T_;
 
-    is.check("reading cp");
-    is >> cp_;
+    is.check("reading Cp");
+    is >> Cp_;
 
     is.check("thermoParcelInjectionData(Istream& is)");
 }
@@ -51,7 +51,7 @@ Foam::Ostream& Foam::operator<<
 {
     os << static_cast<const kinematicParcelInjectionData&>(data);
 
-    os << data.T_ << data.cp_;
+    os << data.T_ << data.Cp_;
 
     return os;
 }
@@ -64,8 +64,8 @@ Foam::Istream& Foam::operator>>(Istream& is, thermoParcelInjectionData& data)
     is.check("reading T");
     is >> data.T_;
 
-    is.check("reading cp");
-    is >> data.cp_;
+    is.check("reading Cp");
+    is >> data.Cp_;
 
     is.check("operator(Istream&, thermoParcelInjectionData&)");
 
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C
index 04413ad9cf6c0d92dac15cdfcc508c49950c9b00..350017913ca453922a9e81875ba50c72d3a71d16 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C
@@ -38,7 +38,7 @@ Foam::ThermoSurfaceFilm<CloudType>::ThermoSurfaceFilm
 :
     SurfaceFilmModel<CloudType>(dict, owner, g, typeName),
     TFilmPatch_(0),
-    cpFilmPatch_(0)
+    CpFilmPatch_(0)
 {}
 
 
@@ -140,8 +140,8 @@ void Foam::ThermoSurfaceFilm<CloudType>::cacheFilmFields
     TFilmPatch_ = filmModel.Ts().boundaryField()[filmPatchI];
     distMap.distribute(TFilmPatch_);
 
-    cpFilmPatch_ = filmModel.cp().boundaryField()[filmPatchI];
-    distMap.distribute(cpFilmPatch_);
+    CpFilmPatch_ = filmModel.Cp().boundaryField()[filmPatchI];
+    distMap.distribute(CpFilmPatch_);
 }
 
 
@@ -156,7 +156,7 @@ void Foam::ThermoSurfaceFilm<CloudType>::setParcelProperties
 
     // Set parcel properties
     p.T() = TFilmPatch_[filmFaceI];
-    p.cp() = cpFilmPatch_[filmFaceI];
+    p.Cp() = CpFilmPatch_[filmFaceI];
 }
 
 
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H
index af594cc5e59555bfd2cf1ee2e069d12a0a42e970..4e67803f97f660b31cf1140843a70915eee07ec6 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H
@@ -66,7 +66,7 @@ protected:
             scalarList TFilmPatch_;
 
             //- Film specific heat capacity / patch face
-            scalarList cpFilmPatch_;
+            scalarList CpFilmPatch_;
 
 
     // Protected functions