diff --git a/applications/solvers/compressible/sonicFoam/UEqn.H b/applications/solvers/compressible/sonicFoam/UEqn.H
new file mode 100644
index 0000000000000000000000000000000000000000..25506783aee86c36049d916b0bc349469a6510d4
--- /dev/null
+++ b/applications/solvers/compressible/sonicFoam/UEqn.H
@@ -0,0 +1,8 @@
+fvVectorMatrix UEqn
+(
+    fvm::ddt(rho, U)
+    + fvm::div(phi, U)
+    + turbulence->divDevRhoReff(U)
+);
+
+solve(UEqn == -fvc::grad(p));
diff --git a/applications/solvers/compressible/sonicFoam/compressibleContinuityErrs.H b/applications/solvers/compressible/sonicFoam/compressibleContinuityErrs.H
deleted file mode 100644
index 128d99c94611b88f8c01b3bb683dedcf0f237dc1..0000000000000000000000000000000000000000
--- a/applications/solvers/compressible/sonicFoam/compressibleContinuityErrs.H
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-#   include "rhoEqn.H"
-}
-{
-    scalar sumLocalContErr = (sum(mag(rho - psi*p))/sum(rho)).value();
-    scalar globalContErr = (sum(rho - psi*p)/sum(rho)).value();
-    cumulativeContErr += globalContErr;
-
-    Info<< "time step continuity errors : sum local = " << sumLocalContErr
-         << ", global = " << globalContErr
-         << ", cumulative = " << cumulativeContErr << endl;
-}
diff --git a/applications/solvers/compressible/sonicFoam/createFields.H b/applications/solvers/compressible/sonicFoam/createFields.H
index bbb5d105269512474d7753bb93ef97affda1e8cc..5d03dd2bb7ccd83fb9f8900e2e2a08f2b3774ba4 100644
--- a/applications/solvers/compressible/sonicFoam/createFields.H
+++ b/applications/solvers/compressible/sonicFoam/createFields.H
@@ -7,7 +7,7 @@
     basicPsiThermo& thermo = pThermo();
 
     volScalarField& p = thermo.p();
-    volScalarField& h = thermo.h();
+    volScalarField& e = thermo.e();
     const volScalarField& psi = thermo.psi();
 
     volScalarField rho
@@ -35,7 +35,7 @@
         mesh
     );
 
-#   include "compressibleCreatePhi.H"
+    #include "compressibleCreatePhi.H"
 
 
     Info<< "Creating turbulence model\n" << endl;
@@ -49,7 +49,3 @@
             thermo
         )
     );
-
-    Info<< "Creating field DpDt\n" << endl;
-    volScalarField DpDt =
-        fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
diff --git a/applications/solvers/compressible/sonicFoam/eEqn.H b/applications/solvers/compressible/sonicFoam/eEqn.H
new file mode 100644
index 0000000000000000000000000000000000000000..1d1d6aef0b2d53efa849347af2a0c4d6f9cbf912
--- /dev/null
+++ b/applications/solvers/compressible/sonicFoam/eEqn.H
@@ -0,0 +1,12 @@
+{
+    solve
+    (
+        fvm::ddt(rho, e)
+      + fvm::div(phi, e)
+      - fvm::laplacian(turbulence->alphaEff(), e)
+      ==
+      - p*fvc::div(phi/fvc::interpolate(rho))
+    );
+
+    thermo.correct();
+}
diff --git a/applications/solvers/compressible/sonicFoam/hEqn.H b/applications/solvers/compressible/sonicFoam/hEqn.H
deleted file mode 100644
index baa2dab34334e1d942f17c29e8e3675747def570..0000000000000000000000000000000000000000
--- a/applications/solvers/compressible/sonicFoam/hEqn.H
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-        solve
-        (
-            fvm::ddt(rho, h)
-          + fvm::div(phi, h)
-          - fvm::laplacian(turbulence->alphaEff(), h)
-         ==
-            DpDt
-        );
-
-        thermo.correct();
-}
diff --git a/applications/solvers/compressible/sonicFoam/pEqn.H b/applications/solvers/compressible/sonicFoam/pEqn.H
new file mode 100644
index 0000000000000000000000000000000000000000..96a500d4c2644a1af8220d012f1888f67a297b2c
--- /dev/null
+++ b/applications/solvers/compressible/sonicFoam/pEqn.H
@@ -0,0 +1,37 @@
+rho = thermo.rho();
+
+volScalarField rUA = 1.0/UEqn.A();
+U = rUA*UEqn.H();
+
+surfaceScalarField phid
+(
+    "phid",
+    fvc::interpolate(psi)
+   *(
+        (fvc::interpolate(U) & mesh.Sf())
+      + fvc::ddtPhiCorr(rUA, rho, U, phi)
+    )
+);
+
+for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+{
+    fvScalarMatrix pEqn
+    (
+        fvm::ddt(psi, p)
+      + fvm::div(phid, p)
+      - fvm::laplacian(rho*rUA, p)
+    );
+
+    pEqn.solve();
+
+    if (nonOrth == nNonOrthCorr)
+    {
+        phi = pEqn.flux();
+    }
+}
+
+#include "rhoEqn.H"
+#include "compressibleContinuityErrs.H"
+
+U -= rUA*fvc::grad(p);
+U.correctBoundaryConditions();
diff --git a/applications/solvers/compressible/sonicFoam/readThermodynamicProperties.H b/applications/solvers/compressible/sonicFoam/readThermodynamicProperties.H
deleted file mode 100644
index 1fc57fc5fdc6ef0a6d8d232922fa06f124314a3a..0000000000000000000000000000000000000000
--- a/applications/solvers/compressible/sonicFoam/readThermodynamicProperties.H
+++ /dev/null
@@ -1,23 +0,0 @@
-    Info<< "Reading thermodynamicProperties\n" << endl;
-
-    IOdictionary thermodynamicProperties
-    (
-        IOobject
-        (
-            "thermodynamicProperties",
-            runTime.constant(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::NO_WRITE
-        )
-    );
-
-    dimensionedScalar R
-    (
-        thermodynamicProperties.lookup("R")
-    );
-
-    dimensionedScalar Cv
-    (
-        thermodynamicProperties.lookup("Cv")
-    );
diff --git a/applications/solvers/compressible/sonicFoam/readTransportProperties.H b/applications/solvers/compressible/sonicFoam/readTransportProperties.H
deleted file mode 100644
index 1502e2033a05c54d882dd06ea42731938527d1a8..0000000000000000000000000000000000000000
--- a/applications/solvers/compressible/sonicFoam/readTransportProperties.H
+++ /dev/null
@@ -1,18 +0,0 @@
-    Info<< "Reading transportProperties\n" << endl;
-
-    IOdictionary transportProperties
-    (
-        IOobject
-        (
-            "transportProperties",
-            runTime.constant(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::NO_WRITE
-        )
-    );
-
-    dimensionedScalar mu
-    (
-        transportProperties.lookup("mu")
-    );
diff --git a/applications/solvers/compressible/sonicFoam/sonicFoam.C b/applications/solvers/compressible/sonicFoam/sonicFoam.C
index c9eda00fa34e1736a677d0d36aa4092a1a3b79a6..df100262efbc93a9127978cd0b472c380a7e8a17 100644
--- a/applications/solvers/compressible/sonicFoam/sonicFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicFoam.C
@@ -58,64 +58,21 @@ int main(int argc, char *argv[])
 
         #include "rhoEqn.H"
 
-        fvVectorMatrix UEqn
-        (
-            fvm::ddt(rho, U)
-          + fvm::div(phi, U)
-          + turbulence->divDevRhoReff(U)
-        );
+        #include "UEqn.H"
 
-        solve(UEqn == -fvc::grad(p));
-
-        #include "hEqn.H"
+        #include "eEqn.H"
 
 
         // --- PISO loop
 
         for (int corr=0; corr<nCorr; corr++)
         {
-            volScalarField rUA = 1.0/UEqn.A();
-            U = rUA*UEqn.H();
-
-            surfaceScalarField phid
-            (
-                "phid",
-                fvc::interpolate(psi)
-               *(
-                   (fvc::interpolate(U) & mesh.Sf())
-                 + fvc::ddtPhiCorr(rUA, rho, U, phi)
-               )
-            );
-
-            for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
-            {
-                fvScalarMatrix pEqn
-                (
-                    fvm::ddt(psi, p)
-                  + fvm::div(phid, p)
-                  - fvm::laplacian(rho*rUA, p)
-                );
-
-                pEqn.solve();
-
-                if (nonOrth == nNonOrthCorr)
-                {
-                    phi = pEqn.flux();
-                }
-            }
-
-             #include "compressibleContinuityErrs.H"
-
-            U -= rUA*fvc::grad(p);
-            U.correctBoundaryConditions();
+            #include "pEqn.H"
         }
 
-        DpDt =
-            fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
-
         turbulence->correct();
 
-        rho = psi*p;
+        rho = thermo.rho();
 
         runTime.write();
 
diff --git a/applications/test/speed/Make/files b/applications/test/speed/Make/files
deleted file mode 100644
index 84a6d2fa6202cc1e7fb7482bfc9e23dc718b406d..0000000000000000000000000000000000000000
--- a/applications/test/speed/Make/files
+++ /dev/null
@@ -1,3 +0,0 @@
-speedTest.C
-
-EXE = $(FOAM_USER_APPBIN)/speedTest
diff --git a/applications/test/speed/Make/options b/applications/test/speed/Make/options
deleted file mode 100644
index e68056198750cebb50fea02c6fffbf8db9220261..0000000000000000000000000000000000000000
--- a/applications/test/speed/Make/options
+++ /dev/null
@@ -1 +0,0 @@
-EXE_INC = /* -ffast-math -mtune=core2 */
diff --git a/applications/test/speed/scalarSpeedTest/Make/files b/applications/test/speed/scalarSpeedTest/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..dae64db89f8cb8366067016721994cf8b3d09b82
--- /dev/null
+++ b/applications/test/speed/scalarSpeedTest/Make/files
@@ -0,0 +1,3 @@
+scalarSpeedTest.C
+
+EXE = $(FOAM_USER_APPBIN)/scalarSpeedTest
diff --git a/applications/test/speed/scalarSpeedTest/Make/options b/applications/test/speed/scalarSpeedTest/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/applications/test/speed/scalarSpeedTest/scalarSpeedTest.C b/applications/test/speed/scalarSpeedTest/scalarSpeedTest.C
new file mode 100644
index 0000000000000000000000000000000000000000..e1858e2d42bf578d54a747c469019fedbd1a3bdd
--- /dev/null
+++ b/applications/test/speed/scalarSpeedTest/scalarSpeedTest.C
@@ -0,0 +1,192 @@
+#include "primitiveFields.H"
+#include "Random.H"
+#include "cpuTime.H"
+#include "IOstreams.H"
+#include "OFstream.H"
+
+using namespace Foam;
+
+int main()
+{
+    Info<< "Initialising fields" << endl;
+
+    const label nIter = 100;
+    const label size = 10000000;
+    const label rndAddrSkip = 40;
+    const label redFac = 6;
+    const label redSize = size/redFac;
+    Random genAddr(100);
+
+    double* f1 = new double[size];
+    double* f2 = new double[size];
+    double* f3 = new double[size];
+    double* f4 = new double[size];
+    double* fr = new double[redSize];
+    label*  addr = new label[size];
+    label*  redAddr = new label[size];
+    label*  redAddr2 = new label[size];
+
+    for (register label i=0; i<size; i++)
+    {
+        f1[i] = 1.0;
+        f2[i] = 1.0;
+        f3[i] = 1.0;
+        addr[i] = i;
+        redAddr[i] = i/redFac;
+        redAddr2[i] = (size - i - 1)/redFac;
+    }
+
+    for (register label i=0; i<size; i+=rndAddrSkip)
+    {
+        addr[i] = genAddr.integer(0, size-1);
+    }
+
+    for (register label i=0; i<redSize; i++)
+    {
+        fr[i] = 1.0;
+    }
+
+    Info<< "Done\n" <<endl;
+
+    {
+        Info<< "Single loop combined operation (expression templates)"
+            << endl;
+
+        cpuTime executionTime;
+
+        for (int j=0; j<nIter; j++)
+        {
+            for (register label i=0; i<size; i++)
+            {
+                f4[i] = f1[i] + f2[i] - f3[i];
+            }
+        }
+
+        Info<< "ExecutionTime = "
+            << executionTime.elapsedCpuTime()
+            << " s\n" << endl;
+
+        Snull<< f4[1] << endl << endl;
+    }
+
+    {
+        Info<< "Single loop combined operation with indirect addressing"
+            << endl;
+
+        cpuTime executionTime;
+
+        for (int j=0; j<nIter; j++)
+        {
+            for (register label i=0; i<size; i++)
+            {
+                f4[addr[i]] = f1[addr[i]] + f2[addr[i]] - f3[addr[i]];
+            }
+        }
+
+        Info<< "ExecutionTime = "
+            << executionTime.elapsedCpuTime()
+            << " s\n" << endl;
+
+        Snull<< f4[1] << endl << endl;
+    }
+
+    {
+        Info<< "Single loop reduction operation"
+            << endl;
+
+        cpuTime executionTime;
+        label redOffset = (size - 1)/redFac;
+
+        for (int j=0; j<nIter; j++)
+        {
+            for (register label i=0; i<size; i++)
+            {
+                label j = i/redFac;
+                fr[j] += f1[i];
+                fr[redOffset - j] -= f2[i];
+            }
+        }
+
+        Info<< "ExecutionTime = "
+            << executionTime.elapsedCpuTime()
+            << " s\n" << endl;
+
+        Snull<< fr[1] << endl << endl;
+    }
+
+    {
+        Info<< "Single loop reduction operation with indirect addressing"
+            << endl;
+
+        cpuTime executionTime;
+
+        for (int j=0; j<nIter; j++)
+        {
+            for (register label i=0; i<size; i++)
+            {
+                fr[redAddr[i]] += f1[i];
+                fr[redAddr2[i]] -= f2[i];
+            }
+        }
+
+        Info<< "ExecutionTime = "
+            << executionTime.elapsedCpuTime()
+            << " s\n" << endl;
+
+        Snull<< fr[1] << endl << endl;
+    }
+
+    {
+        Info<< "Separate loops ?= operations" << endl;
+
+        cpuTime executionTime;
+
+        for (int j=0; j<nIter; j++)
+        {
+            for (register label i=0; i<size; i++)
+            {
+                f4[i] = f1[i];
+            }
+            for (register label i=0; i<size; i++)
+            {
+                f4[i] += f2[i];
+            }
+            for (register label i=0; i<size; i++)
+            {
+                f4[i] -= f3[i];
+            }
+        }
+
+        Info<< "ExecutionTime = "
+            << executionTime.elapsedCpuTime()
+            << " s\n" << endl;
+
+        Snull<< f4[1] << endl << endl;
+    }
+
+    {
+        Info<< "OpenFOAM field algebra" << endl;
+
+        scalarField
+            sf1(size, 1.0),
+            sf2(size, 1.0),
+            sf3(size, 1.0),
+            sf4(size);
+
+        cpuTime executionTime;
+
+        for (int j=0; j<nIter; j++)
+        {
+            //sf4 = sf1 + sf2 - sf3;
+            sf4 = sf1;
+            sf4 += sf2;
+            sf4 -= sf3;
+        }
+
+        Info<< "ExecutionTime = "
+            << executionTime.elapsedCpuTime()
+            << " s\n" << endl;
+
+        Snull<< sf4[1] << endl << endl;
+    }
+}
diff --git a/applications/test/speed/speedTest.C b/applications/test/speed/speedTest.C
deleted file mode 100644
index 052514359190204cbf8d9cab1fab1470461f9f2d..0000000000000000000000000000000000000000
--- a/applications/test/speed/speedTest.C
+++ /dev/null
@@ -1,99 +0,0 @@
-#include "primitiveFields.H"
-#include "cpuTime.H"
-#include "IOstreams.H"
-
-using namespace Foam;
-
-int main()
-{
-    const label nIter = 10;
-    const label size = 10000000;
-
-    double* f1 = new double[size];
-    double* f2 = new double[size];
-    double* f3 = new double[size];
-    double* f4 = new double[size];
-
-    for (register label i=0; i<size; i++)
-    {
-        f1[i] = 1.0;
-        f2[i] = 1.0;
-        f3[i] = 1.0;
-    }
-
-    cpuTime executionTime1;
-
-    for (int j=0; j<nIter; j++)
-    {
-        for (register label i=0; i<size; i++)
-        {
-            f4[i] = f1[i] + f2[i] - f3[i];
-        }
-    }
-
-    Info<< "ExecutionTime = "
-        << executionTime1.elapsedCpuTime()
-        << " s\n" << endl;
-
-    Info << f4[1] << endl << endl;
-
-
-    scalarField sf1(size, 1.0), sf2(size, 1.0), sf3(size, 1.0), sf4(size);
-
-    cpuTime executionTime2;
-
-    for (register int j=0; j<nIter; j++)
-    {
-        sf4 = sf1 + sf2 - sf3;
-        //sf4 = sf1;
-        //sf4 += sf2;
-        //sf4 -= sf3;
-    }
-
-    Info<< "ExecutionTime = "
-        << executionTime2.elapsedCpuTime()
-        << " s\n" << endl;
-
-    Info << sf4[1] << endl << endl;
-
-
-    vectorField 
-        vf1(size, vector::one),
-        vf2(size, vector::one),
-        vf3(size, vector::one),
-        vf4(size);
-
-    cpuTime executionTime3;
-
-    for (register int j=0; j<nIter; j++)
-    {
-        vf4 = vf1 + vf2 - vf3;
-    }
-
-    Info<< "ExecutionTime = "
-        << executionTime3.elapsedCpuTime()
-        << " s\n" << endl;
-
-    Info << vf4[1] << endl << endl;
-
-    cpuTime executionTime4;
-
-    scalarField sf11(size, 1.0), sf12(size, 1.0), sf13(size, 1.0), sf14(size);
-    scalarField sf21(size, 1.0), sf22(size, 1.0), sf23(size, 1.0), sf24(size);
-    scalarField sf31(size, 1.0), sf32(size, 1.0), sf33(size, 1.0), sf34(size);
-
-    for (register int j=0; j<nIter; j++)
-    {
-        sf14 = sf11 + sf12 - sf13;
-        sf24 = sf21 + sf22 - sf23;
-        sf34 = sf31 + sf32 - sf33;
-    }
-
-    Info<< "ExecutionTime = "
-        << executionTime4.elapsedCpuTime()
-        << " s\n" << endl;
-
-    Info << sf14[1] << sf24[1] << sf34[1] << endl << endl;
-
-
-}
diff --git a/applications/test/speed/vectorSpeedTest/Make/files b/applications/test/speed/vectorSpeedTest/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..ccb0187615ed49e981498b9ad532c2f7b7b55326
--- /dev/null
+++ b/applications/test/speed/vectorSpeedTest/Make/files
@@ -0,0 +1,3 @@
+vectorSpeedTest.C
+
+EXE = $(FOAM_USER_APPBIN)/vectorSpeedTest
diff --git a/applications/test/speed/vectorSpeedTest/Make/options b/applications/test/speed/vectorSpeedTest/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/applications/test/speed/vectorSpeedTest/vectorSpeedTest.C b/applications/test/speed/vectorSpeedTest/vectorSpeedTest.C
new file mode 100644
index 0000000000000000000000000000000000000000..da802bab20e7c39767f97318d484536f127f5a40
--- /dev/null
+++ b/applications/test/speed/vectorSpeedTest/vectorSpeedTest.C
@@ -0,0 +1,39 @@
+#include "primitiveFields.H"
+#include "cpuTime.H"
+#include "IOstreams.H"
+#include "OFstream.H"
+
+using namespace Foam;
+
+int main()
+{
+    const label nIter = 100;
+    const label size = 1000000;
+
+    Info<< "Initialising fields" << endl;
+
+    vectorField
+        vf1(size, vector::one),
+        vf2(size, vector::one),
+        vf3(size, vector::one),
+        vf4(size);
+
+    Info<< "Done\n" << endl;
+
+    {
+        cpuTime executionTime;
+
+        Info<< "vectorField algebra" << endl;
+
+        for (register int j=0; j<nIter; j++)
+        {
+            vf4 = vf1 + vf2 - vf3;
+        }
+
+        Info<< "ExecutionTime = "
+            << executionTime.elapsedCpuTime()
+            << " s\n" << endl;
+
+        Snull<< vf4[1] << endl << endl;
+    }
+}
diff --git a/applications/utilities/postProcessing/lagrangian/particleTracks/particleTracks.C b/applications/utilities/postProcessing/lagrangian/particleTracks/particleTracks.C
index 0c88172f7c9c36824bdd7d04619cc5498cf89e56..596c9e4f880dc8c415791596cab74a23a3d58be5 100644
--- a/applications/utilities/postProcessing/lagrangian/particleTracks/particleTracks.C
+++ b/applications/utilities/postProcessing/lagrangian/particleTracks/particleTracks.C
@@ -46,11 +46,14 @@ using namespace Foam;
 
 int main(int argc, char *argv[])
 {
+    timeSelector::addOptions();
+    #include "addRegionOption.H"
+
     #include "setRootCase.H"
 
     #include "createTime.H"
     instantList timeDirs = timeSelector::select0(runTime, args);
-    #include "createMesh.H"
+    #include "createNamedMesh.H"
     #include "createFields.H"
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/OpenFOAM/containers/Lists/List/ListLoopM.H b/src/OpenFOAM/containers/Lists/List/ListLoopM.H
index da90147c64c08f5e5ef03cab1b57900eb79cb319..48b8c5d17e5336268f6fcd6ae7798c662d4b5233 100644
--- a/src/OpenFOAM/containers/Lists/List/ListLoopM.H
+++ b/src/OpenFOAM/containers/Lists/List/ListLoopM.H
@@ -31,8 +31,6 @@ Description
 #ifndef ListLoop_H
 #define ListLoop_H
 
-#include "undefListLoopM.H"
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef vectorMachine
@@ -48,8 +46,11 @@ Description
 
 #define List_ELEM(f, fp, i)  (fp[i])
 
-#define List_ACCESS(type, f, fp) type* __restrict__ fp = (f).begin()
-#define List_CONST_ACCESS(type, f, fp) const type* __restrict__ fp = (f).begin()
+#define List_ACCESS(type, f, fp) \
+    type* const __restrict__ fp = (f).begin()
+
+#define List_CONST_ACCESS(type, f, fp) \
+    const type* const __restrict__ fp = (f).begin()
 
 #else
 
@@ -64,8 +65,11 @@ Description
 
 #define List_ELEM(f, fp, i)  (*fp++)
 
-#define List_ACCESS(type, f, fp)  register type* __restrict__ fp = (f).begin()
-#define List_CONST_ACCESS(type, f, fp)  register const type* __restrict__ fp = (f).begin()
+#define List_ACCESS(type, f, fp) \
+    register type* __restrict__ fp = (f).begin()
+
+#define List_CONST_ACCESS(type, f, fp) \
+    register const type* __restrict__ fp = (f).begin()
 
 #endif
 
diff --git a/src/OpenFOAM/containers/Lists/List/undefListLoopM.H b/src/OpenFOAM/containers/Lists/List/undefListLoopM.H
deleted file mode 100644
index 3c125e2376c580a43c5eceb9c906ff01f5cb40bf..0000000000000000000000000000000000000000
--- a/src/OpenFOAM/containers/Lists/List/undefListLoopM.H
+++ /dev/null
@@ -1,46 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Description
-    A List\<Type\> is a 1D array of objects of type 'Type',
-    where the size of the array is known and used for subscript
-    bounds checking, etc.
-
-\*---------------------------------------------------------------------------*/
-
-#ifdef List_FOR_ALL
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#undef List_FOR_ALL
-#undef List_END_FOR_ALL
-#undef List_ELEM
-#undef List_ACCESS
-#undef List_CONST_ACCESS
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/OpenFOAM/containers/Lists/PtrList/PtrList.C b/src/OpenFOAM/containers/Lists/PtrList/PtrList.C
index 6418537b02089d50eb8e1905cda5f556f2fa33ae..11d997dd3f2fe6047b0ad9734c0de207404a302d 100644
--- a/src/OpenFOAM/containers/Lists/PtrList/PtrList.C
+++ b/src/OpenFOAM/containers/Lists/PtrList/PtrList.C
@@ -27,7 +27,6 @@ License
 #include "error.H"
 
 #include "PtrList.H"
-#include "PtrListLoopM.H"
 #include "SLPtrList.H"
 
 // * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * * //
diff --git a/src/OpenFOAM/containers/Lists/PtrList/PtrListLoopM.H b/src/OpenFOAM/containers/Lists/PtrList/PtrListLoopM.H
deleted file mode 100644
index cbd6fd10dfbf6525f5984f1d208447cb3426ce02..0000000000000000000000000000000000000000
--- a/src/OpenFOAM/containers/Lists/PtrList/PtrListLoopM.H
+++ /dev/null
@@ -1,56 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Description
-    simple generic PtrList MACROS for looping
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef PtrListLoop_H
-#define PtrListLoop_H
-
-#include "undefListLoopM.H"
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-// Element access looping using [] for vector and parallel machines
-
-#define List_FOR_ALL(f, i)      \
-        forAll(f, i)            \
-        {                       \
-
-#define List_END_FOR_ALL  }
-
-#define List_ELEM(f, fp, i) ((f)[i])
-
-#define List_ACCESS(type, f, fp)
-#define List_CONST_ACCESS(type, f, fp)
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/OpenFOAM/containers/Lists/UPtrList/UPtrList.C b/src/OpenFOAM/containers/Lists/UPtrList/UPtrList.C
index 02015efb9b663ec6dbd13a36398bce94def3a9ee..bed0214749efe46fecb7de60e3e063c612fbf7d7 100644
--- a/src/OpenFOAM/containers/Lists/UPtrList/UPtrList.C
+++ b/src/OpenFOAM/containers/Lists/UPtrList/UPtrList.C
@@ -27,7 +27,6 @@ License
 #include "error.H"
 
 #include "UPtrList.H"
-#include "PtrListLoopM.H"
 
 // * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * * //
 
diff --git a/src/OpenFOAM/fields/Fields/symmTransformField/symmTransformField.C b/src/OpenFOAM/fields/Fields/symmTransformField/symmTransformField.C
index 67cb86e1935460040eb44360e4d0fabb38769ccb..db24d88042d79969d4d7bbf2032387b2145dae16 100644
--- a/src/OpenFOAM/fields/Fields/symmTransformField/symmTransformField.C
+++ b/src/OpenFOAM/fields/Fields/symmTransformField/symmTransformField.C
@@ -50,7 +50,7 @@ void transform
     {
         TFOR_ALL_F_OP_FUNC_F_F
         (
-            Type, rtf, =, transform, tensor, trf, Type, tf
+            Type, rtf, =, transform, symmTensor, trf, Type, tf
         )
     }
 }
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixATmul.C b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixATmul.C
index 05958edf68ad060e63c51e8f078656fbbb82a5e6..cb376fde10c28ba807da0541cac76140a3043e8e 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixATmul.C
+++ b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixATmul.C
@@ -67,38 +67,15 @@ void Foam::lduMatrix::Amul
     register const label nCells = diag().size();
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&psiPtr[cell+96],0,1);
-        __builtin_prefetch (&diagPtr[cell+96],0,1);
-        __builtin_prefetch (&ApsiPtr[cell+96],1,1);
-        #endif
-
         ApsiPtr[cell] = diagPtr[cell]*psiPtr[cell];
     }
 
 
     register const label nFaces = upper().size();
-    #ifdef ICC_IA64_PREFETCH
-    #pragma swp
-    #endif
+
     for (register label face=0; face<nFaces; face++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face+32],0,0);
