From d8ee980ee5467b5787c5b1ecdc5977f9a0a2d321 Mon Sep 17 00:00:00 2001
From: andy <a.heather@opencfd.co.uk>
Date: Mon, 6 Sep 2010 17:22:56 +0100
Subject: [PATCH] ENH: Updated lagrangian/intermediate lib to use new SLGThermo
 class

---
 src/lagrangian/intermediate/Make/files        |   6 +-
 src/lagrangian/intermediate/Make/options      |   6 +-
 .../Templates/ReactingCloud/ReactingCloud.C   |  17 +--
 .../Templates/ReactingCloud/ReactingCloud.H   |  18 +--
 .../Templates/ReactingCloud/ReactingCloudI.H  |  16 ---
 .../ReactingMultiphaseCloud.C                 |   8 +-
 .../ReactingMultiphaseCloud.H                 |   2 +-
 .../Templates/ThermoCloud/ThermoCloud.C       |  10 +-
 .../Templates/ThermoCloud/ThermoCloud.H       |  13 +-
 .../Templates/ThermoCloud/ThermoCloudI.H      |  13 +-
 .../basicReactingCloud.H}                     |  20 +--
 .../basicReactingMultiphaseCloud.H}           |  37 +----
 .../ReactingMultiphaseParcel.C                |  11 +-
 .../Templates/ReactingParcel/ReactingParcel.C |  56 ++++----
 .../makeBasicKinematicParcelSubmodels.C       |   4 +-
 .../basicReactingMultiphaseParcel.C}          |  37 ++---
 .../basicReactingMultiphaseParcel.H}          |  55 +++----
 .../defineBasicReactingMultiphaseParcel.C     |   4 +-
 ...keBasicReactingMultiphaseParcelSubmodels.C |  48 +++----
 .../basicReactingParcel.C}                    |  36 ++---
 .../basicReactingParcel.H}                    |  62 ++++----
 .../defineBasicReactingParcel.C               |   4 +-
 .../makeBasicReactingParcelSubmodels.C        |  36 ++---
 .../include/createKinematicParcelTypes.H      |  50 +++++++
 .../createReactingMultiphaseParcelTypes.H     |  65 ++-------
 .../include/createReactingParcelTypes.H       |  37 ++---
 .../parcels/include/createThermoParcelTypes.H |  51 +++++++
 ...Models.H => makeParcelSurfaceFilmModels.H} |   8 +-
 ...eactingMultiphaseParcelCompositionModels.H |  32 +----
 ...ngMultiphaseParcelDevolatilisationModels.H |  42 ++----
 ...eReactingMultiphaseParcelInjectionModels.H |  60 +++-----
 ...eactingMultiphaseParcelSurfaceFilmModels.H |  74 ----------
 ...ingMultiphaseParcelSurfaceReactionModels.H |  33 +----
 .../makeReactingParcelCollisionModels.H       | 117 ---------------
 .../makeReactingParcelCompositionModels.H     |  30 +---
 .../makeReactingParcelDispersionModels.H      |  98 -------------
 .../include/makeReactingParcelDragModels.H    |  82 -----------
 .../makeReactingParcelHeatTransferModels.H    |  82 -----------
 .../makeReactingParcelInjectionModels.H       |  61 +++-----
 ...makeReactingParcelPatchInteractionModels.H |  92 ------------
 .../makeReactingParcelPhaseChangeModels.H     |  37 +----
 .../makeReactingParcelPostProcessingModels.H  |  84 -----------
 .../makeReactingParcelSurfaceFilmModels.H     |  36 +----
 .../CollisionModel/CollisionModel.H           |  15 --
 .../DispersionModel/DispersionModel.H         |  14 --
 .../Kinematic/DragModel/DragModel/DragModel.H |  14 --
 .../InjectionModel/InjectionModel.H           |  15 --
 .../PatchInteractionModel.H                   |  14 --
 .../PostProcessingModel/PostProcessingModel.H |  14 --
 .../SurfaceFilmModel/SurfaceFilmModel.H       |  15 --
 .../CompositionModel/CompositionModel.C       | 135 ++++++++----------
 .../CompositionModel/CompositionModel.H       |  44 ++----
 .../SingleMixtureFraction.C                   |  10 +-
 .../SinglePhaseMixture/SinglePhaseMixture.C   |   6 +-
 .../LiquidEvaporation/LiquidEvaporation.C     |  23 +--
 .../LiquidEvaporation/LiquidEvaporation.H     |   2 +-
 .../PhaseChangeModel/PhaseChangeModel.H       |  15 +-
 .../DevolatilisationModel.H                   |  15 +-
 .../SurfaceReactionModel.H                    |  15 +-
 .../HeatTransferModel/HeatTransferModel.H     |  14 --
 .../ThermoSurfaceFilm/ThermoSurfaceFilmI.H    | 135 ------------------
 .../SLGThermo/SLGThermo/SLGThermo.C           |  10 +-
 .../SLGThermo/SLGThermo/SLGThermo.H           |   6 +-
 63 files changed, 503 insertions(+), 1718 deletions(-)
 rename src/lagrangian/intermediate/clouds/derived/{BasicReactingCloud/BasicReactingCloud.H => basicReactingCloud/basicReactingCloud.H} (73%)
 rename src/lagrangian/intermediate/clouds/derived/{BasicReactingMultiphaseCloud/BasicReactingMultiphaseCloud.H => basicReactingMultiphaseCloud/basicReactingMultiphaseCloud.H} (64%)
 rename src/lagrangian/intermediate/parcels/derived/{BasicReactingMultiphaseParcel/BasicReactingMultiphaseParcel.C => basicReactingMultiphaseParcel/basicReactingMultiphaseParcel.C} (64%)
 rename src/lagrangian/intermediate/parcels/derived/{BasicReactingMultiphaseParcel/BasicReactingMultiphaseParcel.H => basicReactingMultiphaseParcel/basicReactingMultiphaseParcel.H} (67%)
 rename src/lagrangian/intermediate/parcels/derived/{BasicReactingMultiphaseParcel => basicReactingMultiphaseParcel}/defineBasicReactingMultiphaseParcel.C (92%)
 rename src/lagrangian/intermediate/parcels/derived/{BasicReactingMultiphaseParcel => basicReactingMultiphaseParcel}/makeBasicReactingMultiphaseParcelSubmodels.C (59%)
 rename src/lagrangian/intermediate/parcels/derived/{BasicReactingParcel/BasicReactingParcel.C => basicReactingParcel/basicReactingParcel.C} (65%)
 rename src/lagrangian/intermediate/parcels/derived/{BasicReactingParcel/BasicReactingParcel.H => basicReactingParcel/basicReactingParcel.H} (67%)
 rename src/lagrangian/intermediate/parcels/derived/{BasicReactingParcel => basicReactingParcel}/defineBasicReactingParcel.C (94%)
 rename src/lagrangian/intermediate/parcels/derived/{BasicReactingParcel => basicReactingParcel}/makeBasicReactingParcelSubmodels.C (63%)
 create mode 100644 src/lagrangian/intermediate/parcels/include/createKinematicParcelTypes.H
 create mode 100644 src/lagrangian/intermediate/parcels/include/createThermoParcelTypes.H
 rename src/lagrangian/intermediate/parcels/include/{makeKinematicParcelSurfaceFilmModels.H => makeParcelSurfaceFilmModels.H} (94%)
 delete mode 100644 src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceFilmModels.H
 delete mode 100644 src/lagrangian/intermediate/parcels/include/makeReactingParcelCollisionModels.H
 delete mode 100644 src/lagrangian/intermediate/parcels/include/makeReactingParcelDispersionModels.H
 delete mode 100644 src/lagrangian/intermediate/parcels/include/makeReactingParcelDragModels.H
 delete mode 100644 src/lagrangian/intermediate/parcels/include/makeReactingParcelHeatTransferModels.H
 delete mode 100644 src/lagrangian/intermediate/parcels/include/makeReactingParcelPatchInteractionModels.H
 delete mode 100644 src/lagrangian/intermediate/parcels/include/makeReactingParcelPostProcessingModels.H
 delete mode 100644 src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilmI.H

diff --git a/src/lagrangian/intermediate/Make/files b/src/lagrangian/intermediate/Make/files
index 8ac0c9f1b6b..47d4a2239f9 100644
--- a/src/lagrangian/intermediate/Make/files
+++ b/src/lagrangian/intermediate/Make/files
@@ -33,13 +33,15 @@ $(THERMOPARCEL)/makeBasicThermoParcelSubmodels.C
 
 
 /* reacting parcel sub-models */
-REACTINGPARCEL=$(DERIVEDPARCELS)/BasicReactingParcel
+REACTINGPARCEL=$(DERIVEDPARCELS)/basicReactingParcel
+$(REACTINGPARCEL)/basicReactingParcel.C
 $(REACTINGPARCEL)/defineBasicReactingParcel.C
 $(REACTINGPARCEL)/makeBasicReactingParcelSubmodels.C
 
 
 /* reacting multiphase parcel sub-models */
