diff --git a/src/thermophysicalModels/basic/basicThermo/basicThermo.C b/src/thermophysicalModels/basic/basicThermo/basicThermo.C
index d20f1cbe4dcc1025afa06d6adf56bb8b8e0f004c..d938fb77a25e973ebe87a3aeb071195546217b05 100644
--- a/src/thermophysicalModels/basic/basicThermo/basicThermo.C
+++ b/src/thermophysicalModels/basic/basicThermo/basicThermo.C
@@ -156,12 +156,14 @@ Foam::basicThermo::basicThermo
 {}
 
 
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
 Foam::autoPtr<Foam::basicThermo> Foam::basicThermo::New
 (
     const fvMesh& mesh
 )
 {
-    return NewThermo<basicThermo>(mesh);
+    return New<basicThermo>(mesh);
 }
 
 
diff --git a/src/thermophysicalModels/basic/basicThermo/basicThermo.H b/src/thermophysicalModels/basic/basicThermo/basicThermo.H
index 85ffe044675b875c47539dca85153d4b8e6d8a60..3bd01792bafd35979bb231f721aa23f77adf2e37 100644
--- a/src/thermophysicalModels/basic/basicThermo/basicThermo.H
+++ b/src/thermophysicalModels/basic/basicThermo/basicThermo.H
@@ -29,7 +29,6 @@ Description
 
 SourceFiles
     basicThermo.C
-    basicThermoNew.C
 
 \*---------------------------------------------------------------------------*/
 
@@ -104,8 +103,14 @@ public:
         basicThermo(const fvMesh&, const dictionary&);
 
 
-    //- Selector
-    static autoPtr<basicThermo> New(const fvMesh&);
+    // Selectors
+
+        //- Generic New for each of the related thermodynamics packages
+        template<class Thermo>
+        static autoPtr<Thermo> New(const fvMesh&);
+
+        //- Specialisation of the Generic New for basicThermo
+        static autoPtr<basicThermo> New(const fvMesh&);
 
 
     //- Destructor
@@ -344,129 +349,15 @@ public:
 };
 
 