-        __builtin_prefetch (&lPtr[face+32],0,0);
-        __builtin_prefetch (&lowerPtr[face+32],0,1);
-        __builtin_prefetch (&psiPtr[lPtr[face+32]],0,1);
-        __builtin_prefetch (&ApsiPtr[uPtr[face+32]],0,1);
-        #endif
-
         ApsiPtr[uPtr[face]] += lowerPtr[face]*psiPtr[lPtr[face]];
-
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&upperPtr[face+32],0,1);
-        __builtin_prefetch (&psiPtr[uPtr[face+32]],0,1);
-        __builtin_prefetch (&ApsiPtr[lPtr[face+32]],0,1);
-        #endif
-
         ApsiPtr[lPtr[face]] += upperPtr[face]*psiPtr[uPtr[face]];
     }
 
@@ -151,34 +128,13 @@ void Foam::lduMatrix::Tmul
     register const label nCells = diag().size();
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&psiPtr[cell+96],0,1);
-        __builtin_prefetch (&diagPtr[cell+96],0,1);
-        __builtin_prefetch (&TpsiPtr[cell+96],1,1);
-        #endif
-
         TpsiPtr[cell] = diagPtr[cell]*psiPtr[cell];
     }
 
     register const label nFaces = upper().size();
     for (register label face=0; face<nFaces; face++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face+32],0,0);
-        __builtin_prefetch (&lPtr[face+32],0,0);
-        __builtin_prefetch (&upperPtr[face+32],0,1);
-        __builtin_prefetch (&psiPtr[lPtr[face+32]],0,1);
-        __builtin_prefetch (&TpsiPtr[uPtr[face+32]],0,1);
-        #endif
-
         TpsiPtr[uPtr[face]] += upperPtr[face]*psiPtr[lPtr[face]];
-
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&lowerPtr[face+32],0,1);
-        __builtin_prefetch (&psiPtr[uPtr[face+32]],0,1);
-        __builtin_prefetch (&TpsiPtr[lPtr[face+32]],0,1);
-        #endif
-
         TpsiPtr[lPtr[face]] += lowerPtr[face]*psiPtr[uPtr[face]];
     }
 
@@ -218,34 +174,12 @@ void Foam::lduMatrix::sumA
 
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&diagPtr[cell+96],0,1);
-        __builtin_prefetch (&sumAPtr[cell+96],1,1);
-        #endif
-
         sumAPtr[cell] = diagPtr[cell];
     }
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma swp
-    #endif
-
     for (register label face=0; face<nFaces; face++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face+32],0,0);
-        __builtin_prefetch (&lPtr[face+32],0,0);
-        __builtin_prefetch (&lowerPtr[face+32],0,1);
-        __builtin_prefetch (&sumAPtr[uPtr[face+32]],0,1);
-        #endif
-
         sumAPtr[uPtr[face]] += lowerPtr[face];
-
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&upperPtr[face+32],0,1);
-        __builtin_prefetch (&sumAPtr[lPtr[face+32]],0,1);
-        #endif
-
         sumAPtr[lPtr[face]] += upperPtr[face];
     }
 
@@ -323,39 +257,15 @@ void Foam::lduMatrix::residual
     register const label nCells = diag().size();
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&psiPtr[cell+96],0,1);
-        __builtin_prefetch (&diagPtr[cell+96],0,1);
-        __builtin_prefetch (&sourcePtr[cell+96],0,1);
-        __builtin_prefetch (&rAPtr[cell+96],1,1);
-        #endif
-
         rAPtr[cell] = sourcePtr[cell] - diagPtr[cell]*psiPtr[cell];
     }
 
 
     register const label nFaces = upper().size();
-    #ifdef ICC_IA64_PREFETCH
-    #pragma swp
-    #endif
+
     for (register label face=0; face<nFaces; face++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face+32],0,0);
-        __builtin_prefetch (&lPtr[face+32],0,0);
-        __builtin_prefetch (&lowerPtr[face+32],0,1);
-        __builtin_prefetch (&psiPtr[lPtr[face+32]],0,1);
-        __builtin_prefetch (&rAPtr[uPtr[face+32]],0,1);
-        #endif
-
         rAPtr[uPtr[face]] -= lowerPtr[face]*psiPtr[lPtr[face]];
-
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&upperPtr[face+32],0,1);
-        __builtin_prefetch (&psiPtr[uPtr[face+32]],0,1);
-        __builtin_prefetch (&rAPtr[lPtr[face+32]],0,1);
-        #endif
-
         rAPtr[lPtr[face]] -= upperPtr[face]*psiPtr[uPtr[face]];
     }
 
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixOperations.C b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixOperations.C
index 6766e0ec803c065050bff3149c59f5c085a76fc6..9c898f2d9ea008666028023b17147a2aaaee3892 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixOperations.C
+++ b/src/OpenFOAM/matrices/lduMatrix/lduMatrix/lduMatrixOperations.C
@@ -353,20 +353,7 @@ Foam::tmp<Foam::scalarField > Foam::lduMatrix::H1() const
 
         for (register label face=0; face<nFaces; face++)
         {
-            #ifdef ICC_IA64_PREFETCH
-            __builtin_prefetch (&uPtr[face+32],0,0);
-            __builtin_prefetch (&lPtr[face+32],0,0);
-            __builtin_prefetch (&lowerPtr[face+32],0,1);
-            __builtin_prefetch (&H1Ptr[uPtr[face+32]],0,1);
-            #endif
-
             H1Ptr[uPtr[face]] -= lowerPtr[face];
-        
-            #ifdef ICC_IA64_PREFETCH
-            __builtin_prefetch (&upperPtr[face+32],0,1);
-            __builtin_prefetch (&H1Ptr[lPtr[face+32]],0,1);
-                #endif
-
             H1Ptr[lPtr[face]] -= upperPtr[face];
         }
     }
diff --git a/src/OpenFOAM/matrices/lduMatrix/preconditioners/DICPreconditioner/DICPreconditioner.C b/src/OpenFOAM/matrices/lduMatrix/preconditioners/DICPreconditioner/DICPreconditioner.C
index dbf5b31f2a7ec91cdcea2ff1741d994584fda43b..f6fc7ab87f1f086ddd1f8e4997b5f238d3fc4605 100644
--- a/src/OpenFOAM/matrices/lduMatrix/preconditioners/DICPreconditioner/DICPreconditioner.C
+++ b/src/OpenFOAM/matrices/lduMatrix/preconditioners/DICPreconditioner/DICPreconditioner.C
@@ -71,29 +71,15 @@ void Foam::DICPreconditioner::calcReciprocalD
     register const label nFaces = matrix.upper().size();
     for (register label face=0; face<nFaces; face++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face+96],0,0);
-        __builtin_prefetch (&lPtr[face+96],0,0);
-        __builtin_prefetch (&upperPtr[face+96],0,1);
-        __builtin_prefetch (&rDPtr[lPtr[face+24]],0,1);
-        __builtin_prefetch (&rDPtr[uPtr[face+24]],1,1);
-        #endif
-
         rDPtr[uPtr[face]] -= upperPtr[face]*upperPtr[face]/rDPtr[lPtr[face]];
     }
 
 
     // Calculate the reciprocal of the preconditioned diagonal
     register const label nCells = rD.size();
-    #ifdef ICC_IA64_PREFETCH
-    #pragma ivdep
-    #endif
+
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&rDPtr[cell+96],0,1);
-        #endif
-
         rDPtr[cell] = 1.0/rDPtr[cell];
     }
 }
@@ -120,61 +106,18 @@ void Foam::DICPreconditioner::precondition
     register label nFaces = solver_.matrix().upper().size();
     register label nFacesM1 = nFaces - 1;
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma ivdep
-    #endif
-
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&wAPtr[cell+96],0,1);
-        __builtin_prefetch (&rDPtr[cell+96],0,1);
-        __builtin_prefetch (&rAPtr[cell+96],0,1);
-        #endif
-
         wAPtr[cell] = rDPtr[cell]*rAPtr[cell];
     }
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma noprefetch uPtr,lPtr,upperPtr,rDPtr,wAPtr
-    #pragma nounroll
-    #endif
-
     for (register label face=0; face<nFaces; face++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face+96],0,0);
-        __builtin_prefetch (&lPtr[face+96],0,0);
-        __builtin_prefetch (&upperPtr[face+96],0,0);
-        __builtin_prefetch (&rDPtr[uPtr[face+32]],0,1);
-        __builtin_prefetch (&wAPtr[uPtr[face+32]],0,1); 
-        __builtin_prefetch (&wAPtr[lPtr[face+32]],0,1);
-        #endif
-
         wAPtr[uPtr[face]] -= rDPtr[uPtr[face]]*upperPtr[face]*wAPtr[lPtr[face]];
     }
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma noprefetch uPtr,lPtr,rDPtr,wAPtr
-    #pragma nounroll
-    #endif
-
     for (register label face=nFacesM1; face>=0; face--)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face-95],0,0);
-        __builtin_prefetch (&lPtr[face-95],0,0);
-        __builtin_prefetch (&rDPtr[lPtr[face-16]],0,1);
-        __builtin_prefetch (&wAPtr[lPtr[face-16]],0,1);
-        __builtin_prefetch (&wAPtr[uPtr[face-16]],0,1);
-        __builtin_prefetch (&rDPtr[lPtr[face-24]],0,1);
-        __builtin_prefetch (&wAPtr[lPtr[face-24]],0,1);
-        __builtin_prefetch (&wAPtr[uPtr[face-24]],0,1);
-        __builtin_prefetch (&rDPtr[lPtr[face-32]],0,1);
-        __builtin_prefetch (&wAPtr[lPtr[face-32]],0,1);
-        __builtin_prefetch (&wAPtr[uPtr[face-32]],0,1);
-        #endif
-
         wAPtr[lPtr[face]] -= rDPtr[lPtr[face]]*upperPtr[face]*wAPtr[uPtr[face]];
     }
 }
diff --git a/src/OpenFOAM/matrices/lduMatrix/preconditioners/DILUPreconditioner/DILUPreconditioner.C b/src/OpenFOAM/matrices/lduMatrix/preconditioners/DILUPreconditioner/DILUPreconditioner.C
index 5193acb5eb192f21b0f78f848ead3846fa6a2e3f..4fdebcd9c58a6c68402645a8e413577e9ad10c86 100644
--- a/src/OpenFOAM/matrices/lduMatrix/preconditioners/DILUPreconditioner/DILUPreconditioner.C
+++ b/src/OpenFOAM/matrices/lduMatrix/preconditioners/DILUPreconditioner/DILUPreconditioner.C
@@ -72,30 +72,15 @@ void Foam::DILUPreconditioner::calcReciprocalD
     register label nFaces = matrix.upper().size();
     for (register label face=0; face<nFaces; face++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face+96],0,0);