-REACTINGMPPARCEL=$(DERIVEDPARCELS)/BasicReactingMultiphaseParcel
+REACTINGMPPARCEL=$(DERIVEDPARCELS)/basicReactingMultiphaseParcel
+$(REACTINGMPPARCEL)/basicReactingMultiphaseParcel.C
 $(REACTINGMPPARCEL)/defineBasicReactingMultiphaseParcel.C
 $(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelSubmodels.C
 
diff --git a/src/lagrangian/intermediate/Make/options b/src/lagrangian/intermediate/Make/options
index c67687c84e8..5625914e28d 100644
--- a/src/lagrangian/intermediate/Make/options
+++ b/src/lagrangian/intermediate/Make/options
@@ -10,6 +10,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/solids/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/solidMixture/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
     -I$(LIB_SRC)/turbulenceModels \
     -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
@@ -19,7 +20,6 @@ EXE_INC = \
     -I$(LIB_SRC)/surfaceFilmModels/lnInclude
 
 LIB_LIBS = \
-    -lsurfaceFilmModels \
     -lfiniteVolume \
     -lmeshTools \
     -llagrangian \
@@ -31,8 +31,10 @@ LIB_LIBS = \
     -lspecie \
     -lbasicThermophysicalModels \
     -lreactionThermophysicalModels \
+    -lSLGThermo \
     -lchemistryModel \
     -lradiation \
     -lODE \
     -lcompressibleRASModels \
-    -lcompressibleLESModels
+    -lcompressibleLESModels \
+    -lsurfaceFilmModels
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
index bb04cd20c4d..fec5e02ea30 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
@@ -67,9 +67,9 @@ void Foam::ReactingCloud<ParcelType>::preEvolve()
 template<class ParcelType>
 void Foam::ReactingCloud<ParcelType>::evolveCloud()
 {
-    const volScalarField& T = this->carrierThermo().T();
-    const volScalarField cp = this->carrierThermo().Cp();
-    const volScalarField& p = this->carrierThermo().p();
+    const volScalarField& T = this->thermo().thermo().T();
+    const volScalarField cp = this->thermo().thermo().Cp();
+    const volScalarField& p = this->thermo().thermo().p();
 
     autoPtr<interpolation<scalar> > rhoInterp = interpolation<scalar>::New
     (
@@ -149,17 +149,13 @@ Foam::ReactingCloud<ParcelType>::ReactingCloud
     const volScalarField& rho,
     const volVectorField& U,
     const dimensionedVector& g,
-    basicThermo& thermo,
+    const SLGThermo& thermo,
     bool readFields
 )
 :
     ThermoCloud<ParcelType>(cloudName, rho, U, g, thermo, false),
     reactingCloud(),
     constProps_(this->particleProperties()),
-    mcCarrierThermo_
-    (
-        dynamic_cast<multiComponentMixture<thermoType>&>(thermo)
-    ),
     compositionModel_
     (
         CompositionModel<ReactingCloud<ParcelType> >::New
@@ -176,12 +172,13 @@ Foam::ReactingCloud<ParcelType>::ReactingCloud
             *this
         )
     ),
-    rhoTrans_(mcCarrierThermo_.species().size()),
+    rhoTrans_(thermo.carrier().species().size()),
     dMassPhaseChange_(0.0)
 {
     // Set storage for mass source fields and initialise to zero
     forAll(rhoTrans_, i)
     {
+        const word& specieName = thermo.carrier().species()[i];
         rhoTrans_.set
         (
             i,
@@ -189,7 +186,7 @@ Foam::ReactingCloud<ParcelType>::ReactingCloud
             (
                 IOobject
                 (
-                    this->name() + "rhoTrans_" + mcCarrierThermo_.species()[i],
+                    this->name() + "rhoTrans_" + specieName,
                     this->db().time().timeName(),
                     this->db(),
                     IOobject::NO_READ,
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H
index 1c380a37f96..38b33eab48f 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H
@@ -42,7 +42,6 @@ SourceFiles
 
 #include "ThermoCloud.H"
 #include "reactingCloud.H"
-#include "multiComponentMixture.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -67,11 +66,6 @@ class ReactingCloud
     public ThermoCloud<ParcelType>,
     public reactingCloud
 {
-public:
-
-    //- Type of thermodynamics the cloud was instantiated for
-    typedef typename ParcelType::thermoType thermoType;
-
 
 private:
 
@@ -91,9 +85,6 @@ protected:
         //- Parcel constant properties
         typename ParcelType::constantProperties constProps_;
 
-        //- Multi-component carrier phase thermo
-        multiComponentMixture<thermoType>& mcCarrierThermo_;
-
 
         // References to the cloud sub-models
 
@@ -154,7 +145,7 @@ public:
             const volScalarField& rho,
             const volVectorField& U,
             const dimensionedVector& g,
-            basicThermo& thermo,
+            const SLGThermo& thermo,
             bool readFields = true
         );
 
@@ -175,13 +166,6 @@ public:
             inline const typename ParcelType::constantProperties&
                 constProps() const;
 
-            //- Return const access to multi-component carrier phase thermo
-            inline const multiComponentMixture<thermoType>&
-                mcCarrierThermo() const;
-
-            //- Return access to multi-component carrier phase thermo
-            inline multiComponentMixture<thermoType>& mcCarrierThermo();
-
 
             // Sub-models
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudI.H b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudI.H
index e68f44dba4f..bc859a9060d 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudI.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudI.H
@@ -33,22 +33,6 @@ Foam::ReactingCloud<ParcelType>::constProps() const
 }
 
 
-template<class ParcelType>
-inline const Foam::multiComponentMixture<typename ParcelType::thermoType>&
-Foam::ReactingCloud<ParcelType>::mcCarrierThermo() const
-{
-    return mcCarrierThermo_;
-}
-
-
-template<class ParcelType>
-inline Foam::multiComponentMixture<typename ParcelType::thermoType>&
-Foam::ReactingCloud<ParcelType>::mcCarrierThermo()
-{
-    return mcCarrierThermo_;
-}
-
-
 template<class ParcelType>
 inline const Foam::CompositionModel<Foam::ReactingCloud<ParcelType> >&
 Foam::ReactingCloud<ParcelType>::composition() const
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
index cd9d597b71e..954f0486347 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
@@ -40,9 +40,9 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::preEvolve()
 template<class ParcelType>
 void Foam::ReactingMultiphaseCloud<ParcelType>::evolveCloud()
 {
-    const volScalarField& T = this->carrierThermo().T();
-    const volScalarField cp = this->carrierThermo().Cp();
-    const volScalarField& p = this->carrierThermo().p();
+    const volScalarField& T = this->thermo().thermo().T();
+    const volScalarField cp = this->thermo().thermo().Cp();
+    const volScalarField& p = this->thermo().thermo().p();
 
     autoPtr<interpolation<scalar> > rhoInterp = interpolation<scalar>::New
     (
@@ -122,7 +122,7 @@ Foam::ReactingMultiphaseCloud<ParcelType>::ReactingMultiphaseCloud
     const volScalarField& rho,
     const volVectorField& U,
     const dimensionedVector& g,
-    basicThermo& thermo,
+    const SLGThermo& thermo,
     bool readFields
 )
 :
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.H b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.H
index a6b4de3de64..efd1eaab8e0 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.H
@@ -136,7 +136,7 @@ public:
             const volScalarField& rho,
             const volVectorField& U,
             const dimensionedVector& g,
-            basicThermo& thermo,
+            const SLGThermo& thermo,
             bool readFields = true
         );
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
index deb2fa3daa4..96d6d59b8ad 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
@@ -41,8 +41,8 @@ void Foam::ThermoCloud<ParcelType>::preEvolve()
 template<class ParcelType>
 void Foam::ThermoCloud<ParcelType>::evolveCloud()
 {
-    const volScalarField& T = carrierThermo_.T();
-    const volScalarField cp = carrierThermo_.Cp();
+    const volScalarField& T = thermo_.thermo().T();
+    const volScalarField cp = thermo_.thermo().Cp();
 
     autoPtr<interpolation<scalar> > rhoInterp = interpolation<scalar>::New
     (
@@ -115,7 +115,7 @@ Foam::ThermoCloud<ParcelType>::ThermoCloud
     const volScalarField& rho,
     const volVectorField& U,
     const dimensionedVector& g,
-    basicThermo& thermo,
+    const SLGThermo& thermo,
     bool readFields
 )
 :
@@ -124,13 +124,13 @@ Foam::ThermoCloud<ParcelType>::ThermoCloud
         cloudName,
         rho,
         U,
-        thermo.mu(),
+        thermo.thermo().mu(),
         g,
         false
     ),
     thermoCloud(),
     constProps_(this->particleProperties()),
-    carrierThermo_(thermo),
+    thermo_(thermo),
     heatTransferModel_
     (
         HeatTransferModel<ThermoCloud<ParcelType> >::New
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H
index 1450f8f10ca..0f7c8afb234 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H
@@ -41,7 +41,7 @@ SourceFiles
 
 #include "KinematicCloud.H"
 #include "thermoCloud.H"
-#include "basicThermo.H"
+#include "SLGThermo.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -82,8 +82,8 @@ protected:
 
         // References to the carrier gas fields
 
-            //- Thermodynamics package (basic)
-            basicThermo& carrierThermo_;
+            //- SLG thermodynamics package
+            const SLGThermo& thermo_;
 
 
         // References to the cloud sub-models
@@ -136,7 +136,7 @@ public:
             const volScalarField& rho,
             const volVectorField& U,
             const dimensionedVector& g,
-            basicThermo& thermo,
+            const SLGThermo& thermo,
             bool readFields = true
         );
 
@@ -158,10 +158,7 @@ public:
                 constProps() const;
 
             //- Return const access to thermo package
-            inline const basicThermo& carrierThermo() const;
-
-            //- Return access to thermo package
-            inline basicThermo& carrierThermo();
+            inline const SLGThermo& thermo() const;
 
 
             // Sub-models
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H
index 83e0f5708d9..a8907205ce6 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H
@@ -38,18 +38,9 @@ Foam::ThermoCloud<ParcelType>::constProps() const
 
 
 template<class ParcelType>
-inline const Foam::basicThermo&
-Foam::ThermoCloud<ParcelType>::carrierThermo() const
+inline const Foam::SLGThermo& Foam::ThermoCloud<ParcelType>::thermo() const
 {
-    return carrierThermo_;
-}
-
-
-template<class ParcelType>
-inline Foam::basicThermo&
-Foam::ThermoCloud<ParcelType>::carrierThermo()
-{
-    return carrierThermo_;
+    return thermo_;
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/derived/BasicReactingCloud/BasicReactingCloud.H b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H
similarity index 73%
rename from src/lagrangian/intermediate/clouds/derived/BasicReactingCloud/BasicReactingCloud.H
rename to src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H
index 27159c71338..e9057ac69c4 100644
--- a/src/lagrangian/intermediate/clouds/derived/BasicReactingCloud/BasicReactingCloud.H
+++ b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H
@@ -22,35 +22,27 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::BasicReactingCloud
+    Foam::basicReactingCloud
 
 Description
-    Reacting cloud templated on the type of carrier phase thermodynamics
+    Cloud class to introduce reacting parcels
 
 SourceFiles
     BasicReactingCloud.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef BasicReactingCloud_H
-#define BasicReactingCloud_H
+#ifndef basicReactingCloud_H
+#define basicReactingCloud_H
 
 #include "ReactingCloud.H"
-#include "BasicReactingParcel.H"
-#include "thermoPhysicsTypes.H"
+#include "basicReactingParcel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    typedef ReactingCloud<BasicReactingParcel<constGasThermoPhysics> >
-        constThermoReactingCloud;
-
-    typedef ReactingCloud<BasicReactingParcel<gasThermoPhysics> >
-        thermoReactingCloud;
-
-    typedef ReactingCloud<BasicReactingParcel<icoPoly8ThermoPhysics> >
-        icoPoly8ThermoReactingCloud;
+    typedef ReactingCloud<basicReactingParcel> basicReactingCloud;
 }
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/intermediate/clouds/derived/BasicReactingMultiphaseCloud/BasicReactingMultiphaseCloud.H b/src/lagrangian/intermediate/clouds/derived/basicReactingMultiphaseCloud/basicReactingMultiphaseCloud.H
similarity index 64%
rename from src/lagrangian/intermediate/clouds/derived/BasicReactingMultiphaseCloud/BasicReactingMultiphaseCloud.H
rename to src/lagrangian/intermediate/clouds/derived/basicReactingMultiphaseCloud/basicReactingMultiphaseCloud.H
index 8f14d517211..f56c60d1faf 100644
--- a/src/lagrangian/intermediate/clouds/derived/BasicReactingMultiphaseCloud/BasicReactingMultiphaseCloud.H
+++ b/src/lagrangian/intermediate/clouds/derived/basicReactingMultiphaseCloud/basicReactingMultiphaseCloud.H
@@ -22,20 +22,18 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::BasicReactingMultiphaseCloud
+    Foam::basicReactingMultiphaseCloud
 
 Description
-    Reacting multiphase cloud templated on the type of carrier phase
-    thermodynamics
+    Cloud class to introduce multi-phase reacting parcels
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef BasicReactingMultiphaseCloud_H
-#define BasicReactingMultiphaseCloud_H
+#ifndef basicReactingMultiphaseCloud_H
+#define basicReactingMultiphaseCloud_H
 
 #include "ReactingMultiphaseCloud.H"
-#include "BasicReactingMultiphaseParcel.H"
-#include "thermoPhysicsTypes.H"
+#include "basicReactingMultiphaseParcel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -43,30 +41,9 @@ namespace Foam
 {
     typedef ReactingMultiphaseCloud
         <
-            BasicReactingMultiphaseParcel
-            <
-                constGasThermoPhysics
-            >
+            basicReactingMultiphaseParcel
         >
-        constThermoReactingMultiphaseCloud;
-
-    typedef ReactingMultiphaseCloud
-        <
-            BasicReactingMultiphaseParcel
-            <
-                gasThermoPhysics
-            >
-        >
-        thermoReactingMultiphaseCloud;
-
-    typedef ReactingMultiphaseCloud
-        <
-            BasicReactingMultiphaseParcel
-            <
-                icoPoly8ThermoPhysics
-            >
-        >
-        icoPoly8ThermoReactingMultiphaseCloud;
+        basicReactingMultiphaseCloud;
 }
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
index 6ff07adc817..1deed776b92 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
@@ -170,8 +170,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::cellValueSourceCorrection
         forAll(td.cloud().rhoTrans(), i)
         {
             scalar Y = td.cloud().rhoTrans(i)[cellI]/addedMass;
-            cpEff +=
-                Y*td.cloud().mcCarrierThermo().speciesData()[i].Cp(this->Tc_);
+            cpEff += Y*td.cloud().thermo().carrier().Cp(i, this->Tc_);
         }
     }
     const scalar cpc = td.cpInterp().psi()[cellI];
@@ -247,7 +246,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
     scalar NCpW = 0.0;
 
     // Surface concentrations of emitted species
-    scalarField Cs(td.cloud().mcCarrierThermo().species().size(), 0.0);
+    scalarField Cs(td.cloud().composition().carrier().species().size(), 0.0);
 
     // Calc mass and enthalpy transfer due to phase change
     calcPhaseChange
@@ -313,7 +312,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
     scalarField
         dMassSRCarrier
         (
-            td.cloud().mcCarrierThermo().species().size(),
+            td.cloud().composition().carrier().species().size(),
             0.0
         );
 
@@ -547,8 +546,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
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
index 08d614ff9b4..fa5f3f5ede3 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
@@ -89,8 +89,7 @@ void Foam::ReactingParcel<ParcelType>::cellValueSourceCorrection
         forAll(td.cloud().rhoTrans(), i)
         {
             scalar Y = td.cloud().rhoTrans(i)[cellI]/addedMass;
-            cpEff +=
-                Y*td.cloud().mcCarrierThermo().speciesData()[i].Cp(this->Tc_);
+            cpEff += Y*td.cloud().composition().carrier().Cp(i, this->Tc_);
         }
     }
     const scalar cpc = td.cpInterp().psi()[cellI];
@@ -121,13 +120,13 @@ void Foam::ReactingParcel<ParcelType>::correctSurfaceValues
     }
 
     // Far field carrier  molar fractions
-    scalarField Xinf(td.cloud().mcCarrierThermo().speciesData().size());
+    scalarField Xinf(td.cloud().thermo().carrier().species().size());
 
     forAll(Xinf, i)
     {
         Xinf[i] =
-            td.cloud().mcCarrierThermo().Y(i)[cellI]
-           /td.cloud().mcCarrierThermo().speciesData()[i].W();
+            td.cloud().thermo().carrier().Y(i)[cellI]
+           /td.cloud().thermo().carrier().W(i);
     }
     Xinf /= sum(Xinf);
 
@@ -149,7 +148,7 @@ void Foam::ReactingParcel<ParcelType>::correctSurfaceValues
         const scalar Csi = Cs[i] + Xsff*Xinf[i]*CsTot;
 
         Xs[i] = (2.0*Csi + Xinf[i]*CsTot)/3.0;
-        Ys[i] = Xs[i]*td.cloud().mcCarrierThermo().speciesData()[i].W();
+        Ys[i] = Xs[i]*td.cloud().thermo().carrier().W(i);
     }
     Xs /= sum(Xs);
     Ys /= sum(Ys);
@@ -164,16 +163,13 @@ void Foam::ReactingParcel<ParcelType>::correctSurfaceValues
 
     forAll(Ys, i)
     {
-        const scalar sqrtW =
-            sqrt(td.cloud().mcCarrierThermo().speciesData()[i].W());
-        const scalar cbrtW =
-            cbrt(td.cloud().mcCarrierThermo().speciesData()[i].W());
+        const scalar sqrtW = sqrt(td.cloud().thermo().carrier().W(i));
+        const scalar cbrtW = cbrt(td.cloud().thermo().carrier().W(i));
 
-        rhos += Xs[i]*td.cloud().mcCarrierThermo().speciesData()[i].W();
-        mus += Ys[i]*sqrtW*td.cloud().mcCarrierThermo().speciesData()[i].mu(T);
-        kappa +=
-            Ys[i]*cbrtW*td.cloud().mcCarrierThermo().speciesData()[i].kappa(T);
-        cps += Xs[i]*td.cloud().mcCarrierThermo().speciesData()[i].Cp(T);
+        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);
 
         sumYiSqrtW += Ys[i]*sqrtW;
         sumYiCbrtW += Ys[i]*cbrtW;
@@ -267,7 +263,7 @@ void Foam::ReactingParcel<ParcelType>::calc
     scalar NCpW = 0.0;
 
     // Surface concentrations of emitted species
-    scalarField Cs(td.cloud().mcCarrierThermo().species().size(), 0.0);
+    scalarField Cs(td.cloud().composition().carrier().species().size(), 0.0);
 
     // Calc mass and enthalpy transfer due to phase change
     calcPhaseChange
@@ -416,10 +412,10 @@ void Foam::ReactingParcel<ParcelType>::calcPhaseChange
     scalarField& Cs
 )
 {
-    typedef PhaseChangeModel
-    <
-        typename ReactingParcel<ParcelType>::trackData::cloudType
-    > phaseChangeModelType;
+    typedef typename ReactingParcel<ParcelType>::trackData::cloudType cloudType;
+    typedef PhaseChangeModel<cloudType> phaseChangeModelType;
+    const CompositionModel<cloudType>& composition = td.cloud().composition();
+
 
     if
     (
@@ -458,9 +454,8 @@ void Foam::ReactingParcel<ParcelType>::calcPhaseChange
 
     forAll(YComponents, i)
     {
-        const label idc =
-            td.cloud().composition().localToGlobalCarrierId(idPhase, i);
-        const label idl = td.cloud().composition().globalIds(idPhase)[i];
+        const label idc = composition.localToGlobalCarrierId(idPhase, i);
+        const label idl = composition.globalIds(idPhase)[i];
 
         // Calculate enthalpy transfer
         if
@@ -469,28 +464,25 @@ void Foam::ReactingParcel<ParcelType>::calcPhaseChange
          == phaseChangeModelType::etLatentHeat
         )
         {
-            scalar hlp =
-                td.cloud().composition().liquids().properties()[idl].hl(pc_, T);
+            scalar hlp = composition.liquids().properties()[idl].hl(pc_, T);
 
             Sh -= dMassPC[i]*hlp/dt;
         }
         else
         {
             // Note: enthalpies of both phases must use the same reference
-            scalar hc = td.cloud().mcCarrierThermo().speciesData()[idc].H(T);
-            scalar hp =
-                td.cloud().composition().liquids().properties()[idl].h(pc_, T);
+            scalar hc = composition.carrier().H(idc, T);
+            scalar hp = composition.liquids().properties()[idl].h(pc_, T);
 
             Sh -= dMassPC[i]*(hc - hp)/dt;
         }
 
         // Update particle surface thermo properties
         const scalar Dab =
-            td.cloud().composition().liquids().properties()[idl].D(pc_, Ts, Wc);
+            composition.liquids().properties()[idl].D(pc_, Ts, Wc);
 
-        const scalar Cp =
-            td.cloud().mcCarrierThermo().speciesData()[idc].Cp(Ts);
-        const scalar W = td.cloud().mcCarrierThermo().speciesData()[idc].W();
+        const scalar Cp = composition.carrier().Cp(idc, Ts);
+        const scalar W = composition.carrier().W(idc);
         const scalar Ni = dMassPC[i]/(this->areaS(d)*dt*W);
 
         // Molar flux of species coming from the particle (kmol/m^2/s)
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelSubmodels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelSubmodels.C
index 002e2eb66ac..d6c2d4532e6 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelSubmodels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelSubmodels.C
@@ -32,7 +32,7 @@ License
 #include "makeParcelCollisionModels.H"
 #include "makeParcelPatchInteractionModels.H"
 #include "makeParcelPostProcessingModels.H"
-#include "makeKinematicParcelSurfaceFilmModels.H"
+#include "makeParcelSurfaceFilmModels.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -45,7 +45,7 @@ namespace Foam
     makeParcelCollisionModels(basicKinematicParcel);
     makeParcelPatchInteractionModels(basicKinematicParcel);
     makeParcelPostProcessingModels(basicKinematicParcel);
-    makeKinematicParcelSurfaceFilmModels(basicKinematicParcel);
+    makeParcelSurfaceFilmModels(basicKinematicParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/BasicReactingMultiphaseParcel.C b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/basicReactingMultiphaseParcel.C
similarity index 64%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/BasicReactingMultiphaseParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/basicReactingMultiphaseParcel.C
index 849575b92f4..56359e0d961 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/BasicReactingMultiphaseParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/basicReactingMultiphaseParcel.C
@@ -23,19 +23,18 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "BasicReactingMultiphaseParcel.H"
+#include "basicReactingMultiphaseParcel.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class ThermoType>
-Foam::BasicReactingMultiphaseParcel<ThermoType>::BasicReactingMultiphaseParcel
+Foam::basicReactingMultiphaseParcel::basicReactingMultiphaseParcel
 (
-    ReactingMultiphaseCloud<BasicReactingMultiphaseParcel<ThermoType> >& owner,
+    ReactingMultiphaseCloud<basicReactingMultiphaseParcel>& owner,
     const vector& position,
     const label cellI
 )
 :
-    ReactingMultiphaseParcel<BasicReactingMultiphaseParcel<ThermoType> >
+    ReactingMultiphaseParcel<basicReactingMultiphaseParcel>
     (
         owner,
         position,
@@ -44,10 +43,9 @@ Foam::BasicReactingMultiphaseParcel<ThermoType>::BasicReactingMultiphaseParcel
 {}
 
 
-template<class ThermoType>
-Foam::BasicReactingMultiphaseParcel<ThermoType>::BasicReactingMultiphaseParcel
+Foam::basicReactingMultiphaseParcel::basicReactingMultiphaseParcel
 (
-    ReactingMultiphaseCloud<BasicReactingMultiphaseParcel<ThermoType> >& owner,
+    ReactingMultiphaseCloud<basicReactingMultiphaseParcel>& owner,
     const vector& position,
     const label cellI,
     const label typeId,
@@ -61,12 +59,11 @@ Foam::BasicReactingMultiphaseParcel<ThermoType>::BasicReactingMultiphaseParcel
     const scalarField& YLiquid0,
     const scalarField& YSolid0,
     const scalarField& Y0,
-    const typename
-        ReactingMultiphaseParcel<BasicReactingMultiphaseParcel>::
+    const ReactingMultiphaseParcel<basicReactingMultiphaseParcel>::
         constantProperties& constProps
 )
 :
-    ReactingMultiphaseParcel<BasicReactingMultiphaseParcel<ThermoType> >
+    ReactingMultiphaseParcel<basicReactingMultiphaseParcel >
     (
         owner,
         position,
@@ -87,15 +84,14 @@ Foam::BasicReactingMultiphaseParcel<ThermoType>::BasicReactingMultiphaseParcel
 {}
 
 
-template<class ThermoType>
-Foam::BasicReactingMultiphaseParcel<ThermoType>::BasicReactingMultiphaseParcel
+Foam::basicReactingMultiphaseParcel::basicReactingMultiphaseParcel
 (
-    const Cloud<BasicReactingMultiphaseParcel<ThermoType> >& cloud,
+    const Cloud<basicReactingMultiphaseParcel>& cloud,
     Istream& is,
     bool readFields
 )
 :
-    ReactingMultiphaseParcel<BasicReactingMultiphaseParcel<ThermoType> >
+    ReactingMultiphaseParcel<basicReactingMultiphaseParcel>
     (
         cloud,
         is,
@@ -104,21 +100,18 @@ Foam::BasicReactingMultiphaseParcel<ThermoType>::BasicReactingMultiphaseParcel
 {}
 
 
-template<class ThermoType>
-Foam::BasicReactingMultiphaseParcel<ThermoType>::BasicReactingMultiphaseParcel
+Foam::basicReactingMultiphaseParcel::basicReactingMultiphaseParcel
 (
-    const BasicReactingMultiphaseParcel<ThermoType>& p
+    const basicReactingMultiphaseParcel& p
 )
 :
-    ReactingMultiphaseParcel<BasicReactingMultiphaseParcel<ThermoType> >(p)
+    ReactingMultiphaseParcel<basicReactingMultiphaseParcel>(p)
 {}
 
 
 // * * * * * * * * * * * * * * * *  Destructors  * * * * * * * * * * * * * * //
 
-template<class ThermoType>
-Foam::BasicReactingMultiphaseParcel<ThermoType>::
-~BasicReactingMultiphaseParcel()
+Foam::basicReactingMultiphaseParcel::~basicReactingMultiphaseParcel()
 {}
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/BasicReactingMultiphaseParcel.H b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/basicReactingMultiphaseParcel.H
similarity index 67%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/BasicReactingMultiphaseParcel.H
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/basicReactingMultiphaseParcel.H
index cc50ae66d1a..6cc9d2f535a 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/BasicReactingMultiphaseParcel.H
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/basicReactingMultiphaseParcel.H
@@ -28,13 +28,13 @@ Description
 
 
 SourceFiles
-    BasicReactingMultiphaseParcel.C
-    BasicReactingMultiphaseParcelIO.C
+    basicReactingMultiphaseParcel.C
+    basicReactingMultiphaseParcelIO.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef BasicReactingMultiphaseParcel_H
-#define BasicReactingMultiphaseParcel_H
+#ifndef basicReactingMultiphaseParcel_H
+#define basicReactingMultiphaseParcel_H
 
 #include "ReactingMultiphaseParcel.H"
 
@@ -44,43 +44,35 @@ SourceFiles
 namespace Foam
 {
 
-// Forward declaration of classes
-template<class ThermoType>
-class BasicReactingMultiphaseParcel;
-
 /*---------------------------------------------------------------------------*\
-               Class BasicReactingMultiphaseParcel Declaration
+               Class basicReactingMultiphaseParcel Declaration
 \*---------------------------------------------------------------------------*/
 
-template<class ThermoType>
-class BasicReactingMultiphaseParcel
+class basicReactingMultiphaseParcel
 :
-    public ReactingMultiphaseParcel<BasicReactingMultiphaseParcel<ThermoType> >
+    public ReactingMultiphaseParcel<basicReactingMultiphaseParcel>
 {
 
 public:
 
-    //- The type of thermodynamics this parcel was instantiated for
-    typedef ThermoType thermoType;
-
     //- Run-time type information
-    TypeName("BasicReactingMultiphaseParcel");
+    TypeName("basicReactingMultiphaseParcel");
 
     // Constructors
 
         //- Construct from owner, position, and cloud owner
         //  Other properties initialised as null
-        BasicReactingMultiphaseParcel
+        basicReactingMultiphaseParcel
         (
-             ReactingMultiphaseCloud<BasicReactingMultiphaseParcel>& owner,
+             ReactingMultiphaseCloud<basicReactingMultiphaseParcel>& owner,
              const vector& position,
              const label cellI
         );
 
         //- Construct from components
-        BasicReactingMultiphaseParcel
+        basicReactingMultiphaseParcel
         (
-             ReactingMultiphaseCloud<BasicReactingMultiphaseParcel>& owner,
+             ReactingMultiphaseCloud<basicReactingMultiphaseParcel>& owner,
              const vector& position,
              const label cellI,
              const label typeId,
@@ -94,35 +86,34 @@ public:
              const scalarField& YLiquid0,
              const scalarField& YSolid0,
              const scalarField& Y0,
-             const typename
-                ReactingMultiphaseParcel<BasicReactingMultiphaseParcel>::
+             const ReactingMultiphaseParcel<basicReactingMultiphaseParcel>::
                 constantProperties& constProps
         );
 
         //- Construct from Istream
-        BasicReactingMultiphaseParcel
+        basicReactingMultiphaseParcel
         (
-            const Cloud<BasicReactingMultiphaseParcel>& c,
+            const Cloud<basicReactingMultiphaseParcel>& c,
             Istream& is,
             bool readFields = true
         );
 
         //- Construct as a copy
-        BasicReactingMultiphaseParcel(const BasicReactingMultiphaseParcel& p);
+        basicReactingMultiphaseParcel(const basicReactingMultiphaseParcel& p);
 
         //- Construct and return a clone
-        autoPtr<BasicReactingMultiphaseParcel> clone() const
+        autoPtr<basicReactingMultiphaseParcel> clone() const
         {
             return
-                autoPtr<BasicReactingMultiphaseParcel>
+                autoPtr<basicReactingMultiphaseParcel>
                 (
-                    new BasicReactingMultiphaseParcel(*this)
+                    new basicReactingMultiphaseParcel(*this)
                 );
         }
 
 
     //- Destructor
-    virtual ~BasicReactingMultiphaseParcel();
+    virtual ~basicReactingMultiphaseParcel();
 };
 
 
@@ -132,12 +123,6 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#ifdef NoRepository
-    #include "BasicReactingMultiphaseParcel.C"
-#endif
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
 #endif
 
 // ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/defineBasicReactingMultiphaseParcel.C b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/defineBasicReactingMultiphaseParcel.C
similarity index 92%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/defineBasicReactingMultiphaseParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/defineBasicReactingMultiphaseParcel.C
index cbcc47926ab..3c3e9fe8fa0 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/defineBasicReactingMultiphaseParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/defineBasicReactingMultiphaseParcel.C
@@ -24,13 +24,13 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "createReactingMultiphaseParcelTypes.H"
-#include "BasicReactingMultiphaseParcel.H"
+#include "basicReactingMultiphaseParcel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    createReactingMultiphaseParcelType(BasicReactingMultiphaseParcel);
+    createReactingMultiphaseParcelTypes(basicReactingMultiphaseParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSubmodels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSubmodels.C
similarity index 59%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSubmodels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSubmodels.C
index b33358db3fe..4db5e925a00 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSubmodels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSubmodels.C
@@ -23,26 +23,26 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "BasicReactingMultiphaseParcel.H"
+#include "basicReactingMultiphaseParcel.H"
 
 // Kinematic
-#include "makeReactingParcelDispersionModels.H"
-#include "makeReactingParcelDragModels.H"
+#include "makeParcelDispersionModels.H"
+#include "makeParcelDragModels.H"
 #include "makeReactingMultiphaseParcelInjectionModels.H" // MP variant
-#include "makeReactingParcelCollisionModels.H"
-#include "makeReactingParcelPatchInteractionModels.H"
-#include "makeReactingParcelPostProcessingModels.H"
+#include "makeParcelCollisionModels.H"
+#include "makeParcelPatchInteractionModels.H"
+#include "makeParcelPostProcessingModels.H"
 
 // Thermodynamic
-#include "makeReactingParcelHeatTransferModels.H"
+#include "makeParcelHeatTransferModels.H"
 
 // Reacting
-#include "makeReactingMultiphaseParcelCompositionModels.H" // MP variant
+#include "makeReactingMultiphaseParcelCompositionModels.H" // MP Variant
 #include "makeReactingParcelPhaseChangeModels.H"
+#include "makeReactingParcelSurfaceFilmModels.H"
 
 // Reacting multiphase
 #include "makeReactingMultiphaseParcelDevolatilisationModels.H"
-#include "makeReactingMultiphaseParcelSurfaceFilmModels.H"
 #include "makeReactingMultiphaseParcelSurfaceReactionModels.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -50,32 +50,32 @@ License
 namespace Foam
 {
     // Kinematic sub-models
-    makeReactingDispersionModels(BasicReactingMultiphaseParcel);
-    makeReactingDragModels(BasicReactingMultiphaseParcel);
-    makeReactingMultiphaseInjectionModels(BasicReactingMultiphaseParcel);
-    makeReactingCollisionModels(BasicReactingMultiphaseParcel);
-    makeReactingPatchInteractionModels(BasicReactingMultiphaseParcel);
-    makeReactingPostProcessingModels(BasicReactingMultiphaseParcel);
+    makeParcelDispersionModels(basicReactingMultiphaseParcel);
+    makeParcelDragModels(basicReactingMultiphaseParcel);
+    makeReactingMultiphaseParcelInjectionModels(basicReactingMultiphaseParcel);
+    makeParcelCollisionModels(basicReactingMultiphaseParcel);
+    makeParcelPatchInteractionModels(basicReactingMultiphaseParcel);
+    makeParcelPostProcessingModels(basicReactingMultiphaseParcel);
 
     // Thermo sub-models
-    makeReactingHeatTransferModels(BasicReactingMultiphaseParcel);
+    makeParcelHeatTransferModels(basicReactingMultiphaseParcel);
 
     // Reacting sub-models
-    makeReactingMultiphaseCompositionModels(BasicReactingMultiphaseParcel);
-    makeReactingPhaseChangeModels(BasicReactingMultiphaseParcel);
+    makeReactingMultiphaseParcelCompositionModels(basicReactingMultiphaseParcel);
+    makeReactingParcelPhaseChangeModels(basicReactingMultiphaseParcel);
 
     // Reacting multiphase sub-models
-    makeReactingMultiphaseDevolatilisationModels
+    makeReactingMultiphaseParcelDevolatilisationModels
     (
-        BasicReactingMultiphaseParcel
+        basicReactingMultiphaseParcel
     );
-    makeReactingMultiphaseSurfaceFilmModels
+    makeReactingParcelSurfaceFilmModels
     (
-        BasicReactingMultiphaseParcel
+        basicReactingMultiphaseParcel
     );
-    makeReactingMultiphaseSurfaceReactionModels
+    makeReactingMultiphaseParcelSurfaceReactionModels
     (
-        BasicReactingMultiphaseParcel
+        basicReactingMultiphaseParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/BasicReactingParcel.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.C
similarity index 65%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/BasicReactingParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.C
index 5e173ff85e2..23ef85c02ec 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/BasicReactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.C
@@ -23,26 +23,24 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "BasicReactingParcel.H"
+#include "basicReactingParcel.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class ThermoType>
-Foam::BasicReactingParcel<ThermoType>::BasicReactingParcel
+Foam::basicReactingParcel::basicReactingParcel
 (
-    ReactingCloud<BasicReactingParcel<ThermoType> >& owner,
+    ReactingCloud<basicReactingParcel >& owner,
     const vector& position,
     const label cellI
 )
 :
-    ReactingParcel<BasicReactingParcel<ThermoType> >(owner, position, cellI)
+    ReactingParcel<basicReactingParcel >(owner, position, cellI)
 {}
 
 
-template<class ThermoType>
-Foam::BasicReactingParcel<ThermoType>::BasicReactingParcel
+Foam::basicReactingParcel::basicReactingParcel
 (
-    ReactingCloud<BasicReactingParcel<ThermoType> >& owner,
+    ReactingCloud<basicReactingParcel >& owner,
     const vector& position,
     const label cellI,
     const label typeId,
@@ -53,11 +51,10 @@ Foam::BasicReactingParcel<ThermoType>::BasicReactingParcel
     const vector& angularMomentum0,
     const vector& torque0,
     const scalarField& Y0,
-    const typename ReactingParcel<BasicReactingParcel<ThermoType> >::
-        constantProperties& constProps
+    const ReactingParcel<basicReactingParcel>::constantProperties& constProps
 )
 :
-    ReactingParcel<BasicReactingParcel<ThermoType> >
+    ReactingParcel<basicReactingParcel >
     (
         owner,
         position,
@@ -75,32 +72,29 @@ Foam::BasicReactingParcel<ThermoType>::BasicReactingParcel
 {}
 
 
-template<class ThermoType>
-Foam::BasicReactingParcel<ThermoType>::BasicReactingParcel
+Foam::basicReactingParcel::basicReactingParcel
 (
-    const Cloud<BasicReactingParcel<ThermoType> >& cloud,
+    const Cloud<basicReactingParcel >& cloud,
     Istream& is,
     bool readFields
 )
 :
-    ReactingParcel<BasicReactingParcel<ThermoType> >(cloud, is, readFields)
+    ReactingParcel<basicReactingParcel>(cloud, is, readFields)
 {}
 
 
-template<class ThermoType>
-Foam::BasicReactingParcel<ThermoType>::BasicReactingParcel
+Foam::basicReactingParcel::basicReactingParcel
 (
-    const BasicReactingParcel<ThermoType>& p
+    const basicReactingParcel& p
 )
 :
-    ReactingParcel<BasicReactingParcel>(p)
+    ReactingParcel<basicReactingParcel>(p)
 {}
 
 
 // * * * * * * * * * * * * * * * *  Destructors  * * * * * * * * * * * * * * //
 
-template<class ThermoType>
-Foam::BasicReactingParcel<ThermoType>::~BasicReactingParcel()
+Foam::basicReactingParcel::~basicReactingParcel()
 {}
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/BasicReactingParcel.H b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.H
similarity index 67%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/BasicReactingParcel.H
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.H
index dc3d69e75db..86e9d726f5a 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/BasicReactingParcel.H
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.H
@@ -22,19 +22,18 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::BasicReactingParcel
+    Foam::basicReactingParcel
 
 Description
 
 
 SourceFiles
-    BasicReactingParcel.C
-    BasicReactingParcelIO.C
+    basicReactingParcel.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef BasicReactingParcel_H
-#define BasicReactingParcel_H
+#ifndef basicReactingParcel_H
+#define basicReactingParcel_H
 
 #include "ReactingParcel.H"
 
@@ -43,43 +42,35 @@ SourceFiles
 namespace Foam
 {
 
-// Forward declaration of classes
-template<class ThermoType>
-class BasicReactingParcel;
-
 /*---------------------------------------------------------------------------*\
-                    Class BasicReactingParcel Declaration
+                    Class basicReactingParcel Declaration
 \*---------------------------------------------------------------------------*/
 
-template<class ThermoType>
-class BasicReactingParcel
+class basicReactingParcel
 :
-    public ReactingParcel<BasicReactingParcel<ThermoType> >
+    public ReactingParcel<basicReactingParcel>
 {
 
 public:
 
-    //- The type of thermodynamics this parcel was instantiated for
-    typedef ThermoType thermoType;
-
     //- Run-time type information
-    TypeName("BasicReactingParcel");
+    TypeName("basicReactingParcel");
 
     // Constructors
 
         //- Construct from owner, position, and cloud owner
         //  Other properties initialised as null
-        BasicReactingParcel
+        basicReactingParcel
         (
-            ReactingCloud<BasicReactingParcel>& owner,
+            ReactingCloud<basicReactingParcel>& owner,
             const vector& position,
             const label cellI
         );
 
         //- Construct from components
-        BasicReactingParcel
+        basicReactingParcel
         (
-            ReactingCloud<BasicReactingParcel>& owner,
+            ReactingCloud<basicReactingParcel>& owner,
             const vector& position,
             const label cellI,
             const label typeId,
@@ -90,46 +81,47 @@ public:
             const vector& angularMomentum0,
             const vector& torque0,
             const scalarField& Y0,
-            const typename ReactingParcel<BasicReactingParcel>::
-                constantProperties& constProps
+            const ReactingParcel<basicReactingParcel>::constantProperties&
+                constProps
         );
 
         //- Construct from Istream
-        BasicReactingParcel
+        basicReactingParcel
         (
-            const Cloud<BasicReactingParcel>& c,
+            const Cloud<basicReactingParcel>& c,
             Istream& is,
             bool readFields = true
         );
 
         //- Construct as a copy
-        BasicReactingParcel(const BasicReactingParcel& p);
+        basicReactingParcel(const basicReactingParcel& p);
 
         //- Construct and return a clone
-        autoPtr<BasicReactingParcel> clone() const
+        autoPtr<basicReactingParcel> clone() const
         {
             return
-                autoPtr<BasicReactingParcel>
+                autoPtr<basicReactingParcel>
                 (
-                    new BasicReactingParcel(*this)
+                    new basicReactingParcel(*this)
                 );
         }
 
 
     //- Destructor
-    virtual ~BasicReactingParcel();
+    virtual ~basicReactingParcel();
 };
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+template<>
+inline bool contiguous<basicReactingParcel>()
+{
+    return false;
+}
 
-} // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#ifdef NoRepository
-    #include "BasicReactingParcel.C"
-#endif
+} // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/defineBasicReactingParcel.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/defineBasicReactingParcel.C
similarity index 94%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/defineBasicReactingParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/defineBasicReactingParcel.C
index c4dc663cbd3..0eb06eedd57 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/defineBasicReactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/defineBasicReactingParcel.C
@@ -23,14 +23,14 @@ License
 
 \*---------------------------------------------------------------------------*/
 
+#include "basicReactingParcel.H"
 #include "createReactingParcelTypes.H"
-#include "BasicReactingParcel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    createReactingParcelType(BasicReactingParcel);
+    createReactingParcelTypes(basicReactingParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/makeBasicReactingParcelSubmodels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelSubmodels.C
similarity index 63%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/makeBasicReactingParcelSubmodels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelSubmodels.C
index d2e23542d13..cd4f0e17756 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/makeBasicReactingParcelSubmodels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelSubmodels.C
@@ -23,18 +23,18 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "BasicReactingParcel.H"
+#include "basicReactingParcel.H"
 
 // Kinematic
-#include "makeReactingParcelDispersionModels.H"
-#include "makeReactingParcelDragModels.H"
-#include "makeReactingParcelInjectionModels.H"
-#include "makeReactingParcelCollisionModels.H"
-#include "makeReactingParcelPatchInteractionModels.H"
-#include "makeReactingParcelPostProcessingModels.H"
+#include "makeParcelDispersionModels.H"
+#include "makeParcelDragModels.H"
+#include "makeReactingParcelInjectionModels.H" // Reacting variant
+#include "makeParcelCollisionModels.H"
+#include "makeParcelPatchInteractionModels.H"
+#include "makeParcelPostProcessingModels.H"
 
 // Thermodynamic
-#include "makeReactingParcelHeatTransferModels.H"
+#include "makeParcelHeatTransferModels.H"
 
 // Reacting
 #include "makeReactingParcelCompositionModels.H"
@@ -46,20 +46,20 @@ License
 namespace Foam
 {
     // Kinematic sub-models
-    makeReactingDispersionModels(BasicReactingParcel);
-    makeReactingDragModels(BasicReactingParcel);
-    makeReactingInjectionModels(BasicReactingParcel);
-    makeReactingCollisionModels(BasicReactingParcel);
-    makeReactingPatchInteractionModels(BasicReactingParcel);
-    makeReactingPostProcessingModels(BasicReactingParcel);
+    makeParcelDispersionModels(basicReactingParcel);
+    makeParcelDragModels(basicReactingParcel);
+    makeReactingParcelInjectionModels(basicReactingParcel);
+    makeParcelCollisionModels(basicReactingParcel);
+    makeParcelPatchInteractionModels(basicReactingParcel);
+    makeParcelPostProcessingModels(basicReactingParcel);
 
     // Thermo sub-models
-    makeReactingHeatTransferModels(BasicReactingParcel);
+    makeParcelHeatTransferModels(basicReactingParcel);
 
     // Reacting sub-models
-    makeReactingCompositionModels(BasicReactingParcel);
-    makeReactingPhaseChangeModels(BasicReactingParcel);
-    makeReactingSurfaceFilmModels(BasicReactingParcel);
+    makeReactingParcelCompositionModels(basicReactingParcel);
+    makeReactingParcelPhaseChangeModels(basicReactingParcel);
+    makeReactingParcelSurfaceFilmModels(basicReactingParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/include/createKinematicParcelTypes.H b/src/lagrangian/intermediate/parcels/include/createKinematicParcelTypes.H
new file mode 100644
index 00000000000..acdace44af1
--- /dev/null
+++ b/src/lagrangian/intermediate/parcels/include/createKinematicParcelTypes.H
@@ -0,0 +1,50 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2008-2010 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef createKinematicParcelTypes_H
+#define createKinematicParcelTypes_H
+
+#include "KinematicParcel.H"
+#include "KinematicCloud.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#define createKinematicParcelTypes(ParcelType)                                \
+                                                                              \
+    defineTemplateTypeNameAndDebug(ParcelType, 0);                            \
+    defineTemplateTypeNameAndDebug(Particle<ParcelType>, 0);                  \
+    defineTemplateTypeNameAndDebug(Cloud<ParcelType>, 0);                     \
+                                                                              \
+    defineParcelTypeNameAndDebug(KinematicParcel<ParcelType>, 0);             \
+    defineTemplateTypeNameAndDebug(KinematicParcel<ParcelType>, 0);           \
+    defineParcelTypeNameAndDebug(KinematicCloud<ParcelType>, 0);
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
+
diff --git a/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H b/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H
index 5013e8d9058..50a31657bb7 100644
--- a/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H
+++ b/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H
@@ -26,67 +26,20 @@ License
 #ifndef createReactingMultiphaseParcelTypes_H
 #define createReactingMultiphaseParcelTypes_H
 
-#include "thermoPhysicsTypes.H"
+#include "ReactingMultiphaseParcel.H"
+#include "ReactingMultiphaseCloud.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#define createReactingMultiphaseParcelType(ParcelType)                        \
-                                                                              \
-    createReactingMultiphaseParcelThermoType                                  \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-    createReactingMultiphaseParcelThermoType                                  \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-    createReactingMultiphaseParcelThermoType                                  \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
+#include "createReactingParcelTypes.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingMultiphaseParcelThermoType(ParcelType, ThermoType)      \
+#define createReactingMultiphaseParcelTypes(ParcelType)                       \
                                                                               \
-    typedef ParcelType<ThermoType> ParcelType##ThermoType;                    \
+    createReactingParcelTypes(ParcelType);                                    \
                                                                               \
-    defineTemplateTypeNameAndDebug(ParcelType##ThermoType, 0);                \
-    defineTemplateTypeNameAndDebug(Particle<ParcelType##ThermoType>, 0);      \
-    defineTemplateTypeNameAndDebug(Cloud<ParcelType##ThermoType>, 0);         \
-                                                                              \
-    defineParcelTypeNameAndDebug(KinematicParcel<ParcelType##ThermoType>, 0); \
-    defineTemplateTypeNameAndDebug                                            \
-    (                                                                         \
-        KinematicParcel<ParcelType##ThermoType>,                              \
-        0                                                                     \
-    );                                                                        \
-    defineParcelTypeNameAndDebug(ThermoParcel<ParcelType##ThermoType>, 0);    \
-    defineTemplateTypeNameAndDebug(ThermoParcel<ParcelType##ThermoType>, 0);  \
-    defineParcelTypeNameAndDebug(ReactingParcel<ParcelType##ThermoType>, 0);  \
-    defineTemplateTypeNameAndDebug(ReactingParcel<ParcelType##ThermoType>, 0);\
-    defineParcelTypeNameAndDebug                                              \
-    (                                                                         \
-        ReactingMultiphaseParcel<ParcelType##ThermoType>,                     \
-        0                                                                     \
-    );                                                                        \
-    defineTemplateTypeNameAndDebug                                            \
-    (                                                                         \
-        ReactingMultiphaseParcel<ParcelType##ThermoType>,                     \
-        0                                                                     \
-    );                                                                        \
-                                                                              \
-    defineParcelTypeNameAndDebug(KinematicCloud<ParcelType##ThermoType>, 0);  \
-    defineParcelTypeNameAndDebug(ThermoCloud<ParcelType##ThermoType>, 0);     \
-    defineParcelTypeNameAndDebug(ReactingCloud<ParcelType##ThermoType>, 0);   \
-    defineParcelTypeNameAndDebug                                              \
-    (                                                                         \
-        ReactingMultiphaseCloud<ParcelType##ThermoType>,                      \
-        0                                                                     \
-    );
-
+    defineParcelTypeNameAndDebug(ReactingMultiphaseParcel<ParcelType>, 0);    \
+    defineTemplateTypeNameAndDebug(ReactingMultiphaseParcel<ParcelType>, 0);  \
+    defineParcelTypeNameAndDebug(ReactingMultiphaseCloud<ParcelType>, 0);
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/lagrangian/intermediate/parcels/include/createReactingParcelTypes.H b/src/lagrangian/intermediate/parcels/include/createReactingParcelTypes.H
index a530b43f8b0..fb06844c9b9 100644
--- a/src/lagrangian/intermediate/parcels/include/createReactingParcelTypes.H
+++ b/src/lagrangian/intermediate/parcels/include/createReactingParcelTypes.H
@@ -26,39 +26,20 @@ License
 #ifndef createReactingParcelTypes_H
 #define createReactingParcelTypes_H
 
-#include "thermoPhysicsTypes.H"
+#include "ReactingParcel.H"
+#include "ReactingCloud.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#define createReactingParcelType(ParcelType)                                  \
-                                                                              \
-    createReactingParcelThermoType(ParcelType, constGasThermoPhysics);        \
-    createReactingParcelThermoType(ParcelType, gasThermoPhysics);             \
-    createReactingParcelThermoType(ParcelType, icoPoly8ThermoPhysics);
+#include "createThermoParcelTypes.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingParcelThermoType(ParcelType, ThermoType)                \
-                                                                              \
-    typedef ParcelType<ThermoType> ParcelType##ThermoType;                    \
-                                                                              \
-    defineTemplateTypeNameAndDebug(ParcelType##ThermoType, 0);                \
-    defineTemplateTypeNameAndDebug(Particle<ParcelType##ThermoType>, 0);      \
-    defineTemplateTypeNameAndDebug(Cloud<ParcelType##ThermoType>, 0);         \
+#define createReactingParcelTypes(ParcelType)                                 \
                                                                               \
-    defineParcelTypeNameAndDebug(KinematicParcel<ParcelType##ThermoType>, 0); \
-    defineTemplateTypeNameAndDebug                                            \
-    (                                                                         \
-        KinematicParcel<ParcelType##ThermoType>,                              \
-        0                                                                     \
-    );                                                                        \
-    defineParcelTypeNameAndDebug(ThermoParcel<ParcelType##ThermoType>, 0);    \
-    defineTemplateTypeNameAndDebug(ThermoParcel<ParcelType##ThermoType>, 0);  \
-    defineParcelTypeNameAndDebug(ReactingParcel<ParcelType##ThermoType>, 0);  \
-    defineTemplateTypeNameAndDebug(ReactingParcel<ParcelType##ThermoType>, 0);\
+    createThermoParcelTypes(ParcelType);                                      \
                                                                               \
-    defineParcelTypeNameAndDebug(KinematicCloud<ParcelType##ThermoType>, 0);  \
-    defineParcelTypeNameAndDebug(ThermoCloud<ParcelType##ThermoType>, 0);     \
-    defineParcelTypeNameAndDebug(ReactingCloud<ParcelType##ThermoType>, 0);
+    defineParcelTypeNameAndDebug(ReactingParcel<ParcelType>, 0);              \
+    defineTemplateTypeNameAndDebug(ReactingParcel<ParcelType>, 0);            \
+    defineParcelTypeNameAndDebug(ReactingCloud<ParcelType>, 0);
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/intermediate/parcels/include/createThermoParcelTypes.H b/src/lagrangian/intermediate/parcels/include/createThermoParcelTypes.H
new file mode 100644
index 00000000000..1cbab2a4bb0
--- /dev/null
+++ b/src/lagrangian/intermediate/parcels/include/createThermoParcelTypes.H
@@ -0,0 +1,51 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2008-2010 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef createThermoParcelTypes_H
+#define createThermoParcelTypes_H
+
+#include "ThermoParcel.H"
+#include "ThermoCloud.H"
+
+#include "createKinematicParcelTypes.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#define createThermoParcelTypes(ParcelType)                                   \
+                                                                              \
+    createKinematicParcelTypes(ParcelType);                                   \
+                                                                              \
+    defineParcelTypeNameAndDebug(ThermoParcel<ParcelType>, 0);                \
+    defineTemplateTypeNameAndDebug(ThermoParcel<ParcelType>, 0);              \
+    defineParcelTypeNameAndDebug(ThermoCloud<ParcelType>, 0);
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
+
+
diff --git a/src/lagrangian/intermediate/parcels/include/makeKinematicParcelSurfaceFilmModels.H b/src/lagrangian/intermediate/parcels/include/makeParcelSurfaceFilmModels.H
similarity index 94%
rename from src/lagrangian/intermediate/parcels/include/makeKinematicParcelSurfaceFilmModels.H
rename to src/lagrangian/intermediate/parcels/include/makeParcelSurfaceFilmModels.H
index 9f695653e6d..b150710a4f5 100644
--- a/src/lagrangian/intermediate/parcels/include/makeKinematicParcelSurfaceFilmModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelSurfaceFilmModels.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2009-2010 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2008-2010 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,11 +29,12 @@ License
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #include "KinematicCloud.H"
+
 #include "NoSurfaceFilm.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeKinematicParcelSurfaceFilmModels(ParcelType)                      \
+#define makeParcelSurfaceFilmModels(ParcelType)                               \
                                                                               \
     makeSurfaceFilmModel(KinematicCloud<ParcelType>);                         \
                                                                               \
@@ -44,8 +45,11 @@ License
         ParcelType                                                            \
     );
 
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #endif
 
 // ************************************************************************* //
+
+
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelCompositionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelCompositionModels.H
index e87b835f5de..814820d6820 100644
--- a/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelCompositionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelCompositionModels.H
@@ -28,42 +28,20 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#include "thermoPhysicsTypes.H"
-#include "ReactingCloud.H"
-
+#include "ReactingMultiphaseCloud.H"
 #include "SingleMixtureFraction.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeReactingMultiphaseCompositionModels(ParcelType)                   \
-                                                                              \
-    makeReactingMultiphaseCompositionModelThermoType                          \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-    makeReactingMultiphaseCompositionModelThermoType                          \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-    makeReactingMultiphaseCompositionModelThermoType                          \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingMultiphaseCompositionModelThermoType(ParcelType, ThermoType)\
+#define makeReactingMultiphaseParcelCompositionModels(ParcelType)             \
                                                                               \
-    makeCompositionModel(ReactingCloud<ParcelType<ThermoType> >);             \
+    makeCompositionModel(ReactingCloud<ParcelType>);                          \
                                                                               \
-    makeCompositionModelThermoType                                            \
+    makeCompositionModelType                                                  \
     (                                                                         \
         SingleMixtureFraction,                                                \
         ReactingCloud,                                                        \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );
 
 
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelDevolatilisationModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelDevolatilisationModels.H
index c1d14efcac7..f44f9228a2f 100644
--- a/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelDevolatilisationModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelDevolatilisationModels.H
@@ -28,7 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#include "thermoPhysicsTypes.H"
 #include "ReactingMultiphaseCloud.H"
 
 #include "ConstantRateDevolatilisation.H"
@@ -37,52 +36,27 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeReactingMultiphaseDevolatilisationModels(ParcelType)              \
+#define makeReactingMultiphaseParcelDevolatilisationModels(ParcelType)        \
                                                                               \
-    makeReactingMultiphaseDevolatilisationModelThermoType                     \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-    makeReactingMultiphaseDevolatilisationModelThermoType                     \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-    makeReactingMultiphaseDevolatilisationModelThermoType                     \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingMultiphaseDevolatilisationModelThermoType(ParcelType, ThermoType)\
-                                                                              \
-    makeDevolatilisationModel                                                 \
-    (                                                                         \
-        ReactingMultiphaseCloud<ParcelType<ThermoType> >                      \
-    );                                                                        \
+    makeDevolatilisationModel(ReactingMultiphaseCloud<ParcelType>);           \
                                                                               \
-    makeDevolatilisationModelThermoType                                       \
+    makeDevolatilisationModelType                                             \
     (                                                                         \
         ConstantRateDevolatilisation,                                         \
         ReactingMultiphaseCloud,                                              \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeDevolatilisationModelThermoType                                       \
+    makeDevolatilisationModelType                                             \
     (                                                                         \
         NoDevolatilisation,                                                   \
         ReactingMultiphaseCloud,                                              \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeDevolatilisationModelThermoType                                       \
+    makeDevolatilisationModelType                                             \
     (                                                                         \
         SingleKineticRateDevolatilisation,                                    \
         ReactingMultiphaseCloud,                                              \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );
 
 
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelInjectionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelInjectionModels.H
index ca064118dae..6bdc55f3bc4 100644
--- a/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelInjectionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelInjectionModels.H
@@ -41,79 +41,51 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeReactingMultiphaseInjectionModels(ParcelType)                     \
+#define makeReactingMultiphaseParcelInjectionModels(ParcelType)               \
                                                                               \
-    makeReactingMultiphaseInjectionModelThermoType                            \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-                                                                              \
-    makeReactingMultiphaseInjectionModelThermoType                            \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-                                                                              \
-    makeReactingMultiphaseInjectionModelThermoType                            \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingMultiphaseInjectionModelThermoType(ParcelType, ThermoType)\
-                                                                              \
-    makeInjectionModel(KinematicCloud<ParcelType<ThermoType> >);              \
+    makeInjectionModel(KinematicCloud<ParcelType>);                           \
                                                                               \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         ConeInjection,                                                        \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         ConeInjectionMP,                                                      \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         FieldActivatedInjection,                                              \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         ManualInjection,                                                      \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         NoInjection,                                                          \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         PatchInjection,                                                       \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         ReactingMultiphaseLookupTableInjection,                               \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );
 
 
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceFilmModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceFilmModels.H
deleted file mode 100644
index 92ed38da946..00000000000
--- a/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceFilmModels.H
+++ /dev/null
@@ -1,74 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2009-2010 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-        OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef makeReactingMultiphaseParcelSurfaceFilmModels_H
-#define makeReactingMultiphaseParcelSurfaceFilmModels_H
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "thermoPhysicsTypes.H"
-#include "ReactingMultiphaseCloud.H"
-
-#include "NoSurfaceFilm.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#define makeReactingMultiphaseSurfaceFilmModels(ParcelType)                   \
-                                                                              \
-    makeReactingMultiphaseSurfaceFilmModelThermoType                          \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-    makeReactingMultiphaseSurfaceFilmModelThermoType                          \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-    makeReactingMultiphaseSurfaceFilmModelThermoType                          \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingMultiphaseSurfaceFilmModelThermoType(ParcelType, ThermoType)\
-                                                                              \
-    makeSurfaceFilmModel(KinematicCloud<ParcelType<ThermoType> >);            \
-                                                                              \
-    makeSurfaceFilmModelThermoType                                            \
-    (                                                                         \
-        NoSurfaceFilm,                                                        \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceReactionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceReactionModels.H
index 4aa621ffb4c..b548fd23086 100644
--- a/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceReactionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceReactionModels.H
@@ -28,45 +28,20 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#include "thermoPhysicsTypes.H"
 #include "ReactingMultiphaseCloud.H"
-
 #include "NoSurfaceReaction.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeReactingMultiphaseSurfaceReactionModels(ParcelType)               \
+#define makeReactingMultiphaseParcelSurfaceReactionModels(ParcelType)         \
                                                                               \
-    makeReactingMultiphaseSurfaceReactionModelThermoType                      \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-    makeReactingMultiphaseSurfaceReactionModelThermoType                      \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-    makeReactingMultiphaseSurfaceReactionModelThermoType                      \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingMultiphaseSurfaceReactionModelThermoType(ParcelType, ThermoType)\
-                                                                              \
-    makeSurfaceReactionModel                                                  \
-    (                                                                         \
-        ReactingMultiphaseCloud<ParcelType<ThermoType> >                      \
-    );                                                                        \
+    makeSurfaceReactionModel(ReactingMultiphaseCloud<ParcelType>);            \
                                                                               \
-    makeSurfaceReactionModelThermoType                                        \
+    makeSurfaceReactionModelType                                              \
     (                                                                         \
         NoSurfaceReaction,                                                    \
         ReactingMultiphaseCloud,                                              \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );
 
 
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingParcelCollisionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelCollisionModels.H
deleted file mode 100644
index 289615125fd..00000000000
--- a/src/lagrangian/intermediate/parcels/include/makeReactingParcelCollisionModels.H
+++ /dev/null
@@ -1,117 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2008-2010 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef makeReactingParcelCollisionModels_H
-#define makeReactingParcelCollisionModels_H
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "thermoPhysicsTypes.H"
-#include "KinematicCloud.H"
-
-#include "NoCollision.H"
-#include "PairCollision.H"
-
-#include "PairSpringSliderDashpot.H"
-
-#include "WallSpringSliderDashpot.H"
-#include "WallLocalSpringSliderDashpot.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#define makeReactingCollisionModels(ParcelType)                               \
-                                                                              \
-    makeReactingCollisionModelThermoType                                      \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-                                                                              \
-    makeReactingCollisionModelThermoType                                      \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-                                                                              \
-    makeReactingCollisionModelThermoType                                      \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingCollisionModelThermoType(ParcelType, ThermoType)          \
-                                                                              \
-    makeCollisionModel(KinematicCloud<ParcelType<ThermoType> >);              \
-                                                                              \
-    makeCollisionModelThermoType                                              \
-    (                                                                         \
-        NoCollision,                                                          \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );                                                                        \
-                                                                              \
-    makeCollisionModelThermoType                                              \
-    (                                                                         \
-        PairCollision,                                                        \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );                                                                        \
-                                                                              \
-    makePairModel(KinematicCloud<ParcelType<ThermoType> >);                   \
-                                                                              \
-    makePairModelThermoType                                                   \
-    (                                                                         \
-        PairSpringSliderDashpot,                                              \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );                                                                        \
-                                                                              \
-    makeWallModel(KinematicCloud<ParcelType<ThermoType> >);                   \
-                                                                              \
-    makeWallModelThermoType                                                   \
-    (                                                                         \
-        WallSpringSliderDashpot,                                              \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );                                                                        \
-                                                                              \
-    makeWallModelThermoType                                                   \
-    (                                                                         \
-        WallLocalSpringSliderDashpot,                                         \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingParcelCompositionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelCompositionModels.H
index 8f8fdb70610..a9e35c7446f 100644
--- a/src/lagrangian/intermediate/parcels/include/makeReactingParcelCompositionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelCompositionModels.H
@@ -28,42 +28,20 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#include "thermoPhysicsTypes.H"
 #include "ReactingCloud.H"
-
 #include "SinglePhaseMixture.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeReactingCompositionModels(ParcelType)                             \
-                                                                              \
-    makeReactingCompositionModelThermoType                                    \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-    makeReactingCompositionModelThermoType                                    \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-    makeReactingCompositionModelThermoType                                    \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingCompositionModelThermoType(ParcelType, ThermoType)        \
+#define makeReactingParcelCompositionModels(ParcelType)                       \
                                                                               \
-    makeCompositionModel(ReactingCloud<ParcelType<ThermoType> >);             \
+    makeCompositionModel(ReactingCloud<ParcelType>);                          \
                                                                               \
-    makeCompositionModelThermoType                                            \
+    makeCompositionModelType                                                  \
     (                                                                         \
         SinglePhaseMixture,                                                   \
         ReactingCloud,                                                        \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );
 
 
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingParcelDispersionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelDispersionModels.H
deleted file mode 100644
index a010713aafd..00000000000
--- a/src/lagrangian/intermediate/parcels/include/makeReactingParcelDispersionModels.H
+++ /dev/null
@@ -1,98 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2008-2010 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef makeReactingParcelDispersionModels_H
-#define makeReactingParcelDispersionModels_H
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "thermoPhysicsTypes.H"
-#include "KinematicCloud.H"
-
-#include "NoDispersion.H"
-#include "GradientDispersionRAS.H"
-#include "StochasticDispersionRAS.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#define makeReactingDispersionModels(ParcelType)                              \
-                                                                              \
-    makeReactingDispersionModelThermoType                                     \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-                                                                              \
-    makeReactingDispersionModelThermoType                                     \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-                                                                              \
-    makeReactingDispersionModelThermoType                                     \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingDispersionModelThermoType(ParcelType, ThermoType)         \
-                                                                              \
-    makeDispersionModel(KinematicCloud<ParcelType<ThermoType> >);             \
-                                                                              \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        DispersionRASModel<KinematicCloud<ParcelType<ThermoType> > >,         \
-        0                                                                     \
-    );                                                                        \
-                                                                              \
-    makeDispersionModelThermoType                                             \
-    (                                                                         \
-        NoDispersion,                                                         \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );                                                                        \
-    makeDispersionModelThermoType                                             \
-    (                                                                         \
-        GradientDispersionRAS,                                                \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );                                                                        \
-    makeDispersionModelThermoType                                             \
-    (                                                                         \
-        StochasticDispersionRAS,                                              \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingParcelDragModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelDragModels.H
deleted file mode 100644
index 05ad04fa290..00000000000
--- a/src/lagrangian/intermediate/parcels/include/makeReactingParcelDragModels.H
+++ /dev/null
@@ -1,82 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2008-2010 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef makeReactingParcelDragModels_H
-#define makeReactingParcelDragModels_H
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "thermoPhysicsTypes.H"
-#include "KinematicCloud.H"
-
-#include "NoDrag.H"
-#include "SphereDrag.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#define makeReactingDragModels(ParcelType)                                    \
-                                                                              \
-    makeReactingDragModelThermoType                                           \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-    makeReactingDragModelThermoType                                           \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-    makeReactingDragModelThermoType                                           \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingDragModelThermoType(ParcelType, ThermoType)               \
-                                                                              \
-    makeDragModel(KinematicCloud<ParcelType<ThermoType> >);                   \
-                                                                              \
-    makeDragModelThermoType                                                   \
-    (                                                                         \
-        NoDrag,                                                               \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );                                                                        \
-    makeDragModelThermoType                                                   \
-    (                                                                         \
-        SphereDrag,                                                           \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingParcelHeatTransferModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelHeatTransferModels.H
deleted file mode 100644
index 864177001c9..00000000000
--- a/src/lagrangian/intermediate/parcels/include/makeReactingParcelHeatTransferModels.H
+++ /dev/null
@@ -1,82 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2008-2010 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef makeReactingParcelHeatTransferModels_H
-#define makeReactingParcelHeatTransferModels_H
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "thermoPhysicsTypes.H"
-#include "ThermoCloud.H"
-
-#include "NoHeatTransfer.H"
-#include "RanzMarshall.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#define makeReactingHeatTransferModels(ParcelType)                            \
-                                                                              \
-    makeReactingHeatTransferModelThermoType                                   \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-    makeReactingHeatTransferModelThermoType                                   \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-    makeReactingHeatTransferModelThermoType                                   \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingHeatTransferModelThermoType(ParcelType, ThermoType)       \
-                                                                              \
-    makeHeatTransferModel(ThermoCloud<ParcelType<ThermoType> >);              \
-                                                                              \
-    makeHeatTransferModelThermoType                                           \
-    (                                                                         \
-        NoHeatTransfer,                                                       \
-        ThermoCloud,                                                          \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );                                                                        \
-    makeHeatTransferModelThermoType                                           \
-    (                                                                         \
-        RanzMarshall,                                                         \
-        ThermoCloud,                                                          \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingParcelInjectionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelInjectionModels.H
index cae3ea5bbc7..c68403914c4 100644
--- a/src/lagrangian/intermediate/parcels/include/makeReactingParcelInjectionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelInjectionModels.H
@@ -28,7 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#include "thermoPhysicsTypes.H"
 #include "KinematicCloud.H"
 
 #include "ConeInjection.H"
@@ -41,79 +40,51 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeReactingInjectionModels(ParcelType)                               \
+#define makeReactingParcelInjectionModels(ParcelType)                         \
                                                                               \
-    makeReactingInjectionModelThermoType                                      \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-                                                                              \
-    makeReactingInjectionModelThermoType                                      \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-                                                                              \
-    makeReactingInjectionModelThermoType                                      \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingInjectionModelThermoType(ParcelType, ThermoType)          \
-                                                                              \
-    makeInjectionModel(KinematicCloud<ParcelType<ThermoType> >);              \
+    makeInjectionModel(KinematicCloud<ParcelType>);                           \
                                                                               \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         ConeInjection,                                                        \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         ConeInjectionMP,                                                      \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         FieldActivatedInjection,                                              \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         ManualInjection,                                                      \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         NoInjection,                                                          \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         PatchInjection,                                                       \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeInjectionModelThermoType                                              \
+    makeInjectionModelType                                                    \
     (                                                                         \
         ReactingLookupTableInjection,                                         \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );
 
 
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingParcelPatchInteractionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPatchInteractionModels.H
deleted file mode 100644
index b41f1ce7a4a..00000000000
--- a/src/lagrangian/intermediate/parcels/include/makeReactingParcelPatchInteractionModels.H
+++ /dev/null
@@ -1,92 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2008-2010 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef makeReactingParcelPatchInteractionModels_H
-#define makeReactingParcelPatchInteractionModels_H
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "thermoPhysicsTypes.H"
-#include "KinematicCloud.H"
-
-#include "LocalInteraction.H"
-#include "Rebound.H"
-#include "StandardWallInteraction.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#define makeReactingPatchInteractionModels(ParcelType)                        \
-                                                                              \
-    makeReactingPatchInteractionModelThermoType                               \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-                                                                              \
-    makeReactingPatchInteractionModelThermoType                               \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-                                                                              \
-    makeReactingPatchInteractionModelThermoType                               \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingPatchInteractionModelThermoType(ParcelType, ThermoType)   \
-                                                                              \
-    makePatchInteractionModel(KinematicCloud<ParcelType<ThermoType> >);       \
-                                                                              \
-    makePatchInteractionModelThermoType                                       \
-    (                                                                         \
-        LocalInteraction,                                                     \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );                                                                        \
-    makePatchInteractionModelThermoType                                       \
-    (                                                                         \
-        Rebound,                                                     \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );                                                                        \
-    makePatchInteractionModelThermoType                                       \
-    (                                                                         \
-        StandardWallInteraction,                                              \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H
index 05053837594..e08e703fdba 100644
--- a/src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H
@@ -28,7 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#include "thermoPhysicsTypes.H"
 #include "ReactingCloud.H"
 
 #include "NoPhaseChange.H"
@@ -36,44 +35,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeReactingPhaseChangeModels(ParcelType)                             \
+#define makeReactingParcelPhaseChangeModels(ParcelType)                       \
                                                                               \
-    makeReactingPhaseChangeModelThermoType                                    \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-                                                                              \
-    makeReactingPhaseChangeModelThermoType                                    \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-                                                                              \
-    makeReactingPhaseChangeModelThermoType                                    \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingPhaseChangeModelThermoType(ParcelType, ThermoType)        \
-                                                                              \
-    makePhaseChangeModel(ReactingCloud<ParcelType<ThermoType> >);             \
+    makePhaseChangeModel(ReactingCloud<ParcelType>);                          \
                                                                               \
-    makePhaseChangeModelThermoType                                            \
+    makePhaseChangeModelType                                                  \
     (                                                                         \
         NoPhaseChange,                                                        \
         ReactingCloud,                                                        \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makePhaseChangeModelThermoType                                            \
+    makePhaseChangeModelType                                                  \
     (                                                                         \
         LiquidEvaporation,                                                    \
         ReactingCloud,                                                        \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );
 
 
@@ -82,3 +58,4 @@ License
 #endif
 
 // ************************************************************************* //
+
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingParcelPostProcessingModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPostProcessingModels.H
deleted file mode 100644
index b6a900ddab5..00000000000
--- a/src/lagrangian/intermediate/parcels/include/makeReactingParcelPostProcessingModels.H
+++ /dev/null
@@ -1,84 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2008-2010 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef makeReactingParcelPostProcessingModels_H
-#define makeReactingParcelPostProcessingModels_H
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "thermoPhysicsTypes.H"
-#include "KinematicCloud.H"
-
-#include "NoPostProcessing.H"
-#include "PatchPostProcessing.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#define makeReactingPostProcessingModels(ParcelType)                          \
-                                                                              \
-    makeReactingPostProcessingModelThermoType                                 \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-                                                                              \
-    makeReactingPostProcessingModelThermoType                                 \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-                                                                              \
-    makeReactingPostProcessingModelThermoType                                 \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingPostProcessingModelThermoType(ParcelType, ThermoType)     \
-                                                                              \
-    makePostProcessingModel(KinematicCloud<ParcelType<ThermoType> >);         \
-                                                                              \
-    makePostProcessingModelThermoType                                         \
-    (                                                                         \
-        NoPostProcessing,                                                     \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );                                                                        \
-    makePostProcessingModelThermoType                                         \
-    (                                                                         \
-        PatchPostProcessing,                                                  \
-        KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
-    );
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeReactingParcelSurfaceFilmModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelSurfaceFilmModels.H
index b2b1bf2d892..a7ae4e064e9 100644
--- a/src/lagrangian/intermediate/parcels/include/makeReactingParcelSurfaceFilmModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelSurfaceFilmModels.H
@@ -28,7 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#include "thermoPhysicsTypes.H"
 #include "KinematicCloud.H"
 
 #include "NoSurfaceFilm.H"
@@ -36,44 +35,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeReactingSurfaceFilmModels(ParcelType)                             \
+#define makeReactingParcelSurfaceFilmModels(ParcelType)                       \
                                                                               \
-    makeReactingSurfaceFilmModelThermoType                                    \
-    (                                                                         \
-        ParcelType,                                                           \
-        constGasThermoPhysics                                                 \
-    );                                                                        \
-                                                                              \
-    makeReactingSurfaceFilmModelThermoType                                    \
-    (                                                                         \
-        ParcelType,                                                           \
-        gasThermoPhysics                                                      \
-    );                                                                        \
-                                                                              \
-    makeReactingSurfaceFilmModelThermoType                                    \
-    (                                                                         \
-        ParcelType,                                                           \
-        icoPoly8ThermoPhysics                                                 \
-    );
-
-
-#define makeReactingSurfaceFilmModelThermoType(ParcelType, ThermoType)        \
-                                                                              \
-    makeSurfaceFilmModel(KinematicCloud<ParcelType<ThermoType> >);            \
+    makeSurfaceFilmModel(KinematicCloud<ParcelType>);                         \
                                                                               \
-    makeSurfaceFilmModelThermoType                                            \
+    makeSurfaceFilmModelType                                                  \
     (                                                                         \
         NoSurfaceFilm,                                                        \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );                                                                        \
-    makeSurfaceFilmModelThermoType                                            \
+    makeSurfaceFilmModelType                                                  \
     (                                                                         \
         ThermoSurfaceFilm,                                                    \
         KinematicCloud,                                                       \
-        ParcelType,                                                           \
-        ThermoType                                                            \
+        ParcelType                                                            \
     );
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModel.H
index fc6f9a48869..4ff1cc00007 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModel.H
@@ -172,21 +172,6 @@ public:
             add##SS##CloudType##ParcelType##ConstructorToTable_;
 
 
-#define makeCollisionModelThermoType(SS, CloudType, ParcelType, ThermoType)   \
-                                                                              \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        SS<CloudType<ParcelType<ThermoType> > >,                              \
-        0                                                                     \
-    );                                                                        \
-                                                                              \
-    CollisionModel<CloudType<ParcelType<ThermoType> > >::                     \
-        adddictionaryConstructorToTable                                       \
-        <SS<CloudType<ParcelType<ThermoType> > > >                            \
-            add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
-
-
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #include "CollisionModelI.H"
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/DispersionModel/DispersionModel/DispersionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/DispersionModel/DispersionModel/DispersionModel.H
index 68ebe671c18..b1634db21e1 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/DispersionModel/DispersionModel/DispersionModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/DispersionModel/DispersionModel/DispersionModel.H
@@ -162,20 +162,6 @@ public:
             add##SS##CloudType##ParcelType##ConstructorToTable_;
 
 
-#define makeDispersionModelThermoType(SS, CloudType, ParcelType, ThermoType)  \
-                                                                              \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        SS<CloudType<ParcelType<ThermoType> > >,                              \
-        0                                                                     \
-    );                                                                        \
-                                                                              \
-    DispersionModel<CloudType<ParcelType<ThermoType> > >::                    \
-        adddictionaryConstructorToTable                                       \
-            <SS<CloudType<ParcelType<ThermoType> > > >                        \
-            add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
-
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/DragModel/DragModel/DragModel.H b/src/lagrangian/intermediate/submodels/Kinematic/DragModel/DragModel/DragModel.H
index 67d0e36f946..e60126e1d06 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/DragModel/DragModel/DragModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/DragModel/DragModel/DragModel.H
@@ -147,20 +147,6 @@ public:
             add##SS##CloudType##ParcelType##ConstructorToTable_;
 
 
-#define makeDragModelThermoType(SS, CloudType, ParcelType, ThermoType)        \
-                                                                              \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        SS<CloudType<ParcelType<ThermoType> > >,                              \
-        0                                                                     \
-    );                                                                        \
-                                                                              \
-    DragModel<CloudType<ParcelType<ThermoType> > >::                          \
-        adddictionaryConstructorToTable                                       \
-            <SS<CloudType<ParcelType<ThermoType> > > >                        \
-            add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
-
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H
index ad3d4b1daed..b40abbde90f 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H
@@ -357,21 +357,6 @@ public:
             add##SS##CloudType##ParcelType##ConstructorToTable_;
 
 
-#define makeInjectionModelThermoType(SS, CloudType, ParcelType, ThermoType)   \
-                                                                              \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        SS<CloudType<ParcelType<ThermoType> > >,                              \
-        0                                                                     \
-    );                                                                        \
-                                                                              \
-    InjectionModel<CloudType<ParcelType<ThermoType> > >::                     \
-        adddictionaryConstructorToTable                                       \
-        <SS<CloudType<ParcelType<ThermoType> > > >                            \
-            add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
-
-
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #include "InjectionModelI.H"
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H
index 95a4b04f993..1bd16847733 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H
@@ -187,20 +187,6 @@ public:
             add##SS##CloudType##ParcelType##ConstructorToTable_;
 
 
-#define makePatchInteractionModelThermoType(SS, CloudType, ParcelType, ThermoType)\
-                                                                              \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        SS<CloudType<ParcelType<ThermoType> > >,                              \
-        0                                                                     \
-    );                                                                        \
-                                                                              \
-    PatchInteractionModel<CloudType<ParcelType<ThermoType> > >::              \
-        adddictionaryConstructorToTable                                       \
-            <SS<CloudType<ParcelType<ThermoType> > > >                        \
-            add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
-
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PostProcessingModel/PostProcessingModel/PostProcessingModel.H b/src/lagrangian/intermediate/submodels/Kinematic/PostProcessingModel/PostProcessingModel/PostProcessingModel.H
index 8942dec8793..0d503bbdc53 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PostProcessingModel/PostProcessingModel/PostProcessingModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PostProcessingModel/PostProcessingModel/PostProcessingModel.H
@@ -177,20 +177,6 @@ public:
             add##SS##CloudType##ParcelType##ConstructorToTable_;
 
 
-#define makePostProcessingModelThermoType(SS, CloudType, ParcelType, ThermoType)\
-                                                                              \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        SS<CloudType<ParcelType<ThermoType> > >,                              \
-        0                                                                     \
-    );                                                                        \
-                                                                              \
-    PostProcessingModel<CloudType<ParcelType<ThermoType> > >::                \
-        adddictionaryConstructorToTable                                       \
-            <SS<CloudType<ParcelType<ThermoType> > > >                        \
-            add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
-
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #include "PostProcessingModelI.H"
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H
index 2ba518788ff..986bd943d85 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H
@@ -263,21 +263,6 @@ public:
             add##SS##CloudType##ParcelType##ConstructorToTable_;
 
 
-#define makeSurfaceFilmModelThermoType(SS, CloudType, ParcelType, ThermoType) \
-                                                                              \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        SS<CloudType<ParcelType<ThermoType> > >,                              \
-        0                                                                     \
-    );                                                                        \
-                                                                              \
-    SurfaceFilmModel<CloudType<ParcelType<ThermoType> > >::                   \
-        adddictionaryConstructorToTable                                       \
-        <SS<CloudType<ParcelType<ThermoType> > > >                            \
-            add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
-
-
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #include "SurfaceFilmModelI.H"
diff --git a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.C b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.C
index e1a3a54f4e1..7ce1c6d3c05 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.C
+++ b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.C
@@ -38,33 +38,13 @@ Foam::CompositionModel<CloudType>::CompositionModel
     dict_(dict),
     owner_(owner),
     coeffDict_(dict.subDict(type + "Coeffs")),
-    mcCarrierThermo_(owner.mcCarrierThermo()),
-    liquids_
-    (
-        liquidMixture::New
-        (
-            owner.mesh().objectRegistry::lookupObject<dictionary>
-            (
-                owner.carrierThermo().name()
-            )
-        )
-    ),
-    solids_
-    (
-        solidMixture::New
-        (
-            owner.mesh().objectRegistry::lookupObject<dictionary>
-            (
-                owner.carrierThermo().name()
-            )
-        )
-    ),
+    thermo_(owner.thermo()),
     phaseProps_
     (
         coeffDict_.lookup("phases"),
-        mcCarrierThermo_.species(),
-        liquids_().components(),
-        solids_().components()
+        thermo_.carrier().species(),
+        thermo_.liquids().components(),
+        thermo_.solids().components()
     )
 {}
 
@@ -100,24 +80,31 @@ const Foam::dictionary& Foam::CompositionModel<CloudType>::coeffDict() const
 
 
 template<class CloudType>
-const Foam::multiComponentMixture<typename CloudType::thermoType>&
-Foam::CompositionModel<CloudType>::mcCarrierThermo() const
+const Foam::SLGThermo& Foam::CompositionModel<CloudType>::thermo() const
 {
-    return mcCarrierThermo_;
+    return thermo_;
+}
+
+
+template<class CloudType>
+const Foam::basicMultiComponentMixture&
+Foam::CompositionModel<CloudType>::carrier() const
+{
+    return thermo_.carrier();
 }
 
 
 template<class CloudType>
 const Foam::liquidMixture& Foam::CompositionModel<CloudType>::liquids() const
 {
-    return liquids_();
+    return thermo_.liquids();
 }
 
 
 template<class CloudType>
 const Foam::solidMixture& Foam::CompositionModel<CloudType>::solids() const
 {
-    return solids_();
+    return thermo_.solids();
 }
 
 
@@ -137,8 +124,7 @@ Foam::label Foam::CompositionModel<CloudType>::nPhase() const
 
 
 template<class CloudType>
-const Foam::wordList&
-Foam::CompositionModel<CloudType>::phaseTypes() const
+const Foam::wordList& Foam::CompositionModel<CloudType>::phaseTypes() const
 {
     // if only 1 phase, return the constituent component names
     if (phaseProps_.size() == 1)
@@ -153,8 +139,7 @@ Foam::CompositionModel<CloudType>::phaseTypes() const
 
 
 template<class CloudType>
-const Foam::wordList&
-Foam::CompositionModel<CloudType>::stateLabels() const
+const Foam::wordList& Foam::CompositionModel<CloudType>::stateLabels() const
 {
     return phaseProps_.stateLabels();
 }
@@ -174,24 +159,22 @@ Foam::label Foam::CompositionModel<CloudType>::globalCarrierId
     const word& cmptName
 ) const
 {
-    forAll(mcCarrierThermo_.species(), i)
+    label id = thermo_.carrierId(cmptName);
+
+    if (id < 0)
     {
-        if (cmptName == mcCarrierThermo_.species()[i])
-        {
-            return i;
-        }
+        FatalErrorIn
+        (
+            "Foam::label Foam::CompositionModel<CloudType>::globalCarrierId"
+            "("
+                "const word&"
+            ") const"
+        )   << "Unable to determine global id for requested component "
+            << cmptName << ". Available components are " << nl
+            << thermo_.carrier().species() << abort(FatalError);
     }
 
-    FatalErrorIn
-    (
-        "Foam::label Foam::CompositionModel<CloudType>::globalCarrierId"
-        "("
-            "const word&"
-        ") const"
-    )   << "Unable to determine global id for requested component "
-        << cmptName << nl << abort(FatalError);
-
-    return -1;
+    return id;
 }
 
 
@@ -214,7 +197,7 @@ Foam::label Foam::CompositionModel<CloudType>::globalId
                 "const word&"
             ") const"
         )   << "Unable to determine global id for requested component "
-            << cmptName << nl << abort(FatalError);
+            << cmptName << abort(FatalError);
     }
 
     return id;
@@ -250,7 +233,7 @@ Foam::label Foam::CompositionModel<CloudType>::localId
                 "const word&"
             ") const"
         )   << "Unable to determine local id for component " << cmptName
-            << nl << abort(FatalError);
+            << abort(FatalError);
     }
 
     return id;
@@ -278,7 +261,7 @@ Foam::label Foam::CompositionModel<CloudType>::localToGlobalCarrierId
             ") const"
         )   << "Unable to determine global carrier id for phase "
             << phaseI << " with local id " << id
-            << nl << abort(FatalError);
+            << abort(FatalError);
     }
 
     return gid;
@@ -312,8 +295,8 @@ Foam::scalarField Foam::CompositionModel<CloudType>::X
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                WInv += Y[i]/mcCarrierThermo_.speciesData()[gid].W();
-                X[i] = Y[i]/mcCarrierThermo_.speciesData()[gid].W();
+                WInv += Y[i]/thermo_.carrier().W(gid);
+                X[i] = Y[i]/thermo_.carrier().W(gid);
             }
             break;
         }
@@ -322,8 +305,8 @@ Foam::scalarField Foam::CompositionModel<CloudType>::X
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                WInv += Y[i]/this->liquids().properties()[gid].W();
-                X[i] += Y[i]/this->liquids().properties()[gid].W();
+                WInv += Y[i]/thermo_.liquids().properties()[gid].W();
+                X[i] += Y[i]/thermo_.liquids().properties()[gid].W();
             }
             break;
         }
@@ -337,7 +320,7 @@ Foam::scalarField Foam::CompositionModel<CloudType>::X
                     "const scalarField&"
                 ") const"
             )   << "Only possible to convert gas and liquid mass fractions"
-                << nl << abort(FatalError);
+                << abort(FatalError);
         }
     }
 
@@ -363,7 +346,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::H
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                HMixture += Y[i]*mcCarrierThermo_.speciesData()[gid].H(T);
+                HMixture += Y[i]*thermo_.carrier().H(gid, T);
             }
             break;
         }
@@ -372,7 +355,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::H
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                HMixture += Y[i]*this->liquids().properties()[gid].h(p, T);
+                HMixture += Y[i]*thermo_.liquids().properties()[gid].h(p, T);
             }
             break;
         }
@@ -384,8 +367,8 @@ Foam::scalar Foam::CompositionModel<CloudType>::H
                 HMixture +=
                      Y[i]
                     *(
-                        this->solids().properties()[gid].Hf()
-                      + this->solids().properties()[gid].cp()*T
+                        thermo_.solids().properties()[gid].Hf()
+                      + thermo_.solids().properties()[gid].cp()*T
                      );
             }
             break;
@@ -401,7 +384,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::H
                 "    const scalar, "
                 "    const scalar"
                 ") const"
-            )   << "Unknown phase enumeration" << nl << abort(FatalError);
+            )   << "Unknown phase enumeration" << abort(FatalError);
         }
     }
 
@@ -427,7 +410,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::Hs
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                HsMixture += Y[i]*mcCarrierThermo_.speciesData()[gid].Hs(T);
+                HsMixture += Y[i]*thermo_.carrier().Hs(gid, T);
             }
             break;
         }
@@ -439,8 +422,8 @@ Foam::scalar Foam::CompositionModel<CloudType>::Hs
                 HsMixture +=
                     Y[i]
                    *(
-                       this->liquids().properties()[gid].h(p, T)
-                     - this->liquids().properties()[gid].h(p, 298.25)
+                       thermo_.liquids().properties()[gid].h(p, T)
+                     - thermo_.liquids().properties()[gid].h(p, 298.15)
                     );
             }
             break;
@@ -450,7 +433,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::Hs
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                HsMixture += Y[i]*this->solids().properties()[gid].cp()*T;
+                HsMixture += Y[i]*thermo_.solids().properties()[gid].cp()*T;
             }
             break;
         }
@@ -465,7 +448,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::Hs
                 "    const scalar, "
                 "    const scalar"
                 ") const"
-            )   << "Unknown phase enumeration" << nl << abort(FatalError);
+            )   << "Unknown phase enumeration" << abort(FatalError);
         }
     }
 
@@ -491,7 +474,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::Hc
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                HcMixture += Y[i]*mcCarrierThermo_.speciesData()[gid].Hc();
+                HcMixture += Y[i]*thermo_.carrier().Hc(gid);
             }
             break;
         }
@@ -501,7 +484,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::Hc
             {
                 label gid = props.globalIds()[i];
                 HcMixture +=
-                    Y[i]*this->liquids().properties()[gid].h(p, 298.15);
+                    Y[i]*thermo_.liquids().properties()[gid].h(p, 298.15);
             }
             break;
         }
