diff --git a/applications/solvers/DNS/dnsFoam/dnsFoam.C b/applications/solvers/DNS/dnsFoam/dnsFoam.C
index 277a78002d15ea67faa7ea63fa607ac46edefbd4..cc41c03969388a2339c174346420387a28f13888 100644
--- a/applications/solvers/DNS/dnsFoam/dnsFoam.C
+++ b/applications/solvers/DNS/dnsFoam/dnsFoam.C
@@ -55,8 +55,9 @@ int main(int argc, char *argv[])
 
     Info<< nl << "Starting time loop" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readPISOControls.H"
diff --git a/applications/solvers/basic/laplacianFoam/laplacianFoam.C b/applications/solvers/basic/laplacianFoam/laplacianFoam.C
index 4a804d01bb23aabab153f69a917fc22305a9441d..5b56c72a8c97c42c5e64cc1ba8c5a43316df5eaa 100644
--- a/applications/solvers/basic/laplacianFoam/laplacianFoam.C
+++ b/applications/solvers/basic/laplacianFoam/laplacianFoam.C
@@ -48,8 +48,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nCalculating temperature distribution\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readSIMPLEControls.H"
diff --git a/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C b/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C
index d2d2eb4e6dbd63a6fa2b6965e266bd2cae9ed2ae..ad0107319f8f9a3b44de62bfd5c61b522addfb66 100644
--- a/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C
+++ b/applications/solvers/basic/scalarTransportFoam/scalarTransportFoam.C
@@ -50,8 +50,9 @@ int main(int argc, char *argv[])
 
 #   include "CourantNo.H"
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readSIMPLEControls.H"
diff --git a/applications/solvers/combustion/dieselFoam/dieselFoam.C b/applications/solvers/combustion/dieselFoam/dieselFoam.C
index 64df8bcc8fdff239be9a60a66d4799a824d7d0c6..4c41a0db2d75d60ff031f1c8307ee1da80baa360 100644
--- a/applications/solvers/combustion/dieselFoam/dieselFoam.C
+++ b/applications/solvers/combustion/dieselFoam/dieselFoam.C
@@ -63,7 +63,7 @@ int main(int argc, char *argv[])
 
     Info << "\nStarting time loop\n" << endl;
 