-template<class Thermo>
-autoPtr<Thermo> NewThermo
-(
-    const fvMesh& mesh
-)
-{
-    IOdictionary thermoDict
-    (
-        IOobject
-        (
-            "thermophysicalProperties",
-            mesh.time().constant(),
-            mesh,
-            IOobject::MUST_READ_IF_MODIFIED,
-            IOobject::NO_WRITE,
-            false
-        )
-    );
-
-    word thermoTypeName;
-
-    if (thermoDict.isDict("thermoType"))
-    {
-        const dictionary& thermoTypeDict(thermoDict.subDict("thermoType"));
-
-        Info<< "Selecting thermodynamics package " << thermoTypeDict << endl;
-
-        const int nCmpt = 7;
-        const char* cmptNames[nCmpt] =
-        {
-            "type",
-            "mixture",
-            "transport",
-            "thermo",
-            "equationOfState",
-            "specie",
-            "energy"
-        };
-
-        // Construct the name of the thermo package from the components
-        thermoTypeName =
-            word(thermoTypeDict.lookup("type")) + '<'
-          + word(thermoTypeDict.lookup("mixture")) + '<'
-          + word(thermoTypeDict.lookup("transport")) + '<'
-          + word(thermoTypeDict.lookup("thermo")) + '<'
-          + word(thermoTypeDict.lookup("equationOfState")) + '<'
-          + word(thermoTypeDict.lookup("specie")) + ">>,"
-          + word(thermoTypeDict.lookup("energy")) + ">>>";
-
-        // Lookup the thermo package
-        typename Thermo::fvMeshConstructorTable::iterator cstrIter =
-            Thermo::fvMeshConstructorTablePtr_->find(thermoTypeName);
-
-        // Print error message if package not found in the table
-        if (cstrIter == Thermo::fvMeshConstructorTablePtr_->end())
-        {
-            FatalErrorIn(Thermo::typeName + "::New(const fvMesh&)")
-                << "Unknown " << Thermo::typeName << " type " << nl
-                << "thermoType" << thermoTypeDict << nl << nl
-                << "Valid " << Thermo::typeName << " types are:" << nl << nl;
-
-            // Get the list of all the suitable thermo packages available
-            wordList validThermoTypeNames
-            (
-                Thermo::fvMeshConstructorTablePtr_->sortedToc()
-            );
-
-            // Build a table of the thermo packages constituent parts
-            // Note: row-0 contains the names of constituent parts
-            List<wordList> validThermoTypeNameCmpts
-            (
-                validThermoTypeNames.size() + 1
-            );
-
-            validThermoTypeNameCmpts[0].setSize(nCmpt);
-            forAll(validThermoTypeNameCmpts[0], j)
-            {
-                validThermoTypeNameCmpts[0][j] = cmptNames[j];
-            }
-
-            // Split the thermo package names into their constituent parts
-            forAll(validThermoTypeNames, i)
-            {
-                validThermoTypeNameCmpts[i+1] =
-                    Thermo::splitThermoName(validThermoTypeNames[i], nCmpt);
-            }
-
-            // Print the table of available packages
-            // in terms of their constituent parts
-            printTable(validThermoTypeNameCmpts, FatalError);
-
-            FatalError<< exit(FatalError);
-        }
-
-        return autoPtr<Thermo>(cstrIter()(mesh));
-    }
-    else
-    {
-        thermoTypeName = word(thermoDict.lookup("thermoType"));
-
-        Info<< "Selecting thermodynamics package " << thermoTypeName << endl;
-
-        typename Thermo::fvMeshConstructorTable::iterator cstrIter =
-            Thermo::fvMeshConstructorTablePtr_->find(thermoTypeName);
-
-        if (cstrIter == Thermo::fvMeshConstructorTablePtr_->end())
-        {
-            FatalErrorIn(Thermo::typeName + "::New(const fvMesh&)")
-                << "Unknown " << Thermo::typeName << " type "
-                << thermoTypeName << nl << nl
-                << "Valid " << Thermo::typeName << " types are:" << nl
-                << Thermo::fvMeshConstructorTablePtr_->sortedToc() << nl
-                << exit(FatalError);
-        }
-
-        return autoPtr<Thermo>(cstrIter()(mesh));
-    }
-}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+} // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-} // End namespace Foam
+#ifdef NoRepository
+#   include "basicThermoTemplates.C"
+#endif
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/thermophysicalModels/basic/basicThermo/basicThermoTemplates.C b/src/thermophysicalModels/basic/basicThermo/basicThermoTemplates.C
new file mode 100644
index 0000000000000000000000000000000000000000..99fe8cacc25048209c61b3535c5565d2877f308b
--- /dev/null
+++ b/src/thermophysicalModels/basic/basicThermo/basicThermoTemplates.C
@@ -0,0 +1,150 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "basicThermo.H"
+
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
+template<class Thermo>
+Foam::autoPtr<Thermo> Foam::basicThermo::New
+(
+    const fvMesh& mesh
+)
+{
+    IOdictionary thermoDict
+    (
+        IOobject
+        (
+            "thermophysicalProperties",
+            mesh.time().constant(),
+            mesh,
+            IOobject::MUST_READ_IF_MODIFIED,
+            IOobject::NO_WRITE,
+            false
+        )
+    );
+
+    word thermoTypeName;
+
+    if (thermoDict.isDict("thermoType"))
+    {
+        const dictionary& thermoTypeDict(thermoDict.subDict("thermoType"));
+
+        Info<< "Selecting thermodynamics package " << thermoTypeDict << endl;
+
+        const int nCmpt = 7;
+        const char* cmptNames[nCmpt] =
+        {
+            "type",
+            "mixture",
+            "transport",
+            "thermo",
+            "equationOfState",
+            "specie",
+            "energy"
+        };
+
+        // Construct the name of the thermo package from the components
+        thermoTypeName =
+            word(thermoTypeDict.lookup("type")) + '<'
+          + word(thermoTypeDict.lookup("mixture")) + '<'
+          + word(thermoTypeDict.lookup("transport")) + '<'
+          + word(thermoTypeDict.lookup("thermo")) + '<'
+          + word(thermoTypeDict.lookup("equationOfState")) + '<'
+          + word(thermoTypeDict.lookup("specie")) + ">>,"
+          + word(thermoTypeDict.lookup("energy")) + ">>>";
+
+        // Lookup the thermo package
+        typename Thermo::fvMeshConstructorTable::iterator cstrIter =
+            Thermo::fvMeshConstructorTablePtr_->find(thermoTypeName);
+
+        // Print error message if package not found in the table
+        if (cstrIter == Thermo::fvMeshConstructorTablePtr_->end())
+        {
+            FatalErrorIn(Thermo::typeName + "::New(const fvMesh&)")
+                << "Unknown " << Thermo::typeName << " type " << nl
+                << "thermoType" << thermoTypeDict << nl << nl
+                << "Valid " << Thermo::typeName << " types are:" << nl << nl;
+
+            // Get the list of all the suitable thermo packages available
+            wordList validThermoTypeNames
+            (
+                Thermo::fvMeshConstructorTablePtr_->sortedToc()
+            );
+
+            // Build a table of the thermo packages constituent parts
+            // Note: row-0 contains the names of constituent parts
+            List<wordList> validThermoTypeNameCmpts
+            (
+                validThermoTypeNames.size() + 1
+            );
+
+            validThermoTypeNameCmpts[0].setSize(nCmpt);
+            forAll(validThermoTypeNameCmpts[0], j)
+            {
+                validThermoTypeNameCmpts[0][j] = cmptNames[j];
+            }
+
+            // Split the thermo package names into their constituent parts
+            forAll(validThermoTypeNames, i)
+            {
+                validThermoTypeNameCmpts[i+1] =
+                    Thermo::splitThermoName(validThermoTypeNames[i], nCmpt);
+            }
+
+            // Print the table of available packages
+            // in terms of their constituent parts
+            printTable(validThermoTypeNameCmpts, FatalError);
+
+            FatalError<< exit(FatalError);
+        }
+
+        return autoPtr<Thermo>(cstrIter()(mesh));
+    }
+    else
+    {
+        thermoTypeName = word(thermoDict.lookup("thermoType"));
+
+        Info<< "Selecting thermodynamics package " << thermoTypeName << endl;
+
+        typename Thermo::fvMeshConstructorTable::iterator cstrIter =
+            Thermo::fvMeshConstructorTablePtr_->find(thermoTypeName);
+
+        if (cstrIter == Thermo::fvMeshConstructorTablePtr_->end())
+        {
+            FatalErrorIn(Thermo::typeName + "::New(const fvMesh&)")
+                << "Unknown " << Thermo::typeName << " type "
+                << thermoTypeName << nl << nl
+                << "Valid " << Thermo::typeName << " types are:" << nl
+                << Thermo::fvMeshConstructorTablePtr_->sortedToc() << nl
+                << exit(FatalError);
+        }
+
+        return autoPtr<Thermo>(cstrIter()(mesh));
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/basic/fluidThermo/fluidThermo.C b/src/thermophysicalModels/basic/fluidThermo/fluidThermo.C
index b0438e6431331c9c7c9942c771e3f42291e2854e..4aef741b50f3afaadd279328debb572d564db058 100644
--- a/src/thermophysicalModels/basic/fluidThermo/fluidThermo.C
+++ b/src/thermophysicalModels/basic/fluidThermo/fluidThermo.C
@@ -49,12 +49,14 @@ Foam::fluidThermo::fluidThermo(const fvMesh& mesh, const dictionary& dict)
 {}
 
 
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
 Foam::autoPtr<Foam::fluidThermo> Foam::fluidThermo::New
 (
     const fvMesh& mesh
 )
 {
-    return NewThermo<fluidThermo>(mesh);
+    return basicThermo::New<fluidThermo>(mesh);
 }
 
 
diff --git a/src/thermophysicalModels/basic/fluidThermo/fluidThermo.H b/src/thermophysicalModels/basic/fluidThermo/fluidThermo.H
index 7f33cdfdd328137c6cb95cd62db332451dc470e3..21de4808fff330baf02c25f8fe5268fe63471d43 100644
--- a/src/thermophysicalModels/basic/fluidThermo/fluidThermo.H
+++ b/src/thermophysicalModels/basic/fluidThermo/fluidThermo.H
@@ -29,7 +29,6 @@ Description
 
 SourceFiles
     fluidThermo.C
-    fluidThermoNew.C
 
 \*---------------------------------------------------------------------------*/
 
diff --git a/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermo.C b/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermo.C
index e9a6a2219ea356989f2b08fa719bc664cf119f58..30949d16d7ba2c04f3890cc8db5c707b28264962 100644
--- a/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermo.C
+++ b/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermo.C
@@ -70,12 +70,14 @@ Foam::psiThermo::psiThermo(const fvMesh& mesh)
 {}
 
 
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
 Foam::autoPtr<Foam::psiThermo> Foam::psiThermo::New
 (
     const fvMesh& mesh
 )
 {
-    return NewThermo<psiThermo>(mesh);
+    return basicThermo::New<psiThermo>(mesh);
 }
 
 
diff --git a/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermo.H b/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermo.H
index 990341965d7df9766208de4c9b297589ca0ac9ac..84a9dff0b48903d9ac2e265da9134bdda4b4fd90 100644
--- a/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermo.H
+++ b/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermo.H
@@ -29,7 +29,6 @@ Description
 
 SourceFiles
     psiThermo.C
-    psiThermoNew.C
 
 \*---------------------------------------------------------------------------*/
 
diff --git a/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermo.C b/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermo.C
index ababc128c2cbec11303109a601d4cf6e572b3c9c..d5e572f615388ec82ad7972c12a0df02b04ef093 100644
--- a/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermo.C
+++ b/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermo.C
@@ -130,12 +130,14 @@ Foam::rhoThermo::rhoThermo(const fvMesh& mesh, const dictionary& dict)
 {}
 
 
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
 Foam::autoPtr<Foam::rhoThermo> Foam::rhoThermo::New
 (
     const fvMesh& mesh
 )
 {
-    return NewThermo<rhoThermo>(mesh);
+    return basicThermo::New<rhoThermo>(mesh);
 }
 
 
diff --git a/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermo.H b/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermo.H
index 9cb27bd4b8d4d3c84cf5a21326d73ba32268edef..cc477d35eb0f7e7f7221a3d73d11d24d89cd6423 100644
--- a/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermo.H
+++ b/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermo.H
@@ -29,7 +29,6 @@ Description
 
 SourceFiles
     rhoThermo.C
-    rhoThermoNew.C
 
 \*---------------------------------------------------------------------------*/
 
diff --git a/src/thermophysicalModels/solidThermo/solidThermo/solidThermoNew.C b/src/thermophysicalModels/solidThermo/solidThermo/solidThermoNew.C
index a378d6f2e5c7706a0856982949a19ce4eb5e3ca2..1fbb1afca2e189cf649a8bd76a840d7c5dc9d7c4 100644
--- a/src/thermophysicalModels/solidThermo/solidThermo/solidThermoNew.C
+++ b/src/thermophysicalModels/solidThermo/solidThermo/solidThermoNew.C
@@ -76,7 +76,8 @@ Foam::autoPtr<Foam::solidThermo> Foam::solidThermo::New
 
 Foam::autoPtr<Foam::solidThermo> Foam::solidThermo::New
 (
-    const fvMesh& mesh, const dictionary& dict
+    const fvMesh& mesh,
+    const dictionary& dict
 )
 {
     if (debug)
@@ -106,4 +107,5 @@ Foam::autoPtr<Foam::solidThermo> Foam::solidThermo::New
     return autoPtr<solidThermo>(cstrIter()(mesh, dict));
 }
 
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/thermophysicalProperties
index 562bc6c8ec98049fbee8924df54f6a05cec9d8fd..cecce6e7b2f4c9d1f1c937ab04dc62e4f060a281 100644
--- a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       sutherlandTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleInternalEnergy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/thermophysicalProperties
index c6179ae4c5d10df29cd90dc9ba1165bf489cf03f..9a4df2030a53f18a33086ccf17022641c8be63b1 100644
--- a/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<sutherlandTransport<janafThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       sutherlandTransport;
+    thermo          janafThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleInternalEnergy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/rhoCentralFoam/forwardStep/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/forwardStep/constant/thermophysicalProperties
index 807bed8913ce43bd904e8d37f5a9668df0d2d1b9..aad77235ffddb9961796412605175a55ee612162 100644
--- a/tutorials/compressible/rhoCentralFoam/forwardStep/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/forwardStep/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          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 8bd843241a714782381dd203832d4aca1582f3f0..dde7c242fa2906988cc67c66d4d1860599c42801 100644
--- a/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleInternalEnergy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/rhoCentralFoam/shockTube/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/shockTube/constant/thermophysicalProperties
index 1edc08f91bd88e1f613987332d72bdfb706e6a17..2ac6e58ee4039ff954e6666206d0dcc3fa0f1696 100644
--- a/tutorials/compressible/rhoCentralFoam/shockTube/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/shockTube/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleInternalEnergy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/thermophysicalProperties
index 8bd843241a714782381dd203832d4aca1582f3f0..dde7c242fa2906988cc67c66d4d1860599c42801 100644
--- a/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleInternalEnergy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties
index 84fbe3d678aee75568bc0e79679628d1111846a0..49716e950761806076d06238982cb43c0e41fdbe 100644
--- a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/thermophysicalProperties
index 1af5e2549d9cb39cde7feb3436fbf881e9886f26..9723272741a111a6c7c4e28e2499da94cf88832e 100644
--- a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       sutherlandTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/ras/cavity/constant/thermophysicalProperties
index 934357143717a0ecff22bd29d7348c7de194e8ad..9ee57766cf21842aaa50f4c5e2d18446e533e95d 100644
--- a/tutorials/compressible/rhoPimpleFoam/ras/cavity/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/ras/cavity/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPimplecFoam/angledDuct/constant/thermophysicalProperties b/tutorials/compressible/rhoPimplecFoam/angledDuct/constant/thermophysicalProperties
index 1af5e2549d9cb39cde7feb3436fbf881e9886f26..9723272741a111a6c7c4e28e2499da94cf88832e 100644
--- a/tutorials/compressible/rhoPimplecFoam/angledDuct/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimplecFoam/angledDuct/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       sutherlandTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/thermophysicalProperties b/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/thermophysicalProperties
index 1af5e2549d9cb39cde7feb3436fbf881e9886f26..9723272741a111a6c7c4e28e2499da94cf88832e 100644
--- a/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPorousMRFLTSPimpleFoam/angledDuct/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       sutherlandTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/thermophysicalProperties b/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/thermophysicalProperties
index a59b1bb17a4ba074a1be89759286a41803042931..317544a7bf791285662fbf3553033e55a6d1c620 100644
--- a/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPorousMRFPimpleFoam/mixerVessel2D/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       sutherlandTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties
index 143dcad7b5361083a8af74914195038510f0e39c..0cd2cebd8e07f3f272ebf41c47d58e52feda884f 100644
--- a/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPorousMRFSimpleFoam/angledDuctImplicit/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heRhoThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       sutherlandTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleInternalEnergy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/constant/thermophysicalProperties b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/thermophysicalProperties
index 1c7da0f1713889955280234533fcb29d57136373..6a961a3b73759beefab108d27c22a55defc61a59 100644
--- a/tutorials/compressible/rhoSimplecFoam/squareBend/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType hePsiThermo<pureMixture<sutherlandTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       sutherlandTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleInternalEnergy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties
index 807bed8913ce43bd904e8d37f5a9668df0d2d1b9..aad77235ffddb9961796412605175a55ee612162 100644
--- a/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          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 f501963c687af5ce503dc27dbeb4ce8428292e7d..cd10ed592389a91cb6ca6a1c2b900546adeb2aad 100644
--- a/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleInternalEnergy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties
index d078c46ccb791976b758ad46c7ee75d27b3809c8..43831f935b46c1371553ac39640ec6f6f0648b45 100644
--- a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleInternalEnergy;
+}
 
 mixture
 {
diff --git a/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties
index d078c46ccb791976b758ad46c7ee75d27b3809c8..43831f935b46c1371553ac39640ec6f6f0648b45 100644
--- a/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleInternalEnergy;
+}
 
 mixture
 {
diff --git a/tutorials/heatTransfer/buoyantPimpleFoam/hotRoom/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantPimpleFoam/hotRoom/constant/thermophysicalProperties
index 1870035bf9fd9c5ae288166a4ac2091c1b7694a0..0085820454bfb6ce305efd93bad9fb4e24e6d5ba 100644
--- a/tutorials/heatTransfer/buoyantPimpleFoam/hotRoom/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantPimpleFoam/hotRoom/constant/thermophysicalProperties
@@ -15,8 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
-//thermoType heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleInternalEnergy>>>;
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 pRef            100000;
 
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/constant/thermophysicalProperties
index 6a782154be195998b20c378653ca15b54710ec2f..0a1f8cd359cf4d1d8619bd3b648a11d0c3845f6b 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/buoyantCavity/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties
index 6a782154be195998b20c378653ca15b54710ec2f..0a1f8cd359cf4d1d8619bd3b648a11d0c3845f6b 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/thermophysicalProperties
index d4a80ceaa32fae03917df63d82534b52ff236959..1433c8c53e545720c899b81d6b6328b31f133b60 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 pRef            100000;
 
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties
index d4a80ceaa32fae03917df63d82534b52ff236959..1433c8c53e545720c899b81d6b6328b31f133b60 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hePsiThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            hePsiThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 pRef            100000;
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
index 030a3a3ddd36bee194e2150cf367557c623c580e..67d6054e2339889701b93ed265a29db7a5804808 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
index 62209d10711d841851b2f6f9eb4dac8f0f35351e..b1783beb1495fbb67fdbcac1f18e463d6e34a2aa 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/bottomWater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/bottomWater/thermophysicalProperties
index 20cc9f227534c3491d5979bf028d0557cfd968f6..50d01b91d1fb7650fdcd03ea3449550c611ef05e 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/bottomWater/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/bottomWater/thermophysicalProperties
@@ -14,7 +14,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heRhoThermo<pureMixture<constTransport<hConstThermo<rhoConst<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState rhoConst;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/topAir/thermophysicalProperties
index 62209d10711d841851b2f6f9eb4dac8f0f35351e..b1783beb1495fbb67fdbcac1f18e463d6e34a2aa 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/topAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/constant/topAir/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties
index 030a3a3ddd36bee194e2150cf367557c623c580e..67d6054e2339889701b93ed265a29db7a5804808 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties
index 62209d10711d841851b2f6f9eb4dac8f0f35351e..b1783beb1495fbb67fdbcac1f18e463d6e34a2aa 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
index 030a3a3ddd36bee194e2150cf367557c623c580e..67d6054e2339889701b93ed265a29db7a5804808 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
index 62209d10711d841851b2f6f9eb4dac8f0f35351e..b1783beb1495fbb67fdbcac1f18e463d6e34a2aa 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/bottomAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/bottomAir/thermophysicalProperties
index 030a3a3ddd36bee194e2150cf367557c623c580e..67d6054e2339889701b93ed265a29db7a5804808 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/bottomAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/bottomAir/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/topAir/thermophysicalProperties
index 62209d10711d841851b2f6f9eb4dac8f0f35351e..b1783beb1495fbb67fdbcac1f18e463d6e34a2aa 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/topAir/thermophysicalProperties
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/constant/topAir/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heRhoThermo<pureMixture<constTransport<hConstThermo<perfectGas<specie>>,sensibleEnthalpy>>>;
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       constTransport;
+    thermo          hConstThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
 
 mixture
 {