@@ -510,7 +493,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::Hc
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                HcMixture += Y[i]*this->solids().properties()[gid].Hf();
+                HcMixture += Y[i]*thermo_.solids().properties()[gid].Hf();
             }
             break;
         }
@@ -525,7 +508,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::Hc
                 "    const scalar, "
                 "    const scalar"
                 ") const"
-            )   << "Unknown phase enumeration" << nl << abort(FatalError);
+            )   << "Unknown phase enumeration" << abort(FatalError);
         }
     }
 
@@ -551,7 +534,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::cp
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                cpMixture += Y[i]*mcCarrierThermo_.speciesData()[gid].Cp(T);
+                cpMixture += Y[i]*thermo_.carrier().Cp(gid, T);
             }
             break;
         }
@@ -560,7 +543,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::cp
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                cpMixture += Y[i]*this->liquids().properties()[gid].cp(p, T);
+                cpMixture += Y[i]*thermo_.liquids().properties()[gid].cp(p, T);
             }
             break;
         }
@@ -569,7 +552,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::cp
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                cpMixture += Y[i]*this->solids().properties()[gid].cp();
+                cpMixture += Y[i]*thermo_.solids().properties()[gid].cp();
             }
             break;
         }
@@ -584,7 +567,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::cp
                     "const scalar, "
                     "const scalar"
                 ") const"
