From ef8b6810f279dc687fcda6408815d227127ad7aa Mon Sep 17 00:00:00 2001
From: Henry <Henry>
Date: Tue, 25 Sep 2012 18:09:05 +0100
Subject: [PATCH] Thermodynamics: add specie type as argument to the
 "makeThermo" macros

Added "8" as the default Order of polynomial thermodynamic functions
---
 .../basic/fluidThermo/makeThermo.H            | 62 ++++----------
 .../mixtures/basicMixture/basicMixtures.C     | 82 ++++++++++---------
 .../mixtures/basicMixture/makeBasicMixture.H  | 38 ++-------
 .../psiThermo/hePsiThermo/hePsiThermos.C      | 24 ++++--
 .../basic/psiThermo/psiThermo/psiThermoNew.C  |  6 +-
 .../rhoThermo/heRhoThermo/heRhoThermos.C      | 80 +++++++++---------
 .../reactionThermo/makeReactionThermo.H       | 18 ++--
 .../hePsiReactionThermos.C                    | 30 ++++---
 .../heheuReactionThermos.C                    | 27 +++---
 .../heRhoReactionThermos.C                    | 38 ++++++---
 .../heSolidThermo/heSolidThermos.C            | 21 ++---
 .../solidThermo/solidThermo/makeSolidThermo.H | 30 ++++---
 .../icoPolynomial/icoPolynomial.H             |  2 +-
 .../thermo/hPolynomial/hPolynomialThermo.H    |  2 +-
 .../polynomial/polynomialTransport.H          |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../panelRegion/thermophysicalProperties      |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../cavity/constant/thermophysicalProperties  |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../prism/constant/thermophysicalProperties   |  2 +-
 .../hotRoom/constant/thermophysicalProperties |  4 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../system/changeDictionaryDict.baffleRegion  |  2 +-
 .../hotRoom/constant/thermophysicalProperties |  5 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../constant/thermophysicalProperties         |  2 +-
 .../bottomAir/thermophysicalProperties        |  2 +-
 .../constant/heater/thermophysicalProperties  |  2 +-
 .../leftSolid/thermophysicalProperties        |  2 +-
 .../rightSolid/thermophysicalProperties       |  2 +-
 .../constant/topAir/thermophysicalProperties  |  2 +-
 .../bottomWater/thermophysicalProperties      |  2 +-
 .../constant/heater/thermophysicalProperties  |  2 +-
 .../leftSolid/thermophysicalProperties        |  2 +-
 .../rightSolid/thermophysicalProperties       |  2 +-
 .../constant/topAir/thermophysicalProperties  |  2 +-
 .../bottomAir/thermophysicalProperties        |  2 +-
 .../constant/heater/thermophysicalProperties  |  2 +-
 .../leftSolid/thermophysicalProperties        |  2 +-
 .../rightSolid/thermophysicalProperties       |  2 +-
 .../constant/topAir/thermophysicalProperties  |  2 +-
 .../bottomAir/thermophysicalProperties        |  2 +-
 .../constant/heater/thermophysicalProperties  |  2 +-
 .../leftSolid/thermophysicalProperties        |  2 +-
 .../rightSolid/thermophysicalProperties       |  2 +-
 .../constant/topAir/thermophysicalProperties  |  2 +-
 .../bottomAir/thermophysicalProperties        |  2 +-
 .../constant/heater/thermophysicalProperties  |  2 +-
 .../leftSolid/thermophysicalProperties        |  2 +-
 .../rightSolid/thermophysicalProperties       |  2 +-
 .../constant/topAir/thermophysicalProperties  |  2 +-
 69 files changed, 289 insertions(+), 286 deletions(-)

diff --git a/src/thermophysicalModels/basic/fluidThermo/makeThermo.H b/src/thermophysicalModels/basic/fluidThermo/makeThermo.H
index fde9d2e1a18..0219106012d 100644
--- a/src/thermophysicalModels/basic/fluidThermo/makeThermo.H
+++ b/src/thermophysicalModels/basic/fluidThermo/makeThermo.H
@@ -25,18 +25,19 @@ InClass
     Foam::fluidThermo
 
 Description
-    Macros for creating 'basic' density-based thermo packages
+    Macros for creating basic fluid thermo packages
 
 \*---------------------------------------------------------------------------*/
 
 #ifndef makeThermo_H
 #define makeThermo_H
 
+#include "fluidThermo.H"
 #include "addToRunTimeSelectionTable.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeThermo(BaseThermo,Cthermo,Mixture,Transport,Type,Thermo,EqnOfState)\
+#define makeThermo(BaseThermo,Cthermo,Mixture,Transport,Type,Thermo,EqnOfState,Specie)\
                                                                               \
 typedef Cthermo                                                               \
 <                                                                             \
@@ -48,17 +49,20 @@ typedef Cthermo                                                               \
             <                                                                 \
                 Thermo                                                        \
                 <                                                             \
-                    EqnOfState<specie>                                        \
+                    EqnOfState                                                \
+                    <                                                         \
+                        Specie                                                \
+                    >                                                         \
                 >,                                                            \
                 Type                                                          \
             >                                                                 \
         >                                                                     \
     >                                                                         \