-    while(runTime.run())
+    while (runTime.run())
     {
 #       include "readPISOControls.H"
 #       include "compressibleCourantNo.H"
diff --git a/applications/solvers/compressible/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C b/applications/solvers/compressible/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
index b0bd54d3b3fac3089a3dd068b25c3d8510ac9768..b1b11a7cec902ce47e23e0356bef8136da7a78ac 100644
--- a/applications/solvers/compressible/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
+++ b/applications/solvers/compressible/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
@@ -51,8 +51,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readSIMPLEControls.H"
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C
index ba2b0afd606b9888198d50b2da8ff813d5083bf1..d985abe25d85e8278a65296869961ee589fcb815 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C
@@ -49,8 +49,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
         #include "readSIMPLEControls.H"
diff --git a/applications/solvers/compressible/rhoSonicFoam/rhoSonicFoam.C b/applications/solvers/compressible/rhoSonicFoam/rhoSonicFoam.C
index 662a4f0ad306930b1cdb737a0bc7cd2bff2374b5..b4bdc9e4933cca7a131084d92a779f2caa128313 100644
--- a/applications/solvers/compressible/rhoSonicFoam/rhoSonicFoam.C
+++ b/applications/solvers/compressible/rhoSonicFoam/rhoSonicFoam.C
@@ -47,8 +47,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
         surfaceScalarField phiv
diff --git a/applications/solvers/compressible/rhopSonicFoam/rhopSonicFoam.C b/applications/solvers/compressible/rhopSonicFoam/rhopSonicFoam.C
index b1be4d711eeb54a29afd1dfa817635f0aed00fda..b3f1c8e06d47fd61674431b4721463ed3ecafe4c 100644
--- a/applications/solvers/compressible/rhopSonicFoam/rhopSonicFoam.C
+++ b/applications/solvers/compressible/rhopSonicFoam/rhopSonicFoam.C
@@ -53,8 +53,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.value() << nl << endl;
 
 #       include "readPISOControls.H"
diff --git a/applications/solvers/compressible/sonicDyMFoam/sonicDyMFoam.C b/applications/solvers/compressible/sonicDyMFoam/sonicDyMFoam.C
index 34faaf78facb1c0690bc9f956f8fcd39c02d1d33..593bc742cf96c9f0fa246f49877749a2ca1ae719 100644
--- a/applications/solvers/compressible/sonicDyMFoam/sonicDyMFoam.C
+++ b/applications/solvers/compressible/sonicDyMFoam/sonicDyMFoam.C
@@ -52,8 +52,9 @@ int main(int argc, char *argv[])
 
     autoPtr<Foam::motionSolver> motionPtr = motionSolver::New(mesh);
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
         #include "readPISOControls.H"
diff --git a/applications/solvers/compressible/sonicFoam/sonicFoam.C b/applications/solvers/compressible/sonicFoam/sonicFoam.C
index 08d1f85fec0189af83e5861f69893948b3e87423..741141c1c4e3218778969ca7200405e8e9ea5475 100644
--- a/applications/solvers/compressible/sonicFoam/sonicFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicFoam.C
@@ -49,8 +49,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
         #include "readPISOControls.H"
diff --git a/applications/solvers/compressible/sonicLiquidFoam/sonicLiquidFoam.C b/applications/solvers/compressible/sonicLiquidFoam/sonicLiquidFoam.C
index 90243b2322ce27fb2b1a9ba20da215dee1910f48..87dcf947b03565549bfd34248124a3bc2ad3816e 100644
--- a/applications/solvers/compressible/sonicLiquidFoam/sonicLiquidFoam.C
+++ b/applications/solvers/compressible/sonicLiquidFoam/sonicLiquidFoam.C
@@ -50,8 +50,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readPISOControls.H"
diff --git a/applications/solvers/electromagnetics/electrostaticFoam/electrostaticFoam.C b/applications/solvers/electromagnetics/electrostaticFoam/electrostaticFoam.C
index 13438974ac82383690b05e9f0b7a6a86ad9c83a9..11daf2e0b4a86817e4564f25ec1d4af4566f11b2 100644
--- a/applications/solvers/electromagnetics/electrostaticFoam/electrostaticFoam.C
+++ b/applications/solvers/electromagnetics/electrostaticFoam/electrostaticFoam.C
@@ -47,8 +47,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting iteration loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Iteration = " << runTime.timeName() << nl << endl;
 
         solve
diff --git a/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C b/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C
index 9da017da3a7cf6d695fce6808c51f99d79a066c8..e121150c7a3d4f207220738ad5634a89d5ff53b2 100644
--- a/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C
+++ b/applications/solvers/electromagnetics/mhdFoam/mhdFoam.C
@@ -71,8 +71,9 @@ int main(int argc, char *argv[])
 
     Info<< nl << "Starting time loop" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
 #       include "readPISOControls.H"
 #       include "readBPISOControls.H"
 
diff --git a/applications/solvers/financial/financialFoam/financialFoam.C b/applications/solvers/financial/financialFoam/financialFoam.C
index eabbafaf7396bdc458957fb9fc45409fa9709009..9edd07a8d0a21c4b2e9ab8de8aa9bb2af4e489d1 100644
--- a/applications/solvers/financial/financialFoam/financialFoam.C
+++ b/applications/solvers/financial/financialFoam/financialFoam.C
@@ -55,8 +55,9 @@ int main(int argc, char *argv[])
 
     Info<< "Starting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         delta == fvc::grad(V)().component(Foam::vector::X);
 
         solve
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqFoam/Make/files b/applications/solvers/heatTransfer/buoyantBoussinesqFoam/Make/files
deleted file mode 100644
index d6a7819c0e016c560a996d803a3b0e160ebce735..0000000000000000000000000000000000000000
--- a/applications/solvers/heatTransfer/buoyantBoussinesqFoam/Make/files
+++ /dev/null
@@ -1,3 +0,0 @@
-buoyantBoussinesqFoam.C
-
-EXE = $(FOAM_APPBIN)/buoyantBoussinesqFoam
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/Make/files b/applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..d7b85221d8cc06678b43d79372979e01f5606600
--- /dev/null
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/Make/files
@@ -0,0 +1,3 @@
+buoyantBoussinesqPisoFoam.C
+
+EXE = $(FOAM_APPBIN)/buoyantBoussinesqPisoFoam
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqFoam/Make/options b/applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/Make/options
similarity index 100%
rename from applications/solvers/heatTransfer/buoyantBoussinesqFoam/Make/options
rename to applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/Make/options
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqFoam/TEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/TEqn.H
similarity index 100%
rename from applications/solvers/heatTransfer/buoyantBoussinesqFoam/TEqn.H
rename to applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/TEqn.H
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqFoam/UEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/UEqn.H
similarity index 100%
rename from applications/solvers/heatTransfer/buoyantBoussinesqFoam/UEqn.H
rename to applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/UEqn.H
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqFoam/buoyantBoussinesqFoam.C b/applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/buoyantBoussinesqPisoFoam.C
similarity index 95%
rename from applications/solvers/heatTransfer/buoyantBoussinesqFoam/buoyantBoussinesqFoam.C
rename to applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/buoyantBoussinesqPisoFoam.C
index 72aab39ac044b8fe3ce59501c04204be4ce2808e..1a9f02325380fcdf22461b78323251dd0d5f90bd 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqFoam/buoyantBoussinesqFoam.C
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/buoyantBoussinesqPisoFoam.C
@@ -23,10 +23,10 @@ License
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
 Application
-    buoyantBoussinesqSimpleFoam
+    buoyantBoussinesqPisoFoam
 
 Description
-    Steady-state solver for buoyant, turbulent flow of incompressible fluids
+    Transient solver for buoyant, turbulent flow of incompressible fluids
 
     Uses the Boussinesq approximation:
     \f[
@@ -69,8 +69,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readTimeControls.H"
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqFoam/createFields.H b/applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/createFields.H
similarity index 100%
rename from applications/solvers/heatTransfer/buoyantBoussinesqFoam/createFields.H
rename to applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/createFields.H
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqFoam/pdEqn.H b/applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/pdEqn.H
similarity index 100%
rename from applications/solvers/heatTransfer/buoyantBoussinesqFoam/pdEqn.H
rename to applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/pdEqn.H
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqFoam/readTransportProperties.H b/applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/readTransportProperties.H
similarity index 100%
rename from applications/solvers/heatTransfer/buoyantBoussinesqFoam/readTransportProperties.H
rename to applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/readTransportProperties.H
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqFoam/writeAdditionalFields.H b/applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/writeAdditionalFields.H
similarity index 100%
rename from applications/solvers/heatTransfer/buoyantBoussinesqFoam/writeAdditionalFields.H
rename to applications/solvers/heatTransfer/buoyantBoussinesqPisoFoam/writeAdditionalFields.H
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C
index 5e9deff76449eda684405bbd010aa5e611404bda..c8e62813e8fd838beb1ce0c405572aa7d17b5680 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqSimpleFoam/buoyantBoussinesqSimpleFoam.C
@@ -66,8 +66,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readSIMPLEControls.H"
diff --git a/applications/solvers/heatTransfer/buoyantFoam/Make/files b/applications/solvers/heatTransfer/buoyantFoam/Make/files
deleted file mode 100644
index fccde862b263aca3909e34fc47dbb69a0d06f658..0000000000000000000000000000000000000000
--- a/applications/solvers/heatTransfer/buoyantFoam/Make/files
+++ /dev/null
@@ -1,3 +0,0 @@
-buoyantFoam.C
-
-EXE = $(FOAM_APPBIN)/buoyantFoam
diff --git a/applications/solvers/heatTransfer/buoyantPisoFoam/Make/files b/applications/solvers/heatTransfer/buoyantPisoFoam/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..65e5d52305884cf1ae68525236f7aee9537a4528
--- /dev/null
+++ b/applications/solvers/heatTransfer/buoyantPisoFoam/Make/files
@@ -0,0 +1,3 @@
+buoyantPisoFoam.C
+
+EXE = $(FOAM_APPBIN)/buoyantPisoFoam
diff --git a/applications/solvers/heatTransfer/buoyantFoam/Make/options b/applications/solvers/heatTransfer/buoyantPisoFoam/Make/options
similarity index 100%
rename from applications/solvers/heatTransfer/buoyantFoam/Make/options
rename to applications/solvers/heatTransfer/buoyantPisoFoam/Make/options
diff --git a/applications/solvers/heatTransfer/buoyantFoam/UEqn.H b/applications/solvers/heatTransfer/buoyantPisoFoam/UEqn.H
similarity index 100%
rename from applications/solvers/heatTransfer/buoyantFoam/UEqn.H
rename to applications/solvers/heatTransfer/buoyantPisoFoam/UEqn.H
diff --git a/applications/solvers/heatTransfer/buoyantFoam/buoyantFoam.C b/applications/solvers/heatTransfer/buoyantPisoFoam/buoyantPisoFoam.C
similarity index 99%
rename from applications/solvers/heatTransfer/buoyantFoam/buoyantFoam.C
rename to applications/solvers/heatTransfer/buoyantPisoFoam/buoyantPisoFoam.C
index 75eb401d3db5a512a14734f29460b6bfc76957f2..18dadabf8baaf398d16e0be06cb69eb726fd7fae 100644
--- a/applications/solvers/heatTransfer/buoyantFoam/buoyantFoam.C
+++ b/applications/solvers/heatTransfer/buoyantPisoFoam/buoyantPisoFoam.C
@@ -23,7 +23,7 @@ License
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
 Application
-    buoyantFoam
+    buoyantPisoFoam
 
 Description
     Transient Solver for buoyant, turbulent flow of compressible fluids for
diff --git a/applications/solvers/heatTransfer/buoyantFoam/createFields.H b/applications/solvers/heatTransfer/buoyantPisoFoam/createFields.H
similarity index 100%
rename from applications/solvers/heatTransfer/buoyantFoam/createFields.H
rename to applications/solvers/heatTransfer/buoyantPisoFoam/createFields.H
diff --git a/applications/solvers/heatTransfer/buoyantFoam/hEqn.H b/applications/solvers/heatTransfer/buoyantPisoFoam/hEqn.H
similarity index 100%
rename from applications/solvers/heatTransfer/buoyantFoam/hEqn.H
rename to applications/solvers/heatTransfer/buoyantPisoFoam/hEqn.H
diff --git a/applications/solvers/heatTransfer/buoyantFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantPisoFoam/pEqn.H
similarity index 100%
rename from applications/solvers/heatTransfer/buoyantFoam/pEqn.H
rename to applications/solvers/heatTransfer/buoyantPisoFoam/pEqn.H
diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C
index ebe0f4579a226a2c58ea408e02fa98dfcd733ec2..e9c48b937f876419fc118414fdfc74168c987fa6 100644
--- a/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C
+++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C
@@ -51,8 +51,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readSIMPLEControls.H"
diff --git a/applications/solvers/heatTransfer/buoyantSimpleRadiationFoam/buoyantSimpleRadiationFoam.C b/applications/solvers/heatTransfer/buoyantSimpleRadiationFoam/buoyantSimpleRadiationFoam.C
index 21059f5064914672975bace6a4bffdaf9a4f48c5..21e4912ae70a3d7971454e7ef0abce84d24d688d 100644
--- a/applications/solvers/heatTransfer/buoyantSimpleRadiationFoam/buoyantSimpleRadiationFoam.C
+++ b/applications/solvers/heatTransfer/buoyantSimpleRadiationFoam/buoyantSimpleRadiationFoam.C
@@ -54,8 +54,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readSIMPLEControls.H"
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
index 84c7c1180634d4bc1ba25b504769c7bc98001e1b..8a19fd0264c75072bd1ae1dae6df375e63cb3dc7 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
@@ -64,7 +64,7 @@ int main(int argc, char *argv[])
 #       include "setInitialDeltaT.H"
     }
 
-    while(runTime.run())
+    while (runTime.run())
     {
 #       include "readTimeControls.H"
 
diff --git a/applications/solvers/incompressible/boundaryFoam/boundaryFoam.C b/applications/solvers/incompressible/boundaryFoam/boundaryFoam.C
index a8e063c2dbc3e8124174121c744fcef4403bc946..2360fb6677cf0d10a414b6516112e54c9084861d 100644
--- a/applications/solvers/incompressible/boundaryFoam/boundaryFoam.C
+++ b/applications/solvers/incompressible/boundaryFoam/boundaryFoam.C
@@ -58,8 +58,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
         fvVectorMatrix divR = turbulence->divDevReff(U);
diff --git a/applications/solvers/incompressible/channelFoam/channelFoam.C b/applications/solvers/incompressible/channelFoam/channelFoam.C
index fe245ed82db46fdd2224694f51e7865ad2fd8f77..94d8f4acd4d3b60731369a04414b2bf903750664 100644
--- a/applications/solvers/incompressible/channelFoam/channelFoam.C
+++ b/applications/solvers/incompressible/channelFoam/channelFoam.C
@@ -51,8 +51,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for(runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
         #include "readPISOControls.H"
diff --git a/applications/solvers/incompressible/icoFoam/icoFoam.C b/applications/solvers/incompressible/icoFoam/icoFoam.C
index 993f328905ea65bce0d666ae9242e1a64c888fe0..d8c549668f58a523b6456fde6005c290025e88e9 100644
--- a/applications/solvers/incompressible/icoFoam/icoFoam.C
+++ b/applications/solvers/incompressible/icoFoam/icoFoam.C
@@ -48,8 +48,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readPISOControls.H"
diff --git a/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C b/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C
index b1ce2450174eca78f5717f197a9aef300c33befc..f949b39cfc614e2706fc897eda5a5b56686a494c 100644
--- a/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C
+++ b/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C
@@ -49,8 +49,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readPISOControls.H"
diff --git a/applications/solvers/incompressible/pisoFoam/pisoFoam.C b/applications/solvers/incompressible/pisoFoam/pisoFoam.C
index 01b349e9fa0ec0f75102e978d17cc6b169c7c162..95b4bc0843c2b1e488d42a1dda73f6a48554e0c4 100644
--- a/applications/solvers/incompressible/pisoFoam/pisoFoam.C
+++ b/applications/solvers/incompressible/pisoFoam/pisoFoam.C
@@ -52,8 +52,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readPISOControls.H"
diff --git a/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H b/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H
new file mode 100644
index 0000000000000000000000000000000000000000..125f1b23b5f77795da6ffd574496235cc8967ccd
--- /dev/null
+++ b/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H
@@ -0,0 +1,66 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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
+
+Global
+    CourantNo
+
+Description
+    Calculates and outputs the maximum Courant Number.
+
+\*---------------------------------------------------------------------------*/
+
+
+scalar CoNum = 0.0;
+scalar meanCoNum = 0.0;
+scalar waveCoNum = 0.0;
+
+if (mesh.nInternalFaces())
+{
+    surfaceScalarField SfUfbyDelta =
+        mesh.surfaceInterpolation::deltaCoeffs()
+       *mag(phi)/fvc::interpolate(h);
+
+    CoNum = max(SfUfbyDelta/mesh.magSf())
+        .value()*runTime.deltaT().value();
+
+    meanCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf()))
+        .value()*runTime.deltaT().value();
+
+    // Gravity wave Courant number
+    waveCoNum =
+        0.5*max
+        (
+            mesh.surfaceInterpolation::deltaCoeffs()
+           *sqrt(fvc::interpolate(h))
+        ).value()*sqrt(magg).value()*runTime.deltaT().value();
+}
+
+Info<< "Courant number mean: " << meanCoNum
+    << " max: " << CoNum << endl;
+
+Info<< "Gravity wave Courant number max: " << waveCoNum
+    << endl;
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/incompressible/shallowWaterFoam/Make/files b/applications/solvers/incompressible/shallowWaterFoam/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..448878dfc7318543fb9d45b08b1ccb72386298cb
--- /dev/null
+++ b/applications/solvers/incompressible/shallowWaterFoam/Make/files
@@ -0,0 +1,3 @@
+shallowWaterFoam.C
+
+EXE = $(FOAM_APPBIN)/shallowWaterFoam
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/setHotRoom/Make/options b/applications/solvers/incompressible/shallowWaterFoam/Make/options
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/setHotRoom/Make/options
rename to applications/solvers/incompressible/shallowWaterFoam/Make/options
diff --git a/applications/solvers/incompressible/shallowWaterFoam/createFields.H b/applications/solvers/incompressible/shallowWaterFoam/createFields.H
new file mode 100644
index 0000000000000000000000000000000000000000..cfc14216f7921e2c675c75a3f0b9c0a167084466
--- /dev/null
+++ b/applications/solvers/incompressible/shallowWaterFoam/createFields.H
@@ -0,0 +1,74 @@
+Info<< "Reading field h\n" << endl;
+volScalarField h
+(
+    IOobject
+    (
+        "h",
+        runTime.timeName(),
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::AUTO_WRITE
+    ),
+    mesh
+);
+
+Info<< "Reading field h0 if present\n" << endl;
+volScalarField h0
+(
+    IOobject
+    (
+        "h0",
+        runTime.findInstance("polyMesh", "points"),
+        mesh,
+        IOobject::READ_IF_PRESENT
+    ),
+    mesh,
+    dimensionedScalar("h0", dimLength, 0.0)
+);
+
+Info<< "Reading field U\n" << endl;
+volVectorField U
+(
+    IOobject
+    (
+        "U",
+        runTime.timeName(),
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::AUTO_WRITE
+    ),
+    mesh
+);
+
+Info<< "Creating field hU\n" << endl;
+volVectorField hU
+(
+    IOobject
+    (
+        "hU",
+        runTime.timeName(),
+        mesh
+    ),
+    h*U,
+    U.boundaryField().types()
+);
+
+Info<< "Creating field hTotal for post processing\n" << endl;
+volScalarField hTotal
+(
+    IOobject
+    (
+        "hTotal",
+        runTime.timeName(),
+        mesh,
+        IOobject::READ_IF_PRESENT,
+        IOobject::AUTO_WRITE
+    ),
+    h+h0
+);
+hTotal.write();
+
+#   include "createPhi.H"
+
+Info<< "Creating Coriolis Force" << endl;
+const dimensionedVector F("F", ((2.0*Omega) & gHat)*gHat);
diff --git a/applications/solvers/incompressible/shallowWaterFoam/createPhi.H b/applications/solvers/incompressible/shallowWaterFoam/createPhi.H
new file mode 100644
index 0000000000000000000000000000000000000000..0c79ffdc349755188104c3b5e08063868c0b5e6c
--- /dev/null
+++ b/applications/solvers/incompressible/shallowWaterFoam/createPhi.H
@@ -0,0 +1,57 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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
+
+Global
+    createPhi
+
+Description
+    Creates and initialises the face-flux field phi.
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef createPhi_H
+#define createPhi_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Info<< "Reading/calculating face flux field phi\n" << endl;
+
+surfaceScalarField phi
+(
+    IOobject
+    (
+        "phi",
+        runTime.timeName(),
+        mesh,
+        IOobject::READ_IF_PRESENT,
+        IOobject::AUTO_WRITE
+    ),
+    linearInterpolate(hU) & mesh.Sf()
+);
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/incompressible/shallowWaterFoam/readEnvironmentalProperties.H b/applications/solvers/incompressible/shallowWaterFoam/readEnvironmentalProperties.H
new file mode 100644
index 0000000000000000000000000000000000000000..866335eef14ff9f5a032a05d7b1b135a2b942070
--- /dev/null
+++ b/applications/solvers/incompressible/shallowWaterFoam/readEnvironmentalProperties.H
@@ -0,0 +1,21 @@
+Info<< "\nReading environmentalProperties" << endl;
+
+IOdictionary environmentalProperties
+(
+    IOobject
+    (
+        "environmentalProperties",
+        runTime.constant(),
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::NO_WRITE
+    )
+);
+
+const dimensionedVector g(environmentalProperties.lookup("g"));
+const Switch rotating(environmentalProperties.lookup("rotating"));
+const dimensionedVector Omega =
+    rotating ? environmentalProperties.lookup("Omega")
+             : dimensionedVector("Omega", -dimTime, vector(0,0,0));
+const dimensionedScalar magg = mag(g);
+const dimensionedVector gHat = g/magg;
diff --git a/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C b/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C
new file mode 100644
index 0000000000000000000000000000000000000000..4b9c23118070f37851e2c0b3f489ef9957ed6290
--- /dev/null
+++ b/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C
@@ -0,0 +1,163 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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
+
+Application
+    shallowWaterFoam
+
+Description
+    Transient solver for inviscid shallow-water equations with rotation.
+    If the geometry is 3D then it is assumed to be one layers of cells and the
+    component of the velocity normal to gravity is removed.
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+    #include "setRootCase.H"
+    #include "createTime.H"
+    #include "createMesh.H"
+    #include "readEnvironmentalProperties.H"
+    #include "createFields.H"
+
+    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+    Info<< "\nStarting time loop\n" << endl;
+
+    while (runTime.loop())
+    {
+        Info<< "\n Time = " << runTime.timeName() << nl << endl;
+
+        #include "readPISOControls.H"
+        #include "CourantNo.H"
+
+        for (int ucorr=0; ucorr<nOuterCorr; ucorr++)
+        {
+            surfaceScalarField phiv("phiv", phi/fvc::interpolate(h));
+
+            fvVectorMatrix hUEqn
+            (
+                fvm::ddt(hU)
+              + fvm::div(phiv, hU)
+            );
+
+            hUEqn.relax();
+
+            if (momentumPredictor)
+            {
+                if (rotating)
+                {
+                    solve(hUEqn + (F ^ hU) == -magg*h*fvc::grad(h + h0));
+                }
+                else
+                {
+                    solve(hUEqn == -magg*h*fvc::grad(h + h0));
+                }
+
+                // Constrain the momentum to be in the geometry if 3D geometry
+                if (mesh.nGeometricD() == 3)
+                {
+                    hU -= (gHat & hU)*gHat;
+                    hU.correctBoundaryConditions();
+                }
+            }
+
+            // --- PISO loop
+            for (int corr=0; corr<nCorr; corr++)
+            {
+                surfaceScalarField hf = fvc::interpolate(h);
+                volScalarField rUA = 1.0/hUEqn.A();
+                surfaceScalarField ghrUAf = magg*fvc::interpolate(h*rUA);
+
+                surfaceScalarField phih0 = ghrUAf*mesh.magSf()*fvc::snGrad(h0);
+
+                if (rotating)
+                {
+                    hU = rUA*(hUEqn.H() - (F ^ hU));
+                }
+                else
+                {
+                    hU = rUA*hUEqn.H();
+                }
+
+                phi = (fvc::interpolate(hU) & mesh.Sf())
+                    + fvc::ddtPhiCorr(rUA, h, hU, phi)
+                    - phih0;
+
+                for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+                {
+                    fvScalarMatrix hEqn
+                    (
+                        fvm::ddt(h)
+                      + fvc::div(phi)
+                      - fvm::laplacian(ghrUAf, h)
+                    );
+
+                    if (ucorr < nOuterCorr-1 || corr < nCorr-1)
+                    {
+                        hEqn.solve();
+                    }
+                    else
+                    {
+                        hEqn.solve(mesh.solver(h.name() + "Final"));
+                    }
+
+                    if (nonOrth == nNonOrthCorr)
+                    {
+                        phi += hEqn.flux();
+                    }
+                }
+
+                hU -= rUA*h*magg*fvc::grad(h + h0);
+
+                // Constrain the momentum to be in the geometry if 3D geometry
+                if (mesh.nGeometricD() == 3)
+                {
+                    hU -= (gHat & hU)*gHat;
+                }
+
+                hU.correctBoundaryConditions();
+            }
+        }
+
+        U == hU/h;
+        hTotal == h + h0;
+
+        runTime.write();
+
+        Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+            << "  ClockTime = " << runTime.elapsedClockTime() << " s"
+            << nl << endl;
+    }
+
+    Info<< "End\n" << endl;
+
+    return(0);
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/incompressible/simpleFoam/simpleFoam.C b/applications/solvers/incompressible/simpleFoam/simpleFoam.C
index d5b99e33ea545c9790a387dea23316dba40ff080..ec0515aa19e9fc5a1232720d37797ec430b20a91 100644
--- a/applications/solvers/incompressible/simpleFoam/simpleFoam.C
+++ b/applications/solvers/incompressible/simpleFoam/simpleFoam.C
@@ -49,8 +49,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readSIMPLEControls.H"
diff --git a/applications/solvers/multiphase/bubbleFoam/bubbleFoam.C b/applications/solvers/multiphase/bubbleFoam/bubbleFoam.C
index 4344f5d4719e5f4ce34733089e370bd9023dc1c4..4a6f845fd89c6d109ccf81e4d5e8c57ceb1933a4 100644
--- a/applications/solvers/multiphase/bubbleFoam/bubbleFoam.C
+++ b/applications/solvers/multiphase/bubbleFoam/bubbleFoam.C
@@ -53,8 +53,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readBubbleFoamControls.H"
diff --git a/applications/solvers/multiphase/settlingFoam/settlingFoam.C b/applications/solvers/multiphase/settlingFoam/settlingFoam.C
index 70fe56a37c03a1220279e1c627bac0a78cec84af..a43dd5408b7c623745dfc6a2a4c8483b521f013e 100644
--- a/applications/solvers/multiphase/settlingFoam/settlingFoam.C
+++ b/applications/solvers/multiphase/settlingFoam/settlingFoam.C
@@ -57,8 +57,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readPISOControls.H"
diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C
index 6501f24a503b8275bc867a99f28d185124f37cb0..dbc8b2774f5588f1571c6b83c1fffc8fb7bbb47e 100644
--- a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C
@@ -52,8 +52,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readPISOControls.H"
diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementFoam.C b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementFoam.C
index 4405652cd408c3739828c985a34292840129ee32..afa3c6600103181b52dee6512e480b67fa3b46a9 100644
--- a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementFoam.C
+++ b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementFoam.C
@@ -57,8 +57,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nCalculating displacement field\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Iteration: " << runTime.value() << nl << endl;
 
 #       include "readSolidDisplacementFoamControls.H"
diff --git a/applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/solidEquilibriumDisplacementFoam.C b/applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/solidEquilibriumDisplacementFoam.C
index f0f93112b9d3a0549376543f97639c3abaebf0df..00a98b25310c2d3fb7813c944ebdb9c78d971450 100644
--- a/applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/solidEquilibriumDisplacementFoam.C
+++ b/applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/solidEquilibriumDisplacementFoam.C
@@ -55,8 +55,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nCalculating displacement field\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Iteration: " << runTime.value() << nl << endl;
 
 #       include "readSteadyStressFoamControls.H"
diff --git a/applications/test/LduMatrix/LduMatrixTest3.C b/applications/test/LduMatrix/LduMatrixTest3.C
index 18f3a7391fe3bdab8a8de6263264a02ecda10d37..729bc593295b49cf38f391af7286e67bc196acfd 100644
--- a/applications/test/LduMatrix/LduMatrixTest3.C
+++ b/applications/test/LduMatrix/LduMatrixTest3.C
@@ -53,8 +53,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readPISOControls.H"
diff --git a/applications/test/nearWallDist-wave/testWallDist2.C b/applications/test/nearWallDist-wave/testWallDist2.C
index c84b7fb118cc98a587d2a0296f1c76967e7b2ac8..304cdba3d6560da29ebc360cb28e819070da2518 100644
--- a/applications/test/nearWallDist-wave/testWallDist2.C
+++ b/applications/test/nearWallDist-wave/testWallDist2.C
@@ -120,8 +120,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << endl;
 
 
diff --git a/applications/utilities/mesh/manipulation/moveDynamicMesh/moveDynamicMesh.C b/applications/utilities/mesh/manipulation/moveDynamicMesh/moveDynamicMesh.C
index 1e2ec46744ce128dacb0c5b31d5cfa0d6c6d9986..64d65e3affa927e4e3f77d5395106fbfb728a4d4 100644
--- a/applications/utilities/mesh/manipulation/moveDynamicMesh/moveDynamicMesh.C
+++ b/applications/utilities/mesh/manipulation/moveDynamicMesh/moveDynamicMesh.C
@@ -46,8 +46,9 @@ int main(int argc, char *argv[])
 #   include "createTime.H"
 #   include "createDynamicFvMesh.H"
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << endl;
 
         mesh.update();
diff --git a/applications/utilities/mesh/manipulation/moveEngineMesh/moveEngineMesh.C b/applications/utilities/mesh/manipulation/moveEngineMesh/moveEngineMesh.C
index 75cd8ef583d876f490773e9d63309d127854ec3d..a10782b553c5b4b9c94674a2473e248b3c53780c 100644
--- a/applications/utilities/mesh/manipulation/moveEngineMesh/moveEngineMesh.C
+++ b/applications/utilities/mesh/manipulation/moveEngineMesh/moveEngineMesh.C
@@ -47,8 +47,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.theta() << " CA-deg\n" << endl;
 
         mesh.move();
diff --git a/applications/utilities/mesh/manipulation/moveMesh/moveMesh.C b/applications/utilities/mesh/manipulation/moveMesh/moveMesh.C
index da82839b1b7c3edd429e66a8f7dad9bad71c69d0..82e6e45a752293648cabf0a845e0117e9f5c419e 100644
--- a/applications/utilities/mesh/manipulation/moveMesh/moveMesh.C
+++ b/applications/utilities/mesh/manipulation/moveMesh/moveMesh.C
@@ -46,8 +46,9 @@ int main(int argc, char *argv[])
 
     autoPtr<Foam::motionSolver> motionPtr = motionSolver::New(mesh);
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << endl;
 
         mesh.movePoints(motionPtr->newPoints());
diff --git a/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposer.C b/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposer.C
index 75b3ce779a8d16deecdf2dda3b80cbba5a5451d8..15eb039bfd847dbeddb8dd6414c57711d72cad5b 100644
--- a/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposer.C
+++ b/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposer.C
@@ -59,7 +59,6 @@ processorVolPatchFieldDecomposer
     addressing_(addressingSlice.size()),
     weights_(addressingSlice.size())
 {
-    const scalarField& weights = mesh.weights().internalField();
     const labelList& own = mesh.faceOwner();
     const labelList& neighb = mesh.faceNeighbour();
 
@@ -72,15 +71,22 @@ processorVolPatchFieldDecomposer
         {
             // This is a regular face. it has been an internal face
             // of the original mesh and now it has become a face
-            // on the parallel boundary
-            addressing_[i].setSize(2);
-            weights_[i].setSize(2);
+            // on the parallel boundary.
+            // Give face the value of the neighbour.
 
-            addressing_[i][0] = own[ai];
-            addressing_[i][1] = neighb[ai];
+            addressing_[i].setSize(1);
+            weights_[i].setSize(1);
+            weights_[i][0] = 1.0;
 
-            weights_[i][0] = weights[ai];
-            weights_[i][1] = 1.0 - weights[ai];
+            if (addressingSlice[i] >= 0)
+            {
+                // I have the owner so use the neighbour value
+                addressing_[i][0] = neighb[ai];
+            }
+            else
+            {
+                addressing_[i][0] = own[ai];
+            }
         }
         else
         {
@@ -89,7 +95,7 @@ processorVolPatchFieldDecomposer
             // do the interpolation properly (I would need to look
             // up the different (face) list of data), so I will
             // just grab the value from the owner cell
-            // 
+
             addressing_[i].setSize(1);
             weights_[i].setSize(1);
 
diff --git a/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C b/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C
index 3132872c035eba953925e5361020252a8be3e018..45faede694f7a240f624fd4b6054da2207b49693 100644
--- a/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C
+++ b/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C
@@ -74,7 +74,7 @@ namespace Foam
         }
         else
         {
-            functionObjectList fol(runTime, runTime.controlDict());
+            functionObjectList fol(runTime);
             fol.start();
             fol.execute();
         }
diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files
index 92c81085ab93aad0624f2bd3ba873d54dcd9dd9d..833be5ccd565a1f21b19382b5eeb4a3150f38fbf 100644
--- a/src/OpenFOAM/Make/files
+++ b/src/OpenFOAM/Make/files
@@ -144,11 +144,14 @@ $(regIOobject)/regIOobjectWrite.C
 
 db/IOobjectList/IOobjectList.C
 db/objectRegistry/objectRegistry.C
-db/functionObject/functionObject.C
-db/functionObjectList/functionObjectList.C
 db/CallbackRegistry/CallbackRegistryName.C
 db/dlLibraryTable/dlLibraryTable.C
 
+db/functionObjects/functionObject/functionObject.C
+db/functionObjects/functionObjectList/functionObjectList.C
+db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.C
+
+
 Time = db/Time
 $(Time)/TimePaths.C
 $(Time)/TimeState.C
diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C
index 26d2182e95fbe6c5c9b5c68bd44d73cf819f4e8b..0a3cbedc187b59c2dd02dacb156638662ea190d2 100644
--- a/src/OpenFOAM/db/Time/Time.C
+++ b/src/OpenFOAM/db/Time/Time.C
@@ -352,25 +352,27 @@ Foam::Time::Time
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::Time::~Time()
-{}
+{
+    // destroy function objects first
+    functionObjects_.clear();
+}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 Foam::word Foam::Time::timeName(const scalar t)
 {
-    std::ostringstream osBuffer;
-    osBuffer.setf(ios_base::fmtflags(format_), ios_base::floatfield);
-    osBuffer.precision(precision_);
-    osBuffer << t;
-    return osBuffer.str();
+    std::ostringstream buf;
+    buf.setf(ios_base::fmtflags(format_), ios_base::floatfield);
+    buf.precision(precision_);
+    buf << t;
+    return buf.str();
 }
 
 
 Foam::word Foam::Time::timeName() const
 {
     return dimensionedScalar::name();
-    //return timeName(timeOutputValue());
 }
 
 
@@ -432,7 +434,7 @@ Foam::instant Foam::Time::findClosestTime(const scalar t) const
     return times[nearestIndex];
 }
 
-//
+
 // This should work too,
 // if we don't worry about checking "constant" explicitly
 //
@@ -490,9 +492,28 @@ bool Foam::Time::run() const
 {
     bool running = value() < (endTime_ - 0.5*deltaT_);
 
-    if (!subCycling_ && !running && timeIndex_ != startTimeIndex_)
+    if (!subCycling_)
+    {
+        // only execute when the condition is no longer true
+        // ie, when exiting the control loop
+        if (!running && timeIndex_ != startTimeIndex_)
+        {
+            // Note, end() also calls an indirect start() as required
+            functionObjects_.end();
+        }
+    }
+
+    return running;
+}
+
+
+bool Foam::Time::loop()
+{
+    bool running = run();
+
+    if (running)
     {
-        const_cast<functionObjectList&>(functionObjects_).execute();
+        operator++();
     }
 
     return running;
@@ -501,7 +522,7 @@ bool Foam::Time::run() const
 
 bool Foam::Time::end() const
 {
-    return (value() > (endTime_ + 0.5*deltaT_));
+    return value() > (endTime_ + 0.5*deltaT_);
 }
 
 
@@ -611,9 +632,7 @@ Foam::Time& Foam::Time::operator+=(const dimensionedScalar& deltaT)
 Foam::Time& Foam::Time::operator+=(const scalar deltaT)
 {
     setDeltaT(deltaT);
-    operator++();
-
-    return *this;
+    return operator++();
 }
 
 
@@ -643,22 +662,22 @@ Foam::Time& Foam::Time::operator++()
         setTime(0.0, timeIndex_);
     }
 
-    switch(writeControl_)
+    switch (writeControl_)
     {
         case wcTimeStep:
-            outputTime_ = !(timeIndex_%label(writeInterval_));
+            outputTime_ = !(timeIndex_ % label(writeInterval_));
         break;
 
         case wcRunTime:
         case wcAdjustableRunTime:
         {
-            label outputTimeIndex =
+            label outputIndex =
                 label(((value() - startTime_) + 0.5*deltaT_)/writeInterval_);
 
-            if (outputTimeIndex > outputTimeIndex_)
+            if (outputIndex > outputTimeIndex_)
             {
                 outputTime_ = true;
-                outputTimeIndex_ = outputTimeIndex;
+                outputTimeIndex_ = outputIndex;
             }
             else
             {
@@ -669,13 +688,11 @@ Foam::Time& Foam::Time::operator++()
 
         case wcCpuTime:
         {
-            label outputTimeIndex =
-                label(elapsedCpuTime()/writeInterval_);
-
-            if (outputTimeIndex > outputTimeIndex_)
+            label outputIndex = label(elapsedCpuTime()/writeInterval_);
+            if (outputIndex > outputTimeIndex_)
             {
                 outputTime_ = true;
-                outputTimeIndex_ = outputTimeIndex;
+                outputTimeIndex_ = outputIndex;
             }
             else
             {
@@ -686,11 +703,11 @@ Foam::Time& Foam::Time::operator++()
 
         case wcClockTime:
         {
-            label outputTimeIndex = label(elapsedClockTime()/writeInterval_);
-            if (outputTimeIndex > outputTimeIndex_)
+            label outputIndex = label(elapsedClockTime()/writeInterval_);
+            if (outputIndex > outputTimeIndex_)
             {
                 outputTime_ = true;
-                outputTimeIndex_ = outputTimeIndex;
+                outputTimeIndex_ = outputIndex;
             }
             else
             {
@@ -698,8 +715,9 @@ Foam::Time& Foam::Time::operator++()
             }
         }
         break;
-    };
+    }
 
+    // see if endTime needs adjustment to stop at the next run()/end() check
     if (!end())
     {
         if (stopAt_ == saNoWriteNow)
diff --git a/src/OpenFOAM/db/Time/Time.H b/src/OpenFOAM/db/Time/Time.H
index f69f11b581f87ba334c0af3e20b1e3fe2799d938..261d9eb0a2387497147a7c4ea364465a8dd79b4e 100644
--- a/src/OpenFOAM/db/Time/Time.H
+++ b/src/OpenFOAM/db/Time/Time.H
@@ -26,7 +26,7 @@ Class
     Foam::Time
 
 Description
-    Class to control time during FOAM simulations which is also the
+    Class to control time during OpenFOAM simulations that is also the
     top-level objectRegistry.
 
 SourceFiles
@@ -109,7 +109,7 @@ protected:
 
     // Protected data
 
-        label startTimeIndex_;
+        label  startTimeIndex_;
         scalar startTime_;
         scalar endTime_;
 
@@ -121,10 +121,10 @@ protected:
 
         scalar writeInterval_;
 
-        label purgeWrite_;
+        label  purgeWrite_;
         mutable FIFOStack<word> previousOutputTimes_;
 
-        //- Is the time currently being sub-cycled
+        //- Is the time currently being sub-cycled?
         bool subCycling_;
 
         //- Time directory name format
@@ -157,21 +157,21 @@ private:
         //- Default graph format
         word graphFormat_;
 
-        //- Is runtim modification of dictionaries allowed
+        //- Is runtime modification of dictionaries allowed?
         Switch runTimeModifiable_;
 
         //- Instantiate a dummy class to cause the reading of dynamic libraries
         dlLibraryTable::readDlLibrary readLibs_;
 
         //- Function objects executed at start and on ++, +=
-        functionObjectList functionObjects_;
+        mutable functionObjectList functionObjects_;
 
 
 public:
 
     TypeName("time");
 
-    //- The default control dictionary name
+    //- The default control dictionary name (normally "controlDict")
     static word controlDictName;
 
 
@@ -282,8 +282,8 @@ public:
             void readModifiedObjects();
 
             //- Return the location of "dir" containing the file "name".
-            //  (Used in reading mesh data)
-            //  If name is null search for the directory "dir" only
+            //  (eg, used in reading mesh data)
+            //  If name is null, search for the directory "dir" only
             word findInstance
             (
                 const fileName& dir,
@@ -291,7 +291,7 @@ public:
                 const IOobject::readOption rOpt = IOobject::MUST_READ
             ) const;
 
-            //- Search tha case for valid time directories
+            //- Search the case for valid time directories
             instantList times() const;
 
             //- Search the case for the time directory path
@@ -307,9 +307,9 @@ public:
             //- Write using given format, version and compression
             virtual bool writeObject
             (
-                IOstream::streamFormat fmt,
-                IOstream::versionNumber ver,
-                IOstream::compressionType cmp
+                IOstream::streamFormat,
+                IOstream::versionNumber,
+                IOstream::compressionType
             ) const;
 
             //- Write the objects now and continue the run
@@ -348,10 +348,43 @@ public:
 
         // Check
 
-            //- Return true if run should continue
+            //- Return true if run should continue,
+            //  also invokes the functionObjectList::end() method
+            //  when the time goes out of range
+            //  @note
+            //  For correct behaviour, the following style of time-loop
+            //  is recommended:
+            //  @code
+            //      while (runTime.run())
+            //      {
+            //          runTime++;
+            //          solve;
+            //          runTime.write();
+            //      }
+            //  @endcode
             virtual bool run() const;
 
-            //- Return true if end of run
+            //- Return true if run should continue and if so increment time
+            //  also invokes the functionObjectList::end() method
+            //  when the time goes out of range
+            //  @note
+            //  For correct behaviour, the following style of time-loop
+            //  is recommended:
+            //  @code
+            //      while (runTime.loop())
+            //      {
+            //          solve;
+            //          runTime.write();
+            //      }
+            //  @endcode
+            virtual bool loop();
+
+            //- Return true if end of run,
+            //  does not invoke any functionObject methods
+            //  @note
+            //      The rounding heuristics near endTime mean that
+            //      @code run() @endcode and @code !end() @endcode may
+            //      not yield the same result
             virtual bool end() const;
 
 
@@ -400,16 +433,18 @@ public:
 
     // Member operators
 
-        //- Set deltaT to that specified and increment time
+        //- Set deltaT to that specified and increment time via operator++()
         virtual Time& operator+=(const dimensionedScalar&);
 
-        //- Set deltaT to that specified and increment time
+        //- Set deltaT to that specified and increment time via operator++()
         virtual Time& operator+=(const scalar);
 
-        //- Prefix increment
+        //- Prefix increment,
+        //  also invokes the functionObjectList::start() or
+        //  functionObjectList::execute() method, depending on the time-index
         virtual Time& operator++();
 
-        //- Postfix increment
+        //- Postfix increment, this is identical to the prefix increment
         virtual Time& operator++(int);
 };
 
diff --git a/src/OpenFOAM/db/Time/TimeIO.C b/src/OpenFOAM/db/Time/TimeIO.C
index 1f1df0507e9340410546d9fc5fb222d11740a0c7..58197b520e455b5c0623c133755d37d99eb8d343 100644
--- a/src/OpenFOAM/db/Time/TimeIO.C
+++ b/src/OpenFOAM/db/Time/TimeIO.C
@@ -61,7 +61,7 @@ void Foam::Time::readDict()
 
     if (oldWriteInterval != writeInterval_)
     {
-        switch(writeControl_)
+        switch (writeControl_)
         {
             case wcRunTime:
             case wcAdjustableRunTime:
@@ -180,11 +180,7 @@ void Foam::Time::readDict()
     }
 
     controlDict_.readIfPresent("graphFormat", graphFormat_);
-
-    if (controlDict_.found("runTimeModifiable"))
-    {
-        runTimeModifiable_ = Switch(controlDict_.lookup("runTimeModifiable"));
-    }
+    controlDict_.readIfPresent("runTimeModifiable", runTimeModifiable_);
 }
 
 
@@ -268,25 +264,14 @@ bool Foam::Time::writeObject
         timeDict.add("deltaT", deltaT_);
         timeDict.add("deltaT0", deltaT0_);
 
-        timeDict.regIOobject::writeObject
-        (
-            fmt,
-            ver,
-            cmp
-        );
-
-        bool writeOK = objectRegistry::writeObject
-        (
-            fmt,
-            ver,
-            cmp
-        );
+        timeDict.regIOobject::writeObject(fmt, ver, cmp);
+        bool writeOK = objectRegistry::writeObject(fmt, ver, cmp);
 
         if (writeOK && purgeWrite_)
         {
             previousOutputTimes_.push(timeName());
 
-            while(previousOutputTimes_.size() > purgeWrite_)
+            while (previousOutputTimes_.size() > purgeWrite_)
             {
                 rmDir(objectRegistry::path(previousOutputTimes_.pop()));
             }
@@ -310,7 +295,7 @@ bool Foam::Time::writeNow()
 
 bool Foam::Time::writeAndEnd()
 {
-    stopAt_ = saWriteNow;
+    stopAt_  = saWriteNow;
     endTime_ = value();
 
     return writeNow();
diff --git a/src/OpenFOAM/db/Time/subCycleTime.H b/src/OpenFOAM/db/Time/subCycleTime.H
index 8081edbb1718a8822a4b83e0b57174e2bf007d4e..01082625fbb03179cd94c1f528a249a01a25c9e3 100644
--- a/src/OpenFOAM/db/Time/subCycleTime.H
+++ b/src/OpenFOAM/db/Time/subCycleTime.H
@@ -44,7 +44,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class subCycleTimeTime Declaration
+                        Class subCycleTime Declaration
 \*---------------------------------------------------------------------------*/
 
 class subCycleTime
@@ -62,7 +62,7 @@ public:
     // Constructors
 
         //- Construct from original time and number of sub-cycles
-        subCycleTime(Time& t, const label nSubCycles);
+        subCycleTime(Time&, const label nSubCycles);
 
 
     // Destructor
@@ -72,6 +72,7 @@ public:
 
     // Member functions
 
+        //- Return true if the number of sub-cycles has been reached
         bool end() const;
 
         //- End the sub-cycling and reset the time-state
diff --git a/src/sampling/outputFilters/IOOutputFilter/IOOutputFilter.C b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C
similarity index 100%
rename from src/sampling/outputFilters/IOOutputFilter/IOOutputFilter.C
rename to src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C
diff --git a/src/sampling/outputFilters/IOOutputFilter/IOOutputFilter.H b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H
similarity index 100%
rename from src/sampling/outputFilters/IOOutputFilter/IOOutputFilter.H
rename to src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H
diff --git a/src/sampling/outputFilters/OutputFilterFunctionObject/OutputFilterFunctionObject.C b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C
similarity index 93%
rename from src/sampling/outputFilters/OutputFilterFunctionObject/OutputFilterFunctionObject.C
rename to src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C
index 45305257e9f760ea57028d8dd395937c36a56479..15a32c1e8e3b979d53da4aefac77e0e65afe4682 100644
--- a/src/sampling/outputFilters/OutputFilterFunctionObject/OutputFilterFunctionObject.C
+++ b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C
@@ -65,6 +65,20 @@ Foam::OutputFilterFunctionObject<OutputFilter>::OutputFilterFunctionObject
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+template<class OutputFilter>
+void Foam::OutputFilterFunctionObject<OutputFilter>::on()
+{
+    enabled_ = true;
+}
+
+
+template<class OutputFilter>
+void Foam::OutputFilterFunctionObject<OutputFilter>::off()
+{
+    enabled_ = false;
+}
+
+
 template<class OutputFilter>
 bool Foam::OutputFilterFunctionObject<OutputFilter>::start()
 {
@@ -120,16 +134,19 @@ bool Foam::OutputFilterFunctionObject<OutputFilter>::execute()
 
 
 template<class OutputFilter>
-void Foam::OutputFilterFunctionObject<OutputFilter>::on()
+bool Foam::OutputFilterFunctionObject<OutputFilter>::end()
 {
-    enabled_ = true;
-}
+    if (enabled_)
+    {
+        ptr_->end();
 
+        if (enabled_ && outputControl_.output())
+        {
+            ptr_->write();
+        }
+    }
 
-template<class OutputFilter>
-void Foam::OutputFilterFunctionObject<OutputFilter>::off()
-{
-    enabled_ = false;
+    return true;
 }
 
 
diff --git a/src/sampling/outputFilters/OutputFilterFunctionObject/OutputFilterFunctionObject.H b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H
similarity index 89%
rename from src/sampling/outputFilters/OutputFilterFunctionObject/OutputFilterFunctionObject.H
rename to src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H
index 7800d764a626728cdd421401a9fd8ab47a769a80..5ab4ebbecec37c35c8e76d5d1eb5653e0ed13fad 100644
--- a/src/sampling/outputFilters/OutputFilterFunctionObject/OutputFilterFunctionObject.H
+++ b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H
@@ -53,7 +53,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                   Class OutputFilterFunctionObject Declaration
+                 Class OutputFilterFunctionObject Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class OutputFilter>
@@ -69,7 +69,7 @@ class OutputFilterFunctionObject
         word regionName_;
         word dictName_;
 
-        //- Switch for the execution of the functionObjects
+        //- Switch for the execution of the functionObject
         bool enabled_;
 
         outputFilterOutputControl outputControl_;
@@ -114,20 +114,25 @@ public:
             return name_;
         }
 
-        //- start is called at the start of the time-loop
-        virtual bool start();
-
-        //- execute is called at each ++ or += of the time-loop
-        virtual bool execute();
-
         //- Switch the function object on
         virtual void on();
 
         //- Switch the function object off
         virtual void off();
 
-        //- Read and set the function object if its data has changed
-        virtual bool read(const dictionary& dict);
+
+        //- Called at the start of the time-loop
+        virtual bool start();
+
+        //- Called at each ++ or += of the time-loop
+        virtual bool execute();
+
+        //- Called when Time::run() determines that the time-loop exits
+        virtual bool end();
+
+
+        //- Read and set the function object if its data have changed
+        virtual bool read(const dictionary&);
 };
 
 
diff --git a/src/OpenFOAM/db/functionObject/functionObject.C b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C
similarity index 84%
rename from src/OpenFOAM/db/functionObject/functionObject.C
rename to src/OpenFOAM/db/functionObjects/functionObject/functionObject.C
index c7eb2793035faa1619e2baa7a2735802a96ac12d..a731621ff676fae227b64f15f4387b2a006170dd 100644
--- a/src/OpenFOAM/db/functionObject/functionObject.C
+++ b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C
@@ -30,11 +30,8 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-namespace Foam
-{
-    defineRunTimeSelectionTable(functionObject, dictionary);
-    int functionObject::debug(::Foam::debug::debugSwitch("functionObject", 0));
-}
+defineRunTimeSelectionTable(Foam::functionObject, dictionary);
+int Foam::functionObject::debug(Foam::debug::debugSwitch("functionObject", 0));
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
@@ -71,10 +68,10 @@ Foam::autoPtr<Foam::functionObject> Foam::functionObject::New
         FatalErrorIn
         (
             "functionObject::New"
-            "(const word& functionType, const Time&, const dictionary&)"
+            "(const word& name, const Time&, const dictionary&)"
         )   << "Unknown function type "
-            << functionType << endl << endl
-            << "Table of functionObjects is empty"
+            << functionType << nl << nl
+            << "Table of functionObjects is empty" << endl
             << exit(FatalError);
     }
 
@@ -86,11 +83,11 @@ Foam::autoPtr<Foam::functionObject> Foam::functionObject::New
         FatalErrorIn
         (
             "functionObject::New"
-            "(const word& functionType, const Time&, const dictionary&)"
+            "(const word& name, const Time&, const dictionary&)"
         )   << "Unknown function type "
-            << functionType << endl << endl
-            << "Valid functions are : " << endl
-            << dictionaryConstructorTablePtr_->toc()
+            << functionType << nl << nl
+            << "Valid functions are : " << nl
+            << dictionaryConstructorTablePtr_->toc() << endl
             << exit(FatalError);
     }
 
@@ -106,6 +103,12 @@ Foam::functionObject::~functionObject()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+bool Foam::functionObject::end()
+{
+    return execute();
+}
+
+
 Foam::autoPtr<Foam::functionObject> Foam::functionObject::iNew::operator()
 (
     const word& name,
diff --git a/src/OpenFOAM/db/functionObject/functionObject.H b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H
similarity index 89%
rename from src/OpenFOAM/db/functionObject/functionObject.H
rename to src/OpenFOAM/db/functionObjects/functionObject/functionObject.H
index 72bf1b166cb7297206f66eae85a6307989a1a578..94a2f7aea4848f65b2279142f4dc0eb8e2c9b642 100644
--- a/src/OpenFOAM/db/functionObject/functionObject.H
+++ b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H
@@ -121,7 +121,7 @@ public:
 
     // Selectors
 
-        //- Select from Time and Istream
+        //- Select from dictionary, based on its "type" entry
         static autoPtr<functionObject> New
         (
             const word& name,
@@ -137,14 +137,18 @@ public:
 
     // Member Functions
 
-        //- start is called at the start of the time-loop
+        //- Called at the start of the time-loop
         virtual bool start() = 0;
 
-        //- execute is called at each ++ or += of the time-loop
+        //- Called at each ++ or += of the time-loop
         virtual bool execute() = 0;
 
-        //- Read and set the function object if its data has changed
-        virtual bool read(const dictionary& dict) = 0;
+        //- Called when Time::run() determines that the time-loop exits.
+        //  By default it simply calls execute().
+        virtual bool end();
+
+        //- Read and set the function object if its data have changed
+        virtual bool read(const dictionary&) = 0;
 };
 
 
diff --git a/src/OpenFOAM/db/functionObjectList/functionObjectList.C b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
similarity index 68%
rename from src/OpenFOAM/db/functionObjectList/functionObjectList.C
rename to src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
index 00f6131547f6e364bd211c2fafd10e0e06973ea4..0e52db7fc71ae2cff6e5307884af84000cd8a5d3 100644
--- a/src/OpenFOAM/db/functionObjectList/functionObjectList.C
+++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
@@ -29,7 +29,8 @@ License
 
 // * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * * //
 
-Foam::functionObject* Foam::functionObjectList::remove(const word& key)
+Foam::functionObject*
+Foam::functionObjectList::remove(const word& key, label& oldIndex)
 {
     functionObject* ptr = 0;
 
@@ -38,10 +39,16 @@ Foam::functionObject* Foam::functionObjectList::remove(const word& key)
 
     if (fnd != indices_.end())
     {
-        // remove the pointer from the old list
-        ptr = functions_.set(fnd(), 0).ptr();
+        oldIndex = fnd();
+
+        // retrieve the pointer and remove it from the old list
+        ptr = this->set(oldIndex, 0).ptr();
         indices_.erase(fnd);
     }
+    else
+    {
+        oldIndex = -1;
+    }
 
     return ptr;
 }
@@ -55,7 +62,8 @@ Foam::functionObjectList::functionObjectList
     const bool execution
 )
 :
-    functions_(),
+    PtrList<functionObject>(),
+    digests_(),
     indices_(),
     time_(t),
     parentDict_(t.controlDict()),
@@ -71,7 +79,8 @@ Foam::functionObjectList::functionObjectList
     const bool execution
 )
 :
-    functions_(),
+    PtrList<functionObject>(),
+    digests_(),
     indices_(),
     time_(t),
     parentDict_(parentDict),
@@ -88,6 +97,34 @@ Foam::functionObjectList::~functionObjectList()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+void Foam::functionObjectList::clear()
+{
+    PtrList<functionObject>::clear();
+    digests_.clear();
+    indices_.clear();
+    updated_ = false;
+}
+
+
+void Foam::functionObjectList::on()
+{
+    execution_ = true;
+}
+
+
+void Foam::functionObjectList::off()
+{
+    // for safety, also force a read() when execution is turned back on
+    updated_ = execution_ = false;
+}
+
+
+bool Foam::functionObjectList::status() const
+{
+    return execution_;
+}
+
+
 bool Foam::functionObjectList::start()
 {
     return read();
@@ -105,7 +142,12 @@ bool Foam::functionObjectList::execute()
             read();
         }
 
-        forAllIter(PtrList<functionObject>, functions_, iter)
+        forAllIter
+        (
+            PtrList<functionObject>,
+            static_cast<PtrList<functionObject>&>(*this),
+            iter
+        )
         {
             ok = iter().execute() && ok;
         }
@@ -115,15 +157,29 @@ bool Foam::functionObjectList::execute()
 }
 
 
-void Foam::functionObjectList::on()
+bool Foam::functionObjectList::end()
 {
-    execution_ = true;
-}
+    bool ok = true;
+
+    if (execution_)
+    {
+        if (!updated_)
+        {
+            read();
+        }
 
+        forAllIter
+        (
+            PtrList<functionObject>,
+            static_cast<PtrList<functionObject>&>(*this),
+            iter
+        )
+        {
+            ok = iter().end() && ok;
+        }
+    }
 
-void Foam::functionObjectList::off()
-{
-    execution_ = false;
+    return ok;
 }
 
 
@@ -143,6 +199,7 @@ bool Foam::functionObjectList::read()
     if (entryPtr)
     {
         PtrList<functionObject> newPtrs;
+        List<SHA1Digest> newDigs;
         HashTable<label> newIndices;
 
         label nFunc = 0;
@@ -151,7 +208,9 @@ bool Foam::functionObjectList::read()
         {
             // a dictionary of functionObjects
             const dictionary& functionDicts = entryPtr->dict();
+
             newPtrs.setSize(functionDicts.size());
+            newDigs.setSize(functionDicts.size());
 
             forAllConstIter(dictionary, functionDicts, iter)
             {
@@ -163,11 +222,17 @@ bool Foam::functionObjectList::read()
                 const word& key = iter().keyword();
                 const dictionary& dict = iter().dict();
 
-                functionObject* objPtr = remove(key);
+                newDigs[nFunc] = dict.digest();
+
+                label oldIndex;
+                functionObject* objPtr = remove(key, oldIndex);
                 if (objPtr)
                 {
-                    // existing functionObject
-                    ok = objPtr->read(dict) && ok;
+                    // an existing functionObject, and dictionary changed
+                    if (newDigs[nFunc] != digests_[oldIndex])
+                    {
+                        ok = objPtr->read(dict) && ok;
+                    }
                 }
                 else
                 {
@@ -185,7 +250,9 @@ bool Foam::functionObjectList::read()
         {
             // a list of functionObjects
             PtrList<entry> functionDicts(entryPtr->stream());
+
             newPtrs.setSize(functionDicts.size());
+            newDigs.setSize(functionDicts.size());
 
             forAllIter(PtrList<entry>, functionDicts, iter)
             {
@@ -197,11 +264,17 @@ bool Foam::functionObjectList::read()
                 const word& key = iter().keyword();
                 const dictionary& dict = iter().dict();
 
-                functionObject* objPtr = remove(key);
+                newDigs[nFunc] = dict.digest();
+
+                label oldIndex;
+                functionObject* objPtr = remove(key, oldIndex);
                 if (objPtr)
                 {
-                    // existing functionObject
-                    ok = objPtr->read(dict) && ok;
+                    // an existing functionObject, and dictionary changed
+                    if (newDigs[nFunc] != digests_[oldIndex])
+                    {
+                        ok = objPtr->read(dict) && ok;
+                    }
                 }
                 else
                 {
@@ -218,15 +291,18 @@ bool Foam::functionObjectList::read()
 
         // safety:
         newPtrs.setSize(nFunc);
+        newDigs.setSize(nFunc);
 
-        // update PtrList of functionObjects
-        // also deletes existing, unused functionObjects
-        functions_.transfer(newPtrs);
+        // updating the PtrList of functionObjects also deletes any existing,
+        // but unused functionObjects
+        PtrList<functionObject>::transfer(newPtrs);
+        digests_.transfer(newDigs);
         indices_.transfer(newIndices);
     }
     else
     {
-        functions_.clear();
+        PtrList<functionObject>::clear();
+        digests_.clear();
         indices_.clear();
     }
 
diff --git a/src/OpenFOAM/db/functionObjectList/functionObjectList.H b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H
similarity index 68%
rename from src/OpenFOAM/db/functionObjectList/functionObjectList.H
rename to src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H
index f8be2e44baa518d6c2096e5ae7f87cf7ed2982dc..ea2c43adf328e285fcde866a85a9997449ce8353 100644
--- a/src/OpenFOAM/db/functionObjectList/functionObjectList.H
+++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H
@@ -26,8 +26,8 @@ Class
     Foam::functionObjectList
 
 Description
-    List of function objects with execute() function that is called for each
-    object.
+    List of function objects with start(), execute() and end() functions
+    that is called for each object.
 
 See Also
     Foam::functionObject and Foam::OutputFilterFunctionObject
@@ -40,9 +40,10 @@ SourceFiles
 #ifndef functionObjectList_H
 #define functionObjectList_H
 
+#include "PtrList.H"
 #include "functionObject.H"
+#include "SHA1Digest.H"
 #include "HashTable.H"
-#include "PtrList.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -54,20 +55,20 @@ namespace Foam
 \*---------------------------------------------------------------------------*/
 
 class functionObjectList
+:
+    private PtrList<functionObject>
 {
     // Private data
 
-        //- A list of function objects
-        //  Avoid 'is-a' relationship for protection
-        PtrList<functionObject> functions_;
+        //- A list of SHA1 digests for the function object dictionaries
+        List<SHA1Digest> digests_;
 
-        //- Quick lookup of the index into the PtrList<functionObject>
-        //  Currently only used to manage rereading/deletion
-        HashTable<label>  indices_;
+        //- Quick lookup of the index into functions/digests
+        HashTable<label> indices_;
 
         const Time& time_;
 
-        //- Dictionary containing the "functions" entry
+        //- The parent dictionary containing a "functions" entry
         //  This entry can either be a list or a dictionary of
         //  functionObject specifications.
         const dictionary& parentDict_;
@@ -75,15 +76,16 @@ class functionObjectList
         //- Switch for the execution of the functionObjects
         bool execution_;
 
-        //- Tracks if read() was called while execution was turned off
+        //- Tracks if read() was called while execution is on
         bool updated_;
 
 
     // Private Member Functions
 
-        //- Remove and return the function object pointer by name.
-        //  Return NULL if it didn't exist.
-        functionObject* remove(const word&);
+        //- Remove and return the function object pointer by name,
+        //  and returns the old index via the parameter.
+        //  Returns a NULL pointer (and index -1) if it didn't exist.
+        functionObject* remove(const word&, label& oldIndex);
 
         //- Disallow default bitwise copy construct
         functionObjectList(const functionObjectList&);
@@ -105,8 +107,11 @@ public:
         );
 
 
-        //- Construct from Time, dictionary with "functions" entry
-        //  and the execution setting
+        //- Construct from Time, a dictionary with "functions" entry
+        //  and the execution setting.
+        //  @param[in]  parentDict - the parent dictionary containing
+        //    a "functions" entry, which can either be a list or a dictionary
+        //    of functionObject specifications.
         functionObjectList
         (
             const Time&,
@@ -122,11 +127,15 @@ public:
 
     // Member Functions
 
-        //- Start is called at the start of the time-loop
-        virtual bool start();
+        //- Return the number of elements in the List.
+        using PtrList<functionObject>::size;
+
+        //- Return true if the List is empty (ie, size() is zero).
+        using PtrList<functionObject>::empty;
+
+        //- Clear the list of function objects
+        virtual void clear();
 
-        //- Execute is called at each ++ or += of the time-loop
-        virtual bool execute();
 
         //- Switch the function objects on
         virtual void on();
@@ -134,8 +143,22 @@ public:
         //- Switch the function objects off
         virtual void off();
 
+        //- Return the execution status (on/off) of the function objects
+        virtual bool status() const;
+
+
+        //- Called at the start of the time-loop
+        virtual bool start();
+
+        //- Called at each ++ or += of the time-loop
+        virtual bool execute();
+
+        //- Called when Time::run() determines that the time-loop exits
+        virtual bool end();
+
         //- Read and set the function objects if their data have changed
         virtual bool read();
+
 };
 
 
diff --git a/src/sampling/outputFilters/outputFilterOutputControl/outputFilterOutputControl.C b/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.C
similarity index 95%
rename from src/sampling/outputFilters/outputFilterOutputControl/outputFilterOutputControl.C
rename to src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.C
index 02f8174670759c9e1e65a74aca14b01b8eeef849..9ef684cbac87e3803933e73bf78cc1013a3f2fcf 100644
--- a/src/sampling/outputFilters/outputFilterOutputControl/outputFilterOutputControl.C
+++ b/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.C
@@ -47,11 +47,11 @@ const Foam::NamedEnum<Foam::outputFilterOutputControl::outputControls, 2>
 
 Foam::outputFilterOutputControl::outputFilterOutputControl
 (
-    const Time& time,
+    const Time& t,
     const dictionary& dict
 )
 :
-    time_(time),
+    time_(t),
     outputControl_(ocTimeStep),
     outputInterval_(0)
 {
@@ -93,8 +93,8 @@ bool Foam::outputFilterOutputControl::output() const
         {
             return
             (
-                !(time_.timeIndex() % outputInterval_)
-             || (outputInterval_ <= 1)
+                (outputInterval_ <= 1)
+             || !(time_.timeIndex() % outputInterval_)
             );
             break;
         }
diff --git a/src/sampling/outputFilters/outputFilterOutputControl/outputFilterOutputControl.H b/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.H
similarity index 92%
rename from src/sampling/outputFilters/outputFilterOutputControl/outputFilterOutputControl.H
rename to src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.H
index 4e1f90b9a3876acea6a8904da5bd9d522dfe25b3..2b95917739a177e352cc34d6efa7781ee7076fe3 100644
--- a/src/sampling/outputFilters/outputFilterOutputControl/outputFilterOutputControl.H
+++ b/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.H
@@ -88,22 +88,18 @@ public:
 
     // Constructors
 
-        //- Construct from dictionary and Time object
-        outputFilterOutputControl
-        (
-            const Time& time,
-            const dictionary& dict
-        );
+        //- Construct from Time object and dictionary
+        outputFilterOutputControl(const Time&, const dictionary&);
 
 
     // Destructor
-    ~outputFilterOutputControl();
+        ~outputFilterOutputControl();
 
 
     // Member Functions
 
         //- Read from dictionary
-        void read(const dictionary& dict);
+        void read(const dictionary&);
 
         //- Return const access to the Time object
         const Time& time() const
diff --git a/src/OpenFOAM/db/objectRegistry/objectRegistry.C b/src/OpenFOAM/db/objectRegistry/objectRegistry.C
index 36ae0e3c448a2c8f8feb69895cb325154b4b166f..1038ecffa10de97c47b2eb8c9b2a3ca273061113 100644
--- a/src/OpenFOAM/db/objectRegistry/objectRegistry.C
+++ b/src/OpenFOAM/db/objectRegistry/objectRegistry.C
@@ -29,10 +29,7 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-namespace Foam
-{
-    defineTypeNameAndDebug(objectRegistry, 0);
-}
+defineTypeNameAndDebug(Foam::objectRegistry, 0);
 
 
 // * * * * * * * * * * * * * * * * Constructors *  * * * * * * * * * * * * * //
@@ -86,9 +83,9 @@ Foam::objectRegistry::~objectRegistry()
     {
         if (iter()->ownedByRegistry())
         {
-            regIOobject* elemPtr = iter();
+            regIOobject* object = iter();
             erase(iter);
-            delete elemPtr;
+            delete object;
         }
     }
 }
@@ -206,18 +203,15 @@ bool Foam::objectRegistry::checkOut(regIOobject& io) const
 
 bool Foam::objectRegistry::modified() const
 {
-    bool anyModified = false;
-
     for (const_iterator iter = begin(); iter != end(); ++iter)
     {
         if (iter()->modified())
         {
-            anyModified = true;
-            break;
+            return true;
         }
     }
 
-    return anyModified;
+    return false;
 }
 
 
diff --git a/src/OpenFOAM/db/regIOobject/regIOobject.C b/src/OpenFOAM/db/regIOobject/regIOobject.C
index 139577256187938edc7a8288e0deab7c6df4502d..611dd5a923ac2c58145ed4356a44f5fd692c27ea 100644
--- a/src/OpenFOAM/db/regIOobject/regIOobject.C
+++ b/src/OpenFOAM/db/regIOobject/regIOobject.C
@@ -31,25 +31,20 @@ Description
 #include "Time.H"
 #include "polyMesh.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-defineTypeNameAndDebug(regIOobject, 0);
+defineTypeNameAndDebug(Foam::regIOobject, 0);
 
-int regIOobject::fileModificationSkew
+int Foam::regIOobject::fileModificationSkew
 (
-    debug::optimisationSwitch("fileModificationSkew", 30)
+    Foam::debug::optimisationSwitch("fileModificationSkew", 30)
 );
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 // Construct from IOobject
-regIOobject::regIOobject(const IOobject& io)
+Foam::regIOobject::regIOobject(const IOobject& io)
 :
     IOobject(io),
     registered_(false),
@@ -66,7 +61,7 @@ regIOobject::regIOobject(const IOobject& io)
 
 
 // Construct as copy
-regIOobject::regIOobject(const regIOobject& rio)
+Foam::regIOobject::regIOobject(const regIOobject& rio)
 :
     IOobject(rio),
     registered_(false),
@@ -80,7 +75,7 @@ regIOobject::regIOobject(const regIOobject& rio)
 
 // Construct as copy, and transfering objectRegistry registration to copy
 // if registerCopy is true
-regIOobject::regIOobject(const regIOobject& rio, bool registerCopy)
+Foam::regIOobject::regIOobject(const regIOobject& rio, bool registerCopy)
 :
     IOobject(rio),
     registered_(false),
@@ -99,7 +94,7 @@ regIOobject::regIOobject(const regIOobject& rio, bool registerCopy)
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 // Delete read stream, checkout from objectRegistry and destroy
-regIOobject::~regIOobject()
+Foam::regIOobject::~regIOobject()
 {
     if (objectRegistry::debug)
     {
@@ -125,7 +120,7 @@ regIOobject::~regIOobject()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-void regIOobject::checkIn()
+void Foam::regIOobject::checkIn()
 {
     if (!registered_)
     {
@@ -153,7 +148,7 @@ void regIOobject::checkIn()
 }
 
 
-void regIOobject::checkOut()
+void Foam::regIOobject::checkOut()
 {
     if (registered_)
     {
@@ -164,7 +159,7 @@ void regIOobject::checkOut()
 
 
 // Rename object and re-register with objectRegistry under new name
-void regIOobject::rename(const word& newName)
+void Foam::regIOobject::rename(const word& newName)
 {
     // Check out of objectRegistry
     checkOut();
@@ -177,7 +172,7 @@ void regIOobject::rename(const word& newName)
 
 
 // Assign to IOobject
-void regIOobject::operator=(const IOobject& io)
+void Foam::regIOobject::operator=(const IOobject& io)
 {
     if (isPtr_)
     {
@@ -195,8 +190,4 @@ void regIOobject::operator=(const IOobject& io)
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/src/postProcessing/Allwmake b/src/postProcessing/Allwmake
index ab7328b651f0ec2e2094722574fcf0f3243a7d59..169c9c833fc09068cdd05989c6cd1119fd909c90 100755
--- a/src/postProcessing/Allwmake
+++ b/src/postProcessing/Allwmake
@@ -5,6 +5,6 @@ set -x
 wmake libo postCalc
 wmake libso foamCalcFunctions
 
-(cd functionObjects && ./Allwmake)
+functionObjects/Allwmake
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
index ed07969e0bb5e8b4e9eb3fe236b99432a3da5f57..8f047d1d41f03bd38589fe3360cc87bf6e9f41ec 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
@@ -32,10 +32,7 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-namespace Foam
-{
-    defineTypeNameAndDebug(fieldAverage, 0);
-}
+defineTypeNameAndDebug(Foam::fieldAverage, 0);
 
 const Foam::word Foam::fieldAverage::EXT_MEAN = "Mean";
 const Foam::word Foam::fieldAverage::EXT_PRIME2MEAN = "Prime2Mean";
@@ -43,100 +40,81 @@ const Foam::word Foam::fieldAverage::EXT_PRIME2MEAN = "Prime2Mean";
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-void Foam::fieldAverage::checkoutFields(const wordList& fieldNames) const
+void Foam::fieldAverage::resetFields(wordList& names)
 {
-    forAll(fieldNames, i)
+    forAll(names, fieldI)
     {
-        if (fieldNames[i] != word::null)
+        if (names[fieldI].size())
         {
-            obr_.checkOut(*obr_[fieldNames[i]]);
+            obr_.checkOut(*obr_[names[fieldI]]);
         }
     }
+
+    names.clear();
+    names.setSize(faItems_.size());
 }
 
 
-void Foam::fieldAverage::resetLists(const label nItems)
+void Foam::fieldAverage::initialize()
 {
-    checkoutFields(meanScalarFields_);
-    meanScalarFields_.clear();
-    meanScalarFields_.setSize(nItems);
-
-    checkoutFields(meanVectorFields_);
-    meanVectorFields_.clear();
-    meanVectorFields_.setSize(nItems);
-
-    checkoutFields(meanSphericalTensorFields_);
-    meanSphericalTensorFields_.clear();
-    meanSphericalTensorFields_.setSize(nItems);
+    resetFields(meanScalarFields_);
+    resetFields(meanVectorFields_);
+    resetFields(meanSphericalTensorFields_);
+    resetFields(meanSymmTensorFields_);
+    resetFields(meanTensorFields_);
 
-    checkoutFields(meanSymmTensorFields_);
-    meanSymmTensorFields_.clear();
-    meanSymmTensorFields_.setSize(nItems);
-
-    checkoutFields(meanTensorFields_);
-    meanTensorFields_.clear();
-    meanTensorFields_.setSize(nItems);
-
-    checkoutFields(prime2MeanScalarFields_);
-    prime2MeanScalarFields_.clear();
-    prime2MeanScalarFields_.setSize(nItems);
-
-    checkoutFields(prime2MeanSymmTensorFields_);
-    prime2MeanSymmTensorFields_.clear();
-    prime2MeanSymmTensorFields_.setSize(nItems);
+    resetFields(prime2MeanScalarFields_);
+    resetFields(prime2MeanSymmTensorFields_);
 
     totalIter_.clear();
-    totalIter_.setSize(nItems, 1);
+    totalIter_.setSize(faItems_.size(), 1);
 
     totalTime_.clear();
-    totalTime_.setSize(nItems, obr_.time().deltaT().value());
-}
+    totalTime_.setSize(faItems_.size(), obr_.time().deltaT().value());
 
 
-void Foam::fieldAverage::initialise()
-{
     // Add mean fields to the field lists
-    forAll(faItems_, i)
+    forAll(faItems_, fieldI)
     {
-        const word& fieldName = faItems_[i].fieldName();
+        const word& fieldName = faItems_[fieldI].fieldName();
         if (obr_.foundObject<volScalarField>(fieldName))
         {
-            addMeanField<scalar>(i, meanScalarFields_);
+            addMeanField<scalar>(fieldI, meanScalarFields_);
         }
         else if (obr_.foundObject<volVectorField>(fieldName))
         {
-            addMeanField<vector>(i, meanVectorFields_);
+            addMeanField<vector>(fieldI, meanVectorFields_);
         }
         else if (obr_.foundObject<volSphericalTensorField>(fieldName))
         {
-            addMeanField<sphericalTensor>(i, meanSphericalTensorFields_);
+            addMeanField<sphericalTensor>(fieldI, meanSphericalTensorFields_);
         }
         else if (obr_.foundObject<volSymmTensorField>(fieldName))
         {
-            addMeanField<symmTensor>(i, meanSymmTensorFields_);
+            addMeanField<symmTensor>(fieldI, meanSymmTensorFields_);
         }
         else if (obr_.foundObject<volTensorField>(fieldName))
         {
-            addMeanField<tensor>(i, meanTensorFields_);
+            addMeanField<tensor>(fieldI, meanTensorFields_);
         }
         else
         {
-            FatalErrorIn("Foam::fieldAverage::initialise()")
-                << "Requested field " << faItems_[i].fieldName()
+            FatalErrorIn("Foam::fieldAverage::initialize()")
+                << "Requested field " << faItems_[fieldI].fieldName()
                 << " does not exist in the database" << nl
                 << exit(FatalError);
         }
     }
 
     // Add prime-squared mean fields to the field lists
-    forAll(faItems_, i)
+    forAll(faItems_, fieldI)
     {
-        if (faItems_[i].prime2Mean())
+        if (faItems_[fieldI].prime2Mean())
         {
-            const word& fieldName = faItems_[i].fieldName();
-            if (!faItems_[i].mean())
+            const word& fieldName = faItems_[fieldI].fieldName();
+            if (!faItems_[fieldI].mean())
             {
-                FatalErrorIn("Foam::fieldAverage::initialise()")
+                FatalErrorIn("Foam::fieldAverage::initialize()")
                     << "To calculate the prime-squared average, the "
                     << "mean average must also be selected for field "
                     << fieldName << nl << exit(FatalError);
@@ -146,7 +124,7 @@ void Foam::fieldAverage::initialise()
             {
                 addPrime2MeanField<scalar, scalar>
                 (
-                    i,
+                    fieldI,
                     meanScalarFields_,
                     prime2MeanScalarFields_
                 );
@@ -155,14 +133,14 @@ void Foam::fieldAverage::initialise()
             {
                 addPrime2MeanField<vector, symmTensor>
                 (
-                    i,
+                    fieldI,
                     meanVectorFields_,
                     prime2MeanSymmTensorFields_
                 );
             }
             else
             {
-                FatalErrorIn("Foam::fieldAverage::initialise()")
+                FatalErrorIn("Foam::fieldAverage::initialize()")
                     << "prime2Mean average can only be applied to "
                     << "volScalarFields and volVectorFields"
                     << nl << "    Field: " << fieldName << nl
@@ -173,102 +151,26 @@ void Foam::fieldAverage::initialise()
 }
 
 
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-Foam::fieldAverage::fieldAverage
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-:
-    name_(name),
-    obr_(obr),
-    active_(true),
-    cleanRestart_(dict.lookupOrDefault<Switch>("cleanRestart", false)),
-    faItems_(dict.lookup("fields")),
-    meanScalarFields_(faItems_.size()),
-    meanVectorFields_(faItems_.size()),
-    meanSphericalTensorFields_(faItems_.size()),
-    meanSymmTensorFields_(faItems_.size()),
-    meanTensorFields_(faItems_.size()),
-    prime2MeanScalarFields_(faItems_.size()),
-    prime2MeanSymmTensorFields_(faItems_.size()),
-    totalIter_(faItems_.size(), 1),
-    totalTime_(faItems_.size(), obr_.time().deltaT().value())
-{
-    // Check if the available mesh is an fvMesh otherise deactivate
-    if (!isA<fvMesh>(obr_))
-    {
-        active_ = false;
-        WarningIn
-        (
-            "fieldAverage::fieldAverage\n"
-            "(\n"
-                "const word&,\n"
-                "const objectRegistry&,\n"
-                "const dictionary&,\n"
-                "const bool\n"
-            ")"
-        )   << "No fvMesh available, deactivating."
-            << nl << endl;
-    }
-
-    read(dict);
-}
-
-
-// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
-
-Foam::fieldAverage::~fieldAverage()
-{}
-
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-void Foam::fieldAverage::read(const dictionary& dict)
+void Foam::fieldAverage::calcAverages()
 {
-    if (active_)
-    {
-        faItems_.clear();
-        faItems_ = List<fieldAverageItem>(dict.lookup("fields"));
-
-        resetLists(faItems_.size());
-
-        initialise();
-
-        readAveragingProperties();
-    }
-}
-
+    const label currentTimeIndex =
+        static_cast<const fvMesh&>(obr_).time().timeIndex();
 
-void Foam::fieldAverage::execute()
-{
-    if (active_)
+    if (prevTimeIndex_ == currentTimeIndex)
     {
-        calcAverages();
+        return;
     }
-}
-
-
-void Foam::fieldAverage::write()
-{
-    if (active_)
+    else
     {
-        writeAverages();
-        writeAveragingProperties();
+        prevTimeIndex_ = currentTimeIndex;
     }
-}
 
 
-void Foam::fieldAverage::calcAverages()
-{
     Info<< "Calculating averages" << nl << endl;
-    forAll(faItems_, i)
+    forAll(faItems_, fieldI)
     {
-        totalIter_[i]++;
-        totalTime_[i] += obr_.time().deltaT().value();
+        totalIter_[fieldI]++;
+        totalTime_[fieldI] += obr_.time().deltaT().value();
     }
 
     addMeanSqrToPrime2Mean<scalar, scalar>
@@ -330,12 +232,12 @@ void Foam::fieldAverage::writeAveragingProperties() const
         )
     );
 
-    forAll(faItems_, i)
+    forAll(faItems_, fieldI)
     {
-        const word& fieldName = faItems_[i].fieldName();
+        const word& fieldName = faItems_[fieldI].fieldName();
         propsDict.add(fieldName, dictionary());
-        propsDict.subDict(fieldName).add("totalIter", totalIter_[i]);
-        propsDict.subDict(fieldName).add("totalTime", totalTime_[i]);
+        propsDict.subDict(fieldName).add("totalIter", totalIter_[fieldI]);
+        propsDict.subDict(fieldName).add("totalTime", totalTime_[fieldI]);
     }
 
     propsDict.regIOobject::write();
@@ -372,18 +274,18 @@ void Foam::fieldAverage::readAveragingProperties()
         IOdictionary propsDict(propsDictHeader);
 
         Info<< "fieldAverage: restarting averaging for fields:" << endl;
-        forAll(faItems_, i)
+        forAll(faItems_, fieldI)
         {
-            const word& fieldName = faItems_[i].fieldName();
+            const word& fieldName = faItems_[fieldI].fieldName();
             if (propsDict.found(fieldName))
             {
                 dictionary fieldDict(propsDict.subDict(fieldName));
 
-                totalIter_[i] = readLabel(fieldDict.lookup("totalIter"));
-                totalTime_[i] = readScalar(fieldDict.lookup("totalTime"));
+                totalIter_[fieldI] = readLabel(fieldDict.lookup("totalIter"));
+                totalTime_[fieldI] = readScalar(fieldDict.lookup("totalTime"));
                 Info<< "    " << fieldName
-                    << " iters = " << totalIter_[i]
-                    << " time = " << totalTime_[i] << endl;
+                    << " iters = " << totalIter_[fieldI]
+                    << " time = " << totalTime_[fieldI] << endl;
             }
         }
         Info<< endl;
@@ -391,6 +293,104 @@ void Foam::fieldAverage::readAveragingProperties()
 }
 
 
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::fieldAverage::fieldAverage
+(
+    const word& name,
+    const objectRegistry& obr,
+    const dictionary& dict,
+    const bool loadFromFiles
+)
+:
+    name_(name),
+    obr_(obr),
+    active_(true),
+    prevTimeIndex_(-1),
+    cleanRestart_(false),
+    faItems_(),
+    meanScalarFields_(),
+    meanVectorFields_(),
+    meanSphericalTensorFields_(),
+    meanSymmTensorFields_(),
+    meanTensorFields_(),
+    prime2MeanScalarFields_(),
+    prime2MeanSymmTensorFields_(),
+    totalIter_(),
+    totalTime_()
+{
+    // Only active if a fvMesh is available
+    if (isA<fvMesh>(obr_))
+    {
+        read(dict);
+    }
+    else
+    {
+        active_ = false;
+        WarningIn
+        (
+            "fieldAverage::fieldAverage\n"
+            "(\n"
+                "const word&,\n"
+                "const objectRegistry&,\n"
+                "const dictionary&,\n"
+                "const bool\n"
+            ")"
+        )   << "No fvMesh available, deactivating."
+            << nl << endl;
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::fieldAverage::~fieldAverage()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::fieldAverage::read(const dictionary& dict)
+{
+    if (active_)
+    {
+        dict.readIfPresent("cleanRestart", cleanRestart_);
+        dict.lookup("fields") >> faItems_;
+
+        initialize();
+        readAveragingProperties();
+
+        // ensure first averaging works unconditionally
+        prevTimeIndex_ = -1;
+    }
+}
+
+
+void Foam::fieldAverage::execute()
+{
+    if (active_)
+    {
+        calcAverages();
+    }
+}
+
+
+void Foam::fieldAverage::end()
+{
+}
+
+
+void Foam::fieldAverage::write()
+{
+    if (active_)
+    {
+        calcAverages();
+        writeAverages();
+        writeAveragingProperties();
+    }
+}
+
+
 void Foam::fieldAverage::updateMesh(const mapPolyMesh&)
 {
     // Do nothing
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H
index 2cb245b14d0c387c9f1cbbf14bd13f50f079c646..bffb23b2e0b0f34ae52ca292f3bd672442692bda 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H
@@ -41,7 +41,7 @@ Description
         // averaging info if available
         cleanRestart true;
 
-        // Fields to be probed. runTime modifiable!
+        // Fields to be averaged. runTime modifiable!
         fields
         (
             U
@@ -107,6 +107,14 @@ class fieldAverage
 {
 protected:
 
+    // File and field name extensions
+
+        //- Mean average
+        static const word EXT_MEAN;
+
+        //- Prime-squared average
+        static const word EXT_PRIME2MEAN;
+
     // Private data
 
         //- Name of this set of field averages.
@@ -118,6 +126,9 @@ protected:
         //- On/off switch
         bool active_;
 
+        //- Time at last call, prevents repeated averaging
+        label prevTimeIndex_;
+
         //- Clean restart flag
         Switch cleanRestart_;
 
@@ -125,15 +136,6 @@ protected:
         //  calculated and output
         List<fieldAverageItem> faItems_;
 
-        // File and field name extensions
-
-            //- Mean average
-            static const word EXT_MEAN;
-
-            //- Prime-squared average
-            static const word EXT_PRIME2MEAN;
-
-
         // Lists of averages
 
             // Arithmetic mean fields
@@ -143,7 +145,8 @@ protected:
             wordList meanSymmTensorFields_;
             wordList meanTensorFields_;
 
-            // Prime-squared fields - applicable to volVectorFields only
+            // Prime-squared fields
+            // Only applicable to volScalarFields / volVectorFields
             wordList prime2MeanScalarFields_;
             wordList prime2MeanSymmTensorFields_;
 
@@ -162,20 +165,18 @@ protected:
         // Initialisation routines
 
             //- Checkout fields (causes deletion) from the database
-            void checkoutFields(const wordList&) const;
+            //  and reset lists
+            void resetFields(wordList&);
 
-            //- Reset size of lists (clear existing values)
-            void resetLists(const label nItems);
+            //- Reset lists (clear existing values) and initialize averaging.
+            //  Check requested field averages are valid, populate field lists
+            void initialize();
 
-            //- Intitialise averaging. Check requested field averages are
-            //  valid, and populate field lists
-            void initialise();
-
-            //- Add mean average field to PtrList
+            //- Add mean average field to list
             template<class Type>
             void addMeanField(const label, wordList&) const;
 
-            //- Add prime-squared average field to PtrList
+            //- Add prime-squared average field to list
             template<class Type1, class Type2>
             void addPrime2MeanField
             (
@@ -211,7 +212,7 @@ protected:
             ) const;
 
 
-        // I-O
+        // IO
 
             //- Write averages
             virtual void writeAverages() const;
@@ -281,6 +282,9 @@ public:
         //- Execute the averaging
         virtual void execute();
 
+        //- Execute the averaging at the final time-loop, currently does nothing
+        virtual void end();
+
         //- Calculate the field average data and write
         virtual void write();
 };
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverageTemplates.C b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverageTemplates.C
index c6e57835a726bc85d4c37f1e0a13fda554137932..a69dce41b7d613e1d2032e0ed393d57fcfec9545 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverageTemplates.C
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverageTemplates.C
@@ -33,15 +33,15 @@ License
 template<class Type>
 void Foam::fieldAverage::addMeanField
 (
-    const label fieldi,
+    const label fieldI,
     wordList& meanFieldList
 ) const
 {
-    if (faItems_[fieldi].mean())
+    if (faItems_[fieldI].mean())
     {
         typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
 
-        const word& fieldName = faItems_[fieldi].fieldName();
+        const word& fieldName = faItems_[fieldI].fieldName();
 
         const word meanFieldName = fieldName + EXT_MEAN;
 
@@ -49,14 +49,14 @@ void Foam::fieldAverage::addMeanField
 
         if (obr_.foundObject<fieldType>(meanFieldName))
         {
-            meanFieldList[fieldi] = meanFieldName;
+            meanFieldList[fieldI] = meanFieldName;
         }
         else if (obr_.found(meanFieldName))
         {
             Info<< "Cannot allocate average field " << meanFieldName
                 << " since an object with that name already exists."
                 << " Disabling averaging." << nl << endl;
-            meanFieldList[fieldi] = word::null;
+            meanFieldList[fieldI] = word::null;
         }
         else
         {
@@ -79,7 +79,7 @@ void Foam::fieldAverage::addMeanField
             // Store on registry
             fPtr->store();
 
-            meanFieldList[fieldi] = meanFieldName;
+            meanFieldList[fieldI] = meanFieldName;
         }
     }
 }
@@ -88,38 +88,38 @@ void Foam::fieldAverage::addMeanField
 template<class Type1, class Type2>
 void Foam::fieldAverage::addPrime2MeanField
 (
-    const label fieldi,
+    const label fieldI,
     const wordList& meanFieldList,
     wordList& prime2MeanFieldList
 ) const
 {
-    if (faItems_[fieldi].mean() && meanFieldList[fieldi] != word::null)
+    if (faItems_[fieldI].mean() && meanFieldList[fieldI].size())
     {
         typedef GeometricField<Type1, fvPatchField, volMesh> fieldType1;
         typedef GeometricField<Type2, fvPatchField, volMesh> fieldType2;
 
-        const word& fieldName = faItems_[fieldi].fieldName();
+        const word& fieldName = faItems_[fieldI].fieldName();
 
         const word meanFieldName = fieldName + EXT_PRIME2MEAN;
         Info<< "Reading/calculating field " << meanFieldName << nl << endl;
 
         if (obr_.foundObject<fieldType2>(meanFieldName))
         {
-            prime2MeanFieldList[fieldi] = meanFieldName;
+            prime2MeanFieldList[fieldI] = meanFieldName;
         }
         else if (obr_.found(meanFieldName))
         {
             Info<< "Cannot allocate average field " << meanFieldName
                 << " since an object with that name already exists."
                 << " Disabling averaging." << nl << endl;
-            prime2MeanFieldList[fieldi] = word::null;
+            prime2MeanFieldList[fieldI] = word::null;
         }
         else
         {
             const fieldType1& baseField =
                 obr_.lookupObject<fieldType1>(fieldName);
             const fieldType1& meanField =
-                obr_.lookupObject<fieldType1>(meanFieldList[fieldi]);
+                obr_.lookupObject<fieldType1>(meanFieldList[fieldI]);
 
             fieldType2* fPtr = new fieldType2
             (
@@ -137,7 +137,7 @@ void Foam::fieldAverage::addPrime2MeanField
             // Store on registry
             fPtr->store();
 
-            prime2MeanFieldList[fieldi] = meanFieldName;
+            prime2MeanFieldList[fieldI] = meanFieldName;
         }
     }
 }
@@ -153,7 +153,7 @@ const
 
     forAll(faItems_, i)
     {
-        if (faItems_[i].mean() && meanFieldList[i] != word::null)
+        if (faItems_[i].mean() && meanFieldList[i].size())
         {
             const word& fieldName = faItems_[i].fieldName();
             const fieldType& baseField =
@@ -199,8 +199,8 @@ void Foam::fieldAverage::calculatePrime2MeanFields
         if
         (
             faItems_[i].prime2Mean()
-         && meanFieldList[i] != word::null
-         && prime2MeanFieldList[i] != word::null
+         && meanFieldList[i].size()
+         && prime2MeanFieldList[i].size()
         )
         {
             const word& fieldName = faItems_[i].fieldName();
@@ -250,8 +250,8 @@ void Foam::fieldAverage::addMeanSqrToPrime2Mean
         if
         (
             faItems_[i].prime2Mean()
-         && meanFieldList[i] != word::null
-         && prime2MeanFieldList[i] != word::null
+         && meanFieldList[i].size()
+         && prime2MeanFieldList[i].size()
         )
         {
             const fieldType1& meanField =
@@ -274,7 +274,7 @@ void Foam::fieldAverage::writeFieldList(const wordList& fieldList) const
 
     forAll(fieldList, i)
     {
-        if (fieldList[i] != word::null)
+        if (fieldList[i].size())
         {
             const fieldType& f = obr_.lookupObject<fieldType>(fieldList[i]);
             f.write();
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItemIO.C b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItemIO.C
index 82c934e1941f63b8f5fb512fc13a0538828387d6..d149063b0601edf260391eba4bec9516e30e93dd 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItemIO.C
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItemIO.C
@@ -76,14 +76,12 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const fieldAverageItem& faItem)
         "(Foam::Ostream&, const Foam::fieldAverageItem&)"
     );
 
-    os<< faItem.fieldName_ << nl;
-    os<< token::BEGIN_BLOCK << nl;
+    os  << faItem.fieldName_ << nl << token::BEGIN_BLOCK << nl;
     os.writeKeyword("mean") << faItem.mean_ << token::END_STATEMENT << nl;
     os.writeKeyword("prime2Mean") << faItem.mean_
         << token::END_STATEMENT << nl;
     os.writeKeyword("base") << faItem.baseTypeNames_[faItem.base_]
-        << token::END_STATEMENT << nl;
-    os<< token::END_BLOCK << nl;
+        << token::END_STATEMENT << nl << token::END_BLOCK << nl;
 
     os.check
     (
diff --git a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C
index 051f9f9a6dc95b7ce492557f245e0636f8899a7b..509e483f2b79c0b07b7d928a998f9d1b8b67f1fe 100644
--- a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C
+++ b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C
@@ -163,6 +163,13 @@ void Foam::fieldMinMax::execute()
     // Do nothing - only valid on write
 }
 
+
+void Foam::fieldMinMax::end()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::fieldMinMax::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
index 17cfcf54e333083cfca9a3f89228d7305b874a2a..812359f71caa3edffcf8b43629c58db520f05823 100644
--- a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
+++ b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
@@ -80,8 +80,8 @@ protected:
 
     // Protected data
 
-        //- Name of this set of forces,
-        //  Also used as the name of the probes directory.
+        //- Name of this set of field min/max.
+        //  Also used as the name of the output directory.
         word name_;
 
         const objectRegistry& obr_;
@@ -108,7 +108,7 @@ protected:
 
     // Private Member Functions
 
-        //- If the forces file has not been created create it
+        //- If the output file has not been created create it
         void makeFile();
 
         //- Disallow default bitwise copy construct
@@ -147,18 +147,21 @@ public:
 
     // Member Functions
 
-        //- Return name of the set of forces
+        //- Return name of the set of field min/max
         virtual const word& name() const
         {
             return name_;
         }
 
-        //- Read the forces data
+        //- Read the field min/max data
         virtual void read(const dictionary&);
 
-        //- Execute
+        //- Execute, currently does nothing
         virtual void execute();
 
+        //- Execute at the final time-loop, currently does nothing
+        virtual void end();
+
         //- Calculate the field min/max
         template<class Type>
         void calcMinMaxFields(const word& fieldName);
diff --git a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
index d76b7fdd2856cea2adbab9129fc473e5c974faab..5fe1b846707dcd266b5fc67b536c34a3ac8b9dc8 100644
--- a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
+++ b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
@@ -104,6 +104,12 @@ void Foam::forceCoeffs::execute()
 }
 
 
+void Foam::forceCoeffs::end()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::forceCoeffs::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H
index 87e6cf47c84a23abba7dce113a23d1d7119452f8..d9a948db0896e2115d8de42adf671ef98315de51 100644
--- a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H
+++ b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H
@@ -126,9 +126,12 @@ public:
         //- Read the forces data
         virtual void read(const dictionary&);
 
-        //- Execute
+        //- Execute, currently does nothing
         virtual void execute();
 
+        //- Execute at the final time-loop, currently does nothing
+        virtual void end();
+
         //- Write the forces
         virtual void write();
 };
diff --git a/src/postProcessing/functionObjects/forces/forces/forces.C b/src/postProcessing/functionObjects/forces/forces/forces.C
index 3ed12ef475e35e9cc3cd48d10959bc10001954cd..3fb9cc135a3d571cd7a218aa5c5a497ebcb8a99c 100644
--- a/src/postProcessing/functionObjects/forces/forces/forces.C
+++ b/src/postProcessing/functionObjects/forces/forces/forces.C
@@ -273,6 +273,13 @@ void Foam::forces::execute()
     // Do nothing - only valid on write
 }
 
+
+void Foam::forces::end()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::forces::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/forces/forces/forces.H b/src/postProcessing/functionObjects/forces/forces/forces.H
index 08d9d09ce2195d1d618f3af639710fb7cda47a1f..73edae9da13c1aa12ba87c34fd03bbd8bccdc208 100644
--- a/src/postProcessing/functionObjects/forces/forces/forces.H
+++ b/src/postProcessing/functionObjects/forces/forces/forces.H
@@ -200,9 +200,12 @@ public:
         //- Read the forces data
         virtual void read(const dictionary&);
 
-        //- Execute
+        //- Execute, currently does nothing
         virtual void execute();
 
+        //- Execute at the final time-loop, currently does nothing
+        virtual void end();
+
         //- Write the forces
         virtual void write();
 
diff --git a/src/postProcessing/functionObjects/systemCall/systemCall.C b/src/postProcessing/functionObjects/systemCall/systemCall.C
index f0cc9f9c08886d3577ad6375ef412ff41538f1ba..6fdf84d70c6adf76c53cb729e58d4667e38b9379 100644
--- a/src/postProcessing/functionObjects/systemCall/systemCall.C
+++ b/src/postProcessing/functionObjects/systemCall/systemCall.C
@@ -41,15 +41,14 @@ namespace Foam
 Foam::systemCall::systemCall
 (
     const word& name,
-    const objectRegistry& obr,
+    const objectRegistry&,
     const dictionary& dict,
-    const bool loadFromFiles
+    const bool
 )
 :
     name_(name),
-    obr_(obr),
-    active_(true),
     executeCalls_(),
+    endCalls_(),
     writeCalls_()
 {
     read(dict);
@@ -66,8 +65,16 @@ Foam::systemCall::~systemCall()
 
 void Foam::systemCall::read(const dictionary& dict)
 {
-    dict.lookup("executeCalls") >> executeCalls_;
-    dict.lookup("writeCalls") >> writeCalls_;
+    dict.readIfPresent("executeCalls", executeCalls_);
+    dict.readIfPresent("endCalls",     endCalls_);
+    dict.readIfPresent("writeCalls",   writeCalls_);
+
+    if (executeCalls_.empty() && endCalls_.empty() && writeCalls_.empty())
+    {
+        WarningIn("Foam::system::read(const dictionary&)")
+            << "no executeCalls, endCalls or writeCalls defined."
+            << endl;
+    }
 }
 
 
@@ -79,6 +86,16 @@ void Foam::systemCall::execute()
     }
 }
 
+
+void Foam::systemCall::end()
+{
+    forAll(endCalls_, callI)
+    {
+        ::system(endCalls_[callI].c_str());
+    }
+}
+
+
 void Foam::systemCall::write()
 {
     forAll(writeCalls_, callI)
diff --git a/src/postProcessing/functionObjects/systemCall/systemCall.H b/src/postProcessing/functionObjects/systemCall/systemCall.H
index e516159b695868ae1458e307303bd9024c166761..6dc8fed5294e6f3d7a8b58f17208581cb09437d3 100644
--- a/src/postProcessing/functionObjects/systemCall/systemCall.H
+++ b/src/postProcessing/functionObjects/systemCall/systemCall.H
@@ -63,14 +63,12 @@ protected:
         //- Name of this set of system calls
         word name_;
 
-        const objectRegistry& obr_;
-
-        //- on/off switch
-        bool active_;
-
         //- List of calls to execute - every step
         stringList executeCalls_;
 
+        //- List of calls to execute when exiting the time-loop
+        stringList endCalls_;
+
         //- List of calls to execute - write steps
         stringList writeCalls_;
 
@@ -97,9 +95,9 @@ public:
         systemCall
         (
             const word& name,
-            const objectRegistry&,
+            const objectRegistry& unused,
             const dictionary&,
-            const bool loadFromFiles = false
+            const bool loadFromFilesUnused = false
         );
 
 
@@ -119,10 +117,13 @@ public:
         //- Read the system calls
         virtual void read(const dictionary&);
 
-        //- Execute
+        //- Execute the "executeCalls" at each time-step
         virtual void execute();
 
-        //- Write
+        //- Execute the "endCalls" at the final time-loop
+        virtual void end();
+
+        //- Write, execute the "writeCalls"
         virtual void write();
 
         //- Update for changes of mesh
diff --git a/src/postProcessing/functionObjects/utilities/dynamicPressure/dynamicPressure.C b/src/postProcessing/functionObjects/utilities/dynamicPressure/dynamicPressure.C
index f5398a84415853923a3296156271e2dbe452c5b8..a31c913ba78a4a515d38ee93cf5b57e6a4b4bf90 100644
--- a/src/postProcessing/functionObjects/utilities/dynamicPressure/dynamicPressure.C
+++ b/src/postProcessing/functionObjects/utilities/dynamicPressure/dynamicPressure.C
@@ -58,7 +58,7 @@ Foam::dynamicPressure::dynamicPressure
     name_(name),
     obr_(obr),
     active_(true),
-    pName_(dict.lookup("p")),
+    pName_(dict.lookupOrDefault<word>("p", "p")),
     rho_(readScalar(dict.lookup("rho")))
 {
     // Check if the available mesh is an fvMesh, otherwise deactivate
@@ -68,7 +68,7 @@ Foam::dynamicPressure::dynamicPressure
         WarningIn
         (
             "dynamicPressure::dynamicPressure"
-            "(const objectRegistry& obr, const dictionary& dict)"
+            "(const objectRegistry&, const dictionary&)"
         )   << "No fvMesh available, deactivating." << nl
             << endl;
     }
@@ -81,7 +81,7 @@ Foam::dynamicPressure::dynamicPressure
             WarningIn
             (
                 "dynamicPressure::dynamicPressure"
-                "(const objectRegistry& obr, const dictionary& dict)"
+                "(const objectRegistry&, const dictionary&)"
             )   << "Pressure is not kinematic pressure, deactivating." << nl
                 << endl;
         }
@@ -103,7 +103,7 @@ void Foam::dynamicPressure::read(const dictionary& dict)
 {
     if (active_)
     {
-        dict.lookup("p") >> pName_;
+        dict.readIfPresent("p", pName_);
         dict.lookup("rho") >> rho_;
     }
 }
@@ -115,6 +115,12 @@ void Foam::dynamicPressure::execute()
 }
 
 
+void Foam::dynamicPressure::end()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::dynamicPressure::write()
 {
     if (active_)
diff --git a/src/postProcessing/functionObjects/utilities/dynamicPressure/dynamicPressure.H b/src/postProcessing/functionObjects/utilities/dynamicPressure/dynamicPressure.H
index cf7f5530f3d8dfa258bbb4171f6d660065aaaacb..c3c6bdbb0f3d60afe65274a0bdbb014a260bdd38 100644
--- a/src/postProcessing/functionObjects/utilities/dynamicPressure/dynamicPressure.H
+++ b/src/postProcessing/functionObjects/utilities/dynamicPressure/dynamicPressure.H
@@ -66,10 +66,10 @@ class dynamicPressure
         //- on/off switch
         bool active_;
 
-        //- Name of pressure field
+        //- Name of pressure field, default is "p"
         word pName_;
 
-        //- Density
+        //- Density value
         scalar rho_;
 
 
@@ -120,9 +120,12 @@ public:
         //- Read the dynamicPressure data
         virtual void read(const dictionary&);
 
-        //- Execute
+        //- Execute, currently does nothing
         virtual void execute();
 
+        //- Execute at the final time-loop, currently does nothing
+        virtual void end();
+
         //- Calculate the dynamicPressure and write
         virtual void write();
 
diff --git a/src/sampling/Make/files b/src/sampling/Make/files
index 004f81d435793d392ca76af730cd3c28509d5faa..c52803251940c51fa2ee40d702e4a25be6bd3760 100644
--- a/src/sampling/Make/files
+++ b/src/sampling/Make/files
@@ -48,8 +48,6 @@ graphField/writePatchGraph.C
 graphField/writeCellGraph.C
 graphField/makeGraph.C
 
-outputFilters/outputFilterOutputControl/outputFilterOutputControl.C
-
 meshToMesh = meshToMeshInterpolation/meshToMesh
 $(meshToMesh)/meshToMesh.C
 $(meshToMesh)/calculateMeshToMeshAddressing.C
diff --git a/src/sampling/probes/probes.C b/src/sampling/probes/probes.C
index f0596ea5631a7431e26552f9ae4d2c4c77e22b26..91c588c6d3ef1128ca0d7f47325f092cd027c0a8 100644
--- a/src/sampling/probes/probes.C
+++ b/src/sampling/probes/probes.C
@@ -304,6 +304,12 @@ void Foam::probes::execute()
 }
 
 
+void Foam::probes::end()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::probes::write()
 {
     if (probeLocations_.size() && checkFieldTypes())
diff --git a/src/sampling/probes/probes.H b/src/sampling/probes/probes.H
index 27c2a9a3bb6c97ef72650ea8d980a182589f4a0f..33e4f39e25056cda02b95f87a2fa8ae676ad5869 100644
--- a/src/sampling/probes/probes.H
+++ b/src/sampling/probes/probes.H
@@ -194,15 +194,18 @@ public:
             return cellList_;
         }
 
+        //- Execute, currently does nothing
+        virtual void execute();
+
+        //- Execute at the final time-loop, currently does nothing
+        virtual void end();
+
         //- Sample and write
         virtual void write();
 
         //- Read the probes
         virtual void read(const dictionary&);
 
-        //- Execute
-        virtual void execute();
-
         //- Update for changes of mesh
         virtual void updateMesh(const mapPolyMesh&)
         {}
diff --git a/src/sampling/sampledSet/sampledSets/sampledSets.C b/src/sampling/sampledSet/sampledSets/sampledSets.C
index f09a82e30aeab74afb48ce2e390fc1b1721afbd7..621efba7a51244df2150d9105e97dac5168ab1bf 100644
--- a/src/sampling/sampledSet/sampledSets/sampledSets.C
+++ b/src/sampling/sampledSet/sampledSets/sampledSets.C
@@ -275,6 +275,12 @@ void Foam::sampledSets::execute()
 }
 
 
+void Foam::sampledSets::end()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::sampledSets::write()
 {
     if (size() && checkFieldTypes())
diff --git a/src/sampling/sampledSet/sampledSets/sampledSets.H b/src/sampling/sampledSet/sampledSets/sampledSets.H
index baf21e450bfe47f2ba4da9a07ea15d363de40b31..da38f9e1c50ef5d43adf9426fb0517dbadd94a9a 100644
--- a/src/sampling/sampledSet/sampledSets/sampledSets.H
+++ b/src/sampling/sampledSet/sampledSets/sampledSets.H
@@ -270,9 +270,12 @@ public:
         //- set verbosity level
         void verbose(const bool verbosity = true);
 
-        //- Execute
+        //- Execute, currently does nothing
         virtual void execute();
 
+        //- Execute at the final time-loop, currently does nothing
+        virtual void end();
+
         //- Sample and write
         virtual void write();
 
diff --git a/src/sampling/sampledSurface/isoSurface/isoSurface.C b/src/sampling/sampledSurface/isoSurface/isoSurface.C
index b092f62605e27b12faeb3cc2c6d6679eccfed5fb..c69a51f40731f18bc1c3aaa377aed705f84ce109 100644
--- a/src/sampling/sampledSurface/isoSurface/isoSurface.C
+++ b/src/sampling/sampledSurface/isoSurface/isoSurface.C
@@ -29,6 +29,7 @@ License
 #include "mergePoints.H"
 #include "syncTools.H"
 #include "addToRunTimeSelectionTable.H"
+#include "slicedVolFields.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -347,24 +348,36 @@ void Foam::isoSurface::getNeighbour
     {
         label nbr = (own[faceI] == cellI ? nei[faceI] : own[faceI]);
         nbrValue = cVals[nbr];
-        nbrPoint = mesh_.C()[nbr];
+        nbrPoint = mesh_.cellCentres()[nbr];
     }
     else
     {
         label bFaceI = faceI-mesh_.nInternalFaces();
         label patchI = boundaryRegion[bFaceI];
-        label patchFaceI = faceI-mesh_.boundaryMesh()[patchI].start();
+        const polyPatch& pp = mesh_.boundaryMesh()[patchI];
+        label patchFaceI = faceI-pp.start();
 
-        if (isA<emptyPolyPatch>(mesh_.boundaryMesh()[patchI]))
+        if (isA<emptyPolyPatch>(pp))
         {
             // Assume zero gradient
             nbrValue = cVals[own[faceI]];
+            nbrPoint = mesh_.faceCentres()[faceI];
+        }
+        else if
+        (
+            pp.coupled()
+        && !refCast<const coupledPolyPatch>(pp).separated()
+        )
+        {
+            // other side value
+            nbrValue = cVals.boundaryField()[patchI][patchFaceI];
+            // other side cell centre
             nbrPoint = mesh_.C().boundaryField()[patchI][patchFaceI];
         }
         else
         {
             nbrValue = cVals.boundaryField()[patchI][patchFaceI];
-            nbrPoint = mesh_.C().boundaryField()[patchI][patchFaceI];
+            nbrPoint = mesh_.faceCentres()[faceI];
         }
     }
 }
@@ -383,6 +396,7 @@ void Foam::isoSurface::calcSnappedCc
 ) const
 {
     const pointField& pts = mesh_.points();
+    const pointField& cc = mesh_.cellCentres();
 
     snappedCc.setSize(mesh_.nCells());
     snappedCc = -1;
@@ -427,7 +441,7 @@ void Foam::isoSurface::calcSnappedCc
 
                 // From cc to neighbour cc.
                 s[2] = isoFraction(cVal, nbrValue);
-                pt[2] = (1.0-s[2])*mesh_.C()[cellI] + s[2]*nbrPoint;
+                pt[2] = (1.0-s[2])*cc[cellI] + s[2]*nbrPoint;
 
                 const face& f = mesh_.faces()[cFaces[cFaceI]];
 
@@ -436,12 +450,12 @@ void Foam::isoSurface::calcSnappedCc
                     // From cc to fp
                     label p0 = f[fp];
                     s[0] = isoFraction(cVal, pVals[p0]);
-                    pt[0] = (1.0-s[0])*mesh_.C()[cellI] + s[0]*pts[p0];
+                    pt[0] = (1.0-s[0])*cc[cellI] + s[0]*pts[p0];
 
                     // From cc to fp+1
                     label p1 = f[f.fcIndex(fp)];
                     s[1] = isoFraction(cVal, pVals[p1]);
-                    pt[1] = (1.0-s[1])*mesh_.C()[cellI] + s[1]*pts[p1];
+                    pt[1] = (1.0-s[1])*cc[cellI] + s[1]*pts[p1];
 
                     if
                     (
@@ -548,6 +562,7 @@ void Foam::isoSurface::calcSnappedPoint
 ) const
 {
     const pointField& pts = mesh_.points();
+    const pointField& cc = mesh_.cellCentres();
 
 
     const point greatPoint(VGREAT, VGREAT, VGREAT);
@@ -616,7 +631,7 @@ void Foam::isoSurface::calcSnappedPoint
 
             label fp = findIndex(f, pointI);
             s[0] = isoFraction(pVals[pointI], cVals[own]);
-            pt[0] = (1.0-s[0])*pts[pointI] + s[0]*mesh_.C()[own];
+            pt[0] = (1.0-s[0])*pts[pointI] + s[0]*cc[own];
 
             s[1] = isoFraction(pVals[pointI], nbrValue);
             pt[1] = (1.0-s[1])*pts[pointI] + s[1]*nbrPoint;
@@ -815,13 +830,6 @@ Foam::triSurface Foam::isoSurface::stitchTriPoints
         tris.transfer(dynTris);
     }
 
-    if (debug)
-    {
-        Pout<< "isoSurface : merged from " << nTris
-            << " down to " << tris.size() << " triangles." << endl;
-    }
-
-
 
     // Determine 'flat hole' situation (see RMT paper).
     // Two unconnected triangles get connected because (some of) the edges
@@ -862,6 +870,12 @@ Foam::triSurface Foam::isoSurface::stitchTriPoints
 
         triMap.transfer(newToOldTri);
         tris.setSize(triMap.size());
+
+        if (debug)
+        {
+            Pout<< "isoSurface : merged from " << nTris
+                << " down to " << tris.size() << " unique triangles." << endl;
+        }
     }
 
     return triSurface(tris, geometricSurfacePatchList(0), newPoints, true);
@@ -1504,17 +1518,21 @@ Foam::isoSurface::isoSurface
     {
         const polyPatch& pp = patches[patchI];
 
-        if (pp.coupled())
-        {
-            label faceI = pp.start();
+        label faceI = pp.start();
 
-            forAll(pp, i)
-            {
-                boundaryRegion[faceI-mesh_.nInternalFaces()] = patchI;
-                faceI++;
-            }
+        forAll(pp, i)
+        {
+            boundaryRegion[faceI-mesh_.nInternalFaces()] = patchI;
+            faceI++;
         }
-        else
+
+        // Mark all points that are not physically coupled (so anything
+        // but collocated coupled patches)
+        if
+        (
+           !pp.coupled()
+        || refCast<const coupledPolyPatch>(pp).separated()
+        )
         {
             label faceI = pp.start();
 
@@ -1594,6 +1612,48 @@ Foam::isoSurface::isoSurface
     }
 
 
+    // Generate field to interpolate. This is identical to the mesh.C()
+    // except on separated coupled patches.
+    slicedVolVectorField meshC
+    (
+        IOobject
+        (
+            "C",
+            mesh_.pointsInstance(),
+            mesh_.meshSubDir,
+            mesh_,
+            IOobject::NO_READ,
+            IOobject::NO_WRITE,
+            false
+        ),
+        mesh_,
+        dimLength,
+        mesh_.cellCentres(),
+        mesh_.faceCentres()
+    );
+    {
+        const polyBoundaryMesh& patches = mesh_.boundaryMesh();
+        forAll(patches, patchI)
+        {
+            if
+            (
+                patches[patchI].coupled()
+             && refCast<const coupledPolyPatch>(patches[patchI]).separated()
+            )
+            {
+                fvPatchVectorField& pfld = const_cast<fvPatchVectorField&>
+                (
+                    meshC.boundaryField()[patchI]
+                );
+                pfld.operator==
+                (
+                    patches[patchI].patchSlice(mesh_.faceCentres())
+                );
+            }
+        }
+    }
+
+
     DynamicList<point> triPoints(nCutCells_);
     DynamicList<label> triMeshCells(nCutCells_);
 
@@ -1602,7 +1662,7 @@ Foam::isoSurface::isoSurface
         cVals,
         pVals,
 
-        mesh_.C(),
+        meshC,
         mesh_.points(),
 
         snappedPoints,
diff --git a/src/sampling/sampledSurface/isoSurface/isoSurfaceTemplates.C b/src/sampling/sampledSurface/isoSurface/isoSurfaceTemplates.C
index 20249528645314d4f50ac06b8b42a4bdcc0595b2..e2251aad2abdecd824c6d3afc61a93ec7d222432 100644
--- a/src/sampling/sampledSurface/isoSurface/isoSurfaceTemplates.C
+++ b/src/sampling/sampledSurface/isoSurface/isoSurfaceTemplates.C
@@ -369,39 +369,41 @@ void Foam::isoSurface::generateTriPoints
     {
         const polyPatch& pp = patches[patchI];
 
-        if (isA<processorPolyPatch>(pp))
+        if
+        (
+            isA<processorPolyPatch>(pp)
+         && refCast<const processorPolyPatch>(pp).owner()
+         && !refCast<const processorPolyPatch>(pp).separated()
+        )
         {
-            if (refCast<const processorPolyPatch>(pp).owner())
-            {
-                label faceI = pp.start();
+            label faceI = pp.start();
 
-                forAll(pp, i)
+            forAll(pp, i)
+            {
+                if (faceCutType_[faceI] != NOTCUT)
                 {
-                    if (faceCutType_[faceI] != NOTCUT)
-                    {
-                        generateFaceTriPoints
-                        (
-                            cVals,
-                            pVals,
-
-                            cCoords,
-                            pCoords,
-
-                            snappedPoints,
-                            snappedCc,
-                            snappedPoint,
-                            faceI,
-
-                            cVals.boundaryField()[patchI][i],
-                            cCoords.boundaryField()[patchI][i],
-                            neiSnappedCc[faceI-mesh_.nInternalFaces()],
-
-                            triPoints,
-                            triMeshCells
-                        );
-                    }
-                    faceI++;
+                    generateFaceTriPoints
+                    (
+                        cVals,
+                        pVals,
+
+                        cCoords,
+                        pCoords,
+
+                        snappedPoints,
+                        snappedCc,
+                        snappedPoint,
+                        faceI,
+
+                        cVals.boundaryField()[patchI][i],
+                        cCoords.boundaryField()[patchI][i],
+                        neiSnappedCc[faceI-mesh_.nInternalFaces()],
+
+                        triPoints,
+                        triMeshCells
+                    );
                 }
+                faceI++;
             }
         }
         else if (isA<emptyPolyPatch>(pp))
@@ -482,8 +484,8 @@ void Foam::isoSurface::generateTriPoints
 //{
 //    return tmp<Field<Type> >(new Field<Type>(vField, meshCells()));
 //}
-//
-//
+
+
 template <class Type>
 Foam::tmp<Foam::Field<Type> >
 Foam::isoSurface::interpolate
diff --git a/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.C b/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.C
index 2cbe93c40abd1c863bdb73de74f7fc9f54079f1b..5fd09bda66e9ba888e5f0212c05cca58c567a70f 100644
--- a/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.C
+++ b/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.C
@@ -335,7 +335,7 @@ bool Foam::sampledIsoSurface::updateGeometry() const
 
         subMeshPtr_.reset
         (
-            new fvMeshSubset(static_cast<const fvMesh&>(mesh()))
+            new fvMeshSubset(fvm)
         );
         subMeshPtr_().setLargeCellSubset
         (
diff --git a/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.H b/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.H
index 4cf334ecbd504924344a3b6a4b51224f3a9ffbdc..99324cdf5f398a66b1f1e3416d1454e12ff07f20 100644
--- a/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.H
+++ b/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.H
@@ -87,7 +87,7 @@ class sampledIsoSurface
 
         // Recreated for every isoSurface
 
-            //- Time at last call, also track it surface needs an update
+            //- Time at last call, also track if surface needs an update
             mutable label prevTimeIndex_;
 
             //- Cached volfield
diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C
index 003515c7d403160b9f41119016ce45ffee38639a..9eb0e73f1116eeef237df6f048fe5738e6796712 100644
--- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C
+++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C
@@ -203,7 +203,6 @@ Foam::sampledSurfaces::~sampledSurfaces()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-
 void Foam::sampledSurfaces::verbose(const bool verbosity)
 {
     verbose_ = verbosity;
@@ -216,6 +215,12 @@ void Foam::sampledSurfaces::execute()
 }
 
 
+void Foam::sampledSurfaces::end()
+{
+    // Do nothing - only valid on write
+}
+
+
 void Foam::sampledSurfaces::write()
 {
     if (size() && checkFieldTypes())
diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H
index 263578340906a08937a80a6cc9f55aa444ad17db..7bf12aaba8e1099501ef31424a3917f1c4562a34 100644
--- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H
+++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H
@@ -257,9 +257,12 @@ public:
         //- set verbosity level
         void verbose(const bool verbosity = true);
 
-        //- Execute
+        //- Execute, currently does nothing
         virtual void execute();
 
+        //- Execute at the final time-loop, currently does nothing
+        virtual void end();
+
         //- Sample and write
         virtual void write();
 
diff --git a/src/thermophysicalModels/liquids/liquid/liquid.H b/src/thermophysicalModels/liquids/liquid/liquid.H
index 39b95176219b59d8dd493f35c1566e08845aa2ce..27bbff55bf2ea53e89432595f9aca3a837f962f6 100644
--- a/src/thermophysicalModels/liquids/liquid/liquid.H
+++ b/src/thermophysicalModels/liquids/liquid/liquid.H
@@ -41,7 +41,6 @@ SourceFiles
 #include "typeInfo.H"
 #include "autoPtr.H"
 #include "runTimeSelectionTables.H"
-//#include "eos.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -52,8 +51,6 @@ namespace Foam
                            Class liquid Declaration
 \*---------------------------------------------------------------------------*/
 
-    //class eos;
-
 class liquid
 {
     // Private data
@@ -75,23 +72,22 @@ class liquid
 
         //- Triple point temperature [K]
         scalar Tt_;
-    
+
         //- Triple point pressure [Pa]
         scalar Pt_;
 
         //- Normal boiling temperature [K]
         scalar Tb_;
- 
+
         //- Dipole moment []
         scalar dipm_;
 
-        //- Pitzer's acentric factor []
+        //- Pitzer's accentric factor []
         scalar omega_;
 
         //- Solubility parameter [(J/m^3)^0.5]
         scalar delta_;
 
-    //eos state_;
 
 public:
 
@@ -174,7 +170,7 @@ public:
 
     // Member Functions
 
-        // Phisical constants which define the specie
+        // Physical constants which define the specie
 
             //- Molecular weight [kg/kmol]
             scalar W() const
diff --git a/src/turbulenceModels/Allwmake b/src/turbulenceModels/Allwmake
index 4c49ec6163362cc9eaa8858cb0c99799253a38ef..80dc9dc1ee0053a356519db504dcc8514e6a86a5 100755
--- a/src/turbulenceModels/Allwmake
+++ b/src/turbulenceModels/Allwmake
@@ -2,8 +2,8 @@
 cd ${0%/*} || exit 1    # run from this directory
 set -x
 
-(cd LES && ./Allwmake )
-(cd incompressible && ./Allwmake )
-(cd compressible && ./Allwmake )
+LES/Allwmake
+incompressible/Allwmake
+compressible/Allwmake
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/combustion/XiFoam/Allrun b/tutorials/combustion/XiFoam/Allrun
index a07a780037c220bfb5401419e5693671bedf4ec7..a48aed068dcb8117a2bbd0d5ac465d875fb32f46 100755
--- a/tutorials/combustion/XiFoam/Allrun
+++ b/tutorials/combustion/XiFoam/Allrun
@@ -3,7 +3,7 @@
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 # Get application name from directory
-application=${PWD##*/}
+application="XiFoam"
 
 setControlDict () {
     controlDict="system/controlDict"
@@ -20,6 +20,7 @@ setControlDict () {
 
 # Clone case
 cloneCase moriyoshiHomogeneous moriyoshiHomogeneousPart2
+
 # Modify and execute
 cd moriyoshiHomogeneousPart2
     cp -r ../moriyoshiHomogeneous/0.005 .
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/epsilon b/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/epsilon
index c7751ffc11831705bb249fe40f2357521c561b49..57a9ae537217d5a8376bf2ad89092674b0b12aa1 100644
--- a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/epsilon
+++ b/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/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,40 +10,42 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      epsilon;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -3 0 0 0 0];
+dimensions      [ 0 2 -3 0 0 0 0 ];
 
 internalField   uniform 375;
 
 boundaryField
 {
-    left            
+    left
     {
         type            symmetryPlane;
     }
 
-    right           
+    right
     {
         type            symmetryPlane;
     }
 
-    top             
+    top
     {
         type            symmetryPlane;
     }
 
-    bottom          
+    bottom
     {
         type            symmetryPlane;
     }
 
-    frontAndBack    
+    frontAndBack
     {
         type            empty;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/k b/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/k
index a8d80dda8a30d24b8fd472d43841610d52e41696..603093e6e38418cd498fe3fe0485fce0bcb1a4fc 100644
--- a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/k
+++ b/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/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,40 +10,42 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      k;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -2 0 0 0 0];
+dimensions      [ 0 2 -2 0 0 0 0 ];
 
 internalField   uniform 1.5;
 
 boundaryField
 {
-    left            
+    left
     {
         type            symmetryPlane;
     }
 
-    right           
+    right
     {
         type            symmetryPlane;
     }
 
-    top             
+    top
     {
         type            symmetryPlane;
     }
 
-    bottom          
+    bottom
     {
         type            symmetryPlane;
     }
 
-    frontAndBack    
+    frontAndBack
     {
         type            empty;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/mut b/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/mut
new file mode 100644
index 0000000000000000000000000000000000000000..a9920120d019319b6b5bcc3e0ca728684970e2a0
--- /dev/null
+++ b/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/mut
@@ -0,0 +1,51 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0";
+    object      mut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [ 1 -1 -1 0 0 0 0 ];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    left
+    {
+        type            symmetryPlane;
+    }
+
+    right
+    {
+        type            symmetryPlane;
+    }
+
+    top
+    {
+        type            symmetryPlane;
+    }
+
+    bottom
+    {
+        type            symmetryPlane;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoPisoFoam/ras/cavity/0/R b/tutorials/compressible/rhoPisoFoam/ras/cavity/0/R
index f229e06765a80201beb1cdaf5c451d78e97c03f0..6d7f9a3db106f1323009644400e2b003cdc1d0bd 100644
--- a/tutorials/compressible/rhoPisoFoam/ras/cavity/0/R
+++ b/tutorials/compressible/rhoPisoFoam/ras/cavity/0/R
@@ -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,30 +10,34 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volSymmTensorField;
+    location    "0";
     object      R;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -2 0 0 0 0];
+dimensions      [ 0 2 -2 0 0 0 0 ];
 
-internalField   uniform (0 0 0 0 0 0);
+internalField   uniform ( 0 0 0 0 0 0 );
 
 boundaryField
 {
-    movingWall      
+    movingWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform ( 0 0 0 0 0 0 );
     }
 
-    fixedWalls      
+    fixedWalls
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform ( 0 0 0 0 0 0 );
     }
 
-    frontAndBack    
+    frontAndBack
     {
         type            empty;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/compressible/rhoPisoFoam/ras/cavity/0/epsilon b/tutorials/compressible/rhoPisoFoam/ras/cavity/0/epsilon
index b24ccfb3802fe4d844039522afaf26e6fed39fe7..1b7c6c0d70a42a55f17e2b579fa12cf5403e1412 100644
--- a/tutorials/compressible/rhoPisoFoam/ras/cavity/0/epsilon
+++ b/tutorials/compressible/rhoPisoFoam/ras/cavity/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,30 +10,34 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      epsilon;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -3 0 0 0 0];
+dimensions      [ 0 2 -3 0 0 0 0 ];
 
 internalField   uniform 0.000765;
 
 boundaryField
 {
-    movingWall      
+    movingWall
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 
-    fixedWalls      
+    fixedWalls
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 
-    frontAndBack    
+    frontAndBack
     {
         type            empty;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/compressible/rhoPisoFoam/ras/cavity/0/k b/tutorials/compressible/rhoPisoFoam/ras/cavity/0/k
index 5242962b3b24e867f6b6b8db4b0c278faee0a476..64ea0ca8fbd25e149a023c3c3ecee9af977197a8 100644
--- a/tutorials/compressible/rhoPisoFoam/ras/cavity/0/k
+++ b/tutorials/compressible/rhoPisoFoam/ras/cavity/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.00325;
 
@@ -24,13 +24,15 @@ boundaryField
     movingWall
     {
         type            kQRWallFunction;
-        value           uniform 0.00325;
+        value           uniform 0;
     }
+
     fixedWalls
     {
         type            kQRWallFunction;
-        value           uniform 0.00325;
+        value           uniform 0;
     }
+
     frontAndBack
     {
         type            empty;
diff --git a/tutorials/compressible/rhoPisoFoam/ras/cavity/0/mut b/tutorials/compressible/rhoPisoFoam/ras/cavity/0/mut
index a0f4c473102445c3741b8324de193086abc82af1..3aaa8e77f82971aa58a9b96e84e20178a824085a 100644
--- a/tutorials/compressible/rhoPisoFoam/ras/cavity/0/mut
+++ b/tutorials/compressible/rhoPisoFoam/ras/cavity/0/mut
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [1 -1 -1 0 0 0 0];
+dimensions      [ 1 -1 -1 0 0 0 0 ];
 
 internalField   uniform 0;
 
@@ -26,11 +26,13 @@ boundaryField
         type            mutWallFunction;
         value           uniform 0;
     }
+
     fixedWalls
     {
         type            mutWallFunction;
         value           uniform 0;
     }
+
     frontAndBack
     {
         type            empty;
diff --git a/tutorials/compressible/rhoPisoFoam/ras/cavity/0/omega b/tutorials/compressible/rhoPisoFoam/ras/cavity/0/omega
index b825b4913ae0eb79cdf93ea5c333ebc0a1013115..fa4f022f0140184baac96f3b5198908e796c1cf2 100644
--- a/tutorials/compressible/rhoPisoFoam/ras/cavity/0/omega
+++ b/tutorials/compressible/rhoPisoFoam/ras/cavity/0/omega
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 0 -1 0 0 0 0];
+dimensions      [ 0 0 -1 0 0 0 0 ];
 
 internalField   uniform 2.6;
 
@@ -24,13 +24,15 @@ boundaryField
     movingWall
     {
         type            omegaWallFunction;
-        value           uniform 2.6;
+        value           uniform 0;
     }
+
     fixedWalls
     {
         type            omegaWallFunction;
-        value           uniform 2.6;
+        value           uniform 0;
     }
+
     frontAndBack
     {
         type            empty;
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/epsilon b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/epsilon
index ca6ec2ff0d794beb9ea394d4187d986b001eb4f2..13cfc84a0ec1f4c5046a0e4d04d0b7a446a7d611 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/epsilon
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/epsilon
@@ -1,55 +1,64 @@
 /*--------------------------------*- 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
 {
     version     2.0;
-    format      ascii;
+    format      binary;
     class       volScalarField;
+    location    "0";
     object      epsilon;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-dimensions      [0 2 -3 0 0 0 0];
+
+dimensions      [ 0 2 -3 0 0 0 0 ];
 
 internalField   uniform 200;
 
 boundaryField
 {
-
     front
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
+
     back
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
+
     wall
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
+
     porosityWall
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 
     inlet
     {
         type            turbulentMixingLengthDissipationRateInlet;
         mixingLength    0.005;
-        value           $internalField;
+        value           uniform 200;
     }
 
     outlet
     {
         type            inletOutlet;
-        inletValue      $internalField;
-        value           $internalField;
+        inletValue      uniform 200;
+        value           uniform 200;
     }
-
 }
+
+
 // ************************************************************************* //
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/k b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/k
index c1cf0e833d52e74023d3b7d56d9c4ab4b9a8e2af..16c1e28fb894fe44a909cc4caa010fb591b74072 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/k
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/k
@@ -1,55 +1,64 @@
 /*--------------------------------*- 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
 {
     version     2.0;
-    format      ascii;
+    format      binary;
     class       volScalarField;
+    location    "0";
     object      k;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-dimensions      [0 2 -2 0 0 0 0];
+
+dimensions      [ 0 2 -2 0 0 0 0 ];
 
 internalField   uniform 1;
 
 boundaryField
 {
-
     front
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
+
     back
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
+
     wall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
+
     porosityWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
 
     inlet
     {
         type            turbulentIntensityKineticEnergyInlet;
         intensity       0.05;
-        value           $internalField;
+        value           uniform 1;
     }
 
     outlet
     {
         type            inletOutlet;
-        inletValue      $internalField;
-        value           $internalField;
+        inletValue      uniform 1;
+        value           uniform 1;
     }
-
 }
+
+
 // ************************************************************************* //
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/mut b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/mut
new file mode 100644
index 0000000000000000000000000000000000000000..264b3b4003162e2cdee003d31ef8cf4b6c68de37
--- /dev/null
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/0/mut
@@ -0,0 +1,62 @@
+/*--------------------------------*- 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      binary;
+    class       volScalarField;
+    location    "0";
+    object      mut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [ 1 -1 -1 0 0 0 0 ];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    front
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+
+    back
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+
+    wall
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+
+    porosityWall
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+
+    inlet
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+
+    outlet
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/0/T b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/T
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/0/T
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/T
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/0/T.org b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/T.org
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/0/T.org
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/T.org
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/0/U b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/U
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/0/U
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/U
diff --git a/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/epsilon b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/epsilon
new file mode 100644
index 0000000000000000000000000000000000000000..471f122da8e2a81955aac14f408a0fec3c7c19f7
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/epsilon
@@ -0,0 +1,44 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0";
+    object      epsilon;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [ 0 2 -3 0 0 0 0 ];
+
+internalField   uniform 0.01;
+
+boundaryField
+{
+    floor
+    {
+        type            epsilonWallFunction;
+        value           uniform 0;
+    }
+
+    ceiling
+    {
+        type            epsilonWallFunction;
+        value           uniform 0;
+    }
+
+    fixedWalls
+    {
+        type            epsilonWallFunction;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/k b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/k
new file mode 100644
index 0000000000000000000000000000000000000000..e0c92b9c4f9463d1f90ff2ef32188125d092c301
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/k
@@ -0,0 +1,44 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0";
+    object      k;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [ 0 2 -2 0 0 0 0 ];
+
+internalField   uniform 0.1;
+
+boundaryField
+{
+    floor
+    {
+        type            kQRWallFunction;
+        value           uniform 0;
+    }
+
+    ceiling
+    {
+        type            kQRWallFunction;
+        value           uniform 0;
+    }
+
+    fixedWalls
+    {
+        type            kQRWallFunction;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/mut b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/mut
new file mode 100644
index 0000000000000000000000000000000000000000..f78d7659f90151e17c9011c88f9c96806ca7bcaf
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/mut
@@ -0,0 +1,44 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0";
+    object      mut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [ 1 -1 -1 0 0 0 0 ];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    floor
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+
+    ceiling
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+
+    fixedWalls
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/0/p b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/p
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/0/p
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/p
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/0/pd b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/pd
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/0/pd
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/0/pd
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/Allclean b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/Allclean
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/Allclean
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/Allclean
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/Allrun b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/Allrun
similarity index 88%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/Allrun
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/Allrun
index d000bedff7b5d636bc123422d6486564284ebb0a..165068eca772f8a03129d90176be7d1ec909031b 100755
--- a/tutorials/heatTransfer/buoyantFoam/hotRoom/Allrun
+++ b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/Allrun
@@ -3,7 +3,7 @@
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 # Get application name from directory
-application="buoyantFoam"
+application="buoyantPisoFoam"
 
 compileApplication setHotRoom
 runApplication blockMesh
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/constant/RASProperties b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/constant/RASProperties
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/constant/RASProperties
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/constant/RASProperties
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/constant/environmentalProperties b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/constant/environmentalProperties
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/constant/environmentalProperties
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/constant/environmentalProperties
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/constant/polyMesh/blockMeshDict b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/constant/polyMesh/blockMeshDict
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/constant/polyMesh/blockMeshDict
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/constant/polyMesh/boundary b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/constant/polyMesh/boundary
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/constant/polyMesh/boundary
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/constant/thermophysicalProperties b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/constant/thermophysicalProperties
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/constant/thermophysicalProperties
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/constant/turbulenceProperties b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/constant/turbulenceProperties
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/constant/turbulenceProperties
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/constant/turbulenceProperties
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/setHotRoom/Make/files b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/setHotRoom/Make/files
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/setHotRoom/Make/files
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/setHotRoom/Make/files
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/options b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/setHotRoom/Make/options
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/options
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/setHotRoom/Make/options
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/setHotRoom/createFields.H b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/setHotRoom/createFields.H
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/setHotRoom/createFields.H
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/setHotRoom/createFields.H
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/setHotRoom/setHotRoom.C b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/setHotRoom/setHotRoom.C
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/setHotRoom/setHotRoom.C
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/setHotRoom/setHotRoom.C
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/system/controlDict b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/system/controlDict
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/system/controlDict
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/system/controlDict
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/system/fvSchemes b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/system/fvSchemes
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/system/fvSchemes
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/system/fvSchemes
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/system/fvSolution b/tutorials/heatTransfer/buoyantPisoFoam/hotRoom/system/fvSolution
similarity index 100%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/system/fvSolution
rename to tutorials/heatTransfer/buoyantPisoFoam/hotRoom/system/fvSolution
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/epsilon b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/epsilon
index 5f8de5792ef1c6b173fe42b97951d837a67e3f44..d9e8b1dc34ec630cae7baa8d5abde75ca596011b 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/epsilon
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/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,35 +10,41 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      epsilon;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -3 0 0 0 0];
+dimensions      [ 0 2 -3 0 0 0 0 ];
 
 internalField   uniform 0.01;
 
 boundaryField
 {
-    floor           
+    floor
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 
-    ceiling         
+    ceiling
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 
-    fixedWalls      
+    fixedWalls
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 
     box
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/k b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/k
index a7d2d3f4f0798f18ca28eaa5d052d652f4547a4b..0eb1a25c30942beaa043ec5811cde80ded559833 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/k
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/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,35 +10,41 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      k;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -2 0 0 0 0];
+dimensions      [ 0 2 -2 0 0 0 0 ];
 
 internalField   uniform 0.1;
 
 boundaryField
 {
-    floor           
+    floor
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
 
-    ceiling         
+    ceiling
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
 
-    fixedWalls      
+    fixedWalls
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
 
     box
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/mut b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/mut
new file mode 100644
index 0000000000000000000000000000000000000000..c609cbf3d2c865212d20992980a9b59a349b9c68
--- /dev/null
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/mut
@@ -0,0 +1,50 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0";
+    object      mut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [ 1 -1 -1 0 0 0 0 ];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    box
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+
+    floor
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+
+    ceiling
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+
+    fixedWalls
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/alphat b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/alphat
new file mode 100644
index 0000000000000000000000000000000000000000..3a5286b6dbfcffb06d6a45c99fe29429f6cba062
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/alphat
@@ -0,0 +1,67 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0.001";
+    object      alphat;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    maxY
+    {
+        type            alphatWallFunction;
+        value           uniform 0;
+    }
+    minX
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    maxX
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    minZ
+    {
+        type            alphatWallFunction;
+        value           uniform 0;
+    }
+    maxZ
+    {
+        type            alphatWallFunction;
+        value           uniform 0;
+    }
+    topAir_to_leftSolid
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    topAir_to_heater
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    topAir_to_rightSolid
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/epsilon b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/epsilon
index 4f3ffc986ea9c166950c1b4a693ae6b37fea40aa..bb298dd95dd506ba55c7acde5da6e7a1b8f41bcb 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/epsilon
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/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.001";
     object      epsilon;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -20,6 +21,11 @@ internalField   uniform 0.01;
 
 boundaryField
 {
+    maxY
+    {
+        type            epsilonWallFunction;
+        value           uniform 0.01;
+    }
     minX
     {
         type            fixedValue;
@@ -29,24 +35,29 @@ boundaryField
     {
         type            zeroGradient;
     }
-
-    minY
+    minZ
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0.01;
     }
-    maxY
+    maxZ
+    {
+        type            epsilonWallFunction;
+        value           uniform 0.01;
+    }
+    topAir_to_leftSolid
     {
         type            zeroGradient;
     }
-
-    minZ
+    topAir_to_heater
     {
         type            zeroGradient;
     }
-    maxZ
+    topAir_to_rightSolid
     {
         type            zeroGradient;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/k b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/k
index 7ac77f7e69aeb0bd0efaddd0c3f0a9a1d74e67fc..e4db2c837d0bd8d76ad06e085cf27900d8308e9e 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/k
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/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.001";
     object      k;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -20,6 +21,11 @@ internalField   uniform 0.1;
 
 boundaryField
 {
+    maxY
+    {
+        type            kQRWallFunction;
+        value           uniform 0.1;
+    }
     minX
     {
         type            fixedValue;
@@ -29,24 +35,29 @@ boundaryField
     {
         type            zeroGradient;
     }
-
-    minY
+    minZ
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0.1;
     }
-    maxY
+    maxZ
+    {
+        type            kQRWallFunction;
+        value           uniform 0.1;
+    }
+    topAir_to_leftSolid
     {
         type            zeroGradient;
     }
-
-    minZ
+    topAir_to_heater
     {
         type            zeroGradient;
     }
-    maxZ
+    topAir_to_rightSolid
     {
         type            zeroGradient;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/mut b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/mut
new file mode 100644
index 0000000000000000000000000000000000000000..ece854fd06176af32e1d06503c0c3461c1a3b77c
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/mut
@@ -0,0 +1,67 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0.001";
+    object      mut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    maxY
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+    minX
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    maxX
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    minZ
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+    maxZ
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+    topAir_to_leftSolid
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    topAir_to_heater
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    topAir_to_rightSolid
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun
index e698fc906af01916284db58338ac255c62b427b5..f4374b6a93079b3971e9000714616bab0a1a0685 100755
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun
@@ -1,4 +1,5 @@
 #!/bin/sh
+
 # Source tutorial run functions
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
@@ -20,7 +21,7 @@ done
 # remove fluid fields from solid regions (important for post-processing)
 for i in heater leftSolid rightSolid
 do
-   rm -f 0*/$i/{epsilon,k,p,pd,U}
+   rm -f 0*/$i/{mut,alphat,epsilon,k,p,pd,U}
 done
 
 # remove solid fields from fluid regions (important for post-processing)
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/turbulenceProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/turbulenceProperties
new file mode 120000
index 0000000000000000000000000000000000000000..435bf46f771a1525b3b0358a7cb3aea5243f7b91
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/topAir/turbulenceProperties
@@ -0,0 +1 @@
+../bottomAir/turbulenceProperties
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/README b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/README
new file mode 100644
index 0000000000000000000000000000000000000000..fd464e464c710813fac07db7d9ee31278ad58094
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/README
@@ -0,0 +1,3 @@
+fvSchemes and fvSolution are not used here
+- added so that pre-processing activities can proceed
+
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/0/k.old b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/fvSchemes
similarity index 69%
rename from tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/0/k.old
rename to tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/fvSchemes
index 1130003c3b067e123df3d3d97a094acc387e6456..e8078b2b209d98dacf01c6263cf26202d00cd1e8 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/0/k.old
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/fvSchemes
@@ -9,31 +9,10 @@ FoamFile
 {
     version     2.0;
     format      ascii;
-    class       volScalarField;
-    location    "0";
-    object      k.old;
+    class       dictionary;
+    object      fvSchemes;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -2 0 0 0 0];
-
-internalField   uniform 0.1;
-
-boundaryField
-{
-    floor
-    {
-        type            zeroGradient;
-    }
-    ceiling
-    {
-        type            zeroGradient;
-    }
-    fixedWalls
-    {
-        type            zeroGradient;
-    }
-}
-
 
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/0/epsilon b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/fvSolution
similarity index 68%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/0/epsilon
rename to tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/fvSolution
index 46a465314bba1bb27c4a20bfb95b5be3f44c9240..78262ec2df008422f0817dc264bc8dab539bf568 100644
--- a/tutorials/heatTransfer/buoyantFoam/hotRoom/0/epsilon
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/fvSolution
@@ -9,31 +9,9 @@ FoamFile
 {
     version     2.0;
     format      ascii;
-    class       volScalarField;
-    object      epsilon;
+    class       dictionary;
+    object      fvSolution;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -3 0 0 0 0];
-
-internalField   uniform 0.01;
-
-boundaryField
-{
-    floor           
-    {
-        type            zeroGradient;
-    }
-
-    ceiling         
-    {
-        type            zeroGradient;
-    }
-
-    fixedWalls      
-    {
-        type            zeroGradient;
-    }
-}
-
 // ************************************************************************* //
diff --git a/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.C b/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.C
index 7e1faab80578359690e6a7aa8ee590523aec3303..9fc36826fe69d29b6164386dc74e19eb6b5df6ff 100644
--- a/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.C
+++ b/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/MRFSimpleFoam.C
@@ -52,8 +52,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readSIMPLEControls.H"
diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/epsilon b/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/epsilon
index 54a2ee8baa368c6af458c30b2595706d911de939..ddb0f60d60f37746da6c73e25569c0f6f3d823e9 100644
--- a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/epsilon
+++ b/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/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,11 +10,12 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      epsilon;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -3 0 0 0 0];
+dimensions      [ 0 2 -3 0 0 0 0 ];
 
 internalField   uniform 20;
 
@@ -22,12 +23,14 @@ boundaryField
 {
     rotor
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 
     stator
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 
     front
@@ -41,4 +44,5 @@ boundaryField
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/k b/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/k
index 3a979f12e462520d386473a0e8aae8fd1f551fb9..e78fcca795300548ec365c43472256d7c8f1ae8c 100644
--- a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/k
+++ b/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/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,11 +10,12 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      k;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -2 0 0 0 0];
+dimensions      [ 0 2 -2 0 0 0 0 ];
 
 internalField   uniform 1;
 
@@ -22,12 +23,14 @@ boundaryField
 {
     rotor
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
 
     stator
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
 
     front
@@ -41,4 +44,5 @@ boundaryField
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/nut b/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/nut
new file mode 100644
index 0000000000000000000000000000000000000000..6a0f01dc75eee067bd8fb88c07cee3511851897d
--- /dev/null
+++ b/tutorials/incompressible/MRFSimpleFoam/mixerVessel2D/0/nut
@@ -0,0 +1,48 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0";
+    object      nut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [ 0 2 -1 0 0 0 0 ];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    rotor
+    {
+        type            nutWallFunction;
+        value           uniform 0;
+    }
+
+    stator
+    {
+        type            nutWallFunction;
+        value           uniform 0;
+    }
+
+    front
+    {
+        type            empty;
+    }
+
+    back
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/channelFoam/channel395/Allrun b/tutorials/incompressible/channelFoam/channel395/Allrun
index eb27d2f71122fe11eb468a21f712c213579df8bc..d4e6877e32feab36c83ad67cfaac4f3e1e5801fe 100755
--- a/tutorials/incompressible/channelFoam/channel395/Allrun
+++ b/tutorials/incompressible/channelFoam/channel395/Allrun
@@ -3,8 +3,7 @@
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 # Get application directory
-parentDir=`dirname $PWD`
-application=`basename $parentDir`
+application="channelFoam"
 
 runApplication blockMesh
 runApplication $application
diff --git a/tutorials/incompressible/pimpleFoam/t-junction/0/epsilon b/tutorials/incompressible/pimpleFoam/t-junction/0/epsilon
index 8e5b3e553d196c92fbfd8148146609c1e9b254ca..2c4cfab1c0ef7e56f4a23057641739d0ef5999e9 100644
--- a/tutorials/incompressible/pimpleFoam/t-junction/0/epsilon
+++ b/tutorials/incompressible/pimpleFoam/t-junction/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,11 +10,12 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      epsilon;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -3 0 0 0 0];
+dimensions      [ 0 2 -3 0 0 0 0 ];
 
 internalField   uniform 1;
 
@@ -23,7 +24,7 @@ boundaryField
     inlet
     {
         type            turbulentMixingLengthDissipationRateInlet;
-        mixingLength    0.01;         // 1cm - half channel height
+        mixingLength    0.01;
         value           uniform 1;
     }
 
@@ -41,7 +42,8 @@ boundaryField
 
     defaultFaces
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 }
 
diff --git a/tutorials/incompressible/pimpleFoam/t-junction/0/k b/tutorials/incompressible/pimpleFoam/t-junction/0/k
index 35b2bd3ff9a83789500a9b5d2488c086f274ae0b..51c0ab7cd30397abad14e0c782189481316cb8c6 100644
--- a/tutorials/incompressible/pimpleFoam/t-junction/0/k
+++ b/tutorials/incompressible/pimpleFoam/t-junction/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,11 +10,12 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      k;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -2 0 0 0 0];
+dimensions      [ 0 2 -2 0 0 0 0 ];
 
 internalField   uniform 1;
 
@@ -23,7 +24,7 @@ boundaryField
     inlet
     {
         type            turbulentIntensityKineticEnergyInlet;
-        intensity       0.05;           // 5% turbulence
+        intensity       0.05;
         value           uniform 1;
     }
 
@@ -41,8 +42,10 @@ boundaryField
 
     defaultFaces
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/t-junction/0/nut b/tutorials/incompressible/pimpleFoam/t-junction/0/nut
new file mode 100644
index 0000000000000000000000000000000000000000..8a3ff85900475f27b1937494e4ff2d044f06894a
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/t-junction/0/nut
@@ -0,0 +1,50 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0";
+    object      nut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [ 0 2 -1 0 0 0 0 ];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    inlet
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+
+    outlet1
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+
+    outlet2
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+
+    defaultFaces
+    {
+        type            nutWallFunction;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/0/R b/tutorials/incompressible/pisoFoam/ras/cavity/0/R
index f229e06765a80201beb1cdaf5c451d78e97c03f0..fec1a87fa5d49eea46b2b46fb93fb7e299a06594 100644
--- a/tutorials/incompressible/pisoFoam/ras/cavity/0/R
+++ b/tutorials/incompressible/pisoFoam/ras/cavity/0/R
@@ -20,17 +20,17 @@ internalField   uniform (0 0 0 0 0 0);
 
 boundaryField
 {
-    movingWall      
+    movingWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
     }
 
-    fixedWalls      
+    fixedWalls
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
     }
 
-    frontAndBack    
+    frontAndBack
     {
         type            empty;
     }
diff --git a/tutorials/incompressible/shallowWaterFoam/squareBump/.gmtcommands4 b/tutorials/incompressible/shallowWaterFoam/squareBump/.gmtcommands4
new file mode 100644
index 0000000000000000000000000000000000000000..2fdd6b92b54e47b55547fa13d01d910012b3adae
--- /dev/null
+++ b/tutorials/incompressible/shallowWaterFoam/squareBump/.gmtcommands4
@@ -0,0 +1,8 @@
+# GMT common arguments shelf
+-B0/0
+-JX18c/18c
+-R0/1/0/1
+-jX18c/18c
+EOF
+F
+
diff --git a/tutorials/incompressible/shallowWaterFoam/squareBump/0/U b/tutorials/incompressible/shallowWaterFoam/squareBump/0/U
new file mode 100644
index 0000000000000000000000000000000000000000..75b2a00ac26df48a3bf47bac9536686bc399c9e4
--- /dev/null
+++ b/tutorials/incompressible/shallowWaterFoam/squareBump/0/U
@@ -0,0 +1,44 @@
+/*--------------------------------*- 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       volVectorField;
+    location    "0";
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0.1 0 0);
+
+boundaryField
+{
+    sides
+    {
+        type            slip;
+    }
+    inlet
+    {
+        type            fixedValue;
+        value           uniform (0.1 0 0);
+    }
+    outlet
+    {
+        type            zeroGradient;
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/shallowWaterFoam/squareBump/0/h b/tutorials/incompressible/shallowWaterFoam/squareBump/0/h
new file mode 100644
index 0000000000000000000000000000000000000000..4a2aba51c4d349cb439f5009471116b587907e03
--- /dev/null
+++ b/tutorials/incompressible/shallowWaterFoam/squareBump/0/h
@@ -0,0 +1,448 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0";
+    object      h;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 0 0 0 0 0];
+
+internalField   nonuniform List<scalar> 
+400
+(
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.009
+0.009
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.009
+0.009
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+0.01
+)
+;
+
+boundaryField
+{
+    sides
+    {
+        type            zeroGradient;
+    }
+    inlet
+    {
+        type            zeroGradient;
+    }
+    outlet
+    {
+        type            fixedValue;
+        value           uniform 0.01;
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/shallowWaterFoam/squareBump/0/hTotal b/tutorials/incompressible/shallowWaterFoam/squareBump/0/hTotal
new file mode 100644
index 0000000000000000000000000000000000000000..fdaf7b1916e842cbee6f4f3a495c4ddfa5b415b0
--- /dev/null
+++ b/tutorials/incompressible/shallowWaterFoam/squareBump/0/hTotal
@@ -0,0 +1,46 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0";
+    object      hTotal;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 0 0 0 0 0];
+
+internalField   uniform 0.01;
+
+boundaryField
+{
+    sides
+    {
+        type            calculated;
+        value           uniform 0.01;
+    }
+    inlet
+    {
+        type            calculated;
+        value           uniform 0.01;
+    }
+    outlet
+    {
+        type            calculated;
+        value           uniform 0.01;
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantFoam/hotRoom/0/k b/tutorials/incompressible/shallowWaterFoam/squareBump/constant/environmentalProperties
similarity index 69%
rename from tutorials/heatTransfer/buoyantFoam/hotRoom/0/k
rename to tutorials/incompressible/shallowWaterFoam/squareBump/constant/environmentalProperties
index 5485bd3e573f9738fce7a7bc2a8c39ac2ead9d57..81880398320423b6d3270e8071222fc6fc7bbec2 100644
--- a/tutorials/heatTransfer/buoyantFoam/hotRoom/0/k
+++ b/tutorials/incompressible/shallowWaterFoam/squareBump/constant/environmentalProperties
@@ -9,31 +9,13 @@ FoamFile
 {
     version     2.0;
     format      ascii;
-    class       volScalarField;
-    object      k;
+    class       dictionary;
+    object      environmentalProperties;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -2 0 0 0 0];
-
-internalField   uniform 0.1;
-
-boundaryField
-{
-    floor           
-    {
-        type            zeroGradient;
-    }
-
-    ceiling         
-    {
-        type            zeroGradient;
-    }
-
-    fixedWalls      
-    {
-        type            zeroGradient;
-    }
-}
+g               g [0 1 -2 0 0 0 0] (0 0 -9.81);
+rotating true;
+Omega        Omega       [0 0 -1 0 0]  (0 0 7.292e-5);
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/shallowWaterFoam/squareBump/constant/h0 b/tutorials/incompressible/shallowWaterFoam/squareBump/constant/h0
new file mode 100644
index 0000000000000000000000000000000000000000..e89398d19ff5507501b1befa7796a735aed7f33d
--- /dev/null
+++ b/tutorials/incompressible/shallowWaterFoam/squareBump/constant/h0
@@ -0,0 +1,447 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0";
+    object      h0;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 0 0 0 0 0];
+
+internalField   nonuniform List<scalar> 
+400
+(
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0.001
+0.001
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0.001
+0.001
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+)
+;
+
+boundaryField
+{
+    sides
+    {
+        type            zeroGradient;
+    }
+    inlet
+    {
+        type            zeroGradient;
+    }
+    outlet
+    {
+        type            zeroGradient;
+    }
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/shallowWaterFoam/squareBump/constant/polyMesh/blockMeshDict b/tutorials/incompressible/shallowWaterFoam/squareBump/constant/polyMesh/blockMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..47585411fbb5882f24edbcac6270fd7a3f931bea
--- /dev/null
+++ b/tutorials/incompressible/shallowWaterFoam/squareBump/constant/polyMesh/blockMeshDict
@@ -0,0 +1,74 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          blockMeshDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 1;
+
+vertices
+(
+    (0 0 0)
+    (1 0 0)
+    (1 1 0)
+    (0 1 0)
+    (0 0 0.1)
+    (1 0 0.1)
+    (1 1 0.1)
+    (0 1 0.1)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (20 20 1) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+patches
+(
+    patch sides
+    (
+        (3 7 6 2)
+        (1 5 4 0)
+    )
+    patch inlet
+    (
+        (0 4 7 3)
+    )
+    patch outlet
+    (
+        (2 6 5 1)
+    )
+    empty frontAndBack
+    (
+        (0 3 2 1)
+        (4 5 6 7)
+    )
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/shallowWaterFoam/squareBump/constant/polyMesh/boundary b/tutorials/incompressible/shallowWaterFoam/squareBump/constant/polyMesh/boundary
new file mode 100644
index 0000000000000000000000000000000000000000..b96b8676fd4a649081dc3b177ade0f112412a450
--- /dev/null
+++ b/tutorials/incompressible/shallowWaterFoam/squareBump/constant/polyMesh/boundary
@@ -0,0 +1,46 @@
+/*--------------------------------*- 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       polyBoundaryMesh;
+    location    "constant/polyMesh";
+    object      boundary;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+4
+(
+    sides
+    {
+        type            patch;
+        nFaces          40;
+        startFace       760;
+    }
+    inlet
+    {
+        type            patch;
+        nFaces          20;
+        startFace       800;
+    }
+    outlet
+    {
+        type            patch;
+        nFaces          20;
+        startFace       820;
+    }
+    frontAndBack
+    {
+        type            empty;
+        nFaces          800;
+        startFace       840;
+    }
+)
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/shallowWaterFoam/squareBump/system/controlDict b/tutorials/incompressible/shallowWaterFoam/squareBump/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..0dee06d265b65d0497e4e29c59c1d9ba55d9ade8
--- /dev/null
+++ b/tutorials/incompressible/shallowWaterFoam/squareBump/system/controlDict
@@ -0,0 +1,46 @@
+/*--------------------------------*- 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      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+startFrom       startTime;
+
+startTime      0;
+
+stopAt          endTime;
+
+endTime         100;
+
+deltaT          0.1;
+
+writeControl    runTime;
+
+writeInterval   1;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression uncompressed;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable no;
+
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/shallowWaterFoam/squareBump/system/fvSchemes b/tutorials/incompressible/shallowWaterFoam/squareBump/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..801048918a2e0a594552ee133e5bac7b4d977c4f
--- /dev/null
+++ b/tutorials/incompressible/shallowWaterFoam/squareBump/system/fvSchemes
@@ -0,0 +1,54 @@
+/*--------------------------------*- 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      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         CrankNicholson 0.9;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+    div(phiv,hU)    Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear uncorrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         uncorrected;
+}
+
+fluxRequired
+{
+    h;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/shallowWaterFoam/squareBump/system/fvSolution b/tutorials/incompressible/shallowWaterFoam/squareBump/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..832feefee408f24d07b778a0b71ceaa36f11ba95
--- /dev/null
+++ b/tutorials/incompressible/shallowWaterFoam/squareBump/system/fvSolution
@@ -0,0 +1,53 @@
+/*--------------------------------*- 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      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    h
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-6;
+        relTol          0.01;
+    };
+
+    hFinal
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-8;
+        relTol          0;
+    };
+
+    hU
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-6;
+        relTol          0;
+    }
+}
+
+PISO
+{
+    nOuterCorrectors 3;
+    nCorrectors      1;
+    nNonOrthogonalCorrectors 0;
+
+    momentumPredictor yes;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/0/epsilon.old b/tutorials/incompressible/shallowWaterFoam/squareBump/system/setFieldsDict
similarity index 69%
rename from tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/0/epsilon.old
rename to tutorials/incompressible/shallowWaterFoam/squareBump/system/setFieldsDict
index d7f61316978a5d62e73f55f6dbf948d957a00e95..83d7994c33aa348007b5652ead670f4bd8e7cf87 100644
--- a/tutorials/heatTransfer/buoyantSimpleFoam/hotRoom/0/epsilon.old
+++ b/tutorials/incompressible/shallowWaterFoam/squareBump/system/setFieldsDict
@@ -9,31 +9,30 @@ FoamFile
 {
     version     2.0;
     format      ascii;
-    class       volScalarField;
-    location    "0";
-    object      epsilon.old;
+    class       dictionary;
+    object      setFieldsDict;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -3 0 0 0 0];
+defaultFieldValues
+(
+    volScalarFieldValue h0 0
+    volScalarFieldValue h 0.01
+    volVectorFieldValue U (0.1 0 0)
+);
 
-internalField   uniform 0.01;
-
-boundaryField
-{
-    floor
+regions
+(
+    boxToCell
     {
-        type            zeroGradient;
-    }
-    ceiling
-    {
-        type            zeroGradient;
-    }
-    fixedWalls
-    {
-        type            zeroGradient;
-    }
-}
+        box (0.45 0.45 0) (0.55 0.55 0.1);
 
+        fieldValues
+        (
+            volScalarFieldValue h0 0.001
+            volScalarFieldValue h  0.009
+        );
+    }
+);
 
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/pitzDaily/0/R b/tutorials/incompressible/simpleFoam/pitzDaily/0/R
index 6e399c9a75539a9918a558f7ec40b0edca903f22..f5e0a978209171573884c3be4be2096816e32df4 100644
--- a/tutorials/incompressible/simpleFoam/pitzDaily/0/R
+++ b/tutorials/incompressible/simpleFoam/pitzDaily/0/R
@@ -20,28 +20,28 @@ internalField   uniform (0 0 0 0 0 0);
 
 boundaryField
 {
-    inlet           
+    inlet
     {
         type            fixedValue;
         value           uniform (0 0 0 0 0 0);
     }
 
-    outlet          
+    outlet
     {
         type            zeroGradient;
     }
 
-    upperWall       
+    upperWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
     }
 
-    lowerWall       
+    lowerWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
     }
 
-    frontAndBack    
+    frontAndBack
     {
         type            empty;
     }
diff --git a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/R b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/R
index 6e399c9a75539a9918a558f7ec40b0edca903f22..f5e0a978209171573884c3be4be2096816e32df4 100644
--- a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/R
+++ b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/R
@@ -20,28 +20,28 @@ internalField   uniform (0 0 0 0 0 0);
 
 boundaryField
 {
-    inlet           
+    inlet
     {
         type            fixedValue;
         value           uniform (0 0 0 0 0 0);
     }
 
-    outlet          
+    outlet
     {
         type            zeroGradient;
     }
 
-    upperWall       
+    upperWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
     }
 
-    lowerWall       
+    lowerWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
     }
 
-    frontAndBack    
+    frontAndBack
     {
         type            empty;
     }
diff --git a/tutorials/incompressible/simpleSRFFoam/simpleSRFFoam/simpleSRFFoam.C b/tutorials/incompressible/simpleSRFFoam/simpleSRFFoam/simpleSRFFoam.C
index f0ce70e69350084925f7061e4d78d663a9f44155..fecc4cb717f8fd676b00c1a1be15720d0f4f065f 100644
--- a/tutorials/incompressible/simpleSRFFoam/simpleSRFFoam/simpleSRFFoam.C
+++ b/tutorials/incompressible/simpleSRFFoam/simpleSRFFoam/simpleSRFFoam.C
@@ -53,8 +53,9 @@ int main(int argc, char *argv[])
 
     Info<< "\nStarting time loop\n" << endl;
 
-    for (runTime++; !runTime.end(); runTime++)
+    while (runTime.run())
     {
+        runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
 #       include "readSIMPLEControls.H"
diff --git a/tutorials/multiphase/cavitatingFoam/les/Allrun b/tutorials/multiphase/cavitatingFoam/les/Allrun
index af563a0512000ff37ed97fc0787df58c686c66eb..45b6257d4bfdcf4cbd57f3300b75a38209c053e5 100755
--- a/tutorials/multiphase/cavitatingFoam/les/Allrun
+++ b/tutorials/multiphase/cavitatingFoam/les/Allrun
@@ -3,7 +3,7 @@
 # Source tutorial run functions
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
-application="lesCavitatingFoam"
+application="cavitatingFoam"
 
 refineMeshByCellSet()
 {
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/Allrun b/tutorials/multiphase/cavitatingFoam/ras/throttle/Allrun
index 83a53ae761330db16c885c6bf750580dff30cebd..0a3298e8e84123a662d334ac2603f043cc9a0713 100755
--- a/tutorials/multiphase/cavitatingFoam/ras/throttle/Allrun
+++ b/tutorials/multiphase/cavitatingFoam/ras/throttle/Allrun
@@ -3,7 +3,7 @@
 # Source tutorial run functions
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
-application="rasCavitatingFoam"
+application="cavitatingFoam"
 
 refineMeshByCellSet()
 {
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/0/U b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/U
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/0/U
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/U
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/0/alpha1.org b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/alpha1.org
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/0/alpha1.org
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/alpha1.org
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/0/pd.org b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/pd.org
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/0/pd.org
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/pd.org
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/Allrun b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allrun
similarity index 86%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/Allrun
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allrun
index 35a6c662332304e06a452578c5c0b6e599594fe9..f4e775f4baa016ca5056f6c9dea078382d060095 100755
--- a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/Allrun
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allrun
@@ -3,7 +3,7 @@
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 # Get application name from directory
-application="compressibleLesInterFoam"
+application="compressibleInterFoam"
 
 runApplication blockMesh
 cp 0/alpha1.org 0/alpha1
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/constant/LESProperties b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/LESProperties
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/constant/LESProperties
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/LESProperties
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/constant/environmentalProperties b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/environmentalProperties
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/constant/environmentalProperties
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/environmentalProperties
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/constant/polyMesh/blockMeshDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/constant/polyMesh/boundary b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/constant/polyMesh/boundary
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/constant/transportProperties b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/constant/transportProperties
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/transportProperties
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/constant/turbulenceProperties b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/constant/turbulenceProperties
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/turbulenceProperties
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/system/controlDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/system/controlDict
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/controlDict
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/system/fvSchemes b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/system/fvSchemes
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSchemes
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/system/fvSolution b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/system/fvSolution
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSolution
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge2D/system/setFieldsDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge2D/system/setFieldsDict
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/setFieldsDict
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/0/U b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/U
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/0/U
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/U
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/0/alpha1.org b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/alpha1.org
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/0/alpha1.org
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/alpha1.org
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/0/pd.org b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/pd.org
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/0/pd.org
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/pd.org
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/Allclean b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allclean
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/Allclean
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allclean
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/Allrun b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allrun
similarity index 89%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/Allrun
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allrun
index fbaf073e358e53801aa462568f2bee0e9d86f775..3302513ed6e1d1fc3595aad7260bc8e4299e6efb 100755
--- a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/Allrun
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allrun
@@ -3,7 +3,7 @@
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 # Get application name from directory
-application="compressibleLesInterFoam"
+application="compressibleInterFoam"
 
 runApplication blockMesh
 cp 0/alpha1.org 0/alpha1
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/constant/LESProperties b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/LESProperties
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/constant/LESProperties
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/LESProperties
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/constant/environmentalProperties b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/environmentalProperties
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/constant/environmentalProperties
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/environmentalProperties
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/constant/polyMesh/blockMeshDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/constant/polyMesh/boundary b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/constant/polyMesh/boundary
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/constant/transportProperties b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/constant/transportProperties
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/transportProperties
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/constant/turbulenceProperties b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/constant/turbulenceProperties
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/turbulenceProperties
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/system/controlDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/system/controlDict
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/controlDict
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/system/decomposeParDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/system/decomposeParDict
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/decomposeParDict
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/system/fvSchemes b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/system/fvSchemes
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSchemes
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/system/fvSolution b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/system/fvSolution
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSolution
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/system/machines b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/machines
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/system/machines
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/machines
diff --git a/tutorials/multiphase/compressibleInterFoam/depthCharge3D/system/setFieldsDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/compressibleInterFoam/depthCharge3D/system/setFieldsDict
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0-orig/U b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0-orig/U
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/U
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0-orig/alpha1 b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/alpha1
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0-orig/alpha1
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/alpha1
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0-orig/alpha1.org b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/alpha1.org
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0-orig/alpha1.org
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/alpha1.org
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0-orig/pd b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/pd
similarity index 93%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0-orig/pd
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/pd
index f5801776cf3a904337fb7591c1581bbfa72c7a6d..01361099097a2f6c771cf634ff96a3466c7b49b3 100644
--- a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0-orig/pd
+++ b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0-orig/pd
@@ -20,23 +20,23 @@ internalField   uniform 0;
 
 boundaryField
 {
-    walls        
+    walls
     {
         type            zeroGradient;
     }
 
-    obstacle       
+    obstacle
     {
         type            zeroGradient;
     }
 
-    atmosphere      
+    atmosphere
     {
         type            totalPressure;
         p0              uniform 0;
         U               U;
         phi             phi;
-        rho             none;
+        rho             rho;
         psi             none;
         gamma           1;
         value           uniform 0;
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0/U b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0/U
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/U
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0/alpha1 b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/alpha1
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0/alpha1
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/alpha1
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0/alpha1.org b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/alpha1.org
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0/alpha1.org
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/alpha1.org
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0/pd b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/pd
similarity index 93%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0/pd
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/pd
index f5801776cf3a904337fb7591c1581bbfa72c7a6d..01361099097a2f6c771cf634ff96a3466c7b49b3 100644
--- a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/0/pd
+++ b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0/pd
@@ -20,23 +20,23 @@ internalField   uniform 0;
 
 boundaryField
 {
-    walls        
+    walls
     {
         type            zeroGradient;
     }
 
-    obstacle       
+    obstacle
     {
         type            zeroGradient;
     }
 
-    atmosphere      
+    atmosphere
     {
         type            totalPressure;
         p0              uniform 0;
         U               U;
         phi             phi;
-        rho             none;
+        rho             rho;
         psi             none;
         gamma           1;
         value           uniform 0;
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/Allrun b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/Allrun
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/VTK/c0/c0_1.vtk b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/VTK/c0/c0_1.vtk
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/VTK/c0/c0_1.vtk
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/VTK/c0/c0_1.vtk
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/RASProperties b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/RASProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/RASProperties
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/RASProperties
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/environmentalProperties b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/environmentalProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/environmentalProperties
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/environmentalProperties
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/polyMesh/blockMeshDict b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/polyMesh/boundary b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/polyMesh/boundary
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/polyMesh/sets/c0 b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/polyMesh/sets/c0
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/polyMesh/sets/c0
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/polyMesh/sets/c0
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/polyMesh/sets/c0_old b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/polyMesh/sets/c0_old
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/polyMesh/sets/c0_old
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/polyMesh/sets/c0_old
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/transportProperties b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/createObstacle.setSet b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/createObstacle.setSet
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/createObstacle.setSet
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/createObstacle.setSet
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/system/controlDict b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/system/controlDict
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/damBreakWithObstacle/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/damBreakWithObstacle/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/0/U b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/0/U
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/U
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/0/alpha1 b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/alpha1
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/0/alpha1
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/alpha1
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/0/alpha1.org b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/alpha1.org
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/0/alpha1.org
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/alpha1.org
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/0/pd b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/pd
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/0/pd
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/pd
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/Allclean b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/Allclean
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/Allrun b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/Allrun
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/RASProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/RASProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/RASProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/RASProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/environmentalProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/environmentalProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/environmentalProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/environmentalProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/polyMesh/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/polyMesh/blockMeshDict.m4
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/polyMesh/boundary b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/polyMesh/boundary
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/transportProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/system/controlDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/system/controlDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/0/U b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/0/U
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/U
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/0/alpha1 b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/alpha1
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/0/alpha1
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/alpha1
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/0/alpha1.org b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/alpha1.org
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/0/alpha1.org
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/alpha1.org
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/0/pd b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/pd
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/0/pd
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/pd
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/Allclean b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/Allclean
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/Allrun b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/Allrun
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/RASProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/RASProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/RASProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/RASProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/environmentalProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/environmentalProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/environmentalProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/environmentalProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/boundary b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/boundary
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/system/controlDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/system/controlDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank2D3DoF/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/0/U b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/0/U
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/U
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/0/alpha1.org b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/alpha1.org
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/0/alpha1.org
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/alpha1.org
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/0/pd b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/pd
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/0/pd
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/pd
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/Allclean b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/Allclean
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/Allrun b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/Allrun
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/RASProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/RASProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/RASProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/RASProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/environmentalProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/environmentalProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/environmentalProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/environmentalProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/polyMesh/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/polyMesh/blockMeshDict.m4
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/polyMesh/boundary b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/polyMesh/boundary
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/transportProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/system/controlDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/system/controlDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/0/U b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/0/U
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/U
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/0/alpha1.org b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/alpha1.org
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/0/alpha1.org
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/alpha1.org
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/0/pd b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/pd
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/0/pd
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/pd
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/Allclean b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/Allclean
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/Allrun b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/Allrun
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/RASProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/RASProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/RASProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/RASProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/environmentalProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/environmentalProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/environmentalProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/environmentalProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/boundary b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/boundary
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/system/controlDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/system/controlDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D3DoF/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/0/U b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/0/U
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/U
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/0/alpha1.org b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/alpha1.org
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/0/alpha1.org
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/alpha1.org
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/0/pd b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/pd
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/0/pd
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/pd
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/Allclean b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/Allclean
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/Allrun b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/Allrun
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/6DoF.dat b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/6DoF.dat
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/6DoF.dat
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/6DoF.dat
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/RASProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/RASProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/RASProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/RASProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/environmentalProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/environmentalProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/environmentalProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/environmentalProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/boundary b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/boundary
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/files b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/gen6DoF/Make/files
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/files
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/gen6DoF/Make/files
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/gen6DoF/Make/options b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/gen6DoF/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..fa15f124528ebfcaf279a88a73a0d7954f2e9dc1
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/gen6DoF/Make/options
@@ -0,0 +1,5 @@
+EXE_INC = \
+    -I$(LIB_SRC)/finiteVolume/lnInclude
+
+EXE_LIBS = \
+    -lfiniteVolume
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/gen6DoF/gen6DoF.C b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/system/controlDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/system/controlDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/sloshingTank3D6DoF/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/setFieldsDict
diff --git a/tutorials/multiphase/interFoam/laminar/Allclean b/tutorials/multiphase/interFoam/laminar/Allclean
index 942950db4e35e4d54d201d75c8ca65e43e78e2a9..6ad97e1a0bd7ffd8f0073bb9a1f9f9d3391d7c6b 100755
--- a/tutorials/multiphase/interFoam/laminar/Allclean
+++ b/tutorials/multiphase/interFoam/laminar/Allclean
@@ -20,7 +20,3 @@ for case in $loseCases
 do
     removeCase $case
 done
-
-cd nozzleFlow2D
-    ./Allclean
-cd ..
diff --git a/tutorials/multiphase/interFoam/laminar/Allrun b/tutorials/multiphase/interFoam/laminar/Allrun
index 99db32d37aee3949480199a7b63f6075d4dd9549..9f2498ca887fea00a9140b6040c71c3725055240 100755
--- a/tutorials/multiphase/interFoam/laminar/Allrun
+++ b/tutorials/multiphase/interFoam/laminar/Allrun
@@ -3,7 +3,7 @@
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 # Get application name from directory
-application=${PWD##*/}
+application="interFoam"
 
 setDamBreakFine ()
 {
@@ -46,7 +46,3 @@ cd damBreakFine
     runParallel $application 4 system/machines
     runApplication reconstructPar
 cd ..
-
-cd nozzleFlow2D
-    ./Allrun
-cd ..
diff --git a/tutorials/multiphase/interFoam/laminar/damBreak/0/pd b/tutorials/multiphase/interFoam/laminar/damBreak/0/pd
index b6af7556cfc3be433da1eb632336164c07f5357c..520a3e9b0b291a7913c871b614d8fe9845e8ab08 100644
--- a/tutorials/multiphase/interFoam/laminar/damBreak/0/pd
+++ b/tutorials/multiphase/interFoam/laminar/damBreak/0/pd
@@ -20,34 +20,34 @@ internalField   uniform 0;
 
 boundaryField
 {
-    leftWall        
+    leftWall
     {
         type            zeroGradient;
     }
 
-    rightWall       
+    rightWall
     {
         type            zeroGradient;
     }
 
-    lowerWall       
+    lowerWall
     {
         type            zeroGradient;
     }
 
-    atmosphere      
+    atmosphere
     {
         type            totalPressure;
         p0              uniform 0;
         U               U;
         phi             phi;
-        rho             none;
+        rho             rho;
         psi             none;
         gamma           1;
         value           uniform 0;
     }
 
-    defaultFaces    
+    defaultFaces
     {
         type            empty;
     }
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/pd b/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/pd
index 58eb97f26130a3ff683e470b3bdb65a38d30c2ad..b533fbc016f7cc5b593988af8555c43a371cd0a1 100644
--- a/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/pd
+++ b/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/pd
@@ -25,34 +25,34 @@ boundaryField
         type            empty;
     }
 
-    inlet           
+    inlet
     {
         type            zeroGradient;
     }
 
-    wall            
+    wall
     {
         type            zeroGradient;
     }
 
-    atmosphere      
+    atmosphere
     {
         type            totalPressure;
         p0              uniform 0;
         U               U;
         phi             phi;
-        rho             none;
+        rho             rho;
         psi             none;
         gamma           1;
         value           uniform 0;
     }
 
-    front         
+    front
     {
         type            wedge;
     }
 
-    back         
+    back
     {
         type            wedge;
     }
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/0/R b/tutorials/multiphase/interFoam/ras/damBreak/0/R
index 2342009c4f468f8072174999889e9e76c273c1f2..e62afda35fcc821151c4141fada9e9401e4837de 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/0/R
+++ b/tutorials/multiphase/interFoam/ras/damBreak/0/R
@@ -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,42 +10,47 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volSymmTensorField;
+    location    "0";
     object      R;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -2 0 0 0 0];
+dimensions      [ 0 2 -2 0 0 0 0 ];
 
-internalField   uniform (0 0 0 0 0 0);
+internalField   uniform ( 0 0 0 0 0 0 );
 
 boundaryField
 {
-    leftWall        
+    leftWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform ( 0 0 0 0 0 0 );
     }
 
-    rightWall       
+    rightWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform ( 0 0 0 0 0 0 );
     }
 
-    lowerWall       
+    lowerWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform ( 0 0 0 0 0 0 );
     }
 
-    atmosphere      
+    atmosphere
     {
         type            inletOutlet;
-        inletValue      uniform (0 0 0 0 0 0);
-        value           uniform (0 0 0 0 0 0);
+        inletValue      uniform ( 0 0 0 0 0 0 );
+        value           uniform ( 0 0 0 0 0 0 );
     }
 
-    defaultFaces    
+    defaultFaces
     {
         type            empty;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/0/epsilon b/tutorials/multiphase/interFoam/ras/damBreak/0/epsilon
index 1db00208e9287449026258f64c7ed4b6fb88e887..92ed8a7d75e228fe370ae2c54f67161b484f4973 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/0/epsilon
+++ b/tutorials/multiphase/interFoam/ras/damBreak/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,42 +10,47 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      epsilon;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -3 0 0 0 0];
+dimensions      [ 0 2 -3 0 0 0 0 ];
 
 internalField   uniform 0.1;
 
 boundaryField
 {
-    leftWall        
+    leftWall
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 
-    rightWall       
+    rightWall
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 
-    lowerWall       
+    lowerWall
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           uniform 0;
     }
 
-    atmosphere      
+    atmosphere
     {
         type            inletOutlet;
         inletValue      uniform 0.1;
         value           uniform 0.1;
     }
 
-    defaultFaces    
+    defaultFaces
     {
         type            empty;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/0/k b/tutorials/multiphase/interFoam/ras/damBreak/0/k
index 9e576a0270f91da4435abb85a358a775308d8c6a..c8071de03ba06ce1292fe0b5ebb3e018c88efc6d 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/0/k
+++ b/tutorials/multiphase/interFoam/ras/damBreak/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,42 +10,47 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      k;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -2 0 0 0 0];
+dimensions      [ 0 2 -2 0 0 0 0 ];
 
 internalField   uniform 0.1;
 
 boundaryField
 {
-    leftWall        
+    leftWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
 
-    rightWall       
+    rightWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
 
-    lowerWall       
+    lowerWall
     {
-        type            zeroGradient;
+        type            kQRWallFunction;
+        value           uniform 0;
     }
 
-    atmosphere      
+    atmosphere
     {
         type            inletOutlet;
         inletValue      uniform 0.1;
         value           uniform 0.1;
     }
 
-    defaultFaces    
+    defaultFaces
     {
         type            empty;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/0/mut b/tutorials/multiphase/interFoam/ras/damBreak/0/mut
new file mode 100644
index 0000000000000000000000000000000000000000..6bdb1297a41f5aa9e79d775f5848ea75569ed40d
--- /dev/null
+++ b/tutorials/multiphase/interFoam/ras/damBreak/0/mut
@@ -0,0 +1,55 @@
+/*--------------------------------*- 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       volScalarField;
+    location    "0";
+    object      mut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [ 1 -1 -1 0 0 0 0 ];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    leftWall
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+
+    rightWall
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+
+    lowerWall
+    {
+        type            mutWallFunction;
+        value           uniform 0;
+    }
+
+    atmosphere
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+
+    defaultFaces
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/0/pd b/tutorials/multiphase/interFoam/ras/damBreak/0/pd
index b6af7556cfc3be433da1eb632336164c07f5357c..520a3e9b0b291a7913c871b614d8fe9845e8ab08 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/0/pd
+++ b/tutorials/multiphase/interFoam/ras/damBreak/0/pd
@@ -20,34 +20,34 @@ internalField   uniform 0;
 
 boundaryField
 {
-    leftWall        
+    leftWall
     {
         type            zeroGradient;
     }
 
-    rightWall       
+    rightWall
     {
         type            zeroGradient;
     }
 
-    lowerWall       
+    lowerWall
     {
         type            zeroGradient;
     }
 
-    atmosphere      
+    atmosphere
     {
         type            totalPressure;
         p0              uniform 0;
         U               U;
         phi             phi;
-        rho             none;
+        rho             rho;
         psi             none;
         gamma           1;
         value           uniform 0;
     }
 
-    defaultFaces    
+    defaultFaces
     {
         type            empty;
     }
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/Allrun b/tutorials/multiphase/interFoam/ras/damBreak/Allrun
index 4e77ce41738eca5b2c933cb8098e15f6ff142d7c..599b286f3d8c59b6088fe4f778773443e63bf0ee 100755
--- a/tutorials/multiphase/interFoam/ras/damBreak/Allrun
+++ b/tutorials/multiphase/interFoam/ras/damBreak/Allrun
@@ -3,7 +3,7 @@
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 # Get application name from directory
-application="rasInterFoam"
+application="interFoam"
 
 runApplication blockMesh
 runApplication setFields
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/U b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/U
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/U
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/U
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/alphaair b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/alphaair
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/alphaair
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/alphaair
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/alphamercury b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/alphamercury
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/alphamercury
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/alphamercury
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/alphaoil b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/alphaoil
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/alphaoil
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/alphaoil
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/alphas b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/alphas
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/alphas
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/alphas
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/alphawater b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/alphawater
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/alphawater
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/alphawater
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/pd b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/pd
similarity index 90%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/pd
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/pd
index b6af7556cfc3be433da1eb632336164c07f5357c..520a3e9b0b291a7913c871b614d8fe9845e8ab08 100644
--- a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/0/pd
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/0/pd
@@ -20,34 +20,34 @@ internalField   uniform 0;
 
 boundaryField
 {
-    leftWall        
+    leftWall
     {
         type            zeroGradient;
     }
 
-    rightWall       
+    rightWall
     {
         type            zeroGradient;
     }
 
-    lowerWall       
+    lowerWall
     {
         type            zeroGradient;
     }
 
-    atmosphere      
+    atmosphere
     {
         type            totalPressure;
         p0              uniform 0;
         U               U;
         phi             phi;
-        rho             none;
+        rho             rho;
         psi             none;
         gamma           1;
         value           uniform 0;
     }
 
-    defaultFaces    
+    defaultFaces
     {
         type            empty;
     }
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/constant/environmentalProperties b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/environmentalProperties
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/constant/environmentalProperties
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/environmentalProperties
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/constant/motionProperties b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/motionProperties
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/constant/motionProperties
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/motionProperties
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/constant/polyMesh/blockMeshDict b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/constant/polyMesh/boundary b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/constant/polyMesh/boundary
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/constant/transportProperties b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/constant/transportProperties
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/transportProperties
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/constant/turbulenceProperties b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/constant/turbulenceProperties
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/constant/turbulenceProperties
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/system/controlDict b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/controlDict
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/system/controlDict
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/controlDict
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/system/decomposeParDict b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/system/decomposeParDict
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/decomposeParDict
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/system/fvSchemes b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/system/fvSchemes
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSchemes
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/system/fvSolution b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/system/fvSolution
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phase/system/setFieldsDict b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phase/system/setFieldsDict
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/setFieldsDict
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/U b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/U
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/U
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/U
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/alphaair b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/alphaair
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/alphaair
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/alphaair
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/alphamercury b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/alphamercury
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/alphamercury
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/alphamercury
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/alphaoil b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/alphaoil
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/alphaoil
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/alphaoil
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/alphas b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/alphas
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/alphas
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/alphas
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/alphawater b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/alphawater
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/alphawater
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/alphawater
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/pd b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/pd
similarity index 90%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/pd
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/pd
index b6af7556cfc3be433da1eb632336164c07f5357c..520a3e9b0b291a7913c871b614d8fe9845e8ab08 100644
--- a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/0/pd
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/0/pd
@@ -20,34 +20,34 @@ internalField   uniform 0;
 
 boundaryField
 {
-    leftWall        
+    leftWall
     {
         type            zeroGradient;
     }
 
-    rightWall       
+    rightWall
     {
         type            zeroGradient;
     }
 
-    lowerWall       
+    lowerWall
     {
         type            zeroGradient;
     }
 
-    atmosphere      
+    atmosphere
     {
         type            totalPressure;
         p0              uniform 0;
         U               U;
         phi             phi;
-        rho             none;
+        rho             rho;
         psi             none;
         gamma           1;
         value           uniform 0;
     }
 
-    defaultFaces    
+    defaultFaces
     {
         type            empty;
     }
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/constant/environmentalProperties b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/environmentalProperties
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/constant/environmentalProperties
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/environmentalProperties
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/constant/motionProperties b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/motionProperties
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/constant/motionProperties
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/motionProperties
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/constant/polyMesh/blockMeshDict b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/constant/polyMesh/boundary b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/constant/polyMesh/boundary
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/constant/transportProperties b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/constant/transportProperties
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/transportProperties
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/constant/turbulenceProperties b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/constant/turbulenceProperties
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/constant/turbulenceProperties
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/system/controlDict b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/controlDict
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/system/controlDict
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/controlDict
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/system/decomposeParDict b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/system/decomposeParDict
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/decomposeParDict
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/system/fvSchemes b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/system/fvSchemes
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSchemes
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/system/fvSolution b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/system/fvSolution
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
diff --git a/tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/system/setFieldsDict b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/multiphaseInterFoam/damBreak4phaseFine/system/setFieldsDict
rename to tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/setFieldsDict
diff --git a/tutorials/multiphase/settlingFoam/dahl/0/U b/tutorials/multiphase/settlingFoam/ras/dahl/0/U
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/0/U
rename to tutorials/multiphase/settlingFoam/ras/dahl/0/U
diff --git a/tutorials/multiphase/settlingFoam/dahl/0/alpha b/tutorials/multiphase/settlingFoam/ras/dahl/0/alpha
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/0/alpha
rename to tutorials/multiphase/settlingFoam/ras/dahl/0/alpha
diff --git a/tutorials/multiphase/settlingFoam/dahl/0/epsilon b/tutorials/multiphase/settlingFoam/ras/dahl/0/epsilon
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/0/epsilon
rename to tutorials/multiphase/settlingFoam/ras/dahl/0/epsilon
diff --git a/tutorials/multiphase/settlingFoam/dahl/0/k b/tutorials/multiphase/settlingFoam/ras/dahl/0/k
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/0/k
rename to tutorials/multiphase/settlingFoam/ras/dahl/0/k
diff --git a/tutorials/multiphase/settlingFoam/dahl/0/p b/tutorials/multiphase/settlingFoam/ras/dahl/0/p
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/0/p
rename to tutorials/multiphase/settlingFoam/ras/dahl/0/p
diff --git a/tutorials/multiphase/settlingFoam/dahl/constant/RASProperties b/tutorials/multiphase/settlingFoam/ras/dahl/constant/RASProperties
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/constant/RASProperties
rename to tutorials/multiphase/settlingFoam/ras/dahl/constant/RASProperties
diff --git a/tutorials/multiphase/settlingFoam/dahl/constant/environmentalProperties b/tutorials/multiphase/settlingFoam/ras/dahl/constant/environmentalProperties
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/constant/environmentalProperties
rename to tutorials/multiphase/settlingFoam/ras/dahl/constant/environmentalProperties
diff --git a/tutorials/multiphase/settlingFoam/dahl/constant/polyMesh/blockMeshDict b/tutorials/multiphase/settlingFoam/ras/dahl/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/settlingFoam/ras/dahl/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/settlingFoam/dahl/constant/polyMesh/boundary b/tutorials/multiphase/settlingFoam/ras/dahl/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/constant/polyMesh/boundary
rename to tutorials/multiphase/settlingFoam/ras/dahl/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/settlingFoam/dahl/constant/transportProperties b/tutorials/multiphase/settlingFoam/ras/dahl/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/constant/transportProperties
rename to tutorials/multiphase/settlingFoam/ras/dahl/constant/transportProperties
diff --git a/tutorials/multiphase/settlingFoam/dahl/system/controlDict b/tutorials/multiphase/settlingFoam/ras/dahl/system/controlDict
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/system/controlDict
rename to tutorials/multiphase/settlingFoam/ras/dahl/system/controlDict
diff --git a/tutorials/multiphase/settlingFoam/dahl/system/fvSchemes b/tutorials/multiphase/settlingFoam/ras/dahl/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/system/fvSchemes
rename to tutorials/multiphase/settlingFoam/ras/dahl/system/fvSchemes
diff --git a/tutorials/multiphase/settlingFoam/dahl/system/fvSolution b/tutorials/multiphase/settlingFoam/ras/dahl/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/settlingFoam/dahl/system/fvSolution
rename to tutorials/multiphase/settlingFoam/ras/dahl/system/fvSolution
diff --git a/tutorials/multiphase/settlingFoam/tank3D/0/U b/tutorials/multiphase/settlingFoam/ras/tank3D/0/U
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/0/U
rename to tutorials/multiphase/settlingFoam/ras/tank3D/0/U
diff --git a/tutorials/multiphase/settlingFoam/tank3D/0/alpha b/tutorials/multiphase/settlingFoam/ras/tank3D/0/alpha
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/0/alpha
rename to tutorials/multiphase/settlingFoam/ras/tank3D/0/alpha
diff --git a/tutorials/multiphase/settlingFoam/tank3D/0/epsilon b/tutorials/multiphase/settlingFoam/ras/tank3D/0/epsilon
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/0/epsilon
rename to tutorials/multiphase/settlingFoam/ras/tank3D/0/epsilon
diff --git a/tutorials/multiphase/settlingFoam/tank3D/0/k b/tutorials/multiphase/settlingFoam/ras/tank3D/0/k
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/0/k
rename to tutorials/multiphase/settlingFoam/ras/tank3D/0/k
diff --git a/tutorials/multiphase/settlingFoam/tank3D/0/p b/tutorials/multiphase/settlingFoam/ras/tank3D/0/p
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/0/p
rename to tutorials/multiphase/settlingFoam/ras/tank3D/0/p
diff --git a/tutorials/multiphase/settlingFoam/tank3D/Allclean b/tutorials/multiphase/settlingFoam/ras/tank3D/Allclean
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/Allclean
rename to tutorials/multiphase/settlingFoam/ras/tank3D/Allclean
diff --git a/tutorials/multiphase/settlingFoam/tank3D/Allrun b/tutorials/multiphase/settlingFoam/ras/tank3D/Allrun
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/Allrun
rename to tutorials/multiphase/settlingFoam/ras/tank3D/Allrun
diff --git a/tutorials/multiphase/settlingFoam/tank3D/constant/RASProperties b/tutorials/multiphase/settlingFoam/ras/tank3D/constant/RASProperties
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/constant/RASProperties
rename to tutorials/multiphase/settlingFoam/ras/tank3D/constant/RASProperties
diff --git a/tutorials/multiphase/settlingFoam/tank3D/constant/environmentalProperties b/tutorials/multiphase/settlingFoam/ras/tank3D/constant/environmentalProperties
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/constant/environmentalProperties
rename to tutorials/multiphase/settlingFoam/ras/tank3D/constant/environmentalProperties
diff --git a/tutorials/multiphase/settlingFoam/tank3D/constant/polyMesh/boundary b/tutorials/multiphase/settlingFoam/ras/tank3D/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/constant/polyMesh/boundary
rename to tutorials/multiphase/settlingFoam/ras/tank3D/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/settlingFoam/tank3D/constant/polyMesh/cells.gz b/tutorials/multiphase/settlingFoam/ras/tank3D/constant/polyMesh/cells.gz
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/constant/polyMesh/cells.gz
rename to tutorials/multiphase/settlingFoam/ras/tank3D/constant/polyMesh/cells.gz
diff --git a/tutorials/multiphase/settlingFoam/tank3D/constant/polyMesh/faces.gz b/tutorials/multiphase/settlingFoam/ras/tank3D/constant/polyMesh/faces.gz
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/constant/polyMesh/faces.gz
rename to tutorials/multiphase/settlingFoam/ras/tank3D/constant/polyMesh/faces.gz
diff --git a/tutorials/multiphase/settlingFoam/tank3D/constant/polyMesh/neighbour.gz b/tutorials/multiphase/settlingFoam/ras/tank3D/constant/polyMesh/neighbour.gz
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/constant/polyMesh/neighbour.gz
rename to tutorials/multiphase/settlingFoam/ras/tank3D/constant/polyMesh/neighbour.gz
diff --git a/tutorials/multiphase/settlingFoam/tank3D/constant/polyMesh/owner.gz b/tutorials/multiphase/settlingFoam/ras/tank3D/constant/polyMesh/owner.gz
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/constant/polyMesh/owner.gz
rename to tutorials/multiphase/settlingFoam/ras/tank3D/constant/polyMesh/owner.gz
diff --git a/tutorials/multiphase/settlingFoam/tank3D/constant/polyMesh/points.gz b/tutorials/multiphase/settlingFoam/ras/tank3D/constant/polyMesh/points.gz
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/constant/polyMesh/points.gz
rename to tutorials/multiphase/settlingFoam/ras/tank3D/constant/polyMesh/points.gz
diff --git a/tutorials/multiphase/settlingFoam/tank3D/constant/transportProperties b/tutorials/multiphase/settlingFoam/ras/tank3D/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/constant/transportProperties
rename to tutorials/multiphase/settlingFoam/ras/tank3D/constant/transportProperties
diff --git a/tutorials/multiphase/settlingFoam/tank3D/system/controlDict b/tutorials/multiphase/settlingFoam/ras/tank3D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/system/controlDict
rename to tutorials/multiphase/settlingFoam/ras/tank3D/system/controlDict
diff --git a/tutorials/multiphase/settlingFoam/tank3D/system/fvSchemes b/tutorials/multiphase/settlingFoam/ras/tank3D/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/system/fvSchemes
rename to tutorials/multiphase/settlingFoam/ras/tank3D/system/fvSchemes
diff --git a/tutorials/multiphase/settlingFoam/tank3D/system/fvSolution b/tutorials/multiphase/settlingFoam/ras/tank3D/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/settlingFoam/tank3D/system/fvSolution
rename to tutorials/multiphase/settlingFoam/ras/tank3D/system/fvSolution