-            )   << "Unknown phase enumeration" << nl << abort(FatalError);
+            )   << "Unknown phase enumeration" << abort(FatalError);
         }
     }
 
@@ -627,7 +610,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::L
             forAll(Y, i)
             {
                 label gid = props.globalIds()[i];
-                LMixture += Y[i]*this->liquids().properties()[gid].hl(p, T);
+                LMixture += Y[i]*thermo_.liquids().properties()[gid].hl(p, T);
             }
             break;
         }
@@ -659,7 +642,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::L
                     "const scalar, "
                     "const scalar"
                 ") const"
-            )   << "Unknown phase enumeration" << nl << abort(FatalError);
+            )   << "Unknown phase enumeration" << abort(FatalError);
         }
     }
 
diff --git a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.H b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.H
index 3c05f8e261b..bff960c2edf 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.H
+++ b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.H
@@ -43,10 +43,7 @@ SourceFiles
 #include "runTimeSelectionTables.H"
 
 #include "PtrList.H"
-#include "multiComponentMixture.H"
-
-#include "liquidMixture.H"
-#include "solidMixture.H"
+#include "SLGThermo.H"
 
 #include "phasePropertiesList.H"
 
@@ -73,14 +70,8 @@ class CompositionModel
         //- The coefficients dictionary
         const dictionary& coeffDict_;
 