->   Cthermo##Mixture##Transport##Type##Thermo##EqnOfState;                    \
+>   Cthermo##Mixture##Transport##Type##Thermo##EqnOfState##Specie;            \
                                                                               \
 defineTemplateTypeNameAndDebugWithName                                        \
 (                                                                             \
-    Cthermo##Mixture##Transport##Type##Thermo##EqnOfState,                    \
+    Cthermo##Mixture##Transport##Type##Thermo##EqnOfState##Specie,            \
     #Cthermo                                                                  \
     "<"                                                                       \
         #Mixture                                                              \
@@ -68,6 +72,9 @@ defineTemplateTypeNameAndDebugWithName                                        \
                 #Thermo                                                       \
                 "<"                                                           \
                     #EqnOfState                                               \
+                    "<"                                                       \
+                        #Specie                                               \
+                    ">"                                                       \
                 ">,"                                                          \
                 #Type                                                         \
         ">>>",                                                                \
@@ -77,55 +84,14 @@ defineTemplateTypeNameAndDebugWithName                                        \
 addToRunTimeSelectionTable                                                    \
 (                                                                             \
     BaseThermo,                                                               \
-    Cthermo##Mixture##Transport##Type##Thermo##EqnOfState,                    \
+    Cthermo##Mixture##Transport##Type##Thermo##EqnOfState##Specie,            \
     fvMesh                                                                    \
 );                                                                            \
                                                                               \
 addToRunTimeSelectionTable                                                    \
 (                                                                             \
     fluidThermo,                                                              \
-    Cthermo##Mixture##Transport##Type##Thermo##EqnOfState,                    \
-    fvMesh                                                                    \
-);
-
-
-#define makePolyThermo(BaseThermo,Cthermo,Mixture,Order,Type)                 \
-                                                                              \
-typedef polynomialTransport                                                   \
-<                                                                             \
-    species::thermo                                                           \
-    <                                                                         \
-        hPolynomialThermo                                                     \
-        <                                                                     \
-            icoPolynomial<specie, Order>,                                     \
-            Order                                                             \
-        >,                                                                    \
-        Type                                                                  \
-    >,                                                                        \
-    Order                                                                     \
-> icoPoly##Order##Type##ThermoPhysics;                                        \
-                                                                              \
-typedef Cthermo<Mixture<icoPoly##Order##Type##ThermoPhysics> >                \
-    Cthermo##Mixture##icoPoly##Order##Type##ThermoPhysics;                    \
-                                                                              \
-defineTemplateTypeNameAndDebugWithName                                        \
-(                                                                             \
-    Cthermo##Mixture##icoPoly##Order##Type##ThermoPhysics,                    \
-    #Cthermo"<"#Mixture"<icoPoly"#Order#Type"ThermoPhysics>>",                \
-    0                                                                         \
-);                                                                            \
-                                                                              \
-addToRunTimeSelectionTable                                                    \
-(                                                                             \
-    BaseThermo,                                                               \
-    Cthermo##Mixture##icoPoly##Order##Type##ThermoPhysics,                    \
-    fvMesh                                                                    \
-);                                                                            \
-                                                                              \
-addToRunTimeSelectionTable                                                    \
-(                                                                             \
-    fluidThermo,                                                              \
-    Cthermo##Mixture##icoPoly##Order##Type##ThermoPhysics,                    \
+    Cthermo##Mixture##Transport##Type##Thermo##EqnOfState##Specie,            \
     fvMesh                                                                    \
 );
 
diff --git a/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixtures.C b/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixtures.C
index 2ce94472d04..ac7d3c65bdd 100644
--- a/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixtures.C
+++ b/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixtures.C
@@ -68,7 +68,8 @@ makeBasicMixture
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeBasicMixture
@@ -77,7 +78,8 @@ makeBasicMixture
     sutherlandTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeBasicMixture
@@ -86,7 +88,8 @@ makeBasicMixture
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeBasicMixture
@@ -95,31 +98,28 @@ makeBasicMixture
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    rhoConst
+    rhoConst,
+    specie
 );
 
-makeBasicPolyMixture
-(
-    pureMixture,
-    3,
-    sensibleEnthalpy
-);
-
-makeBasicPolyMixture
+makeBasicMixture
 (
     pureMixture,
-    8,
-    sensibleEnthalpy
+    polynomialTransport,
+    sensibleEnthalpy,
+    hPolynomialThermo,
+    icoPolynomial,
+    specie
 );
 
-
 makeBasicMixture
 (
     pureMixture,
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeBasicMixture
@@ -128,7 +128,8 @@ makeBasicMixture
     sutherlandTransport,
     sensibleEnthalpy,
     hConstThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeBasicMixture
@@ -137,7 +138,8 @@ makeBasicMixture
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 
@@ -149,7 +151,8 @@ makeBasicMixture
     constTransport,
     sensibleInternalEnergy,
     eConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeBasicMixture
@@ -158,7 +161,8 @@ makeBasicMixture
     sutherlandTransport,
     sensibleInternalEnergy,
     eConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeBasicMixture
@@ -167,7 +171,8 @@ makeBasicMixture
     constTransport,
     sensibleInternalEnergy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeBasicMixture
@@ -176,7 +181,8 @@ makeBasicMixture
     sutherlandTransport,
     sensibleInternalEnergy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeBasicMixture
@@ -185,7 +191,8 @@ makeBasicMixture
     sutherlandTransport,
     sensibleInternalEnergy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeBasicMixture
@@ -194,31 +201,28 @@ makeBasicMixture
     constTransport,
     sensibleInternalEnergy,
     hConstThermo,
-    rhoConst
+    rhoConst,
+    specie
 );
 
-makeBasicPolyMixture
-(
-    pureMixture,
-    3,
-    sensibleInternalEnergy
-);
-
-makeBasicPolyMixture
+makeBasicMixture
 (
     pureMixture,
-    8,
-    sensibleInternalEnergy
+    polynomialTransport,
+    sensibleInternalEnergy,
+    hPolynomialThermo,
+    icoPolynomial,
+    specie
 );
 