-        __builtin_prefetch (&lPtr[face+96],0,0);
-        __builtin_prefetch (&upperPtr[face+96],0,1);
-        __builtin_prefetch (&lowerPtr[face+96],0,1);
-        __builtin_prefetch (&rDPtr[lPtr[face+24]],0,1);
-        __builtin_prefetch (&rDPtr[uPtr[face+24]],1,1);
-        #endif
-
         rDPtr[uPtr[face]] -= upperPtr[face]*lowerPtr[face]/rDPtr[lPtr[face]];
     }
 
 
     // Calculate the reciprocal of the preconditioned diagonal
     register label nCells = rD.size();
-    #ifdef ICC_IA64_PREFETCH
-    #pragma ivdep
-    #endif
+
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&rDPtr[cell+96],0,1);
-        #endif
-
         rDPtr[cell] = 1.0/rDPtr[cell];
     }
 }
@@ -128,26 +113,14 @@ void Foam::DILUPreconditioner::precondition
     register label nFaces = solver_.matrix().upper().size();
     register label nFacesM1 = nFaces - 1;
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma ivdep
-    #endif
-
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&wAPtr[cell+96],0,1);
-        __builtin_prefetch (&rDPtr[cell+96],0,1);
-        __builtin_prefetch (&rAPtr[cell+96],0,1);
-        #endif
-
         wAPtr[cell] = rDPtr[cell]*rAPtr[cell];
     }
 
 
     register label sface;
-    #ifdef ICC_IA64_PREFETCH
-    #pragma nounroll
-    #endif
+
     for (register label face=0; face<nFaces; face++)
     {
         sface = losortPtr[face];
@@ -155,28 +128,8 @@ void Foam::DILUPreconditioner::precondition
             rDPtr[uPtr[sface]]*lowerPtr[sface]*wAPtr[lPtr[sface]];
     }
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma noprefetch uPtr,lPtr,rDPtr,wAPtr
-    #pragma nounroll
-    #endif
-
     for (register label face=nFacesM1; face>=0; face--)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face-95],0,0);
-        __builtin_prefetch (&lPtr[face-95],0,0);
-        __builtin_prefetch (&upperPtr[face-95],0,1);
-        __builtin_prefetch (&rDPtr[lPtr[face-16]],0,1);
-        __builtin_prefetch (&wAPtr[lPtr[face-16]],0,1);
-        __builtin_prefetch (&wAPtr[uPtr[face-16]],0,1);
-        __builtin_prefetch (&rDPtr[lPtr[face-24]],0,1);
-        __builtin_prefetch (&wAPtr[lPtr[face-24]],0,1);
-        __builtin_prefetch (&wAPtr[uPtr[face-24]],0,1);
-        __builtin_prefetch (&rDPtr[lPtr[face-32]],0,1);
-        __builtin_prefetch (&wAPtr[lPtr[face-32]],0,1);
-        __builtin_prefetch (&wAPtr[uPtr[face-32]],0,1);
-        #endif
-
         wAPtr[lPtr[face]] -=
             rDPtr[lPtr[face]]*upperPtr[face]*wAPtr[uPtr[face]];
     }
@@ -210,46 +163,20 @@ void Foam::DILUPreconditioner::preconditionT
     register label nFaces = solver_.matrix().upper().size();
     register label nFacesM1 = nFaces - 1;
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma ivdep
-    #endif
-
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&wTPtr[cell+96],0,1);
-        __builtin_prefetch (&rDPtr[cell+96],0,1);
-        __builtin_prefetch (&rTPtr[cell+96],0,1);
-        #endif
-
         wTPtr[cell] = rDPtr[cell]*rTPtr[cell];
     }
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma noprefetch uPtr,lPtr,upperPtr,rDPtr,wTPtr
-    #pragma nounroll
-    #endif
-
     for (register label face=0; face<nFaces; face++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face+96],0,0);
-        __builtin_prefetch (&lPtr[face+96],0,0);
-        __builtin_prefetch (&upperPtr[face+96],0,1);
-        __builtin_prefetch (&rDPtr[uPtr[face+32]],0,1);
-        __builtin_prefetch (&wTPtr[lPtr[face+32]],0,1);
-        __builtin_prefetch (&wTPtr[uPtr[face+32]],0,1);
-        #endif
-
         wTPtr[uPtr[face]] -=
             rDPtr[uPtr[face]]*upperPtr[face]*wTPtr[lPtr[face]];
     }
 
 
     register label sface;
-    #ifdef ICC_IA64_PREFETCH
-    #pragma nounroll
-    #endif
+
     for (register label face=nFacesM1; face>=0; face--)
     {
         sface = losortPtr[face];
diff --git a/src/OpenFOAM/matrices/lduMatrix/preconditioners/FDICPreconditioner/FDICPreconditioner.C b/src/OpenFOAM/matrices/lduMatrix/preconditioners/FDICPreconditioner/FDICPreconditioner.C
index 9b17ef902d1cd7cd31ac6637bc70470112253361..db4a51c4b7f6a204b75545b0eb1ab6c845513396 100644
--- a/src/OpenFOAM/matrices/lduMatrix/preconditioners/FDICPreconditioner/FDICPreconditioner.C
+++ b/src/OpenFOAM/matrices/lduMatrix/preconditioners/FDICPreconditioner/FDICPreconditioner.C
@@ -66,47 +66,17 @@ Foam::FDICPreconditioner::FDICPreconditioner
 
     for (register label face=0; face<nFaces; face++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face+96],0,0);
-        __builtin_prefetch (&lPtr[face+96],0,0);
-        __builtin_prefetch (&upperPtr[face+96],0,1);
-        __builtin_prefetch (&rDPtr[lPtr[face+24]],0,1);
-        __builtin_prefetch (&rDPtr[uPtr[face+24]],1,1);
-        #endif
-
         rDPtr[uPtr[face]] -= sqr(upperPtr[face])/rDPtr[lPtr[face]];
     }
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma ivdep
-    #endif
-
     // Generate reciprocal FDIC
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&rDPtr[cell+96],0,1);
-        #endif
-
         rDPtr[cell] = 1.0/rDPtr[cell];
     }
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma ivdep
-    #endif
-
     for (register label face=0; face<nFaces; face++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face+96],0,0);
-        __builtin_prefetch (&lPtr[face+96],0,0);
-        __builtin_prefetch (&upperPtr[face+96],0,0);
-        __builtin_prefetch (&rDuUpperPtr[face+96],0,0);
-        __builtin_prefetch (&rDlUpperPtr[face+96],0,0);
-        __builtin_prefetch (&rDPtr[uPtr[face+32]],0,1);
-        __builtin_prefetch (&rDPtr[lPtr[face+32]],0,1);
-        #endif
-
         rDuUpperPtr[face] = rDPtr[uPtr[face]]*upperPtr[face];
         rDlUpperPtr[face] = rDPtr[lPtr[face]]*upperPtr[face];
     }
@@ -138,58 +108,18 @@ void Foam::FDICPreconditioner::precondition
     register label nFaces = solver_.matrix().upper().size();
     register label nFacesM1 = nFaces - 1;
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma ivdep
-    #endif
-
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&wAPtr[cell+96],0,1);
-        __builtin_prefetch (&rDPtr[cell+96],0,1);
-        __builtin_prefetch (&rAPtr[cell+96],0,1);
-        #endif
-
         wAPtr[cell] = rDPtr[cell]*rAPtr[cell];
     }
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma noprefetch uPtr,lPtr,rDuUpperPtr,wAPtr
-    #pragma nounroll
-    #endif
-
     for (register label face=0; face<nFaces; face++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face+96],0,0);
-        __builtin_prefetch (&lPtr[face+96],0,0);
-        __builtin_prefetch (&rDuUpperPtr[face+96],0,0);
-        __builtin_prefetch (&wAPtr[uPtr[face+32]],0,1);
-        __builtin_prefetch (&wAPtr[lPtr[face+32]],0,1);
-        #endif
-
         wAPtr[uPtr[face]] -= rDuUpperPtr[face]*wAPtr[lPtr[face]];
     }
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma noprefetch uPtr,lPtr,rDlUpperPtr,wAPtr
-    #pragma nounroll
-    #endif
-
     for (register label face=nFacesM1; face>=0; face--)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&uPtr[face-95],0,0);
-        __builtin_prefetch (&lPtr[face-95],0,0);
-        __builtin_prefetch (&rDlUpperPtr[face-95],0,0);
-        __builtin_prefetch (&wAPtr[lPtr[face-16]],0,1);
-        __builtin_prefetch (&wAPtr[uPtr[face-16]],0,1);
-        __builtin_prefetch (&wAPtr[lPtr[face-24]],0,1);
-        __builtin_prefetch (&wAPtr[uPtr[face-24]],0,1);
-        __builtin_prefetch (&wAPtr[lPtr[face-32]],0,1);
-        __builtin_prefetch (&wAPtr[uPtr[face-32]],0,1);
-        #endif
-
         wAPtr[lPtr[face]] -= rDlUpperPtr[face]*wAPtr[uPtr[face]];
     }
 }
diff --git a/src/OpenFOAM/matrices/lduMatrix/preconditioners/diagonalPreconditioner/diagonalPreconditioner.C b/src/OpenFOAM/matrices/lduMatrix/preconditioners/diagonalPreconditioner/diagonalPreconditioner.C
index e5a32fa1689220f3e558e1e866cc8184c1b65b1e..04ccc2add03118dc662013e3925be372cff2b97a 100644
--- a/src/OpenFOAM/matrices/lduMatrix/preconditioners/diagonalPreconditioner/diagonalPreconditioner.C
+++ b/src/OpenFOAM/matrices/lduMatrix/preconditioners/diagonalPreconditioner/diagonalPreconditioner.C
@@ -58,18 +58,9 @@ Foam::diagonalPreconditioner::diagonalPreconditioner
 
     register label nCells = rD.size();
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma ivdep
-    #endif
-
     // Generate reciprocal diagonal
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&rDPtr[cell+96],0,1);
-        __builtin_prefetch (&DPtr[cell+96],0,1);
-        #endif
-
         rDPtr[cell] = 1.0/DPtr[cell];
     }
 }
@@ -90,18 +81,8 @@ void Foam::diagonalPreconditioner::precondition
 
     register label nCells = wA.size();
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma ivdep
-    #endif
-
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&wAPtr[cell+96],0,1);
-        __builtin_prefetch (&rDPtr[cell+96],0,1);
-        __builtin_prefetch (&rAPtr[cell+96],0,1);
-        #endif
-
         wAPtr[cell] = rDPtr[cell]*rAPtr[cell];
     }
 }
diff --git a/src/OpenFOAM/matrices/lduMatrix/preconditioners/noPreconditioner/noPreconditioner.C b/src/OpenFOAM/matrices/lduMatrix/preconditioners/noPreconditioner/noPreconditioner.C
index d1df531040c6fceea43d259a4a9e3553cc7b25fe..54302bea66223a2d4cfa7bb014bec2fb431e80cb 100644
--- a/src/OpenFOAM/matrices/lduMatrix/preconditioners/noPreconditioner/noPreconditioner.C
+++ b/src/OpenFOAM/matrices/lduMatrix/preconditioners/noPreconditioner/noPreconditioner.C
@@ -68,17 +68,8 @@ void Foam::noPreconditioner::precondition
 
     register label nCells = wA.size();
 
-    #ifdef ICC_IA64_PREFETCH
-    #pragma ivdep
-    #endif
-
     for (register label cell=0; cell<nCells; cell++)
     {
-        #ifdef ICC_IA64_PREFETCH
-        __builtin_prefetch (&wAPtr[cell+96],0,1);
-        __builtin_prefetch (&rAPtr[cell+96],0,1);
-        #endif
-
         wAPtr[cell] = rAPtr[cell];
     }
 }