-        //- Reference to the multi-component carrier phase thermo
-        multiComponentMixture<typename CloudType::thermoType>& mcCarrierThermo_;
-
-        //- Global (additional) liquid properties data
-        autoPtr<liquidMixture> liquids_;
-
-        //- Global (additional) solid properties data
-        autoPtr<solidMixture> solids_;
+        //- Reference to the thermo database
+        const SLGThermo& thermo_;
 
         //- List of phase properties
         phasePropertiesList phaseProps_;
@@ -141,13 +132,15 @@ public:
             //- Return the coefficients dictionary
             const dictionary& coeffDict() const;
 
-            //- Return the carrier phase thermo package
-            const multiComponentMixture<typename CloudType::thermoType>&
-                mcCarrierThermo() const;
+            //- Return the thermo database
+            const SLGThermo& thermo() const;
 
 
             // Composition lists
 
+                //- Return the carrier components (wrapper function)
+                const basicMultiComponentMixture& carrier() const;
+
                 //- Return the global (additional) liquids
                 const liquidMixture& liquids() const;
 
@@ -197,11 +190,7 @@ public:
 
                 //- Return the list of phase phaseI volume fractions fractions
                 //  based on supplied mass fractions Y
-                scalarField X
-                (
-                    const label phaseI,
-                    const scalarField& Y
-                ) const;
+                scalarField X(const label phaseI, const scalarField& Y) const;
 
 
             // Mixture properties