-
 makeBasicMixture
 (
     pureMixture,
     constTransport,
     sensibleInternalEnergy,
     hConstThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeBasicMixture
@@ -227,7 +231,8 @@ makeBasicMixture
     sutherlandTransport,
     sensibleInternalEnergy,
     hConstThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeBasicMixture
@@ -236,7 +241,8 @@ makeBasicMixture
     sutherlandTransport,
     sensibleInternalEnergy,
     janafThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 
diff --git a/src/thermophysicalModels/basic/mixtures/basicMixture/makeBasicMixture.H b/src/thermophysicalModels/basic/mixtures/basicMixture/makeBasicMixture.H
index 1997397646a..29e93165a24 100644
--- a/src/thermophysicalModels/basic/mixtures/basicMixture/makeBasicMixture.H
+++ b/src/thermophysicalModels/basic/mixtures/basicMixture/makeBasicMixture.H
@@ -25,6 +25,7 @@ InClass
     Foam::basicMixture
 
 Description
+    Macros for creating 'basic' mixtures for basic fluid thermo packages
 
 \*---------------------------------------------------------------------------*/
 
@@ -32,44 +33,19 @@ Description
 #define makeBasicMixture_H
 
 #include "basicMixture.H"
-#include "sensibleEnthalpy.H"
+#include "addToRunTimeSelectionTable.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeBasicMixture(Mixture,Transport,Type,Thermo,EqnOfState)            \
+#define makeBasicMixture(Mixture,Transport,Type,Thermo,EqnOfState,Specie)     \
                                                                               \
 typedef                                                                       \
-    Mixture<Transport<species::thermo<Thermo<EqnOfState<specie> >, Type> > >  \
-    Mixture##Transport##Type##Thermo##EqnOfState;                             \
+    Mixture<Transport<species::thermo<Thermo<EqnOfState<Specie> >, Type> > >  \
+    Mixture##Transport##Type##Thermo##EqnOfState##Specie;                     \
                                                                               \
 defineTemplateTypeNameAndDebugWithName                                        \
-    (Mixture##Transport##Type##Thermo##EqnOfState,                            \
-    #Mixture"<"#Transport"<"#Thermo"<"#EqnOfState">,"#Type">>", 0)
-
-
-#define makeBasicPolyMixture(Mixture,Order,Type)                              \
-                                                                              \
-typedef polynomialTransport                                                   \
-<                                                                             \
-    species::thermo                                                           \
-    <                                                                         \
-        hPolynomialThermo                                                     \
-        <                                                                     \
-            icoPolynomial<specie, Order>,                                     \
-            Order                                                             \
-        >,                                                                    \
-        Type                                                                  \
-    >,                                                                        \
-    Order                                                                     \
-> icoPoly##Order##Type##ThermoPhysics;                                        \
-                                                                              \
-typedef Mixture<icoPoly##Order##Type##ThermoPhysics>                          \
-    Mixture##icoPoly##Order##Type##ThermoPhysics;                             \
-                                                                              \
-defineTemplateTypeNameAndDebugWithName                                        \
-    (Mixture##icoPoly##Order##Type##ThermoPhysics,                            \
-    #Mixture"<icoPoly"#Order#Type"ThermoPhysics>", 0)
-
+    (Mixture##Transport##Type##Thermo##EqnOfState##Specie,                    \
+    #Mixture"<"#Transport"<"#Thermo"<"#EqnOfState"<"#Specie">>,"#Type">>", 0)
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/thermophysicalModels/basic/psiThermo/hePsiThermo/hePsiThermos.C b/src/thermophysicalModels/basic/psiThermo/hePsiThermo/hePsiThermos.C
index 5046cc85ec5..add4c88ceaa 100644
--- a/src/thermophysicalModels/basic/psiThermo/hePsiThermo/hePsiThermos.C
+++ b/src/thermophysicalModels/basic/psiThermo/hePsiThermo/hePsiThermos.C
@@ -56,7 +56,8 @@ makeThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeThermo
@@ -67,7 +68,8 @@ makeThermo
     sutherlandTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeThermo
@@ -78,7 +80,8 @@ makeThermo
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 
@@ -92,7 +95,8 @@ makeThermo
     constTransport,
     sensibleInternalEnergy,
     eConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeThermo
@@ -103,7 +107,8 @@ makeThermo
     sutherlandTransport,
     sensibleInternalEnergy,
     eConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeThermo
@@ -114,7 +119,8 @@ makeThermo
     constTransport,
     sensibleInternalEnergy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeThermo
@@ -125,7 +131,8 @@ makeThermo
     sutherlandTransport,
     sensibleInternalEnergy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeThermo
@@ -136,7 +143,8 @@ makeThermo
     sutherlandTransport,
     sensibleInternalEnergy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 
diff --git a/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermoNew.C b/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermoNew.C
index 879ff13360a..d0601fe15c0 100644
--- a/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermoNew.C
+++ b/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermoNew.C
@@ -55,15 +55,17 @@ Foam::autoPtr<Foam::psiThermo> Foam::psiThermo::New
         word mixture(thermoTypeDict.lookup("mixture"));
         word transport(thermoTypeDict.lookup("transport"));
         word thermo(thermoTypeDict.lookup("thermo"));
-        word equationOfState(thermoTypeDict.lookup("equationOfState"));
         word energy(thermoTypeDict.lookup("energy"));
+        word equationOfState(thermoTypeDict.lookup("equationOfState"));
+        word specie(thermoTypeDict.lookup("specie"));
 
         thermoTypeName =
             type + '<'
           + mixture + '<'
           + transport + '<'
           + thermo + '<'
-          + equationOfState + ">,"
+          + equationOfState + '<'
+          + specie + ">>,"
           + energy + ">>>";
     }
     else
diff --git a/src/thermophysicalModels/basic/rhoThermo/heRhoThermo/heRhoThermos.C b/src/thermophysicalModels/basic/rhoThermo/heRhoThermo/heRhoThermos.C
index d33dadce50b..fcfc3437dd3 100644
--- a/src/thermophysicalModels/basic/rhoThermo/heRhoThermo/heRhoThermos.C
+++ b/src/thermophysicalModels/basic/rhoThermo/heRhoThermo/heRhoThermos.C
@@ -26,10 +26,10 @@ License
 #include "rhoThermo.H"
 #include "makeThermo.H"
 
+#include "specie.H"
 #include "perfectGas.H"
 #include "incompressiblePerfectGas.H"
 #include "rhoConst.H"
-
 #include "hConstThermo.H"
 #include "janafThermo.H"
 #include "sensibleEnthalpy.H"
@@ -61,7 +61,8 @@ makeThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeThermo
@@ -72,7 +73,8 @@ makeThermo
     sutherlandTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeThermo
@@ -83,7 +85,8 @@ makeThermo
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeThermo
@@ -94,25 +97,20 @@ makeThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    rhoConst
+    rhoConst,
+    specie
 );
 
-makePolyThermo
-(
-    rhoThermo,
-    heRhoThermo,
-    pureMixture,
-    3,
-    sensibleEnthalpy
-);
-
-makePolyThermo
+makeThermo
 (
     rhoThermo,
     heRhoThermo,
     pureMixture,
-    8,
-    sensibleEnthalpy
+    polynomialTransport,
+    sensibleEnthalpy,
+    hPolynomialThermo,
+    icoPolynomial,
+    specie
 );
 
 makeThermo
@@ -123,7 +121,8 @@ makeThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeThermo
@@ -134,7 +133,8 @@ makeThermo
     sutherlandTransport,
     sensibleEnthalpy,
     hConstThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeThermo
@@ -145,7 +145,8 @@ makeThermo
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 
@@ -159,7 +160,8 @@ makeThermo
     constTransport,
     sensibleInternalEnergy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeThermo
@@ -170,7 +172,8 @@ makeThermo
     sutherlandTransport,
     sensibleInternalEnergy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeThermo
@@ -181,7 +184,8 @@ makeThermo
     sutherlandTransport,
     sensibleInternalEnergy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeThermo
@@ -192,25 +196,20 @@ makeThermo
     constTransport,
     sensibleInternalEnergy,
     hConstThermo,
-    rhoConst
+    rhoConst,
+    specie
 );
 
-makePolyThermo
-(
-    rhoThermo,
-    heRhoThermo,
-    pureMixture,
-    3,
-    sensibleInternalEnergy
-);
-
-makePolyThermo
+makeThermo
 (
     rhoThermo,
     heRhoThermo,
     pureMixture,
-    8,
-    sensibleInternalEnergy
+    polynomialTransport,
+    sensibleInternalEnergy,
+    hPolynomialThermo,
+    icoPolynomial,
+    specie
 );
 
 makeThermo
@@ -221,7 +220,8 @@ makeThermo
     constTransport,
     sensibleInternalEnergy,
     hConstThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeThermo
@@ -232,7 +232,8 @@ makeThermo
     sutherlandTransport,
     sensibleInternalEnergy,
     hConstThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeThermo
@@ -243,7 +244,8 @@ makeThermo
     sutherlandTransport,
     sensibleInternalEnergy,
     janafThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 
diff --git a/src/thermophysicalModels/reactionThermo/makeReactionThermo.H b/src/thermophysicalModels/reactionThermo/makeReactionThermo.H
index bbc8336dc6a..37221d10909 100644
--- a/src/thermophysicalModels/reactionThermo/makeReactionThermo.H
+++ b/src/thermophysicalModels/reactionThermo/makeReactionThermo.H
@@ -31,7 +31,7 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeReactionThermo(BaseThermo,CThermo,MixtureThermo,Mixture,Transport,Type,Thermo,EqnOfState) \
+#define makeReactionThermo(BaseThermo,CThermo,MixtureThermo,Mixture,Transport,Type,Thermo,EqnOfState,Specie) \
                                                                               \
 typedef MixtureThermo                                                         \
 <                                                                             \
@@ -45,18 +45,21 @@ typedef MixtureThermo                                                         \
                 <                                                             \
                     Thermo                                                    \
                     <                                                         \
-                        EqnOfState<specie>                                    \
+                        EqnOfState                                            \
+                        <                                                     \
+                            Specie                                            \
+                        >                                                     \
                     >,                                                        \
                     Type                                                      \
                 >                                                             \
             >                                                                 \
         >                                                                     \
     >                                                                         \
-> MixtureThermo##Mixture##Transport##Type##Thermo##EqnOfState;                \
+> MixtureThermo##Mixture##Transport##Type##Thermo##EqnOfState##Specie;        \
                                                                               \
 defineTemplateTypeNameAndDebugWithName                                        \
 (                                                                             \
-    MixtureThermo##Mixture##Transport##Type##Thermo##EqnOfState,              \
+    MixtureThermo##Mixture##Transport##Type##Thermo##EqnOfState##Specie,      \
     #MixtureThermo                                                            \
     "<"                                                                       \
         #Mixture                                                              \
@@ -66,6 +69,9 @@ defineTemplateTypeNameAndDebugWithName                                        \
                 #Thermo                                                       \
                 "<"                                                           \
                     #EqnOfState                                               \
+                    "<"                                                       \
+                        #Specie                                               \
+                    ">"                                                       \
                 ">,"                                                          \
                 #Type                                                         \
             ">>>",                                                            \
@@ -75,14 +81,14 @@ defineTemplateTypeNameAndDebugWithName                                        \
 addToRunTimeSelectionTable                                                    \
 (                                                                             \
     BaseThermo,                                                               \
-    MixtureThermo##Mixture##Transport##Type##Thermo##EqnOfState,              \
+    MixtureThermo##Mixture##Transport##Type##Thermo##EqnOfState##Specie,      \
     fvMesh                                                                    \
 );                                                                            \
                                                                               \
 addToRunTimeSelectionTable                                                    \
 (                                                                             \
     CThermo,                                                                  \
-    MixtureThermo##Mixture##Transport##Type##Thermo##EqnOfState,              \
+    MixtureThermo##Mixture##Transport##Type##Thermo##EqnOfState##Specie,      \
     fvMesh                                                                    \
 )
 
diff --git a/src/thermophysicalModels/reactionThermo/psiReactionThermo/hePsiReactionThermo/hePsiReactionThermos.C b/src/thermophysicalModels/reactionThermo/psiReactionThermo/hePsiReactionThermo/hePsiReactionThermos.C
index 96bc651bb0a..2b668ca634b 100644
--- a/src/thermophysicalModels/reactionThermo/psiReactionThermo/hePsiReactionThermo/hePsiReactionThermos.C
+++ b/src/thermophysicalModels/reactionThermo/psiReactionThermo/hePsiReactionThermo/hePsiReactionThermos.C
@@ -28,13 +28,12 @@ License
 #include "psiReactionThermo.H"
 #include "hePsiReactionThermo.H"
 
+#include "specie.H"
 #include "perfectGas.H"
-
 #include "hConstThermo.H"
 #include "janafThermo.H"
 #include "sensibleEnthalpy.H"
 #include "thermo.H"
-
 #include "constTransport.H"
 #include "sutherlandTransport.H"
 
@@ -65,7 +64,8 @@ makeReactionThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -77,7 +77,8 @@ makeReactionThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -89,7 +90,8 @@ makeReactionThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 
@@ -104,7 +106,8 @@ makeReactionThermo
     sutherlandTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -116,7 +119,8 @@ makeReactionThermo
     sutherlandTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -128,7 +132,8 @@ makeReactionThermo
     sutherlandTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 
@@ -143,7 +148,8 @@ makeReactionThermo
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -155,7 +161,8 @@ makeReactionThermo
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -167,7 +174,8 @@ makeReactionThermo
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 
diff --git a/src/thermophysicalModels/reactionThermo/psiReactionThermo/heheuReactionThermo/heheuReactionThermos.C b/src/thermophysicalModels/reactionThermo/psiReactionThermo/heheuReactionThermo/heheuReactionThermos.C
index f915f5a6d43..f5c65f483dd 100644
--- a/src/thermophysicalModels/reactionThermo/psiReactionThermo/heheuReactionThermo/heheuReactionThermos.C
+++ b/src/thermophysicalModels/reactionThermo/psiReactionThermo/heheuReactionThermo/heheuReactionThermos.C
@@ -29,13 +29,12 @@ License
 #include "makeReactionThermo.H"
 #include "addToRunTimeSelectionTable.H"
 
+#include "specie.H"
 #include "perfectGas.H"
-
 #include "hConstThermo.H"
 #include "janafThermo.H"
 #include "absoluteEnthalpy.H"
 #include "thermo.H"
-
 #include "constTransport.H"
 #include "sutherlandTransport.H"
 
@@ -62,7 +61,8 @@ makeReactionThermo
     constTransport,
     absoluteEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -74,7 +74,8 @@ makeReactionThermo
     constTransport,
     absoluteEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -86,7 +87,8 @@ makeReactionThermo
     constTransport,
     absoluteEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -98,7 +100,8 @@ makeReactionThermo
     sutherlandTransport,
     absoluteEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -110,7 +113,8 @@ makeReactionThermo
     sutherlandTransport,
     absoluteEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -122,7 +126,8 @@ makeReactionThermo
     sutherlandTransport,
     absoluteEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -134,7 +139,8 @@ makeReactionThermo
     constTransport,
     absoluteEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -146,7 +152,8 @@ makeReactionThermo
     sutherlandTransport,
     absoluteEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 
diff --git a/src/thermophysicalModels/reactionThermo/rhoReactionThermo/heRhoReactionThermo/heRhoReactionThermos.C b/src/thermophysicalModels/reactionThermo/rhoReactionThermo/heRhoReactionThermo/heRhoReactionThermos.C
index b31ed3e253a..4514f9586af 100644
--- a/src/thermophysicalModels/reactionThermo/rhoReactionThermo/heRhoReactionThermo/heRhoReactionThermos.C
+++ b/src/thermophysicalModels/reactionThermo/rhoReactionThermo/heRhoReactionThermo/heRhoReactionThermos.C
@@ -28,9 +28,9 @@ License
 #include "rhoReactionThermo.H"
 #include "heRhoReactionThermo.H"
 
+#include "specie.H"
 #include "perfectGas.H"
 #include "incompressiblePerfectGas.H"
-
 #include "hConstThermo.H"
 #include "janafThermo.H"
 #include "sensibleEnthalpy.H"
@@ -64,7 +64,8 @@ makeReactionThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -76,7 +77,8 @@ makeReactionThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -88,7 +90,8 @@ makeReactionThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -100,7 +103,8 @@ makeReactionThermo
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -112,7 +116,8 @@ makeReactionThermo
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -124,7 +129,8 @@ makeReactionThermo
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    perfectGas
+    perfectGas,
+    specie
 );
 
 
@@ -137,7 +143,8 @@ makeReactionThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -149,7 +156,8 @@ makeReactionThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -161,7 +169,8 @@ makeReactionThermo
     constTransport,
     sensibleEnthalpy,
     hConstThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -173,7 +182,8 @@ makeReactionThermo
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -185,7 +195,8 @@ makeReactionThermo
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 makeReactionThermo
@@ -197,7 +208,8 @@ makeReactionThermo
     sutherlandTransport,
     sensibleEnthalpy,
     janafThermo,
-    incompressiblePerfectGas
+    incompressiblePerfectGas,
+    specie
 );
 
 