diff --git a/src/OpenFOAM/matrices/lduMatrix/smoothers/GaussSeidel/GaussSeidelSmoother.C b/src/OpenFOAM/matrices/lduMatrix/smoothers/GaussSeidel/GaussSeidelSmoother.C
index ff206e2e5fcbc31eb2184c600dd7b84c74dd8cfc..4c04d67b361d32368ad29a8b90df7d58e88cd6f2 100644
--- a/src/OpenFOAM/matrices/lduMatrix/smoothers/GaussSeidel/GaussSeidelSmoother.C
+++ b/src/OpenFOAM/matrices/lduMatrix/smoothers/GaussSeidel/GaussSeidelSmoother.C
@@ -146,19 +146,6 @@ void Foam::GaussSeidelSmoother::smooth
 
         for (register label cellI=0; cellI<nCells; cellI++)
         {
-            #ifdef ICC_IA64_PREFETCH
-            __builtin_prefetch (&psiPtr[cellI+64],0,1);
-            __builtin_prefetch (&bPrimePtr[cellI+64],0,1);
-            __builtin_prefetch (&ownStartPtr[cellI+64],0,1);
-            __builtin_prefetch (&diagPtr[cellI+64],0,1);
-            __builtin_prefetch (&uPtr[ownStartPtr[cellI+24]],0,1);
-            __builtin_prefetch (&uPtr[ownStartPtr[cellI+25]],0,1);
-            __builtin_prefetch (&uPtr[ownStartPtr[cellI+26]],0,1);
-            __builtin_prefetch (&uPtr[ownStartPtr[cellI+27]],0,1);
-            __builtin_prefetch (&upperPtr[ownStartPtr[cellI+24]],0,1);
-            __builtin_prefetch (&lowerPtr[ownStartPtr[cellI+24]],0,1);
-            #endif
-
             // Start and end of this row
             fStart = fEnd;
             fEnd = ownStartPtr[cellI + 1];
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCG/PBiCG.C b/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCG/PBiCG.C
index 0a5f1036749844421ecb7e7518aeadfb056e04a9..c514276c84e9d5341d8d5bb99d241600303393a8 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCG/PBiCG.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/PBiCG/PBiCG.C
@@ -144,19 +144,8 @@ Foam::lduMatrix::solverPerformance Foam::PBiCG::solve
 
             if (solverPerf.nIterations() == 0)
             {
-                #ifdef ICC_IA64_PREFETCH
-                #pragma ivdep
-                #endif
-
                 for (register label cell=0; cell<nCells; cell++)
                 {
-                    #ifdef ICC_IA64_PREFETCH
-                    __builtin_prefetch (&pAPtr[cell+96],0,1);
-                    __builtin_prefetch (&pTPtr[cell+96],0,1);
-                    __builtin_prefetch (&wAPtr[cell+96],0,1);
-                    __builtin_prefetch (&wTPtr[cell+96],0,1);
-                    #endif
-
                     pAPtr[cell] = wAPtr[cell];
                     pTPtr[cell] = wTPtr[cell];
                 }
@@ -165,19 +154,8 @@ Foam::lduMatrix::solverPerformance Foam::PBiCG::solve
             {
                 scalar beta = wArT/wArTold;
 
-                #ifdef ICC_IA64_PREFETCH
-                #pragma ivdep
-                #endif
-
                 for (register label cell=0; cell<nCells; cell++)
                 {
-                    #ifdef ICC_IA64_PREFETCH
-                    __builtin_prefetch (&pAPtr[cell+96],0,1);
-                    __builtin_prefetch (&pTPtr[cell+96],0,1);
-                    __builtin_prefetch (&wAPtr[cell+96],0,1);
-                    __builtin_prefetch (&wTPtr[cell+96],0,1);
-                    #endif
-
                     pAPtr[cell] = wAPtr[cell] + beta*pAPtr[cell];
                     pTPtr[cell] = wTPtr[cell] + beta*pTPtr[cell];
                 }
@@ -199,21 +177,8 @@ Foam::lduMatrix::solverPerformance Foam::PBiCG::solve
 
             scalar alpha = wArT/wApT;
 
-            #ifdef ICC_IA64_PREFETCH
-            #pragma ivdep
-            #endif
-
             for (register label cell=0; cell<nCells; cell++)
             {
-                #ifdef ICC_IA64_PREFETCH
-                __builtin_prefetch (&pAPtr[cell+96],0,1);
-                __builtin_prefetch (&wAPtr[cell+96],0,1);
-                __builtin_prefetch (&wTPtr[cell+96],0,1);
-                __builtin_prefetch (&psiPtr[cell+96],0,1);
-                __builtin_prefetch (&rAPtr[cell+96],0,1);
-                __builtin_prefetch (&rTPtr[cell+96],0,1);
-                #endif
-
                 psiPtr[cell] += alpha*pAPtr[cell];
                 rAPtr[cell] -= alpha*wAPtr[cell];
                 rTPtr[cell] -= alpha*wTPtr[cell];
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/PCG/PCG.C b/src/OpenFOAM/matrices/lduMatrix/solvers/PCG/PCG.C
index 03b9419db20c7f266bbb1ddb2565380952c4f201..ea7581903cc5fd8c8b24ff29b67607dde9f1e66b 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/PCG/PCG.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/PCG/PCG.C
@@ -134,17 +134,8 @@ Foam::lduMatrix::solverPerformance Foam::PCG::solve
 
             if (solverPerf.nIterations() == 0)
             {
-                #ifdef ICC_IA64_PREFETCH
-                #pragma ivdep
-                #endif
-
                 for (register label cell=0; cell<nCells; cell++)
                 {
-                    #ifdef ICC_IA64_PREFETCH
-                    __builtin_prefetch (&pAPtr[cell+96],0,1);
-                    __builtin_prefetch (&wAPtr[cell+96],0,1);
-                    #endif
-
                     pAPtr[cell] = wAPtr[cell];
                 }
             }
@@ -152,17 +143,8 @@ Foam::lduMatrix::solverPerformance Foam::PCG::solve
             {
                 scalar beta = wArA/wArAold;
 
-                #ifdef ICC_IA64_PREFETCH
-                #pragma ivdep
-                #endif
-
                 for (register label cell=0; cell<nCells; cell++)
                 {
-                    #ifdef ICC_IA64_PREFETCH
-                    __builtin_prefetch (&pAPtr[cell+96],0,1);
-                    __builtin_prefetch (&wAPtr[cell+96],0,1);
-                    #endif
-
                     pAPtr[cell] = wAPtr[cell] + beta*pAPtr[cell];
                 }
             }
@@ -182,19 +164,8 @@ Foam::lduMatrix::solverPerformance Foam::PCG::solve
 
             scalar alpha = wArA/wApA;
 
-            #ifdef ICC_IA64_PREFETCH
-            #pragma ivdep
-            #endif
-
             for (register label cell=0; cell<nCells; cell++)
             {
-                #ifdef ICC_IA64_PREFETCH
-                __builtin_prefetch (&pAPtr[cell+96],0,1);
-                __builtin_prefetch (&wAPtr[cell+96],0,1);
-                __builtin_prefetch (&psiPtr[cell+96],0,1);
-                __builtin_prefetch (&rAPtr[cell+96],0,1);
-                #endif
-
                 psiPtr[cell] += alpha*pAPtr[cell];
                 rAPtr[cell] -= alpha*wAPtr[cell];
             }
diff --git a/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixtures.C b/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixtures.C
index 022263ecc3423f0fc52668c747e8aa79fe987afa..0aced02618e2baaa73623f635396b8763a5583c1 100644
--- a/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixtures.C
+++ b/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixtures.C
@@ -34,6 +34,8 @@ Description
 
 #include "perfectGas.H"
 
+#include "eConstThermo.H"
+
 #include "hConstThermo.H"
 #include "janafThermo.H"
 #include "specieThermo.H"
@@ -68,6 +70,22 @@ makeBasicMixture
     perfectGas
 );
 
+makeBasicMixture
+(
+    pureMixture,
+    constTransport,
+    eConstThermo,
+    perfectGas
+);
+
+makeBasicMixture
+(
+    pureMixture,
+    sutherlandTransport,
+    eConstThermo,
+    perfectGas
+);
+
 makeBasicMixture
 (
     pureMixture,
diff --git a/src/thermophysicalModels/basic/psiThermo/ePsiThermo/ePsiThermos.C b/src/thermophysicalModels/basic/psiThermo/ePsiThermo/ePsiThermos.C
index 2849a29ea7fe3523acd2bf710958126da1bb926a..0517a06ec20498b1cf01e9ab211f1cb8be325ceb 100644
--- a/src/thermophysicalModels/basic/psiThermo/ePsiThermo/ePsiThermos.C
+++ b/src/thermophysicalModels/basic/psiThermo/ePsiThermo/ePsiThermos.C
@@ -28,7 +28,7 @@ License
 
 #include "perfectGas.H"
 
-#include "hConstThermo.H"
+#include "eConstThermo.H"
 #include "janafThermo.H"
 #include "specieThermo.H"
 
@@ -50,7 +50,7 @@ makeBasicPsiThermo
     ePsiThermo,
     pureMixture,
     constTransport,
-    hConstThermo,
+    eConstThermo,
     perfectGas
 );
 
@@ -59,7 +59,7 @@ makeBasicPsiThermo
     ePsiThermo,
     pureMixture,
     sutherlandTransport,
-    hConstThermo,
+    eConstThermo,
     perfectGas
 );
 
diff --git a/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.C b/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.C
index 8d62be816fbbe6806de8e0fada75ebfa8561879a..e13eb5b0ab3c77b8e520bc5ef9c006016cd92619 100644
--- a/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.C
+++ b/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.C
@@ -29,9 +29,10 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::eConstThermo::eConstThermo(Istream& is)
+template<class equationOfState>
+Foam::eConstThermo<equationOfState>::eConstThermo(Istream& is)
 :
-    specieThermo(is),
+    equationOfState(is),
     Cv_(readScalar(is)),
     Hf_(readScalar(is))
 {
@@ -41,9 +42,15 @@ Foam::eConstThermo::eConstThermo(Istream& is)
 
 // * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
 
-Foam::Ostream& Foam::operator<<(Ostream& os, const eConstThermo& ct)
+template<class equationOfState>
+Foam::Ostream& Foam::operator<<
+(
+    Ostream& os,
+    const eConstThermo<equationOfState>& ct
+)
 {
-    os << (const specieThermo&)ct << tab << ct.Cv_ << tab << ct.Hf_;
+    os  << static_cast<const equationOfState&>(ct) << tab
+        << ct.Cv_ << tab << ct.Hf_;
 
     os.check("Ostream& operator<<(Ostream& os, const eConstThermo& ct)");
     return os;
diff --git a/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.H b/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.H
index c01600eabdbc52d7b1df70b739305ac340fb568c..6d9bef74233c05173010b7595c627bb9d40eacc7 100644
--- a/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.H
+++ b/src/thermophysicalModels/specie/thermo/eConst/eConstThermo.H
@@ -26,8 +26,8 @@ Class
     Foam::eConstThermo
 
 Description
-    Constant properties thermodynamics package derived from the basic
-    thermo package data type specieThermo.
+    Constant properties thermodynamics package templated on an equation of
+    state
 
 SourceFiles
     eConstThermoI.H
@@ -86,12 +86,13 @@ Ostream& operator<<
 
 
 /*---------------------------------------------------------------------------*\
-                           Class eConstThermo Declaration
+                        Class eConstThermo Declaration
 \*---------------------------------------------------------------------------*/
 
+template<class equationOfState>
 class eConstThermo
 :
-    public specieThermo
+    public equationOfState
 {
     // Private data
 
@@ -104,7 +105,7 @@ class eConstThermo
         //- Construct from components
         inline eConstThermo
         (
-            const specieThermo& st,
+            const equationOfState& st,
             const scalar cv,
             const scalar hf
         );
@@ -147,20 +148,10 @@ public:
             inline scalar s(const scalar T) const;
 
 
-        // Some derived properties
-        // Other derived properties obtained from specieThermo base type
-
-            //- Temperature from Enthalpy given an initial temperature T0
-            inline scalar TH(const scalar h, const scalar T0) const;
-
-            //- Temperature from internal energy given an initial temperature T0
-            inline scalar TE(const scalar e, const scalar T0) const;
-
-
     // Member operators
 
-        inline void operator+=(const hConstThermo&);
-        inline void operator-=(const hConstThermo&);
+        inline void operator+=(const eConstThermo&);
+        inline void operator-=(const eConstThermo&);
 
 
     // Friend operators
@@ -194,7 +185,8 @@ public:
 
         friend Ostream& operator<< <equationOfState>
         (
-            Ostream&, const eConstThermo&
+            Ostream&,
+            const eConstThermo&
         );
 };
 
@@ -207,6 +199,10 @@ public:
 
 #include "eConstThermoI.H"
 
+#ifdef NoRepository
+#   include "eConstThermo.C"
+#endif
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #endif
diff --git a/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H b/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H
index aba6da1eef53a90a480ccc694c106be2a2170d6d..8e021c53ab403ba935b1dccfa4cd158edbc7a459 100644
--- a/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H
+++ b/src/thermophysicalModels/specie/thermo/eConst/eConstThermoI.H
@@ -26,14 +26,15 @@ License
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-inline Foam::eConstThermo::eConstThermo
+template<class equationOfState>
+inline Foam::eConstThermo<equationOfState>::eConstThermo
 (
-    const specieThermo& st,
+    const equationOfState& st,
     const scalar cv,
     const scalar hf
 )
 :
-    specieThermo(st),
+    equationOfState(st),
     Cv_(cv),
     Hf_(hf)
 {}
@@ -41,20 +42,21 @@ inline Foam::eConstThermo::eConstThermo
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-inline Foam::eConstThermo::eConstThermo
+template<class equationOfState>
+inline Foam::eConstThermo<equationOfState>::eConstThermo
 (
     const word& name,
-    const eConstThermo& ct
+    const eConstThermo<equationOfState>& ct
 )
 :
-    specieThermo(name, ct),
+    equationOfState(name, ct),
     Cv_(ct.Cv_),
     Hf_(ct.Hf_)
 {}
 
 
 template<class equationOfState>
-inline Foam::autoPtr<eConstThermo<equationOfState> >
+inline Foam::autoPtr<Foam::eConstThermo<equationOfState> >
 Foam::eConstThermo<equationOfState>::clone() const
 {
     return autoPtr<eConstThermo<equationOfState> >
@@ -65,7 +67,7 @@ Foam::eConstThermo<equationOfState>::clone() const
 
 
 template<class equationOfState>
-inline autoPtr<eConstThermo<equationOfState> >
+inline Foam::autoPtr<Foam::eConstThermo<equationOfState> >
 Foam::eConstThermo<equationOfState>::New(Istream& is)
 {
     return autoPtr<eConstThermo<equationOfState> >
@@ -77,19 +79,31 @@ Foam::eConstThermo<equationOfState>::New(Istream& is)
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-inline Foam::scalar Foam::eConstThermo::cp(const scalar) const
+template<class equationOfState>
+inline Foam::scalar Foam::eConstThermo<equationOfState>::cp
+(
+    const scalar
+) const
 {
-    return Cv_*W() + RR;
+    return Cv_*this->W() + specie::RR;
 }
 
 
-inline Foam::scalar Foam::eConstThermo::h(const scalar T) const
+template<class equationOfState>
+inline Foam::scalar Foam::eConstThermo<equationOfState>::h
+(
+    const scalar T
+) const
 {
-    return cp(T)*T + Hf_*W();
+    return cp(T)*T + Hf_*this->W();
 }
 
 
-inline Foam::scalar Foam::eConstThermo::hs(const scalar T) const
+template<class equationOfState>
+inline Foam::scalar Foam::eConstThermo<equationOfState>::hs
+(
+    const scalar T
+) const
 {
     return cp(T)*T;
 }
@@ -102,104 +116,126 @@ inline Foam::scalar Foam::eConstThermo<equationOfState>::hc() const
 }
 
 
-inline Foam::scalar Foam::eConstThermo::s(const scalar T) const
+template<class equationOfState>
+inline Foam::scalar Foam::eConstThermo<equationOfState>::s
+(
+    const scalar T
+) const
 {
     notImplemented("scalar eConstThermo::s(const scalar T) const");
     return T;
 }
 
 
-inline Foam::scalar Foam::eConstThermo::TH
+// * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
+
+template<class equationOfState>
+inline void Foam::eConstThermo<equationOfState>::operator+=
 (
-    const scalar h,
-    const scalar T0
-) const
+    const eConstThermo<equationOfState>& ct
+)
 {
-    return (h - Hf_)/Cp(T0);
-}
+    scalar molr1 = this->nMoles();
 
+    equationOfState::operator+=(ct);
 
-inline Foam::scalar Foam::eConstThermo::TE
-(
-    const scalar e,
-    const scalar
-) const
-{
-    return (e - Hf_)/Cv_;
+    molr1 /= this->nMoles();
+    scalar molr2 = ct.nMoles()/this->nMoles();
+
+    Cv_ = molr1*Cv_ + molr2*ct.Cv_;
+    Hf_ = molr1*Hf_ + molr2*ct.Hf_;
 }
 
 
-// * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
-
-inline Foam::eConstThermo& Foam::eConstThermo::operator=
+template<class equationOfState>
+inline void Foam::eConstThermo<equationOfState>::operator-=
 (
-    const eConstThermo& ct
+    const eConstThermo<equationOfState>& ct
 )
 {
-    specieThermo::operator=(ct);
+    scalar molr1 = this->nMoles();
 
-    Cv_ = ct.Cv_;
-    Hf_ = ct.Hf_;
+    equationOfState::operator-=(ct);
 
-    return *this;
+    molr1 /= this->nMoles();
+    scalar molr2 = ct.nMoles()/this->nMoles();
+
+    Cv_ = molr1*Cv_ - molr2*ct.Cv_;
+    Hf_ = molr1*Hf_ - molr2*ct.Hf_;
 }
 
 
 // * * * * * * * * * * * * * * * Friend Operators  * * * * * * * * * * * * * //
 
-inline Foam::eConstThermo Foam::operator+
+template<class equationOfState>
+inline Foam::eConstThermo<equationOfState> Foam::operator+
 (
-    const eConstThermo& ct1,
-    const eConstThermo& ct2
+    const eConstThermo<equationOfState>& ct1,
+    const eConstThermo<equationOfState>& ct2
 )
 {
-    specieThermo st(((const specieThermo&)ct1) + ((const specieThermo&)ct2));
+    equationOfState eofs
+    (
+        static_cast<const equationOfState&>(ct1)
+      + static_cast<const equationOfState&>(ct2)
+    );
 
-    return eConstThermo
+    return eConstThermo<equationOfState>
     (
-        st,
-        ct1.nMoles()/st.nMoles()*ct1.Cv_ + ct2.nMoles()/st.nMoles()*ct2.Cv_,
-        ct1.nMoles()/st.nMoles()*ct1.Hf_ + ct2.nMoles()/st.nMoles()*ct2.Hf_
+        eofs,
+        ct1.nMoles()/eofs.nMoles()*ct1.Cv_
+      + ct2.nMoles()/eofs.nMoles()*ct2.Cv_,
+        ct1.nMoles()/eofs.nMoles()*ct1.Hf_
+      + ct2.nMoles()/eofs.nMoles()*ct2.Hf_
     );
 }
 
 
-inline Foam::eConstThermo Foam::operator-
+template<class equationOfState>
+inline Foam::eConstThermo<equationOfState> Foam::operator-
 (
-    const eConstThermo& ct1,
-    const eConstThermo& ct2
+    const eConstThermo<equationOfState>& ct1,
+    const eConstThermo<equationOfState>& ct2
 )
 {
-    specieThermo st(((const specieThermo&)ct1) - ((const specieThermo&)ct2));
+    equationOfState eofs
+    (
+        static_cast<const equationOfState&>(ct1)
+      - static_cast<const equationOfState&>(ct2)
+    );
 
-    return eConstThermo
+    return eConstThermo<equationOfState>
     (
-        st,
-        ct1.nMoles()/st.nMoles()*ct1.Cv_ - ct2.nMoles()/st.nMoles()*ct2.Cv_,
-        ct1.nMoles()/st.nMoles()*ct1.Hf_ - ct2.nMoles()/st.nMoles()*ct2.Hf_
+        eofs,
+        ct1.nMoles()/eofs.nMoles()*ct1.Cv_
+      - ct2.nMoles()/eofs.nMoles()*ct2.Cv_,
+        ct1.nMoles()/eofs.nMoles()*ct1.Hf_
+      - ct2.nMoles()/eofs.nMoles()*ct2.Hf_
     );
 }
 
 
-inline Foam::eConstThermo Foam::operator*
+template<class equationOfState>
+inline Foam::eConstThermo<equationOfState> Foam::operator*
 (
     const scalar s,
-    const eConstThermo& ct
+    const eConstThermo<equationOfState>& ct
 )
 {
-    return eConstThermo
+    return eConstThermo<equationOfState>
     (
-        s*((const specieThermo&)ct),
+        s*static_cast<const equationOfState&>(ct),
         ct.Cv_,
         ct.Hf_
     );
 }
 
 
-inline Foam::eConstThermo Foam::operator==
+template<class equationOfState>
+inline Foam::eConstThermo<equationOfState> Foam::operator==
 (
-    const eConstThermo& ct1,
-    const eConstThermo& ct2
+    const eConstThermo<equationOfState>& ct1,
+    const eConstThermo<equationOfState>& ct2
 )
 {
     return ct2 - ct1;
diff --git a/tutorials/combustion/XiFoam/les/Allrun b/tutorials/combustion/XiFoam/les/Allrun
new file mode 100755
index 0000000000000000000000000000000000000000..e43b54e4e3cdb7855d57135780c0565913132761
--- /dev/null
+++ b/tutorials/combustion/XiFoam/les/Allrun
@@ -0,0 +1,17 @@
+#!/bin/sh
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+# Get application name from directory
+application="XiFoam"
+
+cases=" \
+pitzDaily \
+pitzDaily3D
+"
+
+for i in $cases; do
+    blockMesh -case $i
+    $application -case $i
+done
+
diff --git a/tutorials/combustion/XiFoam/les/pitzDaily/0/alphaSgs b/tutorials/combustion/XiFoam/les/pitzDaily/0/alphaSgs
new file mode 100644
index 0000000000000000000000000000000000000000..9a83c0337ed2a698047bce788505fcaf4fd037eb
--- /dev/null
+++ b/tutorials/combustion/XiFoam/les/pitzDaily/0/alphaSgs
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.5                                   |
+|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alphaSgs;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    inlet           
+    {
+        type            zeroGradient;
+    }
+
+    outlet          
+    {
+        type            zeroGradient;
+    }
+
+    upperWall       
+    {
+        type            zeroGradient;
+    }
+
+    lowerWall       
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBack    
+    {
+        type            empty;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/XiFoam/les/pitzDaily3D/0/alphaSgs b/tutorials/combustion/XiFoam/les/pitzDaily3D/0/alphaSgs
new file mode 100644
index 0000000000000000000000000000000000000000..c5331748aea22d1d09e92cbd2d3387342f312a82
--- /dev/null
+++ b/tutorials/combustion/XiFoam/les/pitzDaily3D/0/alphaSgs
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.5                                   |
+|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alphaSgs;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    inlet           
+    {
+        type            zeroGradient;
+    }
+
+    outlet          
+    {
+        type            zeroGradient;
+    }
+
+    upperWall       
+    {
+        type            zeroGradient;
+    }
+
+    lowerWall       
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBack    
+    {
+        type            cyclic;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/XiFoam/Allclean b/tutorials/combustion/XiFoam/ras/Allclean
similarity index 100%
rename from tutorials/combustion/XiFoam/Allclean
rename to tutorials/combustion/XiFoam/ras/Allclean
diff --git a/tutorials/combustion/XiFoam/Allrun b/tutorials/combustion/XiFoam/ras/Allrun
similarity index 100%
rename from tutorials/combustion/XiFoam/Allrun
rename to tutorials/combustion/XiFoam/ras/Allrun
diff --git a/tutorials/combustion/dieselFoam/aachenBomb/0/alphat b/tutorials/combustion/dieselFoam/aachenBomb/0/alphat
index 2684dd73c822be130389cc925a29ebd9cb627ec0..c56c4724ce2969ef2ccaa17e5b3344125efc1596 100644
--- a/tutorials/combustion/dieselFoam/aachenBomb/0/alphat
+++ b/tutorials/combustion/dieselFoam/aachenBomb/0/alphat
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -23,7 +23,7 @@ boundaryField
 {
     walls
     {
-        type            alphatWallFunction;
+        type            compressible::alphatWallFunction;
         value           uniform 0;
     }
 }
diff --git a/tutorials/combustion/dieselFoam/aachenBomb/0/epsilon b/tutorials/combustion/dieselFoam/aachenBomb/0/epsilon
index e9dd46eb33ab84ca1e8bab21d748bfc6f058750a..e38ed02784cfef654a658662ead0d66dd32c48a6 100644
--- a/tutorials/combustion/dieselFoam/aachenBomb/0/epsilon
+++ b/tutorials/combustion/dieselFoam/aachenBomb/0/epsilon
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -23,7 +23,7 @@ boundaryField
 {
     walls
     {
-        type            epsilonWallFunction;
+        type            compressible::epsilonWallFunction;
         value           uniform 90;
     }
 }
diff --git a/tutorials/combustion/dieselFoam/aachenBomb/0/k b/tutorials/combustion/dieselFoam/aachenBomb/0/k
index 251a39ce81061432f904f98f80de677eb38ebce6..b037171c72f46447a17c3aa8a16e71f5ae3acc3b 100644
--- a/tutorials/combustion/dieselFoam/aachenBomb/0/k
+++ b/tutorials/combustion/dieselFoam/aachenBomb/0/k
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -23,7 +23,7 @@ boundaryField
 {
     walls
     {
-        type            kQRWallFunction;
+        type            compressible::kQRWallFunction;
         value           uniform 1;
     }
 }
diff --git a/tutorials/combustion/dieselFoam/aachenBomb/0/mut b/tutorials/combustion/dieselFoam/aachenBomb/0/mut
index e687f9b8fa216ba2de2f97e045c11372525473ae..2750ce32ecd5ed962213674d95930ff9b34920c5 100644
--- a/tutorials/combustion/dieselFoam/aachenBomb/0/mut
+++ b/tutorials/combustion/dieselFoam/aachenBomb/0/mut
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/dieselFoam/aachenBomb/0/spray b/tutorials/combustion/dieselFoam/aachenBomb/0/spray
deleted file mode 100644
index c5f9cb2f59b6a48c85af4caac770e05dca1f3c3e..0000000000000000000000000000000000000000
--- a/tutorials/combustion/dieselFoam/aachenBomb/0/spray
+++ /dev/null
@@ -1,20 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
-|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    object      spray;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-(
-)
-
-// ************************************************************************* //
diff --git a/tutorials/combustion/dieselFoam/aachenBomb/constant/chemistryProperties b/tutorials/combustion/dieselFoam/aachenBomb/constant/chemistryProperties
index be340ec092624c3700ecdf023d551ed099f103da..72c8fd655e70457a8d5c5a2e6d71c6c8c111423e 100644
--- a/tutorials/combustion/dieselFoam/aachenBomb/constant/chemistryProperties
+++ b/tutorials/combustion/dieselFoam/aachenBomb/constant/chemistryProperties
@@ -15,9 +15,11 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+psiChemistryModel ODEChemistryModel<gasThermoPhysics>;
+
 chemistry       off;
 
-chemistrySolver ODE;
+chemistrySolver ode;
 
 initialChemicalTimeStep 1e-07;
 
@@ -32,7 +34,7 @@ EulerImplicitCoeffs
     equilibriumRateLimiter off;
 }
 
-ODECoeffs
+odeCoeffs
 {
     ODESolver       SIBS;
     eps             0.05;
diff --git a/tutorials/combustion/dieselFoam/aachenBomb/constant/thermophysicalProperties b/tutorials/combustion/dieselFoam/aachenBomb/constant/thermophysicalProperties
index 24238233850126a97429b47c579583a711ef9122..f94afe7312e74472fc63442c3c4e59e0c6794e81 100644
--- a/tutorials/combustion/dieselFoam/aachenBomb/constant/thermophysicalProperties
+++ b/tutorials/combustion/dieselFoam/aachenBomb/constant/thermophysicalProperties
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hMixtureThermo<reactingMixture>;
+thermoType      hPsiMixtureThermo<reactingMixture<gasThermoPhysics>>;
 
 CHEMKINFile     "$FOAM_CASE/chemkin/chem.inp";
 
diff --git a/tutorials/compressible/rhoPimpleFoam/angledDuct/0/alphat b/tutorials/compressible/rhoPimpleFoam/angledDuct/0/alphat
index f609fa6c14c41bba0ec2726af2cf56a9ca8c949a..dc2104f83c5ce3f90987cad077de403fcd15988e 100644
--- a/tutorials/compressible/rhoPimpleFoam/angledDuct/0/alphat
+++ b/tutorials/compressible/rhoPimpleFoam/angledDuct/0/alphat
@@ -23,22 +23,22 @@ boundaryField
 {
     front
     {
-        type            alphatWallFunction;
+        type            compressible::alphatWallFunction;
         value           uniform 0;
     }
     back
     {
-        type            alphatWallFunction;
+        type            compressible::alphatWallFunction;
         value           uniform 0;
     }
     wall
     {
-        type            alphatWallFunction;
+        type            compressible::alphatWallFunction;
         value           uniform 0;
     }
     porosityWall
     {
-        type            alphatWallFunction;
+        type            compressible::alphatWallFunction;
         value           uniform 0;
     }
     inlet
diff --git a/tutorials/compressible/rhoPimpleFoam/angledDuct/0/epsilon b/tutorials/compressible/rhoPimpleFoam/angledDuct/0/epsilon
index 502e0489570c5c063dd34ce656009712bd077300..e4dccfe57777d09934d55a61d67f94e2917585f0 100644
--- a/tutorials/compressible/rhoPimpleFoam/angledDuct/0/epsilon
+++ b/tutorials/compressible/rhoPimpleFoam/angledDuct/0/epsilon
@@ -23,27 +23,27 @@ boundaryField
 {
     front
     {
-        type            epsilonWallFunction;
+        type            compressible::epsilonWallFunction;
         value           uniform 200;
     }
     back
     {
-        type            epsilonWallFunction;
+        type            compressible::epsilonWallFunction;
         value           uniform 200;
     }
     wall
     {
-        type            epsilonWallFunction;
+        type            compressible::epsilonWallFunction;
         value           uniform 200;
     }
     porosityWall
     {
-        type            epsilonWallFunction;
+        type            compressible::epsilonWallFunction;
         value           uniform 200;
     }
     inlet
     {
-        type            turbulentMixingLengthDissipationRateInlet;
+        type            compressible::turbulentMixingLengthDissipationRateInlet;
         mixingLength    0.005;
         value           uniform 200;
     }
diff --git a/tutorials/compressible/rhoPimpleFoam/angledDuct/0/k b/tutorials/compressible/rhoPimpleFoam/angledDuct/0/k
index 6171b9506b8a48d2de911a5c485b6c2bd13d6028..36be49f2ea41fa4546f2b605b525f151f624a334 100644
--- a/tutorials/compressible/rhoPimpleFoam/angledDuct/0/k
+++ b/tutorials/compressible/rhoPimpleFoam/angledDuct/0/k
@@ -23,22 +23,22 @@ boundaryField
 {
     front
     {
-        type            kQRWallFunction;
+        type            compressible::kQRWallFunction;
         value           uniform 1;
     }
     back
     {
-        type            kQRWallFunction;
+        type            compressible::kQRWallFunction;
         value           uniform 1;
     }
     wall
     {
-        type            kQRWallFunction;
+        type            compressible::kQRWallFunction;
         value           uniform 1;
     }
     porosityWall
     {
-        type            kQRWallFunction;
+        type            compressible::kQRWallFunction;
         value           uniform 1;
     }
     inlet
diff --git a/tutorials/compressible/sonicFoam/Allrun b/tutorials/compressible/sonicFoam/Allrun
new file mode 100755
index 0000000000000000000000000000000000000000..4f1a1e464a13287c4b685a7fdc8fc94ae46230b9
--- /dev/null
+++ b/tutorials/compressible/sonicFoam/Allrun
@@ -0,0 +1,5 @@
+#!/bin/sh
+set -x
+
+(cd laminar && ./Allrun)
+(cd ras && ./Allrun)
diff --git a/tutorials/compressible/sonicFoam/laminar/Allrun b/tutorials/compressible/sonicFoam/laminar/Allrun
new file mode 100755
index 0000000000000000000000000000000000000000..573ff3a12dff2b3e37cb14a13f0d7ed7454b3abf
--- /dev/null
+++ b/tutorials/compressible/sonicFoam/laminar/Allrun
@@ -0,0 +1,22 @@
+#!/bin/sh
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+# Get application name from directory
+application=sonicFoam
+
+cases=" \
+forwardStep \
+shockTube \
+"
+for case in $cases
+do
+    (cd $case && runApplication blockMesh)
+#
+    if [ "$case" = "shockTube" ] ; then
+        (cd $case && ./Allrun)
+    else
+        (cd $case && runApplication $application)
+    fi
+#
+done
diff --git a/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties
new file mode 100644
index 0000000000000000000000000000000000000000..82d43de5709a190f9567de1b5d3e6b9abe8e119a
--- /dev/null
+++ b/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermophysicalProperties
@@ -0,0 +1,23 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      thermophysicalProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType      ePsiThermo<pureMixture<constTransport<specieThermo<eConstThermo<perfectGas>>>>>;
+
+mixture         air 1 11640.31 1.78571 0 0 0.7;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/sonicFoam/laminar/shockTube/constant/transportProperties b/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/turbulenceProperties
similarity index 84%
rename from tutorials/compressible/sonicFoam/laminar/shockTube/constant/transportProperties
rename to tutorials/compressible/sonicFoam/laminar/forwardStep/constant/turbulenceProperties
index 1e9d5be60c285c2403250e1961ee8d1552dd14a8..c2c3b28a1b4e8f4a2cae55f58bd61f9b1a67b488 100644
--- a/tutorials/compressible/sonicFoam/laminar/shockTube/constant/transportProperties
+++ b/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/turbulenceProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -11,11 +11,11 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      transportProperties;
+    object      turbulenceProperties;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-mu              mu [ 1 -1 -1 0 0 0 0 ] 0;
+simulationType  laminar;
 
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/sonicFoam/laminar/forwardStep/system/fvSchemes b/tutorials/compressible/sonicFoam/laminar/forwardStep/system/fvSchemes
index 1c36c50aa67708935b325763ac50f49fc7fc4a44..6bebe35dfbbc69607c1b0588b7573526be914b21 100644
--- a/tutorials/compressible/sonicFoam/laminar/forwardStep/system/fvSchemes
+++ b/tutorials/compressible/sonicFoam/laminar/forwardStep/system/fvSchemes
@@ -30,17 +30,19 @@ gradSchemes
 divSchemes
 {
     default         none;
-    div(phi,U)      Gauss limitedLinearV 1;
+    div(phi,U)      Gauss upwind;
     div(phid,p)     Gauss limitedLinear 1;
     div(phi,e)      Gauss limitedLinear 1;
+    div(phiU,p)     Gauss limitedLinear 1;
+    div((muEff*dev2(grad(U).T()))) Gauss linear 1;
 }
 
 laplacianSchemes
 {
     default         none;
-    laplacian(mu,U) Gauss linear corrected;
-    laplacian(mu,e) Gauss linear corrected;
     laplacian((rho*(1|A(U))),p) Gauss linear corrected;
+    laplacian(muEff,U) Gauss linear corrected;
+    laplacian(alphaEff,e) Gauss linear corrected;
 }
 
 interpolationSchemes
diff --git a/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties
new file mode 100644
index 0000000000000000000000000000000000000000..2560f39757b887a4b0539ac5a9e4972df349cf7b
--- /dev/null
+++ b/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermophysicalProperties
@@ -0,0 +1,23 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      thermophysicalProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType      ePsiThermo<pureMixture<constTransport<specieThermo<eConstThermo<perfectGas>>>>>;
+
+mixture         air 1 28.9 717.5 0 0 0.7;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/transportProperties b/tutorials/compressible/sonicFoam/laminar/shockTube/constant/turbulenceProperties
similarity index 84%
rename from tutorials/compressible/sonicFoam/laminar/forwardStep/constant/transportProperties
rename to tutorials/compressible/sonicFoam/laminar/shockTube/constant/turbulenceProperties
index 1e9d5be60c285c2403250e1961ee8d1552dd14a8..c2c3b28a1b4e8f4a2cae55f58bd61f9b1a67b488 100644
--- a/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/transportProperties
+++ b/tutorials/compressible/sonicFoam/laminar/shockTube/constant/turbulenceProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -11,11 +11,11 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      transportProperties;
+    object      turbulenceProperties;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-mu              mu [ 1 -1 -1 0 0 0 0 ] 0;
+simulationType  laminar;
 
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/sonicFoam/laminar/shockTube/system/fvSchemes b/tutorials/compressible/sonicFoam/laminar/shockTube/system/fvSchemes
index deef4abd2614ed5708f90773817385c711ea18e4..6bebe35dfbbc69607c1b0588b7573526be914b21 100644
--- a/tutorials/compressible/sonicFoam/laminar/shockTube/system/fvSchemes
+++ b/tutorials/compressible/sonicFoam/laminar/shockTube/system/fvSchemes
@@ -33,14 +33,16 @@ divSchemes
     div(phi,U)      Gauss upwind;
     div(phid,p)     Gauss limitedLinear 1;
     div(phi,e)      Gauss limitedLinear 1;
+    div(phiU,p)     Gauss limitedLinear 1;
+    div((muEff*dev2(grad(U).T()))) Gauss linear 1;
 }
 
 laplacianSchemes
 {
     default         none;
-    laplacian(mu,U) Gauss linear corrected;
-    laplacian(mu,e) Gauss linear corrected;
     laplacian((rho*(1|A(U))),p) Gauss linear corrected;
+    laplacian(muEff,U) Gauss linear corrected;
+    laplacian(alphaEff,e) Gauss linear corrected;
 }
 
 interpolationSchemes
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties
index 97425177af7947579a6656cf4e079a95f47f0387..5580ffd632eb5654f28b94c1895a31d40aff2e8c 100644
--- a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties
@@ -15,9 +15,9 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hPsiThermo<pureMixture<constTransport<specieThermo<hConstThermo<perfectGas>>>>>;
+thermoType      ePsiThermo<pureMixture<constTransport<specieThermo<eConstThermo<perfectGas>>>>>;
 
-mixture         air 1 28.9 1000 2.544e+06 1.8e-05 0.7;
+mixture         air 1 28.9 717.5 0 1.8e-05 0.7;
 
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermodynamicProperties b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/turbulenceProperties
similarity index 79%
rename from tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermodynamicProperties
rename to tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/turbulenceProperties
index 99575bf65f9fdb7cb344ff2a4c3b245e342c8b7e..3721a46a2ead37eb2bf10434bcde59afa9fe9bf6 100644
--- a/tutorials/compressible/sonicFoam/laminar/shockTube/constant/thermodynamicProperties
+++ b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/turbulenceProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -11,13 +11,11 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      thermodynamicProperties;
+    object      turbulenceProperties;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Cv              Cv [ 0 2 -2 -1 0 0 0 ] 717.5;
-
-R               R [ 0 2 -2 -1 0 0 0 ] 287;
+simulationType  RASModel;
 
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/controlDict b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/controlDict
index ce2e9218c9147050f7603bc262f792b96c0dd5d6..aad6ecd97e30ebec71a08d33a00af3cdc2d8d691 100644
--- a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/controlDict
+++ b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/controlDict
@@ -49,7 +49,12 @@ functions
     {
         type        forceCoeffs;
         functionObjectLibs ( "libforces.so" );
-        patches     ( WALL10 );
+        outputControl timeStep;
+        outputInterval 1;
+        patches
+        (
+            WALL10
+        );
         pName       p;
         UName       U;
         log         true;
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/fvSchemes b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/fvSchemes
index 0cab17b88eec287ffaaa417e472a94fefbc2d732..444443d62d3df4f18f9189082ba3d4f6b18c613c 100644
--- a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/fvSchemes
+++ b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/fvSchemes
@@ -35,7 +35,7 @@ divSchemes
     div(R)          Gauss linear;
     div(phid,p)     Gauss limitedLinear 1;
     div(phiU,p)     Gauss limitedLinear 1;
-    div(phi,h)      Gauss limitedLinear 1;
+    div(phi,e)      Gauss limitedLinear 1;
     div((muEff*dev2(grad(U).T()))) Gauss linear;
 }
 
@@ -47,7 +47,7 @@ laplacianSchemes
     laplacian(DREff,R) Gauss linear limited 0.5;
     laplacian(DepsilonEff,epsilon) Gauss linear limited 0.5;
     laplacian((rho*(1|A(U))),p) Gauss linear limited 0.5;
-    laplacian(alphaEff,h) Gauss linear limited 0.5;
+    laplacian(alphaEff,e) Gauss linear limited 0.5;
 }
 
 interpolationSchemes
@@ -63,7 +63,7 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    p               ;
+    p;
 }
 
 
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/fvSolution b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/fvSolution
index a1782db6853bdb92132e5fc1a5e57cffb57a091f..d46dcd13cf44c7d474ea2f11965f7e2cc907cada 100644
--- a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/fvSolution
+++ b/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/fvSolution
@@ -41,7 +41,7 @@ solvers
         relTol          0;
     }
 
-    h
+    e 
     {
         solver          PBiCG;
         preconditioner  DILU;
diff --git a/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties
index 39b28b36815c84a120d9da22b489a21026269c29..5580ffd632eb5654f28b94c1895a31d40aff2e8c 100644
--- a/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties
+++ b/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -15,9 +15,9 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      hPsiThermo<pureMixture<constTransport<specieThermo<hConstThermo<perfectGas>>>>>;
+thermoType      ePsiThermo<pureMixture<constTransport<specieThermo<eConstThermo<perfectGas>>>>>;
 
-mixture         air 1 28.9 1300 2.544e+06 1.84e-05 0.7;
+mixture         air 1 28.9 717.5 0 1.8e-05 0.7;
 
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermodynamicProperties b/tutorials/compressible/sonicFoam/ras/prism/constant/turbulenceProperties
similarity index 79%
rename from tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermodynamicProperties
rename to tutorials/compressible/sonicFoam/ras/prism/constant/turbulenceProperties
index c6bf31c073b282576473751b3d19f08f877cb84a..3721a46a2ead37eb2bf10434bcde59afa9fe9bf6 100644
--- a/tutorials/compressible/sonicFoam/laminar/forwardStep/constant/thermodynamicProperties
+++ b/tutorials/compressible/sonicFoam/ras/prism/constant/turbulenceProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -11,13 +11,11 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      thermodynamicProperties;
+    object      turbulenceProperties;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Cv              Cv [ 0 2 -2 -1 0 0 0 ] 1.78571;
-
-R               R [ 0 2 -2 -1 0 0 0 ] 0.714286;
+simulationType  RASModel;
 
 
 // ************************************************************************* //
diff --git a/tutorials/compressible/sonicFoam/ras/prism/system/fvSchemes b/tutorials/compressible/sonicFoam/ras/prism/system/fvSchemes
index 7b3c03466f4a90b221e27fd07136ba28a964021b..9737d97c289fa4fbab2e69809936f7e094fc7463 100644
--- a/tutorials/compressible/sonicFoam/ras/prism/system/fvSchemes
+++ b/tutorials/compressible/sonicFoam/ras/prism/system/fvSchemes
@@ -35,7 +35,7 @@ divSchemes
     div(R)          Gauss linear;
     div(phid,p)     Gauss limitedLinear 1;
     div(phiU,p)     Gauss limitedLinear 1;
-    div(phi,h)      Gauss limitedLinear 1;
+    div(phi,e)      Gauss limitedLinear 1;
     div((muEff*dev2(grad(U).T()))) Gauss linear;
 }
 
@@ -47,7 +47,7 @@ laplacianSchemes
     laplacian(DREff,R) Gauss linear corrected;
     laplacian(DepsilonEff,epsilon) Gauss linear corrected;
     laplacian((rho*(1|A(U))),p) Gauss linear corrected;
-    laplacian(alphaEff,h) Gauss linear corrected;
+    laplacian(alphaEff,e) Gauss linear corrected;
 }
 
 interpolationSchemes
@@ -63,7 +63,7 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    p               ;
+    p;
 }
 
 
diff --git a/tutorials/compressible/sonicFoam/ras/prism/system/fvSolution b/tutorials/compressible/sonicFoam/ras/prism/system/fvSolution
index 5341a980f476377d047e400880c6756dafccccc2..5ff77210a9690153b90dde73e1370197d85d7cbe 100644
--- a/tutorials/compressible/sonicFoam/ras/prism/system/fvSolution
+++ b/tutorials/compressible/sonicFoam/ras/prism/system/fvSolution
@@ -41,7 +41,7 @@ solvers
         relTol          0;
     }
 
-    h
+    e 
     {
         solver          PBiCG;
         preconditioner  DILU;
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/system/fvSolution b/tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/system/fvSolution
index 9ff08c3657a4d84256fde4866772cbca40ae5dcf..c543e875278062213cdf99ae620a9d1b1810c10f 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/system/fvSolution
+++ b/tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/system/fvSolution
@@ -76,9 +76,9 @@ SIMPLE
 relaxationFactors
 {
     rho             1;
-    p               0.3;
-    U               0.7;
-    h               0.1;
+    p               0.7;
+    U               0.2;
+    h               0.7;
     k               0.7;
     epsilon         0.7;
     R               0.7;
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/p b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/p
index f200e3eeb0f918f10cf34f5b87e5d04abd76b21d..bb1ff51259ac287aadde6157a1719177c2bfdb7c 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/p
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/p
@@ -22,25 +22,25 @@ boundaryField
 {
     floor
     {
-        type            calculated;
+        type            fixedFluxBuoyantPressure;
         value           uniform 100000;
     }
 
     ceiling
     {
-        type            calculated;
+        type            fixedFluxBuoyantPressure;
         value           uniform 100000;
     }
 
     fixedWalls
     {
-        type            calculated;
+        type            fixedFluxBuoyantPressure;
         value           uniform 100000;
     }
 
     box
     {
-        type            calculated;
+        type            fixedFluxBuoyantPressure;
         value           uniform 100000;
     }
 }
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/pd b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/pd
deleted file mode 100644
index 1841d7882f5c06e25080901cd800391c09d11868..0000000000000000000000000000000000000000
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/pd
+++ /dev/null
@@ -1,48 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
-|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       volScalarField;
-    object      pd;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-dimensions      [1 -1 -2 0 0 0 0];
-
-internalField   uniform 0;
-
-boundaryField
-{
-    floor
-    {
-        type            fixedFluxBuoyantPressure;
-        value           uniform 0;
-    }
-
-    ceiling
-    {
-        type            fixedFluxBuoyantPressure;
-        value           uniform 0;
-    }
-
-    fixedWalls
-    {
-        type            fixedFluxBuoyantPressure;
-        value           uniform 0;
-    }
-
-    box
-    {
-        type            fixedFluxBuoyantPressure;
-        value           uniform 0;
-    }
-}
-
-// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/fvSchemes b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/fvSchemes
index 2263c0977531361f056a900481ca7409854ed755..cd290308eb8752ef4ba6ef50fe5e3a17a2aba085 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/fvSchemes
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/fvSchemes
@@ -41,7 +41,7 @@ laplacianSchemes
 {
     default         none;
     laplacian(muEff,U) Gauss linear corrected;
-    laplacian((rho*(1|A(U))),pd) Gauss linear corrected;
+    laplacian((rho*(1|A(U))),p) Gauss linear corrected;
     laplacian(alphaEff,h) Gauss linear corrected;
     laplacian(DkEff,k) Gauss linear corrected;
     laplacian(DepsilonEff,epsilon) Gauss linear corrected;
@@ -62,7 +62,7 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
+    p;
 }
 
 
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/fvSolution b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/fvSolution
index f6c1f9453a3985e9e77725582bd8f113f91cf78a..25a07616b314a40fd7a0dc43cfa299b9ec71f295 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/fvSolution
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/system/fvSolution
@@ -17,7 +17,7 @@ FoamFile
 
 solvers
 {
-    pd
+    p
     {
         solver          PCG;
         preconditioner  DIC;
@@ -69,14 +69,14 @@ solvers
 SIMPLE
 {
     nNonOrthogonalCorrectors 0;
-    pdRefCell       0;
-    pdRefValue      0;
+    pRefCell       0;
+    pRefValue      0;
 }
 
 relaxationFactors
 {
     rho             1;
-    pd              0.3;
+    p               0.3;
     U               0.7;
     h               0.7;
     k               0.7;
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/p b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/p
index f200e3eeb0f918f10cf34f5b87e5d04abd76b21d..bb1ff51259ac287aadde6157a1719177c2bfdb7c 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/p
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/p
@@ -22,25 +22,25 @@ boundaryField
 {
     floor
     {
-        type            calculated;
+        type            fixedFluxBuoyantPressure;
         value           uniform 100000;
     }
 
     ceiling
     {
-        type            calculated;
+        type            fixedFluxBuoyantPressure;
         value           uniform 100000;
     }
 
     fixedWalls
     {
-        type            calculated;
+        type            fixedFluxBuoyantPressure;
         value           uniform 100000;
     }
 
     box
     {
-        type            calculated;
+        type            fixedFluxBuoyantPressure;
         value           uniform 100000;
     }
 }
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/pd b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/pd
deleted file mode 100644
index 1841d7882f5c06e25080901cd800391c09d11868..0000000000000000000000000000000000000000
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/0/pd
+++ /dev/null
@@ -1,48 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
-|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       volScalarField;
-    object      pd;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-dimensions      [1 -1 -2 0 0 0 0];
-
-internalField   uniform 0;
-
-boundaryField
-{
-    floor
-    {
-        type            fixedFluxBuoyantPressure;
-        value           uniform 0;
-    }
-
-    ceiling
-    {
-        type            fixedFluxBuoyantPressure;
-        value           uniform 0;
-    }
-
-    fixedWalls
-    {
-        type            fixedFluxBuoyantPressure;
-        value           uniform 0;
-    }
-
-    box
-    {
-        type            fixedFluxBuoyantPressure;
-        value           uniform 0;
-    }
-}
-
-// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/fvSchemes b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/fvSchemes
index 0800e9f9323d8477caa278e74075c327f307206a..ee909d216c664b3d7ac374a3cb0cb9b79754ac02 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/fvSchemes
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/fvSchemes
@@ -42,7 +42,7 @@ laplacianSchemes
 {
     default         none;
     laplacian(muEff,U) Gauss linear corrected;
-    laplacian((rho*(1|A(U))),pd) Gauss linear corrected;
+    laplacian((rho*(1|A(U))),p) Gauss linear corrected;
     laplacian(alphaEff,h) Gauss linear corrected;
     laplacian(DkEff,k) Gauss linear corrected;
     laplacian(DepsilonEff,epsilon) Gauss linear corrected;
@@ -63,7 +63,7 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
+    p;
 }
 
 
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/fvSolution b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/fvSolution
index a5d6208674369243cbae66f6912c317406ef60d3..685132185bffc4cc62e02c64eacc88582fbd3f4c 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/fvSolution
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM/system/fvSolution
@@ -17,7 +17,7 @@ FoamFile
 
 solvers
 {
-    pd
+    p
     {
         solver          GAMG;
         tolerance       1e-06;
@@ -73,14 +73,14 @@ solvers
 SIMPLE
 {
     nNonOrthogonalCorrectors 0;
-    pdRefCell       0;
-    pdRefValue      0;
+    pRefCell       0;
+    pRefValue      0;
 }
 
 relaxationFactors
 {
     rho             1.0;
-    pd              0.3;
+    p               0.3;
     U               0.7;
     h               0.7;
     k               0.7;
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun
index 1fce68e81c1dad9bb03027069d2cacfc6df06c26..c3c4b5e504a38eb0b761783bd9d0dd0dd4c396eb 100755
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun
@@ -15,13 +15,13 @@ runApplication splitMeshRegions -cellZones
 
 for i in bottomAir topAir heater leftSolid rightSolid
 do
-   changeDictionary -region $i
+   changeDictionary -region $i >& log.changeDictionary.$i
 done
 
 # remove fluid fields from solid regions (important for post-processing)
 for i in heater leftSolid rightSolid
 do
-   rm -f 0*/$i/{mut,alphat,epsilon,k,p,pd,U}
+   rm -f 0*/$i/{mut,alphat,epsilon,k,p,p,U}
 done
 
 # remove solid fields from fluid regions (important for post-processing)
@@ -37,7 +37,7 @@ done
 # Decompose
 for i in bottomAir topAir heater leftSolid rightSolid
 do
-   decomposePar -region $i
+   decomposePar -region $i >& log.decomposePar.$i
 done
 
 # Run
@@ -47,7 +47,7 @@ runParallel chtMultiRegionFoam 4 system/machines
 # Reconstruct
 for i in bottomAir topAir heater leftSolid rightSolid
 do
-   reconstructPar -region $i
+   reconstructPar -region $i >& log.reconstructPar.$i
 done
 
 
diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/makeMesh b/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/makeMesh
index b0be10d8e5f2b0525cec8f23c93585fde73f5879..b4fc1a22ef1aa0decb5ae200a0ada926514b79ab 100755
--- a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/makeMesh
+++ b/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/makeMesh
@@ -1,11 +1,13 @@
 #!/bin/sh
+set -x
 
 m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict
-blockMesh
-cellSet
+blockMesh >& log.blockMesh
+cellSet >& log.cellSet
+
 #- MRF determines its own faceZone if not supplied
 #cp system/faceSetDict_rotorFaces system/faceSetDict
 #faceSet
 #cp system/faceSetDict_noBoundaryFaces system/faceSetDict
 #faceSet
-setsToZones -noFlipMap
+setsToZones -noFlipMap >& log.setsToZones
diff --git a/tutorials/lagrangian/reactingParcelFoam/evaporationTest/constant/radiationProperties b/tutorials/lagrangian/reactingParcelFoam/evaporationTest/constant/radiationProperties
index 82b67c9f1fe0ea568fae92698b8891391df51b10..ca03722b1cc634848a57607c2583bbf86f60461a 100644
--- a/tutorials/lagrangian/reactingParcelFoam/evaporationTest/constant/radiationProperties
+++ b/tutorials/lagrangian/reactingParcelFoam/evaporationTest/constant/radiationProperties
@@ -17,7 +17,7 @@ FoamFile
 
 radiation       off;
 
-radiationModel  noRadiation;
+radiationModel  none;
 
 solverFreq      10;
 
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/Make/options b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/Make/options
index cffe6f344a148d8b60b35ccb42990542b8c1cfcc..2f17d01ffb408994955aba9bdbc6836635eec207 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/Make/options
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/Make/options
@@ -4,9 +4,10 @@ EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
     -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
     -llagrangian \
@@ -15,7 +16,7 @@ EXE_LIBS = \
     -lmeshTools \
     -lthermophysicalFunctions \
     -lbasicThermophysicalModels \
-    -lcombustionThermophysicalModels \
+    -lreactionThermophysicalModels \
     -lspecie \
     -lradiation \
     -lcompressibleRASModels \
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/UEqn.H b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/UEqn.H
index 4d58a14da89574c12d4162e343f98eba5cf7085f..5f2e597a152ef5c08f811d1f374326db15a7ed2a 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/UEqn.H
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/UEqn.H
@@ -4,8 +4,8 @@
       + fvm::div(phi, U)
       + turbulence->divDevRhoReff(U)
      ==
-        thermoCloud1.SU1()
-      + kinematicCloud1.SU1()
+        thermoCloud1.SU()
+      + kinematicCloud1.SU()
       + rho.dimensionedInternalField()*g
     );
 
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/createClouds.H b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/createClouds.H
index bdf17e19efcdb715b5f7da5c01e96052ae41645f..ff41634a4ef48e45c45841861a35d08dd35a0f9e 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/createClouds.H
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/createClouds.H
@@ -5,7 +5,7 @@
         rho,
         U,
         g,
-        thermo()
+        thermo
     );
 
     Info<< "Constructing kinematicCloud1" << endl;
@@ -14,7 +14,7 @@
         "kinematicCloud1",
         rho,
         U,
-        thermo().mu(),
+        thermo.mu(),
         g
     );
 
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/createFields.H b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/createFields.H
index b07398a0314073ca5d677d4e7fc25362463dc03b..cebd44cfd4041042584f6706484083b3a4dad9b0 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/createFields.H
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/createFields.H
@@ -1,13 +1,14 @@
     Info<< "Reading thermophysical properties\n" << endl;
 
-    autoPtr<basicThermo> thermo
+    autoPtr<basicPsiThermo> pThermo
     (
-        basicThermo::New(mesh)
+        basicPsiThermo::New(mesh)
     );
+    basicPsiThermo& thermo = pThermo();
 
-    volScalarField& p = thermo->p();
-    volScalarField& h = thermo->h();
-    const volScalarField& psi = thermo->psi();
+    volScalarField& p = thermo.p();
+    volScalarField& h = thermo.h();
+    const volScalarField& psi = thermo.psi();
 
     volScalarField rho
     (
@@ -19,7 +20,7 @@
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
-        thermo->rho()
+        thermo.rho()
     );
 
     Info<< "\nReading field U\n" << endl;
@@ -48,7 +49,7 @@
             rho,
             U,
             phi,
-            thermo()
+            thermo
         )
     );
 
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/hEqn.H b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/hEqn.H
index 5359c9c2cecae01b52923ff14943cc4a1373d598..2b3b60ce980cd23324343c7647de47caba0658cf 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/hEqn.H
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/hEqn.H
@@ -6,12 +6,12 @@
       - fvm::laplacian(turbulence->alphaEff(), h)
      ==
         DpDt
-      + thermoCloud1.Sh1()
+      + thermoCloud1.Sh()
     );
 
     hEqn.relax();
 
     hEqn.solve();
 
-    thermo->correct();
+    thermo.correct();
 }
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/pEqn.H b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/pEqn.H
index b506245034010d76f0ad0fb87dd22c8b559f5597..9443f909a356699185bfbc8497cf46e26fd1ed3b 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/pEqn.H
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/pEqn.H
@@ -1,4 +1,4 @@
-rho = thermo->rho();
+rho = thermo.rho();
 
 volScalarField rUA = 1.0/UEqn.A();
 U = rUA*UEqn.H();
@@ -8,7 +8,7 @@ if (transonic)
     surfaceScalarField phid
     (
         "phid",
-        fvc::interpolate(thermo->psi())
+        fvc::interpolate(psi)
        *(
             (fvc::interpolate(U) & mesh.Sf())
           + fvc::ddtPhiCorr(rUA, rho, U, phi)
@@ -35,8 +35,8 @@ if (transonic)
 else
 {
     phi =
-        fvc::interpolate(rho)*
-        (
+        fvc::interpolate(rho)
+       *(
             (fvc::interpolate(U) & mesh.Sf())
           + fvc::ddtPhiCorr(rUA, rho, U, phi)
         );
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam.C b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam.C
index 1082636303c6891d00c76806b9d085de7b097980..77715fd48c1905eb01642ddefb02aaac1338e0db 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam.C
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam/rhoPisoTwinParcelFoam.C
@@ -31,7 +31,7 @@ Description
 \*---------------------------------------------------------------------------*/
 
 #include "fvCFD.H"
-#include "basicThermo.H"
+#include "basicPsiThermo.H"
 #include "turbulenceModel.H"
 
 #include "basicThermoCloud.H"
@@ -41,62 +41,59 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "setRootCase.H"
 
-#   include "setRootCase.H"
+    #include "createTime.H"
+    #include "createMesh.H"
+    #include "readEnvironmentalProperties.H"
+    #include "createFields.H"
+    #include "createClouds.H"
+    #include "readPISOControls.H"
+    #include "initContinuityErrs.H"
+    #include "readTimeControls.H"
+    #include "compressibleCourantNo.H"
+    #include "setInitialDeltaT.H"
 
-#   include "createTime.H"
-#   include "createMesh.H"
-#   include "readEnvironmentalProperties.H"
-#   include "createFields.H"
-#   include "createClouds.H"
-#   include "readPISOControls.H"
-#   include "initContinuityErrs.H"
-#   include "readTimeControls.H"
-#   include "compressibleCourantNo.H"
-#   include "setInitialDeltaT.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
     Info<< "\nStarting time loop\n" << endl;
 
     while (runTime.run())
     {
-#       include "readTimeControls.H"
-#       include "readPISOControls.H"
-#       include "compressibleCourantNo.H"
-#       include "setDeltaT.H"
+        #include "readTimeControls.H"
+        #include "readPISOControls.H"
+        #include "compressibleCourantNo.H"
+        #include "setDeltaT.H"
 
         runTime++;
 
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
-        Info<< "Evolving thermoCloud1" << endl;
         thermoCloud1.evolve();
         thermoCloud1.info();
 
-        Info<< "Evolving kinematicCloud1" << endl;
         kinematicCloud1.evolve();
         kinematicCloud1.info();
 
 
-#       include "rhoEqn.H"
+        #include "rhoEqn.H"
 
         // --- PIMPLE loop
         for (int ocorr=1; ocorr<=nOuterCorr; ocorr++)
         {
-#           include "UEqn.H"
+            #include "UEqn.H"
 
             // --- PISO loop
             for (int corr=1; corr<=nCorr; corr++)
             {
-#               include "hEqn.H"
-#               include "pEqn.H"
+                #include "hEqn.H"
+                #include "pEqn.H"
             }
         }
 
         turbulence->correct();
 
-        rho = thermo->rho();
+        rho = thermo.rho();
 
         runTime.write();
 
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/0/epsilon b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/0/epsilon
index ec63ed16726be65c6d5561d1b31ab88fd3ef8581..9fcf588c0c292537815ea7ef2c72563a85a14851 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/0/epsilon
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/0/epsilon
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
-|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
@@ -10,6 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      epsilon;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -22,28 +23,28 @@ boundaryField
 {
     top
     {
-        type            zeroGradient;
+        type            compressible::epsilonWallFunction;
+        value           uniform 5390.5;
     }
-
     bottom
     {
-        type            zeroGradient;
+        type            compressible::epsilonWallFunction;
+        value           uniform 5390.5;
     }
-
     walls
     {
-        type            zeroGradient;
+        type            compressible::epsilonWallFunction;
+        value           uniform 5390.5;
     }
-
     symmetry
     {
         type            symmetryPlane;
     }
-
     frontAndBack
     {
         type            empty;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/0/k b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/0/k
index b2e4f58aab813ed1f1ba9667db76c30d0ad49f1c..9abb57fdb013a1d9dd1ac7859f9554dc0c642b71 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/0/k
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/0/k
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
-|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
@@ -10,6 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      k;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -22,28 +23,28 @@ boundaryField
 {
     top
     {
-        type            zeroGradient;
+        type            compressible::kQRWallFunction;
+        value           uniform 37.5;
     }
-
     bottom
     {
-        type            zeroGradient;
+        type            compressible::kQRWallFunction;
+        value           uniform 37.5;
     }
-
     walls
     {
-        type            zeroGradient;
+        type            compressible::kQRWallFunction;
+        value           uniform 37.5;
     }
-
     symmetry
     {
         type            symmetryPlane;
     }
-
     frontAndBack
     {
         type            empty;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/kinematicCloud1Properties b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/kinematicCloud1Properties
index 4a7f8b7b2b5d0f5f7c8e979a07185eb634c9a8c5..8c69fb42b5812561e5fc746eceec85ae1481a22b 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/kinematicCloud1Properties
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/kinematicCloud1Properties
@@ -21,20 +21,27 @@ DragModel       SphereDrag;
 
 DispersionModel StochasticDispersionRAS;
 
-WallInteractionModel StandardWallInteraction;
+PatchInteractionModel StandardWallInteraction;
 
-minParticleMass minParticleMass [ 1 0 0 0 0 ] 1e-15;
-
-rho0            rho0 [ 1 -3 0 0 0 ] 5000;
+PostProcessingModel none;
 
 coupled         true;
 
+cellValueSourceCorrection on;
+
 parcelTypeId    2;
 
+constantProperties
+{
+    rhoMin          rhoMin [ 1 -3 0 0 0 ] 1e-15;
+    minParticleMass minParticleMass [ 1 0 0 0 0 ] 1e-15;
+    rho0            rho0 [ 1 -3 0 0 0 ] 5000;
+}
+
 interpolationSchemes
 {
     rho             cell;
-    U               cellPointFace;
+    U               cellPoint;
     mu              cell;
 }
 
@@ -43,12 +50,21 @@ integrationSchemes
     U               Euler;
 }
 
+particleForces
+{
+    gravity         on;
+    virtualMass     off;
+    Cvm             0.5;
+    pressureGradient off;
+    gradU           gradU;
+}
+
 ManualInjectionCoeffs
 {
-    parcelBasisType mass;
     massTotal       massTotal [ 1 0 0 0 0 ] 0.0002;
+    parcelBasisType mass;
     SOI             0;
-    positionsFile   kinematicCloud1Positions;
+    positionsFile   "kinematicCloud1Positions";
     U0              ( 0 0 0 );
     parcelPDF
     {
@@ -70,29 +86,10 @@ ConeInjectionCoeffs
     position        ( 0.25 0.25 0.05 );
     direction       ( 0 -1 0 );
     parcelsPerSecond 10000;
-    volumeFlowRate  Constant;
-    volumeFlowRateCoeffs
-    {
-        value           0.01;
-    }
-
-    Umag            Constant;
-    UmagCoeffs
-    {
-        value           50;
-    }
-
-    thetaInner      Constant;
-    thetaInnerCoeffs
-    {
-        value           0;
-    }
-
-    thetaOuter      Constant;
-    thetaOuterCoeffs
-    {
-        value           30;
-    }
+    volumeFlowRate  Constant 0.01;
+    Umag            Constant 50;
+    thetaInner      Constant 0;
+    thetaOuter      Constant 30;
 
     parcelPDF
     {
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/polyMesh/boundary b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/polyMesh/boundary
index b8848e2d9cd3e1dbe2fa2a9aabe159a7108753f7..b130d7bc0aa5e48e9a785745d71564a71ac9a626 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/polyMesh/boundary
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/polyMesh/boundary
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
-|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
@@ -10,6 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       polyBoundaryMesh;
+    location    "constant/polyMesh";
     object      boundary;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/thermoCloud1Properties b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/thermoCloud1Properties
index fd752a082c9d60ef27277908ec50e7bf425a3970..a7c19443e21a00f8964ab6b167621c7cd8090d33 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/thermoCloud1Properties
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/thermoCloud1Properties
@@ -21,33 +21,37 @@ DragModel       SphereDrag;
 
 DispersionModel StochasticDispersionRAS;
 
-WallInteractionModel StandardWallInteraction;
+PatchInteractionModel StandardWallInteraction;
 
 HeatTransferModel RanzMarshall;
 
-radiation       off;
-
-minParticleMass minParticleMass [ 1 0 0 0 0 ] 1e-15;
-
-rho0            rho0 [ 1 -3 0 0 0 ] 2500;
-
-T0              T0 [ 0 0 0 1 0 ] 300;
+PostProcessingModel none;
 
-cp0             cp0 [ 0 2 -2 -1 0 ] 900;
-
-epsilon0        epsilon0 [ 0 0 0 0 0 ] 1;
-
-f0              f0 [ 0 0 0 0 0 ] 0.5;
+radiation       off;
 
 coupled         true;
 
+cellValueSourceCorrection on;
+
 parcelTypeId    1;
 
+constantProperties
+{
+    rhoMin          rhoMin [ 1 -3 0 0 0 ] 1e-15;
+    TMin            TMin [ 0 0 0 1 0 ] 200;
+    minParticleMass minParticleMass [ 1 0 0 0 0 ] 1e-15;
+    rho0            rho0 [ 1 -3 0 0 0 ] 2500;
+    T0              T0 [ 0 0 0 1 0 ] 300;
+    cp0             cp0 [ 0 2 -2 -1 0 ] 900;
+    epsilon0        epsilon0 [ 0 0 0 0 0 ] 1;
+    f0              f0 [ 0 0 0 0 0 ] 0.5;
+}
+
 interpolationSchemes
 {
     rho             cell;
-    U               cellPointFace;
     mu              cell;
+    U               cellPoint;
     T               cell;
     Cp              cell;
 }
@@ -58,12 +62,21 @@ integrationSchemes
     T               Analytical;
 }
 
+particleForces
+{
+    gravity         on;
+    virtualMass     off;
+    Cvm             0.5;
+    pressureGradient off;
+    gradU           gradU;
+}
+
 ManualInjectionCoeffs
 {
     massTotal       massTotal [ 1 0 0 0 0 ] 0.0001;
     parcelBasisType mass;
     SOI             0;
-    positionsFile   thermoCloud1Positions;
+    positionsFile   "thermoCloud1Positions";
     U0              ( 0 0 0 );
     parcelPDF
     {
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/turbulenceProperties b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..78f28eca604be4d8fc94d38d23ae0cbb679b18fb
--- /dev/null
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.5.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  RASModel;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/system/cellSetDict.1 b/tutorials/multiphase/cavitatingFoam/les/throttle/system/cellSetDict.1
index a7c7e625e5403387aa3b92c464b9d8c5615c7ba4..bfa0d6ac4f2b2b07aa49ade99f366371db345123 100644
--- a/tutorials/multiphase/cavitatingFoam/les/throttle/system/cellSetDict.1
+++ b/tutorials/multiphase/cavitatingFoam/les/throttle/system/cellSetDict.1
@@ -8,7 +8,7 @@
 FoamFile
 {
     version     2.0;
-    format      binary;
+    format      ascii;
     class       dictionary;
     location    "system";
     object      cellSetDict.1;
@@ -19,7 +19,13 @@ name            c0;
 
 action          new;
 
-topoSetSources  ( boxToCell { box ( 0.004 -0.001 -1 ) ( 0.012 0.001 1 ) ; } );
+topoSetSources
+(
+    boxToCell
+    {
+        box (0.004 -0.001 -1) (0.012 0.001 1);
+    }
+);
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/system/cellSetDict.2 b/tutorials/multiphase/cavitatingFoam/les/throttle/system/cellSetDict.2
index 470258895d1a503d39431f85dc16d207019b0cc0..d9684898c824a0cf4cd22ad94cdc21297fc9d39d 100644
--- a/tutorials/multiphase/cavitatingFoam/les/throttle/system/cellSetDict.2
+++ b/tutorials/multiphase/cavitatingFoam/les/throttle/system/cellSetDict.2
@@ -8,7 +8,7 @@
 FoamFile
 {
     version     2.0;
-    format      binary;
+    format      ascii;
     class       dictionary;
     location    "system";
     object      cellSetDict.2;
@@ -19,7 +19,13 @@ name            c0;
 
 action          new;
 
-topoSetSources  ( boxToCell { box ( 0.0045 -0.00075 -1 ) ( 0.0095 0.00075 1 ) ; } );
+topoSetSources
+(
+    boxToCell
+    {
+        box (0.0045 -0.00075 -1) (0.0095 0.00075 1);
+    }
+);
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/system/cellSetDict.3 b/tutorials/multiphase/cavitatingFoam/les/throttle/system/cellSetDict.3
index 530c710e1f0e6bae3655c4127e4bca08ecd7a049..10f2c880a56a0fd7ce1d75798a91bb082c68f865 100644
--- a/tutorials/multiphase/cavitatingFoam/les/throttle/system/cellSetDict.3
+++ b/tutorials/multiphase/cavitatingFoam/les/throttle/system/cellSetDict.3
@@ -8,7 +8,7 @@
 FoamFile
 {
     version     2.0;
-    format      binary;
+    format      ascii;
     class       dictionary;
     location    "system";
     object      cellSetDict.3;
@@ -19,7 +19,13 @@ name            c0;
 
 action          new;
 
-topoSetSources  ( boxToCell { box ( 0.00475 -0.000375 -1 ) ( 0.009 0.000375 1 ) ; } );
+topoSetSources
+(
+    boxToCell
+    {
+        box (0.00475 -0.000375 -1) (0.009 0.000375 1);
+    }
+);
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/cellSetDict.1 b/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/cellSetDict.1
index a7c7e625e5403387aa3b92c464b9d8c5615c7ba4..88755b22992e891570617b7aef7353ab23845086 100644
--- a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/cellSetDict.1
+++ b/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/cellSetDict.1
@@ -8,7 +8,7 @@
 FoamFile
 {
     version     2.0;
-    format      binary;
+    format      ascii;
     class       dictionary;
     location    "system";
     object      cellSetDict.1;
@@ -19,7 +19,13 @@ name            c0;
 
 action          new;
 
-topoSetSources  ( boxToCell { box ( 0.004 -0.001 -1 ) ( 0.012 0.001 1 ) ; } );
+topoSetSources
+(
+    boxToCell
+    {
+        box ( 0.004 -0.001 -1 ) ( 0.012 0.001 1 );
+    }
+);
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/cellSetDict.2 b/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/cellSetDict.2
index 470258895d1a503d39431f85dc16d207019b0cc0..a29931d08f4c220bf54882641c2ac334e4bc3dd4 100644
--- a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/cellSetDict.2
+++ b/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/cellSetDict.2
@@ -8,7 +8,7 @@
 FoamFile
 {
     version     2.0;
-    format      binary;
+    format      ascii;
     class       dictionary;
     location    "system";
     object      cellSetDict.2;
@@ -19,7 +19,13 @@ name            c0;
 
 action          new;
 
-topoSetSources  ( boxToCell { box ( 0.0045 -0.00075 -1 ) ( 0.0095 0.00075 1 ) ; } );
+topoSetSources
+(
+    boxToCell
+    {
+        box ( 0.0045 -0.00075 -1 ) ( 0.0095 0.00075 1 );
+    }
+);
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/cellSetDict.3 b/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/cellSetDict.3
index 530c710e1f0e6bae3655c4127e4bca08ecd7a049..8ff387dd87d81b0ef5435ec79df5d8fc34d21371 100644
--- a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/cellSetDict.3
+++ b/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/cellSetDict.3
@@ -8,7 +8,7 @@
 FoamFile
 {
     version     2.0;
-    format      binary;
+    format      ascii;
     class       dictionary;
     location    "system";
     object      cellSetDict.3;
@@ -19,7 +19,13 @@ name            c0;
 
 action          new;
 
-topoSetSources  ( boxToCell { box ( 0.00475 -0.000375 -1 ) ( 0.009 0.000375 1 ) ; } );
+topoSetSources
+(
+    boxToCell
+    {
+        box ( 0.00475 -0.000375 -1 ) ( 0.009 0.000375 1 );
+    }
+);
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/pd.org b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/p.org
similarity index 98%
rename from tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/pd.org
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/p.org
index 5f5f977f4311ab2cad0ebf9602845f7a3a48cf50..72b59f9e90996a5e37de42dfe70687f6855fbf13 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/pd.org
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/p.org
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allrun b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allrun
index f4e775f4baa016ca5056f6c9dea078382d060095..f2a0345d68b030bcac62302fb71d10da0a137384 100755
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allrun
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allrun
@@ -7,6 +7,6 @@ application="compressibleInterFoam"
 
 runApplication blockMesh
 cp 0/alpha1.org 0/alpha1
-cp 0/pd.org 0/pd
+cp 0/p.org 0/p
 runApplication setFields
 runApplication $application
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSchemes b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSchemes
index 373e1ca67d95f93b6f87c25f206a931c6c14ba76..0233a5951ab53946c3f3452772a78c5f93d0174c 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSchemes
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSchemes
@@ -30,7 +30,7 @@ divSchemes
     div(rho*phi,U)  Gauss upwind;
     div(phi,alpha)  Gauss vanLeer;
     div(phirb,alpha) Gauss interfaceCompression 1;
-    div(phi,pd)     Gauss upwind;
+    div(phi,p)      Gauss upwind;
     div(phi,k)      Gauss vanLeer;
     div((nuEff*dev(grad(U).T()))) Gauss linear;
 }
@@ -53,9 +53,9 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
-    pcorr           ;
-    gamma           ;
+    p;
+    pcorr;
+    gamma;
 }
 
 
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSolution b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSolution
index 3416674d0782e6a26af8e5de6eb075c7b792a6cf..f93b56c204b46b986ec5bb2d32ce87645e071874 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSolution
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSolution
@@ -45,7 +45,7 @@ solvers
         solver          diagonal;
     }
 
-    pd
+    p
     {
         solver          GAMG;
         tolerance       1e-07;
@@ -60,7 +60,7 @@ solvers
         mergeLevels     1;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/setFieldsDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/setFieldsDict
index d1992643325e54bb632fa934b57dc0c257580c08..00e706b1e518efe1caece07029b5924ce9c8d75b 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/setFieldsDict
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/setFieldsDict
@@ -15,9 +15,33 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-defaultFieldValues ( volScalarFieldValue alpha1 1 volScalarFieldValue pd 100000 );
+defaultFieldValues
+(
+    volScalarFieldValue alpha1 1
+    volScalarFieldValue p 100000
+);
 
-regions         ( sphereToCell { centre ( 0.5 0.5 0 ) ; radius 0.1 ; fieldValues ( volScalarFieldValue alpha1 0 volScalarFieldValue pd 1000000 ) ; } boxToCell { box ( -10 1 -1 ) ( 10 10 1 ) ; fieldValues ( volScalarFieldValue alpha1 0 ) ; } );
+regions
+(
+    sphereToCell
+    {
+        centre ( 0.5 0.5 0 );
+        radius 0.1;
+        fieldValues
+        (
+            volScalarFieldValue alpha1 0
+            volScalarFieldValue p 1000000
+        );
+    }
+    boxToCell
+    {
+        box ( -10 1 -1 ) ( 10 10 1 );
+        fieldValues
+        (
+            volScalarFieldValue alpha1 0
+        );
+    }
+);
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/pd.org b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/p.org
similarity index 97%
rename from tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/pd.org
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/p.org
index efe6f4ca9c57592011bedf77d0c8ff218a2eea5c..3377670aaf545dacf540dac89e8f447059c57d4a 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/pd.org
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/p.org
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd.org;
+    object      p.org;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allclean b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allclean
index c422ce058e162967e4924ab9cd8404a7ca807133..99cd62d9236e42bc0e1303987403265889e6fb6b 100755
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allclean
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allclean
@@ -2,4 +2,4 @@
 
 foamCleanTutorials cases
 rm -rf processor*
-rm -rf 0/pd.gz 0/alpha1.gz
+rm -rf 0/p.gz 0/alpha1.gz
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allrun b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allrun
index 3302513ed6e1d1fc3595aad7260bc8e4299e6efb..7b9b11445e018536c908fa896212a19c7c92eef3 100755
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allrun
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allrun
@@ -7,7 +7,7 @@ application="compressibleInterFoam"
 
 runApplication blockMesh
 cp 0/alpha1.org 0/alpha1
-cp 0/pd.org 0/pd
+cp 0/p.org 0/p
 runApplication setFields
 runApplication decomposePar
 hostname > system/machines
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSchemes b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSchemes
index 373e1ca67d95f93b6f87c25f206a931c6c14ba76..0233a5951ab53946c3f3452772a78c5f93d0174c 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSchemes
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSchemes
@@ -30,7 +30,7 @@ divSchemes
     div(rho*phi,U)  Gauss upwind;
     div(phi,alpha)  Gauss vanLeer;
     div(phirb,alpha) Gauss interfaceCompression 1;
-    div(phi,pd)     Gauss upwind;
+    div(phi,p)      Gauss upwind;
     div(phi,k)      Gauss vanLeer;
     div((nuEff*dev(grad(U).T()))) Gauss linear;
 }
@@ -53,9 +53,9 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
-    pcorr           ;
-    gamma           ;
+    p;
+    pcorr;
+    gamma;
 }
 
 
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSolution b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSolution
index 3416674d0782e6a26af8e5de6eb075c7b792a6cf..f93b56c204b46b986ec5bb2d32ce87645e071874 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSolution
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSolution
@@ -45,7 +45,7 @@ solvers
         solver          diagonal;
     }
 
-    pd
+    p
     {
         solver          GAMG;
         tolerance       1e-07;
@@ -60,7 +60,7 @@ solvers
         mergeLevels     1;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/setFieldsDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/setFieldsDict
index fb686e791c29a4621e44bf2cab9b086005d62bc0..3b3c397cb925ab34bb2ab7528cb67d3545196ee0 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/setFieldsDict
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/setFieldsDict
@@ -15,9 +15,33 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-defaultFieldValues ( volScalarFieldValue alpha1 1 volScalarFieldValue pd 100000 );
+defaultFieldValues
+(
+    volScalarFieldValue alpha1 1
+    volScalarFieldValue p 100000
+);
 
-regions         ( sphereToCell { centre ( 0.5 0.5 0.5 ) ; radius 0.1 ; fieldValues ( volScalarFieldValue alpha1 0 volScalarFieldValue pd 1000000 ) ; } boxToCell { box ( -10 1 -1 ) ( 10 10 1 ) ; fieldValues ( volScalarFieldValue alpha1 0 ) ; } );
+regions
+(
+    sphereToCell
+    {
+        centre ( 0.5 0.5 0.5 );
+        radius 0.1;
+        fieldValues
+        (
+            volScalarFieldValue alpha1 0
+            volScalarFieldValue p 1000000
+        );
+    }
+    boxToCell
+    {
+        box ( -10 1 -1 ) ( 10 10 1 );
+        fieldValues
+        (
+            volScalarFieldValue alpha1 0
+        );
+    }
+);
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/pd b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/p
similarity index 98%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/pd
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/p
index 01361099097a2f6c771cf634ff96a3466c7b49b3..b3a944b216d11d7644902b0a094403caa9507154 100644
--- a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/pd
+++ b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/p
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/pd b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/p
similarity index 98%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/pd
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/p
index 01361099097a2f6c771cf634ff96a3466c7b49b3..b3a944b216d11d7644902b0a094403caa9507154 100644
--- a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/pd
+++ b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/p
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSchemes
index c563a4cd8fe840a8bbabf755739cbf83ae20fff5..a6ed1d41742c9330925f532a0f080cce8bdbe21e 100644
--- a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSchemes
+++ b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSchemes
@@ -52,9 +52,9 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
-    pcorr           ;
-    alpha           ;
+    p;
+    pcorr;
+    alpha;
 }
 
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution
index 2ca306273d2f9178a190c71b10c6f37cbc5ac67a..fe7b6a88515a806090e82ac24cc50f10c9ea01df 100644
--- a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution
@@ -40,7 +40,7 @@ solvers
         maxIter         100;
     }
 
-    pd
+    p
     {
         solver          GAMG;
         tolerance       1e-08;
@@ -55,7 +55,7 @@ solvers
         mergeLevels     1;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner
@@ -122,9 +122,8 @@ PISO
     nAlphaSubCycles 3;
     cAlpha          1;
 
-    pdRefPoint      (0.51 0.51 0.51);
-    pdRefValue      0;
-    pRefValue       0;
+    pRefPoint      (0.51 0.51 0.51);
+    pRefValue      0;
 }
 
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/pd b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/p
similarity index 98%
rename from tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/pd
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/p
index 020ff7cc00a27e6b27aed9640ba406c34958cb98..c69b424dc75602864a806fc737b9f17d4017de74 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/pd
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/p
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/controlDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/controlDict
index e4a69588f6ea514229a8f1616348508e27a1bc41..35735bacbbe1f9b409860731920c58c2bb23e935 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/controlDict
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/controlDict
@@ -54,7 +54,7 @@ functions
     probes
     {
         type            probes;
-        name            probes;
+        functionObjectLibs ( "libsampling.so" );
         outputControl   timeStep;
         outputInterval  1;
         probeLocations
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSchemes
index 3a940dbe40590b8a3661aaa877dc5c159edb986e..2f7da16bb6cae840274d0344b5c92de2fc959ed3 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSchemes
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSchemes
@@ -52,9 +52,9 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
-    pcorr           ;
-    alpha           ;
+    p;
+    pcorr;
+    alpha;
 }
 
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution
index c9dccc239e4610d982bc3f6e8a70b36aad0e9d79..77e4ff75cfbdbc79a7a241312acdab31fb65a954 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution
@@ -40,7 +40,7 @@ solvers
         maxIter         100;
     }
 
-    pd
+    p
     {
         solver          GAMG;
         tolerance       1e-08;
@@ -55,7 +55,7 @@ solvers
         mergeLevels     1;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner
@@ -99,8 +99,7 @@ PISO
     cAlpha          1.5;
     correctPhi      no;
 
-    pdRefPoint      (0 0 0.15);
-    pdRefValue      0;
+    pRefPoint       (0 0 0.15);
     pRefValue       1e5;
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/setFieldsDict
index 7ff571c6d130cf0424493bcc96a52251eedc746a..ec8d1717d50aba095d49655c4509cd75692a659b 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/setFieldsDict
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/setFieldsDict
@@ -25,7 +25,10 @@ regions
     boxToCell
     {
         box ( -100 -100 -100 ) ( 100 100 0 );
-        fieldValues ( volScalarFieldValue alpha1 1 );
+        fieldValues
+        (
+            volScalarFieldValue alpha1 1
+        );
     }
 );
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/pd b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/p
similarity index 98%
rename from tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/pd
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/p
index 020ff7cc00a27e6b27aed9640ba406c34958cb98..c69b424dc75602864a806fc737b9f17d4017de74 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/pd
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/p
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSchemes
index d4eb5a19662e68864722f579d30296c6d4fbfd87..b5c55ba3d740f3873f7f59512cfcb73893801262 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSchemes
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSchemes
@@ -52,9 +52,9 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
-    pcorr           ;
-    alpha           ;
+    p;
+    pcorr;
+    alpha;
 }
 
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution
index c9dccc239e4610d982bc3f6e8a70b36aad0e9d79..77e4ff75cfbdbc79a7a241312acdab31fb65a954 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution
@@ -40,7 +40,7 @@ solvers
         maxIter         100;
     }
 
-    pd
+    p
     {
         solver          GAMG;
         tolerance       1e-08;
@@ -55,7 +55,7 @@ solvers
         mergeLevels     1;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner
@@ -99,8 +99,7 @@ PISO
     cAlpha          1.5;
     correctPhi      no;
 
-    pdRefPoint      (0 0 0.15);
-    pdRefValue      0;
+    pRefPoint       (0 0 0.15);
     pRefValue       1e5;
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/setFieldsDict
index 7ff571c6d130cf0424493bcc96a52251eedc746a..ec8d1717d50aba095d49655c4509cd75692a659b 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/setFieldsDict
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/setFieldsDict
@@ -25,7 +25,10 @@ regions
     boxToCell
     {
         box ( -100 -100 -100 ) ( 100 100 0 );
-        fieldValues ( volScalarFieldValue alpha1 1 );
+        fieldValues
+        (
+            volScalarFieldValue alpha1 1
+        );
     }
 );
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/pd b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/p
similarity index 97%
rename from tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/pd
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/p
index ac7e49da81a5ead98e613c5891faccae05ef2629..d27ad70eb9ed4cdf91ec9cf25222554b271898e7 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/pd
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/p
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSchemes
index d4eb5a19662e68864722f579d30296c6d4fbfd87..b5c55ba3d740f3873f7f59512cfcb73893801262 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSchemes
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSchemes
@@ -52,9 +52,9 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
-    pcorr           ;
-    alpha           ;
+    p;
+    pcorr;
+    alpha;
 }
 
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution
index c9dccc239e4610d982bc3f6e8a70b36aad0e9d79..77e4ff75cfbdbc79a7a241312acdab31fb65a954 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution
@@ -40,7 +40,7 @@ solvers
         maxIter         100;
     }
 
-    pd
+    p
     {
         solver          GAMG;
         tolerance       1e-08;
@@ -55,7 +55,7 @@ solvers
         mergeLevels     1;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner
@@ -99,8 +99,7 @@ PISO
     cAlpha          1.5;
     correctPhi      no;
 
-    pdRefPoint      (0 0 0.15);
-    pdRefValue      0;
+    pRefPoint       (0 0 0.15);
     pRefValue       1e5;
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/setFieldsDict
index 2f947e62416f71a3ff19b87376388cab9269939a..bceaad67cefa6f8fed8a77df0e41275a7d0dc295 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/setFieldsDict
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/setFieldsDict
@@ -25,7 +25,10 @@ regions
     boxToCell
     {
         box ( -100 -100 -100 ) ( 100 100 0 );
-        fieldValues ( volScalarFieldValue alpha1 1 );
+        fieldValues
+        (
+            volScalarFieldValue alpha1 1
+        );
     }
 );
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/pd b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/p
similarity index 97%
rename from tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/pd
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/p
index ac7e49da81a5ead98e613c5891faccae05ef2629..d27ad70eb9ed4cdf91ec9cf25222554b271898e7 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/pd
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/p
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSchemes
index d4eb5a19662e68864722f579d30296c6d4fbfd87..b5c55ba3d740f3873f7f59512cfcb73893801262 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSchemes
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSchemes
@@ -52,9 +52,9 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
-    pcorr           ;
-    alpha           ;
+    p;
+    pcorr;
+    alpha;
 }
 
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution
index c9dccc239e4610d982bc3f6e8a70b36aad0e9d79..77e4ff75cfbdbc79a7a241312acdab31fb65a954 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution
@@ -40,7 +40,7 @@ solvers
         maxIter         100;
     }
 
-    pd
+    p
     {
         solver          GAMG;
         tolerance       1e-08;
@@ -55,7 +55,7 @@ solvers
         mergeLevels     1;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner
@@ -99,8 +99,7 @@ PISO
     cAlpha          1.5;
     correctPhi      no;
 
-    pdRefPoint      (0 0 0.15);
-    pdRefValue      0;
+    pRefPoint       (0 0 0.15);
     pRefValue       1e5;
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/setFieldsDict
index 7ff571c6d130cf0424493bcc96a52251eedc746a..ec8d1717d50aba095d49655c4509cd75692a659b 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/setFieldsDict
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/setFieldsDict
@@ -25,7 +25,10 @@ regions
     boxToCell
     {
         box ( -100 -100 -100 ) ( 100 100 0 );
-        fieldValues ( volScalarFieldValue alpha1 1 );
+        fieldValues
+        (
+            volScalarFieldValue alpha1 1
+        );
     }
 );
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/pd b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/p
similarity index 97%
rename from tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/pd
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/p
index ac7e49da81a5ead98e613c5891faccae05ef2629..d27ad70eb9ed4cdf91ec9cf25222554b271898e7 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/pd
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/p
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSchemes
index d4eb5a19662e68864722f579d30296c6d4fbfd87..b5c55ba3d740f3873f7f59512cfcb73893801262 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSchemes
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSchemes
@@ -52,9 +52,9 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
-    pcorr           ;
-    alpha           ;
+    p;
+    pcorr;
+    alpha;
 }
 
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution
index c9dccc239e4610d982bc3f6e8a70b36aad0e9d79..77e4ff75cfbdbc79a7a241312acdab31fb65a954 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution
@@ -40,7 +40,7 @@ solvers
         maxIter         100;
     }
 
-    pd
+    p
     {
         solver          GAMG;
         tolerance       1e-08;
@@ -55,7 +55,7 @@ solvers
         mergeLevels     1;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner
@@ -99,8 +99,7 @@ PISO
     cAlpha          1.5;
     correctPhi      no;
 
-    pdRefPoint      (0 0 0.15);
-    pdRefValue      0;
+    pRefPoint       (0 0 0.15);
     pRefValue       1e5;
 }
 
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/0/pd b/tutorials/multiphase/interFoam/laminar/damBreak/0/p
similarity index 98%
rename from tutorials/multiphase/interFoam/ras/damBreak/0/pd
rename to tutorials/multiphase/interFoam/laminar/damBreak/0/p
index 520a3e9b0b291a7913c871b614d8fe9845e8ab08..15ab9897a899264f52a2cfb792b0fc6c39324dc4 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/0/pd
+++ b/tutorials/multiphase/interFoam/laminar/damBreak/0/p
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interFoam/laminar/damBreak/system/fvSchemes b/tutorials/multiphase/interFoam/laminar/damBreak/system/fvSchemes
index d242b76b754914e7115105855ad61600253674b9..0b17c289c20ba9a27c48d9ddec20f44f1c47f8f3 100644
--- a/tutorials/multiphase/interFoam/laminar/damBreak/system/fvSchemes
+++ b/tutorials/multiphase/interFoam/laminar/damBreak/system/fvSchemes
@@ -52,9 +52,9 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
-    pcorr           ;
-    alpha1          ;
+    p;
+    pcorr;
+    alpha1;
 }
 
 
diff --git a/tutorials/multiphase/interFoam/laminar/damBreak/system/fvSolution b/tutorials/multiphase/interFoam/laminar/damBreak/system/fvSolution
index b1b00223fcd0bbe688671476a0173185fb0313f5..6c3a8c5da3dd2e83b7454a5ed945bc9684310a0f 100644
--- a/tutorials/multiphase/interFoam/laminar/damBreak/system/fvSolution
+++ b/tutorials/multiphase/interFoam/laminar/damBreak/system/fvSolution
@@ -25,7 +25,7 @@ solvers
         relTol          0;
     }
 
-    pd
+    p
     {
         solver          PCG;
         preconditioner  DIC;
@@ -33,7 +33,7 @@ solvers
         relTol          0.05;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/pd b/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/p
similarity index 98%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/0/pd
rename to tutorials/multiphase/interFoam/les/nozzleFlow2D/0/p
index b533fbc016f7cc5b593988af8555c43a371cd0a1..8f01f473bbda69c4823f35737c47695029173338 100644
--- a/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/pd
+++ b/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/p
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSchemes b/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSchemes
index 2a273c5e51cb5bcdaf8b079c33459db6568e75a2..153a1ea73a20a1f11684eee3085622aa9375be87 100644
--- a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSchemes
+++ b/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSchemes
@@ -56,9 +56,9 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
-    pcorr           ;
-    alpha1          ;
+    p;
+    pcorr;
+    alpha;
 }
 
 
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSolution b/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSolution
index 660482ad377d9745a5a8fd4b6fc67486640c3726..4642da139683a71541d7b045c40507ee0b02627f 100644
--- a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSolution
+++ b/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSolution
@@ -40,7 +40,7 @@ solvers
         maxIter         100;
     }
 
-    pd
+    p
     {
         solver          GAMG;
         tolerance       1e-07;
@@ -55,7 +55,7 @@ solvers
         mergeLevels     1;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/interFoam/ras/Allrun b/tutorials/multiphase/interFoam/ras/Allrun
index c01b35fcbd4aa6d8576f8c96ef86fd924006b8dc..e222cf7e15d05f8a2f8d11bb3e86ba15491bffd2 100755
--- a/tutorials/multiphase/interFoam/ras/Allrun
+++ b/tutorials/multiphase/interFoam/ras/Allrun
@@ -32,7 +32,7 @@ cloneCase damBreak damBreakFine
 cd damBreakFine
     # Modify case
     setDamBreakFine
-    cp ../damBreak/0/gamma.org 0/gamma
+    cp ../damBreak/0/alpha1.org 0/alpha1
     # And execute
     runApplication blockMesh
     runApplication setFields
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/0/U b/tutorials/multiphase/interFoam/ras/damBreak/0/U
index d4cc4c65a67476de08b56cbb2efd682e88a46db6..7ea3a0c32328d93fd01ba3c580c7d73b54473d22 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/0/U
+++ b/tutorials/multiphase/interFoam/ras/damBreak/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
-|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
@@ -10,6 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volVectorField;
+    location    "0";
     object      U;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -38,7 +39,6 @@ boundaryField
     atmosphere
     {
         type            pressureInletOutletVelocity;
-        phi             phi;
         value           uniform (0 0 0);
     }
     defaultFaces
@@ -47,4 +47,5 @@ boundaryField
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/0/gamma.org b/tutorials/multiphase/interFoam/ras/damBreak/0/alpha1
similarity index 98%
rename from tutorials/multiphase/interFoam/ras/damBreak/0/gamma.org
rename to tutorials/multiphase/interFoam/ras/damBreak/0/alpha1
index 742f2974431e8ab23664341603ef199480f49c68..36d4d31dcdd7caa199ad6f5be76cff952156cb96 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/0/gamma.org
+++ b/tutorials/multiphase/interFoam/ras/damBreak/0/alpha1
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      gamma;
+    object      alpha1;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/0/gamma b/tutorials/multiphase/interFoam/ras/damBreak/0/alpha1.org
similarity index 98%
rename from tutorials/multiphase/interFoam/ras/damBreak/0/gamma
rename to tutorials/multiphase/interFoam/ras/damBreak/0/alpha1.org
index 742f2974431e8ab23664341603ef199480f49c68..36d4d31dcdd7caa199ad6f5be76cff952156cb96 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/0/gamma
+++ b/tutorials/multiphase/interFoam/ras/damBreak/0/alpha1.org
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      gamma;
+    object      alpha1;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/0/epsilon b/tutorials/multiphase/interFoam/ras/damBreak/0/epsilon
index 92ed8a7d75e228fe370ae2c54f67161b484f4973..b49a80428493c25ee922fb2501e11cd749b3ddf7 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/0/epsilon
+++ b/tutorials/multiphase/interFoam/ras/damBreak/0/epsilon
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [ 0 2 -3 0 0 0 0 ];
+dimensions      [0 2 -3 0 0 0 0];
 
 internalField   uniform 0.1;
 
@@ -24,28 +24,24 @@ boundaryField
     leftWall
     {
         type            epsilonWallFunction;
-        value           uniform 0;
+        value           uniform 0.1;
     }
-
     rightWall
     {
         type            epsilonWallFunction;
-        value           uniform 0;
+        value           uniform 0.1;
     }
-
     lowerWall
     {
         type            epsilonWallFunction;
-        value           uniform 0;
+        value           uniform 0.1;
     }
-
     atmosphere
     {
         type            inletOutlet;
         inletValue      uniform 0.1;
         value           uniform 0.1;
     }
-
     defaultFaces
     {
         type            empty;
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/0/k b/tutorials/multiphase/interFoam/ras/damBreak/0/k
index c8071de03ba06ce1292fe0b5ebb3e018c88efc6d..897224d725f3bd8e0f02800a735dae854a9b03e9 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/0/k
+++ b/tutorials/multiphase/interFoam/ras/damBreak/0/k
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [ 0 2 -2 0 0 0 0 ];
+dimensions      [0 2 -2 0 0 0 0];
 
 internalField   uniform 0.1;
 
@@ -24,28 +24,24 @@ boundaryField
     leftWall
     {
         type            kQRWallFunction;
-        value           uniform 0;
+        value           uniform 0.1;
     }
-
     rightWall
     {
         type            kQRWallFunction;
-        value           uniform 0;
+        value           uniform 0.1;
     }
-
     lowerWall
     {
         type            kQRWallFunction;
-        value           uniform 0;
+        value           uniform 0.1;
     }
-
     atmosphere
     {
         type            inletOutlet;
         inletValue      uniform 0.1;
         value           uniform 0.1;
     }
-
     defaultFaces
     {
         type            empty;
diff --git a/tutorials/multiphase/interFoam/laminar/damBreak/0/pd b/tutorials/multiphase/interFoam/ras/damBreak/0/p
similarity index 98%
rename from tutorials/multiphase/interFoam/laminar/damBreak/0/pd
rename to tutorials/multiphase/interFoam/ras/damBreak/0/p
index 520a3e9b0b291a7913c871b614d8fe9845e8ab08..15ab9897a899264f52a2cfb792b0fc6c39324dc4 100644
--- a/tutorials/multiphase/interFoam/laminar/damBreak/0/pd
+++ b/tutorials/multiphase/interFoam/ras/damBreak/0/p
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/system/fvSchemes b/tutorials/multiphase/interFoam/ras/damBreak/system/fvSchemes
index 499ad01e5c625d5e9cb16c5f3693f73f17a84206..81f8e2c48bd5283e46a085104826d809ae7169be 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/system/fvSchemes
+++ b/tutorials/multiphase/interFoam/ras/damBreak/system/fvSchemes
@@ -28,8 +28,8 @@ gradSchemes
 divSchemes
 {
     div(rho*phi,U)  Gauss linear;
-    div(phi,gamma)  Gauss vanLeer;
-    div(phirb,gamma) Gauss interfaceCompression;
+    div(phi,alpha)  Gauss vanLeer;
+    div(phirb,alpha) Gauss interfaceCompression;
     div(phi,k)      Gauss upwind;
     div(phi,epsilon) Gauss upwind;
     div(phi,R)      Gauss upwind;
@@ -57,9 +57,9 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd              ;
-    pcorr           ;
-    gamma           ;
+    p;
+    pcorr;
+    alpha;
 }
 
 
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/system/fvSolution b/tutorials/multiphase/interFoam/ras/damBreak/system/fvSolution
index ea7bd97c27c3f83f3dd9ab1b2c0da77625af3bd2..6af3dad37e44b40c8d5a8f4d48d2b5f1207423ec 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/system/fvSolution
+++ b/tutorials/multiphase/interFoam/ras/damBreak/system/fvSolution
@@ -25,7 +25,7 @@ solvers
         relTol          0;
     }
 
-    pd
+    p
     {
         solver          PCG;
         preconditioner  DIC;
@@ -33,7 +33,7 @@ solvers
         relTol          0.05;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner  DIC;
@@ -87,9 +87,9 @@ PISO
     momentumPredictor no;
     nCorrectors     3;
     nNonOrthogonalCorrectors 0;
-    nGammaCorr      1;
-    nGammaSubCycles 4;
-    cGamma          2;
+    nAlphaCorr      1;
+    nAlphaSubCycles 4;
+    cAlpha          2;
 }
 
 
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/pd b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/p
similarity index 98%
rename from tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/pd
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/p
index 520a3e9b0b291a7913c871b614d8fe9845e8ab08..15ab9897a899264f52a2cfb792b0fc6c39324dc4 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/pd
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/p
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
index 8c303f95402ad22e64766b3e454753746a7c68cf..47957b22b37e777ec21a079ffcb3b6dc1399d7a0 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
@@ -40,7 +40,7 @@ solvers
         maxIter         100;
     }
 
-    pd
+    p
     {
         solver          GAMG;
         tolerance       1e-07;
@@ -55,7 +55,7 @@ solvers
         mergeLevels     1;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/pd b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/p
similarity index 98%
rename from tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/pd
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/p
index 520a3e9b0b291a7913c871b614d8fe9845e8ab08..15ab9897a899264f52a2cfb792b0fc6c39324dc4 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/pd
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/p
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      pd;
+    object      p;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
index 8c303f95402ad22e64766b3e454753746a7c68cf..47957b22b37e777ec21a079ffcb3b6dc1399d7a0 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
@@ -40,7 +40,7 @@ solvers
         maxIter         100;
     }
 
-    pd
+    p
     {
         solver          GAMG;
         tolerance       1e-07;
@@ -55,7 +55,7 @@ solvers
         mergeLevels     1;
     }
 
-    pdFinal
+    pFinal
     {
         solver          PCG;
         preconditioner
diff --git a/wmake/rules/linux64Gcc/c++Opt b/wmake/rules/linux64Gcc/c++Opt
index 8ac07d2124e4b49b9bda82d3ea0c4380b9c6b8e6..3446f7f58cbeb23e1753e982a9734bbf1a180b43 100644
--- a/wmake/rules/linux64Gcc/c++Opt
+++ b/wmake/rules/linux64Gcc/c++Opt
@@ -1,4 +1,4 @@
-c++DBUG     = 
+c++DBUG     =
 c++OPT      = -O3
 #c++OPT      = -march=nocona -O3
 # -ftree-vectorize -ftree-vectorizer-verbose=3