@@ -293,18 +282,13 @@ public:
     );
 
 
-#define makeCompositionModelThermoType(SS, CloudType, ParcelType, ThermoType) \
+#define makeCompositionModelType(SS, CloudType, ParcelType)                   \
                                                                               \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        SS<CloudType<ParcelType<ThermoType> > >,                              \
-        0                                                                     \
-    );                                                                        \
+    defineNamedTemplateTypeNameAndDebug(SS<CloudType<ParcelType> >, 0);       \
                                                                               \
-    CompositionModel<CloudType<ParcelType<ThermoType> > >::                   \
-        adddictionaryConstructorToTable                                       \
-            <SS<CloudType<ParcelType<ThermoType> > > >                        \
-            add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
+    CompositionModel<CloudType<ParcelType> >::                                \
+        adddictionaryConstructorToTable<SS<CloudType<ParcelType> > >          \
+            add##SS##CloudType##ParcelType##ConstructorToTable_;
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SingleMixtureFraction/SingleMixtureFraction.C b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SingleMixtureFraction/SingleMixtureFraction.C
index 16f577f7a74..76abdaf2ff9 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SingleMixtureFraction/SingleMixtureFraction.C
+++ b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SingleMixtureFraction/SingleMixtureFraction.C
@@ -64,19 +64,19 @@ void Foam::SingleMixtureFraction<CloudType>::constructIds()
     {
         FatalErrorIn("Foam::SingleMixtureFraction<CloudType>::constructIds()")
             << "No gas phase found in phase list:" << nl
-            << this->phaseTypes() << nl << endl;
+            << this->phaseTypes() << exit(FatalError);
     }
     if (idLiquid_ < 0)
     {
         FatalErrorIn("Foam::SingleMixtureFraction<CloudType>::constructIds()")
             << "No liquid phase found in phase list:" << nl
-            << this->phaseTypes() << nl << endl;
+            << this->phaseTypes() << exit(FatalError);
     }
     if (idSolid_ < 0)
     {
         FatalErrorIn("Foam::SingleMixtureFraction<CloudType>::constructIds()")
             << "No solid phase found in phase list:" << nl
-            << this->phaseTypes() << nl << endl;
+            << this->phaseTypes() << exit(FatalError);
     }
 }
 