diff --git a/src/thermophysicalModels/solidThermo/heSolidThermo/heSolidThermos.C b/src/thermophysicalModels/solidThermo/heSolidThermo/heSolidThermos.C
index 0b7e68e328b..860626e7c7f 100644
--- a/src/thermophysicalModels/solidThermo/heSolidThermo/heSolidThermos.C
+++ b/src/thermophysicalModels/solidThermo/heSolidThermo/heSolidThermos.C
@@ -26,21 +26,17 @@ License
 
 #include "makeSolidThermo.H"
 
+#include "specie.H"
 #include "rhoConst.H"
-
 #include "hConstThermo.H"
 #include "hExponentialThermo.H"
-
 #include "constIsoSolidTransport.H"
 #include "constAnIsoSolidTransport.H"
 #include "exponentialSolidTransport.H"
-
 #include "constSolidRad.H"
-
 #include "pureSolidMixture.H"
 #include "multiComponentSolidMixture.H"
 #include "reactingSolidMixture.H"
-
 #include "sensibleEnthalpy.H"
 #include "sensibleInternalEnergy.H"
 #include "thermo.H"
@@ -67,7 +63,8 @@ makeSolidThermo
     constSolidRad,
     sensibleEnthalpy,
     hConstThermo,
-    rhoConst
+    rhoConst,
+    specie
 );
 
 makeSolidThermo