@@ -111,7 +111,7 @@ Foam::SingleMixtureFraction<CloudType>::SingleMixtureFraction
                 "CloudType&"
             ")"
         )   << "Incorrect numebr of phases: " << nl
-            << "    Please specify 1 gas, 1 liquid and 1 solid" << nl
+            << "    Please specify 1 gas, 1 liquid and 1 solid"
             << exit(FatalError);
     }
 
@@ -130,7 +130,7 @@ Foam::SingleMixtureFraction<CloudType>::SingleMixtureFraction
                 "CloudType&"
             ")"
         )   << "Sum of phases should be 1. Phase fractions:" << nl
-            << YMixture0_ << nl << exit(FatalError);
+            << YMixture0_ << exit(FatalError);
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SinglePhaseMixture/SinglePhaseMixture.C b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SinglePhaseMixture/SinglePhaseMixture.C
index 4c0f3f332e7..f1fd80384d4 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SinglePhaseMixture/SinglePhaseMixture.C
+++ b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SinglePhaseMixture/SinglePhaseMixture.C
@@ -35,14 +35,14 @@ void Foam::SinglePhaseMixture<CloudType>::constructIds()
         FatalErrorIn
         (
             "void Foam::SinglePhaseMixture<CloudType>::constructIds()"
-        )   << "Phase list is empty" << nl << exit(FatalError);
+        )   << "Phase list is empty" << exit(FatalError);
     }
     else if (this->phaseProps().size() > 1)
     {
         FatalErrorIn
         (
             "void Foam::SinglePhaseMixture<CloudType>::constructIds()"
-        )   << "Only one phase permitted" << nl << exit(FatalError);
+        )   << "Only one phase permitted" << exit(FatalError);
     }
 
     switch (this->phaseProps()[0].phase())