@@ -79,7 +76,8 @@ makeSolidThermo
     constSolidRad,
     sensibleEnthalpy,
     hConstThermo,
-    rhoConst
+    rhoConst,
+    specie
 );
 
 makeSolidThermo
@@ -91,7 +89,8 @@ makeSolidThermo
     constSolidRad,
     sensibleEnthalpy,
     hExponentialThermo,
-    rhoConst
+    rhoConst,
+    specie
 );
 
 makeSolidThermo
@@ -103,7 +102,8 @@ makeSolidThermo
     constSolidRad,
     sensibleEnthalpy,
     hConstThermo,
-    rhoConst
+    rhoConst,
+    specie
 );
 
 makeSolidThermo
@@ -115,7 +115,8 @@ makeSolidThermo
     constSolidRad,
     sensibleEnthalpy,
     hConstThermo,
-    rhoConst
+    rhoConst,
+    specie
 );
 
 
diff --git a/src/thermophysicalModels/solidThermo/solidThermo/makeSolidThermo.H b/src/thermophysicalModels/solidThermo/solidThermo/makeSolidThermo.H
index 25aaf9d2eee..99b0635ba15 100644
--- a/src/thermophysicalModels/solidThermo/solidThermo/makeSolidThermo.H
+++ b/src/thermophysicalModels/solidThermo/solidThermo/makeSolidThermo.H
@@ -39,7 +39,7 @@ Description
 namespace Foam
 {
 
-#define makeSolidThermo(BaseThermo,Cthermo,Mixture,Transport,Radiation,Type,Thermo,EqnOfState)\
+#define makeSolidThermo(BaseThermo,Cthermo,Mixture,Transport,Radiation,Type,Thermo,EqnOfState,Specie)\
                                                                               \
 typedef Cthermo                                                               \
 <                                                                             \
@@ -53,7 +53,10 @@ typedef Cthermo                                                               \
                 <                                                             \
                     Thermo                                                    \
                     <                                                         \
-                        EqnOfState<specie>                                    \
+                        EqnOfState                                            \
+                        <                                                     \
+                            Specie                                            \
+                        >                                                     \
                     >,                                                        \
                     Type                                                      \
                 >                                                             \
@@ -61,11 +64,11 @@ typedef Cthermo                                                               \
         >                                                                     \
     >,                                                                        \
     BaseThermo                                                                \
->Cthermo##Mixture##Transport##Radiation##Type##Thermo##EqnOfState##BaseThermo;\
+>Cthermo##Mixture##Transport##Radiation##Type##Thermo##EqnOfState##Specie##BaseThermo;\
                                                                               \
 defineTemplateTypeNameAndDebugWithName                                        \
 (                                                                             \
-Cthermo##Mixture##Transport##Radiation##Type##Thermo##EqnOfState##BaseThermo, \
+Cthermo##Mixture##Transport##Radiation##Type##Thermo##EqnOfState##Specie##BaseThermo, \
     #Cthermo                                                                  \
     "<"                                                                       \
         #Mixture                                                              \
@@ -77,6 +80,9 @@ Cthermo##Mixture##Transport##Radiation##Type##Thermo##EqnOfState##BaseThermo, \
                     #Thermo                                                   \
                     "<"                                                       \
                         #EqnOfState                                           \
+                        "<"                                                   \
+                            #Specie                                           \
+                        ">"                                                   \
                     ">,"                                                      \
                     #Type                                                     \
         ">>>>",                                                               \
@@ -94,19 +100,21 @@ typedef Mixture                                                               \
             <                                                                 \
                 Thermo                                                        \
                 <                                                             \
-                    EqnOfState<specie>                                        \
+                    EqnOfState                                                \
+                    <                                                         \
+                        Specie                                                \
+                    >                                                         \
                 >,                                                            \
                 Type                                                          \
             >                                                                 \
         >                                                                     \
     >                                                                         \
->   Mixture##Transport##Radiation##Type##Thermo##EqnOfState;                  \
-                                                                              \
+>   Mixture##Transport##Radiation##Type##Thermo##EqnOfState##Specie;          \
                                                                               \
                                                                               \
 defineTemplateTypeNameAndDebugWithName                                        \
 (                                                                             \
-    Mixture##Transport##Radiation##Type##Thermo##EqnOfState,                  \
+    Mixture##Transport##Radiation##Type##Thermo##EqnOfState##Specie,          \
     #Mixture                                                                  \
     "<"                                                                       \
         #Transport                                                            \
@@ -125,20 +133,20 @@ defineTemplateTypeNameAndDebugWithName                                        \
 addToRunTimeSelectionTable                                                    \
 (                                                                             \
     BaseThermo,                                                               \
-Cthermo##Mixture##Transport##Radiation##Type##Thermo##EqnOfState##BaseThermo, \
+Cthermo##Mixture##Transport##Radiation##Type##Thermo##EqnOfState##Specie##BaseThermo, \
     mesh                                                                      \
 );                                                                            \
 addToRunTimeSelectionTable                                                    \
 (                                                                             \
     basicThermo,                                                              \
-Cthermo##Mixture##Transport##Radiation##Type##Thermo##EqnOfState##BaseThermo, \
+Cthermo##Mixture##Transport##Radiation##Type##Thermo##EqnOfState##Specie##BaseThermo, \
     fvMesh                                                                    \
 );                                                                            \
                                                                               \
 addToRunTimeSelectionTable                                                    \
 (                                                                             \
     BaseThermo,                                                               \
-Cthermo##Mixture##Transport##Radiation##Type##Thermo##EqnOfState##BaseThermo, \
+Cthermo##Mixture##Transport##Radiation##Type##Thermo##EqnOfState##Specie##BaseThermo, \
     dictionary                                                                \
 );
 
diff --git a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H
index ba92455f827..30feeb88b8d 100644
--- a/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H
+++ b/src/thermophysicalModels/specie/equationOfState/icoPolynomial/icoPolynomial.H
@@ -90,7 +90,7 @@ Ostream& operator<<
                         Class icoPolynomial Declaration
 \*---------------------------------------------------------------------------*/
 
-template<class Specie, int PolySize>
+template<class Specie, int PolySize=8>
 class icoPolynomial
 :
     public Specie
diff --git a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H
index 68b2ecd2d0d..1465c94f2a7 100644
--- a/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H
+++ b/src/thermophysicalModels/specie/thermo/hPolynomial/hPolynomialThermo.H
@@ -92,7 +92,7 @@ Ostream& operator<<
                       Class hPolynomialThermo Declaration
 \*---------------------------------------------------------------------------*/
 
-template<class EquationOfState, int PolySize>
+template<class EquationOfState, int PolySize=8>
 class hPolynomialThermo
 :
     public EquationOfState
diff --git a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H
index d5a767fe447..eeb223aa295 100644
--- a/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H
+++ b/src/thermophysicalModels/specie/transport/polynomial/polynomialTransport.H
@@ -87,7 +87,7 @@ Ostream& operator<<
                      Class polynomialTransport Declaration
 \*---------------------------------------------------------------------------*/
 
-template<class Thermo, int PolySize>
+template<class Thermo, int PolySize=8>
 class polynomialTransport
 :
     public Thermo
diff --git a/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/thermophysicalProperties b/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/thermophysicalProperties
index d7a6a98dfec..519e0e6d78b 100644
--- a/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/thermophysicalProperties
+++ b/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType  heheuReactionThermo<inhomogeneousMixture<sutherlandTransport<janafThermo<perfectGas>,absoluteEnthalpy>>>;
+thermoType  heheuReactionThermo<inhomogeneousMixture<sutherlandTransport<janafThermo<perfectGas<specie>>,absoluteEnthalpy>>>;
 
 stoichiometricAirFuelMassRatio  stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 15.5776;
 
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/thermophysicalProperties b/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/thermophysicalProperties
index b622e094b3f..7b90190601a 100644
--- a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/thermophysicalProperties
+++ b/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heheuReactionThermo<homogeneousMixture<sutherlandTransport<janafThermo<perfectGas>,absoluteEnthalpy>>>;
+thermoType heheuReactionThermo<homogeneousMixture<sutherlandTransport<janafThermo<perfectGas<specie>>,absoluteEnthalpy>>>;
 
 stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [ 0 0 0 0 0 0 0 ] 15.675;
 
diff --git a/tutorials/combustion/engineFoam/kivaTest/constant/thermophysicalProperties b/tutorials/combustion/engineFoam/kivaTest/constant/thermophysicalProperties
index 361194ecf77..f0ce1adb1ad 100644
--- a/tutorials/combustion/engineFoam/kivaTest/constant/thermophysicalProperties
+++ b/tutorials/combustion/engineFoam/kivaTest/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heheuReactionThermo<inhomogeneousMixture<sutherlandTransport<janafThermo<perfectGas>,absoluteEnthalpy>>>;
+thermoType      heheuReactionThermo<inhomogeneousMixture<sutherlandTransport<janafThermo<perfectGas<specie>>,absoluteEnthalpy>>>;
 
 stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [ 0 0 0 0 0 0 0 ] 15.0336;
 
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/thermophysicalProperties b/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/thermophysicalProperties
index abe95b22c9a..9c79a06e636 100644
--- a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/thermophysicalProperties
+++ b/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<reactingSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<reactingSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 solidComponents
 (
diff --git a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/thermophysicalProperties
index 97dd3d9c55a..562bc6c8ec9 100644
--- a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/thermophysicalProperties
index 133d8db277c..c6179ae4c5d 100644
--- a/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<sutherlandTransport<janafThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType      hePsiThermo<pureMixture<sutherlandTransport<janafThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/rhoCentralFoam/forwardStep/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/forwardStep/constant/thermophysicalProperties
index ab2183b98c7..807bed8913c 100644
--- a/tutorials/compressible/rhoCentralFoam/forwardStep/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/forwardStep/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 // Note: these are the properties for a "normalised" inviscid gas
 //       for which the speed of sound is 1 m/s at a temperature of 1K
diff --git a/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/thermophysicalProperties
index 491dee43497..8bd843241a7 100644
--- a/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/rhoCentralFoam/shockTube/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/shockTube/constant/thermophysicalProperties
index 20c4bf562a4..1edc08f91bd 100644
--- a/tutorials/compressible/rhoCentralFoam/shockTube/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/shockTube/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/thermophysicalProperties
index 491dee43497..8bd843241a7 100644
--- a/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties
index fbeb00f80a9..84fbe3d678a 100644
--- a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/thermophysicalProperties
index ac8b4bff371..1af5e2549d9 100644
--- a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/ras/cavity/constant/thermophysicalProperties
index 30f563b195f..93435714371 100644
--- a/tutorials/compressible/rhoPimpleFoam/ras/cavity/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/ras/cavity/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPimplecFoam/angledDuct/constant/thermophysicalProperties b/tutorials/compressible/rhoPimplecFoam/angledDuct/constant/thermophysicalProperties
index ac8b4bff371..1af5e2549d9 100644
--- a/tutorials/compressible/rhoPimplecFoam/angledDuct/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimplecFoam/angledDuct/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/thermophysicalProperties b/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/thermophysicalProperties
index ac8b4bff371..1af5e2549d9 100644
--- a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/thermophysicalProperties b/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/thermophysicalProperties
index 58880fac6e1..a59b1bb17a4 100644
--- a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties
index 3b8fb8c661c..143dcad7b53 100644
--- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heRhoThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType heRhoThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/constant/thermophysicalProperties b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/thermophysicalProperties
index 48d08d02636..1c7da0f1713 100644
--- a/tutorials/compressible/rhoSimplecFoam/squareBend/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties
index ab2183b98c7..807bed8913c 100644
--- a/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 // Note: these are the properties for a "normalised" inviscid gas
 //       for which the speed of sound is 1 m/s at a temperature of 1K
diff --git a/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties
index 4aeb09471ae..f501963c687 100644
--- a/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties
index 7a1082d2164..d078c46ccb7 100644
--- a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 mixture
 {
diff --git a/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties
index 7a1082d2164..d078c46ccb7 100644
--- a/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/buoyantPimpleFoam/hotRoom/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantPimpleFoam/hotRoom/constant/thermophysicalProperties
index dcbf833e28f..1870035bf9f 100644
--- a/tutorials/heatTransfer/buoyantPimpleFoam/hotRoom/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantPimpleFoam/hotRoom/constant/thermophysicalProperties
@@ -15,8 +15,8 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
-//thermoType heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleInternalEnergy>>>;
+thermoType heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+//thermoType heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
 
 pRef            100000;
 
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/constant/thermophysicalProperties
index 8e834a9acd3..6a782154be1 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties
index 8e834a9acd3..6a782154be1 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/system/changeDictionaryDict.baffleRegion b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/system/changeDictionaryDict.baffleRegion
index eb9d296c129..0bc5e4dbf49 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/system/changeDictionaryDict.baffleRegion
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/system/changeDictionaryDict.baffleRegion
@@ -110,7 +110,7 @@ dictionaryReplacement
 
 
                 // Solid thermo
-                thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+                thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 
                 mixture
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/constant/thermophysicalProperties
index 345a7b75732..55b5c40c207 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-// thermoType hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+// thermoType hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 thermoType
 {
@@ -23,8 +23,9 @@ thermoType
     mixture             pureMixture;
     transport           constTransport;
     thermo              hConstThermo;
-    equationOfState     perfectGas;
     energy              sensibleEnthalpy;
+    equationOfState     perfectGas;
+    specie              specie;
 }
 
 pRef            100000;
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/thermophysicalProperties
index b61f3fe303d..d4a80ceaa32 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 pRef            100000;
 
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties
index b61f3fe303d..d4a80ceaa32 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 pRef            100000;
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
index 0eaa169eb16..030a3a3ddd3 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/heater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/heater/thermophysicalProperties
index 700acaa9203..13a2e81f032 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/heater/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/heater/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/leftSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/leftSolid/thermophysicalProperties
index 700acaa9203..13a2e81f032 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/leftSolid/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/leftSolid/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/rightSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/rightSolid/thermophysicalProperties
index 700acaa9203..13a2e81f032 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/rightSolid/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/rightSolid/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
index 27d3b23a535..62209d10711 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/bottomWater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/bottomWater/thermophysicalProperties
index cb1219452b6..20cc9f22753 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/bottomWater/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/bottomWater/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heRhoThermo<pureMixture<constTransport<hConstThermo<rhoConst>,sensibleEnthalpy>>>;
+thermoType heRhoThermo<pureMixture<constTransport<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/heater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/heater/thermophysicalProperties
index aea71ab4351..a4c501e0633 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/heater/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/heater/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/leftSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/leftSolid/thermophysicalProperties
index aea71ab4351..a4c501e0633 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/leftSolid/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/leftSolid/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/rightSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/rightSolid/thermophysicalProperties
index aea71ab4351..a4c501e0633 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/rightSolid/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/rightSolid/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/topAir/thermophysicalProperties
index 27d3b23a535..62209d10711 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/topAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/topAir/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties
index 0eaa169eb16..030a3a3ddd3 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/heater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/heater/thermophysicalProperties
index aea71ab4351..a4c501e0633 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/heater/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/heater/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/leftSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/leftSolid/thermophysicalProperties
index aea71ab4351..a4c501e0633 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/leftSolid/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/leftSolid/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/rightSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/rightSolid/thermophysicalProperties
index aea71ab4351..a4c501e0633 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/rightSolid/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/rightSolid/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties
index 27d3b23a535..62209d10711 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
index 0eaa169eb16..030a3a3ddd3 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/heater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/heater/thermophysicalProperties
index aea71ab4351..a4c501e0633 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/heater/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/heater/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/leftSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/leftSolid/thermophysicalProperties
index aea71ab4351..a4c501e0633 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/leftSolid/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/leftSolid/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/rightSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/rightSolid/thermophysicalProperties
index aea71ab4351..a4c501e0633 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/rightSolid/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/rightSolid/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
index 27d3b23a535..62209d10711 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/bottomAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/bottomAir/thermophysicalProperties
index 0eaa169eb16..030a3a3ddd3 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/bottomAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/bottomAir/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/heater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/heater/thermophysicalProperties
index fa34c319f57..9ac37aef591 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/heater/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/heater/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/leftSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/leftSolid/thermophysicalProperties
index fa34c319f57..9ac37aef591 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/leftSolid/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/leftSolid/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/rightSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/rightSolid/thermophysicalProperties
index fa34c319f57..9ac37aef591 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/rightSolid/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/rightSolid/thermophysicalProperties
@@ -14,7 +14,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst>,sensibleEnthalpy>>>>;
+thermoType heSolidThermo<pureSolidMixture<constIsoSolidTransport<constSolidRad<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>>;
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/topAir/thermophysicalProperties
index 27d3b23a535..62209d10711 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/topAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/topAir/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas>,sensibleEnthalpy>>>;
+thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
 
 mixture
 {
-- 
GitLab