@@ -67,7 +67,7 @@ void Foam::SinglePhaseMixture<CloudType>::constructIds()
             FatalErrorIn
             (
                 "void Foam::SinglePhaseMixture<CloudType>::constructIds()"
-            )   << "Unknown phase enumeration" << nl << abort(FatalError);
+            )   << "Unknown phase enumeration" << abort(FatalError);
         }
     }
 }
diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.C
index 45a8b67d557..fc7673f8a28 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.C
+++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.C
@@ -37,13 +37,13 @@ Foam::scalarField Foam::LiquidEvaporation<CloudType>::calcXc
     const label cellI
 ) const
 {
-    scalarField Xc(this->owner().mcCarrierThermo().Y().size());
+    scalarField Xc(this->owner().thermo().carrier().Y().size());
 
     forAll(Xc, i)
     {
         Xc[i] =
-            this->owner().mcCarrierThermo().Y()[i][cellI]
-           /this->owner().mcCarrierThermo().speciesData()[i].W();
+            this->owner().thermo().carrier().Y()[i][cellI]
+           /this->owner().thermo().carrier().W(i);
     }
 
     return Xc/sum(Xc);
@@ -71,16 +71,7 @@ Foam::LiquidEvaporation<CloudType>::LiquidEvaporation
 )
 :
     PhaseChangeModel<CloudType>(dict, owner, typeName),
-    liquids_
-    (
-        liquidMixture::New
-        (
-            owner.mesh().objectRegistry::lookupObject<dictionary>
-            (
-                owner.carrierThermo().name()
-            )
-        )
-    ),
+    liquids_(owner.thermo().liquids()),
     activeLiquids_(this->coeffDict().lookup("activeLiquids")),
     liqToCarrierMap_(activeLiquids_.size(), -1),
     liqToLiqMap_(activeLiquids_.size(), -1)
@@ -158,7 +149,7 @@ void Foam::LiquidEvaporation<CloudType>::calculate
         label lid = liqToLiqMap_[i];
 
         // vapour diffusivity [m2/s]
-        scalar Dab = liquids_->properties()[lid].D(pc, Ts);
+        scalar Dab = liquids_.properties()[lid].D(pc, Ts);
 
         // saturation pressure for species i [pa]
         // - carrier phase pressure assumed equal to the liquid vapour pressure
@@ -166,7 +157,7 @@ void Foam::LiquidEvaporation<CloudType>::calculate
         // NOTE: if pSat > pc then particle is superheated
         // calculated evaporation rate will be greater than that of a particle
         // at boiling point, but this is not a boiling model
-        scalar pSat = liquids_->properties()[lid].pv(pc, T);
+        scalar pSat = liquids_.properties()[lid].pv(pc, T);
 
         // Schmidt number
         scalar Sc = nu/(Dab + ROOTVSMALL);
@@ -187,7 +178,7 @@ void Foam::LiquidEvaporation<CloudType>::calculate
         scalar Ni = max(kc*(Cs - Cinf), 0.0);
 
         // mass transfer [kg]
-        dMassPC[lid] += Ni*A*liquids_->properties()[lid].W()*dt;
+        dMassPC[lid] += Ni*A*liquids_.properties()[lid].W()*dt;
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.H
index a7d7cdd3d1b..bef4d3e8889 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.H
+++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.H
@@ -54,7 +54,7 @@ protected:
     // Protected data
 
         //- Global liquid properties data
-        autoPtr<liquidMixture> liquids_;
+        const liquidMixture& liquids_;
 
         //- List of active liquid names
         List<word> activeLiquids_;
diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H
index 99e39651f7d..a216409d330 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H
+++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H
@@ -191,18 +191,13 @@ public:
     );
 
 
-#define makePhaseChangeModelThermoType(SS, CloudType, ParcelType, ThermoType) \
+#define makePhaseChangeModelType(SS, CloudType, ParcelType)                   \
                                                                               \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        SS<CloudType<ParcelType<ThermoType> > >,                              \
-        0                                                                     \
-    );                                                                        \
+    defineNamedTemplateTypeNameAndDebug(SS<CloudType<ParcelType> >, 0);       \
                                                                               \
-    PhaseChangeModel<CloudType<ParcelType<ThermoType> > >::                   \
-        adddictionaryConstructorToTable                                       \
-            <SS<CloudType<ParcelType<ThermoType> > > >                        \
-            add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
+    PhaseChangeModel<CloudType<ParcelType> >::                                \
+        adddictionaryConstructorToTable<SS<CloudType<ParcelType> > >          \
+            add##SS##CloudType##ParcelType##ConstructorToTable_;
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H
index e5572dd8846..21c6b79594f 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H
@@ -159,18 +159,13 @@ public:
     );
 
 
-#define makeDevolatilisationModelThermoType(SS, CloudType, ParcelType, ThermoType)\
+#define makeDevolatilisationModelType(SS, CloudType, ParcelType)              \
                                                                               \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        SS<CloudType<ParcelType<ThermoType> > >,                              \
-        0                                                                     \
-    );                                                                        \
+    defineNamedTemplateTypeNameAndDebug(SS<CloudType<ParcelType> >, 0);       \
                                                                               \
-    DevolatilisationModel<CloudType<ParcelType<ThermoType> > >::              \
-        adddictionaryConstructorToTable                                       \
-            <SS<CloudType<ParcelType<ThermoType> > > >                        \
-            add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
+    DevolatilisationModel<CloudType<ParcelType> >::                           \
+        adddictionaryConstructorToTable<SS<CloudType<ParcelType> > >          \
+            add##SS##CloudType##ParcelType##ConstructorToTable_;
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
index a2a0d3c1ebe..8ee2fb1874e 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
@@ -171,18 +171,13 @@ public:
     );
 
 
-#define makeSurfaceReactionModelThermoType(SS, CloudType, ParcelType, ThermoType)\
+#define makeSurfaceReactionModelType(SS, CloudType, ParcelType)               \
                                                                               \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        SS<CloudType<ParcelType<ThermoType> > >,                              \
-        0                                                                     \
-    );                                                                        \
+    defineNamedTemplateTypeNameAndDebug(SS<CloudType<ParcelType> >, 0);       \
                                                                               \
-    SurfaceReactionModel<CloudType<ParcelType<ThermoType> > >::               \
-        adddictionaryConstructorToTable                                       \
-            <SS<CloudType<ParcelType<ThermoType> > > >                        \
-            add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
+    SurfaceReactionModel<CloudType<ParcelType> >::                            \
+        adddictionaryConstructorToTable<SS<CloudType<ParcelType> > >          \
+            add##SS##CloudType##ParcelType##ConstructorToTable_;
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H
index a71af0d37ef..de10004531f 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H
@@ -179,20 +179,6 @@ public:
             add##SS##CloudType##ParcelType##ConstructorToTable_;
 
 
-#define makeHeatTransferModelThermoType(SS, CloudType, ParcelType, ThermoType)\
-                                                                              \
-    defineNamedTemplateTypeNameAndDebug                                       \
-    (                                                                         \
-        SS<CloudType<ParcelType<ThermoType> > >,                              \
-        0                                                                     \
-    );                                                                        \
-                                                                              \
-    HeatTransferModel<CloudType<ParcelType<ThermoType> > >::                  \
-        adddictionaryConstructorToTable                                       \
-            <SS<CloudType<ParcelType<ThermoType> > > >                        \
-            add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
-
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilmI.H b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilmI.H
deleted file mode 100644
index aeebf2c4180..00000000000
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilmI.H
+++ /dev/null
@@ -1,135 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2009-2010 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-\*---------------------------------------------------------------------------*/
-
-#include "ThermoSurfaceFilm.H"
-#include "DimensionedFields.H"
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-template<class CloudType>
-inline const Foam::word&
-Foam::ThermoSurfaceFilm<CloudType>::filmRegionName() const
-{
-    return filmRegionName_;
-}
-
-
-template<class CloudType>
-inline const Foam::wordList&
-Foam::ThermoSurfaceFilm<CloudType>::patchNames() const
-{
-    return patchNames_;
-}
-
-
-template<class CloudType>
-inline const Foam::polyMesh&
-Foam::ThermoSurfaceFilm<CloudType>::filmRegion() const
-{
-    return filmRegion_;
-}
-
-
-template<class CloudType>
-inline const Foam::volScalarField&
-Foam::ThermoSurfaceFilm<CloudType>::hf() const
-{
-    return hf_;
-}
-
-
-template<class CloudType>
-inline const Foam::volScalarField&
-Foam::ThermoSurfaceFilm<CloudType>::rho() const
-{
-    return rho_;
-}
-
-
-template<class CloudType>
-inline const Foam::volVectorField&
-Foam::ThermoSurfaceFilm<CloudType>::U() const
-{
-    return U_;
-}
-
-
-template<class CloudType>
-inline const Foam::volScalarField&
-Foam::ThermoSurfaceFilm<CloudType>::p() const
-{
-    return p_;
-}
-
-
-template<class CloudType>
-inline const Foam::volScalarField&
-Foam::ThermoSurfaceFilm<CloudType>::h() const
-{
-    return h_;
-}
-
-
-template<class CloudType>
-inline const Foam::volScalarField&
-Foam::ThermoSurfaceFilm<CloudType>::mu() const
-{
-    return mu_;
-}
-
-
-template<class CloudType>
-inline Foam::DimensionedField<Foam::scalar, Foam::volMesh>&
-Foam::ThermoSurfaceFilm<CloudType>::rhoSp()
-{
-    return rhoSp_;
-}
-
-
-template<class CloudType>
-inline Foam::DimensionedField<Foam::vector, Foam::volMesh>&
-Foam::ThermoSurfaceFilm<CloudType>::USp()
-{
-    return USp_;
-}
-
-
-template<class CloudType>
-inline Foam::DimensionedField<Foam::scalar, Foam::volMesh>&
-Foam::ThermoSurfaceFilm<CloudType>::hSp()
-{
-    return hSp_;
-}
-
-
-template<class CloudType>
-inline Foam::DimensionedField<Foam::scalar, Foam::volMesh>&
-Foam::ThermoSurfaceFilm<CloudType>::pSp()
-{
-    return pSp_;
-}
-
-
-// ************************************************************************* //
diff --git a/src/thermophysicalModels/SLGThermo/SLGThermo/SLGThermo.C b/src/thermophysicalModels/SLGThermo/SLGThermo/SLGThermo.C
index 468b870d869..53587d1eb4f 100644
--- a/src/thermophysicalModels/SLGThermo/SLGThermo/SLGThermo.C
+++ b/src/thermophysicalModels/SLGThermo/SLGThermo/SLGThermo.C
@@ -46,10 +46,10 @@ Foam::SLGThermo::SLGThermo(const fvMesh& mesh, basicThermo& thermo)
 {
     Info<< "Creating component thermo properties:" << endl;
 
-    if (isA<basicMultiComponentMixtureNew>(thermo))
+    if (isA<basicMultiComponentMixture>(thermo))
     {
-        basicMultiComponentMixtureNew& mcThermo =
-            dynamic_cast<basicMultiComponentMixtureNew&>(thermo);
+        basicMultiComponentMixture& mcThermo =
+            dynamic_cast<basicMultiComponentMixture&>(thermo);
         carrier_ = &mcThermo;
 
         Info<< "    multi-component carrier - " << mcThermo.species().size()
@@ -98,13 +98,13 @@ const Foam::basicThermo& Foam::SLGThermo::thermo() const
 }
 
 
-const Foam::basicMultiComponentMixtureNew& Foam::SLGThermo::carrier() const
+const Foam::basicMultiComponentMixture& Foam::SLGThermo::carrier() const
 {
     if (carrier_ == NULL)
     {
         FatalErrorIn
         (
-            "const Foam::basicMultiComponentMixtureNew& "
+            "const Foam::basicMultiComponentMixture& "
             "Foam::SLGThermo::carrier() const"
         )   << "carrier requested, but object is not allocated"
             << abort(FatalError);
diff --git a/src/thermophysicalModels/SLGThermo/SLGThermo/SLGThermo.H b/src/thermophysicalModels/SLGThermo/SLGThermo/SLGThermo.H
index 91989a01238..7a3b5201718 100644
--- a/src/thermophysicalModels/SLGThermo/SLGThermo/SLGThermo.H
+++ b/src/thermophysicalModels/SLGThermo/SLGThermo/SLGThermo.H
@@ -48,7 +48,7 @@ SourceFiles
 
 #include "MeshObject.H"
 #include "basicThermo.H"
-#include "basicMultiComponentMixtureNew.H"
+#include "basicMultiComponentMixture.H"
 #include "liquidMixture.H"
 #include "solidMixture.H"
 
@@ -71,7 +71,7 @@ class SLGThermo
         basicThermo& thermo_;
 
         //- Reference to the multi-component carrier phase thermo
-        basicMultiComponentMixtureNew* carrier_;
+        basicMultiComponentMixture* carrier_;
 
         //- Additional liquid properties data
         autoPtr<liquidMixture> liquids_;
@@ -103,7 +103,7 @@ public:
             const basicThermo& thermo() const;
 
             //- Return reference to the gaseous components
-            const basicMultiComponentMixtureNew& carrier() const;
+            const basicMultiComponentMixture& carrier() const;
 
             //- Return reference to the global (additional) liquids
             const liquidMixture& liquids() const;
-- 
GitLab