diff --git a/applications/solvers/combustion/reactingFoam/createFields.H b/applications/solvers/combustion/reactingFoam/createFields.H
index bebae9978cbb8b5f399b191d1f341fbc8f779b62..e4475e5d1b5f2aab7db2e0efc346bac21099082d 100644
--- a/applications/solvers/combustion/reactingFoam/createFields.H
+++ b/applications/solvers/combustion/reactingFoam/createFields.H
@@ -1,3 +1,5 @@
+#include "createRDeltaT.H"
+
 Info<< "Creating reaction model\n" << endl;
 
 autoPtr<combustionModels::psiCombustionModel> reaction
diff --git a/applications/solvers/combustion/reactingFoam/reactingFoam.C b/applications/solvers/combustion/reactingFoam/reactingFoam.C
index be1245708fa0e4c02c5093cd3a7ab60ec7fe1175..a06eef279c3e9e0627a221eefaeb370502aa21fc 100644
--- a/applications/solvers/combustion/reactingFoam/reactingFoam.C
+++ b/applications/solvers/combustion/reactingFoam/reactingFoam.C
@@ -52,7 +52,6 @@ int main(int argc, char *argv[])
     #include "createMesh.H"
     #include "createControl.H"
     #include "createTimeControls.H"
-    #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
     #include "createFieldRefs.H"
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H
index 02e1e65b5c814c6207cec8acf3e8e16af70d3c9d..a4b328f36740aff6109e56a3a4473f3d84764f27 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H
@@ -1,3 +1,5 @@
+#include "createRDeltaT.H"
+
 Info<< "Creating reaction model\n" << endl;
 
 autoPtr<combustionModels::rhoCombustionModel> reaction
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C
index 006fc6708ce2e0a99e5666b3a5df88e4430c2cf0..ae94c219a1ea7e8ed4be13e540d4d57c6d0be6c1 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C
@@ -53,7 +53,6 @@ int main(int argc, char *argv[])
     #include "createMesh.H"
     #include "createControl.H"
     #include "createTimeControls.H"
-    #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
     #include "createFieldRefs.H"
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H
index c5d3bf6a674773636ba6d6b0d23c72d607a0160e..fbd45dd20c9d7fb2c71658fd20848862e04821e0 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H
@@ -1,3 +1,5 @@
+#include "createRDeltaT.H"
+
 Info<< "Creating reaction model\n" << endl;
 
 autoPtr<combustionModels::rhoCombustionModel> reaction
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C
index 6b625b638d7e6ebd56374cfba2badfd6ce3fba83..55de274d839e85cbd63f37423b72a967b12bad17 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C
@@ -53,7 +53,6 @@ int main(int argc, char *argv[])
     #include "createMesh.H"
     #include "createControl.H"
     #include "createTimeControls.H"
-    #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
     #include "createFieldRefs.H"
diff --git a/applications/solvers/compressible/rhoCentralFoam/createFields.H b/applications/solvers/compressible/rhoCentralFoam/createFields.H
index d4255938103ec5febe7fc826eaaeae0c8f3495b5..b7cbdd067f86e915fa9d14546c8b97baa7b4ee6a 100644
--- a/applications/solvers/compressible/rhoCentralFoam/createFields.H
+++ b/applications/solvers/compressible/rhoCentralFoam/createFields.H
@@ -1,3 +1,5 @@
+#include "createRDeltaT.H"
+
 Info<< "Reading thermophysical properties\n" << endl;
 
 autoPtr<psiThermo> pThermo
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
index 972fb96cb937c72e4ad48f84ddbed50aa159b500..96413e02017e72642648bb5c732de4ec9065f5fe 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
@@ -39,6 +39,8 @@ Description
 #include "turbulentFluidThermoModel.H"
 #include "fixedRhoFvPatchScalarField.H"
 #include "directionInterpolate.H"
+#include "localEulerDdtScheme.H"
+#include "fvcSmooth.H"
 #include "motionSolver.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
index 12af38d9d3747c97cae661c31800deb1f84b425f..65ab9d2db3e9ee7ea9eb3246ec3415bcfae01532 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
@@ -54,7 +54,6 @@ int main(int argc, char *argv[])
     #include "createFields.H"
     #include "createFieldRefs.H"
     #include "createTimeControls.H"
-    #include "createRDeltaT.H"
 
     turbulence->validate();
 
diff --git a/applications/solvers/compressible/rhoPimpleFoam/createFields.H b/applications/solvers/compressible/rhoPimpleFoam/createFields.H
index 8d1ccb82fd637d6954b4928cb59d27b63a3ce698..a7ee3eca457f0e1f0f96025c0db545612be6fb1b 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/createFields.H
@@ -1,3 +1,5 @@
+#include "createRDeltaT.H"
+
 Info<< "Reading thermophysical properties\n" << endl;
 
 autoPtr<psiThermo> pThermo
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
index 9613b4a9a690f1f0521ca7632a91d0923461120a..c7046bb9b4084f5556e1a5a40370a6851a6d2bd6 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
@@ -57,7 +57,6 @@ int main(int argc, char *argv[])
     #include "createTime.H"
     #include "createDynamicFvMesh.H"
     #include "createControl.H"
-    #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
     #include "createFieldRefs.H"
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
index 1bd67653d820c5f45c5b988bb81805a5eab15512..1a74933ea81c84d78fbc517eec285746f2765166 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
@@ -56,7 +56,6 @@ int main(int argc, char *argv[])
     #include "createMesh.H"
     #include "createControl.H"
     #include "createTimeControls.H"
-    #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
     #include "createFieldRefs.H"
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/include/setInitialMultiRegionDeltaT.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/include/setInitialMultiRegionDeltaT.H
index bf831e93c23aa6e04878a051f5eb8f0108df3336..f768c3c8b82104be8d4e24de09a6b0621fa91af9 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/include/setInitialMultiRegionDeltaT.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/include/setInitialMultiRegionDeltaT.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Global
-    setInitialDeltaT
+    setInitialMultiRegionDeltaT
 
 Description
     Set the initial timestep for the CHT MultiRegion solver.
@@ -48,7 +48,7 @@ if (adjustTimeStep)
             min
             (
                 min(maxCo/CoNum, maxDi/DiNum)*runTime.deltaT().value(),
-                maxDeltaT
+                min(runTime.deltaTValue(), maxDeltaT)
             )
         );
         Info<< "deltaT = " <<  runTime.deltaT().value() << endl;
diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.C b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.C
index c15fde707861e26e21eace78e6af030775540cbf..c9f03a373c1fcf28154d90367ffff035ebf926cc 100644
--- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.C
+++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -63,13 +63,8 @@ adjointOutletPressureFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF)
-{
-    fvPatchField<scalar>::operator=
-    (
-        scalarField("value", dict, p.size())
-    );
-}
+    fixedValueFvPatchScalarField(p, iF, dict)
+{}
 
 
 Foam::adjointOutletPressureFvPatchScalarField::
diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.C b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.C
index 31134c955b03301cbb492beb7621fd0edd5b97a7..7b00d66277f0d71b6fd83d00968d528402f81761 100644
--- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.C
+++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,10 +50,8 @@ adjointOutletVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF)
-{
-    fvPatchVectorField::operator=(vectorField("value", dict, p.size()));
-}
+    fixedValueFvPatchVectorField(p, iF, dict)
+{}
 
 
 Foam::adjointOutletVelocityFvPatchVectorField::
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMTurbulenceModels.C b/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMTurbulenceModels.C
index 66b480df0e98aada4e676d6c52a895d86c23c400..ae345c2066e9fbad98fc04ae4a6debd83e78881b 100644
--- a/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMTurbulenceModels.C
+++ b/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMTurbulenceModels.C
@@ -28,8 +28,8 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "makeTurbulenceModel.H"
 
-#include "laminar.H"
-#include "turbulentTransportModel.H"
+#include "laminarModel.H"
+#include "RASModel.H"
 #include "LESModel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -52,6 +52,10 @@ makeBaseTurbulenceModel
     singlePhaseTransportModel
 );
 
+#define makeLaminarModel(Type)                                                 \
+    makeTemplatedTurbulenceModel                                               \
+    (singlePhaseTransportModelPhaseIncompressibleTurbulenceModel, laminar, Type)
+
 #define makeRASModel(Type)                                                     \
     makeTemplatedTurbulenceModel                                               \
     (singlePhaseTransportModelPhaseIncompressibleTurbulenceModel, RAS, Type)
@@ -60,6 +64,9 @@ makeBaseTurbulenceModel
     makeTemplatedTurbulenceModel                                               \
     (singlePhaseTransportModelPhaseIncompressibleTurbulenceModel, LES, Type)
 
+#include "Stokes.H"
+makeLaminarModel(Stokes);
+
 #include "kEpsilon.H"
 makeRASModel(kEpsilon);
 
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C
index 89d8637462dfcafe0879d4ab5286645a6ef3d426..544cccdae2ee420c8991c9894cc9ad6b5d1e492c 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C
+++ b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C
@@ -56,7 +56,6 @@ int main(int argc, char *argv[])
     #include "createMesh.H"
     #include "createControl.H"
     #include "createTimeControls.H"
-    #include "createRDeltaT.H"
     #include "createFields.H"
     #include "createFieldRefs.H"
     #include "createFvOptions.H"
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/createFields.H b/applications/solvers/lagrangian/coalChemistryFoam/createFields.H
index 33313ca0704033aaefaeaf21698a18ca0a569bda..d3daf7265c100b005f29aeeebb6db76f865ccb8d 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/createFields.H
+++ b/applications/solvers/lagrangian/coalChemistryFoam/createFields.H
@@ -1,3 +1,5 @@
+#include "createRDeltaT.H"
+
 #include "readGravitationalAcceleration.H"
 
 Info<< "Creating combustion model\n" << endl;
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
index 8b2729e8c0981909c87768bdb4eef48bb5b7c10b..014cd4e35633810c2dabe2998faef71cc31ede92 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/Make/options
@@ -1,4 +1,5 @@
 EXE_INC = \
+    -I. \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I${LIB_SRC}/sampling/lnInclude \
     -I${LIB_SRC}/meshTools/lnInclude \
@@ -25,7 +26,6 @@ EXE_INC = \
     -I$(LIB_SRC)/combustionModels/lnInclude \
     -I$(FOAM_SOLVERS)/combustion/reactingFoam
 
-
 EXE_LIBS = \
     -lfiniteVolume \
     -lfvOptions \
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFieldRefs.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFieldRefs.H
index 4748421aa4589abed6eb7b43e704a68d4719af79..14914688ca14f4943fbfcfc4925c53afa0b8e653 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFieldRefs.H
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFieldRefs.H
@@ -1 +1,5 @@
 const label inertIndex(composition.species()[inertSpecie]);
+
+const volScalarField& T = thermo.T();
+const volScalarField& psi = thermo.psi();
+filmModelType& surfaceFilm = tsurfaceFilm();
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
index 313c82d0e2eb8be9f18cf8c926090f109d5c1136..8ec3c94169eed01cfdd1102467fdb2b579c20b3b 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
@@ -37,8 +37,6 @@ volScalarField rho
 );
 
 volScalarField& p = thermo.p();
-const volScalarField& T = thermo.T();
-const volScalarField& psi = thermo.psi();
 
 Info<< "\nReading field U\n" << endl;
 volVectorField U
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/createSurfaceFilmModel.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/createSurfaceFilmModel.H
index 1db870f0aa76f02a89cc98748782f97fd0f1242b..ffdbcbf6a90643785ce22117b9a29ec491446384 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/createSurfaceFilmModel.H
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/createSurfaceFilmModel.H
@@ -3,5 +3,3 @@ Info<< "\nConstructing surface film model" << endl;
 typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
 
 autoPtr<filmModelType> tsurfaceFilm(filmModelType::New(mesh, g));
-filmModelType& surfaceFilm = tsurfaceFilm();
-
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
index c04c242f45f7b974a77d204dc68ff3e0599898d9..e5ed566eba8f5ee15e5b2682269b664f3f2cf476 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
@@ -1,3 +1,5 @@
+#include "createRDeltaT.H"
+
 #include "readGravitationalAcceleration.H"
 
 Info<< "Creating combustion model\n" << endl;
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
index 364ab41ecea91bd84fa2fcd8597d7a64b606a620..93768896b32c730bef0609780ea579963085a717 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
+++ b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
@@ -55,7 +55,6 @@ int main(int argc, char *argv[])
     #include "createMesh.H"
     #include "createControl.H"
     #include "createTimeControls.H"
-    #include "createRDeltaT.H"
     #include "createFields.H"
     #include "createFieldRefs.H"
     #include "createFvOptions.H"
diff --git a/applications/solvers/multiphase/MPPICInterFoam/CompressibleTwoPhaseMixtureTurbulenceModels/CompressibleTwoPhaseMixtureTurbulenceModels.C b/applications/solvers/multiphase/MPPICInterFoam/CompressibleTwoPhaseMixtureTurbulenceModels/CompressibleTwoPhaseMixtureTurbulenceModels.C
index 86eabba39e62968b5b6acc33ca9a2b5986b970de..21f8dfda33a2e55de42944db02e380dc0b7f5f69 100644
--- a/applications/solvers/multiphase/MPPICInterFoam/CompressibleTwoPhaseMixtureTurbulenceModels/CompressibleTwoPhaseMixtureTurbulenceModels.C
+++ b/applications/solvers/multiphase/MPPICInterFoam/CompressibleTwoPhaseMixtureTurbulenceModels/CompressibleTwoPhaseMixtureTurbulenceModels.C
@@ -28,7 +28,6 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "makeTurbulenceModel.H"
 
-#include "laminar.H"
 #include "turbulentTransportModel.H"
 #include "LESModel.H"
 
@@ -50,13 +49,32 @@ makeBaseTurbulenceModel
     immiscibleIncompressibleTwoPhaseMixture
 );
 
+#define makeLaminarModel(Type)                                                 \
+    makeTemplatedTurbulenceModel                                               \
+    (                                                                          \
+       immiscibleIncompressibleTwoPhaseMixturePhaseCompressibleTurbulenceModel,\
+        laminar,                                                               \
+        Type                                                                   \
+    )
+
 #define makeRASModel(Type)                                                     \
     makeTemplatedTurbulenceModel                                               \
-    (immiscibleIncompressibleTwoPhaseMixturePhaseCompressibleTurbulenceModel, RAS, Type)
+    (                                                                          \
+       immiscibleIncompressibleTwoPhaseMixturePhaseCompressibleTurbulenceModel,\
+        RAS,                                                                   \
+        Type                                                                   \
+    )
 
 #define makeLESModel(Type)                                                     \
     makeTemplatedTurbulenceModel                                               \
-    (immiscibleIncompressibleTwoPhaseMixturePhaseCompressibleTurbulenceModel, LES, Type)
+    (                                                                          \
+       immiscibleIncompressibleTwoPhaseMixturePhaseCompressibleTurbulenceModel,\
+        LES,                                                                   \
+        Type                                                                   \
+    )
+
+#include "Stokes.H"
+makeLaminarModel(Stokes);
 
 #include "kEpsilon.H"
 makeRASModel(kEpsilon);
@@ -70,4 +88,5 @@ makeLESModel(kEqn);
 #include "kOmega.H"
 makeRASModel(kOmega);
 
+
 // ************************************************************************* //
diff --git a/applications/solvers/multiphase/driftFluxFoam/compressibleTurbulenceModels.C b/applications/solvers/multiphase/driftFluxFoam/compressibleTurbulenceModels.C
index 4cb722f5f4cd427192bc085a1636ceb9bc261d0b..abf89c1500bbd94cee809460574b77363e176b92 100644
--- a/applications/solvers/multiphase/driftFluxFoam/compressibleTurbulenceModels.C
+++ b/applications/solvers/multiphase/driftFluxFoam/compressibleTurbulenceModels.C
@@ -28,7 +28,7 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "makeTurbulenceModel.H"
 
-#include "laminar.H"
+#include "laminarModel.H"
 #include "RASModel.H"
 #include "LESModel.H"
 
@@ -52,6 +52,14 @@ makeBaseTurbulenceModel
     incompressibleTwoPhaseInteractingMixture
 );
 
+#define makeLaminarModel(Type)                                                 \
+    makeTemplatedTurbulenceModel                                               \
+    (                                                                          \
+        incompressibleTwoPhaseInteractingMixtureCompressibleTurbulenceModel,   \
+        laminar,                                                               \
+        Type                                                                   \
+    )
+
 #define makeRASModel(Type)                                                     \
     makeTemplatedTurbulenceModel                                               \
     (                                                                          \
@@ -68,6 +76,9 @@ makeBaseTurbulenceModel
         Type                                                                   \
     )
 
+#include "Stokes.H"
+makeLaminarModel(Stokes);
+
 #include "kEpsilon.H"
 makeRASModel(kEpsilon);
 
diff --git a/applications/solvers/multiphase/interFoam/createFields.H b/applications/solvers/multiphase/interFoam/createFields.H
index 77cabdc4c15ed98bd9a9dacad8f93e96fe431078..4a82afbd294aa3a314ab5708e837f182f86c929d 100644
--- a/applications/solvers/multiphase/interFoam/createFields.H
+++ b/applications/solvers/multiphase/interFoam/createFields.H
@@ -1,3 +1,5 @@
+#include "createRDeltaT.H"
+
 Info<< "Reading field p_rgh\n" << endl;
 volScalarField p_rgh
 (
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
index bc4d90fcc54ce42316be12065beabc9f3d17a1c2..e53c0395ff0ebf427e910841e7878b5a44f95748 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
@@ -63,7 +63,6 @@ int main(int argc, char *argv[])
     #include "createControl.H"
     #include "createTimeControls.H"
     #include "createDyMControls.H"
-    #include "createRDeltaT.H"
     #include "createFields.H"
     #include "createFvOptions.H"
 
diff --git a/applications/solvers/multiphase/interFoam/interFoam.C b/applications/solvers/multiphase/interFoam/interFoam.C
index 88e31149ddf0a8839f6ab3ea2acf2367ff25e3ed..5f16dfa18d2ce5d562c49b054d06faa64d7c55c0 100644
--- a/applications/solvers/multiphase/interFoam/interFoam.C
+++ b/applications/solvers/multiphase/interFoam/interFoam.C
@@ -65,7 +65,6 @@ int main(int argc, char *argv[])
     #include "createMesh.H"
     #include "createControl.H"
     #include "createTimeControls.H"
-    #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
     #include "createFvOptions.H"
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
index 07e174717b3c2120b82d40ed532d2e27a03e902f..5b152b78a7ae8a5be1fc4edaf89d9a498f86efea 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
@@ -1,3 +1,5 @@
+#include "createRDeltaT.H"
+
 Info<< "Reading field p_rgh\n" << endl;
 volScalarField p_rgh
 (
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C b/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
index a22a49998c9addb193d8490639f38165ee9f0c7c..aa0e55626e91d254bd8fb490d8e133d476354fbc 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
@@ -55,7 +55,6 @@ int main(int argc, char *argv[])
     #include "createMesh.H"
     #include "createControl.H"
     #include "createTimeControls.H"
-    #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
     #include "createFvOptions.H"
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Beetstra/Beetstra.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Beetstra/Beetstra.C
old mode 100755
new mode 100644
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Beetstra/Beetstra.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Beetstra/Beetstra.H
old mode 100755
new mode 100644
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.C
old mode 100755
new mode 100644
diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.H
old mode 100755
new mode 100644
index 3003dbc5941dc71a802c574278627b922e08f7c9..bc1601e976b8c2b218bb9e0db41ae36de007a9bf
--- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/Tenneti/Tenneti.H
@@ -58,6 +58,7 @@ namespace dragModels
 {
 
 class SchillerNaumann;
+
 /*---------------------------------------------------------------------------*\
                            Class Tenneti Declaration
 \*---------------------------------------------------------------------------*/
@@ -68,7 +69,7 @@ class Tenneti
 {
     // Private data
 
-        //- Ergun drag model
+        //- SchillerNaumann drag model
         autoPtr<SchillerNaumann> SchillerNaumann_;
 
         //- Residual Reynolds Number
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/createFields.H b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/createFields.H
index 8eafafb2fda99358f40ffc4213238a31ea701204..1fc5b19ca79b2428efad815482774125ee4a40b1 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/createFields.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/createFields.H
@@ -1,3 +1,4 @@
+#include "createRDeltaT.H"
 #include "readGravitationalAcceleration.H"
 #include "readhRef.H"
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/multiphaseCompressibleTurbulenceModels.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/multiphaseCompressibleTurbulenceModels.C
index 083c2567f3592d3da131cfeae1d15b01b438264b..92089901d6b097b160d8728e2a95937fdb0eef06 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/multiphaseCompressibleTurbulenceModels.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseCompressibleTurbulenceModels/multiphaseCompressibleTurbulenceModels.C
@@ -27,7 +27,7 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "makeTurbulenceModel.H"
 
-#include "laminar.H"
+#include "laminarModel.H"
 #include "RASModel.H"
 #include "LESModel.H"
 
@@ -53,6 +53,10 @@ makeBaseTurbulenceModel
     phaseModel
 );
 
+#define makeLaminarModel(Type)                                                 \
+    makeTemplatedLaminarModel                                                  \
+    (phaseModelPhaseCompressibleTurbulenceModel, laminar, Type)
+
 #define makeRASModel(Type)                                                     \
     makeTemplatedTurbulenceModel                                               \
     (phaseModelPhaseCompressibleTurbulenceModel, RAS, Type)
@@ -61,6 +65,9 @@ makeBaseTurbulenceModel
     makeTemplatedTurbulenceModel                                               \
     (phaseModelPhaseCompressibleTurbulenceModel, LES, Type)
 
+#include "Stokes.H"
+makeLaminarModel(Stokes);
+
 #include "kEpsilon.H"
 makeRASModel(kEpsilon);
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/reactingMultiphaseEulerFoam.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/reactingMultiphaseEulerFoam.C
index dcb1a5b112665c6895d84cba478d2ddf08372dbc..9807a0ae207153a943c14543d1403fcdf7348aa1 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/reactingMultiphaseEulerFoam.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/reactingMultiphaseEulerFoam.C
@@ -53,7 +53,6 @@ int main(int argc, char *argv[])
     #include "createMesh.H"
     #include "createControl.H"
     #include "createTimeControls.H"
-    #include "createRDeltaT.H"
     #include "createFields.H"
     #include "createFieldRefs.H"
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/createFields.H b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/createFields.H
index 932c05cb0d2d70a7efc0c8b7d76652247031362a..697269ff40dd670a0e64176bbd3c8e7e345b26e4 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/createFields.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/createFields.H
@@ -1,3 +1,4 @@
+#include "createRDeltaT.H"
 #include "readGravitationalAcceleration.H"
 #include "readhRef.H"
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C
index cc29d74ad4db1e5efad0f1cde4cd66950e968a44..40bcc365a03861664193d6db66a63ad54db67195 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C
@@ -54,7 +54,6 @@ int main(int argc, char *argv[])
     #include "createMesh.H"
     #include "createControl.H"
     #include "createTimeControls.H"
-    #include "createRDeltaT.H"
     #include "createFields.H"
     #include "createFieldRefs.H"
 
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C
index bd04977f2b82e5923296b1ac305e0c860e6f0c72..bcf7911619a0c65ab6fddf89a8ac1aaf5e09a88b 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C
@@ -27,7 +27,7 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "makeTurbulenceModel.H"
 
-#include "laminar.H"
+#include "laminarModel.H"
 #include "RASModel.H"
 #include "LESModel.H"
 
@@ -53,6 +53,10 @@ makeBaseTurbulenceModel
     phaseModel
 );
 
+#define makeLaminarModel(Type)                                                 \
+    makeTemplatedLaminarModel                                                  \
+    (phaseModelPhaseCompressibleTurbulenceModel, laminar, Type)
+
 #define makeRASModel(Type)                                                     \
     makeTemplatedTurbulenceModel                                               \
     (phaseModelPhaseCompressibleTurbulenceModel, RAS, Type)
@@ -61,6 +65,9 @@ makeBaseTurbulenceModel
     makeTemplatedTurbulenceModel                                               \
     (phaseModelPhaseCompressibleTurbulenceModel, LES, Type)
 
+#include "Stokes.H"
+makeLaminarModel(Stokes);
+
 #include "kEpsilon.H"
 makeRASModel(kEpsilon);
 
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C
index c60dea0f77fc55865e58f506458dbe36ce00339f..687113656070528fa58bd4a6b937eaba846c0add 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseCompressibleTurbulenceModels/phaseCompressibleTurbulenceModels.C
@@ -32,7 +32,7 @@ License
 #include "ThermalDiffusivity.H"
 #include "EddyDiffusivity.H"
 
-#include "laminar.H"
+#include "laminarModel.H"
 #include "RASModel.H"
 #include "LESModel.H"
 
@@ -58,6 +58,10 @@ makeBaseTurbulenceModel
     phaseModel
 );
 
+#define makeLaminarModel(Type)                                                 \
+    makeTemplatedLaminarModel                                                  \
+    (phaseModelPhaseCompressibleTurbulenceModel, laminar, Type)
+
 #define makeRASModel(Type)                                                     \
     makeTemplatedTurbulenceModel                                               \
     (phaseModelPhaseCompressibleTurbulenceModel, RAS, Type)
@@ -66,6 +70,9 @@ makeBaseTurbulenceModel
     makeTemplatedTurbulenceModel                                               \
     (phaseModelPhaseCompressibleTurbulenceModel, LES, Type)
 
+#include "Stokes.H"
+makeLaminarModel(Stokes);
+
 #include "kEpsilon.H"
 makeRASModel(kEpsilon);
 
diff --git a/applications/test/NamedEnum/Make/files b/applications/test/NamedEnum/Make/files
index 755b72ba5e929e04c15dcd5f6258eb2ac88ab808..a1a70860418d9a1c8d10f2b78e1bf79ccb1fc721 100644
--- a/applications/test/NamedEnum/Make/files
+++ b/applications/test/NamedEnum/Make/files
@@ -1,3 +1,3 @@
-Test-namedEnum.C
+Test-NamedEnum.C
 
 EXE = $(FOAM_USER_APPBIN)/Test-NamedEnum
diff --git a/applications/test/NamedEnum/Test-NamedEnum.C b/applications/test/NamedEnum/Test-NamedEnum.C
new file mode 100644
index 0000000000000000000000000000000000000000..63386ed79ec7a192526d3703e3f7398bc8c792c9
--- /dev/null
+++ b/applications/test/NamedEnum/Test-NamedEnum.C
@@ -0,0 +1,114 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Description
+
+\*---------------------------------------------------------------------------*/
+
+#include "NamedEnum.H"
+#include "IOstreams.H"
+
+using namespace Foam;
+
+class namedEnumTest
+{
+public:
+
+    enum option
+    {
+        a,
+        b,
+        c,
+        d
+    };
+
+    static const Foam::NamedEnum<option, 4> namedEnum;
+};
+
+
+template<>
+const char* Foam::NamedEnum<namedEnumTest::option, 4>::names[] =
+{
+    "a",
+    "b",
+    "c",
+    "d"
+};
+
+const Foam::NamedEnum<namedEnumTest::option, 4> namedEnumTest::namedEnum;
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// Main program:
+
+int main(int argc, char *argv[])
+{
+    const List<namedEnumTest::option> options
+        = namedEnumTest::namedEnum.enums();
+
+    Info<< "enums: " << options << nl;
+
+    Info<< "loop over enums (as list):" << nl;
+    forAll(options, i)
+    {
+        const namedEnumTest::option& opt = options[i];
+
+        Info<< "option[" << opt
+            << "] = '" << namedEnumTest::namedEnum[opt] << "'" << nl;
+    }
+
+#if __cplusplus > 201100L
+    // C++11
+    Info<< "loop over enums (C++11 for range):" << nl;
+    for (auto const& opt : options)
+    {
+        Info<< "option[" << opt
+            << "] = '" << namedEnumTest::namedEnum[opt] << "'" << nl;
+    }
+#else
+    Info<< "loop over enums (via iterator):" << nl;
+    forAllConstIter(List<namedEnumTest::option>, options, iter)
+    {
+        const namedEnumTest::option& opt = *iter;
+
+        Info<< "option[" << opt
+            << "] = '" << namedEnumTest::namedEnum[opt] << "'" << nl;
+    }
+#endif
+
+    Info<< nl
+        << namedEnumTest::namedEnum["a"] << nl
+        << namedEnumTest::namedEnum[namedEnumTest::a] << nl;
+
+    Info<< "--- test read construction ---" << endl;
+
+    namedEnumTest::option dummy(namedEnumTest::namedEnum.read(Sin));
+    Info<< namedEnumTest::namedEnum[dummy] << endl;
+
+    Info<< "End\n" << endl;
+
+    return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/test/dictionary/Test-dictionary.C b/applications/test/dictionary/Test-dictionary.C
index 287c63db21719398ddd4db5ae596616de4b48462..dc55b9902f87cb4d1b5ad808de357546e98564df 100644
--- a/applications/test/dictionary/Test-dictionary.C
+++ b/applications/test/dictionary/Test-dictionary.C
@@ -48,14 +48,13 @@ int main(int argc, char *argv[])
 
     {
         dictionary dict;
-        dict.add("aaOPENMPIcc", 1);
+        dict.add(word("aa" + getEnv("WM_MPLIB") + "cc"), 16);
 
         string s("DDD${aa${WM_MPLIB}cc}EEE");
         stringOps::inplaceExpand(s, dict, true, false);
         Info<< "variable expansion:" << s << endl;
     }
 
-
     Info<< nl
         << "FOAM_CASE=" << getEnv("FOAM_CASE") << nl
         << "FOAM_CASENAME=" << getEnv("FOAM_CASENAME") << nl
@@ -65,7 +64,9 @@ int main(int argc, char *argv[])
     {
         {
             dictionary dict1(IFstream("testDict")());
-            Info<< "dict1: " << dict1 << nl
+            dict1.writeEntry("dict1", Info);
+
+            Info<< nl
                 << "toc: " << dict1.toc() << nl
                 << "keys: " << dict1.keys() << nl
                 << "patterns: " << dict1.keys(true) << endl;
@@ -89,14 +90,14 @@ int main(int argc, char *argv[])
                 << "no = " << dict4.name() << " " << dict4.toc() << endl;
         }
 
-
         IOobject::writeDivider(Info);
 
         {
             dictionary dict(IFstream("testDictRegex")());
             dict.add(keyType("fooba[rz]", true), "anything");
 
-            Info<< "dict:" << dict << nl
+            dict.writeEntry("testDictRegex", Info);
+            Info<< nl
                 << "toc: " << dict.toc() << nl
                 << "keys: " << dict.keys() << nl
                 << "patterns: " << dict.keys(true) << endl;
diff --git a/applications/test/fvc2D/Make/files b/applications/test/fvc2D/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..ffd2664354eb38ab896c9d266758aa1b612d0bb4
--- /dev/null
+++ b/applications/test/fvc2D/Make/files
@@ -0,0 +1,3 @@
+Test-fvc2D.C
+
+EXE = $(FOAM_USER_APPBIN)/Test-fvc2D
diff --git a/applications/test/fvc2D/Make/options b/applications/test/fvc2D/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..d27c95d033dd5d7b1995c8ff8dc406e35ca1f586
--- /dev/null
+++ b/applications/test/fvc2D/Make/options
@@ -0,0 +1,7 @@
+EXE_INC = \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
+
+EXE_LIBS = \
+    -lfiniteVolume \
+    -lmeshTools
diff --git a/applications/test/NamedEnum/Test-namedEnum.C b/applications/test/fvc2D/Test-fvc2D.C
similarity index 60%
rename from applications/test/NamedEnum/Test-namedEnum.C
rename to applications/test/fvc2D/Test-fvc2D.C
index 22f359693281abfe6019666822850a79e470d482..527cfbd3cc0f44f8bcdbc428cce5c39aeacd285d 100644
--- a/applications/test/NamedEnum/Test-namedEnum.C
+++ b/applications/test/fvc2D/Test-fvc2D.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -21,55 +21,51 @@ License
     You should have received a copy of the GNU General Public License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
+Application
+    test
+
 Description
+    Finite volume method test code for 2-D space.
 
 \*---------------------------------------------------------------------------*/
 
-#include "NamedEnum.H"
-#include "IOstreams.H"
-
-using namespace Foam;
-
-class namedEnumTest
-{
-public:
-
-    enum options
-    {
-        a,
-        b,
-        c
-    };
-
-    static const Foam::NamedEnum<options, 3> namedEnum;
-};
-
+#include "fvCFD.H"
+#include "vector2D.H"
 
-template<>
-const char* Foam::NamedEnum<namedEnumTest::options, 3>::names[] =
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+namespace Foam
 {
-    "a",
-    "b",
-    "c"
-};
+    typedef GeometricField<vector2D, fvPatchField, volMesh> volVector2DField;
 
-const Foam::NamedEnum<namedEnumTest::options, 3> namedEnumTest::namedEnum;
+    defineTemplate2TypeNameAndDebug(volVector2DField::Internal, 0);
+    defineTemplateTypeNameAndDebug(volVector2DField, 0);
 
+    typedef fvPatchField<vector2D> fvPatchVector2DField;
+    makeFvPatchField(fvPatchVector2DField)
+}
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-// Main program:
 
 int main(int argc, char *argv[])
 {
-    Info<< namedEnumTest::namedEnum["a"] << endl;
-    Info<< namedEnumTest::namedEnum[namedEnumTest::a] << endl;
-
-    namedEnumTest::options hmm(namedEnumTest::namedEnum.read(Sin));
-    Info<< namedEnumTest::namedEnum[hmm] << endl;
-
-    Info<< "End\n" << endl;
-
-    return 0;
+    #include "setRootCase.H"
+
+    #include "createTime.H"
+    #include "createMesh.H"
+
+    GeometricField<vector2D, fvPatchField, volMesh> fld
+    (
+        IOobject
+        (
+            "U",
+            runTime.timeName(),
+            mesh,
+            IOobject::MUST_READ,
+            IOobject::AUTO_WRITE
+        ),
+        mesh
+    );
+
+    Info<< "end" << endl;
 }
 
 
diff --git a/applications/test/string/Test-string.C b/applications/test/string/Test-string.C
index f39be8c20629f8072e1d48fd8848263b21f9f59d..a8276c2926b039af2e23306fad3a2edf082b99ac 100644
--- a/applications/test/string/Test-string.C
+++ b/applications/test/string/Test-string.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -31,6 +31,10 @@ Description
 #include "dictionary.H"
 #include "IOstreams.H"
 
+#include "int.H"
+#include "uint.H"
+#include "scalar.H"
+
 using namespace Foam;
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -118,6 +122,8 @@ int main(int argc, char *argv[])
         Info<< "after replace: " << test2 << endl;
     }
 
+    cout<< "\nEnter some string to test:\n";
+
     string s;
     Sin.getLine(s);
 
@@ -126,7 +132,39 @@ int main(int argc, char *argv[])
     cout<< "output string with " << s2.length() << " characters\n";
     cout<< "ostream<<  >" << s2 << "<\n";
     Info<< "Ostream<<  >" << s2 << "<\n";
-    Info<< "hash:" << hex << string::hash()(s2) << endl;
+    Info<< "hash:" << hex << string::hash()(s2) << dec << endl;
+
+    cout<< "\ntest Foam::name()\n";
+
+    Info<< "hash: = " << Foam::name("0x%012X", string::hash()(s2)) << endl;
+
+    // test formatting on int
+    {
+        label val = 25;
+        Info<<"val: " << val << "\n";
+
+        Info<< "int " << val << " as word >"
+            << Foam::name(val) << "< or "
+            << Foam::name("formatted >%08d<", val) << "\n";
+    }
+
+    // test formatting on scalar
+    {
+        scalar val = 3.1415926535897931;
+        Info<< "scalar " << val << " as word >"
+            << Foam::name(val) << "< or "
+            << Foam::name("formatted >%.9f<", val) << "\n";
+    }
+
+    // test formatting on uint
+    {
+        uint64_t val = 25000000ul;
+        Info<<"val: " << val << "\n";
+
+        Info<< "uint64 " << val << " as word >"
+            << Foam::name(val) << "< or "
+            << Foam::name("formatted >%08d<", val) << "\n";
+    }
 
     Info<< "\nEnd\n" << endl;
     return 0;
diff --git a/applications/utilities/mesh/conversion/star4ToFoam/star4ToFoam.C b/applications/utilities/mesh/conversion/star4ToFoam/star4ToFoam.C
index 245f1175afa1b3e2d110e6f9b5b3e9bf7493aa44..65cb4d01b708480f1eac19afdad2e996dcf40008 100644
--- a/applications/utilities/mesh/conversion/star4ToFoam/star4ToFoam.C
+++ b/applications/utilities/mesh/conversion/star4ToFoam/star4ToFoam.C
@@ -31,7 +31,7 @@ Description
     Converts a Star-CD (v4) pro-STAR mesh into OpenFOAM format.
 
 Usage
-    \b star4ToFoam [OPTION] ccmMesh
+    \b star4ToFoam [OPTION] prostarMesh
 
     Options:
       - \par -ascii
diff --git a/applications/utilities/mesh/generation/Allwmake b/applications/utilities/mesh/generation/Allwmake
index 0869795ef828b9a7079645439a1ff327fbfe7c2d..4abbf97bc2ec2474f081c50b0e15792f2dcd9b40 100755
--- a/applications/utilities/mesh/generation/Allwmake
+++ b/applications/utilities/mesh/generation/Allwmake
@@ -8,10 +8,6 @@ wmake -all $targetType extrude
 wmake -all $targetType extrude2DMesh
 wmake -all $targetType snappyHexMesh
 
-if [ -n "$FOAMY_HEX_MESH" ]
-then
-    foamyMesh/Allwmake $targetType $*
-fi
-
+foamyMesh/Allwmake $targetType $*
 
 #------------------------------------------------------------------------------
diff --git a/applications/utilities/mesh/generation/blockMesh/blockMesh.C b/applications/utilities/mesh/generation/blockMesh/blockMesh.C
index 72ca0b1b2aa9f80338dfe8670bc9ba43645ba033..31761f400925226e5a9eca37ad8d6db65cefdd39 100644
--- a/applications/utilities/mesh/generation/blockMesh/blockMesh.C
+++ b/applications/utilities/mesh/generation/blockMesh/blockMesh.C
@@ -86,6 +86,27 @@ int main(int argc, char *argv[])
         "specify alternative dictionary for the blockMesh description"
     );
 
+    argList::addNote
+    (
+        "Block description\n"
+        "\n"
+        "  For a given block, the correspondence between the ordering of\n"
+        "  vertex labels and face labels is shown below.\n"
+        "  For vertex numbering in the sequence 0 to 7 (block, centre):\n"
+        "    faces 0 (f0) and 1 are left and right, respectively;\n"
+        "    faces 2 and 3 are bottom and top;\n"
+        "    and faces 4 and 5 are front the back:\n"
+        "\n"
+        "           4 ---- 5\n"
+        "      f3   |\\     |\\   f5\n"
+        "      |    | 7 ---- 6   \\\n"
+        "      |    0 |--- 1 |    \\\n"
+        "      |     \\|     \\|    f4\n"
+        "      f2     3 ---- 2\n"
+        "\n"
+        "            f0 ----- f1\n"
+    );
+
     #include "addRegionOption.H"
     #include "setRootCase.H"
     #include "createTime.H"
diff --git a/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options b/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
index f9a4d17aafc15baa3ea4fe88a56e203124adb1af..aa1ba3b9bbc8e810b7a0061f035e830a5ebe7fd2 100644
--- a/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/cellSizeAndAlignmentGrid/Make/options
@@ -25,8 +25,6 @@ EXE_INC =  \
 
 EXE_LIBS =  \
     $(CGAL_LIBS) \
-    -lmpfr \
-    -lboost_thread \
     -lconformalVoronoiMesh \
     -lfiniteVolume    \
     -lmeshTools \
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellShapeControl/cellShapeControl.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellShapeControl/cellShapeControl.C
index 4283fb7c355c6daef998cecc10f4daf1b602afaf..343ba46a6e8893a26181e1f948a594d0fdb04a10 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellShapeControl/cellShapeControl.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellShapeControl/cellShapeControl.C
@@ -97,7 +97,7 @@ Foam::scalarField Foam::cellShapeControl::cellSize
 
 Foam::scalar Foam::cellShapeControl::cellSize(const point& pt) const
 {
-    scalarList bary;
+    FixedList<scalar, 4> bary;
     cellShapeControlMesh::Cell_handle ch;
 
     shapeControlMesh_.barycentricCoords(pt, bary, ch);
@@ -172,7 +172,7 @@ Foam::scalar Foam::cellShapeControl::cellSize(const point& pt) const
 
 Foam::tensor Foam::cellShapeControl::cellAlignment(const point& pt) const
 {
-    scalarList bary;
+    FixedList<scalar, 4> bary;
     cellShapeControlMesh::Cell_handle ch;
 
     shapeControlMesh_.barycentricCoords(pt, bary, ch);
@@ -244,7 +244,7 @@ void Foam::cellShapeControl::cellSizeAndAlignment
     tensor& alignment
 ) const
 {
-    scalarList bary;
+    FixedList<scalar, 4> bary;
     cellShapeControlMesh::Cell_handle ch;
 
     shapeControlMesh_.barycentricCoords(pt, bary, ch);
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellShapeControlMesh/cellShapeControlMesh.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellShapeControlMesh/cellShapeControlMesh.C
index 32afeaa49182601f4961a050e46b2909531b33f2..965a89996e8383af0ca23ccbeed87b769b173f25 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellShapeControlMesh/cellShapeControlMesh.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellShapeControlMesh/cellShapeControlMesh.C
@@ -450,7 +450,7 @@ Foam::cellShapeControlMesh::~cellShapeControlMesh()
 void Foam::cellShapeControlMesh::barycentricCoords
 (
     const Foam::point& pt,
-    scalarList& bary,
+    FixedList<scalar, 4>& bary,
     Cell_handle& ch
 ) const
 {
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellShapeControlMesh/cellShapeControlMesh.H b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellShapeControlMesh/cellShapeControlMesh.H
index 3546c03d9e9022985b4c3c7d2f7981baf5d4d777..7e4bc9041c11bdab1e093ab955c03e7e2907f49f 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellShapeControlMesh/cellShapeControlMesh.H
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellShapeControlMesh/cellShapeControlMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -122,7 +122,7 @@ public:
             void barycentricCoords
             (
                 const Foam::point& pt,
-                scalarList& bary,
+                FixedList<scalar, 4>& bary,
                 Cell_handle& ch
             ) const;
 
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellSizeAndAlignmentControl/fileControl/fileControl.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellSizeAndAlignmentControl/fileControl/fileControl.C
index b2ed90169fae7fb943f64ade2e582321f41a5eee..a644134066fe54f1f7ab9c3aa9083ac4a37e715d 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellSizeAndAlignmentControl/fileControl/fileControl.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellSizeAndAlignmentControl/fileControl/fileControl.C
@@ -94,7 +94,7 @@ Foam::fileControl::~fileControl()
 //
 //Foam::scalar Foam::fileControl::cellSize(const point& pt) const
 //{
-//    scalarList bary;
+//    FixedList<scalar, 4> bary;
 //    Cell_handle ch;
 //
 //    triangulatedMesh_.barycentricCoords(pt, bary, ch);
@@ -112,7 +112,7 @@ Foam::fileControl::~fileControl()
 ////- Return the cell alignment at the given location
 //Foam::tensor Foam::fileControl::cellAlignment(const point& pt) const
 //{
-//    scalarList bary;
+//    FixedList<scalar, 4> bary;
 //    Cell_handle ch;
 //
 //    triangulatedMesh_.barycentricCoords(pt, bary, ch);
@@ -144,7 +144,7 @@ Foam::fileControl::~fileControl()
 //    tensor& alignment
 //) const
 //{
-//    scalarList bary;
+//    FixedList<scalar, 4> bary;
 //    Cell_handle ch;
 //
 //    triangulatedMesh_.barycentricCoords(pt, bary, ch);
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/nonUniformField/nonUniformField.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/nonUniformField/nonUniformField.C
index 5288541538a7b473520b2e4d239b816f8e39fd64..a478f9e5135d7d0e1df6fc5dd715e0e0e0c29fcc 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/nonUniformField/nonUniformField.C
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/nonUniformField/nonUniformField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -118,8 +118,7 @@ Foam::scalar Foam::nonUniformField::interpolate
         pts[faceHitByPt[2]]
     );
 
-    scalarList bary(3, 0.0);
-
+    FixedList<scalar, 3> bary;
     tri.barycentric(pt, bary);
 
 //    return pointCellSize_[pMap[faceHitByPt[0]]]*bary[0]
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
index c7c5ebdb075974c98f3d4077c2718ad76d3cfab5..625763f59762663c38696a79301e29dd6b364c51 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/Make/options
@@ -22,9 +22,6 @@ EXE_INC = \
 
 EXE_LIBS = \
     $(CGAL_LIBS) \
-    -lboost_thread \
-    -lmpfr \
-    -lgmp \
     -lconformalVoronoiMesh \
     -ldecompositionMethods /* -L$(FOAM_LIBBIN)/dummy -lscotchDecomp */ \
     -ldecompose \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/foamyHexMeshBackgroundMesh.C b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/foamyHexMeshBackgroundMesh.C
index f7e561f43d817760745a00abe8fdd7c624c7388b..5e009ea114a1aec38da3d7737daddc555f376d96 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/foamyHexMeshBackgroundMesh.C
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/foamyHexMeshBackgroundMesh.C
@@ -3,7 +3,7 @@
  \\      /   F ield          | OpenFOAM: The Open Source CFD Toolbox
   \\    /    O peration      |
    \\  /     A nd            | Copyright (C) 2012-2016 OpenFOAM Foundation
-    \\/      M anipulation   |
+    \\/      M anipulation   | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -640,11 +640,14 @@ int main(int argc, char *argv[])
                 geometry,
                 surfaces
             );
+
             // Patch fields
+            volScalarField::Boundary& cellDistanceBf =
+                cellDistance.boundaryFieldRef();
             forAll(fvm.C().boundaryField(), patchi)
             {
                 const pointField& cc = fvm.C().boundaryField()[patchi];
-                fvPatchScalarField& fld = cellDistance.boundaryField()[patchi];
+                fvPatchScalarField& fld = cellDistanceBf[patchi];
                 scalarField patchDistSqr
                 (
                     fld.patch().patchInternalField(distSqr)
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
index 5cb1f8676ddc626dcede0ee8e65034f443e9a68a..1a24c89f7036a2f9094910b27f19c951eebf20bb 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshSurfaceSimplify/Make/options
@@ -16,8 +16,6 @@ EXE_INC = \
 
 EXE_LIBS = \
     $(CGAL_LIBS) \
-    -lboost_thread \
-    -lmpfr \
     -L$(FASTDUALOCTREE_SRC_PATH) -lperf_main \
     -lGL \
     -lconformalVoronoiMesh \
diff --git a/applications/utilities/miscellaneous/foamList/Make/options b/applications/utilities/miscellaneous/foamList/Make/options
index 441805c465f9546161bba57336411c4e7ccd9ab9..84027a1c28ddddee75f045cd41a1f2b96fa9f73a 100644
--- a/applications/utilities/miscellaneous/foamList/Make/options
+++ b/applications/utilities/miscellaneous/foamList/Make/options
@@ -6,7 +6,8 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-    -I$(LIB_SRC)/finiteVolume/lnInclude
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
     -lbarotropicCompressibilityModel \
diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
index cab70e7076272861e87a8f8feea2c3db2c039929..62723280b3b2777cda3672ff2911727ddde7ee5c 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
+++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
@@ -39,34 +39,34 @@ Usage
         Write the cell distribution as a labelList, for use with 'manual'
         decomposition method or as a volScalarField for post-processing.
 
-      - \par -region \<regionName\> \n
+      - \par -region \<regionName\>
         Decompose named region. Does not check for existence of processor*.
 
-      - \par -allRegions \n
+      - \par -allRegions
         Decompose all regions in regionProperties. Does not check for
         existence of processor*.
 
-      - \par -copyUniform \n
+      - \par -copyUniform
         Copy any \a uniform directories too.
 
       - \par -constant
 
-      - \par -time xxx:yyy \n
+      - \par -time xxx:yyy
         Override controlDict settings and decompose selected times. Does not
         re-decompose the mesh i.e. does not handle moving mesh or changing
         mesh cases.
 
-      - \par -fields \n
+      - \par -fields
         Use existing geometry decomposition and convert fields only.
 
-      - \par -noSets \n
+      - \par -noSets
         Skip decomposing cellSets, faceSets, pointSets.
 
-      - \par -force \n
+      - \par -force
         Remove any existing \a processor subdirectories before decomposing the
         geometry.
 
-      - \par -ifRequired \n
+      - \par -ifRequired
         Only decompose the geometry if the number of domains has changed from a
         previous decomposition. No \a processor subdirectories will be removed
         unless the \a -force option is also specified. This option can be used
diff --git a/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposer.C b/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposer.C
index 274e3a51a33a7eaf9d9ff19e478b6f2bb6f77e6c..efb7dd2a235dff43deb230588bd961c867862632 100644
--- a/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposer.C
+++ b/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposer.C
@@ -42,7 +42,7 @@ Foam::lagrangianFieldDecomposer::lagrangianFieldDecomposer
 )
 :
     procMesh_(procMesh),
-    positions_(procMesh, cloudName, false),
+    positions_(procMesh, cloudName, IDLList<passiveParticle>()),
     particleIndices_(lagrangianPositions.size())
 {
     label pi = 0;
diff --git a/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposer.H b/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposer.H
index 6e0280398d69f1b63efd6167292fae30ea00bdf0..aca0672296a052e4f4b58559b0c326bd075dae94 100644
--- a/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposer.H
+++ b/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposer.H
@@ -101,7 +101,6 @@ public:
             const label cloudI,
             const IOobjectList& lagrangianObjects,
             PtrList<PtrList<IOField<Type>>>& lagrangianFields
-//            PtrList<IOField<Type>>& lagrangianFields
         );
 
         template<class Type>
@@ -113,7 +112,6 @@ public:
             <
                 PtrList<CompactIOField<Field<Type>, Type>>
             >& lagrangianFields
-//            PtrList<CompactIOField<Field<Type>, Type >>& lagrangianFields
         );
 
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/files b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/files
index 44c513a079bdb9707167566ccc85a334e91d4078..421e8392b88501e3efa3ae9323578c59721d8012 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/files
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/files
@@ -1,6 +1,5 @@
-itoa.C
 ensightMesh.C
-ensightParticlePositions.C
+ensightCloud.C
 foamToEnsight.C
 
 EXE = $(FOAM_APPBIN)/foamToEnsight
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options
index 2a683c0529db85d950359bd602e957e164809046..e2fc5311ffe99a7d649b81856ec502200b5f9cd9 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options
@@ -4,11 +4,13 @@ EXE_INC = \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/fileFormats/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude \
-    -I$(LIB_SRC)/lagrangian/basic/lnInclude
+    -I$(LIB_SRC)/lagrangian/basic/lnInclude \
+    -I$(LIB_SRC)/conversion/lnInclude
 
 EXE_LIBS = \
     -ldynamicMesh \
     -lfileFormats \
     -lsampling \
     -lgenericPatchFields \
-    -llagrangian
+    -llagrangian \
+    -lconversion
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkData.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkData.H
index 47a3540da701cc037457f3bbb4dc460f98e75148..50e78e781c8ef9a70ae7e8553d9d272a91793df4 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkData.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkData.H
@@ -1,21 +1,33 @@
-// ignore special fields or fields that we don't handle
-//
-bool variableGood = true;
-for (label n1=0; n1<Times.size() && variableGood; ++n1)
+// ignore special fields (_0 fields),
+// ignore fields we don't handle,
+// ignore fields that are not available for all time-steps
+
+// hash by field-name in fieldsToUse
+if (!fieldsToUse.found(fieldName))
 {
-    // ignore _0 fields
-    if (fieldName.size() > 2 && fieldName(fieldName.size() - 2, 2) == "_0")
+    bool variableGood = false;
+
+    forAll(timeDirs, n1)
     {
-        variableGood = false;
-    }
-    else
-    {
-        variableGood = IOobject
+        variableGood =
         (
-            fieldName,
-            Times[n1].name(),
-            mesh,
-            IOobject::NO_READ
-        ).typeHeaderOk<volScalarField>(false);
+            fieldName.size() > 2 && fieldName(fieldName.size()-2, 2) == "_0"
+          ? false
+          : IOobject
+            (
+                fieldName,
+                timeDirs[n1].name(),
+                mesh,
+                IOobject::NO_READ
+            ).typeHeaderOk<volScalarField>(false)
+        );
+
+        if (variableGood)
+        {
+            break;
+        }
     }
+
+    reduce(variableGood, andOp<bool>());
+    fieldsToUse.set(fieldName, variableGood);
 }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkMeshMoving.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkMeshMoving.H
index d4027ad1c5abd9586064e78d14debc7cc259e0db..bda9220acbddf7feca356febe22a9724f7f27ce9 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkMeshMoving.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkMeshMoving.H
@@ -1,27 +1,50 @@
 // check for "points" in any of the result directories
 
 bool meshMoving = false;
-if (Times.size() > 1)
+
+if (timeDirs.size() > 1 && Pstream::master())
 {
-    // We already loaded a mesh (usually from constant). See if any other
-    // points files
-    forAll(Times, timeI)
+    // We already loaded a mesh (usually from constant).
+    // See if any other "polyMesh/points" files exist too.
+
+    const fileName& baseDir = mesh.time().path();
+
+    Info<< "Search for moving mesh ... " << flush;
+    forAll(timeDirs, timeI)
     {
-        if (Times[timeI].name() != mesh.pointsInstance())
-        {
-            IOobject io
+        const word& timeName = timeDirs[timeI].name();
+
+        meshMoving =
+        (
+            timeName != mesh.pointsInstance()
+         && isDir(baseDir/timeName/polyMesh::meshSubDir)
+         && IOobject
             (
                 "points",
-                Times[timeI].name(),
+                timeName,
                 polyMesh::meshSubDir,
                 mesh,
-                IOobject::NO_READ
-            );
-            if (io.typeHeaderOk<pointIOField>(true))
-            {
-                meshMoving = true;
-                break;
-            }
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false  // no register
+            ).typeHeaderOk<pointIOField>(true)
+        );
+
+        if (meshMoving)
+        {
+            break;
         }
     }
+
+    if (meshMoving)
+    {
+        Info<< "found." << nl
+            << "    Writing meshes for every timestep." << endl;
+    }
+    else
+    {
+        Info<< "none detected." << endl;
+    }
 }
+
+reduce(meshMoving, orOp<bool>());
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightAsciiStream.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightAsciiStream.H
index 68eb88e1589a1fc853c07765eeeed2f5cac76a55..ceccc987aeae269798cf88d87adbcb315f0455bf 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightAsciiStream.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightAsciiStream.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -52,17 +52,17 @@ class ensightAsciiStream
 {
     // Private data
 
-        //- Description of data_
+        //- Output file stream
         OFstream str_;
 
 
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
-        ensightAsciiStream(const ensightAsciiStream&);
+        ensightAsciiStream(const ensightAsciiStream&) = delete;
 
         //- Disallow default bitwise assignment
-        void operator=(const ensightAsciiStream&);
+        void operator=(const ensightAsciiStream&) = delete;
 
 
 public:
@@ -70,14 +70,14 @@ public:
     // Constructors
 
         //- Construct from components
-        ensightAsciiStream(const fileName& f, const Time& runTime)
+        ensightAsciiStream(const fileName& f)
         :
             ensightStream(f),
             str_
             (
                 f,
-                runTime.writeFormat(),
-                runTime.writeVersion(),
+                IOstream::ASCII,
+                IOstream::currentVersion,
                 IOstream::UNCOMPRESSED
             )
         {
@@ -139,14 +139,6 @@ public:
                 << setw(10) << partI << nl;
         }
 
-    // Member Operators
-
-    // Friend Functions
-
-    // Friend Operators
-
-    // IOstream Operators
-
 };
 
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightBinaryStream.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightBinaryStream.H
index d3435677228246e3da0fcc4074c4cfaf0488bd9c..d1c3d6e3b37aa7f9b10da495ae7612798845a23c 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightBinaryStream.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightBinaryStream.H
@@ -51,17 +51,17 @@ class ensightBinaryStream
 {
     // Private data
 
-        //- Description of data_
+        //- Output file stream
         autoPtr<std::ofstream> str_;
 
 
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
-        ensightBinaryStream(const ensightBinaryStream&);
+        ensightBinaryStream(const ensightBinaryStream&) = delete;
 
         //- Disallow default bitwise assignment
-        void operator=(const ensightBinaryStream&);
+        void operator=(const ensightBinaryStream&) = delete;
 
 
 public:
@@ -69,7 +69,7 @@ public:
     // Constructors
 
         //- Construct from components
-        ensightBinaryStream(const fileName& f, const Time&)
+        ensightBinaryStream(const fileName& f)
         :
             ensightStream(f),
             str_
@@ -90,11 +90,6 @@ public:
 
     // Member Functions
 
-        virtual bool ascii() const
-        {
-            return false;
-        }
-
         virtual void write(const char* val)
         {
             char buffer[80];
@@ -141,14 +136,6 @@ public:
             write(partI);
         }
 
-    // Member Operators
-
-    // Friend Functions
-
-    // Friend Operators
-
-    // IOstream Operators
-
 };
 
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCaseTail.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCaseTail.H
index 6ec8373fcf07b708d36a899f60a03f09ac01a793..5a18a953c70b0f634621a3d03c95a01bf3a1887b 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCaseTail.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCaseTail.H
@@ -1,5 +1,8 @@
 if (Pstream::master())
 {
+    ensightCaseFile.setf(ios_base::scientific, ios_base::floatfield);
+    ensightCaseFile.precision(5);
+
     ensightCaseFile << nl << "TIME" << nl
         << "time set:                      " << 1 << nl
         << "number of steps:               " << nTimeSteps << nl
@@ -8,20 +11,17 @@ if (Pstream::master())
 
     ensightCaseFile << "time values:" << nl;
 
-    ensightCaseFile.setf(ios_base::scientific, ios_base::floatfield);
-    ensightCaseFile.precision(5);
-
     label count = 0;
     scalar Tcorr = 0.0;
-    if (Times[0].value() < 0)
+    if (timeDirs[0].value() < 0)
     {
-        Tcorr = - Times[0].value();
+        Tcorr = -timeDirs[0].value();
         Info<< "Correcting time values. Adding " << Tcorr << endl;
     }
 
-    forAll(Times, n)
+    forAll(timeDirs, n)
     {
-        ensightCaseFile << setw(12) << Times[n].value() + Tcorr << " ";
+        ensightCaseFile << setw(12) << timeDirs[n].value() + Tcorr << " ";
 
         if (++count % 6 == 0)
         {
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloud.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloud.C
new file mode 100644
index 0000000000000000000000000000000000000000..08779ff0a8c4b7d7a34cfdf35a234b342c4b8503
--- /dev/null
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloud.C
@@ -0,0 +1,180 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "ensightCloud.H"
+#include "ensightFile.H"
+#include "fvMesh.H"
+#include "passiveParticle.H"
+#include "Cloud.H"
+#include "pointList.H"
+
+// * * * * * * * * * * * * * * * Global Functions  * * * * * * * * * * * * * //
+
+void Foam::ensightParticlePositions
+(
+    const fvMesh& mesh,
+    const fileName& dataDir,
+    const label timeIndex,
+    const word& cloudName,
+    const bool dataExists,
+    IOstream::streamFormat format
+)
+{
+    if (dataExists)
+    {
+        Info<< " positions";
+    }
+    else
+    {
+        Info<< " positions{0}";
+    }
+
+    // Total number of parcels on all processes
+    label nTotParcels = 0;
+    autoPtr<Cloud<passiveParticle>> cloudPtr;
+
+    if (dataExists)
+    {
+        cloudPtr.reset(new Cloud<passiveParticle>(mesh, cloudName, false));
+        nTotParcels = cloudPtr().size();
+    }
+    reduce(nTotParcels, sumOp<label>());
+
+    if (Pstream::master())
+    {
+        const fileName postFileName =
+            ensightFile::subDir(timeIndex)/cloud::prefix/cloudName/"positions";
+
+        // the ITER/lagrangian subdirectory must exist
+        mkDir(dataDir/postFileName.path());
+
+        ensightFile os(dataDir, postFileName, format);
+
+        // tag binary format (just like geometry files)
+        os.writeBinaryHeader();
+        os.write(postFileName); // description
+        os.newline();
+        os.write("particle coordinates");
+        os.newline();
+        os.write(nTotParcels, 8);   // unusual width
+        os.newline();
+
+        if (!nTotParcels)
+        {
+            return;  // DONE
+        }
+
+        if (format == IOstream::BINARY)
+        {
+            // binary write is Ensight6 - first ids, then positions
+
+            // 1-index
+            for (label parcelId = 0; parcelId < nTotParcels; ++parcelId)
+            {
+                os.write(parcelId+1);
+            }
+
+            // Master
+            forAllConstIter(Cloud<passiveParticle>, cloudPtr(), elmnt)
+            {
+                const point& p = elmnt().position();
+
+                os.write(p.x());
+                os.write(p.y());
+                os.write(p.z());
+            }
+
+            // Slaves
+            for (int slave=1; slave<Pstream::nProcs(); ++slave)
+            {
+                IPstream fromSlave(Pstream::scheduled, slave);
+                pointList points(fromSlave);
+
+                forAll(points, pti)
+                {
+                    const point& p = points[pti];
+
+                    os.write(p.x());
+                    os.write(p.y());
+                    os.write(p.z());
+                }
+            }
+        }
+        else
+        {
+            // ASCII id + position together
+
+            label parcelId = 0;
+            forAllConstIter(Cloud<passiveParticle>, cloudPtr(), elmnt)
+            {
+                const point& p = elmnt().position();
+
+                os.write(++parcelId, 8);    // unusual width
+                os.write(p.x());
+                os.write(p.y());
+                os.write(p.z());
+                os.newline();
+            }
+
+            // Slaves
+            for (int slave=1; slave<Pstream::nProcs(); ++slave)
+            {
+                IPstream fromSlave(Pstream::scheduled, slave);
+                pointList points(fromSlave);
+
+                forAll(points, pti)
+                {
+                    const point& p = points[pti];
+
+                    os.write(++parcelId, 8);    // unusual width
+                    os.write(p.x());
+                    os.write(p.y());
+                    os.write(p.z());
+                    os.newline();
+                }
+            }
+        }
+    }
+    else if (nTotParcels)
+    {
+        // SLAVE, and data exist
+        pointList points(cloudPtr().size());
+
+        label pti = 0;
+        forAllConstIter(Cloud<passiveParticle>, cloudPtr(), elmnt)
+        {
+            const point& p = elmnt().position();
+            points[pti++] = p;
+        }
+
+        {
+            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            toMaster<< points;
+        }
+    }
+
+}
+
+// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloud.H
similarity index 71%
rename from applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.H
rename to applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloud.H
index 57016c3254eb886bb777b500e1df1b319a45a299..14661506622e2919f1140bc2f1b6ed588c61c73d 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloud.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -27,35 +27,62 @@ InApplication
 Description
 
 SourceFiles
-    ensightCloudField.C
+    ensightCloud.C
+    ensightCloudTemplates.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef ensightCloudField_H
-#define ensightCloudField_H
+#ifndef ensightCloud_H
+#define ensightCloud_H
 
+#include "ensightFile.H"
+#include "fvMesh.H"
 #include "Cloud.H"
 #include "IOobject.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+namespace Foam
+{
+
+void ensightParticlePositions
+(
+    const fvMesh& mesh,
+    const fileName& dataDir,
+    const label timeIndex,
+    const word& cloudName,
+    const bool dataExists,
+    const IOstream::streamFormat format
+);
+
+
 template<class Type>
 void ensightCloudField
 (
     const IOobject& fieldObject,
-    const fileName& postProcPath,
-    const word& prepend,
+    const fileName& dataDir,
     const label timeIndex,
-    const word& timeFile,
     const word& cloudName,
+    const label cloudNo,
     Ostream& ensightCaseFile,
-    const bool dataExists
+    const bool dataExists,
+    const IOstream::streamFormat format
 );
 
+
+template<class Type>
+void writeCloudField
+(
+    const IOField<Type>& field,
+    ensightFile& os
+);
+
+}
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
-    #include "ensightCloudField.C"
+    #include "ensightCloudTemplates.C"
 #endif
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.C
deleted file mode 100644
index 337380de135d7d9ecaac7672923a75c1af435811..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.C
+++ /dev/null
@@ -1,129 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-\*---------------------------------------------------------------------------*/
-
-#include "ensightCloudField.H"
-#include "Time.H"
-#include "IOField.H"
-#include "OFstream.H"
-#include "IOmanip.H"
-#include "ensightPTraits.H"
-
-using namespace Foam;
-
-// * * * * * * * * * * * * * * * Global Functions  * * * * * * * * * * * * * //
-
-template<class Type>
-void ensightCloudField
-(
-    const IOobject& fieldObject,
-    const fileName& postProcPath,
-    const word& prepend,
-    const label timeIndex,
-    const word& cloudName,
-    Ostream& ensightCaseFile,
-    const bool dataExists
-)
-{
-    if (dataExists)
-    {
-        Info<< "Converting cloud " << cloudName
-            << " field " << fieldObject.name() << endl;
-    }
-    else
-    {
-        Info<< "Creating empty cloud " << cloudName
-            << " field "  << fieldObject.name() << endl;
-    }
-
-    word timeFile = prepend + itoa(timeIndex);
-
-    const Time& runTime = fieldObject.time();
-
-    if (timeIndex == 0 && Pstream::master())
-    {
-        ensightCaseFile
-            << pTraits<Type>::typeName << " per measured node:      1       ";
-        ensightCaseFile.width(15);
-        ensightCaseFile.setf(ios_base::left);
-        ensightCaseFile
-            << ("c" + fieldObject.name()).c_str()
-            << (' ' + prepend + "****." + cloudName
-              + "." + fieldObject.name()).c_str()
-            << nl;
-    }
-
-    fileName ensightFileName
-    (
-        timeFile + "." + cloudName +"." + fieldObject.name()
-    );
-
-    OFstream ensightFile
-    (
-        postProcPath/ensightFileName,
-        runTime.writeFormat(),
-        runTime.writeVersion(),
-        runTime.writeCompression()
-    );
-
-    ensightFile<< pTraits<Type>::typeName << " values" << nl;
-
-    if (dataExists)
-    {
-        IOField<Type> vf(fieldObject);
-
-        ensightFile.setf(ios_base::scientific, ios_base::floatfield);
-        ensightFile.precision(5);
-
-        label count = 0;
-        forAll(vf, i)
-        {
-            Type v = vf[i];
-
-            if (mag(v) < 1.0e-90)
-            {
-                v = Zero;
-            }
-
-            for (direction i=0; i < pTraits<Type>::nComponents; ++i)
-            {
-                label cmpt = ensightPTraits<Type>::componentOrder[i];
-
-                ensightFile << setw(12) << component(v, cmpt);
-                if (++count % 6 == 0)
-                {
-                    ensightFile << nl;
-                }
-            }
-        }
-
-        if ((count % 6 != 0) || (count==0))
-        {
-            ensightFile << nl;
-        }
-    }
-}
-
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudTemplates.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudTemplates.C
new file mode 100644
index 0000000000000000000000000000000000000000..ac2559f17cfbb66b78a53c52e2a405c6daee4b1e
--- /dev/null
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudTemplates.C
@@ -0,0 +1,192 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "ensightCloud.H"
+#include "ensightFile.H"
+#include "Time.H"
+#include "IOField.H"
+#include "OFstream.H"
+#include "IOmanip.H"
+#include "ensightPTraits.H"
+
+// * * * * * * * * * * * * * * * Global Functions  * * * * * * * * * * * * * //
+
+template<class Type>
+void Foam::writeCloudField
+(
+    const Foam::IOField<Type>& field,
+    Foam::ensightFile& os
+)
+{
+    if (returnReduce(field.size(), sumOp<label>()) > 0)
+    {
+        if (Pstream::master())
+        {
+            // 6 values per line
+            label count = 0;
+
+            // Master
+            forAll(field, i)
+            {
+                Type val = field[i];
+
+                if (mag(val) < 1e-90)
+                {
+                    val = Zero;
+                }
+
+                for (direction d=0; d < pTraits<Type>::nComponents; ++d)
+                {
+                    label cmpt = ensightPTraits<Type>::componentOrder[d];
+                    os.write(component(val, cmpt));
+
+                    if (++count % 6 == 0)
+                    {
+                        os.newline();
+                    }
+                }
+            }
+
+            // Slaves
+            for (int slave=1; slave<Pstream::nProcs(); ++slave)
+            {
+                IPstream fromSlave(Pstream::scheduled, slave);
+                Field<Type> slaveData(fromSlave);
+
+                forAll(slaveData, i)
+                {
+                    Type val = slaveData[i];
+
+                    if (mag(val) < 1e-90)
+                    {
+                        val = Zero;
+                    }
+
+                    for (direction d=0; d < pTraits<Type>::nComponents; ++d)
+                    {
+                        label cmpt = ensightPTraits<Type>::componentOrder[d];
+                        os.write(component(val, cmpt));
+
+                        if (++count % 6 == 0)
+                        {
+                            os.newline();
+                        }
+                    }
+                }
+            }
+
+            // add final newline if required
+            if (count % 6)
+            {
+                os.newline();
+            }
+        }
+        else
+        {
+            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            toMaster<< field;
+        }
+    }
+}
+
+
+template<class Type>
+void Foam::ensightCloudField
+(
+    const Foam::IOobject& fieldObject,
+    const Foam::fileName& dataDir,
+    const Foam::label timeIndex,
+    const Foam::word& cloudName,
+    const Foam::label cloudNo,
+    Foam::Ostream& ensightCaseFile,
+    const bool dataExists,
+    Foam::IOstream::streamFormat format
+)
+{
+    const ensight::VarName varName(fieldObject.name());
+
+    if (dataExists)
+    {
+        Info<< ' ' << fieldObject.name();
+    }
+    else
+    {
+        Info<< ' ' << fieldObject.name() << "{0}"; // ie, empty field
+    }
+
+    ensightFile* filePtr(nullptr);
+    if (Pstream::master())
+    {
+        const fileName postFileName =
+            ensightFile::subDir(timeIndex)/cloud::prefix/cloudName/varName;
+
+        // the ITER/lagrangian subdirectory must exist
+        // the ITER/lagrangian subdirectory was already created
+        // when writing positions
+
+        mkDir(dataDir/postFileName.path());
+
+        if (timeIndex == 0)
+        {
+            const fileName dirName =
+                dataDir.name()/ensightFile::mask()/cloud::prefix/cloudName;
+
+            ensightCaseFile.setf(ios_base::left);
+
+            // prefix variables with 'c' (cloud)
+            ensightCaseFile
+                << ensightPTraits<Type>::typeName << " per "
+                << setw(20)
+                << "measured node:"
+                << " 1  "
+                << setw(15)
+                << ("c" + Foam::name(cloudNo) + varName).c_str() << ' '
+                << (dirName/varName).c_str()
+                << nl;
+        }
+
+        filePtr = new ensightFile(dataDir, postFileName, format);
+        // description
+        filePtr->write
+        (
+            string(postFileName + " <" + pTraits<Type>::typeName + ">")
+        );
+        filePtr->newline();
+    }
+
+    if (dataExists)
+    {
+        IOField<Type> field(fieldObject);
+        writeCloudField(field, *filePtr);
+    }
+
+    if (filePtr) // on master only
+    {
+        delete filePtr;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.C
index 6e7a2d24fed30157b4efaa3459a5591dcd6f5392..1755c7d2a1cab677c4aa0c2ce4b14c1bb9082202 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.C
@@ -23,12 +23,12 @@ License
 
 \*---------------------------------------------------------------------------*/
 
+#include "ensightFile.H"
 #include "ensightField.H"
 #include "fvMesh.H"
 #include "volFields.H"
 #include "OFstream.H"
 #include "IOmanip.H"
-#include "itoa.H"
 #include "volPointInterpolation.H"
 #include "ensightBinaryStream.H"
 #include "ensightAsciiStream.H"
@@ -76,7 +76,9 @@ volField
     // Construct volField (with zeroGradient) from dimensioned field
 
     IOobject io(df);
-    io.readOpt() = IOobject::NO_READ;
+    io.readOpt()  = IOobject::NO_READ;
+    io.writeOpt() = IOobject::NO_WRITE;
+    io.registerObject() = false;
 
     tmp<GeometricField<Type, fvPatchField, volMesh>> tvf
     (
@@ -84,16 +86,17 @@ volField
         (
             io,
             df.mesh(),
-            df.dimensions(),
-            zeroGradientFvPatchField<scalar>::typeName
+            dimensioned<Type>("0", df.dimensions(), Zero),
+            zeroGradientFvPatchField<Type>::typeName
         )
     );
     tvf.ref().primitiveFieldRef() = df;
     tvf.ref().correctBoundaryConditions();
-    const GeometricField<Type, fvPatchField, volMesh>& vf = tvf();
 
     if (meshSubsetter.hasSubMesh())
     {
+        const GeometricField<Type, fvPatchField, volMesh>& vf = tvf();
+
         tmp<GeometricField<Type, fvPatchField, volMesh>> tfld
         (
             meshSubsetter.interpolate(vf)
@@ -116,10 +119,8 @@ volField
 //    const IOobject& io,
 //    const fvMesh& mesh,
 //    const ensightMesh& eMesh,
-//    const fileName& postProcPath,
-//    const word& prepend,
+//    const fileName& dataDir,
 //    const label timeIndex,
-//    const bool binary,
 //    const bool nodeValues,
 //    Ostream& ensightCaseFile
 //)
@@ -129,10 +130,8 @@ volField
 //    (
 //        volField<typename Container::value_type>(meshSubsetter, fld),
 //        eMesh,
-//        postProcPath,
-//        prepend,
+//        dataDir,
 //        timeIndex,
-//        binary,
 //        nodeValues,
 //        ensightCaseFile
 //    );
@@ -170,26 +169,26 @@ void writeField
 (
     const char* key,
     const Field<Type>& vf,
-    ensightStream& ensightFile
+    ensightStream& os
 )
 {
     if (returnReduce(vf.size(), sumOp<label>()) > 0)
     {
         if (Pstream::master())
         {
-            ensightFile.write(key);
+            os.write(key);
 
             for (direction i=0; i < pTraits<Type>::nComponents; ++i)
             {
                 label cmpt = ensightPTraits<Type>::componentOrder[i];
 
-                ensightFile.write(vf.component(cmpt));
+                os.write(vf.component(cmpt));
 
                 for (int slave=1; slave<Pstream::nProcs(); slave++)
                 {
                     IPstream fromSlave(Pstream::scheduled, slave);
                     scalarField slaveData(fromSlave);
-                    ensightFile.write(slaveData);
+                    os.write(slaveData);
                 }
             }
         }
@@ -215,35 +214,35 @@ bool writePatchField
     const label ensightPatchi,
     const faceSets& boundaryFaceSet,
     const ensightMesh::nFacePrimitives& nfp,
-    ensightStream& ensightFile
+    ensightStream& os
 )
 {
     if (nfp.nTris || nfp.nQuads || nfp.nPolys)
     {
         if (Pstream::master())
         {
-            ensightFile.writePartHeader(ensightPatchi);
+            os.writePartHeader(ensightPatchi);
         }
 
         writeField
         (
             "tria3",
             Field<Type>(pf, boundaryFaceSet.tris),
-            ensightFile
+            os
         );
 
         writeField
         (
             "quad4",
             Field<Type>(pf, boundaryFaceSet.quads),
-            ensightFile
+            os
         );
 
         writeField
         (
             "nsided",
             Field<Type>(pf, boundaryFaceSet.polys),
-            ensightFile
+            os
         );
 
         return true;
@@ -262,15 +261,11 @@ void writePatchField
     const Field<Type>& pf,
     const word& patchName,
     const ensightMesh& eMesh,
-    const fileName& postProcPath,
-    const word& prepend,
+    const fileName& dataDir,
     const label timeIndex,
-    const bool binary,
     Ostream& ensightCaseFile
 )
 {
-    const Time& runTime = eMesh.mesh().time();
-
     const List<faceSets>& boundaryFaceSets = eMesh.boundaryFaceSets();
     const wordList& allPatchNames = eMesh.allPatchNames();
     const HashTable<ensightMesh::nFacePrimitives>&
@@ -290,54 +285,52 @@ void writePatchField
         ensightPatchi++;
     }
 
-
-    word pfName = patchName + '.' + fieldName;
-
-    word timeFile = prepend + itoa(timeIndex);
-
-    ensightStream* ensightFilePtr = nullptr;
+    ensightStream* filePtr(nullptr);
     if (Pstream::master())
     {
+        // TODO: verify that these are indeed valid ensight variable names
+        const word varName = patchName + '.' + fieldName;
+        const fileName postFileName = ensightFile::subDir(timeIndex)/varName;
+
+        // the data/ITER subdirectory must exist
+        mkDir(dataDir/postFileName.path());
+
         if (timeIndex == 0)
         {
-            ensightCaseFile.setf(ios_base::left);
+            const fileName dirName = dataDir.name()/ensightFile::mask();
 
+            ensightCaseFile.setf(ios_base::left);
             ensightCaseFile
-                << ensightPTraits<Type>::typeName
-                << " per element:            1       "
-                << setw(15) << pfName
-                << (' ' + prepend + "****." + pfName).c_str()
+                << ensightPTraits<Type>::typeName << " per "
+                << setw(20)
+                << "element:"
+                << " 1  "
+                << setw(15)
+                << varName.c_str() << ' '
+                << (dirName/varName).c_str()
                 << nl;
         }
 
-        // set the filename of the ensight file
-        fileName ensightFileName(timeFile + "." + pfName);
-
-        if (binary)
+        if (eMesh.format() == IOstream::BINARY)
         {
-            ensightFilePtr = new ensightBinaryStream
+            filePtr = new ensightBinaryStream
             (
-                postProcPath/ensightFileName,
-                runTime
+                dataDir/postFileName
             );
         }
         else
         {
-            ensightFilePtr = new ensightAsciiStream
+            filePtr = new ensightAsciiStream
             (
-                postProcPath/ensightFileName,
-                runTime
+                dataDir/postFileName
             );
         }
-    }
-
-    ensightStream& ensightFile = *ensightFilePtr;
 
-    if (Pstream::master())
-    {
-        ensightFile.write(ensightPTraits<Type>::typeName);
+        filePtr->write(ensightPTraits<Type>::typeName);
     }
 
+    ensightStream& os = *filePtr;
+
     if (patchi >= 0)
     {
         writePatchField
@@ -347,7 +340,7 @@ void writePatchField
             ensightPatchi,
             boundaryFaceSets[patchi],
             nPatchPrims.find(patchName)(),
-            ensightFile
+            os
         );
     }
     else
@@ -361,13 +354,13 @@ void writePatchField
             ensightPatchi,
             nullFaceSets,
             nPatchPrims.find(patchName)(),
-            ensightFile
+            os
         );
     }
 
-    if (Pstream::master())
+    if (filePtr) // on master only
     {
-        delete ensightFilePtr;
+        delete filePtr;
     }
 }
 
@@ -377,19 +370,14 @@ void ensightField
 (
     const GeometricField<Type, fvPatchField, volMesh>& vf,
     const ensightMesh& eMesh,
-    const fileName& postProcPath,
-    const word& prepend,
+    const fileName& dataDir,
     const label timeIndex,
-    const bool binary,
     Ostream& ensightCaseFile
 )
 {
-    Info<< "Converting field " << vf.name() << endl;
-
-    word timeFile = prepend + itoa(timeIndex);
+    Info<< ' ' << vf.name();
 
     const fvMesh& mesh = eMesh.mesh();
-    const Time& runTime = mesh.time();
 
     const cellSets& meshCellSets = eMesh.meshCellSets();
     const List<faceSets>& boundaryFaceSets = eMesh.boundaryFaceSets();
@@ -409,91 +397,91 @@ void ensightField
     const labelList& hexes = meshCellSets.hexes;
     const labelList& polys = meshCellSets.polys;
 
-    ensightStream* ensightFilePtr = nullptr;
+    ensightStream* filePtr(nullptr);
     if (Pstream::master())
     {
-        // set the filename of the ensight file
-        fileName ensightFileName(timeFile + "." + vf.name());
+        const ensight::VarName varName(vf.name());
+        const fileName postFileName = ensightFile::subDir(timeIndex)/varName;
+
+        // the data/ITER subdirectory must exist
+        mkDir(dataDir/postFileName.path());
+
+        if (timeIndex == 0)
+        {
+            const fileName dirName = dataDir.name()/ensightFile::mask();
 
-        if (binary)
+            ensightCaseFile.setf(ios_base::left);
+            ensightCaseFile
+                << ensightPTraits<Type>::typeName
+                << " per element:     1  "
+                << setw(15)
+                << varName.c_str() << ' '
+                << (dirName/varName).c_str()
+                << nl;
+        }
+
+        if (eMesh.format() == IOstream::BINARY)
         {
-            ensightFilePtr = new ensightBinaryStream
+            filePtr = new ensightBinaryStream
             (
-                postProcPath/ensightFileName,
-                runTime
+                dataDir/postFileName
             );
         }
         else
         {
-            ensightFilePtr = new ensightAsciiStream
+            filePtr = new ensightAsciiStream
             (
-                postProcPath/ensightFileName,
-                runTime
+                dataDir/postFileName
             );
         }
-    }
-
-    ensightStream& ensightFile = *ensightFilePtr;
 
-    if (Pstream::master())
-    {
-        if (timeIndex == 0)
-        {
-            ensightCaseFile.setf(ios_base::left);
-
-            ensightCaseFile
-                << ensightPTraits<Type>::typeName
-                << " per element:            1       "
-                << setw(15) << vf.name()
-                << (' ' + prepend + "****." + vf.name()).c_str()
-                << nl;
-        }
-
-        ensightFile.write(ensightPTraits<Type>::typeName);
+        filePtr->write(ensightPTraits<Type>::typeName);
     }
 
+    ensightStream& os = *filePtr;
+
     if (patchNames.empty())
     {
         eMesh.barrier();
 
         if (Pstream::master())
         {
-            ensightFile.writePartHeader(1);
+            os.writePartHeader(1);
         }
 
         writeField
         (
             "hexa8",
             map(vf, hexes, wedges),
-            ensightFile
+            os
         );
 
         writeField
         (
             "penta6",
             Field<Type>(vf, prisms),
-            ensightFile
+            os
         );
 
         writeField
         (
             "pyramid5",
             Field<Type>(vf, pyrs),
-            ensightFile
+            os
         );
 
         writeField
         (
             "tetra4",
             Field<Type>(vf, tets),
-            ensightFile
+            os
         );
 
         writeField
         (
             "nfaced",
             Field<Type>(vf, polys),
-            ensightFile
+            os
         );
     }
 
@@ -516,7 +504,7 @@ void ensightField
                     ensightPatchi,
                     boundaryFaceSets[patchi],
                     nPatchPrims.find(patchName)(),
-                    ensightFile
+                    os
                 )
             )
             {
@@ -541,8 +529,7 @@ void ensightField
 
             eMesh.barrier();
 
-            label zoneID = mesh.faceZones().findZoneID(faceZoneName);
-
+            const label zoneID = mesh.faceZones().findZoneID(faceZoneName);
             const faceZone& fz = mesh.faceZones()[zoneID];
 
             // Prepare data to write
@@ -590,7 +577,7 @@ void ensightField
                     ensightPatchi,
                     faceZoneFaceSets[zoneID],
                     nFaceZonePrims.find(faceZoneName)(),
-                    ensightFile
+                    os
                 )
             )
             {
@@ -598,9 +585,10 @@ void ensightField
             }
         }
     }
-    if (Pstream::master())
+
+    if (filePtr) // on master only
     {
-        delete ensightFilePtr;
+        delete filePtr;
     }
 }
 
@@ -610,80 +598,78 @@ void ensightPointField
 (
     const GeometricField<Type, pointPatchField, pointMesh>& pf,
     const ensightMesh& eMesh,
-    const fileName& postProcPath,
-    const word& prepend,
+    const fileName& dataDir,
     const label timeIndex,
-    const bool binary,
     Ostream& ensightCaseFile
 )
 {
-    Info<< "Converting field " << pf.name() << endl;
-
-    word timeFile = prepend + itoa(timeIndex);
+    Info<< ' ' << pf.name();
 
     const fvMesh& mesh = eMesh.mesh();
     const wordList& allPatchNames = eMesh.allPatchNames();
     const wordHashSet& patchNames = eMesh.patchNames();
     const wordHashSet& faceZoneNames = eMesh.faceZoneNames();
 
-
-    ensightStream* ensightFilePtr = nullptr;
+    ensightStream* filePtr(nullptr);
     if (Pstream::master())
     {
-        // set the filename of the ensight file
-        fileName ensightFileName(timeFile + "." + pf.name());
+        const ensight::VarName varName(pf.name());
+        const fileName postFileName = ensightFile::subDir(timeIndex)/varName;
+
+        // the data/ITER subdirectory must exist
+        mkDir(dataDir/postFileName.path());
 
-        if (binary)
+        if (timeIndex == 0)
         {
-            ensightFilePtr = new ensightBinaryStream
+            const fileName dirName = dataDir.name()/ensightFile::mask();
+
+            ensightCaseFile.setf(ios_base::left);
+            ensightCaseFile
+                << ensightPTraits<Type>::typeName
+                << " per "
+                << setw(20)
+                << " node:"
+                << " 1  "
+                << setw(15)
+                << varName.c_str() << ' '
+                << (dirName/varName).c_str()
+                << nl;
+        }
+
+        if (eMesh.format() == IOstream::BINARY)
+        {
+            filePtr = new ensightBinaryStream
             (
-                postProcPath/ensightFileName,
-                mesh.time()
+                dataDir/postFileName
             );
         }
         else
         {
-            ensightFilePtr = new ensightAsciiStream
+            filePtr = new ensightAsciiStream
             (
-                postProcPath/ensightFileName,
-                mesh.time()
+                dataDir/postFileName
             );
         }
-    }
-
-    ensightStream& ensightFile = *ensightFilePtr;
-
-    if (Pstream::master())
-    {
-        if (timeIndex == 0)
-        {
-            ensightCaseFile.setf(ios_base::left);
-
-            ensightCaseFile
-                << ensightPTraits<Type>::typeName
-                << " per node:            1       "
-                << setw(15) << pf.name()
-                << (' ' + prepend + "****." + pf.name()).c_str()
-                << nl;
-        }
 
-        ensightFile.write(ensightPTraits<Type>::typeName);
+        filePtr->write(ensightPTraits<Type>::typeName);
     }
 
+    ensightStream& os = *filePtr;
+
     if (eMesh.patchNames().empty())
     {
         eMesh.barrier();
 
         if (Pstream::master())
         {
-            ensightFile.writePartHeader(1);
+            os.writePartHeader(1);
         }
 
         writeField
         (
             "coordinates",
             Field<Type>(pf.primitiveField(), eMesh.uniquePointMap()),
-            ensightFile
+            os
         );
     }
 
@@ -699,11 +685,8 @@ void ensightPointField
         if (patchNames.empty() || patchNames.found(patchName))
         {
             const fvPatch& p = mesh.boundary()[patchi];
-            if
-            (
-                returnReduce(p.size(), sumOp<label>())
-              > 0
-            )
+
+            if (returnReduce(p.size(), sumOp<label>()) > 0)
             {
                 // Renumber the patch points/faces into unique points
                 labelList pointToGlobal;
@@ -719,14 +702,14 @@ void ensightPointField
 
                 if (Pstream::master())
                 {
-                    ensightFile.writePartHeader(ensightPatchi);
+                    os.writePartHeader(ensightPatchi);
                 }
 
                 writeField
                 (
                     "coordinates",
                     Field<Type>(pf.primitiveField(), uniqueMeshPointLabels),
-                    ensightFile
+                    os
                 );
 
                 ensightPatchi++;
@@ -743,8 +726,7 @@ void ensightPointField
 
             eMesh.barrier();
 
-            label zoneID = mesh.faceZones().findZoneID(faceZoneName);
-
+            const label zoneID = mesh.faceZones().findZoneID(faceZoneName);
             const faceZone& fz = mesh.faceZones()[zoneID];
 
             if (returnReduce(fz().nPoints(), sumOp<label>()) > 0)
@@ -753,17 +735,17 @@ void ensightPointField
                 labelList pointToGlobal;
                 labelList uniqueMeshPointLabels;
                 autoPtr<globalIndex> globalPointsPtr =
-                mesh.globalData().mergePoints
-                (
-                    fz().meshPoints(),
-                    fz().meshPointMap(),
-                    pointToGlobal,
-                    uniqueMeshPointLabels
-                );
+                    mesh.globalData().mergePoints
+                    (
+                        fz().meshPoints(),
+                        fz().meshPointMap(),
+                        pointToGlobal,
+                        uniqueMeshPointLabels
+                    );
 
                 if (Pstream::master())
                 {
-                    ensightFile.writePartHeader(ensightPatchi);
+                    os.writePartHeader(ensightPatchi);
                 }
 
                 writeField
@@ -774,7 +756,7 @@ void ensightPointField
                         pf.primitiveField(),
                         uniqueMeshPointLabels
                     ),
-                    ensightFile
+                    os
                 );
 
                 ensightPatchi++;
@@ -782,9 +764,9 @@ void ensightPointField
         }
     }
 
-    if (Pstream::master())
+    if (filePtr) // on master only
     {
-        delete ensightFilePtr;
+        delete filePtr;
     }
 }
 
@@ -794,10 +776,8 @@ void ensightField
 (
     const GeometricField<Type, fvPatchField, volMesh>& vf,
     const ensightMesh& eMesh,
-    const fileName& postProcPath,
-    const word& prepend,
+    const fileName& dataDir,
     const label timeIndex,
-    const bool binary,
     const bool nodeValues,
     Ostream& ensightCaseFile
 )
@@ -814,10 +794,8 @@ void ensightField
         (
             pfld,
             eMesh,
-            postProcPath,
-            prepend,
+            dataDir,
             timeIndex,
-            binary,
             ensightCaseFile
         );
     }
@@ -827,10 +805,8 @@ void ensightField
         (
             vf,
             eMesh,
-            postProcPath,
-            prepend,
+            dataDir,
             timeIndex,
-            binary,
             ensightCaseFile
         );
     }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.H
index 93452d04d3822c3903251174795027e6b5e746d4..3769f93714c9b99074e1bd4323b16e4e40d9279a 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightField.H
@@ -69,10 +69,8 @@ void ensightField
 (
     const Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh>& vf,
     const Foam::ensightMesh& eMesh,
-    const Foam::fileName& postProcPath,
-    const Foam::word& prepend,
+    const Foam::fileName& dataDir,
     const Foam::label timeIndex,
-    const bool binary,
     const bool nodeValues,
     Foam::Ostream& ensightCaseFile
 );
@@ -85,8 +83,7 @@ void writePatchField
     const Foam::Field<Type>& pf,
     const Foam::word& patchName,
     const Foam::ensightMesh& eMesh,
-    const Foam::fileName& postProcPath,
-    const Foam::word& prepend,
+    const Foam::fileName& dataDir,
     const Foam::label timeIndex,
     Foam::Ostream& ensightCaseFile
 );
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C
index f8bfbdbce2d6fb7a784c1cb609766f6c27925955..5efc64bca8cac9d55ad2df65cec4735471d9c810 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,16 +32,21 @@ License
 #include "processorPolyPatch.H"
 #include "cellModeller.H"
 #include "IOmanip.H"
-#include "itoa.H"
 #include "globalIndex.H"
 #include "mapDistribute.H"
 #include "stringListOps.H"
 
+#include "ensightFile.H"
 #include "ensightBinaryStream.H"
 #include "ensightAsciiStream.H"
 
 #include <fstream>
 
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+const char* Foam::ensightMesh::geometryName = "geometry";
+
+
 // * * * * * * * * * * * * * Private Functions * * * * * * * * * * * * * * //
 
 void Foam::ensightMesh::correct()
@@ -403,7 +408,7 @@ Foam::ensightMesh::ensightMesh
     const bool faceZones,
     const wordReList& faceZonePatterns,
 
-    const bool binary
+    const IOstream::streamFormat format
 )
 :
     mesh_(mesh),
@@ -412,7 +417,7 @@ Foam::ensightMesh::ensightMesh
     patchPatterns_(patchPatterns),
     faceZones_(faceZones),
     faceZonePatterns_(faceZonePatterns),
-    binary_(binary),
+    format_(format),
     meshCellSets_(mesh.nCells())
 {
     correct();
@@ -521,7 +526,7 @@ void Foam::ensightMesh::writePrims
     // Create a temp int array
     if (cellShapes.size())
     {
-        if (ensightGeometryFile.ascii())
+        if (format_ == IOstream::ASCII)
         {
             // Workaround for paraview issue : write one cell per line
 
@@ -1018,63 +1023,56 @@ void Foam::ensightMesh::writeAllPoints
 
 void Foam::ensightMesh::write
 (
-    const fileName& postProcPath,
-    const word& prepend,
+    const fileName& dataDir,
     const label timeIndex,
     const bool meshMoving,
     Ostream& ensightCaseFile
 ) const
 {
-    const Time& runTime = mesh_.time();
     const cellShapeList& cellShapes = mesh_.cellShapes();
 
-
-    word timeFile = prepend;
-
-    if (timeIndex == 0)
-    {
-        timeFile += "0000.";
-    }
-    else if (meshMoving)
+    ensightStream* filePtr(nullptr);
+    if (Pstream::master())
     {
-        timeFile += itoa(timeIndex) + '.';
-    }
+        // set the filename of the ensight file
+        fileName geoFileName = dataDir.path()/ensightMesh::geometryName;
 
-    // set the filename of the ensight file
-    fileName ensightGeometryFileName = timeFile + "mesh";
+        if (meshMoving)
+        {
+            geoFileName =
+                dataDir/ensightFile::subDir(timeIndex)
+               /ensightMesh::geometryName;
 
-    ensightStream* ensightGeometryFilePtr = nullptr;
-    if (Pstream::master())
-    {
-        if (binary_)
+            mkDir(geoFileName.path());
+        }
+
+        if (format_ == IOstream::BINARY)
         {
-            ensightGeometryFilePtr = new ensightBinaryStream
+            filePtr = new ensightBinaryStream
             (
-                postProcPath/ensightGeometryFileName,
-                runTime
+                geoFileName
             );
-            ensightGeometryFilePtr->write("C binary");
+            filePtr->write("C binary");
         }
         else
         {
-            ensightGeometryFilePtr = new ensightAsciiStream
+            filePtr = new ensightAsciiStream
             (
-                postProcPath/ensightGeometryFileName,
-                runTime
+                geoFileName
             );
         }
     }
 
-    ensightStream& ensightGeometryFile = *ensightGeometryFilePtr;
+    ensightStream& os = *filePtr;
 
     if (Pstream::master())
     {
         string desc = string("written by OpenFOAM-") + Foam::FOAMversion;
 
-        ensightGeometryFile.write("EnSight Geometry File");
-        ensightGeometryFile.write(desc.c_str());
-        ensightGeometryFile.write("node id assign");
-        ensightGeometryFile.write("element id assign");
+        os.write("EnSight Geometry File");
+        os.write(desc.c_str());
+        os.write("node id assign");
+        os.write("element id assign");
     }
 
     if (patchNames_.empty())
@@ -1089,7 +1087,7 @@ void Foam::ensightMesh::write
             "internalMesh",
             uniquePoints,
             nPoints,
-            ensightGeometryFile
+            os
         );
 
         writeAllPrims
@@ -1103,7 +1101,7 @@ void Foam::ensightMesh::write
                 meshCellSets_.wedges,
                 pointToGlobal_
             ),
-            ensightGeometryFile
+            os
         );
 
         writeAllPrims
@@ -1111,7 +1109,7 @@ void Foam::ensightMesh::write
             "penta6",
             meshCellSets_.nPrisms,
             map(cellShapes, meshCellSets_.prisms, pointToGlobal_),
-            ensightGeometryFile
+            os
         );
 
         writeAllPrims
@@ -1119,7 +1117,7 @@ void Foam::ensightMesh::write
             "pyramid5",
             meshCellSets_.nPyrs,
             map(cellShapes, meshCellSets_.pyrs, pointToGlobal_),
-            ensightGeometryFile
+            os
         );
 
         writeAllPrims
@@ -1127,13 +1125,13 @@ void Foam::ensightMesh::write
             "tetra4",
             meshCellSets_.nTets,
             map(cellShapes, meshCellSets_.tets, pointToGlobal_),
-            ensightGeometryFile
+            os
         );
 
         writeAllPolys
         (
             pointToGlobal_,
-            ensightGeometryFile
+            os
         );
     }
 
@@ -1182,7 +1180,7 @@ void Foam::ensightMesh::write
                     patchName,
                     uniquePoints,
                     globalPointsPtr().size(),
-                    ensightGeometryFile
+                    os
                 );
 
                 writeAllFacePrims
@@ -1191,7 +1189,7 @@ void Foam::ensightMesh::write
                     tris,
                     nfp.nTris,
                     patchFaces,
-                    ensightGeometryFile
+                    os
                 );
 
                 writeAllFacePrims
@@ -1200,7 +1198,7 @@ void Foam::ensightMesh::write
                     quads,
                     nfp.nQuads,
                     patchFaces,
-                    ensightGeometryFile
+                    os
                 );
 
                 writeAllNSided
@@ -1208,7 +1206,7 @@ void Foam::ensightMesh::write
                     polys,
                     nfp.nPolys,
                     patchFaces,
-                    ensightGeometryFile
+                    os
                 );
             }
         }
@@ -1287,7 +1285,7 @@ void Foam::ensightMesh::write
                 faceZoneName,
                 uniquePoints,
                 globalPointsPtr().size(),
-                ensightGeometryFile
+                os
             );
 
             writeAllFacePrims
@@ -1296,7 +1294,7 @@ void Foam::ensightMesh::write
                 tris,
                 nfp.nTris,
                 faceZoneMasterFaces,
-                ensightGeometryFile
+                os
             );
 
             writeAllFacePrims
@@ -1305,7 +1303,7 @@ void Foam::ensightMesh::write
                 quads,
                 nfp.nQuads,
                 faceZoneMasterFaces,
-                ensightGeometryFile
+                os
             );
 
             writeAllNSided
@@ -1313,14 +1311,14 @@ void Foam::ensightMesh::write
                 polys,
                 nfp.nPolys,
                 faceZoneMasterFaces,
-                ensightGeometryFile
+                os
             );
         }
     }
 
-    if (Pstream::master())
+    if (filePtr) // only on master
     {
-        delete ensightGeometryFilePtr;
+        delete filePtr;
     }
 }
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.H
index 5b9fea4f0235a37c129f17a33a2dbe977b4a7d0f..47e27730fe01a93a799d1bec259f13539f76ae11 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -57,12 +57,17 @@ class globalIndex;
 class ensightStream;
 
 /*---------------------------------------------------------------------------*\
-                           Class ensightMesh Declaration
+                         Class ensightMesh Declaration
 \*---------------------------------------------------------------------------*/
 
 class ensightMesh
 {
 public:
+
+    //- The name for geometry files
+    static const char* geometryName;
+
+        //- Helper class for managing face primitives
         class nFacePrimitives
         {
         public:
@@ -97,8 +102,8 @@ private:
         const bool faceZones_;
         const wordReList faceZonePatterns_;
 
-        //- Set binary file output
-        const bool binary_;
+        //- Ascii/Binary file output
+        const IOstream::streamFormat format_;
 
         //- The ensight part id for the first patch
         label patchPartOffset_;
@@ -140,10 +145,10 @@ private:
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
-        ensightMesh(const ensightMesh&);
+        ensightMesh(const ensightMesh&) = delete;
 
         //- Disallow default bitwise assignment
-        void operator=(const ensightMesh&);
+        void operator=(const ensightMesh&) = delete;
 
         void writePoints
         (
@@ -267,7 +272,7 @@ public:
             const wordReList& patchPatterns,
             const bool faceZones,
             const wordReList& faceZonePatterns,
-            const bool binary
+            const IOstream::streamFormat format = IOstream::BINARY
         );
 
 
@@ -284,6 +289,11 @@ public:
                 return mesh_;
             }
 
+            IOstream::streamFormat format() const
+            {
+                return format_;
+            }
+
             const cellSets& meshCellSets() const
             {
                 return meshCellSets_;
@@ -352,8 +362,6 @@ public:
             }
 
 
-
-
     // Other
 
         //- Update for new mesh
@@ -371,13 +379,11 @@ public:
 
         void write
         (
-            const fileName& postProcPath,
-            const word& prepend,
+            const fileName& ensightDir,
             const label timeIndex,
             const bool meshMoving,
             Ostream& ensightCaseFile
         ) const;
-
 };
 
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightParticlePositions.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightParticlePositions.C
deleted file mode 100644
index d736b3fa930c79d949c0e0269b06cf774a026e7b..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightParticlePositions.C
+++ /dev/null
@@ -1,103 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-\*---------------------------------------------------------------------------*/
-
-#include "ensightParticlePositions.H"
-#include "fvMesh.H"
-#include "passiveParticle.H"
-#include "Cloud.H"
-#include "OFstream.H"
-#include "IOmanip.H"
-#include "itoa.H"
-
-using namespace Foam;
-
-// * * * * * * * * * * * * * * * Global Functions  * * * * * * * * * * * * * //
-
-void ensightParticlePositions
-(
-    const fvMesh& mesh,
-    const fileName& postProcPath,
-    const word& timeFile,
-    const word& cloudName,
-    const bool dataExists
-)
-{
-    if (dataExists)
-    {
-        Info<< "Converting cloud " << cloudName << " positions" <<  endl;
-    }
-    else
-    {
-        Info<< "Creating empty cloud " << cloudName << " positions" << endl;
-    }
-
-    const Time& runTime = mesh.time();
-
-    fileName ensightFileName(timeFile + "." + cloudName);
-    OFstream ensightFile
-    (
-        postProcPath/ensightFileName,
-        runTime.writeFormat(),
-        runTime.writeVersion(),
-        runTime.writeCompression()
-    );
-
-    // Output header
-    ensightFile
-        << cloudName.c_str() << nl
-        << "particle coordinates" << nl;
-
-    if (dataExists)
-    {
-        Cloud<passiveParticle> parcels(mesh, cloudName, false);
-
-        // Set Format
-        ensightFile.setf(ios_base::scientific, ios_base::floatfield);
-        ensightFile.precision(5);
-
-        ensightFile<< setw(8) << parcels.size() << nl;
-
-        label nParcels = 0;
-
-        // Output positions
-        forAllConstIter(Cloud<passiveParticle>, parcels, elmnt)
-        {
-            const vector& p = elmnt().position();
-
-            ensightFile
-                << setw(8) << ++nParcels
-                << setw(12) << p.x() << setw(12) << p.y() << setw(12) << p.z()
-                << nl;
-        }
-    }
-    else
-    {
-        label nParcels = 0;
-        ensightFile<< setw(8) << nParcels << nl;
-    }
-}
-
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightStream.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightStream.H
index e7369778482c66972bfcb3b571091fc2af256c6d..89146e11023a703e3cfe8087864f2f1e7a215935 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightStream.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightStream.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -57,10 +57,10 @@ class ensightStream
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
-        ensightStream(const ensightStream&);
+        ensightStream(const ensightStream&) = delete;
 
         //- Disallow default bitwise assignment
-        void operator=(const ensightStream&);
+        void operator=(const ensightStream&) = delete;
 
 
 public:
@@ -86,8 +86,6 @@ public:
             return name_;
         }
 
-        virtual bool ascii() const = 0;
-
         virtual void write(const char*) = 0;
 
         virtual void write(const int) = 0;
@@ -98,8 +96,6 @@ public:
 
         virtual void writePartHeader(const label) = 0;
 
-
-
 };
 
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/findCloudFields.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/findCloudFields.H
new file mode 100644
index 0000000000000000000000000000000000000000..0f228f723fe1b355c109ba7220a2f64b07df9f27
--- /dev/null
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/findCloudFields.H
@@ -0,0 +1,93 @@
+// check all time directories for the following:
+
+// The fields for each cloud:
+HashTable<HashTable<word>> cloudFields;
+
+// Identify if lagrangian data exist at any time step.
+if (timeDirs.size() && !noLagrangian)
+{
+    const fileName& baseDir = mesh.time().path();
+    const fileName& cloudPrefix = regionPrefix/cloud::prefix;
+
+    Info<< "Searching for lagrangian ... " << flush;
+
+    forAll(timeDirs, timeI)
+    {
+        const word& timeName = timeDirs[timeI].name();
+
+        // DO NOT USE -->>  runTime.setTime(timeDirs[timeI], timeI);  <<--
+        // It incurs a large overhead when done so frequently.
+
+        fileNameList cloudDirs = readDir
+        (
+            baseDir/timeName/cloudPrefix,
+            fileName::DIRECTORY
+        );
+
+        forAll(cloudDirs, cloudI)
+        {
+            const word& cloudName = cloudDirs[cloudI];
+
+            IOobjectList cloudObjs
+            (
+                mesh,
+                timeName,
+                cloudPrefix/cloudName
+            );
+
+            // clouds always require "positions"
+            if (cloudObjs.found("positions"))
+            {
+                HashTable<HashTable<word>>::iterator cloudIter =
+                    cloudFields.find(cloudName);
+
+                if (cloudIter == cloudFields.end())
+                {
+                    // A newly discovered cloud
+                    cloudFields.insert(cloudName, HashTable<word>());
+                    cloudIter = cloudFields.find(cloudName);
+                }
+
+                forAllConstIter(IOobjectList, cloudObjs, fieldIter)
+                {
+                    const IOobject obj = *fieldIter();
+
+                    // Add field and field type
+                    cloudIter().insert
+                    (
+                        obj.name(),
+                        obj.headerClassName()
+                    );
+                }
+            }
+        }
+    }
+
+    // prune out "positions" again since it gets treated specially
+    forAllIter(HashTable<HashTable<word>>, cloudFields, cloudIter)
+    {
+        cloudIter().erase("positions");
+    }
+
+    if (cloudFields.empty())
+    {
+        Info<< "none detected." << endl;
+    }
+}
+
+
+// sorted list of cloud names
+const wordList cloudNames(cloudFields.sortedToc());
+
+if (cloudNames.size())
+{
+    // complete the echo information
+    Info<< "(";
+    forAll(cloudNames, cloudNo)
+    {
+        Info<< ' ' << cloudNames[cloudNo];
+    }
+    Info<< " ) " << endl;
+}
+
+// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C
index d027e7afbba294cdfdb02f1b295640d91de2bb04..654b14b868db0250eeec0cc6268c6365b5a5698b 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -39,22 +39,31 @@ Usage
       - \par -ascii
         Write Ensight data in ASCII format instead of "C Binary"
 
-      - \par -patches patchList
-        Specify particular patches to write.
-        Specifying an empty list suppresses writing the internalMesh.
+      - \par -noZero
+        Exclude the often incomplete initial conditions.
+
+      - \par -noLagrangian
+        Suppress writing lagrangian positions and fields.
 
       - \par -noPatches
         Suppress writing any patches.
 
+      - \par -patches patchList
+        Specify particular patches to write.
+        Specifying an empty list suppresses writing the internalMesh.
+
       - \par -faceZones zoneList
         Specify faceZones to write, with wildcards
 
       - \par -cellZone zoneName
         Specify single cellZone to write (not lagrangian)
 
+      - \par -width \<n\>
+        Width of EnSight data subdir (default: 8)
+
 Note
-    Parallel support for cloud data is not supported
-    - writes to \a EnSight directory to avoid collisions with foamToEnsightParts
+    Writes to \a EnSight directory to avoid collisions with
+    foamToEnsightParts
 
 \*---------------------------------------------------------------------------*/
 
@@ -70,14 +79,12 @@ Note
 #include "scalarIOField.H"
 #include "tensorIOField.H"
 
+#include "ensightFile.H"
 #include "ensightMesh.H"
 #include "ensightField.H"
-
-#include "ensightParticlePositions.H"
-#include "ensightCloudField.H"
+#include "ensightCloud.H"
 
 #include "fvc.H"
-
 #include "cellSet.H"
 #include "fvMeshSubset.H"
 
@@ -87,11 +94,7 @@ using namespace Foam;
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-bool inFileNameList
-(
-    const fileNameList& nameList,
-    const word& name
-)
+bool inFileNameList(const fileNameList& nameList, const word& name)
 {
     forAll(nameList, i)
     {
@@ -105,7 +108,6 @@ bool inFileNameList
 }
 
 
-
 int main(int argc, char *argv[])
 {
     timeSelector::addOptions();
@@ -122,6 +124,11 @@ int main(int argc, char *argv[])
         "write values in nodes"
     );
     argList::addBoolOption
+    (
+        "noLagrangian",
+        "suppress writing lagrangian positions and fields"
+    );
+    argList::addBoolOption
     (
         "noPatches",
         "suppress writing any patches"
@@ -151,32 +158,21 @@ int main(int argc, char *argv[])
         "word",
         "specify cellZone to write"
     );
+    argList::addOption
+    (
+        "name",
+        "subdir",
+        "define sub-directory name to use for ensight data "
+        "(default: 'EnSight')"
+    );
+    argList::addOption
+    (
+        "width",
+        "n",
+        "width of ensight data subdir"
+    );
 
-    #include "setRootCase.H"
-
-    // Check options
-    const bool binary = !args.optionFound("ascii");
-    const bool nodeValues = args.optionFound("nodeValues");
-
-    cpuTime timer;
-    memInfo mem;
-    Info<< "Initial memory "
-        << mem.update().size() << " kB" << endl;
-
-    #include "createTime.H"
-
-    instantList Times = timeSelector::select0(runTime, args);
-
-    #include "createNamedMesh.H"
-
-    // Mesh instance (region0 gets filtered out)
-    fileName regionPrefix = "";
-
-    if (regionName != polyMesh::defaultRegion)
-    {
-        regionPrefix = regionName;
-    }
-
+    // the volume field types that we handle
     const label nVolFieldTypes = 10;
     const word volFieldTypes[] =
     {
@@ -193,38 +189,90 @@ int main(int argc, char *argv[])
         volTensorField::Internal::typeName
     };
 
+    #include "setRootCase.H"
+
+    // default to binary output, unless otherwise specified
+    const IOstream::streamFormat format =
+    (
+        args.optionFound("ascii")
+      ? IOstream::ASCII
+      : IOstream::BINARY
+    );
+
+    const bool nodeValues = args.optionFound("nodeValues");
+
+    cpuTime timer;
+    memInfo mem;
+    Info<< "Initial memory "
+        << mem.update().size() << " kB" << endl;
+
+    #include "createTime.H"
+
+    instantList timeDirs = timeSelector::select0(runTime, args);
+
+    // adjust output width
+    if (args.optionFound("width"))
+    {
+        ensightFile::subDirWidth(args.optionRead<label>("width"));
+    }
+
+    // define sub-directory name to use for EnSight data
+    fileName ensightDir = "EnSight";
+    args.optionReadIfPresent("name", ensightDir);
+
     // Path to EnSight directory at case level only
     // - For parallel cases, data only written from master
-    fileName ensightDir = args.rootPath()/args.globalCaseName()/"EnSight";
+    if (!ensightDir.isAbsolute())
+    {
+        ensightDir = args.rootPath()/args.globalCaseName()/ensightDir;
+    }
+
+    const fileName dataDir  = ensightDir/"data";
+    const fileName dataMask = dataDir.name()/ensightFile::mask();
 
     if (Pstream::master())
     {
+        // EnSight and EnSight/data directories must exist
+        // - remove old data for a clean conversion of everything
         if (isDir(ensightDir))
         {
             rmDir(ensightDir);
         }
 
-        mkDir(ensightDir);
+        mkDir(dataDir);
+    }
+
+    #include "createNamedMesh.H"
+
+    // Mesh instance (region0 gets filtered out)
+    fileName regionPrefix;
+    if (regionName != polyMesh::defaultRegion)
+    {
+        regionPrefix = regionName;
     }
 
     // Start of case file header output
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    const word prepend = args.globalCaseName() + '.';
-
-    OFstream *ensightCaseFilePtr = nullptr;
+    OFstream *ensightCaseFilePtr(nullptr);
     if (Pstream::master())
     {
-        fileName caseFileName = prepend + "case";
-        Info<< nl << "write case: " << caseFileName.c_str() << endl;
+        fileName caseFileName = args.globalCaseName() + ".case";
 
-        // the case file is always ASCII
+        Info<< "Converting " << timeDirs.size() << " time steps" << nl
+            << "Ensight case: " << caseFileName.c_str() << endl;
+
+        // The case file is always ASCII
         ensightCaseFilePtr = new OFstream
         (
             ensightDir/caseFileName,
             IOstream::ASCII
         );
 
+        ensightCaseFilePtr->setf(ios_base::left);
+        ensightCaseFilePtr->setf(ios_base::scientific, ios_base::floatfield);
+        ensightCaseFilePtr->precision(5);
+
         *ensightCaseFilePtr
             << "FORMAT" << nl
             << "type: ensight gold" << nl << nl;
@@ -253,6 +301,8 @@ int main(int argc, char *argv[])
         fieldPatterns = wordReList(args.optionLookup("fields")());
     }
 
+    const bool noLagrangian = args.optionFound("noLagrangian");
+
     word cellZoneName;
     const bool doCellZone = args.optionReadIfPresent("cellZone", cellZoneName);
 
@@ -280,133 +330,84 @@ int main(int argc, char *argv[])
         patchPatterns,
         selectedZones,
         zonePatterns,
-        binary
+        format
     );
 
     // Set Time to the last time before looking for the lagrangian objects
-    runTime.setTime(Times.last(), Times.size()-1);
+    runTime.setTime(timeDirs.last(), timeDirs.size()-1);
 
     IOobjectList objects(mesh, runTime.timeName());
 
     #include "checkMeshMoving.H"
+    #include "findCloudFields.H"
 
-    if (meshMoving)
-    {
-        Info<< "Detected a moving mesh (multiple polyMesh/points files)."
-            << " Writing meshes for every timestep." << endl;
-    }
-
-
-    wordHashSet allCloudNames;
     if (Pstream::master())
     {
-        word geomFileName = prepend + "0000";
+        // test the pre-check variable if there is a moving mesh
+        // time-set for geometries
+        // TODO: split off into separate time-set,
+        // but need to verify ensight spec
 
-        // test pre check variable if there is a moving mesh
         if (meshMoving)
         {
-            geomFileName = prepend + "****";
+            ensightCaseFile
+                << "GEOMETRY" << nl
+                << setw(16) << "model: 1"
+                << (dataMask/ensightMesh::geometryName).c_str() << nl;
         }
-
-        ensightCaseFile
-            << "GEOMETRY" << nl
-            << "model:        1     "
-            << (geomFileName + ".mesh").c_str() << nl;
-    }
-
-    // Identify if lagrangian data exists at each time, and add clouds
-    // to the 'allCloudNames' hash set
-    forAll(Times, timeI)
-    {
-        runTime.setTime(Times[timeI], timeI);
-
-        fileNameList cloudDirs = readDir
-        (
-            runTime.timePath()/regionPrefix/cloud::prefix,
-            fileName::DIRECTORY
-        );
-
-        forAll(cloudDirs, cloudI)
-        {
-            IOobjectList cloudObjs
-            (
-                mesh,
-                runTime.timeName(),
-                cloud::prefix/cloudDirs[cloudI]
-            );
-
-            IOobject* positionsPtr = cloudObjs.lookup(word("positions"));
-
-            if (positionsPtr)
-            {
-                allCloudNames.insert(cloudDirs[cloudI]);
-            }
-        }
-    }
-
-    HashTable<HashTable<word>> allCloudFields;
-    forAllConstIter(wordHashSet, allCloudNames, cloudIter)
-    {
-        // Add the name of the cloud(s) to the case file header
-        if (Pstream::master())
+        else
         {
             ensightCaseFile
-            <<  (
-                    "measured:     1     "
-                  + prepend
-                  + "****."
-                  + cloudIter.key()
-                ).c_str()
-            << nl;
+                << "GEOMETRY" << nl
+                << setw(16) << "model:"
+                << ensightMesh::geometryName << nl;
         }
 
-        // Create a new hash table for each cloud
-        allCloudFields.insert(cloudIter.key(), HashTable<word>());
-
-        // Identify the new cloud in the hash table
-        HashTable<HashTable<word>>::iterator newCloudIter =
-            allCloudFields.find(cloudIter.key());
 
-        // Loop over all times to build list of fields and field types
-        // for each cloud
-        forAll(Times, timeI)
+        // Add the name of the cloud(s) to the case file header
+        forAll(cloudNames, cloudNo)
         {
-            runTime.setTime(Times[timeI], timeI);
-
-            IOobjectList cloudObjs
-            (
-                mesh,
-                runTime.timeName(),
-                cloud::prefix/cloudIter.key()
-            );
-
-            forAllConstIter(IOobjectList, cloudObjs, fieldIter)
-            {
-                const IOobject obj = *fieldIter();
+            const word& cloudName = cloudNames[cloudNo];
 
-                if (obj.name() != "positions")
-                {
-                    // Add field and field type
-                    newCloudIter().insert
-                    (
-                        obj.name(),
-                        obj.headerClassName()
-                    );
-                }
-            }
+            ensightCaseFile
+                << setw(16) << "measured: 1"
+                << fileName
+                (
+                    dataMask/cloud::prefix/cloudName/"positions"
+                ).c_str() << nl;
         }
     }
 
+    Info<< "Startup in "
+        << timer.cpuTimeIncrement() << " s, "
+        << mem.update().size() << " kB" << nl << endl;
+
+    // ignore special fields (_0 fields),
+    // ignore fields we don't handle,
+    // ignore fields that are not available for all time-steps
+    HashTable<bool> fieldsToUse;
+
     label nTimeSteps = 0;
-    forAll(Times, timeIndex)
+    forAll(timeDirs, timeIndex)
     {
-        nTimeSteps++;
-        runTime.setTime(Times[timeIndex], timeIndex);
+        ++nTimeSteps;
+        runTime.setTime(timeDirs[timeIndex], timeIndex);
 
-        word timeName = itoa(timeIndex);
-        word timeFile = prepend + timeName;
+        Info<< "Time [" << timeIndex << "] = " << runTime.timeName() << nl;
 
-        Info<< "Translating time = " << runTime.timeName() << nl;
+        if (Pstream::master())
+        {
+            // the data/ITER subdirectory must exist
+            // Note that data/ITER is indeed a valid ensight::FileName
+            const fileName subDir = ensightFile::subDir(timeIndex);
+            mkDir(dataDir/subDir);
+
+            // place a timestamp in the directory for future reference
+            OFstream timeStamp(dataDir/subDir/"time");
+            timeStamp
+                << "#   timestep time" << nl
+                << subDir.c_str() << " " << runTime.timeName() << nl;
+        }
 
         polyMesh::readUpdateState meshState = mesh.readUpdate();
         if (timeIndex != 0 && meshSubsetter.hasSubMesh())
@@ -420,7 +421,6 @@ int main(int argc, char *argv[])
             meshSubsetter.setLargeCellSubset(c0, 0);
         }
 
-
         if (meshState != polyMesh::UNCHANGED)
         {
             eMesh.correct();
@@ -430,8 +430,7 @@ int main(int argc, char *argv[])
         {
             eMesh.write
             (
-                ensightDir,
-                prepend,
+                dataDir,
                 timeIndex,
                 meshMoving,
                 ensightCaseFile
@@ -450,8 +449,9 @@ int main(int argc, char *argv[])
 
         // Cell field data output
         // ~~~~~~~~~~~~~~~~~~~~~~
+        Info<< "Write volume field (";
 
-        for (label i=0; i<nVolFieldTypes; i++)
+        for (label i=0; i<nVolFieldTypes; ++i)
         {
             wordList fieldNames = objects.names(volFieldTypes[i]);
 
@@ -470,7 +470,7 @@ int main(int argc, char *argv[])
 
                 #include "checkData.H"
 
-                if (!variableGood)
+                if (!fieldsToUse[fieldName])
                 {
                     continue;
                 }
@@ -491,10 +491,8 @@ int main(int argc, char *argv[])
                     (
                         volField(meshSubsetter, vf),
                         eMesh,
-                        ensightDir,
-                        prepend,
+                        dataDir,
                         timeIndex,
-                        binary,
                         nodeValues,
                         ensightCaseFile
                     );
@@ -506,10 +504,8 @@ int main(int argc, char *argv[])
                     (
                         volField(meshSubsetter, vf),
                         eMesh,
-                        ensightDir,
-                        prepend,
+                        dataDir,
                         timeIndex,
-                        binary,
                         nodeValues,
                         ensightCaseFile
                     );
@@ -521,10 +517,8 @@ int main(int argc, char *argv[])
                     (
                         volField(meshSubsetter, vf),
                         eMesh,
-                        ensightDir,
-                        prepend,
+                        dataDir,
                         timeIndex,
-                        binary,
                         nodeValues,
                         ensightCaseFile
                     );
@@ -536,10 +530,8 @@ int main(int argc, char *argv[])
                     (
                         volField(meshSubsetter, vf),
                         eMesh,
-                        ensightDir,
-                        prepend,
+                        dataDir,
                         timeIndex,
-                        binary,
                         nodeValues,
                         ensightCaseFile
                     );
@@ -551,10 +543,8 @@ int main(int argc, char *argv[])
                     (
                         volField(meshSubsetter, vf),
                         eMesh,
-                        ensightDir,
-                        prepend,
+                        dataDir,
                         timeIndex,
-                        binary,
                         nodeValues,
                         ensightCaseFile
                     );
@@ -570,10 +560,8 @@ int main(int argc, char *argv[])
                     (
                         volField<scalar>(meshSubsetter, df),
                         eMesh,
-                        ensightDir,
-                        prepend,
+                        dataDir,
                         timeIndex,
-                        binary,
                         nodeValues,
                         ensightCaseFile
                     );
@@ -588,10 +576,8 @@ int main(int argc, char *argv[])
                     (
                         volField<vector>(meshSubsetter, df),
                         eMesh,
-                        ensightDir,
-                        prepend,
+                        dataDir,
                         timeIndex,
-                        binary,
                         nodeValues,
                         ensightCaseFile
                     );
@@ -607,10 +593,8 @@ int main(int argc, char *argv[])
                     (
                         volField<sphericalTensor>(meshSubsetter, df),
                         eMesh,
-                        ensightDir,
-                        prepend,
+                        dataDir,
                         timeIndex,
-                        binary,
                         nodeValues,
                         ensightCaseFile
                     );
@@ -625,10 +609,8 @@ int main(int argc, char *argv[])
                     (
                         volField<symmTensor>(meshSubsetter, df),
                         eMesh,
-                        ensightDir,
-                        prepend,
+                        dataDir,
                         timeIndex,
-                        binary,
                         nodeValues,
                         ensightCaseFile
                     );
@@ -643,24 +625,29 @@ int main(int argc, char *argv[])
                     (
                         volField<tensor>(meshSubsetter, df),
                         eMesh,
-                        ensightDir,
-                        prepend,
+                        dataDir,
                         timeIndex,
-                        binary,
                         nodeValues,
                         ensightCaseFile
                     );
                 }
+                else
+                {
+                    // Do not currently handle this type - blacklist for the future.
+                    fieldsToUse.set(fieldName, false);
+                }
             }
         }
+        Info<< " )" << nl;
 
 
         // Cloud field data output
         // ~~~~~~~~~~~~~~~~~~~~~~~
 
-        forAllConstIter(HashTable<HashTable<word>>, allCloudFields, cloudIter)
+        forAll(cloudNames, cloudNo)
         {
-            const word& cloudName = cloudIter.key();
+            const word& cloudName = cloudNames[cloudNo];
+            const HashTable<word>& theseCloudFields = cloudFields[cloudName];
 
             fileNameList currentCloudDirs = readDir
             (
@@ -668,17 +655,22 @@ int main(int argc, char *argv[])
                 fileName::DIRECTORY
             );
 
+            Info<< "Write " << cloudName << " (";
+
             bool cloudExists = inFileNameList(currentCloudDirs, cloudName);
+            reduce(cloudExists, orOp<bool>());
+
             ensightParticlePositions
             (
                 mesh,
-                ensightDir,
-                timeFile,
+                dataDir,
+                timeIndex,
                 cloudName,
-                cloudExists
+                cloudExists,
+                format
             );
 
-            forAllConstIter(HashTable<word>, cloudIter(), fieldIter)
+            forAllConstIter(HashTable<word>, theseCloudFields, fieldIter)
             {
                 const word& fieldName = fieldIter.key();
                 const word& fieldType = fieldIter();
@@ -696,17 +688,20 @@ int main(int argc, char *argv[])
                 (
                     false
                 );
+                reduce(fieldExists, orOp<bool>());
+
                 if (fieldType == scalarIOField::typeName)
                 {
                     ensightCloudField<scalar>
                     (
                         fieldObject,
-                        ensightDir,
-                        prepend,
+                        dataDir,
                         timeIndex,
                         cloudName,
+                        cloudNo,
                         ensightCaseFile,
-                        fieldExists
+                        fieldExists,
+                        format
                     );
                 }
                 else if (fieldType == vectorIOField::typeName)
@@ -714,37 +709,34 @@ int main(int argc, char *argv[])
                     ensightCloudField<vector>
                     (
                         fieldObject,
-                        ensightDir,
-                        prepend,
+                        dataDir,
                         timeIndex,
                         cloudName,
+                        cloudNo,
                         ensightCaseFile,
-                        fieldExists
+                        fieldExists,
+                        format
                     );
                 }
-                else
-                {
-                    Info<< "Unable to convert field type " << fieldType
-                        << " for field " << fieldName << endl;
-                }
             }
+            Info<< " )" << nl;
         }
 
         Info<< "Wrote in "
             << timer.cpuTimeIncrement() << " s, "
-            << mem.update().size() << " kB" << endl;
+            << mem.update().size() << " kB" << nl << nl;
     }
 
     #include "ensightCaseTail.H"
 
-    if (Pstream::master())
+    if (ensightCaseFilePtr) // on master only
     {
         delete ensightCaseFilePtr;
     }
 
-    Info<< "\nEnd: "
+    Info<< "End: "
         << timer.elapsedCpuTime() << " s, "
-        << mem.update().peak() << " kB (peak)\n" << endl;
+        << mem.update().peak() << " kB (peak)" << nl << endl;
 
     return 0;
 }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/checkHasMovingMesh.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/checkHasMovingMesh.H
index d59f258d356a6103aa7200349290946a0d0a519e..15a4756949b36336a3f211896b70939341bf3a87 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/checkHasMovingMesh.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/checkHasMovingMesh.H
@@ -2,18 +2,47 @@
 // - could restrict to the selected times
 
 bool hasMovingMesh = false;
-if (timeDirs.size() > 1)
+
+if (timeDirs.size() > 1 && Pstream::master())
 {
-    hasMovingMesh = true;
-    for (label i=0; i < timeDirs.size() && hasMovingMesh; ++i)
+    // We already loaded a mesh (usually from constant).
+    // See if any other "polyMesh/points" files exist too.
+
+    const fileName& baseDir = mesh.time().path();
+
+    Info<< "Search for moving mesh ... " << flush;
+    forAll(timeDirs, timeI)
     {
-        hasMovingMesh = IOobject
+        hasMovingMesh =
         (
-            "points",
-            timeDirs[i].name(),
-            polyMesh::meshSubDir,
-            mesh,
-            IOobject::NO_READ
-        ).typeHeaderOk<pointIOField>(true);
+            isDir(baseDir/timeDirs[timeI].name()/polyMesh::meshSubDir)
+         && IOobject
+            (
+                "points",
+                timeDirs[timeI].name(),
+                polyMesh::meshSubDir,
+                mesh,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false  // no register
+            ).typeHeaderOk<pointIOField>(true)
+        );
+
+        if (hasMovingMesh)
+        {
+            break;
+        }
+    }
+
+    if (hasMovingMesh)
+    {
+        Info<< "found." << nl
+            << "    Writing meshes for every timestep." << endl;
+    }
+    else
+    {
+        Info<< "none detected." << endl;
     }
 }
+
+reduce(hasMovingMesh, orOp<bool>());
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H
index 83bae0f842363da1d144539f21bbd1ec73a473e1..b0c3af822bbffb892c76a7be0241f086bd4f219e 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H
@@ -58,35 +58,36 @@ forAllConstIter(HashTable<word>, volumeFields, fieldIter)
 
     if (fieldType == volScalarField::typeName)
     {
-        ensightType = "scalar";
+        ensightType = ensightPTraits<scalar>::typeName;
     }
     else if (fieldType == volVectorField::typeName)
     {
-        ensightType = "vector";
+        ensightType = ensightPTraits<vector>::typeName;
     }
     else if (fieldType == volSphericalTensorField::typeName)
     {
-        ensightType = "tensor symm";
+        ensightType = ensightPTraits<sphericalTensor>::typeName;
     }
     else if (fieldType == volSymmTensorField::typeName)
     {
-        ensightType = "tensor symm";
+        ensightType = ensightPTraits<symmTensor>::typeName;
     }
     else if (fieldType == volTensorField::typeName)
     {
-        ensightType = "tensor asym";
+        ensightType = ensightPTraits<tensor>::typeName;
     }
-
-    if (ensightType.size())
+    else
     {
-        ensightCaseEntry
-        (
-            caseFile,
-            ensightType,
-            fieldName,
-            dataMask
-        );
+        continue;
     }
+
+    ensightCaseEntry
+    (
+        caseFile,
+        ensightType,
+        fieldName,
+        dataMask
+    );
 }
 
 
@@ -104,30 +105,31 @@ forAllConstIter(HashTable<HashTable<word>>, cloudFields, cloudIter)
 
         if (fieldType == scalarIOField::typeName)
         {
-            ensightType = "scalar";
+            ensightType = ensightPTraits<scalar>::typeName;
         }
         else if (fieldType == vectorIOField::typeName)
         {
-            ensightType = "vector";
+            ensightType = ensightPTraits<vector>::typeName;
         }
         else if (fieldType == tensorIOField::typeName)
         {
-            ensightType = "tensor";
+            ensightType = ensightPTraits<tensor>::typeName;
         }
-
-        if (ensightType.size())
+        else
         {
-            ensightCaseEntry
-            (
-                caseFile,
-                ensightType,
-                fieldName,
-                dataMask,
-                cloud::prefix/cloudName,
-                cloudNo,
-                2
-            );
+            continue;
         }
+
+        ensightCaseEntry
+        (
+            caseFile,
+            ensightType,
+            fieldName,
+            dataMask,
+            cloud::prefix/cloudName,
+            cloudNo,
+            2
+        );
     }
     cloudNo++;
 }
@@ -162,7 +164,7 @@ if (fieldTimesUsed.size())
     count = 0;
     forAll(fieldTimesUsed, i)
     {
-        const label& index = fieldTimesUsed[i];
+        const label index = fieldTimesUsed[i];
         caseFile
             << " " << setw(12) << timeIndices[index] + timeCorrection;
 
@@ -203,7 +205,7 @@ if (geometryTimesUsed.size())
     count = 0;
     forAll(geometryTimesUsed, i)
     {
-        const label& index = geometryTimesUsed[i];
+        const label index = geometryTimesUsed[i];
         caseFile
             << " " << setw(12) << timeIndices[index] + timeCorrection;
 
@@ -249,7 +251,7 @@ forAllConstIter(HashTable<DynamicList<label>>, cloudTimesUsed, cloudIter)
         count = 0;
         forAll(timesUsed, i)
         {
-            const label& index = timesUsed[i];
+            const label index = timesUsed[i];
             caseFile
                 << " " << setw(12) << timeIndices[index] + timeCorrection;
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.C b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.C
index 2c92bee9cc43b47aa3c0c017ed378fa37d996d2e..148aa4014532744730f5f2c5e279c8f4609f3c51 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.C
@@ -24,6 +24,7 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "ensightOutputFunctions.H"
+#include "ensightPTraits.H"
 
 #include "passiveParticle.H"
 #include "IOField.H"
@@ -171,11 +172,8 @@ void Foam::ensightLagrangianField
     // when writing positions
 
     ensightFile os(dataDir, postFileName, format);
-    os.write
-    (
-        // description
-        string(postFileName + " with " + pTraits<Type>::typeName + " values")
-    );
+    // description
+    os.write(string(postFileName + " <" + pTraits<Type>::typeName + ">"));
     os.newline();
 
     IOField<Type> field(fieldObject);
@@ -187,21 +185,20 @@ void Foam::ensightLagrangianField
     {
         Type val = field[i];
 
-        if (mag(val) < 1.0e-90)
+        if (mag(val) < 1e-90)
         {
             val = Zero;
         }
 
-        for (direction cmpt=0; cmpt < pTraits<Type>::nComponents; cmpt++)
+        for (direction d=0; d < pTraits<Type>::nComponents; ++d)
         {
-            os.write( component(val, cmpt) );
-        }
+            label cmpt = ensightPTraits<Type>::componentOrder[d];
+            os.write(component(val, cmpt));
 
-        count += pTraits<Type>::nComponents;
-
-        if (count % 6 == 0)
-        {
-            os.newline();
+            if (++count % 6 == 0)
+            {
+                os.newline();
+            }
         }
     }
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H
index 077490f1ecdaaa2116db06ced0bf4823aa0e4ec8..721ba05101adb48013b947fc89fb5fb52e2e4e2f 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H
@@ -8,7 +8,10 @@ HashTable<HashTable<word>> cloudFields;
 
 if (timeDirs.size())
 {
-    IOobjectList objs(mesh, timeDirs.last().name());
+    const fileName& cloudPrefix = regionPrefix/cloud::prefix;
+    const word& lastTimeName = timeDirs.last().name();
+
+    IOobjectList objs(mesh, lastTimeName);
 
     forAllConstIter(IOobjectList, objs, fieldIter)
     {
@@ -31,14 +34,17 @@ if (timeDirs.size())
     //
     // now check for lagrangian/<cloudName>
     //
-    fileNameList cloudDirs = readDir
-    (
-        runTime.path()
-      / timeDirs.last().name()
-      / regionPrefix
-      / cloud::prefix,
-        fileName::DIRECTORY
-    );
+    fileNameList cloudDirs;
+    if (!noLagrangian)
+    {
+        cloudDirs = readDir
+        (
+            runTime.path()
+          / lastTimeName
+          / cloudPrefix,
+            fileName::DIRECTORY
+        );
+    }
 
     forAll(cloudDirs, cloudI)
     {
@@ -54,8 +60,8 @@ if (timeDirs.size())
         IOobjectList objs
         (
             mesh,
-            timeDirs.last().name(),
-            cloud::prefix/cloudName
+            lastTimeName,
+            cloudPrefix/cloudName
         );
 
         bool hasPositions = false;
@@ -89,17 +95,27 @@ if (timeDirs.size())
     //
     for (label i=0; volumeFields.size() && i < timeDirs.size(); ++i)
     {
-        IOobjectList objs(mesh, timeDirs[i].name());
+        const word& timeName = timeDirs[i].name();
 
-        forAllIter(HashTable<word>, volumeFields, fieldIter)
-        {
-            const word& fieldName = fieldIter.key();
+        // Everything is potentially missing, unless we discover otherwise
+        wordHashSet missing(volumeFields);
 
-            if (!objs.found(fieldName))
-            {
-                volumeFields.erase(fieldIter);
-            }
+        // Avoid  -->>  IOobjectList objs(mesh, timeName);  <<--
+        // Too much overhead when done so frequently.
+
+        fileNameList contents = readDir
+        (
+            runTime.path()
+          / timeName,
+            fileName::FILE
+        );
+
+        forAll(contents, fileI)
+        {
+            missing.erase(contents[fileI].name());
         }
+
+        volumeFields.erase(missing);
     }
 }
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C
index fe9e6b0f929993c7eda868afbc7cda2087abd533..8c0bfb376a0f8879fd7c46fa1e3e5c0c3558ab43 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C
@@ -48,6 +48,13 @@ Usage
         Ignore the time index contained in the time file and use a
         simple indexing when creating the \c Ensight/data/######## files.
 
+      - \par -noLagrangian
+        Suppress writing lagrangian positions and fields.
+
+      - \par -index \<start\>
+        Ignore the time index contained in the time file and use a
+        simple indexing when creating the \c Ensight/data/######## files.
+
       - \par -noMesh
         Suppress writing the geometry. Can be useful for converting partial
         results for a static geometry.
@@ -83,8 +90,8 @@ using namespace Foam;
 
 int main(int argc, char *argv[])
 {
-    // enable -constant
-    // probably don't need -withZero though, since the fields are vetted
+    // Enable -constant
+    // Probably don't need -withZero though, since the fields are vetted
     // afterwards anyhow
     timeSelector::addOptions(true, false);
     argList::noParallel();
@@ -101,6 +108,11 @@ int main(int argc, char *argv[])
         "and use simple indexing when creating the files"
     );
     argList::addBoolOption
+    (
+        "noLagrangian",
+        "suppress writing lagrangian positions and fields"
+    );
+    argList::addBoolOption
     (
         "noMesh",
         "suppress writing the geometry. "
@@ -120,7 +132,7 @@ int main(int argc, char *argv[])
         "width of Ensight data subdir"
     );
 
-    // the volume field types that we handle
+    // The volume field types that we handle
     wordHashSet volFieldTypes;
     volFieldTypes.insert(volScalarField::typeName);
     volFieldTypes.insert(volVectorField::typeName);
@@ -128,7 +140,7 @@ int main(int argc, char *argv[])
     volFieldTypes.insert(volSymmTensorField::typeName);
     volFieldTypes.insert(volTensorField::typeName);
 
-    // the lagrangian field types that we handle
+    // The lagrangian field types that we handle
     wordHashSet cloudFieldTypes;
     cloudFieldTypes.insert(scalarIOField::typeName);
     cloudFieldTypes.insert(vectorIOField::typeName);
@@ -145,30 +157,32 @@ int main(int argc, char *argv[])
 
     #include "createTime.H"
 
-    // get times list
+    // Get times list
     instantList timeDirs = timeSelector::select0(runTime, args);
 
-    // default to binary output, unless otherwise specified
-    IOstream::streamFormat format = IOstream::BINARY;
-    if (args.optionFound("ascii"))
-    {
-        format = IOstream::ASCII;
-    }
+    // Default to binary output, unless otherwise specified
+    const IOstream::streamFormat format =
+    (
+        args.optionFound("ascii")
+      ? IOstream::ASCII
+      : IOstream::BINARY
+    );
 
-    // control for renumbering iterations
+    // Control for renumbering iterations
     label indexingNumber = 0;
-    bool optIndex = args.optionReadIfPresent("index", indexingNumber);
+    const bool optIndex = args.optionReadIfPresent("index", indexingNumber);
+    const bool noLagrangian = args.optionFound("noLagrangian");
 
-    // always write the geometry, unless the -noMesh option is specified
+    // Always write the geometry, unless the -noMesh option is specified
     bool optNoMesh = args.optionFound("noMesh");
 
-    // adjust output width
+    // Adjust output width
     if (args.optionFound("width"))
     {
         ensightFile::subDirWidth(args.optionRead<label>("width"));
     }
 
-    // define sub-directory name to use for Ensight data
+    // Define sub-directory name to use for Ensight data
     fileName ensightDir = "Ensight";
     args.optionReadIfPresent("name", ensightDir);
 
@@ -190,7 +204,7 @@ int main(int argc, char *argv[])
             << "    " << ensightDir << endl;
     }
 
-    // as per mkdir -p "Ensight/data"
+    // As per mkdir -p "Ensight/data"
     mkDir(ensightDir);
     mkDir(dataDir);
 
@@ -204,10 +218,15 @@ int main(int argc, char *argv[])
         regionPrefix = regionName;
     }
 
+    if (Pstream::master())
+    {
+        Info<< "Converting " << timeDirs.size() << " time steps" << endl;
+    }
+
     // Construct the list of ensight parts for the entire mesh
     ensightParts partsList(mesh);
 
-    // write summary information
+    // Write summary information
     {
         OFstream partsInfoFile(ensightDir/"partsInfo");
 
@@ -226,7 +245,7 @@ int main(int argc, char *argv[])
     }
 
 
-    // map times used
+    // Map times used
     Map<scalar>  timeIndices;
 
     // TODO: Track the time indices used by the geometry
@@ -244,6 +263,9 @@ int main(int argc, char *argv[])
         cloudTimesUsed.insert(cloudIter.key(), DynamicList<label>());
     }
 
+    Info<< "Startup in "
+        << timer.cpuTimeIncrement() << " s, "
+        << mem.update().size() << " kB" << nl << endl;
 
     forAll(timeDirs, timeI)
     {
@@ -251,15 +273,15 @@ int main(int argc, char *argv[])
 
         #include "getTimeIndex.H"
 
-        // remember the time index for the volume fields
+        // Remember the time index for the volume fields
         fieldTimesUsed.append(timeIndex);
 
-        // the data/ITER subdirectory must exist
+        // The data/ITER subdirectory must exist
         // Note that data/ITER is indeed a valid ensight::FileName
         const fileName subDir = ensightFile::subDir(timeIndex);
         mkDir(dataDir/subDir);
 
-        // place a timestamp in the directory for future reference
+        // Place a timestamp in the directory for future reference
         {
             OFstream timeStamp(dataDir/subDir/"time");
             timeStamp
@@ -280,7 +302,7 @@ int main(int argc, char *argv[])
             {
                 if (hasMovingMesh)
                 {
-                    // remember the time index for the geometry
+                    // Remember the time index for the geometry
                     geometryTimesUsed.append(timeIndex);
                 }
 
@@ -294,7 +316,7 @@ int main(int argc, char *argv[])
             }
         }
 
-        Info<< "write volume field (" << flush;
+        Info<< "Write volume field (" << flush;
 
         forAllConstIter(HashTable<word>, volumeFields, fieldIter)
         {
@@ -376,19 +398,13 @@ int main(int argc, char *argv[])
         }
         Info<< " )" << endl;
 
-        // check for clouds
+        // Check for clouds
         forAllConstIter(HashTable<HashTable<word>>, cloudFields, cloudIter)
         {
             const word& cloudName = cloudIter.key();
+            const fileName& cloudPrefix = regionPrefix/cloud::prefix;
 
-            if
-            (
-                !isDir
-                (
-                    runTime.timePath()/regionPrefix/
-                    cloud::prefix/cloudName
-                )
-            )
+            if (!isDir(runTime.timePath()/cloudPrefix/cloudName))
             {
                 continue;
             }
@@ -397,28 +413,25 @@ int main(int argc, char *argv[])
             (
                 mesh,
                 runTime.timeName(),
-                cloud::prefix/cloudName
+                cloudPrefix/cloudName
             );
 
-            // check that the positions field is present for this time
-            IOobject* positionPtr = cloudObjs.lookup(word("positions"));
-            if (positionPtr != nullptr)
-            {
-                ensightParticlePositions
-                (
-                    mesh,
-                    dataDir,
-                    subDir,
-                    cloudName,
-                    format
-                );
-            }
-            else
+            // Check that the positions field is present for this time
+            if (!cloudObjs.found("positions"))
             {
                 continue;
             }
 
-            Info<< "write " << cloudName << " (" << flush;
+            Info<< "Write " << cloudName << " ( positions" << flush;
+
+            ensightParticlePositions
+            (
+                mesh,
+                dataDir,
+                subDir,
+                cloudName,
+                format
+            );
 
             forAllConstIter(HashTable<word>, cloudIter(), fieldIter)
             {
@@ -430,7 +443,7 @@ int main(int argc, char *argv[])
                 if (!fieldObject)
                 {
                     Info<< "missing "
-                        << runTime.timeName()/cloud::prefix/cloudName
+                        << runTime.timeName()/cloudPrefix/cloudName
                         / fieldName
                         << endl;
                     continue;
@@ -476,7 +489,7 @@ int main(int argc, char *argv[])
 
             Info<< " )" << endl;
 
-            // remember the time index
+            // Remember the time index
             cloudTimesUsed[cloudName].append(timeIndex);
         }
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H
index 2b253640999bbe0beac0fb43644a12dd4d2918d3..9d8e93dcd145b3c37eca3ed4aa16b06646d3dce3 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H
@@ -39,5 +39,5 @@
     }
 
     timeIndices.insert(timeIndex, timeDirs[timeI].value());
-    Info<< "\nTime [" << timeIndex << "] = " << runTime.timeName() << nl;
+    Info<< nl << "Time [" << timeIndex << "] = " << runTime.timeName() << nl;
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H
index f8fe3458221252b45d1f59b6103a092a5d183864..03a76e5856d3d7f9a961912ed3c1b67c0a392216 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H
@@ -79,7 +79,7 @@ for (label i=0; i < nTypes; i++)
             )
         )
         {
-            Cloud<passiveParticle> particles(mesh);
+            Cloud<passiveParticle> particles(mesh, cloud::defaultName);
 
             IOobjectList objects(mesh, runTime.timeName(), cloud::prefix);
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/findClouds.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/findClouds.H
new file mode 100644
index 0000000000000000000000000000000000000000..5637f22498178629899f549496af145f5811f099
--- /dev/null
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/findClouds.H
@@ -0,0 +1,71 @@
+// check all time directories for the following:
+
+// Any cloud names:
+HashSet<fileName> allCloudDirs;
+
+if (timeDirs.size() && !noLagrangian)
+{
+    const fileName& baseDir = mesh.time().path();
+    const fileName& cloudPrefix = regionPrefix/cloud::prefix;
+
+    Info<< "Searching for lagrangian ... " << flush;
+
+    forAll(timeDirs, timeI)
+    {
+        const word& timeName = timeDirs[timeI].name();
+
+        // DO NOT USE -->>  runTime.setTime(timeDirs[timeI], timeI);  <<--
+        // It incurs a large overhead when done so frequently.
+
+        fileNameList cloudDirs = readDir
+        (
+            baseDir/timeName/cloudPrefix,
+            fileName::DIRECTORY
+        );
+
+        forAll(cloudDirs, cloudI)
+        {
+            const word& cloudName = cloudDirs[cloudI];
+
+            IOobjectList cloudObjs
+            (
+                mesh,
+                timeName,
+                cloudPrefix/cloudName
+            );
+
+            // clouds always require "positions"
+            if (cloudObjs.found("positions"))
+            {
+                if (allCloudDirs.insert(cloudName))
+                {
+                    Info<< "At time: " << timeName
+                        << " detected cloud directory : " << cloudName
+                        << endl;
+                }
+            }
+        }
+    }
+
+    if (allCloudDirs.empty())
+    {
+        Info<< "none detected." << endl;
+    }
+}
+
+// sorted list of cloud names
+const fileNameList cloudNames(allCloudDirs.sortedToc());
+
+if (cloudNames.size())
+{
+    // complete the echo information
+    Info<< "(";
+    forAll(cloudNames, cloudNo)
+    {
+        Info<< ' ' << cloudNames[cloudNo];
+    }
+    Info<< " ) " << endl;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
index c699c0ef0369549760153d68151034368b02b1db..4e42b5afbfaa25c7e4275541de7c96e959aad0f7 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
@@ -72,6 +72,9 @@ Usage
       - \par -noInternal
         Do not generate file for mesh, only for patches
 
+      - \par -noLagrangian
+        Suppress writing lagrangian positions and fields.
+
       - \par -noPointValues
         No pointFields
 
@@ -291,6 +294,12 @@ int main(int argc, char *argv[])
         "noInternal",
         "do not generate file for mesh, only for patches"
     );
+    argList::addBoolOption
+    (
+        "noLagrangian",
+        "suppress writing lagrangian positions and fields"
+    );
+
     argList::addBoolOption
     (
         "noPointValues",
@@ -337,6 +346,7 @@ int main(int argc, char *argv[])
     const bool doLinks         = !args.optionFound("noLinks");
     bool binary                = !args.optionFound("ascii");
     const bool useTimeName     = args.optionFound("useTimeName");
+    const bool noLagrangian    = args.optionFound("noLagrangian");
 
     // Decomposition of polyhedral cells into tets/pyramids cells
     vtkTopo::decomposePoly     = !args.optionFound("poly");
@@ -409,8 +419,7 @@ int main(int argc, char *argv[])
     fileName fvPath(runTime.path()/"VTK");
 
     // Directory of mesh (region0 gets filtered out)
-    fileName regionPrefix = "";
-
+    fileName regionPrefix;
     if (regionName != polyMesh::defaultRegion)
     {
         fvPath = fvPath/regionName;
@@ -448,43 +457,7 @@ int main(int argc, char *argv[])
         << timer.cpuTimeIncrement() << " s, "
         << mem.update().size() << " kB" << endl;
 
-
-    // Scan for all possible lagrangian clouds
-    HashSet<fileName> allCloudDirs;
-    forAll(timeDirs, timeI)
-    {
-        runTime.setTime(timeDirs[timeI], timeI);
-        fileNameList cloudDirs
-        (
-            readDir
-            (
-                runTime.timePath()/regionPrefix/cloud::prefix,
-                fileName::DIRECTORY
-            )
-        );
-        forAll(cloudDirs, i)
-        {
-            IOobjectList sprayObjs
-            (
-                mesh,
-                runTime.timeName(),
-                cloud::prefix/cloudDirs[i]
-            );
-
-            IOobject* positionsPtr = sprayObjs.lookup(word("positions"));
-
-            if (positionsPtr)
-            {
-                if (allCloudDirs.insert(cloudDirs[i]))
-                {
-                    Info<< "At time: " << runTime.timeName()
-                        << " detected cloud directory : " << cloudDirs[i]
-                        << endl;
-                }
-            }
-        }
-    }
-
+    #include "findClouds.H"
 
     forAll(timeDirs, timeI)
     {
@@ -492,7 +465,7 @@ int main(int argc, char *argv[])
 
         Info<< "Time: " << runTime.timeName() << endl;
 
-        word timeDesc =
+        const word timeDesc =
             useTimeName ? runTime.timeName() : Foam::name(runTime.timeIndex());
 
         // Check for new polyMesh/ and update mesh, fvMeshSubset and cell
@@ -664,7 +637,7 @@ int main(int argc, char *argv[])
               + dtf.size();
 
 
-        // Construct pointMesh only if nessecary since constructs edge
+        // Construct pointMesh only if necessary since constructs edge
         // addressing (expensive on polyhedral meshes)
         if (noPointValues)
         {
@@ -1152,9 +1125,9 @@ int main(int argc, char *argv[])
         //
         //---------------------------------------------------------------------
 
-        forAllConstIter(HashSet<fileName>, allCloudDirs, iter)
+        forAll(cloudNames, cloudNo)
         {
-            const fileName& cloudName = iter.key();
+            const fileName& cloudName = cloudNames[cloudNo];
 
             // Always create the cloud directory.
             mkDir(fvPath/cloud::prefix/cloudName);
@@ -1175,9 +1148,7 @@ int main(int argc, char *argv[])
                 cloud::prefix/cloudName
             );
 
-            IOobject* positionsPtr = sprayObjs.lookup(word("positions"));
-
-            if (positionsPtr)
+            if (sprayObjs.found("positions"))
             {
                 wordList labelNames(sprayObjs.names(labelIOField::typeName));
                 Info<< "        labels            :";
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/Allwmake b/applications/utilities/postProcessing/graphics/PV3Readers/Allwmake
index 3b7a2e37ef4445bfda33ba73e68ace2bfabaa2f9..883ad4f135a8af5b46293e97f62e34b146040479 100755
--- a/applications/utilities/postProcessing/graphics/PV3Readers/Allwmake
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/Allwmake
@@ -41,31 +41,25 @@ canBuildPlugin()
 
 
 # -----------------------------------------------------------------------------
+# major version as per paraview include directory:
+# Eg, "PREFIX/include/paraview-3.4" -> "3.4"
+major="${ParaView_INCLUDE_DIR##*-}"
 
-case "$ParaView_VERSION" in
-3*)
+case "$major" in
+3.[0-9]*)
     if canBuildPlugin
     then
-        [ -n "$PV_PLUGIN_PATH" ] || {
-            echo "$0 : PV_PLUGIN_PATH not valid - it is unset"
-            exit 1
-        }
-
-        # Ensure CMake gets the correct C/C++ compilers
-        [ -n "$WM_CC" ] && export CC="$WM_CC"
-        [ -n "$WM_CXX" ] && export CXX="$WM_CXX"
-
+    (
         wmake $targetType vtkPV3Readers
-        PV3blockMeshReader/Allwmake $targetType $*
-        PV3FoamReader/Allwmake $targetType $*
-    else
-        echo "ERROR: ParaView not found in $ParaView_DIR"
+        PV3blockMeshReader/Allwmake $*
+        PV3FoamReader/Allwmake $*
+    )
     fi
     ;;
 *)
     echo
     echo "NOTE: skipping build of ParaView V3 plugin(s)"
-    echo "    different version: ParaView_VERSION=$ParaView_VERSION"
+    echo "    include directory was for paraview major version '${major:-none}'"
     echo
     ;;
 esac
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/Allwmake b/applications/utilities/postProcessing/graphics/PVReaders/Allwmake
index 92fd94701d78ff97a5199aa1503fe4d60d087cb7..ebe8498e5dbe8d70d6e2764b50e57c348cbd5ade 100755
--- a/applications/utilities/postProcessing/graphics/PVReaders/Allwmake
+++ b/applications/utilities/postProcessing/graphics/PVReaders/Allwmake
@@ -42,37 +42,31 @@ canBuildPlugin()
 
 # -----------------------------------------------------------------------------
 
-case "$ParaView_VERSION" in
-4* | 5*)
+# major version as per paraview include directory:
+# Eg, "PREFIX/include/paraview-5.0" -> "5.0"
+major="${ParaView_INCLUDE_DIR##*-}"
+
+case "$major" in
+[45].[0-9]*)
     if canBuildPlugin
     then
-        [ -n "$PV_PLUGIN_PATH" ] || {
-            echo "$0 : PV_PLUGIN_PATH not valid - it is unset"
-            exit 1
-        }
-
-        # ensure CMake gets the correct C/C++ compilers
-        [ -n "$WM_CC" ] && export CC="$WM_CC"
-        [ -n "$WM_CXX" ] && export CXX="$WM_CXX"
-
+    (
         wmake $targetType vtkPVReaders
-        PVblockMeshReader/Allwmake $targetType $*
-        PVFoamReader/Allwmake $targetType $*
+        PVblockMeshReader/Allwmake $*
+        PVFoamReader/Allwmake $*
 
         # Dummy directory to trigger proper 'wclean all' behaviour
         # - the Allwclean will otherwise not be used
         mkdir -p Make
-    else
-        echo "ERROR: ParaView not found in $ParaView_DIR"
+    )
     fi
     ;;
 *)
     echo
     echo "NOTE: skipping build of ParaView plugin(s)"
-    echo "    different version: ParaView_VERSION=$ParaView_VERSION"
+    echo "    include directory was for paraview major version '${major:-none}'"
     echo
     ;;
 esac
 
-
 #------------------------------------------------------------------------------
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_maxsize_info.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_maxsize_info.H
index ca2033453e789f42c4a4625bc1c52746bf1b113b..aab4c0c90345adea610aa9e5e83059a4c1cb0f38 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_maxsize_info.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_maxsize_info.H
@@ -73,7 +73,7 @@ int USERD_get_maxsize_info
         {
             // Get the maximum number of spray parcels
             // and store it
-            Cloud<passiveParticle> lagrangian(*meshPtr);
+            Cloud<passiveParticle> lagrangian(*meshPtr, cloud::defaultName);
 
             if (lagrangian.size() > nMaxParcels)
             {
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H
index 7110e2431c5b16ae3693378b9b1b466f24b9efcc..6c58a72c0978045c4cb2cabd3f14c9d13220d175 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H
@@ -151,7 +151,7 @@ int USERD_set_filenames
     {
         runTime.setTime(timeDirs[n+1], n+1);
 
-        Cloud<passiveParticle> lagrangian(*meshPtr);
+        Cloud<passiveParticle> lagrangian(*meshPtr, cloud::defaultName);
 
         n++;
         if (lagrangian.size())
@@ -177,7 +177,7 @@ int USERD_set_filenames
 
         delete sprayPtr;
 
-        sprayPtr = new Cloud<passiveParticle>(*meshPtr);
+        sprayPtr = new Cloud<passiveParticle>(*meshPtr, cloud::defaultName);
 
         IOobjectList objects(*meshPtr, runTime.timeName(), cloud::prefix);
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_time_set_and_step.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_time_set_and_step.H
index 5459f67ba6b71e6e02ad04571aa2ba148050e92f..7bc4ba1c5c4bb6175b9ad8aade7af247111bfde8 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_time_set_and_step.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_time_set_and_step.H
@@ -49,9 +49,7 @@ void USERD_set_time_set_and_step
         if (Numparts_available > nPatches+1)
         {
             delete sprayPtr;
-            sprayPtr = new Cloud<passiveParticle>(*meshPtr);
+            sprayPtr = new Cloud<passiveParticle>(*meshPtr, cloud::defaultName);
         }
     }
 }
-
-
diff --git a/applications/utilities/preProcessing/mapFields/createTimes.H b/applications/utilities/preProcessing/mapFields/createTimes.H
index 91e6a349aec8a23b44f898603aedec5e93e1a07c..bcac99a3ae591d2ca084ef8ac5feef2897b31365 100644
--- a/applications/utilities/preProcessing/mapFields/createTimes.H
+++ b/applications/utilities/preProcessing/mapFields/createTimes.H
@@ -1,11 +1,17 @@
     Info<< "\nCreate databases as time" << endl;
 
+    const auto caseDirOrig = getEnv("FOAM_CASE");
+    const auto caseNameOrig = getEnv("FOAM_CASE_NAME");
+    setEnv("FOAM_CASE", rootDirSource/caseDirSource, true);
+    setEnv("FOAM_CASE_NAME", caseDirSource, true);
     Time runTimeSource
     (
         Time::controlDictName,
         rootDirSource,
         caseDirSource
     );
+    setEnv("FOAM_CASE", caseDirOrig, true);
+    setEnv("FOAM_CASE_NAME", caseNameOrig, true);
 
     Time runTimeTarget
     (
diff --git a/applications/utilities/preProcessing/mapFields/mapFields.C b/applications/utilities/preProcessing/mapFields/mapFields.C
index 7c021c965793deab17a3155dcb646493625af8d2..106f1b2bc2ee3e6952a249be1886412252e4c2ca 100644
--- a/applications/utilities/preProcessing/mapFields/mapFields.C
+++ b/applications/utilities/preProcessing/mapFields/mapFields.C
@@ -292,8 +292,8 @@ int main(int argc, char *argv[])
     fileName rootDirTarget(args.rootPath());
     fileName caseDirTarget(args.globalCaseName());
 
-    const fileName casePath = args[1];
-    const fileName rootDirSource = casePath.path();
+    fileName casePath = args[1];
+    const fileName rootDirSource = casePath.path().toAbsolute();
     const fileName caseDirSource = casePath.name();
 
     Info<< "Source: " << rootDirSource << " " << caseDirSource << endl;
diff --git a/applications/utilities/surface/surfaceCheck/surfaceCheck.C b/applications/utilities/surface/surfaceCheck/surfaceCheck.C
index bbe1c8c7c28f10bbac5bfb7b6875020e183557c6..e1aca6c42d99699ee5358be0ffd08bf0e90fbd7c 100644
--- a/applications/utilities/surface/surfaceCheck/surfaceCheck.C
+++ b/applications/utilities/surface/surfaceCheck/surfaceCheck.C
@@ -30,6 +30,26 @@ Group
 Description
     Checks geometric and topological quality of a surface.
 
+Usage
+    - surfaceCheck surfaceFile [OPTION]
+
+    \param -checkSelfIntersection \n
+    Check for self-intersection.
+
+    \param -splitNonManifold \n
+    Split surface along non-manifold edges.
+
+    \param -verbose \n
+    Extra verbosity.
+
+    \param -blockMesh \n
+    Write vertices/blocks for tight-fitting 1 cell blockMeshDict.
+
+    \param -outputThreshold \<num files\> \n
+    Specifies upper limit for the number of files written. This is useful to
+    prevent surfaces with lots of disconnected parts to write lots of files.
+    Default is 10. A special case is 0 which prevents writing any files.
+
 \*---------------------------------------------------------------------------*/
 
 #include "triangle.H"
@@ -356,6 +376,8 @@ int main(int argc, char *argv[])
     const bool checkSelfIntersect = args.optionFound("checkSelfIntersection");
     const bool verbose = args.optionFound("verbose");
     const bool splitNonManifold = args.optionFound("splitNonManifold");
+    label outputThreshold = 10;
+    args.optionReadIfPresent("outputThreshold", outputThreshold);
 
     Info<< "Reading surface from " << surfFileName << " ..." << nl << endl;
 
@@ -465,10 +487,14 @@ int main(int argc, char *argv[])
             Info<< "Surface has " << illegalFaces.size()
                 << " illegal triangles." << endl;
 
-            OFstream str("illegalFaces");
-            Info<< "Dumping conflicting face labels to " << str.name() << endl
-                << "Paste this into the input for surfaceSubset" << endl;
-            str << illegalFaces;
+            if (outputThreshold > 0)
+            {
+                OFstream str("illegalFaces");
+                Info<< "Dumping conflicting face labels to " << str.name()
+                    << endl
+                    << "Paste this into the input for surfaceSubset" << endl;
+                str << illegalFaces;
+            }
         }
         else
         {
@@ -543,6 +569,7 @@ int main(int argc, char *argv[])
         }
 
         // Dump for subsetting
+        if (outputThreshold > 0)
         {
             DynamicList<label> problemFaces(surf.size()/100+1);
 
@@ -723,12 +750,15 @@ int main(int argc, char *argv[])
 
         Info<< "Conflicting face labels:" << problemFaces.size() << endl;
 
-        OFstream str("problemFaces");
+        if (outputThreshold > 0)
+        {
+            OFstream str("problemFaces");
 
-        Info<< "Dumping conflicting face labels to " << str.name() << endl
-            << "Paste this into the input for surfaceSubset" << endl;
+            Info<< "Dumping conflicting face labels to " << str.name() << endl
+                << "Paste this into the input for surfaceSubset" << endl;
 
-        str << problemFaces;
+            str << problemFaces;
+        }
     }
     else
     {
@@ -760,7 +790,7 @@ int main(int argc, char *argv[])
 
         Info<< "Number of unconnected parts : " << numZones << endl;
 
-        if (numZones > 1)
+        if (numZones > 1 && outputThreshold > 0)
         {
             Info<< "Splitting surface into parts ..." << endl << endl;
 
@@ -768,7 +798,7 @@ int main(int argc, char *argv[])
             writeParts
             (
                 surf,
-                numZones,
+                min(outputThreshold, numZones),
                 faceZone,
                 surfFilePath,
                 surfFileNameBase
@@ -808,15 +838,26 @@ int main(int argc, char *argv[])
     if (numNormalZones > 1)
     {
         Info<< "More than one normal orientation." << endl;
-        writeZoning(surf, normalZone, "normal", surfFilePath, surfFileNameBase);
-        writeParts
-        (
-            surf,
-            numNormalZones,
-            normalZone,
-            surfFilePath,
-            surfFileNameBase + "_normal"
-        );
+
+        if (outputThreshold > 0)
+        {
+            writeZoning
+            (
+                surf,
+                normalZone,
+                "normal",
+                surfFilePath,
+                surfFileNameBase
+            );
+            writeParts
+            (
+                surf,
+                min(outputThreshold, numNormalZones),
+                normalZone,
+                surfFilePath,
+                surfFileNameBase + "_normal"
+            );
+        }
     }
     Info<< endl;
 
@@ -833,7 +874,11 @@ int main(int argc, char *argv[])
 
         const indexedOctree<treeDataTriSurface>& tree = querySurf.tree();
 
-        OBJstream intStream("selfInterPoints.obj");
+        autoPtr<OBJstream> intStreamPtr;
+        if (outputThreshold > 0)
+        {
+            intStreamPtr.reset(new OBJstream("selfInterPoints.obj"));
+        }
 
         label nInt = 0;
 
@@ -855,9 +900,9 @@ int main(int argc, char *argv[])
                 )
             );
 
-            if (hitInfo.hit())
+            if (hitInfo.hit() && intStreamPtr.valid())
             {
-                intStream.write(hitInfo.hitPoint());
+                intStreamPtr().write(hitInfo.hitPoint());
                 nInt++;
             }
         }
@@ -870,36 +915,13 @@ int main(int argc, char *argv[])
         {
             Info<< "Surface is self-intersecting at " << nInt
                 << " locations." << endl;
-            Info<< "Writing intersection points to " << intStream.name()
-                << endl;
-        }
 
-        //surfaceIntersection inter(querySurf);
-        //
-        //if (inter.cutEdges().empty() && inter.cutPoints().empty())
-        //{
-        //    Info<< "Surface is not self-intersecting" << endl;
-        //}
-        //else
-        //{
-        //    Info<< "Surface is self-intersecting" << endl;
-        //    Info<< "Writing edges of intersection to selfInter.obj" << endl;
-        //
-        //    OFstream intStream("selfInter.obj");
-        //    forAll(inter.cutPoints(), cutPointi)
-        //    {
-        //        const point& pt = inter.cutPoints()[cutPointi];
-        //
-        //        intStream << "v " << pt.x() << ' ' << pt.y() << ' ' << pt.z()
-        //            << endl;
-        //    }
-        //    forAll(inter.cutEdges(), cutEdgei)
-        //    {
-        //        const edge& e = inter.cutEdges()[cutEdgei];
-        //
-        //        intStream << "l " << e.start()+1 << ' ' << e.end()+1 << endl;
-        //    }
-        //}
+            if (intStreamPtr.valid())
+            {
+                Info<< "Writing intersection points to "
+                    << intStreamPtr().name() << endl;
+            }
+        }
         Info<< endl;
     }
 
diff --git a/applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C b/applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C
index dc0b779fe1a37ca0d5ac130f0320a7773ce85d48..056f513bafddaa3f43d4d57a298c64e499028b53 100644
--- a/applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C
+++ b/applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C
@@ -36,25 +36,25 @@ Usage
     \b surfaceMeshImport inputFile [OPTION]
 
     Options:
-      - \par -clean \n
+      - \par -clean
         Perform some surface checking/cleanup on the input surface.
 
-      - \par -name \<name\> \n
+      - \par -name \<name\>
         Specify an alternative surface name when writing.
 
-      - \par -scaleIn \<scale\> \n
+      - \par -scaleIn \<scale\>
         Specify a scaling factor when reading files.
 
-      - \par -scaleOut \<scale\> \n
+      - \par -scaleOut \<scale\>
         Specify a scaling factor when writing files.
 
-      - \par -dict \<dictionary\> \n
+      - \par -dict \<dictionary\>
         Specify an alternative dictionary for constant/coordinateSystems.
 
-      - \par -from \<coordinateSystem\> \n
+      - \par -from \<coordinateSystem\>
         Specify a coordinate system when reading files.
 
-      - \par -to \<coordinateSystem\> \n
+      - \par -to \<coordinateSystem\>
         Specify a coordinate system when writing files.
 
 Note
diff --git a/bin/foamEtcFile b/bin/foamEtcFile
index 4deb76e192b9c4d5de993e66b0cdfa7f25d8916f..3d3d01864e44a54226e305c8546e67f7445b623f 100755
--- a/bin/foamEtcFile
+++ b/bin/foamEtcFile
@@ -103,7 +103,7 @@ OpenFOAM-*)         # standard naming convention OpenFOAM-<VERSION>
     version="${projectDirName##OpenFOAM-}"
     ;;
 
-openfoam[0-9]* | openfoamdev)     # debian naming convention 'openfoam<VERSION>'
+openfoam[0-9]* | openfoam-dev)     # debian naming convention 'openfoam<VERSION>'
     versionNum="${projectDirName##openfoam}"
     case "$versionNum" in
     ??)         # convert 2 digit version number to decimal delineated
diff --git a/bin/tools/pre-commit-hook b/bin/tools/pre-commit-hook
index d3bf374e04a65a21c518265685ef679ec98620c2..b4f847d15f974db2da1e15611fe73233d270f6b1 100755
--- a/bin/tools/pre-commit-hook
+++ b/bin/tools/pre-commit-hook
@@ -3,8 +3,8 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
-#    \\/     M anipulation  |
+#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+#    \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
@@ -48,11 +48,14 @@
 #     test the specified files/directories for standards conformance.
 #
 #------------------------------------------------------------------------------
+
 hookName="pre-commit"
+headerSeparator="-----------------------------------"
+
 die()
 {
     echo "$hookName hook failure" 1>&2
-    echo '-----------------------------------' 1>&2
+    echo $headerSeparator 1>&2
     echo '' 1>&2
     echo "$@" 1>&2
     echo '' 1>&2
@@ -105,7 +108,7 @@ dieOnBadFiles()
     if [ -n "$badFiles" ]
     then
         echo "$hookName hook failure" 1>&2
-        echo '-----------------------------------' 1>&2
+        echo $headerSeparator 1>&2
         echo "$@" 1>&2
         echo '' 1>&2
         echo "File(s):" 1>&2
@@ -267,6 +270,49 @@ checkLineLengthNonDirective()
 }
 
 
+#
+# check for non-standard code patterns
+#
+checkNonStandardCodePatterns()
+{
+    echo "$hookName: checking for non-standard code ..." 1>&2
+
+    scope=$(gitScope $@)
+
+    badFiles=$(
+    for f in $fileList
+    do
+        # limit to *.[CH] files
+        case "$f" in
+        (*.[CH])
+            # Directly report the incorrect markers
+            git grep -n --color \
+                -e '> >' -e '\bNULL\b' \
+                $scope"$f"
+        ;;
+        esac
+    done
+    )
+
+    dieOnBadFiles "$(cat<<MESSAGE
+Please revise the files reported below for the following non-standard code:
+
+  1. Spaced ending of multi-level template parameters are not allowed, such as:
+
+      List<List<scalar> >
+
+    which instead should be:
+
+      List<List<scalar>>
+
+  2. The use of the 'NULL' macro should be replaced by 'nullptr'
+
+$headerSeparator
+MESSAGE
+    )"
+}
+
+
 #
 # check that OpenFOAM Foundation copyright is current
 #
@@ -278,27 +324,27 @@ checkCopyright()
     badFiles=$(
     for f in $fileList
     do
-        startYear=`grep "Copyright.*OpenFOAM" $f | sed 's/[^0-9]*\([0-9]*\).*/\1/g'`
-        endYear=`grep "Copyright.*-.*OpenFOAM" $f | sed 's/[^-]*-\([0-9]*\).*/\1/g'`
+        startYear=`grep "Copyright.*OpenCFD" $f | sed 's/[^0-9]*\([0-9]*\).*/\1/g'`
+        endYear=`grep "Copyright.*-.*OpenCFD" $f | sed 's/[^-]*-\([0-9]*\).*/\1/g'`
         #echo "startYear=$startYear endYear=$endYear"
         if [ "$startYear" != "" ]
         then
             if [ "$endYear" != "" ]
             then
-                # Date is of type 2011-2012 OpenFOAM Foundation
+                # Date is of type 2011-2012 OpenCFD Ltd.
                 if [ "$year" != "$endYear" ]
                 then
                     echo "Updated copyright for: $f" 1>&2
                     echo "$f"
-                    sed -i -e "s/$startYear-$endYear OpenFOAM/$startYear-$year OpenFOAM/g" $f
+                    sed -i -e "s/$startYear-$endYear OpenCFD/$startYear-$year OpenCFD/g" $f
                 fi
             else
-                # Date is of type 2011 OpenFOAM Foundation
+                # Date is of type 2011 OpenCFD Ltd.
                 if [ "$year" != "$startYear" ]
                 then
                     echo "$f"
                     echo "Updated copyright for: $f" 1>&2
-                    sed -i -e "s/$startYear OpenFOAM/$startYear-$year OpenFOAM/g" $f
+                    sed -i -e "s/$startYear OpenCFD/$startYear-$year OpenCFD/g" $f
                 fi
             fi
         fi
@@ -322,6 +368,9 @@ checkIllegalCode
 # ensure code conforms to 80 columns max
 checkLineLengthNonDirective
 
+# check for non-standard code patterns
+checkNonStandardCodePatterns
+
 checkCopyright
 
 exit 0
diff --git a/doc/codingStyleGuide.org b/doc/codingStyleGuide.org
index b3a80ede2cd312277c79f5a1f183eec1b3286aae..3cde03d85da57228690ffb68dfceccb69b0702e3 100644
--- a/doc/codingStyleGuide.org
+++ b/doc/codingStyleGuide.org
@@ -3,7 +3,7 @@
 #+TITLE:                 OpenFOAM C++ Style Guide
 #+AUTHOR:                  OpenFOAM Foundation
 #+DATE:                         2011-2016
-#+LINK:                    http://OpenFOAM.org
+#+LINK:                    http://OpenFOAM.com
 #+OPTIONS: author:nil ^:{}
 #+STARTUP: hidestars
 #+STARTUP: odd
diff --git a/etc/bashrc b/etc/bashrc
index 81bf28feaf927b59acf4f05dcc5653cd38f2b382..fad4f475ae99e120bb4de77ce30e1763ccc83f02 100644
--- a/etc/bashrc
+++ b/etc/bashrc
@@ -57,7 +57,7 @@ export FOAM_INST_DIR=$HOME/$WM_PROJECT
 # $FOAM_INST_DIR/site/$WM_PROJECT_VERSION or $FOAM_INST_DIR/site
 
 #- Compiler location:
-#    WM_COMPILER_TYPE= system | ThirdParty (OpenFOAM)
+#    WM_COMPILER_TYPE= system | ThirdParty
 export WM_COMPILER_TYPE=system
 
 #- Compiler:
@@ -173,10 +173,7 @@ _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/paraview`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/ensight`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/gperftools`
 
-if [ ! -z "$FOAMY_HEX_MESH" ]
-then
-    _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL`
-fi
+_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/FFTW`
 
diff --git a/etc/caseDicts/createZeroDirectoryTemplates/boundaryConditions/fluid/buoyant/wallOptions b/etc/caseDicts/createZeroDirectoryTemplates/boundaryConditions/fluid/buoyant/wallOptions
index bba8feecfbaaf812a1804ed8316d9a80dc683e6a..df68b121e782788dfd15c7f734c3af09b9d715a4 100644
--- a/etc/caseDicts/createZeroDirectoryTemplates/boundaryConditions/fluid/buoyant/wallOptions
+++ b/etc/caseDicts/createZeroDirectoryTemplates/boundaryConditions/fluid/buoyant/wallOptions
@@ -43,8 +43,8 @@ heatTransfer
             type        compressible::turbulentTemperatureCoupledBaffleMixed;
             value       ${:VALUE.T};
             Tnbr        T;
-            kappa       fluidThermo;
-            kappaName   none;
+            kappaMethod fluidThermo;
+            kappa       none;
         }
     }
 }
diff --git a/etc/caseDicts/createZeroDirectoryTemplates/boundaryConditions/fluid/compressible/wallOptions b/etc/caseDicts/createZeroDirectoryTemplates/boundaryConditions/fluid/compressible/wallOptions
index 81450fc91f1d206afd32344069071963fb061f60..fd2a703afab10ba8591f1ff1795df1effb1a17ca 100644
--- a/etc/caseDicts/createZeroDirectoryTemplates/boundaryConditions/fluid/compressible/wallOptions
+++ b/etc/caseDicts/createZeroDirectoryTemplates/boundaryConditions/fluid/compressible/wallOptions
@@ -60,8 +60,8 @@ heatTransfer
             type        compressible::turbulentTemperatureCoupledBaffleMixed;
             value       ${:VALUE.T};
             Tnbr        T;
-            kappa       fluidThermo;
-            kappaName   none;
+            kappaMethod fluidThermo;
+            kappa       none;
         }
     }
 }
diff --git a/etc/caseDicts/createZeroDirectoryTemplates/boundaryConditions/solid/wallOptions b/etc/caseDicts/createZeroDirectoryTemplates/boundaryConditions/solid/wallOptions
index 9ea2973bff4e4d2eac255f25ae164724f6806de9..e1fed46905d76331c3da4120bb3c4f855a18982f 100644
--- a/etc/caseDicts/createZeroDirectoryTemplates/boundaryConditions/solid/wallOptions
+++ b/etc/caseDicts/createZeroDirectoryTemplates/boundaryConditions/solid/wallOptions
@@ -39,8 +39,8 @@ heatTransfer
             type        compressible::turbulentTemperatureCoupledBaffleMixed;
             value       ${:VALUE.T};
             Tnbr        T;
-            kappa       solidThermo;
-            kappaName   none;
+            kappaMethod solidThermo;
+            kappa       none;
         }
     }
 }
diff --git a/etc/caseDicts/postProcessing/fields/CourantNo b/etc/caseDicts/postProcessing/fields/CourantNo
index 4204ba83df6c87ba5df3112b67e70c10bdba5c0a..b787de8881ebdebe8c6db3d1f591b9786ae924e3 100644
--- a/etc/caseDicts/postProcessing/fields/CourantNo
+++ b/etc/caseDicts/postProcessing/fields/CourantNo
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/MachNo b/etc/caseDicts/postProcessing/fields/MachNo
index ca02b41d6deb7c42812b843706013bcbae03f54e..624f9146020870a0a97d82f71f70b11c44daa361 100644
--- a/etc/caseDicts/postProcessing/fields/MachNo
+++ b/etc/caseDicts/postProcessing/fields/MachNo
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/PecletNo b/etc/caseDicts/postProcessing/fields/PecletNo
index 4db8558e33d766e85f0fc7540c1a869e785ed924..49aeeed4c97cde0c74dd5feda19c1225a1d7aab8 100644
--- a/etc/caseDicts/postProcessing/fields/PecletNo
+++ b/etc/caseDicts/postProcessing/fields/PecletNo
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/R b/etc/caseDicts/postProcessing/fields/R
index c85005ddc5fd71b30c2985660e7496548a7ad4e3..bb3cb05bdbb4c17f96c63b5e3c4bb1ae0fe30045 100644
--- a/etc/caseDicts/postProcessing/fields/R
+++ b/etc/caseDicts/postProcessing/fields/R
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/XiReactionRate b/etc/caseDicts/postProcessing/fields/XiReactionRate
index 7013a0d9e06a25c3d68049a8bf401654fe1d560e..19f978d7dfd0e396cad916b700c14a0b581ad919 100644
--- a/etc/caseDicts/postProcessing/fields/XiReactionRate
+++ b/etc/caseDicts/postProcessing/fields/XiReactionRate
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/components b/etc/caseDicts/postProcessing/fields/components
index e6ee7372ae9f6804d41d4a413aafd77d61f07fa7..3098e00898adc5ab82d34c98f9cc00c800cb01ee 100644
--- a/etc/caseDicts/postProcessing/fields/components
+++ b/etc/caseDicts/postProcessing/fields/components
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/div b/etc/caseDicts/postProcessing/fields/div
index c13a9e694df3c1ed5f02cc4464ef65e11c403342..450a8ff987748e8653fff73885e4c13f62095820 100644
--- a/etc/caseDicts/postProcessing/fields/div
+++ b/etc/caseDicts/postProcessing/fields/div
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/enstrophy b/etc/caseDicts/postProcessing/fields/enstrophy
index 2693f08d73b7edeeac7131e5bc6006279fb7b2e2..7a7fc19aa140ef26900aac76dba1c722e7add826 100644
--- a/etc/caseDicts/postProcessing/fields/enstrophy
+++ b/etc/caseDicts/postProcessing/fields/enstrophy
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/flowType b/etc/caseDicts/postProcessing/fields/flowType
index a242afb181840ddc4bc10735b9d6b44afd72f92b..44253d510bfdf827b7cd8c57a1d98ea171e50a05 100644
--- a/etc/caseDicts/postProcessing/fields/flowType
+++ b/etc/caseDicts/postProcessing/fields/flowType
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/grad b/etc/caseDicts/postProcessing/fields/grad
index 9e3dab749b4725a511857b94095fa24498384053..64c2b278f71a171773caebc04cc43e7c4c42bbc4 100644
--- a/etc/caseDicts/postProcessing/fields/grad
+++ b/etc/caseDicts/postProcessing/fields/grad
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/mag b/etc/caseDicts/postProcessing/fields/mag
index 5f3d448a15cc9c95d46573e119a792c0b2fa7d88..8ed2e5a7cb77572d8f04e8534e0801a8b7faa457 100644
--- a/etc/caseDicts/postProcessing/fields/mag
+++ b/etc/caseDicts/postProcessing/fields/mag
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/magSqr b/etc/caseDicts/postProcessing/fields/magSqr
index 8a1c6c8e21e2ae5554265d2d1afd67e0fba7f77c..9ffe3cc1d4386ce0d8db37c08cfedc10083f103f 100644
--- a/etc/caseDicts/postProcessing/fields/magSqr
+++ b/etc/caseDicts/postProcessing/fields/magSqr
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/randomise b/etc/caseDicts/postProcessing/fields/randomise
index 490e2b0bc4b0c1c8f5d99eeb530f0edf6a75887a..d6c36678a537c7b16e964894c76a1bbe66fcf477 100644
--- a/etc/caseDicts/postProcessing/fields/randomise
+++ b/etc/caseDicts/postProcessing/fields/randomise
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/randomise.cfg b/etc/caseDicts/postProcessing/fields/randomise.cfg
index f4a8f49f5a66964a534ff30669bc167cb6426b68..bc2a0c639479a5c19c6842b7b6db04fa1ac9b40a 100644
--- a/etc/caseDicts/postProcessing/fields/randomise.cfg
+++ b/etc/caseDicts/postProcessing/fields/randomise.cfg
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 
diff --git a/etc/caseDicts/postProcessing/fields/streamFunction b/etc/caseDicts/postProcessing/fields/streamFunction
index 362e8f0dbb60ed4e917f572b3d756ccd270f5569..125692f7aa3cbc55312083cb36d4981e7ca5e3f3 100644
--- a/etc/caseDicts/postProcessing/fields/streamFunction
+++ b/etc/caseDicts/postProcessing/fields/streamFunction
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/turbulenceFields b/etc/caseDicts/postProcessing/fields/turbulenceFields
index c49d351c3e1101414c8272e817b2c75f4d925209..8945cbe0eeea4ba8bd8eccb0619e58fd7f3a1d47 100644
--- a/etc/caseDicts/postProcessing/fields/turbulenceFields
+++ b/etc/caseDicts/postProcessing/fields/turbulenceFields
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/vorticity b/etc/caseDicts/postProcessing/fields/vorticity
index 78bc9763099664fa55e79ac48533db0bd7fc763d..4edd87fc948bf79b7a022f0fa23c9fa89fcb7a45 100644
--- a/etc/caseDicts/postProcessing/fields/vorticity
+++ b/etc/caseDicts/postProcessing/fields/vorticity
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/wallHeatFlux b/etc/caseDicts/postProcessing/fields/wallHeatFlux
index 9e7ef4a69bfc7ef27ea4b89f1a66f065681d637d..84a773e4643e9da1b1ccb61d28436774148abfd5 100644
--- a/etc/caseDicts/postProcessing/fields/wallHeatFlux
+++ b/etc/caseDicts/postProcessing/fields/wallHeatFlux
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/wallShearStress b/etc/caseDicts/postProcessing/fields/wallShearStress
index 95d66dfac6a620dbd814fa9512b780c11f4bec63..a1802f4fc5d1ecd32fb5e3e80dcc6a95a04a3a77 100644
--- a/etc/caseDicts/postProcessing/fields/wallShearStress
+++ b/etc/caseDicts/postProcessing/fields/wallShearStress
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/writeCellCentres b/etc/caseDicts/postProcessing/fields/writeCellCentres
index f8824910c7c37f63d81ec440b14c1f8b8af699ba..c68960077b16a0e11b131e285cc37c1c50e42402 100644
--- a/etc/caseDicts/postProcessing/fields/writeCellCentres
+++ b/etc/caseDicts/postProcessing/fields/writeCellCentres
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/writeCellVolumes b/etc/caseDicts/postProcessing/fields/writeCellVolumes
index bff6f9ec6d0e9183094c4b620fd3475a64de2f3d..23965cd7aaafa59fe6f374b0e02922709bbe6a8e 100644
--- a/etc/caseDicts/postProcessing/fields/writeCellVolumes
+++ b/etc/caseDicts/postProcessing/fields/writeCellVolumes
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/writeObjects b/etc/caseDicts/postProcessing/fields/writeObjects
index 4d43d713cce241d027519d4e68c741b1b1020279..d0e949e3393137a78c9ff87cc8c86a9c92f4e593 100644
--- a/etc/caseDicts/postProcessing/fields/writeObjects
+++ b/etc/caseDicts/postProcessing/fields/writeObjects
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/fields/yPlus b/etc/caseDicts/postProcessing/fields/yPlus
index 894971a8e552d16006a7794e2f07cf090c84b311..eeef037791985706af6ed5eec80955b6a52d97a7 100644
--- a/etc/caseDicts/postProcessing/fields/yPlus
+++ b/etc/caseDicts/postProcessing/fields/yPlus
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/solvers/scalarTransport/scalarTransport b/etc/caseDicts/postProcessing/solvers/scalarTransport/scalarTransport
index d5d71b7fc78663c0dc555c96566a8cc4a8a0ad40..132f56d75c44b1ac4a1c5fbe38372f2bad1ecdb2 100644
--- a/etc/caseDicts/postProcessing/solvers/scalarTransport/scalarTransport
+++ b/etc/caseDicts/postProcessing/solvers/scalarTransport/scalarTransport
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/solvers/scalarTransport/scalarTransport.cfg b/etc/caseDicts/postProcessing/solvers/scalarTransport/scalarTransport.cfg
index 5574f2a6ddf657b953a1f48bb84fff045fee5a97..75f0e1f282eb583d71d7c04f927f124644facb7d 100644
--- a/etc/caseDicts/postProcessing/solvers/scalarTransport/scalarTransport.cfg
+++ b/etc/caseDicts/postProcessing/solvers/scalarTransport/scalarTransport.cfg
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 
diff --git a/etc/caseDicts/postProcessing/surfaceFieldValue/faceZone.cfg b/etc/caseDicts/postProcessing/surfaceFieldValue/faceZone.cfg
index 1b6fe1dc62a54548418a51dde37fbc584850b5a3..420edca39daa7afa1fda6567070d0de9a21befd2 100644
--- a/etc/caseDicts/postProcessing/surfaceFieldValue/faceZone.cfg
+++ b/etc/caseDicts/postProcessing/surfaceFieldValue/faceZone.cfg
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 
diff --git a/etc/caseDicts/postProcessing/surfaceFieldValue/patch.cfg b/etc/caseDicts/postProcessing/surfaceFieldValue/patch.cfg
index e84c077a29f3eeb191bef2af070fb5b391ce656b..d8a92f0c07d33538e9f12c477cc3a8d76637473e 100644
--- a/etc/caseDicts/postProcessing/surfaceFieldValue/patch.cfg
+++ b/etc/caseDicts/postProcessing/surfaceFieldValue/patch.cfg
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 
diff --git a/etc/caseDicts/postProcessing/surfaceFieldValue/patchAverage b/etc/caseDicts/postProcessing/surfaceFieldValue/patchAverage
index 6ab61f5f9c21d1532001edb6aa09d09a901b856c..5ad1f3ca7e59232510b312ba076d0ffb8aa19e43 100644
--- a/etc/caseDicts/postProcessing/surfaceFieldValue/patchAverage
+++ b/etc/caseDicts/postProcessing/surfaceFieldValue/patchAverage
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/surfaceFieldValue/patchIntegrate b/etc/caseDicts/postProcessing/surfaceFieldValue/patchIntegrate
index f2c457246870e8f454bb44700ef21db6f24f476c..e1e0efd904ca45c8fea69d4368895ebfd9f9dc97 100644
--- a/etc/caseDicts/postProcessing/surfaceFieldValue/patchIntegrate
+++ b/etc/caseDicts/postProcessing/surfaceFieldValue/patchIntegrate
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/etc/caseDicts/postProcessing/surfaceFieldValue/surfaceRegion.cfg b/etc/caseDicts/postProcessing/surfaceFieldValue/surfaceRegion.cfg
index 2d8535259d9bfe1e10912c030ab054d0d700e736..009a1bd156022178143ddf65f113009829ef7bc8 100644
--- a/etc/caseDicts/postProcessing/surfaceFieldValue/surfaceRegion.cfg
+++ b/etc/caseDicts/postProcessing/surfaceFieldValue/surfaceRegion.cfg
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 
diff --git a/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C
index b3bcb86ecd4403c012ee3d4cb0679a6be9ce00fa..6cb5cc0d7bd2a76df41adb9b9204d09a8f1fc448 100644
--- a/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C
+++ b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C
@@ -104,7 +104,7 @@ ${typeName}FvOption${SourceType}
     const fvMesh& mesh
 )
 :
-    option(name, modelType, dict, mesh)
+    cellSetOption(name, modelType, dict, mesh)
 {
     if (${verbose:-false})
     {
diff --git a/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H
index 2a10ff9b35b3ab18902e444e306a0e40c932e7f8..c27641936281c1e34da7dd2989b1412f735230c1 100644
--- a/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H
+++ b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H
@@ -105,7 +105,7 @@ SourceFiles
 #ifndef codedFvOptionTemplate_H
 #define codedFvOptionTemplate_H
 
-#include "fvOption.H"
+#include "cellSetOption.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -121,7 +121,7 @@ namespace fv
 
 class ${typeName}FvOption${SourceType}
 :
-    public option
+    public cellSetOption
 {
 public:
 
diff --git a/etc/config.csh/aliases b/etc/config.csh/aliases
index 33bb0e4a98d93b9ead91d6615e07e3e2efff019b..f04b6e811479b6cba3b6f29df5cc8fc2a7a23fd4 100644
--- a/etc/config.csh/aliases
+++ b/etc/config.csh/aliases
@@ -82,7 +82,7 @@ alias foamVersion \
 # Change ParaView version
 # ~~~~~~~~~~~~~~~~~~~~~~~
 alias foamPV \
-    'source $WM_PROJECT_DIR/etc/config.csh/paraview ParaView_VERSION=\!*; echo paraview-$ParaView_VERSION'
+    'source $WM_PROJECT_DIR/etc/config.csh/paraview ParaView_VERSION=\!*; echo ${ParaView_DIR:t}'
 
 
 #------------------------------------------------------------------------------
diff --git a/etc/config.csh/compiler b/etc/config.csh/compiler
index 3e28c20b71ebe793ccecd994646a1e551afa510a..7d8f757b23eb13680a5545b489e7ef40e55fa657 100644
--- a/etc/config.csh/compiler
+++ b/etc/config.csh/compiler
@@ -31,7 +31,6 @@
 #------------------------------------------------------------------------------
 
 switch ("$WM_COMPILER_TYPE")
-case OpenFOAM:
 case ThirdParty:
     # Default versions of GMP, MPFR and MPC, override as necessary
     set gmp_version=gmp-system
diff --git a/etc/config.csh/paraview b/etc/config.csh/paraview
index 16fa58d48a0d92b058e64218c89da2ea31176232..ba718b0c0cab999e4db14978b8e7860068d72dc4 100644
--- a/etc/config.csh/paraview
+++ b/etc/config.csh/paraview
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-#    \\/     M anipulation  |
+#    \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
@@ -25,40 +25,50 @@
 #     config.csh/paraview
 #
 # Description
-#     Setup file for paraview-[3-5].x
+#     Setup file for paraview (and cmake)
 #     Sourced from OpenFOAM-<VERSION>/etc/cshrc or from foamPV alias
 #
+#     If using system-wide installation for cmake, use the following settings:
+#
+#         cmake_version=cmake-system
+#
 # Note
-#     The env. variables 'ParaView_DIR' and 'ParaView_MAJOR'
-#     are required for building plugins
+#     The following env. variables are required for building plugins:
+#         ParaView_DIR
+#         ParaView_INCLUDE_DIR
+#         PV_PLUGIN_PATH
+#
+#     If using a central installation not located under ThirdParty, you will
+#     need to set some environment values directly. For example,
+#
+#         setenv ParaView_DIR /opt/paraview/paraview-5.0.1
+#         setenv ParaView_INCLUDE_DIR $ParaView_DIR/include/paraview-5.0
+#         setenv PV_PLUGIN_PATH $FOAM_LIBBIN/paraview-5.0
+#
+#         setenv PATH ${ParaView_DIR}/bin:${PATH}
+#         setenv LD_LIBRARY_PATH ${ParaView_DIR}/lib/paraview-5.0:${LD_LIBRARY_PATH}
+#         unsetenv ParaView_VERSION     # avoid using ThirdParty settings
 #
 #------------------------------------------------------------------------------
 
+setenv ParaView_VERSION 5.0.1
+setenv ParaView_MAJOR   detect          # Automatically determine major version
+
+set cmake_version=cmake-system
+
+#------------------------------------------------------------------------------
+
 # Clean the PATH
 set cleaned=`$WM_PROJECT_DIR/bin/foamCleanPath "$PATH" "$ParaView_DIR $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/cmake- $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/paraview-"`
 if ( $status == 0 ) setenv PATH $cleaned
 
-# Determine the cmake to be used
+# Environment for ThirdParty cmake
 unsetenv CMAKE_HOME
-foreach cmake ( cmake-3.2.1 cmake-2.8.12.1 cmake-2.8.8 cmake-2.8.4 cmake-2.8.3 cmake-2.8.1 )
-    set cmake=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cmake
-    if ( -r $cmake ) then
-        setenv CMAKE_HOME $cmake
-        setenv PATH ${CMAKE_HOME}/bin:${PATH}
-        break
-    endif
-end
-
-#- ParaView version, automatically determine major version:
-#setenv ParaView_VERSION 3.12.0
-#setenv ParaView_VERSION 4.0.1
-#setenv ParaView_VERSION 4.1.0
-#setenv ParaView_VERSION 4.3.1
-#setenv ParaView_VERSION 4.4.0
-#setenv ParaView_VERSION 5.0.0
-setenv ParaView_VERSION 5.0.1
-setenv ParaView_MAJOR detect
-
+set cmake=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cmake_version
+if ( -r $cmake ) then
+    setenv CMAKE_HOME $cmake
+    setenv PATH ${CMAKE_HOME}/bin:${PATH}
+endif
 
 # Evaluate command-line parameters for ParaView
 while ( $#argv > 0 )
@@ -72,62 +82,64 @@ while ( $#argv > 0 )
 end
 
 
-# Set MAJOR version to correspond to VERSION
-# ParaView_MAJOR is "<digits>.<digits>" from ParaView_VERSION
-switch ("$ParaView_VERSION")
-case "$ParaView_MAJOR".*:
-    # Version and major appear to correspond
-    breaksw
-
-case [0-9]*:
-    # Extract major from the version
-    setenv ParaView_MAJOR `echo ${ParaView_VERSION} | \
-        sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/'`
-    breaksw
-endsw
-
-
-set paraviewInstDir=$WM_THIRD_PARTY_DIR/ParaView-${ParaView_VERSION}
-set paraviewArchName=ParaView-$ParaView_VERSION
-
-setenv ParaView_DIR $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$paraviewArchName
-
-# Set paths if binaries or source are present
-if ( -r $ParaView_DIR || -r $paraviewInstDir ) then
-    setenv ParaView_INCLUDE_DIR $ParaView_DIR/include/paraview-${ParaView_MAJOR}
-    if (! -r $ParaView_INCLUDE_DIR && -r $ParaView_DIR/include/paraview-3.0) then
-        setenv ParaView_INCLUDE_DIR $ParaView_DIR/include/paraview-3.0
-    endif
-
-    set ParaView_LIB_DIR=${ParaView_DIR}/lib/paraview-${ParaView_MAJOR}
+# Require that ParaView_VERSION has not been unset.
+# Avoids conflict with an alternative (non-ThirdParty) installation.
+if ( $?ParaView_VERSION ) then
 
-    setenv PATH ${ParaView_DIR}/bin:${PATH}
-    setenv LD_LIBRARY_PATH "${ParaView_LIB_DIR}:${LD_LIBRARY_PATH}"
-    setenv PV_PLUGIN_PATH $FOAM_LIBBIN/paraview-${ParaView_MAJOR}
+    # Set MAJOR version to correspond to VERSION
+    # ParaView_MAJOR is "<digits>.<digits>" from ParaView_VERSION
+    switch ("$ParaView_VERSION")
+    case "$ParaView_MAJOR".*:
+        # Version and major appear to correspond
+        breaksw
 
-    if ($?FOAM_VERBOSE && $?prompt) then
-        echo "Using paraview"
-        echo "    ParaView_DIR         : $ParaView_DIR"
-        echo "    ParaView_LIB_DIR     : $ParaView_LIB_DIR"
-        echo "    ParaView_INCLUDE_DIR : $ParaView_INCLUDE_DIR"
-        echo "    PV_PLUGIN_PATH       : $PV_PLUGIN_PATH"
-    endif
+    case [0-9]*:
+        # Extract major from the version
+        setenv ParaView_MAJOR `echo ${ParaView_VERSION} | \
+            sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/'`
+        breaksw
+    endsw
 
+    set pvName=ParaView-$ParaView_VERSION
+    set pvMajor=paraview-$ParaView_MAJOR
+    set pvSrcDir=$WM_THIRD_PARTY_DIR/$pvName
+
+    setenv ParaView_DIR $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$pvName
+
+    # Set paths if binaries or source are present
+    if ( -r $ParaView_DIR || -r $pvSrcDir ) then
+        set pvLibDir=${ParaView_DIR}/lib/$pvMajor
+        set pvPython=$ParaView_DIR/Utilities/VTKPythonWrapping
+
+        setenv ParaView_INCLUDE_DIR $ParaView_DIR/include/$pvMajor
+        setenv PV_PLUGIN_PATH $FOAM_LIBBIN/$pvMajor
+        setenv PATH ${ParaView_DIR}/bin:${PATH}
+        setenv LD_LIBRARY_PATH "${pvLibDir}:${LD_LIBRARY_PATH}"
+
+        # Add in python libraries if required
+        if ( -r $pvPython ) then
+            if ($?PYTHONPATH) then
+                setenv PYTHONPATH ${PYTHONPATH}:${pvPython}:$pvLibDir
+            else
+                setenv PYTHONPATH ${pvPython}:$pvLibDir
+            endif
+        endif
 
-    # Add in python libraries if required
-    set paraviewPython=$ParaView_DIR/Utilities/VTKPythonWrapping
-    if ( -r $paraviewPython ) then
-        if ($?PYTHONPATH) then
-            setenv PYTHONPATH ${PYTHONPATH}:${paraviewPython}:$ParaView_LIB_DIR
-        else
-            setenv PYTHONPATH ${paraviewPython}:$ParaView_LIB_DIR
+        if ($?FOAM_VERBOSE && $?prompt) then
+            echo "Using paraview"
+            echo "    ParaView_DIR         : $ParaView_DIR"
+            echo "    ParaView_INCLUDE_DIR : $ParaView_INCLUDE_DIR"
+            echo "    library dir          : $pvLibDir"
+            echo "    PV_PLUGIN_PATH       : $PV_PLUGIN_PATH"
         endif
+    else
+        unsetenv ParaView_INCLUDE_DIR PV_PLUGIN_PATH
+        setenv ParaView_DIR   # Defined but empty (used by foamPV alias)
     endif
-else
-    unsetenv PV_PLUGIN_PATH
-endif
 
+endif
 
-unset cleaned cmake paraviewInstDir paraviewPython
+unset cleaned cmake cmake_version pvName pvMajor pvSrcDir pvLibDir pvPython
+unsetenv ParaView_VERSION ParaView_MAJOR
 
 #------------------------------------------------------------------------------
diff --git a/etc/config.csh/settings b/etc/config.csh/settings
index 1cee3fcd91aede29df5600e34202ba898202de8f..659b4c5ae22ae09995ba6f7f1f20558060f421e5 100644
--- a/etc/config.csh/settings
+++ b/etc/config.csh/settings
@@ -204,14 +204,9 @@ _foamAddLib  ${FOAM_USER_LIBBIN}:${FOAM_SITE_LIBBIN}:${FOAM_LIBBIN}:${FOAM_EXT_L
 unset gcc_version gmp_version mpfr_version mpc_version
 unsetenv GMP_ARCH_PATH MPFR_ARCH_PATH
 
-
-# Location of compiler installation
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-if ( ! $?WM_COMPILER_TYPE ) then
-    setenv WM_COMPILER_TYPE system
-    echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:"
-    echo "    WM_COMPILER_TYPE not set, using '$WM_COMPILER_TYPE'"
-endif
+# Compiler installation - default to system
+# ~~~~~~~~~~~~~~~~~~~~~
+if ( ! $?WM_COMPILER_TYPE ) setenv WM_COMPILER_TYPE system
 
 # Load configured compiler versions, regardless of the compiler type
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -235,13 +230,16 @@ case ThirdParty:
 
         # Check that the compiler directory can be found
         if ( ! -d "$gccDir" ) then
-            echo
-            echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:"
-            echo "    Cannot find $gccDir installation."
-            echo "    Please install this compiler version or if you wish to" \
-                 " use the system compiler,"
-            echo "    change the 'WM_COMPILER_TYPE' setting to 'system'"
-            echo
+            cat << GCC_NOT_FOUND
+===============================================================================
+Warning in $WM_PROJECT_DIR/etc/config.csh/settings:
+Cannot find '$WM_COMPILER' compiler installation
+    $gccDir
+
+    Either install this compiler version, or use the system compiler by setting
+    WM_COMPILER_TYPE to 'system' in \$WM_PROJECT_DIR/etc/cshrc.
+===============================================================================
+GCC_NOT_FOUND
         endif
 
         _foamAddMan     $gccDir/man
@@ -268,18 +266,22 @@ case ThirdParty:
             echo "    ${gccDir:t} (${gmpDir:t} ${mpfrDir:t} ${mpcDir:t})"
         endif
     endif
+
     if ( $?clang_version ) then
         set clangDir=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/$clang_version
 
         # Check that the compiler directory can be found
         if ( ! -d "$clangDir" ) then
-            echo
-            echo "Warning in $WM_PROJECT_DIR/etc/config.csh/settings:"
-            echo "    Cannot find $clangDir installation."
-            echo "    Please install this compiler version or if you wish to" \
-                 " use the system compiler,"
-            echo "    change the 'WM_COMPILER_TYPE' setting to 'system'"
-            echo
+            cat << CLANG_NOT_FOUND
+===============================================================================
+Warning in $WM_PROJECT_DIR/etc/config.csh/settings:
+Cannot find '$WM_COMPILER' compiler installation
+    $clangDir
+
+    Either install this compiler version, or use the system compiler by setting
+    WM_COMPILER_TYPE to 'system' in \$WM_PROJECT_DIR/etc/cshrc.
+===============================================================================
+CLANG_NOT_FOUND
         endif
 
         _foamAddMan     $clangDir/man
diff --git a/etc/config.csh/unset b/etc/config.csh/unset
index bc077f20f8e07c2f7f8c7dcbf6f88841337e4870..7194f4853c6177dcf0f5aa4cb9812a335b1e3f37 100644
--- a/etc/config.csh/unset
+++ b/etc/config.csh/unset
@@ -136,12 +136,6 @@ unsetenv GMP_ARCH_PATH
 unsetenv MPFR_ARCH_PATH
 unsetenv SCOTCH_ARCH_PATH
 
-#------------------------------------------------------------------------------
-# Unset foamyHexMesh-related environment variables
-
-unsetenv FOAMY_HEX_MESH
-
-
 #------------------------------------------------------------------------------
 # Cleanup environment
 # PATH, LD_LIBRARY_PATH, MANPATH
diff --git a/etc/config.sh/aliases b/etc/config.sh/aliases
index 2e0f67146b9c2e8b07d33734db4a4152d5529b60..4fa36c11c9ab015a74e107f577c2bc03e47dedb7 100644
--- a/etc/config.sh/aliases
+++ b/etc/config.sh/aliases
@@ -70,7 +70,7 @@ alias run='cd $FOAM_RUN'
 # Refresh the environment
 # ~~~~~~~~~~~~~~~~~~~~~~~
 # For backward-compatibility unalias wmRefresh if it is defined as an alias
-[ "$(type -t wmRefresh)" = "alias" ] && unalias wmRefresh || unset wmRefresh
+[ "$(type -t wmRefresh)" = "alias" ] && unalias wmRefresh || unset -f wmRefresh
 wmRefresh()
 {
     wmProjectDir=$WM_PROJECT_DIR
@@ -82,7 +82,7 @@ wmRefresh()
 
 # Change OpenFOAM version
 # ~~~~~~~~~~~~~~~~~~~~~~~
-unset foamVersion
+unset -f foamVersion
 foamVersion()
 {
     if [ "$1" ]; then
@@ -99,11 +99,12 @@ foamVersion()
 
 # Change ParaView version
 # ~~~~~~~~~~~~~~~~~~~~~~~
-unset foamPV
+unset -f foamPV
 foamPV()
 {
-    . $WM_PROJECT_DIR/etc/config.sh/paraview ParaView_VERSION=${1:-none}
-    echo "paraview-$ParaView_VERSION  (major: $ParaView_MAJOR)" 1>&2
+    . $WM_PROJECT_DIR/etc/config.sh/paraview "${@+ParaView_VERSION=$1}"
+    local pvdir="${ParaView_DIR##*/}"
+    echo "${pvdir:-ParaView_DIR not set}" 1>&2
 }
 
 
diff --git a/etc/config.sh/compiler b/etc/config.sh/compiler
index 5cfc75e56cce5027873a3818b3907db156d9f651..0f27fab8a68bc7fb8dc3475ad4e9b79b78b7b020 100644
--- a/etc/config.sh/compiler
+++ b/etc/config.sh/compiler
@@ -31,7 +31,7 @@
 #------------------------------------------------------------------------------
 
 case "$WM_COMPILER_TYPE" in
-OpenFOAM | ThirdParty)
+ThirdParty)
     # Default versions of GMP, MPFR and MPC, override as necessary
     gmp_version=gmp-system
     mpfr_version=mpfr-system
diff --git a/etc/config.sh/paraview b/etc/config.sh/paraview
index 4d5c89911cf15280a7d07c89d76243217ad26abb..0438aa132391eb4f9fd6db789034a30a6c0a5207 100644
--- a/etc/config.sh/paraview
+++ b/etc/config.sh/paraview
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-#    \\/     M anipulation  |
+#    \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
@@ -25,12 +25,37 @@
 #     etc/config.sh/paraview
 #
 # Description
-#     Setup file for paraview-[3-5].x
+#     Setup file for paraview (& cmake)
 #     Sourced from OpenFOAM-<VERSION>/etc/bashrc or from foamPV alias
 #
+#     If using system-wide installation for cmake, use the following settings:
+#
+#         cmake_version=cmake-system
+#
 # Note
-#     The env. variables 'ParaView_DIR' and 'ParaView_MAJOR'
-#     are required for building plugins
+#     The following env. variables are required for building plugins:
+#         ParaView_DIR
+#         ParaView_INCLUDE_DIR
+#         PV_PLUGIN_PATH
+#
+#     If using a central installation not located under ThirdParty, you will
+#     need to set some environment values directly. For example,
+#
+#         export ParaView_DIR=/opt/paraview/paraview-5.0.1
+#         export ParaView_INCLUDE_DIR=$ParaView_DIR/include/paraview-5.0
+#         export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-5.0
+#
+#         export PATH=$ParaView_DIR/bin:$PATH
+#         export LD_LIBRARY_PATH=$ParaView_DIR/lib/paraview-5.0:$LD_LIBRARY_PATH
+#         unset ParaView_VERSION        # avoid using ThirdParty settings
+#
+#------------------------------------------------------------------------------
+
+ParaView_VERSION=5.0.1
+ParaView_MAJOR=detect                   # Automatically determine major version
+
+cmake_version=cmake-system
+
 #------------------------------------------------------------------------------
 
 # Clean the PATH
@@ -41,32 +66,15 @@ cleaned=$($WM_PROJECT_DIR/bin/foamCleanPath "$PATH" \
         ) \
         && PATH="$cleaned"
 
-# Determine the cmake to be used
+# Environment for ThirdParty cmake
 unset CMAKE_HOME
-for cmake in cmake-3.2.1 cmake-2.8.12.1 cmake-2.8.8 cmake-2.8.4 cmake-2.8.3 \
-             cmake-2.8.1
-do
-    cmake=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cmake
-    if [ -r $cmake ]
-    then
-        export CMAKE_HOME=$cmake
-        export CMAKE_ROOT=$cmake
-        export PATH=$CMAKE_HOME/bin:$PATH
-        break
-    fi
-done
-
-
-#- ParaView version, automatically determine major version
-#export ParaView_VERSION=3.12.0
-#export ParaView_VERSION=4.0.1
-#export ParaView_VERSION=4.1.0
-#export ParaView_VERSION=4.3.1
-#export ParaView_VERSION=4.4.0
-#export ParaView_VERSION=5.0.0
-export ParaView_VERSION=5.0.1
-export ParaView_MAJOR=detect
-
+cmake=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cmake_version
+if [ -r $cmake ]
+then
+    export CMAKE_HOME=$cmake
+    export CMAKE_ROOT=$cmake
+    export PATH=$CMAKE_HOME/bin:$PATH
+fi
 
 # Evaluate command-line parameters for ParaView
 _foamParaviewEval()
@@ -86,67 +94,69 @@ _foamParaviewEval()
 # Evaluate command-line parameters
 _foamParaviewEval $@
 
+# Require that ParaView_VERSION has not been unset.
+# Avoids conflict with an alternative (non-ThirdParty) installation.
+if [ -n "$ParaView_VERSION" ]
+then
 
-# Set MAJOR version to correspond to VERSION
-# ParaView_MAJOR is "<digits>.<digits>" from ParaView_VERSION
-case "$ParaView_VERSION" in
-"$ParaView_MAJOR".* )
-    # Version and major appear to correspond
-    ;;
+    # Set MAJOR version to correspond to VERSION
+    # ParaView_MAJOR is "<digits>.<digits>" from ParaView_VERSION
+    case "$ParaView_VERSION" in
+    "$ParaView_MAJOR".* )
+        # Version and major appear to correspond
+        ;;
 
-[0-9]*)
-    # Extract major from the version
-    ParaView_MAJOR=$(echo $ParaView_VERSION | \
-                   sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/')
-    ;;
-esac
-export ParaView_VERSION ParaView_MAJOR
+    [0-9]*)
+        # Extract major from the version
+        ParaView_MAJOR=$(echo $ParaView_VERSION | \
+                       sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/')
+        ;;
+    esac
 
-paraviewInstDir=$WM_THIRD_PARTY_DIR/ParaView-$ParaView_VERSION
-paraviewArchName=ParaView-$ParaView_VERSION
+    pvName=ParaView-$ParaView_VERSION
+    pvMajor=paraview-$ParaView_MAJOR
+    pvSrcDir=$WM_THIRD_PARTY_DIR/$pvName
 
-export ParaView_DIR=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$paraviewArchName
+    export ParaView_DIR=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$pvName
 
-# Set paths if binaries or source are present
-if [ -r $ParaView_DIR -o -r $paraviewInstDir ]
-then
-    export ParaView_INCLUDE_DIR=$ParaView_DIR/include/paraview-$ParaView_MAJOR
-    if [ ! -d $ParaView_INCLUDE_DIR -a -d $ParaView_DIR/include/paraview-3.0 ]
+    # Set paths if binaries or source are present
+    if [ -r $ParaView_DIR -o -r $pvSrcDir ]
     then
-        export ParaView_INCLUDE_DIR=$ParaView_DIR/include/paraview-3.0
-    fi
-
-    ParaView_LIB_DIR=$ParaView_DIR/lib/paraview-$ParaView_MAJOR
+        pvLibDir=$ParaView_DIR/lib/$pvMajor
+        pvPython=$ParaView_DIR/Utilities/VTKPythonWrapping
 
-    export PATH=$ParaView_DIR/bin:$PATH
-    export LD_LIBRARY_PATH=$ParaView_LIB_DIR:$LD_LIBRARY_PATH
-    export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-$ParaView_MAJOR
+        export ParaView_INCLUDE_DIR=$ParaView_DIR/include/$pvMajor
+        export PV_PLUGIN_PATH=$FOAM_LIBBIN/$pvMajor
+        export PATH=$ParaView_DIR/bin:$PATH
+        export LD_LIBRARY_PATH=$pvLibDir:$LD_LIBRARY_PATH
 
-    if [ "$FOAM_VERBOSE" -a "$PS1" ]
-    then
-        echo "Using paraview"
-        echo "    ParaView_DIR         : $ParaView_DIR"
-        echo "    ParaView_LIB_DIR     : $ParaView_LIB_DIR"
-        echo "    ParaView_INCLUDE_DIR : $ParaView_INCLUDE_DIR"
-        echo "    PV_PLUGIN_PATH       : $PV_PLUGIN_PATH"
-    fi
+        # Add in python libraries if required
+        if [ -r $pvPython ]
+        then
+            if [ "$PYTHONPATH" ]
+            then
+                export PYTHONPATH=$PYTHONPATH:$pvPython:$pvLibDir
+            else
+                export PYTHONPATH=$pvPython:$pvLibDir
+            fi
+        fi
 
-    # Add in python libraries if required
-    paraviewPython=$ParaView_DIR/Utilities/VTKPythonWrapping
-    if [ -r $paraviewPython ]
-    then
-        if [ "$PYTHONPATH" ]
+        if [ "$FOAM_VERBOSE" -a "$PS1" ]
         then
-            export PYTHONPATH=$PYTHONPATH:$paraviewPython:$ParaView_LIB_DIR
-        else
-            export PYTHONPATH=$paraviewPython:$ParaView_LIB_DIR
+            echo "Using paraview"
+            echo "    ParaView_DIR         : $ParaView_DIR"
+            echo "    ParaView_INCLUDE_DIR : $ParaView_INCLUDE_DIR"
+            echo "    library dir          : $pvLibDir"
+            echo "    PV_PLUGIN_PATH       : $PV_PLUGIN_PATH"
         fi
+    else
+        unset ParaView_DIR ParaView_INCLUDE_DIR PV_PLUGIN_PATH
     fi
-else
-    unset PV_PLUGIN_PATH
+
 fi
 
-unset _foamParaviewEval
-unset cleaned cmake paraviewInstDir paraviewPython
+unset -f _foamParaviewEval
+unset cleaned cmake cmake_version pvName pvMajor pvSrcDir pvLibDir pvPython
+unset ParaView_VERSION ParaView_MAJOR
 
 #------------------------------------------------------------------------------
diff --git a/etc/config.sh/settings b/etc/config.sh/settings
index e67bf5126fe7b0beb66f75a3846568a0bbaa14fb..4e457c15c0022356bcf923c4da0ed1d1bccbf097 100644
--- a/etc/config.sh/settings
+++ b/etc/config.sh/settings
@@ -206,14 +206,9 @@ _foamAddLib  $FOAM_USER_LIBBIN:$FOAM_SITE_LIBBIN:$FOAM_LIBBIN:$FOAM_EXT_LIBBIN:$
 unset gcc_version gmp_version mpfr_version mpc_version
 unset GMP_ARCH_PATH MPFR_ARCH_PATH
 
-# Location of compiler installation
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-if [ -z "$WM_COMPILER_TYPE" ]
-then
-    WM_COMPILER_TYPE=system
-    echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2
-    echo "    WM_COMPILER_TYPE not set, using '$WM_COMPILER_TYPE'" 1>&2
-fi
+# Compiler installation - default to system
+# ~~~~~~~~~~~~~~~~~~~~~
+: ${WM_COMPILER_TYPE:=system}; export WM_COMPILER_TYPE
 
 # Load configured compiler versions, regardless of the compiler type
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -232,15 +227,16 @@ OpenFOAM | ThirdParty)
         mpcDir=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/${mpc_version:-mpc-system}
 
         # Check that the compiler directory can be found
-        [ -d "$gccDir" ] || {
-            echo 1>&2
-            echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2
-            echo "    Cannot find $gccDir installation." 1>&2
-            echo "    Please install this compiler version or if you wish to" \
-                 " use the system compiler," 1>&2
-            echo "    change the 'WM_COMPILER_TYPE' setting to 'system'" 1>&2
-            echo
-        }
+        [ -d "$gccDir" ] || cat << GCC_NOT_FOUND 1>&2
+===============================================================================
+Warning in $WM_PROJECT_DIR/etc/config.sh/settings:
+Cannot find '$WM_COMPILER' compiler installation
+    $gccDir
+
+    Either install this compiler version, or use the system compiler by setting
+    WM_COMPILER_TYPE to 'system' in \$WM_PROJECT_DIR/etc/bashrc.
+===============================================================================
+GCC_NOT_FOUND
 
         _foamAddMan     $gccDir/man
         _foamAddPath    $gccDir/bin
@@ -276,15 +272,16 @@ OpenFOAM | ThirdParty)
         clangDir=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH/$clang_version
 
         # Check that the compiler directory can be found
-        [ -d "$clangDir" ] || {
-            echo 1>&2
-            echo "Warning in $WM_PROJECT_DIR/etc/config.sh/settings:" 1>&2
-            echo "    Cannot find $clangDir installation." 1>&2
-            echo "    Please install this compiler version or if you wish to" \
-                 " use the system compiler," 1>&2
-            echo "    change the 'WM_COMPILER_TYPE' setting to 'system'" 1>&2
-            echo 1>&2
-        }
+        [ -d "$clangDir" ] || cat << CLANG_NOT_FOUND 1>&2
+===============================================================================
+Warning in $WM_PROJECT_DIR/etc/config.sh/settings:
+Cannot find '$WM_COMPILER' compiler installation
+    $clangDir
+
+    Either install this compiler version, or use the system compiler by setting
+    WM_COMPILER_TYPE to 'system' in \$WM_PROJECT_DIR/etc/bashrc.
+===============================================================================
+CLANG_NOT_FOUND
 
         _foamAddMan     $clangDir/share/man
         _foamAddPath    $clangDir/bin
diff --git a/etc/config.sh/unset b/etc/config.sh/unset
index 7bce3ddf0d9a52c2923499f8e37453f41a524aff..c51dcf4c53b8aa22555f001fc25f6a9bf82a9a14 100644
--- a/etc/config.sh/unset
+++ b/etc/config.sh/unset
@@ -132,12 +132,6 @@ unset GMP_ARCH_PATH
 unset MPFR_ARCH_PATH
 unset SCOTCH_ARCH_PATH
 
-#------------------------------------------------------------------------------
-# Unset foamyHexMesh-related environment variables
-
-unset FOAMY_HEX_MESH
-
-
 #------------------------------------------------------------------------------
 # Cleanup environment
 # PATH, LD_LIBRARY_PATH, MANPATH
@@ -183,9 +177,9 @@ unalias util
 unalias tut
 unalias run
 
-unset wmRefresh
-unset foamVersion
-unset foamPV
+unset -f wmRefresh
+unset -f foamVersion
+unset -f foamPV
 
 
 #------------------------------------------------------------------------------
diff --git a/etc/cshrc b/etc/cshrc
index 984db6bfefac48242c2448117bf66a597cca09c8..759413c0c856cd8561c42577a113df31ef10b3cd 100644
--- a/etc/cshrc
+++ b/etc/cshrc
@@ -57,7 +57,7 @@ echo $FOAM_INST_DIR
 # $FOAM_INST_DIR/site/$WM_PROJECT_VERSION or $FOAM_INST_DIR/site
 
 #- Compiler location:
-#    WM_COMPILER_TYPE = system | ThirdParty (OpenFOAM)
+#    WM_COMPILER_TYPE = system | ThirdParty
 setenv WM_COMPILER_TYPE system
 
 #- Compiler:
@@ -218,9 +218,7 @@ _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/mpi`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/paraview`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/ensight`
 
-if ( ($?FOAMY_HEX_MESH) ) then
-    _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/CGAL`
-endif
+_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/CGAL`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/FFTW`
 
 
diff --git a/src/OpenFOAM/containers/HashTables/Map/Map.H b/src/OpenFOAM/containers/HashTables/Map/Map.H
index 46de9dbedb0a089d019c1df0350d48fecdd54efe..8ef2f560bcbef9597422ae8700441e067ab79f9a 100644
--- a/src/OpenFOAM/containers/HashTables/Map/Map.H
+++ b/src/OpenFOAM/containers/HashTables/Map/Map.H
@@ -91,6 +91,11 @@ public:
             HashTable<T, label, Hash<label>>(map)
         {}
 
+        //- Construct from an initializer list
+        Map(std::initializer_list<Tuple2<label, T>> map)
+        :
+            HashTable<T, label, Hash<label>>(map)
+        {}
 };
 
 
diff --git a/src/OpenFOAM/containers/Lists/CompactListList/CompactListListIO.C b/src/OpenFOAM/containers/Lists/CompactListList/CompactListListIO.C
index 727e8803acfdbedef9c552cb903a7a9843eebb7f..5a001a1932bb313bdc6498c54366cd225ef041ae 100644
--- a/src/OpenFOAM/containers/Lists/CompactListList/CompactListListIO.C
+++ b/src/OpenFOAM/containers/Lists/CompactListList/CompactListListIO.C
@@ -42,13 +42,13 @@ Foam::Istream& Foam::operator>>(Istream& is, CompactListList<T, Container>& lst)
 {
     is  >> lst.offsets_ >> lst.m_;
     // Note: empty list gets output as two empty lists
-    if (lst.offsets_.size() == 0)
+    if (lst.offsets_.size())
     {
-        lst.size_ = 0;
+        lst.size_ = lst.offsets_.size()-1;
     }
     else
     {
-        lst.size_ = lst.offsets_.size()-1;
+        lst.size_ = 0;
     }
     return is;
 }
diff --git a/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C b/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
index 9119234ef6e0feff32ab4b161b4e0b9e4d71064a..e6ba7a46787dac58c13666061b150ce0a6896e80 100644
--- a/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
+++ b/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
@@ -118,6 +118,8 @@ Foam::Istream& Foam::operator>>(Foam::Istream& is, FixedList<T, Size>& L)
     }
     else
     {
+        // contents are binary and contiguous
+
         is.read(reinterpret_cast<char*>(L.data()), Size*sizeof(T));
 
         is.fatalCheck
@@ -136,12 +138,10 @@ Foam::Istream& Foam::operator>>(Foam::Istream& is, FixedList<T, Size>& L)
 template<class T, unsigned Size>
 void Foam::FixedList<T, Size>::writeEntry(Ostream& os) const
 {
-    if
-    (
-        token::compound::isCompound("List<" + word(pTraits<T>::typeName) + '>')
-    )
+    const word tag = "List<" + word(pTraits<T>::typeName) + '>';
+    if (token::compound::isCompound(tag))
     {
-        os  << word("List<" + word(pTraits<T>::typeName) + '>') << " ";
+        os  << tag << " ";
     }
 
     os << *this;
@@ -167,12 +167,10 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const FixedList<T, Size>& L)
     // Write list contents depending on data format
     if (os.format() == IOstream::ASCII || !contiguous<T>())
     {
-        bool uniform = false;
-
-        if (Size > 1 && contiguous<T>())
+        // Can the contents be considered 'uniform' (ie, identical)?
+        bool uniform = (Size > 1 && contiguous<T>());
+        if (uniform)
         {
-            uniform = true;
-
             forAll(L, i)
             {
                 if (L[i] != L[0])
@@ -194,7 +192,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const FixedList<T, Size>& L)
             // Write end delimiter
             os << token::END_BLOCK;
         }
-        else if (Size <= 1 ||(Size < 11 && contiguous<T>()))
+        else if (Size <= 1 || (Size < 11 && contiguous<T>()))
         {
             // Write start delimiter
             os << token::BEGIN_LIST;
@@ -202,7 +200,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const FixedList<T, Size>& L)
             // Write contents
             forAll(L, i)
             {
-                if (i > 0) os << token::SPACE;
+                if (i) os << token::SPACE;
                 os << L[i];
             }
 
@@ -226,6 +224,9 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const FixedList<T, Size>& L)
     }
     else
     {
+        // Contents are binary and contiguous
+
+        // write(...) includes surrounding start/end delimiters
         os.write(reinterpret_cast<const char*>(L.cdata()), Size*sizeof(T));
     }
 
diff --git a/src/OpenFOAM/containers/Lists/List/ListIO.C b/src/OpenFOAM/containers/Lists/List/ListIO.C
index d43fda22d7ea7e4fe2bd67823564801acdd78b3c..bbc55ec10dd7a1db58ba92aa9951f3e618a902b5 100644
--- a/src/OpenFOAM/containers/Lists/List/ListIO.C
+++ b/src/OpenFOAM/containers/Lists/List/ListIO.C
@@ -92,6 +92,8 @@ Foam::Istream& Foam::operator>>(Istream& is, List<T>& L)
                 }
                 else
                 {
+                    // uniform content (delimiter == token::BEGIN_BLOCK)
+
                     T element;
                     is >> element;
 
@@ -113,6 +115,8 @@ Foam::Istream& Foam::operator>>(Istream& is, List<T>& L)
         }
         else
         {
+            // contents are binary and contiguous
+
             if (s)
             {
                 is.read(reinterpret_cast<char*>(L.data()), s*sizeof(T));
diff --git a/src/OpenFOAM/containers/Lists/PackedList/PackedList.C b/src/OpenFOAM/containers/Lists/PackedList/PackedList.C
index 5e0487ebcddbc901d4e89614f429537537a419fb..6addd5d23ebaa6c1177f3cf75031780d2c783478 100644
--- a/src/OpenFOAM/containers/Lists/PackedList/PackedList.C
+++ b/src/OpenFOAM/containers/Lists/PackedList/PackedList.C
@@ -407,12 +407,10 @@ Foam::Ostream& Foam::PackedList<nBits>::write
     // Write list contents depending on data format
     if (os.format() == IOstream::ASCII)
     {
-        bool uniform = false;
-
-        if (sz > 1 && !indexedOutput)
+        // Can the contents be considered 'uniform' (ie, identical)?
+        bool uniform = (sz > 1 && !indexedOutput);
+        if (uniform)
         {
-            uniform = true;
-
             forAll(lst, i)
             {
                 if (lst[i] != lst[0])
@@ -475,9 +473,12 @@ Foam::Ostream& Foam::PackedList<nBits>::write
     }
     else
     {
+        // Contents are binary and contiguous
+
         os  << nl << sz << nl;
         if (sz)
         {
+            // write(...) includes surrounding start/end delimiters
             os.write
             (
                 reinterpret_cast<const char*>(lst.storage().cdata()),
diff --git a/src/OpenFOAM/containers/Lists/SortableList/SortableList.C b/src/OpenFOAM/containers/Lists/SortableList/SortableList.C
index 784b1f9e1d64828e884f752143690bb1a5a3d9fa..fbafc9cf0fb4731eb84e193908ed70246f8c9df1 100644
--- a/src/OpenFOAM/containers/Lists/SortableList/SortableList.C
+++ b/src/OpenFOAM/containers/Lists/SortableList/SortableList.C
@@ -72,6 +72,15 @@ Foam::SortableList<T>::SortableList(const SortableList<T>& lst)
 {}
 
 
+template<class T>
+Foam::SortableList<T>::SortableList(std::initializer_list<T> values)
+:
+    List<T>(values)
+{
+    sort();
+}
+
+
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 
@@ -138,20 +147,27 @@ inline void Foam::SortableList<T>::operator=(const T& t)
 
 
 template<class T>
-inline void Foam::SortableList<T>::operator=(const UList<T>& rhs)
+inline void Foam::SortableList<T>::operator=(const UList<T>& lst)
 {
-    List<T>::operator=(rhs);
+    List<T>::operator=(lst);
     indices_.clear();
 }
 
 
 template<class T>
-inline void Foam::SortableList<T>::operator=(const SortableList<T>& rhs)
+inline void Foam::SortableList<T>::operator=(const SortableList<T>& lst)
 {
-    List<T>::operator=(rhs);
-    indices_ = rhs.indices();
+    List<T>::operator=(lst);
+    indices_ = lst.indices();
+}
+
+
+template<class T>
+inline void Foam::SortableList<T>::operator=(std::initializer_list<T> lst)
+{
+    List<T>::operator=(lst);
+    sort();
 }
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 // ************************************************************************* //
diff --git a/src/OpenFOAM/containers/Lists/SortableList/SortableList.H b/src/OpenFOAM/containers/Lists/SortableList/SortableList.H
index a6f4b4586ceca2bb6c21c855cc52aa333615072c..65fb6dc7f41e700d6db90b1f542c9afe9242e5de 100644
--- a/src/OpenFOAM/containers/Lists/SortableList/SortableList.H
+++ b/src/OpenFOAM/containers/Lists/SortableList/SortableList.H
@@ -67,33 +67,36 @@ public:
         //- Null constructor, sort later (eg, after assignment or transfer)
         SortableList();
 
-        //- Construct from UList, sorting immediately.
+        //- Construct from UList, sorting immediately
         explicit SortableList(const UList<T>&);
 
-        //- Construct from transferred List, sorting immediately.
+        //- Construct from transferred List, sorting immediately
         explicit SortableList(const Xfer<List<T>>&);
 
-        //- Construct given size. Sort later on.
+        //- Construct given size. Sort later on
         //  The indices remain empty until the list is sorted
         explicit SortableList(const label size);
 
-        //- Construct given size and initial value. Sort later on.
+        //- Construct given size and initial value. Sort later on
         //  The indices remain empty until the list is sorted
         SortableList(const label size, const T&);
 
-        //- Construct as copy.
+        //- Construct as copy
         SortableList(const SortableList<T>&);
 
+        //- Construct from an initializer list, sorting immediately
+        SortableList(std::initializer_list<T>);
+
 
     // Member Functions
 
-        //- Return the list of sorted indices. Updated every sort.
+        //- Return the list of sorted indices. Updated every sort
         const labelList& indices() const
         {
             return indices_;
         }
 
-        //- Return non-const access to the sorted indices. Updated every sort.
+        //- Return non-const access to the sorted indices. Updated every sort
         labelList& indices()
         {
             return indices_;
@@ -121,12 +124,14 @@ public:
         //- Assignment of all entries to the given value
         inline void operator=(const T&);
 
-        //- Assignment to UList operator. Takes linear time.
+        //- Assignment to UList operator. Takes linear time
         inline void operator=(const UList<T>&);
 
-        //- Assignment operator. Takes linear time.
+        //- Assignment operator. Takes linear time
         inline void operator=(const SortableList<T>&);
 
+        //- Assignment to an initializer list
+        void operator=(std::initializer_list<T>);
 };
 
 
diff --git a/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectListIO.C b/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectListIO.C
index 18f1f5fe94a5f2d7f1b8ca510d8e88ee0be6a841..3b52f8484cb6a25fb4990dab53d21235631bd966 100644
--- a/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectListIO.C
+++ b/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectListIO.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -40,12 +40,10 @@ Foam::Ostream& Foam::operator<<
     // Write list contents depending on data format
     if (os.format() == IOstream::ASCII || !contiguous<T>())
     {
-        bool uniform = false;
-
-        if (L.size() > 1 && contiguous<T>())
+        // Can the contents be considered 'uniform' (ie, identical)?
+        bool uniform = (L.size() > 1 && contiguous<T>());
+        if (uniform)
         {
-            uniform = true;
-
             forAll(L, i)
             {
                 if (L[i] != L[0])
@@ -99,14 +97,15 @@ Foam::Ostream& Foam::operator<<
     }
     else
     {
-        // this is annoying, and wasteful, but there's currently no alternative
-
+        // Contents are binary and contiguous
         os << nl << L.size() << nl;
 
         if (L.size())
         {
+            // This is annoying, and wasteful, but currently no alternative
             List<T> lst = L();
 
+            // write(...) includes surrounding start/end delimiters
             os.write
             (
                 reinterpret_cast<const char*>(lst.cdata()),
diff --git a/src/OpenFOAM/containers/Lists/UList/UList.H b/src/OpenFOAM/containers/Lists/UList/UList.H
index ee574c33ec76ec204c0d60b900fe81ba5edce8ed..719df10a0f00cf28afdb2549d7a1e8359510189c 100644
--- a/src/OpenFOAM/containers/Lists/UList/UList.H
+++ b/src/OpenFOAM/containers/Lists/UList/UList.H
@@ -219,7 +219,7 @@ public:
         //- Copy elements of the given UList
         void deepCopy(const UList<T>&);
 
-        //- Write the UList as a dictionary entry
+        //- Write the UList with its compound type
         void writeEntry(Ostream&) const;
 
         //- Write the UList as a dictionary entry with keyword
diff --git a/src/OpenFOAM/containers/Lists/UList/UListIO.C b/src/OpenFOAM/containers/Lists/UList/UListIO.C
index e31b5dd2bcc1933483b32dde4428a58b8d1c4ab7..a4648137cfc853bb1c882e96ddacfdd575ab9d20 100644
--- a/src/OpenFOAM/containers/Lists/UList/UListIO.C
+++ b/src/OpenFOAM/containers/Lists/UList/UListIO.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -34,19 +34,25 @@ License
 template<class T>
 void Foam::UList<T>::writeEntry(Ostream& os) const
 {
-    if
-    (
-        size()
-     && token::compound::isCompound
-        (
-            "List<" + word(pTraits<T>::typeName) + '>'
-        )
-    )
+    if (size())
+    {
+        const word tag = "List<" + word(pTraits<T>::typeName) + '>';
+        if (token::compound::isCompound(tag))
+        {
+            os  << tag << ' ';
+        }
+        os << *this;
+    }
+    else if (os.format() == IOstream::ASCII)
     {
-        os  << word("List<" + word(pTraits<T>::typeName) + '>') << " ";
+        // Zero-sized ASCII - Write size and delimiters
+        os  << 0 << token::BEGIN_LIST << token::END_LIST;
+    }
+    else
+    {
+        // Zero-sized binary - Write size only
+        os  << 0;
     }
-
-    os << *this;
 }
 
 
@@ -65,12 +71,10 @@ Foam::Ostream& Foam::operator<<(Foam::Ostream& os, const Foam::UList<T>& L)
     // Write list contents depending on data format
     if (os.format() == IOstream::ASCII || !contiguous<T>())
     {
-        bool uniform = false;
-
-        if (L.size() > 1 && contiguous<T>())
+        // Can the contents be considered 'uniform' (ie, identical)?
+        bool uniform = (L.size() > 1 && contiguous<T>());
+        if (uniform)
         {
-            uniform = true;
-
             forAll(L, i)
             {
                 if (L[i] != L[0])
@@ -100,7 +104,7 @@ Foam::Ostream& Foam::operator<<(Foam::Ostream& os, const Foam::UList<T>& L)
             // Write contents
             forAll(L, i)
             {
-                if (i > 0) os << token::SPACE;
+                if (i) os << token::SPACE;
                 os << L[i];
             }
 
@@ -124,10 +128,13 @@ Foam::Ostream& Foam::operator<<(Foam::Ostream& os, const Foam::UList<T>& L)
     }
     else
     {
+        // Contents are binary and contiguous
         os << nl << L.size() << nl;
+
         if (L.size())
         {
-            os.write(reinterpret_cast<const char*>(L.v_), L.byteSize());
+            // write(...) includes surrounding start/end delimiters
+            os.write(reinterpret_cast<const char*>(L.cdata()), L.byteSize());
         }
     }
 
@@ -208,6 +215,8 @@ Foam::Istream& Foam::operator>>(Istream& is, UList<T>& L)
                 }
                 else
                 {
+                    // uniform content (delimiter == token::BEGIN_BLOCK)
+
                     T element;
                     is >> element;
 
@@ -229,6 +238,8 @@ Foam::Istream& Foam::operator>>(Istream& is, UList<T>& L)
         }
         else
         {
+            // contents are binary and contiguous
+
             if (s)
             {
                 is.read(reinterpret_cast<char*>(L.data()), s*sizeof(T));
diff --git a/src/OpenFOAM/containers/NamedEnum/NamedEnum.C b/src/OpenFOAM/containers/NamedEnum/NamedEnum.C
index ba5bd4999dc79a4cf08033c0655beeea8657f5ac..99f723d987f70096c3962c70589d1938bf06dfb5 100644
--- a/src/OpenFOAM/containers/NamedEnum/NamedEnum.C
+++ b/src/OpenFOAM/containers/NamedEnum/NamedEnum.C
@@ -120,4 +120,23 @@ Foam::wordList Foam::NamedEnum<Enum, nEnum>::words()
 }
 
 
+template<class Enum, int nEnum>
+Foam::List<Enum> Foam::NamedEnum<Enum, nEnum>::enums()
+{
+    List<Enum> lst(nEnum);
+
+    label nElem = 0;
+    for (int enumI = 0; enumI < nEnum; ++enumI)
+    {
+        if (names[enumI] && names[enumI][0])
+        {
+            lst[nElem++] = Enum(enumI);
+        }
+    }
+
+    lst.setSize(nElem);
+    return lst;
+}
+
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/containers/NamedEnum/NamedEnum.H b/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
index 32cb6030228661190775cb276a8ff60767e940ac..c96703ce29e64f3b681cc75b225447722bf73ee0 100644
--- a/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
+++ b/src/OpenFOAM/containers/NamedEnum/NamedEnum.H
@@ -45,6 +45,9 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration
+template<class Enum, int> class NamedEnum;
+
 /*---------------------------------------------------------------------------*\
                           Class NamedEnum Declaration
 \*---------------------------------------------------------------------------*/
@@ -60,10 +63,10 @@ class NamedEnum
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
-        NamedEnum(const NamedEnum&);
+        NamedEnum(const NamedEnum&) = delete;
 
         //- Disallow default bitwise assignment
-        void operator=(const NamedEnum&);
+        void operator=(const NamedEnum&) = delete;
 
 
 public:
@@ -95,6 +98,9 @@ public:
         //- The set of names as a list of words
         static wordList words();
 
+        //- List of enumerations
+        static List<Enum> enums();
+
 
     // Member Operators
 
diff --git a/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.C b/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.C
index 4131da7af459435835a59018b292d4834d6c0988..754c5fb1859c243573b5371b9327f2ca1bac0dfe 100644
--- a/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.C
+++ b/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.C
@@ -79,11 +79,9 @@ Foam::Ostream& Foam::Ostream::writeKeyword(const keyType& kw)
 }
 
 
-Foam::Ostream& Foam::Ostream::beginBlock(const word& keyword)
+Foam::Ostream& Foam::Ostream::beginBlock(const keyType& keyword)
 {
-    indent();
-    write(keyword);
-    endl();
+    indent(); write(keyword); write('\n');
     beginBlock();
 
     return *this;
@@ -92,8 +90,7 @@ Foam::Ostream& Foam::Ostream::beginBlock(const word& keyword)
 
 Foam::Ostream& Foam::Ostream::beginBlock()
 {
-    indent();
-    write(char(token::BEGIN_BLOCK));
+    indent(); write(char(token::BEGIN_BLOCK)); write('\n');
     incrIndent();
 
     return *this;
@@ -103,8 +100,15 @@ Foam::Ostream& Foam::Ostream::beginBlock()
 Foam::Ostream& Foam::Ostream::endBlock()
 {
     decrIndent();
-    indent();
-    write(char(token::END_BLOCK));
+    indent(); write(char(token::END_BLOCK)); write('\n');
+
+    return *this;
+}
+
+
+Foam::Ostream& Foam::Ostream::endEntry()
+{
+    write(char(token::END_STATEMENT)); write('\n');
 
     return *this;
 }
diff --git a/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.H b/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.H
index 0bd02a5b55363c2c47ce1c17f64a5e91fcd5e0a5..1634689c641170380f8f11a4fc390245a88e9f40 100644
--- a/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.H
+++ b/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.H
@@ -154,33 +154,47 @@ public:
                 return indentLevel_;
             }
 
-            //- Incrememt the indent level
+            //- Increment the indent level
             void incrIndent()
             {
                 ++indentLevel_;
             }
 
-            //- Decrememt the indent level
+            //- Decrement the indent level
             void decrIndent();
 
             //- Write the keyword followed by an appropriate indentation
             virtual Ostream& writeKeyword(const keyType&);
 
             //- Write begin block group with the given name
-            //  Uses the appropriate indentation,
-            //  does not include a trailing newline.
-            virtual Ostream& beginBlock(const word&);
+            //  Increments indentation, adds newline.
+            virtual Ostream& beginBlock(const keyType&);
 
             //- Write begin block group without a name
-            //  Uses the appropriate indentation,
-            //  does not include a trailing newline.
+            //  Increments indentation, adds newline.
             virtual Ostream& beginBlock();
 
             //- Write end block group
-            //  Uses the appropriate indentation,
-            //  does not include a trailing newline.
+            //  Decrements indentation, adds newline.
             virtual Ostream& endBlock();
 
+            //- Write end entry (';') followed by newline.
+            virtual Ostream& endEntry();
+
+            //- Write a keyword/value entry.
+            //  The following two are functionally equivalent:
+            // \code
+            // os.writeEntry(key, value);
+            //
+            // os.writeKeyword(key) << value << endEntry;
+            // \endcode
+            template<class T>
+            Ostream& writeEntry(const keyType& key, const T& value)
+            {
+                writeKeyword(key) << value;
+                return endEntry();
+            }
+
 
         // Stream state functions
 
@@ -273,6 +287,32 @@ inline Ostream& endl(Ostream& os)
 }
 
 
+//- Write begin block group without a name
+//  Increments indentation, adds newline.
+inline Ostream& beginBlock(Ostream& os)
+{
+    os.beginBlock();
+    return os;
+}
+
+
+//- Write end block group
+//  Decrements indentation, adds newline.
+inline Ostream& endBlock(Ostream& os)
+{
+    os.endBlock();
+    return os;
+}
+
+
+//- Write end entry (';') followed by newline.
+inline Ostream& endEntry(Ostream& os)
+{
+    os.endEntry();
+    return os;
+}
+
+
 // Useful aliases for tab and newline characters
 static const char tab = '\t';
 static const char nl = '\n';
diff --git a/src/OpenFOAM/db/dictionary/dictionary.H b/src/OpenFOAM/db/dictionary/dictionary.H
index 8c4d544f4dc98af893fb2b60ec5fe29ef90b18fb..4a7c72843715d93358aac1d92195376a9453250e 100644
--- a/src/OpenFOAM/db/dictionary/dictionary.H
+++ b/src/OpenFOAM/db/dictionary/dictionary.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -503,6 +503,14 @@ public:
 
         // Write
 
+            //- Write sub-dictionary with the keyword as its header
+            void writeEntry(const keyType& keyword, Ostream&) const;
+
+            //- Write dictionary entries.
+            //  Optionally with extra new line between entries for
+            //  "top-level" dictionaries
+            void writeEntries(Ostream&, const bool extraNewLine=false) const;
+
             //- Write dictionary, normally with sub-dictionary formatting
             void write(Ostream&, const bool subDict=true) const;
 
diff --git a/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C b/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C
index 677d5beaaca5aced998c9468822c714e2305024e..0b2c5315eccba1f8844f0f6d0f3684f8a6c266de 100644
--- a/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C
+++ b/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -68,10 +68,7 @@ Foam::dictionaryEntry::dictionaryEntry
 
 void Foam::dictionaryEntry::write(Ostream& os) const
 {
-    // write keyword with indent but without trailing spaces
-    os.indent();
-    os.write(keyword());
-    dictionary::write(os);
+    dictionary::writeEntry(keyword(), os);
 }
 
 
diff --git a/src/OpenFOAM/db/dictionary/dictionaryIO.C b/src/OpenFOAM/db/dictionary/dictionaryIO.C
index d2880798fc4489cc60e404b8c9a06bd03c48269d..081068488f3674191423f3a879f4fcfd30b18513 100644
--- a/src/OpenFOAM/db/dictionary/dictionaryIO.C
+++ b/src/OpenFOAM/db/dictionary/dictionaryIO.C
@@ -170,14 +170,16 @@ Foam::Istream& Foam::operator>>(Istream& is, dictionary& dict)
 
 // * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * * //
 
-void Foam::dictionary::write(Ostream& os, bool subDict) const
+void Foam::dictionary::writeEntry(const keyType& kw, Ostream& os) const
 {
-    if (subDict)
-    {
-        os  << nl;
-        os.beginBlock() << nl;
-    }
+    os.beginBlock(kw);
+    writeEntries(os);
+    os.endBlock() << flush;
+}
+
 
+void Foam::dictionary::writeEntries(Ostream& os, const bool extraNewLine) const
+{
     forAllConstIter(IDLList<entry>, *this, iter)
     {
         const entry& e = *iter;
@@ -185,8 +187,9 @@ void Foam::dictionary::write(Ostream& os, bool subDict) const
         // Write entry
         os  << e;
 
-        // Add extra new line between entries for "top-level" dictionaries
-        if (!subDict && parent() == dictionary::null && e != *last())
+        // Add extra new line between entries for "top-level" dictionaries,
+        // but not after the last entry (looks ugly).
+        if (extraNewLine && parent() == dictionary::null && e != *last())
         {
             os  << nl;
         }
@@ -200,10 +203,22 @@ void Foam::dictionary::write(Ostream& os, bool subDict) const
                 << endl;
         }
     }
+}
+
+
+void Foam::dictionary::write(Ostream& os, const bool subDict) const
+{
+    if (subDict)
+    {
+        os  << nl;
+        os.beginBlock();
+    }
+
+    writeEntries(os, !subDict);
 
     if (subDict)
     {
-        os.endBlock() << endl;
+        os.endBlock() << flush;
     }
 }
 
diff --git a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H
index 40a626c30fc07abce97c9e45948e7d96df06b571..97d94cadfd10d5145cbc2b9a77ffaa2e1d0f3b17 100644
--- a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H
+++ b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H
@@ -139,10 +139,10 @@ class functionObject
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
-        functionObject(const functionObject&);
+        functionObject(const functionObject&) = delete;
 
         //- Disallow default bitwise assignment
-        void operator=(const functionObject&);
+        void operator=(const functionObject&) = delete;
 
 
 public:
diff --git a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
index c2c8309b4584e62d55e279317a41563e97787af0..861006bbbf600ccf1f1d860e003609b9e1c53220 100644
--- a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
+++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
@@ -174,7 +174,8 @@ bool Foam::functionObjectList::readFunctionObject
 (
     const string& funcNameArgs,
     dictionary& functionsDict,
-    HashSet<word>& requiredFields
+    HashSet<word>& requiredFields,
+    const word& region
 )
 {
     // Parse the optional functionObject arguments:
@@ -314,6 +315,12 @@ bool Foam::functionObjectList::readFunctionObject
         funcDict.set(entry::New(entryStream).ptr());
     }
 
+    // Insert the region name if specified
+    if (region != word::null)
+    {
+        funcDict.set("region", region);
+    }
+
     // Merge this functionObject dictionary into functionsDict
     dictionary funcArgsDict;
     funcArgsDict.add(string::validate<word>(funcNameArgs), funcDict);
@@ -377,6 +384,14 @@ Foam::autoPtr<Foam::functionObjectList> Foam::functionObjectList::New
 
     dictionary& functionsDict = controlDict.subDict("functions");
 
+    word region = word::null;
+
+    // Set the region name if specified
+    if (args.optionFound("region"))
+    {
+        region = args["region"];
+    }
+
     if
     (
         args.optionFound("dict")
@@ -402,7 +417,13 @@ Foam::autoPtr<Foam::functionObjectList> Foam::functionObjectList::New
 
         if (args.optionFound("func"))
         {
-            readFunctionObject(args["func"], functionsDict, requiredFields);
+            readFunctionObject
+            (
+                args["func"],
+                functionsDict,
+                requiredFields,
+                region
+            );
         }
 
         if (args.optionFound("funcs"))
@@ -411,7 +432,13 @@ Foam::autoPtr<Foam::functionObjectList> Foam::functionObjectList::New
 
             forAll(funcs, i)
             {
-                readFunctionObject(funcs[i], functionsDict, requiredFields);
+                readFunctionObject
+                (
+                    funcs[i],
+                    functionsDict,
+                    requiredFields,
+                    region
+                );
             }
         }
 
@@ -701,12 +728,14 @@ bool Foam::functionObjectList::read()
                             "functionObject::" + objPtr->name() + "::read"
                         );
 
-                        ok = objPtr->read(dict) && ok;
+                        enabled = objPtr->read(dict);
+                        ok = enabled && ok;
                     }
                 }
-                else
+
+                if (!enabled)
                 {
-                    // Delete the disabled functionObject
+                    // Delete the disabled/invalid(read) functionObject
                     delete objPtr;
                     objPtr = nullptr;
                     continue;
diff --git a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H
index 5d827a91325f12274e1ae244728a81cb50b45097..917c71fc283cafda53fffabab522bd5150ddf8ee 100644
--- a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H
+++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H
@@ -234,7 +234,8 @@ public:
         (
             const string& funcNameArgs0,
             dictionary& functionsDict,
-            HashSet<word>& requiredFields
+            HashSet<word>& requiredFields,
+            const word& region = word::null
         );
 
         //- Read and set the function objects if their data have changed
diff --git a/src/OpenFOAM/db/functionObjects/regionFunctionObject/regionFunctionObject.H b/src/OpenFOAM/db/functionObjects/regionFunctionObject/regionFunctionObject.H
index 9af84c0f87609c5eeea1494c8498c2b20d9465e4..e9be6e3487ee72f6ad37584d6b7461ead5b9381c 100644
--- a/src/OpenFOAM/db/functionObjects/regionFunctionObject/regionFunctionObject.H
+++ b/src/OpenFOAM/db/functionObjects/regionFunctionObject/regionFunctionObject.H
@@ -80,10 +80,11 @@ protected:
         const ObjectType& lookupObject(const word& fieldName) const;
 
         //- Store the given field in the objectRegistry under the given name
+        //  Note: sets the fieldName to tfield().name() if not already set
         template<class ObjectType>
         bool store
         (
-            const word& fieldName,
+            word& fieldName,
             const tmp<ObjectType>& tfield,
             bool cacheable = false
         );
diff --git a/src/OpenFOAM/db/functionObjects/regionFunctionObject/regionFunctionObjectTemplates.C b/src/OpenFOAM/db/functionObjects/regionFunctionObject/regionFunctionObjectTemplates.C
index 76327e4d20acef37f750e58810ed0d831fef4d26..5c803a73df2089628b03d1b24e36fb790d12c76e 100644
--- a/src/OpenFOAM/db/functionObjects/regionFunctionObject/regionFunctionObjectTemplates.C
+++ b/src/OpenFOAM/db/functionObjects/regionFunctionObject/regionFunctionObjectTemplates.C
@@ -51,7 +51,7 @@ const ObjectType& Foam::functionObjects::regionFunctionObject::lookupObject
 template<class ObjectType>
 bool Foam::functionObjects::regionFunctionObject::store
 (
-    const word& fieldName,
+    word& fieldName,
     const tmp<ObjectType>& tfield,
     bool cacheable
 )
@@ -90,6 +90,10 @@ bool Foam::functionObjects::regionFunctionObject::store
         {
             tfield.ref().rename(fieldName);
         }
+        else
+        {
+            fieldName = tfield().name();
+        }
 
         obr_.objectRegistry::store(tfield.ptr());
     }
diff --git a/src/OpenFOAM/fields/Fields/Field/Field.C b/src/OpenFOAM/fields/Fields/Field/Field.C
index dfd8a413e3842b99ffbfe7461389609fe85149fc..997135bc34d84fa693a4cc712dee1e6a82b62e5d 100644
--- a/src/OpenFOAM/fields/Fields/Field/Field.C
+++ b/src/OpenFOAM/fields/Fields/Field/Field.C
@@ -244,6 +244,13 @@ Foam::Field<Type>::Field(const UList<Type>& list)
 {}
 
 
+template<class Type>
+Foam::Field<Type>::Field(const UIndirectList<Type>& list)
+:
+    List<Type>(list)
+{}
+
+
 #ifndef NoConstructFromTmp
 template<class Type>
 Foam::Field<Type>::Field(const tmp<Field<Type>>& tf)
@@ -720,12 +727,10 @@ void Foam::Field<Type>::writeEntry(const word& keyword, Ostream& os) const
 {
     os.writeKeyword(keyword);
 
-    bool uniform = false;
-
-    if (this->size() && contiguous<Type>())
+    // Can the contents be considered 'uniform' (ie, identical)?
+    bool uniform = (this->size() && contiguous<Type>());
+    if (uniform)
     {
-        uniform = true;
-
         forAll(*this, i)
         {
             if (this->operator[](i) != this->operator[](0))
diff --git a/src/OpenFOAM/fields/Fields/Field/Field.H b/src/OpenFOAM/fields/Fields/Field/Field.H
index edb788a1b39dda70fc85bded0fb5898d9bf1e671..6fcab57ea0d4b7e842c54e8f3cfae341dd5023f1 100644
--- a/src/OpenFOAM/fields/Fields/Field/Field.H
+++ b/src/OpenFOAM/fields/Fields/Field/Field.H
@@ -123,6 +123,9 @@ public:
         //- Construct as copy of a UList\<Type\>
         explicit Field(const UList<Type>&);
 
+        //- Construct as copy of a UIndirectList\<Type\>
+        explicit Field(const UIndirectList<Type>&);
+
         //- Construct by transferring the List contents
         explicit Field(const Xfer<List<Type>>&);
 
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C
index fe43d9225db276ae5d9f2fc50cd57373e7d0be0d..7e273aa9fd26af46e829988578f7fd626eab7351 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C
@@ -569,16 +569,16 @@ template<class Type, template<class> class PatchField, class GeoMesh>
 void Foam::GeometricField<Type, PatchField, GeoMesh>::Boundary::
 writeEntry(const word& keyword, Ostream& os) const
 {
-    os.beginBlock(keyword) << nl;
+    os.beginBlock(keyword);
 
     forAll(*this, patchi)
     {
-        os.beginBlock(this->operator[](patchi).patch().name()) << nl;
+        os.beginBlock(this->operator[](patchi).patch().name());
         os  << this->operator[](patchi);
-        os.endBlock() << endl;
+        os.endBlock();
     }
 
-    os.endBlock() << endl;
+    os.endBlock() << flush;
 
     // Check state of IOstream
     os.check
diff --git a/src/OpenFOAM/fields/cloud/cloud.C b/src/OpenFOAM/fields/cloud/cloud.C
index 3a7b98e96808bacc70ba2b11241ed577b282c25e..69cba912e0e2385cc6b7f06988a201f14311bfbc 100644
--- a/src/OpenFOAM/fields/cloud/cloud.C
+++ b/src/OpenFOAM/fields/cloud/cloud.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -30,10 +30,10 @@ License
 
 namespace Foam
 {
-defineTypeNameAndDebug(cloud, 0);
+    defineTypeNameAndDebug(cloud, 0);
 
-const word cloud::prefix("lagrangian");
-word cloud::defaultName("defaultCloud");
+    const word cloud::prefix("lagrangian");
+    word cloud::defaultName("defaultCloud");
 }
 
 
@@ -45,7 +45,7 @@ Foam::cloud::cloud(const objectRegistry& obr, const word& cloudName)
     (
         IOobject
         (
-            (cloudName.size() ? cloudName : defaultName),
+            cloudName,
             obr.time().timeName(),
             prefix,
             obr,
diff --git a/src/OpenFOAM/fields/cloud/cloud.H b/src/OpenFOAM/fields/cloud/cloud.H
index 457858838023482daf5c4d5ad5e2efd34a76ba22..9b7aa4329177c47019461d01317a9295491a4d47 100644
--- a/src/OpenFOAM/fields/cloud/cloud.H
+++ b/src/OpenFOAM/fields/cloud/cloud.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -78,7 +78,7 @@ public:
     // Constructors
 
         //- Construct for the given objectRegistry and named cloud instance
-        cloud(const objectRegistry&, const word& cloudName = "");
+        cloud(const objectRegistry&, const word& cloudName = defaultName);
 
 
     //- Destructor
diff --git a/src/OpenFOAM/global/profiling/profiling.C b/src/OpenFOAM/global/profiling/profiling.C
index 647102285050efd93a02d7e877d8436ac7a26aeb..10c61852ad093c76a5833b32051326887f953956 100644
--- a/src/OpenFOAM/global/profiling/profiling.C
+++ b/src/OpenFOAM/global/profiling/profiling.C
@@ -41,17 +41,6 @@ Foam::label Foam::profiling::Information::nextId_(0);
 
 // * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
 
-// file-scope function
-template<class T>
-inline static void writeEntry
-(
-    Foam::Ostream& os, const Foam::word& key, const T& value
-)
-{
-    os.writeKeyword(key) << value << Foam::token::END_STATEMENT << '\n';
-}
-
-
 Foam::label Foam::profiling::Information::getNextId()
 {
     return nextId_++;
@@ -369,7 +358,7 @@ void Foam::profiling::Information::update(const scalar& elapsed)
 
 bool Foam::profiling::writeData(Ostream& os) const
 {
-    os.beginBlock("profiling") << nl; // FUTURE: without nl
+    os.beginBlock("profiling");
 
     // Add extra new line between entries
     label nTrigger = 0;
@@ -420,22 +409,22 @@ bool Foam::profiling::writeData(Ostream& os) const
         }
     }
 
-    os.endBlock() << nl; // FUTURE: without nl
+    os.endBlock();
 
     if (sysInfo_)
     {
         os << nl;
-        os.beginBlock("sysInfo") << nl; // FUTURE: without nl
+        os.beginBlock("sysInfo");
         sysInfo_->write(os);
-        os.endBlock() << nl; // FUTURE: without nl
+        os.endBlock();
     }
 
     if (cpuInfo_)
     {
         os << nl;
-        os.beginBlock("cpuInfo") << nl; // FUTURE: without nl
+        os.beginBlock("cpuInfo");
         cpuInfo_->write(os);
-        os.endBlock() << nl; // FUTURE: without nl
+        os.endBlock();
     }
 
     if (memInfo_)
@@ -443,10 +432,10 @@ bool Foam::profiling::writeData(Ostream& os) const
         memInfo_->update();
 
         os << nl;
-        os.beginBlock("memInfo") << nl; // FUTURE: without nl
+        os.beginBlock("memInfo");
         memInfo_->write(os);
-        writeEntry(os, "units", "kB");
-        os.endBlock() << nl; // FUTURE: without nl
+        os.writeEntry("units", "kB");
+        os.endBlock();
     }
 
     return os;
@@ -536,26 +525,24 @@ Foam::Ostream& Foam::profiling::Information::write
 {
     // write in dictionary format
 
-    os.beginBlock("trigger" + Foam::name(id_)) << nl; // FUTURE: without nl
-
-    // FUTURE: os.writeEntry(key, value);
+    os.beginBlock(word("trigger" + Foam::name(id_)));
 
-    writeEntry(os, "id",            id_);
+    os.writeEntry("id",             id_);
     if (id_ != parent().id())
     {
-        writeEntry(os, "parentId",  parent().id());
+        os.writeEntry("parentId",   parent().id());
     }
-    writeEntry(os, "description",   description());
-    writeEntry(os, "calls",         calls()     + (offset ? 1 : 0));
-    writeEntry(os, "totalTime",     totalTime() + elapsedTime);
-    writeEntry(os, "childTime",     childTime() + childTimes);
+    os.writeEntry("description",    description());
+    os.writeEntry("calls",          calls()     + (offset ? 1 : 0));
+    os.writeEntry("totalTime",      totalTime() + elapsedTime);
+    os.writeEntry("childTime",      childTime() + childTimes);
     if (maxMem_)
     {
-        writeEntry(os, "maxMem",    maxMem_);
+        os.writeEntry("maxMem",     maxMem_);
     }
-    writeEntry(os, "onStack",       Switch(onStack()));
+    os.writeEntry("onStack",        Switch(onStack()));
 
-    os.endBlock() << nl; // FUTURE: without nl
+    os.endBlock();
 
     return os;
 }
diff --git a/src/OpenFOAM/global/profiling/profilingSysInfo.C b/src/OpenFOAM/global/profiling/profilingSysInfo.C
index 9b6ff2f34b9f2ac463fc5fc7d93a9dd7d1ef22ab..51b060173648af2c5d25d7a5314caa799c99a8bc 100644
--- a/src/OpenFOAM/global/profiling/profilingSysInfo.C
+++ b/src/OpenFOAM/global/profiling/profilingSysInfo.C
@@ -29,17 +29,6 @@ License
 
 // * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
 
-// file-scope function
-template<class T>
-inline static void writeEntry
-(
-    Foam::Ostream& os, const Foam::word& key, const T& value
-)
-{
-    os.writeKeyword(key) << value << Foam::token::END_STATEMENT << '\n';
-}
-
-
 // file-scope function
 inline static void printEnv
 (
@@ -49,7 +38,7 @@ inline static void printEnv
     const std::string value = getEnv(envName);
     if (!value.empty())
     {
-        writeEntry(os, key, value);
+        os.writeEntry(key, value);
     }
 }
 
@@ -74,12 +63,12 @@ Foam::Ostream& Foam::profiling::sysInfo::write
     Ostream& os
 ) const
 {
-    writeEntry(os, "host", hostName(false)); // short name
-    writeEntry(os, "date", clock::dateTime());
+    os.writeEntry("host",       hostName(false)); // short name
+    os.writeEntry("date",       clock::dateTime());
 
     // compile-time information
-    writeEntry(os, "version",     std::string(FOAMversion));
-    writeEntry(os, "build",       std::string(FOAMbuild));
+    os.writeEntry("version",    std::string(FOAMversion));
+    os.writeEntry("build",      std::string(FOAMbuild));
 
     printEnv(os, "arch",         "WM_ARCH");
     printEnv(os, "compilerType", "WM_COMPILER_TYPE");
diff --git a/src/OpenFOAM/global/profiling/profilingSysInfo.H b/src/OpenFOAM/global/profiling/profilingSysInfo.H
index 26201fac3607f5d41fca160b3a7b7d96cc2720ef..b2e84f888f74e19a66cb0081ee6b644479fe693f 100644
--- a/src/OpenFOAM/global/profiling/profilingSysInfo.H
+++ b/src/OpenFOAM/global/profiling/profilingSysInfo.H
@@ -51,12 +51,6 @@ class Ostream;
 
 class profiling::sysInfo
 {
-    // Private Static Data Members
-
-
-    // Private Data Members
-
-
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
@@ -72,9 +66,6 @@ protected:
 
         friend class profiling;
 
-
-    // Member Functions
-
 public:
 
 
@@ -90,11 +81,6 @@ public:
 
     // Member Functions
 
-    // Access
-
-
-    // Edit
-
         //- Update it with a new timing information
         void update();
 
diff --git a/src/OpenFOAM/interpolations/patchToPatchInterpolation/PatchToPatchInterpolate.C b/src/OpenFOAM/interpolations/patchToPatchInterpolation/PatchToPatchInterpolate.C
index 5ce595791e6a07bc5ddfcd7d0b16b03a8c9da3be..82857f501924a3dabdacb56f896975316f0905c9 100644
--- a/src/OpenFOAM/interpolations/patchToPatchInterpolation/PatchToPatchInterpolate.C
+++ b/src/OpenFOAM/interpolations/patchToPatchInterpolation/PatchToPatchInterpolate.C
@@ -54,7 +54,7 @@ PatchToPatchInterpolation<FromPatch, ToPatch>::pointInterpolate
         new Field<Type>(toPatch_.nPoints(), Zero)
     );
 
-    Field<Type>& result = tresult();
+    Field<Type>& result = tresult.ref();
 
     const List<typename FromPatch::FaceType>& fromPatchLocalFaces =
         fromPatch_.localFaces();
@@ -118,7 +118,7 @@ PatchToPatchInterpolation<FromPatch, ToPatch>::faceInterpolate
         new Field<Type>(toPatch_.size(), Zero)
     );
 
-    Field<Type>& result = tresult();
+    Field<Type>& result = tresult.ref();
 
     const labelListList& fromPatchFaceFaces = fromPatch_.faceFaces();
 
diff --git a/src/OpenFOAM/matrices/Matrix/MatrixIO.C b/src/OpenFOAM/matrices/Matrix/MatrixIO.C
index 154a0669146a8abda18dab3b84640c4dadace6f1..b965bb37d75c71ec1b99a94ea671e8160a63e2cc 100644
--- a/src/OpenFOAM/matrices/Matrix/MatrixIO.C
+++ b/src/OpenFOAM/matrices/Matrix/MatrixIO.C
@@ -160,15 +160,13 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const Matrix<Form, Type>& M)
     {
         if (mn)
         {
-            bool uniform = false;
-
             const Type* v = M.v_;
 
-            if (mn > 1 && contiguous<Type>())
+            // can the contents be considered 'uniform' (ie, identical)
+            bool uniform = (mn > 1 && contiguous<Type>());
+            if (uniform)
             {
-                uniform = true;
-
-                for (label i=0; i<mn; i++)
+                for (label i=0; i<mn; ++i)
                 {
                     if (v[i] != v[0])
                     {
@@ -180,18 +178,18 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const Matrix<Form, Type>& M)
 
             if (uniform)
             {
-                // Write size of list and start contents delimiter
+                // Write start delimiter
                 os  << token::BEGIN_BLOCK;
 
-                // Write list contents
+                // Write contents
                 os << v[0];
 
-                // Write end of contents delimiter
+                // Write end delimiter
                 os << token::END_BLOCK;
             }
             else if (mn < 10 && contiguous<Type>())
             {
-                // Write size of list and start contents delimiter
+                // Write start contents delimiter
                 os  << token::BEGIN_LIST;
 
                 label k = 0;
@@ -204,7 +202,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const Matrix<Form, Type>& M)
                     // Write row
                     for (label j=0; j< M.n(); j++)
                     {
-                        if (j > 0) os << token::SPACE;
+                        if (j) os << token::SPACE;
                         os << v[k++];
                     }
 
@@ -216,7 +214,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const Matrix<Form, Type>& M)
             }
             else
             {
-                // Write size of list and start contents delimiter
+                // Write start contents delimiter
                 os  << nl << token::BEGIN_LIST;
 
                 label k = 0;
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C
index eb73b6f436d20dd20722788fcae67a9cf6e52c4b..65898e9c1344f2a3d953123f3b173b2469e4b5de 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C
@@ -211,9 +211,9 @@ bool Foam::GAMGAgglomeration::continueAgglomerating
 ) const
 {
     const label nTotalCoarseCells = returnReduce(nCoarseCells, sumOp<label>());
-    if (nTotalCoarseCells >= Pstream::nProcs()*nCellsInCoarsestLevel_)
+    if (nTotalCoarseCells < Pstream::nProcs()*nCellsInCoarsestLevel_)
     {
-        return true;
+        return false;
     }
     else
     {
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.H b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.H
index bbd5f4a0dded39ac9e937d993792f02263f3734d..c4d9f4e6e9f72cc09dfc80fad14f209fb275e9e7 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.H
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolver.H
@@ -42,7 +42,7 @@ Description
       - Coarse matrix scaling: performed by correction scaling, using steepest
         descent optimisation.
       - Type of cycle: V-cycle with optional pre-smoothing.
-      - Coarsest-level matrix solved using PCG or PBiCG.
+      - Coarsest-level matrix solved using PCG or PBiCGStab.
 
 SourceFiles
     GAMGSolver.C
@@ -303,9 +303,9 @@ class GAMGSolver
             const scalar relTol
         ) const;
 
-        //- Create and return the dictionary to specify the PBiCG solver
+        //- Create and return the dictionary to specify the PBiCGStab solver
         //  to solve the coarsest level
-        dictionary PBiCGsolverDict
+        dictionary PBiCGStabSolverDict
         (
             const scalar tol,
             const scalar relTol
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C
index fbd1b401798a8fa92f9a62e253f31b3996fdd7a3..c4157d57f2cf205d42982d066fc77d0d183bb13a 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C
@@ -25,7 +25,7 @@ License
 
 #include "GAMGSolver.H"
 #include "PCG.H"
-#include "PBiCG.H"
+#include "PBiCGStab.H"
 #include "SubField.H"
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
@@ -533,13 +533,13 @@ Foam::dictionary Foam::GAMGSolver::PCGsolverDict
 }
 
 
-Foam::dictionary Foam::GAMGSolver::PBiCGsolverDict
+Foam::dictionary Foam::GAMGSolver::PBiCGStabSolverDict
 (
     const scalar tol,
     const scalar relTol
 ) const
 {
-    dictionary dict(IStringStream("solver PBiCG; preconditioner DILU;")());
+    dictionary dict(IStringStream("solver PBiCGStab; preconditioner DILU;")());
     dict.add("tolerance", tol);
     dict.add("relTol", relTol);
 
@@ -612,14 +612,14 @@ void Foam::GAMGSolver::solveCoarsestLevel
     //
     //            if (allMatrix.asymmetric())
     //            {
-    //                coarseSolverPerf = PBiCG
+    //                coarseSolverPerf = PBiCGStab
     //                (
     //                    "coarsestLevelCorr",
     //                    allMatrix,
     //                    procInterfaceLevelsBouCoeffs_[coarsestLevel],
     //                    procInterfaceLevelsIntCoeffs_[coarsestLevel],
     //                    procInterfaceLevels_[coarsestLevel],
-    //                    PBiCGsolverDict(tolerance_, relTol_)
+    //                    PBiCGStabSolverDict(tolerance_, relTol_)
     //                ).solve
     //                (
     //                    coarsestCorrField,
@@ -673,14 +673,14 @@ void Foam::GAMGSolver::solveCoarsestLevel
 
         if (matrixLevels_[coarsestLevel].asymmetric())
         {
-            coarseSolverPerf = PBiCG
+            coarseSolverPerf = PBiCGStab
             (
                 "coarsestLevelCorr",
                 matrixLevels_[coarsestLevel],
                 interfaceLevelsBouCoeffs_[coarsestLevel],
                 interfaceLevelsIntCoeffs_[coarsestLevel],
                 interfaceLevels_[coarsestLevel],
-                PBiCGsolverDict(tolerance_, relTol_)
+                PBiCGStabSolverDict(tolerance_, relTol_)
             ).solve
             (
                 coarsestCorrField,
diff --git a/src/OpenFOAM/memory/autoPtr/autoPtr.H b/src/OpenFOAM/memory/autoPtr/autoPtr.H
index 77dd1966cf975459f1d00bc8a8a95e08dfdfac63..5da9a9ff03e5862d59d066f40160c075c2782eea 100644
--- a/src/OpenFOAM/memory/autoPtr/autoPtr.H
+++ b/src/OpenFOAM/memory/autoPtr/autoPtr.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -108,6 +108,23 @@ public:
             inline void clear();
 
 
+        // Access
+
+            //- Return the pointer, without nullptr checking.
+            //  Pointer remains under autoPtr management.
+            inline T* rawPtr();
+
+            //- Const access to the pointer, without nullptr checking.
+            //  Pointer remains under autoPtr management.
+            inline const T* rawPtr() const;
+
+            //- Return the reference, without nullptr checking.
+            inline T& rawRef();
+
+            //- Return the const reference, without nullptr checking.
+            inline const T& rawRef() const;
+
+
         // Member operators
 
             //- Return reference to the object data
diff --git a/src/OpenFOAM/memory/autoPtr/autoPtrI.H b/src/OpenFOAM/memory/autoPtr/autoPtrI.H
index 7c35448f7dfb24d9534f9057a7c6c204c244d0c6..cb991b7f9ed838981893e3ba2040f5d21ffc22a4 100644
--- a/src/OpenFOAM/memory/autoPtr/autoPtrI.H
+++ b/src/OpenFOAM/memory/autoPtr/autoPtrI.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -129,6 +129,34 @@ inline void Foam::autoPtr<T>::clear()
 }
 
 
+template<class T>
+inline T* Foam::autoPtr<T>::rawPtr()
+{
+    return ptr_;
+}
+
+
+template<class T>
+inline const T* Foam::autoPtr<T>::rawPtr() const
+{
+    return ptr_;
+}
+
+
+template<class T>
+inline T& Foam::autoPtr<T>::rawRef()
+{
+    return *ptr_;
+}
+
+
+template<class T>
+inline const T& Foam::autoPtr<T>::rawRef() const
+{
+    return *ptr_;
+}
+
+
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
 
 template<class T>
diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C
index c1c504957c7ac5edc8c30cce963acedd77e743ae..60a22158d6c838524feb90ee8abf9cc973dbe2fb 100644
--- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C
+++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C
@@ -24,19 +24,14 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "globalMeshData.H"
-#include "Time.H"
 #include "Pstream.H"
 #include "PstreamCombineReduceOps.H"
 #include "processorPolyPatch.H"
-#include "demandDrivenData.H"
 #include "globalPoints.H"
 #include "polyMesh.H"
 #include "mapDistribute.H"
 #include "labelIOList.H"
-#include "PackedList.H"
 #include "mergePoints.H"
-#include "matchPoints.H"
-#include "OFstream.H"
 #include "globalIndexAndTransform.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@@ -577,7 +572,7 @@ void Foam::globalMeshData::calcPointConnectivity
     labelPairList myData(globalPointSlavesMap().constructSize());
     forAll(slaves, pointi)
     {
-        myData[pointi] = globalIndexAndTransform::encode
+        myData[pointi] = transforms.encode
         (
             Pstream::myProcNo(),
             pointi,
@@ -624,9 +619,9 @@ void Foam::globalMeshData::calcPointConnectivity
                 );
                 // Add transform to connectivity
                 const labelPair& n = myData[pTransformSlaves[i]];
-                label proci = globalIndexAndTransform::processor(n);
-                label index = globalIndexAndTransform::index(n);
-                pConnectivity[connI++] = globalIndexAndTransform::encode
+                label proci = transforms.processor(n);
+                label index = transforms.index(n);
+                pConnectivity[connI++] = transforms.encode
                 (
                     proci,
                     index,
@@ -678,6 +673,8 @@ void Foam::globalMeshData::calcGlobalPointEdges
     const globalIndex& globalEdgeNumbers = globalEdgeNumbering();
     const labelListList& slaves = globalPointSlaves();
     const labelListList& transformedSlaves = globalPointTransformedSlaves();
+    const globalIndexAndTransform& transforms = globalTransforms();
+
 
     // Create local version
     globalPointEdges.setSize(globalPointSlavesMap().constructSize());
@@ -697,11 +694,11 @@ void Foam::globalMeshData::calcGlobalPointEdges
         forAll(pEdges, i)
         {
             label otherPointi = edges[pEdges[i]].otherVertex(pointi);
-            globalPPoints[i] = globalIndexAndTransform::encode
+            globalPPoints[i] = transforms.encode
             (
                 Pstream::myProcNo(),
                 otherPointi,
-                globalTransforms().nullTransformIndex()
+                transforms.nullTransformIndex()
             );
         }
     }
@@ -790,9 +787,9 @@ void Foam::globalMeshData::calcGlobalPointEdges
                 {
                     // Add transform to connectivity
                     const labelPair& n = otherData[j];
-                    label proci = globalIndexAndTransform::processor(n);
-                    label index = globalIndexAndTransform::index(n);
-                    globalPPoints[sz++] = globalIndexAndTransform::encode
+                    label proci = transforms.processor(n);
+                    label index = transforms.index(n);
+                    globalPPoints[sz++] = transforms.encode
                     (
                         proci,
                         index,
@@ -834,16 +831,18 @@ Foam::label Foam::globalMeshData::findTransform
     const label localPoint
 ) const
 {
-    const label remoteProci = globalIndexAndTransform::processor(remotePoint);
-    const label remoteIndex = globalIndexAndTransform::index(remotePoint);
+    const globalIndexAndTransform& transforms = globalTransforms();
+
+    const label remoteProci = transforms.processor(remotePoint);
+    const label remoteIndex = transforms.index(remotePoint);
 
     label remoteTransformI = -1;
     label localTransformI = -1;
     forAll(info, i)
     {
-        label proci = globalIndexAndTransform::processor(info[i]);
-        label pointi = globalIndexAndTransform::index(info[i]);
-        label transformI = globalIndexAndTransform::transformIndex(info[i]);
+        label proci = transforms.processor(info[i]);
+        label pointi = transforms.index(info[i]);
+        label transformI = transforms.transformIndex(info[i]);
 
         if (proci == Pstream::myProcNo() && pointi == localPoint)
         {
@@ -875,7 +874,7 @@ Foam::label Foam::globalMeshData::findTransform
             << abort(FatalError);
     }
 
-    return globalTransforms().subtractTransformIndex
+    return transforms.subtractTransformIndex
     (
         remoteTransformI,
         localTransformI
@@ -893,6 +892,7 @@ void Foam::globalMeshData::calcGlobalEdgeSlaves() const
 
     const edgeList& edges = coupledPatch().edges();
     const globalIndex& globalEdgeNumbers = globalEdgeNumbering();
+    const globalIndexAndTransform& transforms = globalTransforms();
 
 
     // The whole problem with deducting edge-connectivity from
@@ -941,11 +941,11 @@ void Foam::globalMeshData::calcGlobalEdgeSlaves() const
         // Append myself.
         eEdges.append
         (
-            globalIndexAndTransform::encode
+            transforms.encode
             (
                 Pstream::myProcNo(),
                 edgeI,
-                globalTransforms().nullTransformIndex()
+                transforms.nullTransformIndex()
             )
         );
 
@@ -986,7 +986,7 @@ void Foam::globalMeshData::calcGlobalEdgeSlaves() const
                         label proci = globalEdgeNumbers.whichProcID(pEdges0[i]);
                         eEdges.append
                         (
-                            globalIndexAndTransform::encode
+                            transforms.encode
                             (
                                 proci,
                                 globalEdgeNumbers.toLocal(proci, pEdges0[i]),
@@ -999,7 +999,11 @@ void Foam::globalMeshData::calcGlobalEdgeSlaves() const
         }
 
         allEdgeConnectivity[edgeI].transfer(eEdges);
-        sort(allEdgeConnectivity[edgeI], globalIndexAndTransform::less());
+        sort
+        (
+            allEdgeConnectivity[edgeI],
+            globalIndexAndTransform::less(transforms)
+        );
     }
 
     // We now have - in allEdgeConnectivity - a list of edges which are shared
@@ -1020,10 +1024,10 @@ void Foam::globalMeshData::calcGlobalEdgeSlaves() const
             if
             (
                 (
-                    globalIndexAndTransform::processor(masterInfo)
+                    transforms.processor(masterInfo)
                  == Pstream::myProcNo()
                 )
-             && (globalIndexAndTransform::index(masterInfo) == edgeI)
+             && (transforms.index(masterInfo) == edgeI)
             )
             {
                 // Sort into transformed and untransformed
@@ -1039,14 +1043,14 @@ void Foam::globalMeshData::calcGlobalEdgeSlaves() const
                 for (label i = 1; i < edgeInfo.size(); i++)
                 {
                     const labelPair& info = edgeInfo[i];
-                    label proci = globalIndexAndTransform::processor(info);
-                    label index = globalIndexAndTransform::index(info);
-                    label transform = globalIndexAndTransform::transformIndex
+                    label proci = transforms.processor(info);
+                    label index = transforms.index(info);
+                    label transform = transforms.transformIndex
                     (
                         info
                     );
 
-                    if (transform == globalTransforms().nullTransformIndex())
+                    if (transform == transforms.nullTransformIndex())
                     {
                         eEdges[nonTransformI++] = globalEdgeNumbers.toGlobal
                         (
@@ -1078,7 +1082,7 @@ void Foam::globalMeshData::calcGlobalEdgeSlaves() const
             globalEdgeNumbers,
             globalEdgeSlaves,
 
-            globalTransforms(),
+            transforms,
             transformedEdges,
             globalEdgeTransformedSlavesPtr_(),
 
@@ -1351,6 +1355,7 @@ void Foam::globalMeshData::calcGlobalPointBoundaryFaces() const
     const labelListList& pointSlaves = globalPointSlaves();
     const labelListList& pointTransformSlaves =
         globalPointTransformedSlaves();
+    const globalIndexAndTransform& transforms = globalTransforms();
 
 
     // Any faces coming in through transformation
@@ -1432,7 +1437,7 @@ void Foam::globalMeshData::calcGlobalPointBoundaryFaces() const
                         label proci = globalIndices.whichProcID(slave);
                         label facei = globalIndices.toLocal(proci, slave);
 
-                        myBFaces[n++] = globalIndexAndTransform::encode
+                        myBFaces[n++] = transforms.encode
                         (
                             proci,
                             facei,
@@ -1466,7 +1471,7 @@ void Foam::globalMeshData::calcGlobalPointBoundaryFaces() const
             globalIndices,
             globalPointBoundaryFaces,
 
-            globalTransforms(),
+            transforms,
             transformedFaces,
             globalPointTransformedBoundaryFacesPtr_(),
 
@@ -1581,6 +1586,7 @@ void Foam::globalMeshData::calcGlobalPointBoundaryCells() const
     const labelListList& pointSlaves = globalPointSlaves();
     const labelListList& pointTransformSlaves =
         globalPointTransformedSlaves();
+    const globalIndexAndTransform& transforms = globalTransforms();
 
     List<labelPairList> transformedCells(pointSlaves.size());
 
@@ -1660,7 +1666,7 @@ void Foam::globalMeshData::calcGlobalPointBoundaryCells() const
                     {
                         label proci = globalIndices.whichProcID(slave);
                         label celli = globalIndices.toLocal(proci, slave);
-                        myBCells[n++] = globalIndexAndTransform::encode
+                        myBCells[n++] = transforms.encode
                         (
                             proci,
                             celli,
@@ -1693,7 +1699,7 @@ void Foam::globalMeshData::calcGlobalPointBoundaryCells() const
             globalIndices,
             globalPointBoundaryCells,
 
-            globalTransforms(),
+            transforms,
             transformedCells,
             globalPointTransformedBoundaryCellsPtr_(),
 
diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.H b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.H
index 8e94ec82fb9774a14c186a0bf931104478ca711d..29ca8855a6b4b8fd2935b950859bdc0085b1f748 100644
--- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.H
+++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.H
@@ -72,7 +72,6 @@ See also
     mapDistribute
     globalIndexAndTransform
 
-
 SourceFiles
     globalMeshData.C
     globalMeshDataTemplates.C
diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C
index 524eb52abef4a0bd1d9c7de7cc5148cc0dd14dfc..88b3113a58b09475cb90be09664a617d8d1bf07d 100644
--- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C
+++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C
@@ -64,15 +64,15 @@ Foam::label Foam::globalPoints::findSamePoint
     const labelPair& info
 ) const
 {
-    const label proci = globalIndexAndTransform::processor(info);
-    const label index = globalIndexAndTransform::index(info);
+    const label proci = globalTransforms_.processor(info);
+    const label index = globalTransforms_.index(info);
 
     forAll(allInfo, i)
     {
         if
         (
-            globalIndexAndTransform::processor(allInfo[i]) == proci
-         && globalIndexAndTransform::index(allInfo[i]) == index
+            globalTransforms_.processor(allInfo[i]) == proci
+         && globalTransforms_.index(allInfo[i]) == index
         )
         {
             return i;
@@ -98,21 +98,21 @@ Foam::labelPairList Foam::globalPoints::addSendTransform
     forAll(info, i)
     {
         //Pout<< "    adding send transform to" << nl
-        //    << "    proc:" << globalIndexAndTransform::processor(info[i])
+        //    << "    proc:" << globalTransforms_.processor(info[i])
         //    << nl
-        //    << "    index:" << globalIndexAndTransform::index(info[i]) << nl
+        //    << "    index:" << globalTransforms_.index(info[i]) << nl
         //    << "    trafo:"
         //    <<  globalTransforms_.decodeTransformIndex
-        //        (globalIndexAndTransform::transformIndex(info[i]))
+        //        (globalTransforms_.transformIndex(info[i]))
         //    << endl;
 
-        sendInfo[i] = globalIndexAndTransform::encode
+        sendInfo[i] = globalTransforms_.encode
         (
-            globalIndexAndTransform::processor(info[i]),
-            globalIndexAndTransform::index(info[i]),
+            globalTransforms_.processor(info[i]),
+            globalTransforms_.index(info[i]),
             globalTransforms_.addToTransformIndex
             (
-                globalIndexAndTransform::transformIndex(info[i]),
+                globalTransforms_.transformIndex(info[i]),
                 patchi,
                 true,           // patchi is sending side
                 tol             // tolerance for comparison
@@ -204,11 +204,11 @@ bool Foam::globalPoints::mergeInfo
             }
             else
             {
-                label myTransform = globalIndexAndTransform::transformIndex
+                label myTransform = globalTransforms_.transformIndex
                 (
                     myInfo[index]
                 );
-                label nbrTransform = globalIndexAndTransform::transformIndex
+                label nbrTransform = globalTransforms_.transformIndex
                 (
                     nbrInfo[i]
                 );
@@ -294,7 +294,7 @@ bool Foam::globalPoints::mergeInfo
         labelPairList knownInfo
         (
             1,
-            globalIndexAndTransform::encode
+            globalTransforms_.encode
             (
                 Pstream::myProcNo(),
                 localPointi,
@@ -356,9 +356,9 @@ void Foam::globalPoints::printProcPoint
     const labelPair& pointInfo
 ) const
 {
-    label proci = globalIndexAndTransform::processor(pointInfo);
-    label index = globalIndexAndTransform::index(pointInfo);
-    label trafoI = globalIndexAndTransform::transformIndex(pointInfo);
+    label proci = globalTransforms_.processor(pointInfo);
+    label index = globalTransforms_.index(pointInfo);
+    label trafoI = globalTransforms_.transformIndex(pointInfo);
 
     Pout<< "    proc:" << proci;
     Pout<< " localpoint:";
@@ -421,7 +421,7 @@ void Foam::globalPoints::initOwnPoints
                     labelPairList knownInfo
                     (
                         1,
-                        globalIndexAndTransform::encode
+                        globalTransforms_.encode
                         (
                             Pstream::myProcNo(),
                             localPointi,
@@ -457,7 +457,7 @@ void Foam::globalPoints::initOwnPoints
                     labelPairList knownInfo
                     (
                         1,
-                        globalIndexAndTransform::encode
+                        globalTransforms_.encode
                         (
                             Pstream::myProcNo(),
                             localPointi,
@@ -750,8 +750,8 @@ void Foam::globalPoints::remove
             // is in it. This would be an ordinary connection and can be
             // handled by normal face-face connectivity.
 
-            label proc0 = globalIndexAndTransform::processor(pointInfo[0]);
-            label proc1 = globalIndexAndTransform::processor(pointInfo[1]);
+            label proc0 = globalTransforms_.processor(pointInfo[0]);
+            label proc1 = globalTransforms_.processor(pointInfo[1]);
 
             if
             (
@@ -759,14 +759,14 @@ void Foam::globalPoints::remove
                     proc0 == Pstream::myProcNo()
                  && directNeighbours.found
                     (
-                        globalIndexAndTransform::index(pointInfo[0])
+                        globalTransforms_.index(pointInfo[0])
                     )
                 )
              || (
                     proc1 == Pstream::myProcNo()
                  && directNeighbours.found
                     (
-                        globalIndexAndTransform::index(pointInfo[1])
+                        globalTransforms_.index(pointInfo[1])
                     )
                 )
             )
@@ -776,14 +776,14 @@ void Foam::globalPoints::remove
                 {
                     //Pout<< "Removing direct neighbour:"
                     //    << mesh_.points()
-                    //       [globalIndexAndTransform::index(pointInfo[0])]
+                    //       [globalTransforms_.index(pointInfo[0])]
                     //    << endl;
                 }
                 else if (proc1 == Pstream::myProcNo())
                 {
                     //Pout<< "Removing direct neighbour:"
                     //    << mesh_.points()
-                    //       [globalIndexAndTransform::index(pointInfo[1])]
+                    //       [globalTransforms_.index(pointInfo[1])]
                     //    << endl;
                 }
             }
@@ -812,11 +812,11 @@ void Foam::globalPoints::remove
             // So this meshPoint will have info of size one only.
             if
             (
-                globalIndexAndTransform::processor(pointInfo[0])
+                globalTransforms_.processor(pointInfo[0])
              != Pstream::myProcNo()
              || !directNeighbours.found
                 (
-                    globalIndexAndTransform::index(pointInfo[0])
+                    globalTransforms_.index(pointInfo[0])
                 )
             )
             {
@@ -995,7 +995,7 @@ void Foam::globalPoints::calculateSharedPoints
     forAllConstIter(Map<label>, meshToProcPoint_, iter)
     {
         labelPairList& pointInfo = procPoints_[iter()];
-        sort(pointInfo, globalIndexAndTransform::less());
+        sort(pointInfo, globalIndexAndTransform::less(globalTransforms_));
     }
 
 
@@ -1017,10 +1017,10 @@ void Foam::globalPoints::calculateSharedPoints
             if
             (
                 (
-                    globalIndexAndTransform::processor(masterInfo)
+                    globalTransforms_.processor(masterInfo)
                  == Pstream::myProcNo()
                 )
-             && (globalIndexAndTransform::index(masterInfo) == iter.key())
+             && (globalTransforms_.index(masterInfo) == iter.key())
             )
             {
                 labelList& pPoints = pointPoints_[iter.key()];
@@ -1035,9 +1035,9 @@ void Foam::globalPoints::calculateSharedPoints
                 for (label i = 1; i < pointInfo.size(); i++)
                 {
                     const labelPair& info = pointInfo[i];
-                    label proci = globalIndexAndTransform::processor(info);
-                    label index = globalIndexAndTransform::index(info);
-                    label transform = globalIndexAndTransform::transformIndex
+                    label proci = globalTransforms_.processor(info);
+                    label index = globalTransforms_.index(info);
+                    label transform = globalTransforms_.transformIndex
                     (
                         info
                     );
diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C
index 00894c34a5888de8481cbde358b764310f1dd3cf..800dfd4d80acaf1288f23d07a1d9bdccb7aa7b91 100644
--- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C
+++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C
@@ -271,10 +271,10 @@ Foam::mapDistribute::mapDistribute
     forAll(transformedElements, i)
     {
         labelPair elem = transformedElements[i];
-        label proci = globalIndexAndTransform::processor(elem);
+        label proci = globalTransforms.processor(elem);
         if (proci != Pstream::myProcNo())
         {
-            label index = globalIndexAndTransform::index(elem);
+            label index = globalTransforms.index(elem);
             label nCompact = compactMap[proci].size();
             compactMap[proci].insert(index, nCompact);
         }
@@ -302,7 +302,7 @@ Foam::mapDistribute::mapDistribute
     forAll(transformedElements, i)
     {
         labelPair elem = transformedElements[i];
-        label trafoI = globalIndexAndTransform::transformIndex(elem);
+        label trafoI = globalTransforms.transformIndex(elem);
         nPerTransform[trafoI]++;
     }
     // Offset per transformIndex
@@ -322,9 +322,9 @@ Foam::mapDistribute::mapDistribute
     forAll(transformedElements, i)
     {
         labelPair elem = transformedElements[i];
-        label proci = globalIndexAndTransform::processor(elem);
-        label index = globalIndexAndTransform::index(elem);
-        label trafoI = globalIndexAndTransform::transformIndex(elem);
+        label proci = globalTransforms.processor(elem);
+        label index = globalTransforms.index(elem);
+        label trafoI = globalTransforms.transformIndex(elem);
 
         // Get compact index for untransformed element
         label rawElemI =
@@ -379,10 +379,10 @@ Foam::mapDistribute::mapDistribute
 
         forAll(elems, i)
         {
-            label proci = globalIndexAndTransform::processor(elems[i]);
+            label proci = globalTransforms.processor(elems[i]);
             if (proci != Pstream::myProcNo())
             {
-                label index = globalIndexAndTransform::index(elems[i]);
+                label index = globalTransforms.index(elems[i]);
                 label nCompact = compactMap[proci].size();
                 compactMap[proci].insert(index, nCompact);
             }
@@ -414,7 +414,7 @@ Foam::mapDistribute::mapDistribute
 
         forAll(elems, i)
         {
-            label trafoI = globalIndexAndTransform::transformIndex(elems[i]);
+            label trafoI = globalTransforms.transformIndex(elems[i]);
             nPerTransform[trafoI]++;
         }
     }
@@ -439,9 +439,9 @@ Foam::mapDistribute::mapDistribute
 
         forAll(elems, i)
         {
-            label proci = globalIndexAndTransform::processor(elems[i]);
-            label index = globalIndexAndTransform::index(elems[i]);
-            label trafoI = globalIndexAndTransform::transformIndex(elems[i]);
+            label proci = globalTransforms.processor(elems[i]);
+            label index = globalTransforms.index(elems[i]);
+            label trafoI = globalTransforms.transformIndex(elems[i]);
 
             // Get compact index for untransformed element
             label rawElemI =
diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
index aa619792c3a5fd3c83e73bafe23d6f0af70d3619..edb37c727bfc5424f691a678221689847f9f4f83 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
@@ -1120,9 +1120,9 @@ bool Foam::polyBoundaryMesh::writeData(Ostream& os) const
 
     forAll(patches, patchi)
     {
-        os.beginBlock(patches[patchi].name()) << nl;
+        os.beginBlock(patches[patchi].name());
         os  << patches[patchi];
-        os.endBlock() << endl;
+        os.endBlock();
     }
 
     os  << decrIndent << token::END_LIST;
diff --git a/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C b/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C
index 06a08a3598080788d1de25fd3f2344ef3f4cb3f2..99539ee2c680e207fb5d11847706baaa07f675fe 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C
+++ b/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C
@@ -449,15 +449,14 @@ Foam::point Foam::plane::mirror(const point& p) const
 
 void Foam::plane::writeDict(Ostream& os) const
 {
-    os.writeKeyword("planeType") << "pointAndNormal"
-        << token::END_STATEMENT << nl;
+    os.writeEntry("planeType", "pointAndNormal");
 
-    os.beginBlock("pointAndNormalDict") << nl;
+    os.beginBlock("pointAndNormalDict");
 
-    os.writeKeyword("point") << point_ << token::END_STATEMENT << nl;
-    os.writeKeyword("normal") << normal_ << token::END_STATEMENT << nl;
+    os.writeEntry("point",  point_);
+    os.writeEntry("normal", normal_);
 
-    os.endBlock() << endl;
+    os.endBlock() << flush;
 }
 
 
diff --git a/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedron.H b/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedron.H
index 201f14819f4a165b972d8f98ba7cabf595f26fcc..badea19542e0fe15c7feb02b5fca83e161ab8208 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedron.H
+++ b/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedron.H
@@ -249,7 +249,7 @@ public:
             inline scalar barycentric
             (
                 const point& pt,
-                List<scalar>& bary
+                FixedList<scalar, 4>& bary
             ) const;
 
             //- Return nearest point to p on tetrahedron. Is p itself
diff --git a/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedronI.H b/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedronI.H
index 8406efaa818d897b2093e1c71c95b080451b046a..2c14d16121ed6a3cde0722e5a88aa745a9678094 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedronI.H
+++ b/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedronI.H
@@ -316,7 +316,7 @@ template<class Point, class PointRef>
 Foam::scalar Foam::tetrahedron<Point, PointRef>::barycentric
 (
     const point& pt,
-    List<scalar>& bary
+    FixedList<scalar, 4>& bary
 ) const
 {
     // Reference:
@@ -346,8 +346,6 @@ Foam::scalar Foam::tetrahedron<Point, PointRef>::barycentric
 
     vector res = inv(t, detT) & (pt - d_);
 
-    bary.setSize(4);
-
     bary[0] = res.x();
     bary[1] = res.y();
     bary[2] = res.z();
diff --git a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H
index 299ea326619b3ca49af3bcb44ae1ce257b95374f..d689fa0b1e910f59b7b146922936a328fed3ef1e 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H
+++ b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -248,7 +248,7 @@ public:
             inline scalar barycentric
             (
                 const point& pt,
-                List<scalar>& bary
+                FixedList<scalar, 3>& bary
             ) const;
 
             //- Return point intersection with a ray.
diff --git a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H
index 6314bfc1081c01cc739876fe78a95049557aefd0..eee54fd92cf2fd7d19b7c6fa3e03c33954a6fbf8 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H
+++ b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H
@@ -280,7 +280,7 @@ template<class Point, class PointRef>
 Foam::scalar Foam::triangle<Point, PointRef>::barycentric
 (
     const point& pt,
-    List<scalar>& bary
+    FixedList<scalar, 3>& bary
 ) const
 {
     // Reference:
@@ -302,13 +302,11 @@ Foam::scalar Foam::triangle<Point, PointRef>::barycentric
     {
         // Degenerate triangle, returning 1/3 barycentric coordinates.
 
-        bary = List<scalar>(3, 1.0/3.0);
+        bary = FixedList<scalar, 3>(1.0/3.0);
 
         return denom;
     }
 
-    bary.setSize(3);
-
     bary[1] = (d11*d20 - d01*d21)/denom;
     bary[2] = (d00*d21 - d01*d20)/denom;
     bary[0] = 1.0 - bary[1] - bary[2];
diff --git a/src/OpenFOAM/primitives/Scalar/Scalar.C b/src/OpenFOAM/primitives/Scalar/Scalar.C
index 0a3e09b0b18cb83fcd3e6546bdeab23d888249e1..a801378b2185b69ea7c06f4b172b7cd011005e10 100644
--- a/src/OpenFOAM/primitives/Scalar/Scalar.C
+++ b/src/OpenFOAM/primitives/Scalar/Scalar.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -23,6 +23,8 @@ License
 
 \*---------------------------------------------------------------------------*/
 
+#include "stringOps.H"
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
@@ -62,6 +64,18 @@ word name(const Scalar val)
 }
 
 
+word name(const char* fmt, const Scalar val)
+{
+    return stringOps::name(fmt, val);
+}
+
+
+word name(const std::string& fmt, const Scalar val)
+{
+    return stringOps::name(fmt, val);
+}
+
+
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
 Scalar readScalar(Istream& is)
diff --git a/src/OpenFOAM/primitives/Scalar/Scalar.H b/src/OpenFOAM/primitives/Scalar/Scalar.H
index 4d8f29ff54b8bffc2b9dbec835de118bd570bdab..6b2213fa6ac7730c3c8481f778d18e4eef88a889 100644
--- a/src/OpenFOAM/primitives/Scalar/Scalar.H
+++ b/src/OpenFOAM/primitives/Scalar/Scalar.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -109,6 +109,16 @@ public:
 word name(const Scalar);
 
 
+//- Return a word representation of a Scalar, using printf-style formatter.
+//  The representation is not checked for valid word characters.
+word name(const char* fmt, const Scalar);
+
+
+//- Return a word representation of a Scalar, using printf-style formatter.
+//  The representation is not checked for valid word characters.
+word name(const std::string& fmt, const Scalar);
+
+
 // Standard C++ transcendental functions
 transFunc(sqrt)
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
index a929f868ee562ed0cf03f63ad3c8cee6cddf9736..9d2d8581744257db01d59e0f56e0f717ac34a068 100644
--- a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
+++ b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
@@ -263,41 +263,28 @@ template<class Type>
 void Foam::Function1Types::CSV<Type>::writeData(Ostream& os) const
 {
     Function1<Type>::writeData(os);
-    os  << token::END_STATEMENT << nl;
+    os.endEntry();
 
-    os.beginBlock(word(this->name() + "Coeffs")) << nl;
+    os.beginBlock(word(this->name() + "Coeffs"));
 
     // Note: for TableBase write the dictionary entries it needs but not
     // the values themselves
     TableBase<Type>::writeEntries(os);
 
-    os.writeKeyword("nHeaderLine") << nHeaderLine_
-        << token::END_STATEMENT << nl;
-    os.writeKeyword("refColumn") << refColumn_
-        << token::END_STATEMENT << nl;
+    os.writeEntry("nHeaderLine", nHeaderLine_);
+    os.writeEntry("refColumn",   refColumn_);
 
     // Force writing labelList in ascii
-    os.writeKeyword("componentColumns");
-    if (os.format() == IOstream::BINARY)
-    {
-        os.format(IOstream::ASCII);
-        os  << componentColumns_;
-        os.format(IOstream::BINARY);
-    }
-    else
-    {
-        os  << componentColumns_;
-    }
-    os  << token::END_STATEMENT << nl;
+    const enum IOstream::streamFormat fmt = os.format();
+    os.format(IOstream::ASCII);
+    os.writeEntry("componentColumns", componentColumns_);
+    os.format(fmt);
 
-    os.writeKeyword("separator") << string(separator_)
-        << token::END_STATEMENT << nl;
-    os.writeKeyword("mergeSeparators") << mergeSeparators_
-        << token::END_STATEMENT << nl;
-    os.writeKeyword("fileName") << fName_
-        << token::END_STATEMENT << nl;
+    os.writeEntry("separator",       string(separator_));
+    os.writeEntry("mergeSeparators", mergeSeparators_);
+    os.writeEntry("fileName",        fName_);
 
-    os.endBlock() << endl;
+    os.endBlock() << flush;
 }
 
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C b/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C
index 85a7aefe04261d1eee76d753877e8c73de3f61c9..a11acd4df832588b90316e675c41027d8c14d778 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C
@@ -89,17 +89,17 @@ template<class Type>
 void Foam::Function1Types::Sine<Type>::writeData(Ostream& os) const
 {
     Function1<Type>::writeData(os);
-    os  << token::END_STATEMENT << nl;
+    os.endEntry();
 
-    os.beginBlock(word(this->name() + "Coeffs")) << nl;
+    os.beginBlock(word(this->name() + "Coeffs"));
 
-    os.writeKeyword("t0") << t0_ << token::END_STATEMENT << nl;
+    os.writeEntry("t0", t0_);
     amplitude_->writeData(os);
     frequency_->writeData(os);
     scale_->writeData(os);
     level_->writeData(os);
 
-    os.endBlock() << endl;
+    os.endBlock() << flush;
 }
 
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Square/Square.C b/src/OpenFOAM/primitives/functions/Function1/Square/Square.C
index 9c55e8800e6fe7a7a43bbce37b3f0f27c228cec7..0e258bc30eace0e6e611fce3c5eaa92c11933b5e 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Square/Square.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Square/Square.C
@@ -102,18 +102,18 @@ template<class Type>
 void Foam::Function1Types::Square<Type>::writeData(Ostream& os) const
 {
     Function1<Type>::writeData(os);
-    os  << token::END_STATEMENT << nl;
+    os.endEntry();
 
-    os.beginBlock(word(this->name() + "Coeffs")) << nl;
+    os.beginBlock(word(this->name() + "Coeffs"));
 
-    os.writeKeyword("t0") << t0_ << token::END_STATEMENT << nl;
-    os.writeKeyword("markSpace") << markSpace_ << token::END_STATEMENT << nl;
+    os.writeEntry("t0", t0_);
+    os.writeEntry("markSpace", markSpace_);
     amplitude_->writeData(os);
     frequency_->writeData(os);
     scale_->writeData(os);
     level_->writeData(os);
 
-    os.endBlock() << endl;
+    os.endBlock() << flush;
 }
 
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C
index 414e6160772df7b07ef2a610c2c47f9d54288dc7..3682836999f4ce95ca3927370e053f27b2510af3 100644
--- a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C
+++ b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C
@@ -78,16 +78,17 @@ template<class Type>
 void Foam::Function1Types::TableFile<Type>::writeData(Ostream& os) const
 {
     Function1<Type>::writeData(os);
-    os  << token::END_STATEMENT << nl;
+    os.endEntry();
 
-    os.beginBlock(word(this->name() + "Coeffs")) << nl;
+    os.beginBlock(word(this->name() + "Coeffs"));
 
     // Note: for TableBase write the dictionary entries it needs but not
     // the values themselves
     TableBase<Type>::writeEntries(os);
-    os.writeKeyword("fileName")<< fName_ << token::END_STATEMENT << nl;
 
-    os.endBlock() << endl;
+    os.writeEntry("fileName", fName_);
+
+    os.endBlock() << flush;
 }
 
 
diff --git a/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransform.C b/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransform.C
index d97ea2b84c891a5acbe08f780b44524347e139f0..b6ca5a26efedc6ab7e1025710ad3b160ff3812b6 100644
--- a/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransform.C
+++ b/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransform.C
@@ -25,13 +25,14 @@ License
 
 #include "globalIndexAndTransform.H"
 #include "cyclicPolyPatch.H"
+#include "DynamicField.H"
+#include "globalMeshData.H"
 
 // * * * * * * * * * * * * Private Static Data Members * * * * * * * * * * * //
 
 namespace Foam
 {
-defineTypeNameAndDebug(globalIndexAndTransform, 0);
-const label globalIndexAndTransform::base_ = 32;
+    defineTypeNameAndDebug(globalIndexAndTransform, 0);
 }
 
 
@@ -127,10 +128,8 @@ void Foam::globalIndexAndTransform::determineTransforms()
 {
     const polyBoundaryMesh& patches = mesh_.boundaryMesh();
 
-    transforms_ = List<vectorTensorTransform>(6);
-    scalarField maxTol(6);
-
-    label nextTrans = 0;
+    DynamicList<vectorTensorTransform> localTransforms;
+    DynamicField<scalar> localTols;
 
     label dummyMatch = -1;
 
@@ -170,7 +169,7 @@ void Foam::globalIndexAndTransform::determineTransforms()
                         (
                             matchTransform
                             (
-                                transforms_,
+                                localTransforms,
                                 dummyMatch,
                                 transform,
                                 cpp.matchTolerance(),
@@ -178,15 +177,8 @@ void Foam::globalIndexAndTransform::determineTransforms()
                             ) == 0
                         )
                         {
-                            if (nextTrans == 6)
-                            {
-                                FatalErrorInFunction
-                                    << "More than six unsigned transforms"
-                                    << " detected:" << nl << transforms_
-                                    << exit(FatalError);
-                            }
-                            transforms_[nextTrans] = transform;
-                            maxTol[nextTrans++] = cpp.matchTolerance();
+                            localTransforms.append(transform);
+                            localTols.append(cpp.matchTolerance());
                         }
                     }
                 }
@@ -207,7 +199,7 @@ void Foam::globalIndexAndTransform::determineTransforms()
                         (
                             matchTransform
                             (
-                                transforms_,
+                                localTransforms,
                                 dummyMatch,
                                 transform,
                                 cpp.matchTolerance(),
@@ -215,15 +207,8 @@ void Foam::globalIndexAndTransform::determineTransforms()
                             ) == 0
                         )
                         {
-                            if (nextTrans == 6)
-                            {
-                                FatalErrorInFunction
-                                    << "More than six unsigned transforms"
-                                    << " detected:" << nl << transforms_
-                                    << exit(FatalError);
-                            }
-                            transforms_[nextTrans] = transform;
-                            maxTol[nextTrans++] = cpp.matchTolerance();
+                            localTransforms.append(transform);
+                            localTols.append(cpp.matchTolerance());
                         }
                     }
                 }
@@ -233,21 +218,18 @@ void Foam::globalIndexAndTransform::determineTransforms()
 
 
     // Collect transforms on master
-
     List<List<vectorTensorTransform>> allTransforms(Pstream::nProcs());
-    allTransforms[Pstream::myProcNo()] = transforms_;
+    allTransforms[Pstream::myProcNo()] = localTransforms;
     Pstream::gatherList(allTransforms);
 
     // Collect matching tolerance on master
     List<scalarField> allTols(Pstream::nProcs());
-    allTols[Pstream::myProcNo()] = maxTol;
+    allTols[Pstream::myProcNo()] = localTols;
     Pstream::gatherList(allTols);
 
     if (Pstream::master())
     {
-        transforms_ = List<vectorTensorTransform>(3);
-
-        label nextTrans = 0;
+        localTransforms.clear();
 
         forAll(allTransforms, proci)
         {
@@ -264,45 +246,23 @@ void Foam::globalIndexAndTransform::determineTransforms()
                     (
                         matchTransform
                         (
-                            transforms_,
+                            localTransforms,
                             dummyMatch,
                             transform,
                             allTols[proci][pSVI],
                             true
-                        ) ==  0
+                        ) == 0
                     )
                     {
-                        transforms_[nextTrans++] = transform;
-                    }
-
-                    if (nextTrans > 3)
-                    {
-                        FatalErrorInFunction
-                            << "More than three independent basic "
-                            << "transforms detected:" << nl
-                            << allTransforms
-                            << transforms_
-                            << exit(FatalError);
+                        localTransforms.append(transform);
                     }
                 }
             }
         }
-
-        transforms_.setSize(nextTrans);
     }
 
+    transforms_.transfer(localTransforms);
     Pstream::scatter(transforms_);
-
-    if (transforms_.size() > 3)
-    {
-        WarningInFunction
-            << "More than three independent basic "
-            << "transforms detected:" << nl
-            << transforms_ << nl
-            << "This is not a space filling tiling and will probably"
-            << " give problems for e.g. lagrangian tracking or interpolation"
-            << endl;
-    }
 }
 
 
@@ -351,16 +311,12 @@ void Foam::globalIndexAndTransform::determinePatchTransformSign()
 {
     const polyBoundaryMesh& patches = mesh_.boundaryMesh();
 
-    patchTransformSign_.setSize(patches.size(), Pair<label>(-1, 0));
-
-    label matchTransI = -1;
+    patchTransformSign_.setSize(patches.size(), labelPair(-1, 0));
 
     forAll(patches, patchi)
     {
         const polyPatch& pp = patches[patchi];
 
-        // Pout<< nl << patchi << " " << pp.name() << endl;
-
         // Note: special check for unordered cyclics. These are in fact
         // transform bcs and should probably be split off.
         if
@@ -375,15 +331,12 @@ void Foam::globalIndexAndTransform::determinePatchTransformSign()
             )
         )
         {
-            const coupledPolyPatch& cpp =
-            refCast<const coupledPolyPatch>(pp);
+            const coupledPolyPatch& cpp = refCast<const coupledPolyPatch>(pp);
 
             if (cpp.separated())
             {
                 const vectorField& sepVecs = cpp.separation();
 
-                // Pout<< "sepVecs " << sepVecs << endl;
-
                 // This loop is implicitly expecting only a single
                 // value for separation()
                 forAll(sepVecs, sVI)
@@ -394,6 +347,7 @@ void Foam::globalIndexAndTransform::determinePatchTransformSign()
                     {
                         vectorTensorTransform t(sepVec);
 
+                        label matchTransI;
                         label sign = matchTransform
                         (
                             transforms_,
@@ -402,22 +356,8 @@ void Foam::globalIndexAndTransform::determinePatchTransformSign()
                             cpp.matchTolerance(),
                             true
                         );
-
-                        // Pout<< sign << " " << matchTransI << endl;
-
-                        // List<label> permutation(transforms_.size(), 0);
-
-                        // permutation[matchTransI] = sign;
-
-                        // Pout<< encodeTransformIndex(permutation) << nl
-                        //     << transformPermutations_
-                        //        [
-                        //            encodeTransformIndex(permutation)
-                        //        ]
-                        //     << endl;
-
                         patchTransformSign_[patchi] =
-                            Pair<label>(matchTransI, sign);
+                            labelPair(matchTransI, sign);
                     }
                 }
 
@@ -426,8 +366,6 @@ void Foam::globalIndexAndTransform::determinePatchTransformSign()
             {
                 const tensorField& transTensors = cpp.reverseT();
 
-                // Pout<< "transTensors " << transTensors << endl;
-
                 // This loop is implicitly expecting only a single
                 // value for reverseT()
                 forAll(transTensors, tTI)
@@ -438,6 +376,7 @@ void Foam::globalIndexAndTransform::determinePatchTransformSign()
                     {
                         vectorTensorTransform t(transT);
 
+                        label matchTransI;
                         label sign = matchTransform
                         (
                             transforms_,
@@ -447,37 +386,65 @@ void Foam::globalIndexAndTransform::determinePatchTransformSign()
                             true
                         );
 
-                        // Pout<< sign << " " << matchTransI << endl;
-
-                        // List<label> permutation(transforms_.size(), 0);
-
-                        // permutation[matchTransI] = sign;
-
-                        // Pout<< encodeTransformIndex(permutation) << nl
-                        //     << transformPermutations_
-                        //        [
-                        //            encodeTransformIndex(permutation)
-                        //        ]
-                        //     << endl;
-
                         patchTransformSign_[patchi] =
-                            Pair<label>(matchTransI, sign);
+                            labelPair(matchTransI, sign);
                     }
                 }
             }
         }
     }
+}
+
+
+bool Foam::globalIndexAndTransform::uniqueTransform
+(
+    const point& pt,
+    labelPairList& trafos,
+    const label patchi,
+    const labelPair& patchTrafo
+) const
+{
+    if (findIndex(trafos, patchTrafo) == -1)
+    {
+        // New transform. Check if already have 3
+        if (trafos.size() == 3)
+        {
+            if (patchi > -1)
+            {
+                WarningInFunction
+                    << "Point " << pt
+                    << " is on patch " << mesh_.boundaryMesh()[patchi].name();
+            }
+            else
+            {
+                WarningInFunction
+                    << "Point " << pt << " is on a coupled patch";
+            }
+            Warning
+                << " with transformation " << patchTrafo
+                << " but also on 3 other patches with transforms "
+                << trafos << nl
+                << "This is not a space filling tiling and might"
+                << " indicate a setup problem and give problems"
+                << " for e.g. lagrangian tracking or interpolation" << endl;
+
+            // Already warned so no need to extend more
+            trafos.clear();
+            return false;
+        }
 
-    // Pout<< patchTransformSign_ << endl;
+        return true;
+    }
+    else
+    {
+        return false;
+    }
 }
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::globalIndexAndTransform::globalIndexAndTransform
-(
-    const polyMesh& mesh
-)
+Foam::globalIndexAndTransform::globalIndexAndTransform(const polyMesh& mesh)
 :
     mesh_(mesh),
     transforms_(),
@@ -546,13 +513,102 @@ Foam::globalIndexAndTransform::globalIndexAndTransform
         Info<< "nullTransformIndex:" << nullTransformIndex() << endl
             << endl;
     }
-}
 
 
-// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+    if (transforms_.size() > 0)
+    {
+        // Check that the transforms are space filling : any point
+        // can only use up to three transforms
+
+        const polyBoundaryMesh& patches = mesh_.boundaryMesh();
+
+
+        // 1. Collect transform&sign per point and do local check
+
+        List<labelPairList> pointToTrafos(mesh_.nPoints());
+
+        forAll(patches, patchi)
+        {
+            const polyPatch& pp = patches[patchi];
+
+            const labelPair& transSign = patchTransformSign_[patchi];
+
+            if (transSign.first() > -1)
+            {
+                const labelList& mp = pp.meshPoints();
+                forAll(mp, i)
+                {
+                    labelPairList& trafos = pointToTrafos[mp[i]];
+
+                    bool newTransform = uniqueTransform
+                    (
+                        mesh_.points()[mp[i]],
+                        trafos,
+                        patchi,
+                        transSign
+                    );
+
+                    if (newTransform)
+                    {
+                        trafos.append(transSign);
+                    }
+                }
+            }
+        }
+
+
+        // Synchronise across collocated (= untransformed) points
+        // TBD: there is a big problem in that globalMeshData uses
+        //      globalIndexAndTransform. Triggers recursion.
+        if (false)
+        {
+            const globalMeshData& gmd = mesh_.globalData();
+            const indirectPrimitivePatch& cpp = gmd.coupledPatch();
+            const labelList& meshPoints = cpp.meshPoints();
+            const mapDistribute& slavesMap = gmd.globalCoPointSlavesMap();
+            const labelListList& slaves = gmd.globalCoPointSlaves();
+
+            List<labelPairList> elems(slavesMap.constructSize());
+            forAll(meshPoints, i)
+            {
+                elems[i] = pointToTrafos[meshPoints[i]];
+            }
+
+            // Pull slave data onto master. No need to update transformed slots.
+            slavesMap.distribute(elems, false);
+
+            // Combine master data with slave data
+            forAll(slaves, i)
+            {
+                labelPairList& trafos = elems[i];
+
+                const labelList& slavePoints = slaves[i];
+
+                // Combine master with untransformed slave data
+                forAll(slavePoints, j)
+                {
+                    const labelPairList& slaveTrafos = elems[slavePoints[j]];
+
+                    forAll(slaveTrafos, slaveI)
+                    {
+                        bool newTransform = uniqueTransform
+                        (
+                            mesh_.points()[meshPoints[i]],
+                            trafos,
+                            -1,
+                            slaveTrafos[slaveI]
+                        );
 
-Foam::globalIndexAndTransform::~globalIndexAndTransform()
-{}
+                        if (newTransform)
+                        {
+                            trafos.append(slaveTrafos[slaveI]);
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
 
 
 // ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransform.H b/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransform.H
index 41274d7ab1c11217bb96d9b4d7067546ca77fd19..e53a9f71d62f9be24585ae21f73e370a60dc8e52 100644
--- a/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransform.H
+++ b/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransform.H
@@ -28,7 +28,9 @@ Description
     Determination and storage of the possible independent transforms
     introduced by coupledPolyPatches, as well as all of the possible
     permutations of these transforms generated by the presence of
-    multiple coupledPolyPatches, i.e. more than one cyclic boundary.
+    multiple coupledPolyPatches, i.e. more than one cyclic boundary. Note that
+    any given point can be on maximum 3 transforms only (and these transforms
+    have to be perpendicular)
 
     Also provides global index encoding and decoding for entity
     (i.e. cell) index, processor index and transform index (0 or
@@ -71,8 +73,15 @@ public:
         //  - transform
         class less
         {
+            const globalIndexAndTransform& gi_;
+
         public:
 
+            less(const globalIndexAndTransform& gi)
+            :
+                gi_(gi)
+            {}
+
             inline bool operator()(const labelPair&, const labelPair&) const;
         };
 
@@ -87,10 +96,8 @@ private:
         //- The possible independent (non-permuted) transforms of the
         //  geometry, i.e. for a geometry with two cyclics, this
         //  stores the two transforms, not the eight permutations.
-        //  There may not be more than three transforms in the range
-        //  of coupledPolyPatch geometries (separated XOR
-        //  non-parallel) and symmetries (cuboid periodicity only)
-        //  supported.
+        //  Any point can not be on more than three transforms but overall
+        //  the mesh can have more than three.
         List<vectorTensorTransform> transforms_;
 
         //- The permutations of the transforms, stored for lookup
@@ -105,13 +112,7 @@ private:
         //- Mapping from patch index to which transform it matches (or
         //  -1 for none) (.first()) and what sign to use for it,
         //  i.e. +/- 1 (.second()).
-        List<Pair<label>> patchTransformSign_;
-
-
-    // Private static data
-
-        //- Number of spaces to reserve for transform encoding
-        static const label base_;
+        List<labelPair> patchTransformSign_;
 
 
     // Private Member Functions
@@ -124,7 +125,7 @@ private:
         void determineTransformPermutations();
 
         //- Determine which patch uses which transform (if any) and which
-        //- Sign to use
+        //  sign to use
         void determinePatchTransformSign();
 
         //- Test a list of reference transforms to see if the test
@@ -139,16 +140,14 @@ private:
             bool checkBothSigns
         ) const;
 
-        //- Encode transform index. Hardcoded to 3 independent transforms max.
-        inline label encodeTransformIndex
-        (
-            const FixedList<Foam::label, 3>& permutationIndices
-        ) const;
-
-        //- Decode transform index. Hardcoded to 3 independent transforms max.
-        inline FixedList<label, 3> decodeTransformIndex
+        //- Return true if transform is not yet present in trafos. Issues
+        //  warning if too many transforms
+        bool uniqueTransform
         (
-            const label transformIndex
+            const point& pt,
+            labelPairList& trafos,
+            const label patchi,
+            const labelPair& patchTrafo
         ) const;
 
         //- Disallow default bitwise copy construct
@@ -160,10 +159,6 @@ private:
 
 public:
 
-        //- Declare friendship with the entry class for IO
-        friend class globalPoints;
-
-
     // Declare name of the class and its debug switch
     ClassName("globalIndexAndTransform");
 
@@ -174,10 +169,6 @@ public:
         globalIndexAndTransform(const polyMesh& mesh);
 
 
-    //- Destructor
-    ~globalIndexAndTransform();
-
-
     // Member Functions
 
         //- Generate a transform index from the permutation indices of
@@ -185,9 +176,12 @@ public:
         //  only be -1, 0 or +1.
         inline label encodeTransformIndex
         (
-            const List<label>& permutationIndices
+            const labelList& permutationIndices
         ) const;
 
+        //- Decode transform index
+        inline labelList decodeTransformIndex(const label transformIndex) const;
+
         //- Add patch transformation to transformIndex. Return new
         //  transformIndex. (by default the patch is the sending, not the
         //  receiving, patch)
@@ -221,74 +215,71 @@ public:
         ) const;
 
         //- Encode index and bare index as components on own processor
-        inline static labelPair encode
+        inline labelPair encode
         (
             const label index,
             const label transformIndex
-        );
+        ) const;
 
         //- Encode index and bare index as components on given processor
-        inline static labelPair encode
+        inline labelPair encode
         (
             const label proci,
             const label index,
             const label transformIndex
-        );
+        ) const;
 
         //- Index carried by the object
-        inline static label index(const labelPair& globalIAndTransform);
+        inline label index(const labelPair& globalIAndTransform) const;
 
         //- Which processor does this come from?
-        inline static label processor(const labelPair& globalIAndTransform);
+        inline label processor(const labelPair& globalIAndTransform) const;
 
         //- Transform carried by the object
-        inline static label transformIndex
+        inline label transformIndex(const labelPair& globalIAndTransform) const;
+
+        //- Return the number of independent transforms
+        inline label nIndependentTransforms() const;
+
+        //- Return access to the stored independent transforms
+        inline const List<vectorTensorTransform>& transforms() const;
+
+        //- Return access to the permuted transforms
+        inline const List<vectorTensorTransform>&
+        transformPermutations() const;
+
+        //- Return the transformIndex (index in transformPermutations)
+        //  of the identity transform
+        inline label nullTransformIndex() const;
+
+        //- Return access to the per-patch transform-sign pairs
+        inline const List<labelPair>& patchTransformSign() const;
+
+        //- Access the overall (permuted) transform corresponding
+        //  to the transformIndex
+        inline const vectorTensorTransform& transform
         (
-            const labelPair& globalIAndTransform
-        );
-
-        // Access
-
-            //- Return the number of independent transforms
-            inline label nIndependentTransforms() const;
-
-            //- Return access to the stored independent transforms
-            inline const List<vectorTensorTransform>& transforms() const;
-
-            //- Return access to the permuted transforms
-            inline const List<vectorTensorTransform>&
-            transformPermutations() const;
-
-            //- Return the transformIndex (index in transformPermutations)
-            //  of the identity transform
-            inline label nullTransformIndex() const;
-
-            //- Return access to the per-patch transform-sign pairs
-            inline const List<Pair<label>>& patchTransformSign() const;
-
-            //- Access the overall (permuted) transform corresponding
-            //  to the transformIndex
-            inline const vectorTensorTransform& transform
-            (
-                label transformIndex
-            ) const;
-
-            //- Access the all of the indices of the transform
-            //  permutations corresponding the transforms of the
-            //  listed patch indices
-            inline labelList transformIndicesForPatches
-            (
-                const labelHashSet& patchIs
-            ) const;
-
-            //- Apply all of the transform permutations
-            //  corresponding the transforms of the listed patch
-            //  indices to the supplied point
-            inline pointField transformPatches
-            (
-                const labelHashSet& patchIs,
-                const point& pt
-            ) const;
+            label transformIndex
+        ) const;
+
+        //- Access the all of the indices of the transform
+        //  permutations corresponding the transforms of the
+        //  listed patch indices. This only allows a maximum of three
+        //  transformations (since routine is used to transform points and
+        //  any given point can only be on 3 or less transforms)
+        inline labelList transformIndicesForPatches
+        (
+            const labelHashSet& patchIs
+        ) const;
+
+        //- Apply all of the transform permutations
+        //  corresponding the transforms of the listed patch
+        //  indices to the supplied point
+        inline pointField transformPatches
+        (
+            const labelHashSet& patchIs,
+            const point& pt
+        ) const;
 
 };
 
diff --git a/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransformI.H b/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransformI.H
index d6aa055543d0da09c7236557d8919f7e9388ce7e..56e74f2c7ddcd572ebdbe3020af43795d56be503 100644
--- a/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransformI.H
+++ b/src/OpenFOAM/primitives/globalIndexAndTransform/globalIndexAndTransformI.H
@@ -33,8 +33,8 @@ bool Foam::globalIndexAndTransform::less::operator()
     const labelPair& b
 ) const
 {
-    label procA = globalIndexAndTransform::processor(a);
-    label procB = globalIndexAndTransform::processor(b);
+    label procA = gi_.processor(a);
+    label procB = gi_.processor(b);
 
     if (procA < procB)
     {
@@ -47,8 +47,8 @@ bool Foam::globalIndexAndTransform::less::operator()
     else
     {
         // Equal proc.
-        label indexA = globalIndexAndTransform::index(a);
-        label indexB = globalIndexAndTransform::index(b);
+        label indexA = gi_.index(a);
+        label indexB = gi_.index(b);
 
         if (indexA < indexB)
         {
@@ -61,8 +61,8 @@ bool Foam::globalIndexAndTransform::less::operator()
         else
         {
             // Equal index
-            label transformA = globalIndexAndTransform::transformIndex(a);
-            label transformB = globalIndexAndTransform::transformIndex(b);
+            label transformA = gi_.transformIndex(a);
+            label transformB = gi_.transformIndex(b);
 
             return transformA < transformB;
         }
@@ -72,7 +72,7 @@ bool Foam::globalIndexAndTransform::less::operator()
 
 Foam::label Foam::globalIndexAndTransform::encodeTransformIndex
 (
-    const List<label>& permutationIndices
+    const labelList& permutationIndices
 ) const
 {
     if (permutationIndices.size() != transforms_.size())
@@ -106,68 +106,20 @@ Foam::label Foam::globalIndexAndTransform::encodeTransformIndex
 }
 
 
-Foam::label Foam::globalIndexAndTransform::encodeTransformIndex
-(
-    const FixedList<Foam::label, 3>& permutation
-) const
-{
-    if (nIndependentTransforms() == 0)
-    {
-        return 0;
-    }
-    if (nIndependentTransforms() == 1)
-    {
-        return permutation[0]+1;
-    }
-    else if (nIndependentTransforms() == 2)
-    {
-        return (permutation[1]+1)*3 + (permutation[0]+1);
-    }
-    else
-    {
-        return
-            (permutation[2]+1)*9
-          + (permutation[1]+1)*3
-          + (permutation[0]+1);
-    }
-}
-
-
-Foam::FixedList<Foam::label, 3>
-Foam::globalIndexAndTransform::decodeTransformIndex
+Foam::labelList Foam::globalIndexAndTransform::decodeTransformIndex
 (
     const label transformIndex
 ) const
 {
-    FixedList<label, 3> permutation(label(0));
+    labelList permutation(transforms_.size(), 0);
 
     label t = transformIndex;
-    if (nIndependentTransforms() > 0)
+    forAll(permutation, i)
     {
-        permutation[0] = (t%3)-1;
-        if (nIndependentTransforms() > 1)
-        {
-            t /= 3;
-            permutation[1] = (t%3)-1;
-            if (nIndependentTransforms() > 2)
-            {
-                t /= 3;
-                permutation[2] = (t%3)-1;
-            }
-        }
+        permutation[i] = (t%3)-1;
+        t /= 3;
     }
 
-    #ifdef FULLDEBUG
-    t /= 3;
-    if (t != 0)
-    {
-        FatalErrorInFunction
-            << "transformIndex : " << transformIndex
-            << " has more than 3 fields."
-            << abort(FatalError);
-    }
-    #endif
-
     return permutation;
 }
 
@@ -180,15 +132,28 @@ Foam::label Foam::globalIndexAndTransform::addToTransformIndex
     const scalar tol
 ) const
 {
-    const Pair<label>& transSign = patchTransformSign_[patchi];
+    const labelPair& transSign = patchTransformSign_[patchi];
 
     label matchTransI = transSign.first();
 
-    // Hardcoded for max 3 transforms only!
-
-    if (matchTransI > -1 && matchTransI < 3)
+    if (matchTransI >= transforms_.size())
     {
-        FixedList<label, 3> permutation = decodeTransformIndex(transformIndex);
+        FatalErrorInFunction
+            << "patch:" << mesh_.boundaryMesh()[patchi].name()
+            << " transform:" << matchTransI
+            << " out of possible transforms:" << transforms_
+            << exit(FatalError);
+        return labelMin;
+    }
+    else if (matchTransI == -1)
+    {
+        // No additional transformation for this patch
+        return transformIndex;
+    }
+    else
+    {
+        // Decode current set of transforms
+        labelList permutation(decodeTransformIndex(transformIndex));
 
 
         // Add patch transform
@@ -267,10 +232,6 @@ Foam::label Foam::globalIndexAndTransform::addToTransformIndex
 
         return encodeTransformIndex(permutation);
     }
-    else
-    {
-        return transformIndex;
-    }
 }
 
 
@@ -287,7 +248,7 @@ Foam::label Foam::globalIndexAndTransform::minimumTransformIndex
 
 
     // Count number of transforms
-    FixedList<label, 3> permutation0 = decodeTransformIndex(transformIndex0);
+    labelList permutation0(decodeTransformIndex(transformIndex0));
     label n0 = 0;
     forAll(permutation0, i)
     {
@@ -297,7 +258,7 @@ Foam::label Foam::globalIndexAndTransform::minimumTransformIndex
         }
     }
 
-    FixedList<label, 3> permutation1 = decodeTransformIndex(transformIndex1);
+    labelList permutation1(decodeTransformIndex(transformIndex1));
     label n1 = 0;
     forAll(permutation1, i)
     {
@@ -324,8 +285,8 @@ Foam::label Foam::globalIndexAndTransform::subtractTransformIndex
     const label transformIndex1
 ) const
 {
-    FixedList<label, 3> permutation0 = decodeTransformIndex(transformIndex0);
-    FixedList<label, 3> permutation1 = decodeTransformIndex(transformIndex1);
+    labelList permutation0(decodeTransformIndex(transformIndex0));
+    labelList permutation1(decodeTransformIndex(transformIndex1));
 
     forAll(permutation0, i)
     {
@@ -340,7 +301,7 @@ Foam::labelPair Foam::globalIndexAndTransform::encode
 (
     const label index,
     const label transformIndex
-)
+) const
 {
     return encode(Pstream::myProcNo(), index, transformIndex);
 }
@@ -351,21 +312,22 @@ Foam::labelPair Foam::globalIndexAndTransform::encode
     const label proci,
     const label index,
     const label transformIndex
-)
+) const
 {
-    if (transformIndex < 0 || transformIndex >= base_)
+    if (transformIndex < 0 || transformIndex >= transformPermutations_.size())
     {
         FatalErrorInFunction
             << "TransformIndex " << transformIndex
             << " is outside allowed range of 0 to "
-            << base_ - 1
+            << transformPermutations_.size() - 1
             << abort(FatalError);
     }
 
-    if (proci > labelMax/base_)
+    if (proci > labelMax/transformPermutations_.size())
     {
         FatalErrorInFunction
-            << "Overflow : encoding processor " << proci << " in base " << base_
+            << "Overflow : encoding processor " << proci
+            << " in base " << transformPermutations_.size()
             << " exceeds capability of label (" << labelMax
             << "). Please recompile with larger datatype for label."
             << exit(FatalError);
@@ -374,7 +336,7 @@ Foam::labelPair Foam::globalIndexAndTransform::encode
     return labelPair
     (
         index,
-        transformIndex + proci*base_
+        transformIndex + proci*transformPermutations_.size()
     );
 }
 
@@ -382,7 +344,7 @@ Foam::labelPair Foam::globalIndexAndTransform::encode
 Foam::label Foam::globalIndexAndTransform::index
 (
     const labelPair& globalIAndTransform
-)
+) const
 {
     return globalIAndTransform.first();
 }
@@ -391,18 +353,18 @@ Foam::label Foam::globalIndexAndTransform::index
 Foam::label Foam::globalIndexAndTransform::processor
 (
     const labelPair& globalIAndTransform
-)
+) const
 {
-    return globalIAndTransform.second()/base_;
+    return globalIAndTransform.second()/transformPermutations_.size();
 }
 
 
 Foam::label Foam::globalIndexAndTransform::transformIndex
 (
     const labelPair& globalIAndTransform
-)
+) const
 {
-    return globalIAndTransform.second() % base_;
+    return globalIAndTransform.second()%transformPermutations_.size();
 }
 
 
@@ -432,7 +394,7 @@ Foam::label Foam::globalIndexAndTransform::nullTransformIndex() const
 }
 
 
-const Foam::List<Foam::Pair<Foam::label>>&
+const Foam::labelPairList&
 Foam::globalIndexAndTransform::patchTransformSign() const
 {
     return patchTransformSign_;
@@ -453,7 +415,7 @@ Foam::labelList Foam::globalIndexAndTransform::transformIndicesForPatches
     const labelHashSet& patchis
 ) const
 {
-    List<label> permutation(transforms_.size(), 0);
+    labelList permutation(transforms_.size(), 0);
 
     labelList selectedTransformIs(0);
 
@@ -466,7 +428,7 @@ Foam::labelList Foam::globalIndexAndTransform::transformIndicesForPatches
     {
         label patchi = iter.key();
 
-        const Pair<label>& transSign = patchTransformSign_[patchi];
+        const labelPair& transSign = patchTransformSign_[patchi];
 
         label matchTransI = transSign.first();
 
@@ -520,7 +482,7 @@ Foam::labelList Foam::globalIndexAndTransform::transformIndicesForPatches
         }
         case 2:
         {
-            List<label> tempPermutation = permutation;
+            labelList tempPermutation = permutation;
 
             label a = 0;
             label b = 1;
@@ -565,7 +527,7 @@ Foam::labelList Foam::globalIndexAndTransform::transformIndicesForPatches
         }
         case 3:
         {
-            List<label> tempPermutation = permutation;
+            labelList tempPermutation = permutation;
 
             tempPermutation[0] = 0;
             tempPermutation[1] = 0;
diff --git a/src/OpenFOAM/primitives/ints/int32/int32.H b/src/OpenFOAM/primitives/ints/int32/int32.H
index de8baa210936cdcdaa5f10191fab543bc2b71e55..96c748b05215889821b1357819a4b1a301a0da0b 100644
--- a/src/OpenFOAM/primitives/ints/int32/int32.H
+++ b/src/OpenFOAM/primitives/ints/int32/int32.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -56,7 +56,22 @@ class Ostream;
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 //- Return a word representation of an int32
-word name(const int32_t);
+inline word name(const int32_t val)
+{
+    // no stripping required
+    return word(std::to_string(val), false);
+}
+
+
+//- Return a word representation of an int32, using printf-style formatter.
+//  The representation is not checked for valid word characters.
+word name(const char* fmt, const int32_t);
+
+
+//- Return a word representation of an int32, using printf-style formatter.
+//  The representation is not checked for valid word characters.
+word name(const std::string&, const int32_t);
+
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
diff --git a/src/OpenFOAM/primitives/ints/int32/int32IO.C b/src/OpenFOAM/primitives/ints/int32/int32IO.C
index a8c972377dba3dd927a9797f0035091a95415e0b..c5023315f026dad37ec6e4e240a76b03abe1b872 100644
--- a/src/OpenFOAM/primitives/ints/int32/int32IO.C
+++ b/src/OpenFOAM/primitives/ints/int32/int32IO.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,6 +24,7 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "int32.H"
+#include "stringOps.H"
 #include "IOstreams.H"
 
 #include <inttypes.h>
@@ -32,11 +33,15 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Foam::word Foam::name(const int32_t val)
+Foam::word Foam::name(const char* fmt, const int32_t val)
 {
-    std::ostringstream buf;
-    buf << val;
-    return buf.str();
+    return stringOps::name(fmt, val);
+}
+
+
+Foam::word Foam::name(const std::string& fmt, const int32_t val)
+{
+    return stringOps::name(fmt, val);
 }
 
 
diff --git a/src/OpenFOAM/primitives/ints/int64/int64.H b/src/OpenFOAM/primitives/ints/int64/int64.H
index 2bb5a05804fa486cc4e97206a174626a28d98b70..58b0adc5b7215d1e24e7deee0aab853815ce0c6a 100644
--- a/src/OpenFOAM/primitives/ints/int64/int64.H
+++ b/src/OpenFOAM/primitives/ints/int64/int64.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -45,9 +45,6 @@ SourceFiles
 #include "pTraits.H"
 #include "direction.H"
 
-#ifndef UINT64_MIN
-#define UINT64_MIN 0
-#endif
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -60,7 +57,22 @@ class Ostream;
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 //- Return a word representation of an int64
-word name(const int64_t);
+inline word name(const int64_t val)
+{
+    // no stripping required
+    return word(std::to_string(val), false);
+}
+
+
+//- Return a word representation of an int64, using printf-style formatter.
+//  The representation is not checked for valid word characters.
+word name(const char* fmt, const int64_t);
+
+
+//- Return a word representation of an int64, using printf-style formatter.
+//  The representation is not checked for valid word characters.
+word name(const std::string& fmt, const int64_t);
+
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
diff --git a/src/OpenFOAM/primitives/ints/int64/int64IO.C b/src/OpenFOAM/primitives/ints/int64/int64IO.C
index 89f14163a0b6023f23dbd5e79ab3bbf766eb97aa..0523bb94cbbbac954481bc7890ef9463a9b82b03 100644
--- a/src/OpenFOAM/primitives/ints/int64/int64IO.C
+++ b/src/OpenFOAM/primitives/ints/int64/int64IO.C
@@ -24,6 +24,7 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "int64.H"
+#include "stringOps.H"
 #include "IOstreams.H"
 
 #include <inttypes.h>
@@ -32,11 +33,15 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Foam::word Foam::name(const int64_t val)
+Foam::word Foam::name(const char* fmt, const int64_t val)
 {
-    std::ostringstream buf;
-    buf << val;
-    return buf.str();
+    return stringOps::name(fmt, val);
+}
+
+
+Foam::word Foam::name(const std::string& fmt, const int64_t val)
+{
+    return stringOps::name(fmt, val);
 }
 
 
diff --git a/src/OpenFOAM/primitives/ints/uint32/uint32.H b/src/OpenFOAM/primitives/ints/uint32/uint32.H
index 34803c218ff43af226da45bd4d45d8ce705e942f..469189e976d340002ac45195c2bdab11bf5ef8bd 100644
--- a/src/OpenFOAM/primitives/ints/uint32/uint32.H
+++ b/src/OpenFOAM/primitives/ints/uint32/uint32.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -55,8 +55,23 @@ class Ostream;
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-//- Return a word representation of an uint32
-word name(const uint32_t);
+//- Return a word representation of a uint32
+inline word name(const uint32_t val)
+{
+    // no stripping required
+    return word(std::to_string(val), false);
+}
+
+
+//- Return a word representation of a uint32, using printf-style formatter.
+//  The representation is not checked for valid word characters.
+word name(const char* fmt, const uint32_t);
+
+
+//- Return a word representation of a uint32, using printf-style formatter.
+//  The representation is not checked for valid word characters.
+word name(const std::string& fmt, const uint32_t);
+
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
diff --git a/src/OpenFOAM/primitives/ints/uint32/uint32IO.C b/src/OpenFOAM/primitives/ints/uint32/uint32IO.C
index 2746938d638028443a87ef1317d997975884fa33..f88f5b1ad86d403cd0568f3278ab8ac950c7c1ad 100644
--- a/src/OpenFOAM/primitives/ints/uint32/uint32IO.C
+++ b/src/OpenFOAM/primitives/ints/uint32/uint32IO.C
@@ -24,17 +24,22 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "uint32.H"
+#include "stringOps.H"
 #include "IOstreams.H"
 
 #include <sstream>
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Foam::word Foam::name(const uint32_t val)
+Foam::word Foam::name(const char* fmt, const uint32_t val)
 {
-    std::ostringstream buf;
-    buf << val;
-    return buf.str();
+    return stringOps::name(fmt, val);
+}
+
+
+Foam::word Foam::name(const std::string& fmt, const uint32_t val)
+{
+    return stringOps::name(fmt, val);
 }
 
 
diff --git a/src/OpenFOAM/primitives/ints/uint64/uint64.H b/src/OpenFOAM/primitives/ints/uint64/uint64.H
index e1a742b6c2206e6c8c9aa1500ebcffb635a3ec17..f55c73d531c4f91d987aefc3a95949aad3b64621 100644
--- a/src/OpenFOAM/primitives/ints/uint64/uint64.H
+++ b/src/OpenFOAM/primitives/ints/uint64/uint64.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -45,9 +45,6 @@ SourceFiles
 #include "pTraits.H"
 #include "direction.H"
 
-#ifndef UINT64_MIN
-#define UINT64_MIN 0
-#endif
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -59,8 +56,23 @@ class Ostream;
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-//- Return a word representation of an uint64
-word name(const uint64_t);
+//- Return a word representation of a uint64
+inline word name(const uint64_t val)
+{
+    // no stripping required
+    return word(std::to_string(val), false);
+}
+
+
+//- Return a word representation of a uint64_t, using printf-style formatter.
+//  The representation is not checked for valid word characters.
+word name(const char* fmt, const uint64_t);
+
+
+//- Return a word representation of a uint64_t, using printf-style formatter.
+//  The representation is not checked for valid word characters.
+word name(const std::string& fmt, const uint64_t);
+
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
diff --git a/src/OpenFOAM/primitives/ints/uint64/uint64IO.C b/src/OpenFOAM/primitives/ints/uint64/uint64IO.C
index be10f83b014bcad02fb4a264080f3bb41ad5ff63..3e110d933a63e19d401bbf77d136aa5f2c49d9ee 100644
--- a/src/OpenFOAM/primitives/ints/uint64/uint64IO.C
+++ b/src/OpenFOAM/primitives/ints/uint64/uint64IO.C
@@ -24,17 +24,22 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "uint64.H"
+#include "stringOps.H"
 #include "IOstreams.H"
 
 #include <sstream>
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Foam::word Foam::name(const uint64_t val)
+Foam::word Foam::name(const char* fmt, const uint64_t val)
 {
-    std::ostringstream buf;
-    buf << val;
-    return buf.str();
+    return stringOps::name(fmt, val);
+}
+
+
+Foam::word Foam::name(const std::string& fmt, const uint64_t val)
+{
+    return stringOps::name(fmt, val);
 }
 
 
diff --git a/src/OpenFOAM/primitives/strings/stringOps/stringOps.H b/src/OpenFOAM/primitives/strings/stringOps/stringOps.H
index 3a72467bc9ce68b82d4dd38de5b561a70836279d..fb408455f610d09d8165e88769fa69f564605197 100644
--- a/src/OpenFOAM/primitives/strings/stringOps/stringOps.H
+++ b/src/OpenFOAM/primitives/strings/stringOps/stringOps.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -36,6 +36,7 @@ SourceFiles
 #define stringOps_H
 
 #include "string.H"
+#include "word.H"
 #include "dictionary.H"
 #include "HashTable.H"
 
@@ -292,6 +293,21 @@ namespace stringOps
     string& inplaceTrim(string&);
 
 
+    //- Return a word representation of the primitive,
+    //  using printf-style formatter.
+    //  The representation is not checked for valid word characters -
+    //  it is assumed that the caller knows what they are doing
+    template<class PrimitiveType>
+    Foam::word name(const char* fmt, const PrimitiveType& val);
+
+    //- Return a word representation of the primitive,
+    //  using printf-style formatter.
+    //  The representation is not checked for valid word characters -
+    //  it is assumed that the caller knows what they are doing
+    template<class PrimitiveType>
+    Foam::word name(const std::string& fmt, const PrimitiveType& val);
+
+
 } // End namespace stringOps
 
 
@@ -299,6 +315,13 @@ namespace stringOps
 
 } // End namespace Foam
 
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "stringOpsTemplates.C"
+#endif
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #endif
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/itoa.C b/src/OpenFOAM/primitives/strings/stringOps/stringOpsTemplates.C
similarity index 61%
rename from applications/utilities/postProcessing/dataConversion/foamToEnsight/itoa.C
rename to src/OpenFOAM/primitives/strings/stringOps/stringOpsTemplates.C
index 0975da93d30f87fbacbfe7ab0bba0637a7d05cd0..a3874aa88ee30aac71a845e8b774458036ac6ae3 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/itoa.C
+++ b/src/OpenFOAM/primitives/strings/stringOps/stringOpsTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -23,39 +23,47 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "itoa.H"
+#include <cstdio>
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-namespace Foam
-{
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// NOTE: with C++11 could consider variadic templates for a more general
+// sprintf implementation
 
-word itoa(const label n)
+template<class PrimitiveType>
+Foam::word Foam::stringOps::name
+(
+    const char* fmt,
+    const PrimitiveType& val
+)
 {
-    const label offset = '0';
-    const label length = 4;
-
-    char val[length + 1];
-
-    label leftOfN = n;
+    // same concept as GNU/BSD asprintf()
+    // use snprintf with zero to determine the number of characters required
 
-    for (label i=0; i<length; i++)
+    int n = ::snprintf(0, 0, fmt, val);
+    if (n > 0)
     {
-        label j = label(leftOfN/pow(10, length - i - 1));
-        leftOfN -= j*pow(10, length - i - 1);
-        val[i] = offset + j;
-    }
+        char buf[n+1];
+        ::snprintf(buf, n+1, fmt, val);
+        buf[n] = 0;
 
-    val[length] = 0;
+        // no stripping desired
+        return word(buf, false);
+    }
 
-    return val;
+    return word::null;
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+template<class PrimitiveType>
+Foam::word Foam::stringOps::name
+(
+    const std::string& fmt,
+    const PrimitiveType& val
+)
+{
+    return stringOps::name(fmt.c_str(), val);
+}
 
-} // End namespace Foam
 
 // ************************************************************************* //
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/makeTurbulenceModel.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/makeTurbulenceModel.H
index da2dd7188adf39ca92ecfdfb4c071931fab02e3c..e4e5358e33fca01a9c47117d3fa995c182df4cf3 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/makeTurbulenceModel.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/makeTurbulenceModel.H
@@ -34,7 +34,8 @@ License
     {                                                                          \
         typedef TDModel<BaseModel<Transport>>                                  \
             Transport##BaseModel;                                              \
-        typedef laminar<Transport##BaseModel> Laminar##Transport##BaseModel;   \
+        typedef laminarModel<Transport##BaseModel>                             \
+            laminar##Transport##BaseModel;                                     \
         typedef RASModel<EddyDiffusivity<Transport##BaseModel>>                \
             RAS##Transport##BaseModel;                                         \
         typedef LESModel<EddyDiffusivity<Transport##BaseModel>>                \
@@ -65,14 +66,18 @@ License
             Transport##BaseModel;                                              \
                                                                                \
                                                                                \
-        typedef laminar<Transport##BaseModel> Laminar##Transport##BaseModel;   \
+        typedef laminarModel<Transport##BaseModel>                             \
+            laminar##Transport##BaseModel;                                     \
                                                                                \
-        defineNamedTemplateTypeNameAndDebug(Laminar##Transport##BaseModel, 0); \
+        defineNamedTemplateTypeNameAndDebug(laminar##Transport##BaseModel, 0); \
+                                                                               \
+        defineTemplateRunTimeSelectionTable                                    \
+        (laminar##Transport##BaseModel, dictionary);                           \
                                                                                \
         addToRunTimeSelectionTable                                             \
         (                                                                      \
             Transport##baseModel,                                              \
-            Laminar##Transport##BaseModel,                                     \
+            laminar##Transport##BaseModel,                                     \
             dictionary                                                         \
         );                                                                     \
                                                                                \
@@ -110,6 +115,27 @@ License
     }
 
 
+#define makeTemplatedLaminarModel(BaseModel, SType, Type)                      \
+    typedef Foam::SType##Models::Type<Foam::BaseModel>                         \
+        Type##SType##BaseModel;                                                \
+    defineNamedTemplateTypeNameAndDebug(Type##SType##BaseModel, 0);            \
+                                                                               \
+    namespace Foam                                                             \
+    {                                                                          \
+        namespace SType##Models                                                \
+        {                                                                      \
+            typedef Type<BaseModel> Type##SType##BaseModel;                    \
+                                                                               \
+            addToRunTimeSelectionTable                                         \
+            (                                                                  \
+                SType##BaseModel,                                              \
+                Type##SType##BaseModel,                                        \
+                dictionary                                                     \
+            );                                                                 \
+        }                                                                      \
+    }
+
+
 #define makeTemplatedTurbulenceModel(BaseModel, SType, Type)                   \
     typedef Foam::SType##Models::Type<Foam::EddyDiffusivity<Foam::BaseModel>> \
         Type##SType##BaseModel;                                                \
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModel.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModel.H
index 33067385017befcbf54e3f792bbb67f065ae5871..98bc0b578306b2a42d50ebb478a3a96f43e54b89 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModel.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModel.H
@@ -46,6 +46,7 @@ SourceFiles
 #include "CompressibleTurbulenceModel.H"
 #include "ThermalDiffusivity.H"
 #include "EddyDiffusivity.H"
+#include "laminarModel.H"
 #include "RASModel.H"
 #include "LESModel.H"
 #include "fluidThermo.H"
@@ -59,6 +60,7 @@ namespace Foam
         typedef ThermalDiffusivity<CompressibleTurbulenceModel<fluidThermo>>
             turbulenceModel;
 
+        typedef laminarModel<turbulenceModel> laminarModel;
         typedef RASModel<EddyDiffusivity<turbulenceModel>> RASModel;
         typedef LESModel<EddyDiffusivity<turbulenceModel>> LESModel;
 
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.C
index 5b698d9091b59f0ac6091df03af3b2d73725e6a4..ee1672498ab2511cc798cfb249299f4d64f3d5e5 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.C
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.C
@@ -37,6 +37,18 @@ makeBaseTurbulenceModel
     fluidThermo
 );
 
+
+// -------------------------------------------------------------------------- //
+// Laminar models
+// -------------------------------------------------------------------------- //
+
+#include "Stokes.H"
+makeLaminarModel(Stokes);
+
+#include "Maxwell.H"
+makeLaminarModel(Maxwell);
+
+
 // -------------------------------------------------------------------------- //
 // RAS models
 // -------------------------------------------------------------------------- //
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.H
index 67ba5cf4eadca67cd10422f78dcacdc654498a43..54b8c3ebefbdf10403d16fe3f32a3a9259894f2b 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/turbulentFluidThermoModels.H
@@ -32,7 +32,7 @@ License
 #include "ThermalDiffusivity.H"
 #include "EddyDiffusivity.H"
 
-#include "laminar.H"
+#include "laminarModel.H"
 #include "RASModel.H"
 #include "LESModel.H"
 
@@ -48,6 +48,10 @@ makeTurbulenceModelTypes
     fluidThermo
 );
 
+#define makeLaminarModel(Type)                                                 \
+    makeTemplatedLaminarModel                                                  \
+    (fluidThermoCompressibleTurbulenceModel, laminar, Type)
+
 #define makeRASModel(Type)                                                     \
     makeTemplatedTurbulenceModel                                               \
     (fluidThermoCompressibleTurbulenceModel, RAS, Type)
diff --git a/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModel.H b/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModel.H
index 31b9a37c1585d49ff639ef0a1a27557566a8200b..268425e1a1a001bef40412613327f86b334e5514 100644
--- a/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModel.H
+++ b/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModel.H
@@ -44,6 +44,7 @@ SourceFiles
 #define turbulentTransportModel_H
 
 #include "IncompressibleTurbulenceModel.H"
+#include "laminarModel.H"
 #include "RASModel.H"
 #include "LESModel.H"
 #include "incompressible/transportModel/transportModel.H"
@@ -56,6 +57,7 @@ namespace Foam
     {
         typedef IncompressibleTurbulenceModel<transportModel> turbulenceModel;
 
+        typedef laminarModel<turbulenceModel> laminarModel;
         typedef RASModel<turbulenceModel> RASModel;
         typedef LESModel<turbulenceModel> LESModel;
 
diff --git a/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.C b/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.C
index 0c3d51012a914b087654b9be3126efb71bacd24b..ea16b1c2b2eaeb21c9f7df4736cb7f30d768e59c 100644
--- a/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.C
+++ b/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.C
@@ -36,6 +36,18 @@ makeBaseTurbulenceModel
     transportModel
 );
 
+
+// -------------------------------------------------------------------------- //
+// Laminar models
+// -------------------------------------------------------------------------- //
+
+#include "Stokes.H"
+makeLaminarModel(Stokes);
+
+#include "Maxwell.H"
+makeLaminarModel(Maxwell);
+
+
 // -------------------------------------------------------------------------- //
 // RAS models
 // -------------------------------------------------------------------------- //
diff --git a/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.H b/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.H
index c86c93ab7ea59120ac8eed8862bc15df2931e868..b0501ac0a4fd0910243e6f8ec35e0f3d4f510916 100644
--- a/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.H
+++ b/src/TurbulenceModels/incompressible/turbulentTransportModels/turbulentTransportModels.H
@@ -28,7 +28,7 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "makeTurbulenceModel.H"
 
-#include "laminar.H"
+#include "laminarModel.H"
 #include "RASModel.H"
 #include "LESModel.H"
 
@@ -43,6 +43,10 @@ makeTurbulenceModelTypes
     transportModel
 );
 
+#define makeLaminarModel(Type)                                                 \
+    makeTemplatedTurbulenceModel                                               \
+    (transportModelIncompressibleTurbulenceModel, laminar, Type)
+
 #define makeRASModel(Type)                                                     \
     makeTemplatedTurbulenceModel                                               \
     (transportModelIncompressibleTurbulenceModel, RAS, Type)
diff --git a/src/TurbulenceModels/schemes/Make/options b/src/TurbulenceModels/schemes/Make/options
index 29eef672dfee322ef13cf787eeb2506d314432a5..26b3200f19a9851def97a79db99062baf5286398 100644
--- a/src/TurbulenceModels/schemes/Make/options
+++ b/src/TurbulenceModels/schemes/Make/options
@@ -5,7 +5,8 @@ EXE_INC = \
     -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/finiteVolume/lnInclude
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 LIB_LIBS = \
     -lcompressibleTransportModels \
@@ -14,4 +15,5 @@ LIB_LIBS = \
     -lincompressibleTransportModels \
     -lcompressibleTurbulenceModels \
     -lfluidThermophysicalModels \
-    -lfiniteVolume
+    -lfiniteVolume \
+    -lmeshTools
diff --git a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C
index d750b52e1add37df7e69a8752068a2460632c937..da70b0cc1805d19f9556962e59864fd79d15791a 100644
--- a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C
+++ b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C
@@ -142,14 +142,31 @@ template<class BasicEddyViscosityModel>
 tmp<volScalarField::Internal>
 kOmegaSSTBase<BasicEddyViscosityModel>::epsilonByk
 (
-    const volScalarField::Internal& F1,
-    const volScalarField::Internal& F2
+    const volScalarField& F1,
+    const volTensorField& gradU
 ) const
 {
     return betaStar_*omega_();
 }
 
 
+template<class BasicEddyViscosityModel>
+tmp<volScalarField::Internal> kOmegaSSTBase<BasicEddyViscosityModel>::GbyNu
+(
+    const volScalarField::Internal& GbyNu0,
+    const volScalarField::Internal& F2,
+    const volScalarField::Internal& S2
+) const
+{
+    return min
+    (
+        GbyNu0,
+        (c1_/a1_)*betaStar_*omega_()
+       *max(a1_*omega_(), b1_*F2*sqrt(S2))
+    );
+}
+
+
 template<class BasicEddyViscosityModel>
 tmp<fvScalarMatrix> kOmegaSSTBase<BasicEddyViscosityModel>::kSource() const
 {
@@ -181,9 +198,9 @@ tmp<fvScalarMatrix> kOmegaSSTBase<BasicEddyViscosityModel>::omegaSource() const
 template<class BasicEddyViscosityModel>
 tmp<fvScalarMatrix> kOmegaSSTBase<BasicEddyViscosityModel>::Qsas
 (
-    const volScalarField& S2,
-    const volScalarField& gamma,
-    const volScalarField& beta
+    const volScalarField::Internal& S2,
+    const volScalarField::Internal& gamma,
+    const volScalarField::Internal& beta
 ) const
 {
     return tmp<fvScalarMatrix>
@@ -422,13 +439,12 @@ void kOmegaSSTBase<BasicEddyViscosityModel>::correct()
 
     BasicEddyViscosityModel::correct();
 
-    volScalarField divU(fvc::div(fvc::absolute(this->phi(), U)));
+    volScalarField::Internal divU(fvc::div(fvc::absolute(this->phi(), U)));
 
     tmp<volTensorField> tgradU = fvc::grad(U);
     volScalarField S2(2*magSqr(symm(tgradU())));
-    volScalarField GbyNu((tgradU() && dev(twoSymm(tgradU()))));
-    volScalarField G(this->GName(), nut*GbyNu);
-    tgradU.clear();
+    volScalarField::Internal GbyNu0((tgradU() && dev(twoSymm(tgradU()))));
+    volScalarField::Internal G(this->GName(), nut*GbyNu0);
 
     // Update omega and G at the wall
     omega_.boundaryFieldRef().updateCoeffs();
@@ -439,10 +455,11 @@ void kOmegaSSTBase<BasicEddyViscosityModel>::correct()
     );
 
     volScalarField F1(this->F1(CDkOmega));
+    volScalarField F23(this->F23());
 
     {
-        volScalarField gamma(this->gamma(F1));
-        volScalarField beta(this->beta(F1));
+        volScalarField::Internal gamma(this->gamma(F1));
+        volScalarField::Internal beta(this->beta(F1));
 
         // Turbulent frequency equation
         tmp<fvScalarMatrix> omegaEqn
@@ -451,20 +468,15 @@ void kOmegaSSTBase<BasicEddyViscosityModel>::correct()
           + fvm::div(alphaRhoPhi, omega_)
           - fvm::laplacian(alpha*rho*DomegaEff(F1), omega_)
          ==
-            alpha*rho*gamma
-           *min
-            (
-                GbyNu,
-                (c1_/a1_)*betaStar_*omega_*max(a1_*omega_, b1_*F23()*sqrt(S2))
-            )
-          - fvm::SuSp((2.0/3.0)*alpha*rho*gamma*divU, omega_)
-          - fvm::Sp(alpha*rho*beta*omega_, omega_)
+            alpha()*rho()*gamma*GbyNu(GbyNu0, F23(), S2())
+          - fvm::SuSp((2.0/3.0)*alpha()*rho()*gamma*divU, omega_)
+          - fvm::Sp(alpha()*rho()*beta*omega_(), omega_)
           - fvm::SuSp
             (
-                alpha*rho*(F1 - scalar(1))*CDkOmega/omega_,
+                alpha()*rho()*(F1() - scalar(1))*CDkOmega()/omega_(),
                 omega_
             )
-          + Qsas(S2, gamma, beta)
+          + Qsas(S2(), gamma, beta)
           + omegaSource()
           + fvOptions(alpha, rho, omega_)
         );
@@ -484,13 +496,15 @@ void kOmegaSSTBase<BasicEddyViscosityModel>::correct()
       + fvm::div(alphaRhoPhi, k_)
       - fvm::laplacian(alpha*rho*DkEff(F1), k_)
      ==
-        min(alpha*rho*G, (c1_*betaStar_)*alpha*rho*k_*omega_)
-      - fvm::SuSp((2.0/3.0)*alpha*rho*divU, k_)
-      - fvm::Sp(alpha*rho*betaStar_*omega_, k_)
+        alpha()*rho()*Pk(G)
+      - fvm::SuSp((2.0/3.0)*alpha()*rho()*divU, k_)
+      - fvm::Sp(alpha()*rho()*epsilonByk(F1, tgradU()), k_)
       + kSource()
       + fvOptions(alpha, rho, k_)
     );
 
+    tgradU.clear();
+
     kEqn.ref().relax();
     fvOptions.constrain(kEqn.ref());
     solve(kEqn);
diff --git a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.H b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.H
index 8cf07622c8ad76fff73aad940cbe072de092d5df..6a38be2dc0bd6d0a176b3fb479a2627a13ba023b 100644
--- a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.H
+++ b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.H
@@ -100,9 +100,6 @@ SourceFiles
 #ifndef kOmegaSSTBase_H
 #define kOmegaSSTBase_H
 
-#include "RASModel.H"
-#include "eddyViscosity.H"
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
@@ -121,7 +118,7 @@ class kOmegaSSTBase
 
         // Disallow default bitwise copy construct and assignment
         kOmegaSSTBase(const kOmegaSSTBase&);
-        kOmegaSSTBase& operator=(const kOmegaSSTBase&);
+        void operator=(const kOmegaSSTBase&);
 
 
 protected:
@@ -164,10 +161,10 @@ protected:
 
     // Protected Member Functions
 
-        tmp<volScalarField> F1(const volScalarField& CDkOmega) const;
-        tmp<volScalarField> F2() const;
-        tmp<volScalarField> F3() const;
-        tmp<volScalarField> F23() const;
+        virtual tmp<volScalarField> F1(const volScalarField& CDkOmega) const;
+        virtual tmp<volScalarField> F2() const;
+        virtual tmp<volScalarField> F3() const;
+        virtual tmp<volScalarField> F23() const;
 
         tmp<volScalarField> blend
         (
@@ -179,6 +176,16 @@ protected:
             return F1*(psi1 - psi2) + psi2;
         }
 
+        tmp<volScalarField::Internal> blend
+        (
+            const volScalarField::Internal& F1,
+            const dimensionedScalar& psi1,
+            const dimensionedScalar& psi2
+        ) const
+        {
+            return F1*(psi1 - psi2) + psi2;
+        }
+
         tmp<volScalarField> alphaK(const volScalarField& F1) const
         {
             return blend(F1, alphaK1_, alphaK2_);
@@ -189,12 +196,18 @@ protected:
             return blend(F1, alphaOmega1_, alphaOmega2_);
         }
 
-        tmp<volScalarField> beta(const volScalarField& F1) const
+        tmp<volScalarField::Internal> beta
+        (
+            const volScalarField::Internal& F1
+        ) const
         {
             return blend(F1, beta1_, beta2_);
         }
 
-        tmp<volScalarField> gamma(const volScalarField& F1) const
+        tmp<volScalarField::Internal> gamma
+        (
+            const volScalarField::Internal& F1
+        ) const
         {
             return blend(F1, gamma1_, gamma2_);
         }
@@ -212,8 +225,16 @@ protected:
         //- Return epsilon/k which for standard RAS is betaStar*omega
         virtual tmp<volScalarField::Internal> epsilonByk
         (
-            const volScalarField::Internal& F1,
-            const volScalarField::Internal& F2
+            const volScalarField& F1,
+            const volTensorField& gradU
+        ) const;
+
+        //- Return G/nu
+        virtual tmp<volScalarField::Internal> GbyNu
+        (
+            const volScalarField::Internal& GbyNu0,
+            const volScalarField::Internal& F2,
+            const volScalarField::Internal& S2
         ) const;
 
         virtual tmp<fvScalarMatrix> kSource() const;
@@ -222,9 +243,9 @@ protected:
 
         virtual tmp<fvScalarMatrix> Qsas
         (
-            const volScalarField& S2,
-            const volScalarField& gamma,
-            const volScalarField& beta
+            const volScalarField::Internal& S2,
+            const volScalarField::Internal& gamma,
+            const volScalarField::Internal& beta
         ) const;
 
 
@@ -326,7 +347,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
-#   include "kOmegaSSTBase.C"
+    #include "kOmegaSSTBase.C"
 #endif
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.H b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.H
index cae207217addcc10debe581103f860efe0635e72..80ee1b93111d5d851fcd014708cfc102a1ccd9b7 100644
--- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.H
+++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.H
@@ -72,7 +72,7 @@ class kOmegaSSTDDES
 
         // Disallow default bitwise copy construct and assignment
         kOmegaSSTDDES(const kOmegaSSTDDES&);
-        kOmegaSSTDDES& operator=(const kOmegaSSTDDES&);
+        void operator=(const kOmegaSSTDDES&);
 
 
 protected:
diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.C b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.C
index a6e1b26b4910e11c11afa16cd017c7a37cedba1c..f0b35c3f0cabe4fd5307d27d285ee1bec9a22ce3 100644
--- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.C
+++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.C
@@ -66,6 +66,30 @@ tmp<volScalarField> kOmegaSSTDES<BasicTurbulenceModel>::dTilda
 }
 
 
+template<class BasicTurbulenceModel>
+tmp<volScalarField::Internal> kOmegaSSTDES<BasicTurbulenceModel>::epsilonByk
+(
+    const volScalarField& F1,
+    const volTensorField& gradU
+) const
+{
+    volScalarField CDES(this->CDES(F1));
+    return sqrt(this->k_())/dTilda(mag(gradU), CDES)()();
+}
+
+
+template<class BasicTurbulenceModel>
+tmp<volScalarField::Internal> kOmegaSSTDES<BasicTurbulenceModel>::GbyNu
+(
+    const volScalarField::Internal& GbyNu0,
+    const volScalarField::Internal& F2,
+    const volScalarField::Internal& S2
+) const
+{
+    return GbyNu0; // Unlimited
+}
+
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 template<class BasicTurbulenceModel>
@@ -150,96 +174,6 @@ bool kOmegaSSTDES<BasicTurbulenceModel>::read()
 }
 
 
-template<class BasicTurbulenceModel>
-void kOmegaSSTDES<BasicTurbulenceModel>::correct()
-{
-    if (!this->turbulence_)
-    {
-        return;
-    }
-
-    // Local references
-    const alphaField& alpha = this->alpha_;
-    const rhoField& rho = this->rho_;
-    const surfaceScalarField& alphaRhoPhi = this->alphaRhoPhi_;
-    const volVectorField& U = this->U_;
-    volScalarField& k = this->k_;
-    volScalarField& omega = this->omega_;
-    volScalarField& nut = this->nut_;
-
-    DESModel<BasicTurbulenceModel>::correct();
-
-    volScalarField divU(fvc::div(fvc::absolute(this->phi(), U)));
-
-    tmp<volTensorField> tgradU = fvc::grad(U);
-    volScalarField magGradU(mag(tgradU()));
-    volScalarField S2(2*magSqr(symm(tgradU())));
-    volScalarField GbyNu((tgradU() && dev(twoSymm(tgradU()))));
-    volScalarField G(this->GName(), nut*GbyNu);
-    tgradU.clear();
-
-    // Update omega and G at the wall
-    omega.boundaryFieldRef().updateCoeffs();
-
-    volScalarField CDkOmega
-    (
-        (2*this->alphaOmega2_)*(fvc::grad(k) & fvc::grad(omega))/omega
-    );
-
-    volScalarField F1(this->F1(CDkOmega));
-
-    {
-        volScalarField gamma(this->gamma(F1));
-        volScalarField beta(this->beta(F1));
-
-        // Turbulent frequency equation
-        tmp<fvScalarMatrix> omegaEqn
-        (
-            fvm::ddt(alpha, rho, omega)
-          + fvm::div(alphaRhoPhi, omega)
-          - fvm::laplacian(alpha*rho*this->DomegaEff(F1), omega)
-         ==
-            alpha*rho*gamma*GbyNu // Using unlimited GybNu
-          - fvm::SuSp((2.0/3.0)*alpha*rho*gamma*divU, omega)
-          - fvm::Sp(alpha*rho*beta*omega, omega)
-          - fvm::SuSp(alpha*rho*(F1 - scalar(1))*CDkOmega/omega, omega)
-          + this->omegaSource()
-        );
-
-        omegaEqn.ref().relax();
-
-        omegaEqn.ref().boundaryManipulate(omega.boundaryFieldRef());
-
-        solve(omegaEqn);
-        bound(omega, this->omegaMin_);
-    }
-
-    {
-        volScalarField CDES(this->CDES(F1));
-        volScalarField dTilda(this->dTilda(magGradU, CDES));
-
-        // Turbulent kinetic energy equation
-        tmp<fvScalarMatrix> kEqn
-        (
-            fvm::ddt(alpha, rho, k)
-          + fvm::div(alphaRhoPhi, k)
-          - fvm::laplacian(alpha*rho*this->DkEff(F1), k)
-         ==
-            min(alpha*rho*G, (this->c1_*this->betaStar_)*alpha*rho*k*omega)
-          - fvm::SuSp((2.0/3.0)*alpha*rho*divU, k)
-          - fvm::Sp(alpha*rho*sqrt(k)/dTilda, k)  // modified for DES
-          + this->kSource()
-        );
-
-        kEqn.ref().relax();
-        solve(kEqn);
-        bound(k, this->kMin_);
-    }
-
-    this->correctNut(S2);
-}
-
-
 template<class BasicTurbulenceModel>
 tmp<volScalarField> kOmegaSSTDES<BasicTurbulenceModel>::LESRegion() const
 {
diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.H b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.H
index f9f95a11df6ae8c40532a4cf5afdeac4abb5003d..0f3cda9a9f071f66e93fddbf17982bfea9ba6421 100644
--- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.H
+++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.H
@@ -74,7 +74,7 @@ class kOmegaSSTDES
 
         // Disallow default bitwise copy construct and assignment
         kOmegaSSTDES(const kOmegaSSTDES&);
-        kOmegaSSTDES& operator=(const kOmegaSSTDES&);
+        void operator=(const kOmegaSSTDES&);
 
 
 protected:
@@ -106,6 +106,21 @@ protected:
             const volScalarField& CDES
         ) const;
 
+        //- Return epsilon/k
+        virtual tmp<volScalarField::Internal> epsilonByk
+        (
+            const volScalarField& F1,
+            const volTensorField& gradU
+        ) const;
+
+        //- Return G/nu
+        virtual tmp<volScalarField::Internal> GbyNu
+        (
+            const volScalarField::Internal& GbyNu0,
+            const volScalarField::Internal& F2,
+            const volScalarField::Internal& S2
+        ) const;
+
 
 public:
 
@@ -144,9 +159,6 @@ public:
         //- Re-read model coefficients if they have changed
         virtual bool read();
 
-        //- Solve the turbulence equations and correct the turbulence viscosity
-        virtual void correct();
-
         //- Return the LES field indicator
         virtual tmp<volScalarField> LESRegion() const;
 };
@@ -159,7 +171,7 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 #ifdef NoRepository
-#   include "kOmegaSSTDES.C"
+    #include "kOmegaSSTDES.C"
 #endif
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTIDDES/kOmegaSSTIDDES.H b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTIDDES/kOmegaSSTIDDES.H
index 898776c835a73e4fbcafbc567a1f430d7635fc9c..e3ae10a2a3ac3b6024c55dc33baa0ec5e423cc59 100644
--- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTIDDES/kOmegaSSTIDDES.H
+++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTIDDES/kOmegaSSTIDDES.H
@@ -85,7 +85,7 @@ class kOmegaSSTIDDES
 
         // Disallow default bitwise copy construct and assignment
         kOmegaSSTIDDES(const kOmegaSSTIDDES&);
-        kOmegaSSTIDDES& operator=(const kOmegaSSTIDDES&);
+        void operator=(const kOmegaSSTIDDES&);
 
 
 protected:
@@ -160,7 +160,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
-#   include "kOmegaSSTIDDES.C"
+    #include "kOmegaSSTIDDES.C"
 #endif
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/derivedFvPatchFields/atmBoundaryLayerInletEpsilon/atmBoundaryLayerInletEpsilonFvPatchScalarField.C b/src/TurbulenceModels/turbulenceModels/RAS/derivedFvPatchFields/atmBoundaryLayerInletEpsilon/atmBoundaryLayerInletEpsilonFvPatchScalarField.C
index 9b04284c0e6137e4e2551d59f711d6535c4c8ce8..20a917ec33406e9b3efd70d7efdaf85b993af277 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/derivedFvPatchFields/atmBoundaryLayerInletEpsilon/atmBoundaryLayerInletEpsilonFvPatchScalarField.C
+++ b/src/TurbulenceModels/turbulenceModels/RAS/derivedFvPatchFields/atmBoundaryLayerInletEpsilon/atmBoundaryLayerInletEpsilonFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ atmBoundaryLayerInletEpsilonFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict, false),
     atmBoundaryLayer(patch().Cf(), dict)
 {
     scalarField::operator=(epsilon(patch().Cf()));
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/derivedFvPatchFields/atmBoundaryLayerInletK/atmBoundaryLayerInletKFvPatchScalarField.C b/src/TurbulenceModels/turbulenceModels/RAS/derivedFvPatchFields/atmBoundaryLayerInletK/atmBoundaryLayerInletKFvPatchScalarField.C
index de2404ab13af927805351a14d40300deb6c22a44..65017e2520a87a7d3517bd7718304921031e8040 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/derivedFvPatchFields/atmBoundaryLayerInletK/atmBoundaryLayerInletKFvPatchScalarField.C
+++ b/src/TurbulenceModels/turbulenceModels/RAS/derivedFvPatchFields/atmBoundaryLayerInletK/atmBoundaryLayerInletKFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ atmBoundaryLayerInletKFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict, false),
     atmBoundaryLayer(patch().Cf(), dict)
 {
     scalarField::operator=(k(patch().Cf()));
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/derivedFvPatchFields/atmBoundaryLayerInletVelocity/atmBoundaryLayerInletVelocityFvPatchVectorField.C b/src/TurbulenceModels/turbulenceModels/RAS/derivedFvPatchFields/atmBoundaryLayerInletVelocity/atmBoundaryLayerInletVelocityFvPatchVectorField.C
index 652b6e07bce55ebacc81ab4624de2f66d2afd173..348d041cb0faa7f1d5cff6d3561467a271f68a94 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/derivedFvPatchFields/atmBoundaryLayerInletVelocity/atmBoundaryLayerInletVelocityFvPatchVectorField.C
+++ b/src/TurbulenceModels/turbulenceModels/RAS/derivedFvPatchFields/atmBoundaryLayerInletVelocity/atmBoundaryLayerInletVelocityFvPatchVectorField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,7 @@ atmBoundaryLayerInletVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF),
+    fixedValueFvPatchVectorField(p, iF, dict, false),
     atmBoundaryLayer(patch().Cf(), dict)
 {
     vectorField::operator=(U(patch().Cf()));
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTLM/kOmegaSSTLM.C b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTLM/kOmegaSSTLM.C
index 3bcdf7f64851927df6feb6d83faf77fbf5fb7f98..5d14d97bf9c1de7b89b7315a7242859107c22c0d 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTLM/kOmegaSSTLM.C
+++ b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTLM/kOmegaSSTLM.C
@@ -60,13 +60,13 @@ tmp<volScalarField::Internal> kOmegaSSTLM<BasicTurbulenceModel>::Pk
 template<class BasicTurbulenceModel>
 tmp<volScalarField::Internal> kOmegaSSTLM<BasicTurbulenceModel>::epsilonByk
 (
-    const volScalarField::Internal& F1,
-    const volScalarField::Internal& F2
+    const volScalarField& F1,
+    const volTensorField& gradU
 ) const
 {
     return
         min(max(gammaIntEff_, scalar(0.1)), scalar(1))
-       *kOmegaSST<BasicTurbulenceModel>::epsilonByk(F1, F2);
+       *kOmegaSST<BasicTurbulenceModel>::epsilonByk(F1, gradU);
 }
 
 
diff --git a/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTLM/kOmegaSSTLM.H b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTLM/kOmegaSSTLM.H
index 3d5acaef06541ff13e81cc61f0877a6d111271e0..88626ff1ed9c5d2e05e9fbc2da6b8f34b093af0c 100644
--- a/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTLM/kOmegaSSTLM.H
+++ b/src/TurbulenceModels/turbulenceModels/RAS/kOmegaSSTLM/kOmegaSSTLM.H
@@ -164,8 +164,8 @@ protected:
         //- Modified form of the k-omega SST epsilon/k
         virtual tmp<volScalarField::Internal> epsilonByk
         (
-            const volScalarField::Internal& F1,
-            const volScalarField::Internal& F2
+            const volScalarField& F1,
+            const volTensorField& gradU
         ) const;
 
         //- Freestream blending-function
diff --git a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C
index c02e84b69c9180ea1f5e056f3fa804c5524729e8..e64971e0c86f352e2a9413a290fe7f265ba02fe9 100644
--- a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C
+++ b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C
@@ -50,7 +50,7 @@ Foam::fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF),
+    fixedValueFvPatchVectorField(p, iF, dict, false),
     tau0_(dict.lookupOrDefault<vector>("tau", Zero))
 {
     fvPatchField<vector>::operator=(patchInternalField());
diff --git a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
index 7b303e728f8b718f5b007ec57717d6ee451712a5..d249c7e3d35b4415fda31733edc8a7111fcb3baf 100644
--- a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
+++ b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
@@ -28,7 +28,7 @@ Group
     grpWallFunctions
 
 Description
-    This boundary condition provides a wall constraint on turbulnce specific
+    This boundary condition provides a wall constraint on turbulence specific
     dissipation, omega for both low and high Reynolds number turbulence models.
 
     The near-wall omega may be either blended between the viscous region and
diff --git a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C
new file mode 100644
index 0000000000000000000000000000000000000000..1a7f409cd1971466848db0abb5de639a575b688b
--- /dev/null
+++ b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C
@@ -0,0 +1,240 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "Maxwell.H"
+#include "fvOptions.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace laminarModels
+{
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class BasicTurbulenceModel>
+Maxwell<BasicTurbulenceModel>::Maxwell
+(
+    const alphaField& alpha,
+    const rhoField& rho,
+    const volVectorField& U,
+    const surfaceScalarField& alphaRhoPhi,
+    const surfaceScalarField& phi,
+    const transportModel& transport,
+    const word& propertiesName,
+    const word& type
+)
+:
+    laminarModel<BasicTurbulenceModel>
+    (
+        type,
+        alpha,
+        rho,
+        U,
+        alphaRhoPhi,
+        phi,
+        transport,
+        propertiesName
+    ),
+
+    nuM_
+    (
+        dimensioned<scalar>
+        (
+            "nuM",
+            dimViscosity,
+            this->coeffDict_.lookup("nuM")
+        )
+    ),
+
+    lambda_
+    (
+        dimensioned<scalar>
+        (
+            "lambda",
+            dimTime,
+            this->coeffDict_.lookup("lambda")
+        )
+    ),
+
+    sigma_
+    (
+        IOobject
+        (
+            IOobject::groupName("sigma", U.group()),
+            this->runTime_.timeName(),
+            this->mesh_,
+            IOobject::MUST_READ,
+            IOobject::AUTO_WRITE
+        ),
+        this->mesh_
+    )
+{
+    if (type == typeName)
+    {
+        this->printCoeffs(type);
+    }
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class BasicTurbulenceModel>
+bool Maxwell<BasicTurbulenceModel>::read()
+{
+    if (laminarModel<BasicTurbulenceModel>::read())
+    {
+        nuM_.readIfPresent(this->coeffDict());
+        lambda_.readIfPresent(this->coeffDict());
+
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+template<class BasicTurbulenceModel>
+tmp<Foam::volSymmTensorField>
+Maxwell<BasicTurbulenceModel>::R() const
+{
+    return sigma_;
+}
+
+template<class BasicTurbulenceModel>
+tmp<Foam::volSymmTensorField>
+Maxwell<BasicTurbulenceModel>::devRhoReff() const
+{
+    return tmp<volSymmTensorField>
+    (
+        new volSymmTensorField
+        (
+            IOobject
+            (
+                IOobject::groupName("devRhoReff", this->U_.group()),
+                this->runTime_.timeName(),
+                this->mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            this->alpha_*this->rho_*sigma_
+          - (this->alpha_*this->rho_*this->nu())
+           *dev(twoSymm(fvc::grad(this->U_)))
+        )
+    );
+}
+
+
+template<class BasicTurbulenceModel>
+tmp<Foam::fvVectorMatrix>
+Maxwell<BasicTurbulenceModel>::divDevRhoReff
+(
+    volVectorField& U
+) const
+{
+    return
+    (
+        fvc::div
+        (
+            this->alpha_*this->rho_*this->nuM_*fvc::grad(U)
+        )
+      + fvc::div(this->alpha_*this->rho_*sigma_)
+      - fvc::div(this->alpha_*this->rho_*this->nu()*dev2(T(fvc::grad(U))))
+      - fvm::laplacian(this->alpha_*this->rho_*nu0(), U)
+    );
+}
+
+
+template<class BasicTurbulenceModel>
+tmp<Foam::fvVectorMatrix>
+Maxwell<BasicTurbulenceModel>::divDevRhoReff
+(
+    const volScalarField& rho,
+    volVectorField& U
+) const
+{
+    return
+    (
+        fvc::div
+        (
+            this->alpha_*rho*this->nuM_*fvc::grad(U)
+        )
+      + fvc::div(this->alpha_*rho*sigma_)
+      - fvc::div(this->alpha_*rho*this->nu()*dev2(T(fvc::grad(U))))
+      - fvm::laplacian(this->alpha_*rho*nu0(), U)
+    );
+}
+
+
+template<class BasicTurbulenceModel>
+void Maxwell<BasicTurbulenceModel>::correct()
+{
+    // Local references
+    const alphaField& alpha = this->alpha_;
+    const rhoField& rho = this->rho_;
+    const surfaceScalarField& alphaRhoPhi = this->alphaRhoPhi_;
+    const volVectorField& U = this->U_;
+    volSymmTensorField& sigma = this->sigma_;
+    fv::options& fvOptions(fv::options::New(this->mesh_));
+
+    laminarModel<BasicTurbulenceModel>::correct();
+
+    tmp<volTensorField> tgradU(fvc::grad(U));
+    const volTensorField& gradU = tgradU();
+    dimensionedScalar rLambda = 1.0/(lambda_);
+
+    // Note sigma is positive on lhs of momentum eqn
+    volSymmTensorField P
+    (
+        twoSymm(sigma & gradU)
+      - nuM_*rLambda*twoSymm(gradU)
+    );
+
+    // Viscoelastic stress equation
+    tmp<fvSymmTensorMatrix> sigmaEqn
+    (
+        fvm::ddt(alpha, rho, sigma)
+      + fvm::div(alphaRhoPhi, sigma)
+      + fvm::Sp(alpha*rho*rLambda, sigma)
+      ==
+        alpha*rho*P
+      + fvOptions(alpha, rho, sigma)
+    );
+
+    sigmaEqn.ref().relax();
+    fvOptions.constrain(sigmaEqn.ref());
+    solve(sigmaEqn);
+    fvOptions.correct(sigma_);
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace laminarModels
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.H b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.H
new file mode 100644
index 0000000000000000000000000000000000000000..85c4d38d510a214c10091759af1daa106430db43
--- /dev/null
+++ b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.H
@@ -0,0 +1,174 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::laminarModels::Maxwell
+
+Group
+    grpLaminar
+
+Description
+    Maxwell model for viscoelasticity using the upper-convected time
+    derivative of the stress tensor.
+    See http://en.wikipedia.org/wiki/Upper-convected_Maxwell_model
+
+    The model includes an additional viscosity (nu) from the transport
+    model from which it is instantiated, which makes it equivalent to
+    the Oldroyd-B model for the case of an incompressible transport
+    model (where nu is non-zero).
+    See https://en.wikipedia.org/wiki/Oldroyd-B_model
+
+    Reference:
+    \verbatim
+        Amoreira, L. J., & Oliveira, P. J. (2010).
+        Comparison of different formulations for the numerical calculation
+        of unsteady incompressible viscoelastic fluid flow.
+        Adv. Appl. Math. Mech, 4, 483-502.
+    \endverbatim
+
+SourceFiles
+    Maxwell.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef Maxwell_H
+#define Maxwell_H
+
+#include "laminarModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace laminarModels
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class Maxwell Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class BasicTurbulenceModel>
+class Maxwell
+:
+    public laminarModel<BasicTurbulenceModel>
+{
+
+protected:
+
+    // Protected data
+
+        // Model coefficients
+
+            dimensionedScalar nuM_;
+            dimensionedScalar lambda_;
+
+
+        // Fields
+
+            volSymmTensorField sigma_;
+
+
+    // Protected Member Functions
+
+        //- Return the turbulence viscosity
+        tmp<volScalarField> nu0() const
+        {
+            return this->nu() + nuM_;
+        }
+
+
+public:
+
+    typedef typename BasicTurbulenceModel::alphaField alphaField;
+    typedef typename BasicTurbulenceModel::rhoField rhoField;
+    typedef typename BasicTurbulenceModel::transportModel transportModel;
+
+
+    //- Runtime type information
+    TypeName("Maxwell");
+
+
+    // Constructors
+
+        //- Construct from components
+        Maxwell
+        (
+            const alphaField& alpha,
+            const rhoField& rho,
+            const volVectorField& U,
+            const surfaceScalarField& alphaRhoPhi,
+            const surfaceScalarField& phi,
+            const transportModel& transport,
+            const word& propertiesName = turbulenceModel::propertiesName,
+            const word& type = typeName
+        );
+
+
+    //- Destructor
+    virtual ~Maxwell()
+    {}
+
+
+    // Member Functions
+
+        //- Read model coefficients if they have changed
+        virtual bool read();
+
+        //- Return the Reynolds stress tensor
+        virtual tmp<volSymmTensorField> R() const;
+
+        //- Return the effective stress tensor
+        virtual tmp<volSymmTensorField> devRhoReff() const;
+
+        //- Return the source term for the momentum equation
+        virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const;
+
+        //- Return the source term for the momentum equation
+        virtual tmp<fvVectorMatrix> divDevRhoReff
+        (
+            const volScalarField& rho,
+            volVectorField& U
+        ) const;
+
+        //- Solve the turbulence equations and correct eddy-Viscosity and
+        //  related properties
+        virtual void correct();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace laminarModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "Maxwell.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/TurbulenceModels/turbulenceModels/laminar/laminar.C b/src/TurbulenceModels/turbulenceModels/laminar/Stokes/Stokes.C
similarity index 75%
rename from src/TurbulenceModels/turbulenceModels/laminar/laminar.C
rename to src/TurbulenceModels/turbulenceModels/laminar/Stokes/Stokes.C
index 2e60815a4158d2dee55ee4e65340a155a65e6dca..792e4c82a88a21be3978bc057ae8b471478ada9f 100644
--- a/src/TurbulenceModels/turbulenceModels/laminar/laminar.C
+++ b/src/TurbulenceModels/turbulenceModels/laminar/Stokes/Stokes.C
@@ -23,17 +23,24 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "laminar.H"
+#include "Stokes.H"
 #include "volFields.H"
 #include "surfaceFields.H"
 #include "fvcGrad.H"
 #include "fvcDiv.H"
 #include "fvmLaplacian.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace laminarModels
+{
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 template<class BasicTurbulenceModel>
-Foam::laminar<BasicTurbulenceModel>::laminar
+Stokes<BasicTurbulenceModel>::Stokes
 (
     const alphaField& alpha,
     const rhoField& rho,
@@ -44,7 +51,7 @@ Foam::laminar<BasicTurbulenceModel>::laminar
     const word& propertiesName
 )
 :
-    linearViscousStress<BasicTurbulenceModel>
+    linearViscousStress<laminarModel<BasicTurbulenceModel>>
     (
         typeName,
         alpha,
@@ -58,57 +65,26 @@ Foam::laminar<BasicTurbulenceModel>::laminar
 {}
 
 
-// * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * //
-
-template<class BasicTurbulenceModel>
-Foam::autoPtr<Foam::laminar<BasicTurbulenceModel>>
-Foam::laminar<BasicTurbulenceModel>::New
-(
-    const alphaField& alpha,
-    const rhoField& rho,
-    const volVectorField& U,
-    const surfaceScalarField& alphaRhoPhi,
-    const surfaceScalarField& phi,
-    const transportModel& transport,
-    const word& propertiesName
-)
-{
-    return autoPtr<laminar>
-    (
-        new laminar
-        (
-            alpha,
-            rho,
-            U,
-            alphaRhoPhi,
-            phi,
-            transport,
-            propertiesName
-        )
-    );
-}
-
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template<class BasicTurbulenceModel>
-const Foam::dictionary&
-Foam::laminar<BasicTurbulenceModel>::coeffDict() const
+const dictionary&
+Stokes<BasicTurbulenceModel>::coeffDict() const
 {
     return dictionary::null;
 }
 
 
 template<class BasicTurbulenceModel>
-bool Foam::laminar<BasicTurbulenceModel>::read()
+bool Stokes<BasicTurbulenceModel>::read()
 {
     return true;
 }
 
 
 template<class BasicTurbulenceModel>
-Foam::tmp<Foam::volScalarField>
-Foam::laminar<BasicTurbulenceModel>::nut() const
+tmp<volScalarField>
+Stokes<BasicTurbulenceModel>::nut() const
 {
     return tmp<volScalarField>
     (
@@ -131,8 +107,8 @@ Foam::laminar<BasicTurbulenceModel>::nut() const
 
 
 template<class BasicTurbulenceModel>
-Foam::tmp<Foam::scalarField>
-Foam::laminar<BasicTurbulenceModel>::nut
+tmp<scalarField>
+Stokes<BasicTurbulenceModel>::nut
 (
     const label patchi
 ) const
@@ -145,8 +121,8 @@ Foam::laminar<BasicTurbulenceModel>::nut
 
 
 template<class BasicTurbulenceModel>
-Foam::tmp<Foam::volScalarField>
-Foam::laminar<BasicTurbulenceModel>::nuEff() const
+tmp<volScalarField>
+Stokes<BasicTurbulenceModel>::nuEff() const
 {
     return tmp<volScalarField>
     (
@@ -159,8 +135,8 @@ Foam::laminar<BasicTurbulenceModel>::nuEff() const
 
 
 template<class BasicTurbulenceModel>
-Foam::tmp<Foam::scalarField>
-Foam::laminar<BasicTurbulenceModel>::nuEff
+tmp<scalarField>
+Stokes<BasicTurbulenceModel>::nuEff
 (
     const label patchi
 ) const
@@ -170,8 +146,8 @@ Foam::laminar<BasicTurbulenceModel>::nuEff
 
 
 template<class BasicTurbulenceModel>
-Foam::tmp<Foam::volScalarField>
-Foam::laminar<BasicTurbulenceModel>::k() const
+tmp<volScalarField>
+Stokes<BasicTurbulenceModel>::k() const
 {
     return tmp<volScalarField>
     (
@@ -194,8 +170,8 @@ Foam::laminar<BasicTurbulenceModel>::k() const
 
 
 template<class BasicTurbulenceModel>
-Foam::tmp<Foam::volScalarField>
-Foam::laminar<BasicTurbulenceModel>::epsilon() const
+tmp<volScalarField>
+Stokes<BasicTurbulenceModel>::epsilon() const
 {
     return tmp<volScalarField>
     (
@@ -221,8 +197,8 @@ Foam::laminar<BasicTurbulenceModel>::epsilon() const
 
 
 template<class BasicTurbulenceModel>
-Foam::tmp<Foam::volSymmTensorField>
-Foam::laminar<BasicTurbulenceModel>::R() const
+tmp<volSymmTensorField>
+Stokes<BasicTurbulenceModel>::R() const
 {
     return tmp<volSymmTensorField>
     (
@@ -248,10 +224,15 @@ Foam::laminar<BasicTurbulenceModel>::R() const
 
 
 template<class BasicTurbulenceModel>
-void Foam::laminar<BasicTurbulenceModel>::correct()
+void Stokes<BasicTurbulenceModel>::correct()
 {
-    BasicTurbulenceModel::correct();
+    laminarModel<BasicTurbulenceModel>::correct();
 }
 
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace laminarModels
+} // End namespace Foam
+
 // ************************************************************************* //
diff --git a/src/TurbulenceModels/turbulenceModels/laminar/laminar.H b/src/TurbulenceModels/turbulenceModels/laminar/Stokes/Stokes.H
similarity index 82%
rename from src/TurbulenceModels/turbulenceModels/laminar/laminar.H
rename to src/TurbulenceModels/turbulenceModels/laminar/Stokes/Stokes.H
index 114287c0b65a78414d916665cee39c2bc93e6653..a714cbf294adf1ec1144fac13566dc7d9828ac73 100644
--- a/src/TurbulenceModels/turbulenceModels/laminar/laminar.H
+++ b/src/TurbulenceModels/turbulenceModels/laminar/Stokes/Stokes.H
@@ -22,34 +22,37 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::laminar
+    Foam::Stokes
 
 Description
-    Turbulence model for laminar flow.
+    Turbulence model for Stokes flow.
 
 SourceFiles
-    laminar.C
+    Stokes.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef laminar_H
-#define laminar_H
+#ifndef Stokes_H
+#define Stokes_H
 
+#include "laminarModel.H"
 #include "linearViscousStress.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
 {
+namespace laminarModels
+{
 
 /*---------------------------------------------------------------------------* \
-                           Class laminar Declaration
+                           Class Stokes Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class BasicTurbulenceModel>
-class laminar
+class Stokes
 :
-    public linearViscousStress<BasicTurbulenceModel>
+    public linearViscousStress<laminarModel<BasicTurbulenceModel>>
 {
 
 public:
@@ -60,13 +63,13 @@ public:
 
 
     //- Runtime type information
-    TypeName("laminar");
+    TypeName("Stokes");
 
 
     // Constructors
 
         //- Construct from components
-        laminar
+        Stokes
         (
             const alphaField& alpha,
             const rhoField& rho,
@@ -81,7 +84,7 @@ public:
     // Selectors
 
         //- Return a reference to the selected turbulence model
-        static autoPtr<laminar> New
+        static autoPtr<Stokes> New
         (
             const alphaField& alpha,
             const rhoField& rho,
@@ -94,7 +97,7 @@ public:
 
 
     //- Destructor
-    virtual ~laminar()
+    virtual ~Stokes()
     {}
 
 
@@ -106,41 +109,42 @@ public:
         //- Read turbulenceProperties dictionary
         virtual bool read();
 
-        //- Return the turbulence viscosity, i.e. 0 for laminar flow
+        //- Return the turbulence viscosity, i.e. 0 for Stokes flow
         virtual tmp<volScalarField> nut() const;
 
         //- Return the turbulence viscosity on patch
         virtual tmp<scalarField> nut(const label patchi) const;
 
-        //- Return the effective viscosity, i.e. the laminar viscosity
+        //- Return the effective viscosity, i.e. the Stokes viscosity
         virtual tmp<volScalarField> nuEff() const;
 
         //- Return the effective viscosity on patch
         virtual tmp<scalarField> nuEff(const label patchi) const;
 
-        //- Return the turbulence kinetic energy, i.e. 0 for laminar flow
+        //- Return the turbulence kinetic energy, i.e. 0 for Stokes flow
         virtual tmp<volScalarField> k() const;
 
         //- Return the turbulence kinetic energy dissipation rate,
-        //  i.e. 0 for laminar flow
+        //  i.e. 0 for Stokes flow
         virtual tmp<volScalarField> epsilon() const;
 
-        //- Return the Reynolds stress tensor, i.e. 0 for laminar flow
+        //- Return the Reynolds stress tensor, i.e. 0 for Stokes flow
         virtual tmp<volSymmTensorField> R() const;
 
-        //- Correct the laminar viscosity
+        //- Correct the Stokes viscosity
         virtual void correct();
 };
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+} // End namespace laminarModels
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
-    #include "laminar.C"
+    #include "Stokes.C"
 #endif
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.C b/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.C
new file mode 100644
index 0000000000000000000000000000000000000000..0bd0bb49e3a536ff441a93aed0b00b59b153d384
--- /dev/null
+++ b/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.C
@@ -0,0 +1,339 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "laminarModel.H"
+#include "Stokes.H"
+
+// * * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * //
+
+template<class BasicTurbulenceModel>
+void Foam::laminarModel<BasicTurbulenceModel>::printCoeffs(const word& type)
+{
+    if (printCoeffs_)
+    {
+        Info<< type << "Coeffs" << coeffDict_ << endl;
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class BasicTurbulenceModel>
+Foam::laminarModel<BasicTurbulenceModel>::laminarModel
+(
+    const word& type,
+    const alphaField& alpha,
+    const rhoField& rho,
+    const volVectorField& U,
+    const surfaceScalarField& alphaRhoPhi,
+    const surfaceScalarField& phi,
+    const transportModel& transport,
+    const word& propertiesName
+)
+:
+    BasicTurbulenceModel
+    (
+        type,
+        alpha,
+        rho,
+        U,
+        alphaRhoPhi,
+        phi,
+        transport,
+        propertiesName
+    ),
+
+    laminarDict_(this->subOrEmptyDict("laminar")),
+    printCoeffs_(laminarDict_.lookupOrDefault<Switch>("printCoeffs", false)),
+    coeffDict_(laminarDict_.subOrEmptyDict(type + "Coeffs"))
+{
+    // Force the construction of the mesh deltaCoeffs which may be needed
+    // for the construction of the derived models and BCs
+    this->mesh_.deltaCoeffs();
+}
+
+
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
+template<class BasicTurbulenceModel>
+Foam::autoPtr<Foam::laminarModel<BasicTurbulenceModel>>
+Foam::laminarModel<BasicTurbulenceModel>::New
+(
+    const alphaField& alpha,
+    const rhoField& rho,
+    const volVectorField& U,
+    const surfaceScalarField& alphaRhoPhi,
+    const surfaceScalarField& phi,
+    const transportModel& transport,
+    const word& propertiesName
+)
+{
+    IOdictionary modelDict
+    (
+        IOobject
+        (
+            IOobject::groupName(propertiesName, U.group()),
+            U.time().constant(),
+            U.db(),
+            IOobject::MUST_READ_IF_MODIFIED,
+            IOobject::NO_WRITE,
+            false
+        )
+    );
+
+    if (modelDict.found("laminar"))
+    {
+        // get model name, but do not register the dictionary
+        // otherwise it is registered in the database twice
+        const word modelType
+        (
+            modelDict.subDict("laminar").lookup("laminarModel")
+        );
+
+        Info<< "Selecting laminar stress model " << modelType << endl;
+
+        typename dictionaryConstructorTable::iterator cstrIter =
+            dictionaryConstructorTablePtr_->find(modelType);
+
+        if (cstrIter == dictionaryConstructorTablePtr_->end())
+        {
+            FatalErrorInFunction
+                << "Unknown laminarModel type "
+                << modelType << nl << nl
+                << "Valid laminarModel types:" << endl
+                << dictionaryConstructorTablePtr_->sortedToc()
+                << exit(FatalError);
+        }
+
+        return autoPtr<laminarModel>
+        (
+            cstrIter()
+            (
+                alpha,
+                rho,
+                U,
+                alphaRhoPhi,
+                phi,
+                transport, propertiesName)
+        );
+    }
+    else
+    {
+        Info<< "Selecting laminar stress model "
+            << laminarModels::Stokes<BasicTurbulenceModel>::typeName << endl;
+
+        return autoPtr<laminarModel>
+        (
+            new laminarModels::Stokes<BasicTurbulenceModel>
+            (
+                alpha,
+                rho,
+                U,
+                alphaRhoPhi,
+                phi,
+                transport,
+                propertiesName
+            )
+        );
+    }
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class BasicTurbulenceModel>
+bool Foam::laminarModel<BasicTurbulenceModel>::read()
+{
+    if (BasicTurbulenceModel::read())
+    {
+        laminarDict_ <<= this->subDict("laminar");
+
+        if
+        (
+            const dictionary* dictPtr =
+                laminarDict_.subDictPtr(type() + "Coeffs")
+        )
+        {
+            coeffDict_ <<= *dictPtr;
+        }
+
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+template<class BasicTurbulenceModel>
+Foam::tmp<Foam::volScalarField>
+Foam::laminarModel<BasicTurbulenceModel>::nut() const
+{
+    return tmp<volScalarField>
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                IOobject::groupName("nut", this->U_.group()),
+                this->runTime_.timeName(),
+                this->mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            ),
+            this->mesh_,
+            dimensionedScalar("nut", dimViscosity, 0.0)
+        )
+    );
+}
+
+
+template<class BasicTurbulenceModel>
+Foam::tmp<Foam::scalarField>
+Foam::laminarModel<BasicTurbulenceModel>::nut
+(
+    const label patchi
+) const
+{
+    return tmp<scalarField>
+    (
+        new scalarField(this->mesh_.boundary()[patchi].size(), 0.0)
+    );
+}
+
+
+template<class BasicTurbulenceModel>
+Foam::tmp<Foam::volScalarField>
+Foam::laminarModel<BasicTurbulenceModel>::nuEff() const
+{
+    return tmp<volScalarField>
+    (
+        new volScalarField
+        (
+            IOobject::groupName("nuEff", this->U_.group()), this->nu()
+        )
+    );
+}
+
+
+template<class BasicTurbulenceModel>
+Foam::tmp<Foam::scalarField>
+Foam::laminarModel<BasicTurbulenceModel>::nuEff
+(
+    const label patchi
+) const
+{
+    return this->nu(patchi);
+}
+
+
+template<class BasicTurbulenceModel>
+Foam::tmp<Foam::volScalarField>
+Foam::laminarModel<BasicTurbulenceModel>::k() const
+{
+    return tmp<volScalarField>
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                IOobject::groupName("k", this->U_.group()),
+                this->runTime_.timeName(),
+                this->mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            ),
+            this->mesh_,
+            dimensionedScalar("k", sqr(this->U_.dimensions()), 0.0)
+        )
+    );
+}
+
+
+template<class BasicTurbulenceModel>
+Foam::tmp<Foam::volScalarField>
+Foam::laminarModel<BasicTurbulenceModel>::epsilon() const
+{
+    return tmp<volScalarField>
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                IOobject::groupName("epsilon", this->U_.group()),
+                this->runTime_.timeName(),
+                this->mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            ),
+            this->mesh_,
+            dimensionedScalar
+            (
+                "epsilon", sqr(this->U_.dimensions())/dimTime, 0.0
+            )
+        )
+    );
+}
+
+
+template<class BasicTurbulenceModel>
+Foam::tmp<Foam::volSymmTensorField>
+Foam::laminarModel<BasicTurbulenceModel>::R() const
+{
+    return tmp<volSymmTensorField>
+    (
+        new volSymmTensorField
+        (
+            IOobject
+            (
+                IOobject::groupName("R", this->U_.group()),
+                this->runTime_.timeName(),
+                this->mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            ),
+            this->mesh_,
+            dimensionedSymmTensor
+            (
+                "R", sqr(this->U_.dimensions()), Zero
+            )
+        )
+    );
+}
+
+
+template<class BasicTurbulenceModel>
+void Foam::laminarModel<BasicTurbulenceModel>::correct()
+{
+    BasicTurbulenceModel::correct();
+}
+
+
+// ************************************************************************* //
diff --git a/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.H b/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.H
new file mode 100644
index 0000000000000000000000000000000000000000..ad5466e0fff47ddb917e392b061b6354d15da501
--- /dev/null
+++ b/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModel.H
@@ -0,0 +1,208 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::laminarModel
+
+Description
+    Templated abstract base class for laminar transport models
+
+SourceFiles
+    laminarModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef laminarModel_H
+#define laminarModel_H
+
+#include "TurbulenceModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class laminarModel Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class BasicTurbulenceModel>
+class laminarModel
+:
+    public BasicTurbulenceModel
+{
+
+protected:
+
+    // Protected data
+
+        //- laminar coefficients dictionary
+        dictionary laminarDict_;
+
+        //- Flag to print the model coeffs at run-time
+        Switch printCoeffs_;
+
+        //- Model coefficients dictionary
+        dictionary coeffDict_;
+
+
+    // Protected Member Functions
+
+        //- Print model coefficients
+        virtual void printCoeffs(const word& type);
+
+
+private:
+
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        laminarModel(const laminarModel&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const laminarModel&);
+
+
+public:
+
+    typedef typename BasicTurbulenceModel::alphaField alphaField;
+    typedef typename BasicTurbulenceModel::rhoField rhoField;
+    typedef typename BasicTurbulenceModel::transportModel transportModel;
+
+
+    //- Runtime type information
+    TypeName("laminar");
+
+
+    // Declare run-time constructor selection table
+
+        declareRunTimeSelectionTable
+        (
+            autoPtr,
+            laminarModel,
+            dictionary,
+            (
+                const alphaField& alpha,
+                const rhoField& rho,
+                const volVectorField& U,
+                const surfaceScalarField& alphaRhoPhi,
+                const surfaceScalarField& phi,
+                const transportModel& transport,
+                const word& propertiesName
+            ),
+            (alpha, rho, U, alphaRhoPhi, phi, transport, propertiesName)
+        );
+
+
+    // Constructors
+
+        //- Construct from components
+        laminarModel
+        (
+            const word& type,
+            const alphaField& alpha,
+            const rhoField& rho,
+            const volVectorField& U,
+            const surfaceScalarField& alphaRhoPhi,
+            const surfaceScalarField& phi,
+            const transportModel& transport,
+            const word& propertiesName
+        );
+
+
+    // Selectors
+
+        //- Return a reference to the selected laminar model
+        static autoPtr<laminarModel> New
+        (
+            const alphaField& alpha,
+            const rhoField& rho,
+            const volVectorField& U,
+            const surfaceScalarField& alphaRhoPhi,
+            const surfaceScalarField& phi,
+            const transportModel& transport,
+            const word& propertiesName = turbulenceModel::propertiesName
+        );
+
+
+    //- Destructor
+    virtual ~laminarModel()
+    {}
+
+
+    // Member Functions
+
+        //- Read model coefficients if they have changed
+        virtual bool read();
+
+
+        // Access
+
+            //- Const access to the coefficients dictionary
+            virtual const dictionary& coeffDict() const
+            {
+                return coeffDict_;
+            }
+
+            //- Return the turbulence viscosity, i.e. 0 for laminar flow
+            virtual tmp<volScalarField> nut() const;
+
+            //- Return the turbulence viscosity on patch
+            virtual tmp<scalarField> nut(const label patchi) const;
+
+            //- Return the effective viscosity, i.e. the laminar viscosity
+            virtual tmp<volScalarField> nuEff() const;
+
+            //- Return the effective viscosity on patch
+            virtual tmp<scalarField> nuEff(const label patchi) const;
+
+            //- Return the turbulence kinetic energy, i.e. 0 for laminar flow
+            virtual tmp<volScalarField> k() const;
+
+            //- Return the turbulence kinetic energy dissipation rate,
+            //  i.e. 0 for laminar flow
+            virtual tmp<volScalarField> epsilon() const;
+
+            //- Return the Reynolds stress tensor, i.e. 0 for laminar flow
+            virtual tmp<volSymmTensorField> R() const;
+
+            //- Correct the laminar transport
+            virtual void correct();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "laminarModel.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightParticlePositions.H b/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModelDoc.H
similarity index 65%
rename from applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightParticlePositions.H
rename to src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModelDoc.H
index 902a9ba658bd0d23dd083c28296f9faa898bfde0..e58e1c6d43f97150d57aa9cd7a81495620eda279 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightParticlePositions.H
+++ b/src/TurbulenceModels/turbulenceModels/laminar/laminarModel/laminarModelDoc.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -21,34 +21,12 @@ License
     You should have received a copy of the GNU General Public License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
-InApplication
-    foamToEnsight
-
-Description
-
-SourceFiles
-    ensightParticlePositions.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef ensightParticlePositions_H
-#define ensightParticlePositions_H
-
-#include "fvMesh.H"
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-void ensightParticlePositions
-(
-    const Foam::fvMesh& mesh,
-    const Foam::fileName& postProcPath,
-    const Foam::word& timeFile,
-    const Foam::word& CloudName,
-    const bool dataExists
-);
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+\defgroup grpLaminar laminar transport model
+@{
+    \ingroup grpTurbulence
+    This group contains laminar models.
+@}
 
-#endif
-
-// ************************************************************************* //
+\*---------------------------------------------------------------------------*/
diff --git a/src/TurbulenceModels/turbulenceModels/makeTurbulenceModel.H b/src/TurbulenceModels/turbulenceModels/makeTurbulenceModel.H
index 1b226749e808e92804c04ab35e440af344af7c5b..64ba83fee25380486c5d00af7f88e9eb3ec6d92c 100644
--- a/src/TurbulenceModels/turbulenceModels/makeTurbulenceModel.H
+++ b/src/TurbulenceModels/turbulenceModels/makeTurbulenceModel.H
@@ -28,7 +28,8 @@ License
     namespace Foam                                                             \
     {                                                                          \
         typedef BaseModel<Transport> Transport##BaseModel;                     \
-        typedef laminar<Transport##BaseModel> Laminar##Transport##BaseModel;   \
+        typedef laminarModel<Transport##BaseModel>                             \
+            laminar##Transport##BaseModel;                                     \
         typedef RASModel<Transport##BaseModel> RAS##Transport##BaseModel;      \
         typedef LESModel<Transport##BaseModel> LES##Transport##BaseModel;      \
     }
@@ -53,12 +54,15 @@ License
         );                                                                     \
                                                                                \
                                                                                \
-        defineNamedTemplateTypeNameAndDebug(Laminar##Transport##BaseModel, 0); \
+        defineNamedTemplateTypeNameAndDebug(laminar##Transport##BaseModel, 0); \
+                                                                               \
+        defineTemplateRunTimeSelectionTable                                    \
+        (laminar##Transport##BaseModel, dictionary);                           \
                                                                                \
         addToRunTimeSelectionTable                                             \
         (                                                                      \
             Transport##baseModel,                                              \
-            Laminar##Transport##BaseModel,                                     \
+            laminar##Transport##BaseModel,                                     \
             dictionary                                                         \
         );                                                                     \
                                                                                \
diff --git a/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C b/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C
index 06dca4d56ce6a294519b6af2ad3705cdbb959101..4e767ca3ad18240b24ed1520de34d49a9a56692f 100644
--- a/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C
+++ b/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -36,32 +36,6 @@ namespace Foam
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::reactionRateFlameArea::reactionRateFlameArea
-(
-    const dictionary& dict,
-    const fvMesh& mesh,
-    const combustionModel& combModel
-)
-:
-    coeffDict_(dictionary::null),
-    mesh_(mesh),
-    combModel_(combModel),
-    fuel_(dict.lookup("fuel")),
-    omega_
-    (
-        IOobject
-        (
-            "omega",
-            mesh_.time().timeName(),
-            mesh_,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh_
-    )
-{}
-
-
 Foam::reactionRateFlameArea::reactionRateFlameArea
 (
     const word& modelType,
@@ -78,7 +52,7 @@ Foam::reactionRateFlameArea::reactionRateFlameArea
     (
         IOobject
         (
-            "omega",
+            "FSDomega",
             mesh_.time().timeName(),
             mesh_,
             IOobject::MUST_READ,
diff --git a/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.H b/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.H
index b6267a3892e87ebef12df937ecb339a046514759..4ae4271a9a889c65abfc74e0eaf8f8f58b0142c9 100644
--- a/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.H
+++ b/src/combustionModels/FSD/reactionRateFlameAreaModels/reactionRateFlameArea/reactionRateFlameArea.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -111,14 +111,6 @@ public:
 
     // Constructors
 
-        //- Construct from dictionary and psiReactionThermo
-        reactionRateFlameArea
-        (
-            const dictionary& dict,
-            const fvMesh& mesh,
-            const combustionModel& combModel
-        );
-
         //- Construct from components
         reactionRateFlameArea
         (
@@ -160,7 +152,6 @@ public:
 
         //- Update from dictionary
         virtual bool read(const dictionary& dictProperties);
-
 };
 
 
diff --git a/src/combustionModels/FSD/reactionRateFlameAreaModels/relaxation/relaxation.C b/src/combustionModels/FSD/reactionRateFlameAreaModels/relaxation/relaxation.C
index 2da8036f4443262203904f43aeee13339d6fb898..c714bc5cd2552420d14369c32b27eb32770eb4fd 100644
--- a/src/combustionModels/FSD/reactionRateFlameAreaModels/relaxation/relaxation.C
+++ b/src/combustionModels/FSD/reactionRateFlameAreaModels/relaxation/relaxation.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -123,20 +123,21 @@ void Foam::reactionRateFlameAreaModels::relaxation::correct
        /(sqr(omega0 - omegaInf) + sqr(omegaMin))
     );
 
-    tmp<surfaceScalarField> phi(combModel_.phi());
+    const volScalarField& rho = combModel_.rho();
+    const tmp<surfaceScalarField> tphi = combModel_.phi();
+    const surfaceScalarField& phi = tphi();
 
     solve
     (
-         fvm::ddt(omega_)
-       + fvm::div(phi, omega_, "div(phi,omega)")
+         fvm::ddt(rho, omega_)
+       + fvm::div(phi, omega_)
       ==
-         Rc*omega0
-       - fvm::SuSp((tau + Rc), omega_)
+         rho*Rc*omega0
+       - fvm::SuSp(rho*(tau + Rc), omega_)
     );
 
     omega_.min(omega0);
     omega_.max(0.0);
-
 }
 
 
diff --git a/src/combustionModels/combustionModel/combustionModel.H b/src/combustionModels/combustionModel/combustionModel.H
index b5d218cc0a186633fa9adb3cc1d9728223947386..8a0d0cd68ab6ed70a1a91d4fc32fb03d21741069 100644
--- a/src/combustionModels/combustionModel/combustionModel.H
+++ b/src/combustionModels/combustionModel/combustionModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -114,20 +114,17 @@ public:
             //- Return const access to the mesh database
             inline const fvMesh& mesh() const;
 
-            //- Return const access to phi
-            inline tmp<surfaceScalarField> phi() const;
-
-            //- Returns rho
-            virtual tmp<volScalarField> rho() const = 0;
+            //- Set turbulence
+            inline void setTurbulence(compressibleTurbulenceModel& turbModel);
 
             //- Return access to turbulence
             inline const compressibleTurbulenceModel& turbulence() const;
 
-            //- Set turbulence
-            inline void setTurbulence
-            (
-                compressibleTurbulenceModel& turbModel
-            );
+            //- Return const access to rho
+            inline const volScalarField& rho() const;
+
+            //- Return const access to phi
+            inline tmp<surfaceScalarField> phi() const;
 
             //- Is combustion active?
             inline const Switch& active() const;
diff --git a/src/combustionModels/combustionModel/combustionModelI.H b/src/combustionModels/combustionModel/combustionModelI.H
index 140f8c9bb5ed9b8e66ceead09630d4405ca88817..dc907fd097e62941cd132e980aac6145f3fc0b19 100644
--- a/src/combustionModels/combustionModel/combustionModelI.H
+++ b/src/combustionModels/combustionModel/combustionModelI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,42 +31,31 @@ inline const Foam::fvMesh& Foam::combustionModel::mesh() const
 }
 
 
-inline Foam::tmp<Foam::surfaceScalarField> Foam::combustionModel::phi() const
+inline const Foam::compressibleTurbulenceModel&
+Foam::combustionModel::turbulence() const
 {
-    if (turbulencePtr_)
-    {
-        return turbulencePtr_->phi();
-    }
-    else
+    if (!turbulencePtr_)
     {
         FatalErrorInFunction
             << "turbulencePtr_ is empty. Please use "
             << "combustionModel::setTurbulence "
             << "(compressibleTurbulenceModel&)"
             << abort(FatalError);
-
-        return turbulencePtr_->phi();
     }
+
+    return *turbulencePtr_;
 }
 
 
-inline const Foam::compressibleTurbulenceModel&
-Foam::combustionModel::turbulence() const
+inline const Foam::volScalarField& Foam::combustionModel::rho() const
 {
-    if (turbulencePtr_)
-    {
-        return *turbulencePtr_;
-    }
-    else
-    {
-        FatalErrorInFunction
-            << "turbulencePtr_ is empty. Please use "
-            << "combustionModel::setTurbulence "
-            << "(compressibleTurbulenceModel& )"
-            << abort(FatalError);
+    return turbulence().rho();
+}
 
-        return *turbulencePtr_;
-    }
+
+inline Foam::tmp<Foam::surfaceScalarField> Foam::combustionModel::phi() const
+{
+    return turbulence().alphaRhoPhi();
 }
 
 
diff --git a/src/combustionModels/laminar/laminar.H b/src/combustionModels/laminar/laminar.H
index a4589d4ac1b4598f28000c2d6f3b6e8b2cc470e6..605850bef793831b47e65e6db07bee053762516b 100644
--- a/src/combustionModels/laminar/laminar.H
+++ b/src/combustionModels/laminar/laminar.H
@@ -35,8 +35,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef laminar_H
-#define laminar_H
+#ifndef combustionModels_laminar_H
+#define combustionModels_laminar_H
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/combustionModels/psiCombustionModel/psiChemistryCombustion/psiChemistryCombustion.C b/src/combustionModels/psiCombustionModel/psiChemistryCombustion/psiChemistryCombustion.C
index be0ccfabfbd90cd9b29d99fced7b860204746ee0..b28116706e30ce5ab3916d0b998a64b3a3dbd3ea 100644
--- a/src/combustionModels/psiCombustionModel/psiChemistryCombustion/psiChemistryCombustion.C
+++ b/src/combustionModels/psiCombustionModel/psiChemistryCombustion/psiChemistryCombustion.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,11 +61,4 @@ Foam::combustionModels::psiChemistryCombustion::thermo() const
 }
 
 
-Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::psiChemistryCombustion::rho() const
-{
-    return chemistryPtr_->thermo().rho();
-}
-
-
 // ************************************************************************* //
diff --git a/src/combustionModels/psiCombustionModel/psiChemistryCombustion/psiChemistryCombustion.H b/src/combustionModels/psiCombustionModel/psiChemistryCombustion/psiChemistryCombustion.H
index e3725d35d34f10ae55a69b5379cd8cd4685203e4..5c16c8ad8e778d011b9232c65359a08eb2b0c223 100644
--- a/src/combustionModels/psiCombustionModel/psiChemistryCombustion/psiChemistryCombustion.H
+++ b/src/combustionModels/psiCombustionModel/psiChemistryCombustion/psiChemistryCombustion.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -95,9 +95,6 @@ public:
 
         //- Return const access to the thermo package
         virtual const psiReactionThermo& thermo() const;
-
-        //- Return const access to the density field
-        virtual tmp<volScalarField> rho() const;
 };
 
 
diff --git a/src/combustionModels/psiCombustionModel/psiCombustionModel/psiCombustionModel.H b/src/combustionModels/psiCombustionModel/psiCombustionModel/psiCombustionModel.H
index 64c5234bfc4d5e42c187bf6607ec38388e575a04..36bd824f416151dd54125a55a2f314400b9eae32 100644
--- a/src/combustionModels/psiCombustionModel/psiCombustionModel/psiCombustionModel.H
+++ b/src/combustionModels/psiCombustionModel/psiCombustionModel/psiCombustionModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -120,9 +120,6 @@ public:
         //- Return const access to the thermo package
         virtual const psiReactionThermo& thermo() const = 0;
 
-        //- Return tmp of rho
-        virtual tmp<volScalarField> rho() const = 0;
-
 
     // IO
 
diff --git a/src/combustionModels/psiCombustionModel/psiThermoCombustion/psiThermoCombustion.C b/src/combustionModels/psiCombustionModel/psiThermoCombustion/psiThermoCombustion.C
index 6d45d60ef5fdd95319bee1b9c4534442e39c228a..25450e2473f49753fcccba7816b792994f3dbbf0 100644
--- a/src/combustionModels/psiCombustionModel/psiThermoCombustion/psiThermoCombustion.C
+++ b/src/combustionModels/psiCombustionModel/psiThermoCombustion/psiThermoCombustion.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,11 +61,4 @@ Foam::combustionModels::psiThermoCombustion::thermo() const
 }
 
 
-Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::psiThermoCombustion::rho() const
-{
-    return thermoPtr_->rho();
-}
-
-
 // ************************************************************************* //
diff --git a/src/combustionModels/psiCombustionModel/psiThermoCombustion/psiThermoCombustion.H b/src/combustionModels/psiCombustionModel/psiThermoCombustion/psiThermoCombustion.H
index 44a55155adadeb1ee7410a8816cd08713014d0f5..f922e1a44d8ca4fd3e04b61debb7e01b2c9ae455 100644
--- a/src/combustionModels/psiCombustionModel/psiThermoCombustion/psiThermoCombustion.H
+++ b/src/combustionModels/psiCombustionModel/psiThermoCombustion/psiThermoCombustion.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -95,9 +95,6 @@ public:
 
         //- Return const access to the thermo package
         virtual const psiReactionThermo& thermo() const;
-
-        //- Return const access to the density field
-        virtual tmp<volScalarField> rho() const;
 };
 
 
diff --git a/src/combustionModels/rhoCombustionModel/rhoChemistryCombustion/rhoChemistryCombustion.C b/src/combustionModels/rhoCombustionModel/rhoChemistryCombustion/rhoChemistryCombustion.C
index 70ce698d7be03724f55e7bf5398172312a13f33c..b6d1ac1172348089d68a7863318288404342a8d7 100644
--- a/src/combustionModels/rhoCombustionModel/rhoChemistryCombustion/rhoChemistryCombustion.C
+++ b/src/combustionModels/rhoCombustionModel/rhoChemistryCombustion/rhoChemistryCombustion.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,11 +61,4 @@ Foam::combustionModels::rhoChemistryCombustion::thermo() const
 }
 
 
-Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::rhoChemistryCombustion::rho() const
-{
-    return chemistryPtr_->thermo().rho();
-}
-
-
 // ************************************************************************* //
diff --git a/src/combustionModels/rhoCombustionModel/rhoChemistryCombustion/rhoChemistryCombustion.H b/src/combustionModels/rhoCombustionModel/rhoChemistryCombustion/rhoChemistryCombustion.H
index 2a37812e05b6811b24c91071a543fd844c8d1fad..c8389c0ea534a9388a14e8f9da61cef218172d67 100644
--- a/src/combustionModels/rhoCombustionModel/rhoChemistryCombustion/rhoChemistryCombustion.H
+++ b/src/combustionModels/rhoCombustionModel/rhoChemistryCombustion/rhoChemistryCombustion.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -95,9 +95,6 @@ public:
 
         //- Return const access to the thermo package
         virtual const rhoReactionThermo& thermo() const;
-
-        //- Return const access to the density field
-        virtual tmp<volScalarField> rho() const;
 };
 
 
diff --git a/src/combustionModels/rhoCombustionModel/rhoCombustionModel/rhoCombustionModel.H b/src/combustionModels/rhoCombustionModel/rhoCombustionModel/rhoCombustionModel.H
index 341b5b6dcd67e9c3a7fd6b5d452f813724dbf74c..0266c74b3e05f8c3deb89ff30b24845874c59b20 100644
--- a/src/combustionModels/rhoCombustionModel/rhoCombustionModel/rhoCombustionModel.H
+++ b/src/combustionModels/rhoCombustionModel/rhoCombustionModel/rhoCombustionModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -127,9 +127,6 @@ public:
         //- Return const access to the thermo package
         virtual const rhoReactionThermo& thermo() const = 0;
 
-        //- Return tmp of rho
-        virtual tmp<volScalarField> rho() const = 0;
-
 
      // IO
 
diff --git a/src/combustionModels/rhoCombustionModel/rhoThermoCombustion/rhoThermoCombustion.C b/src/combustionModels/rhoCombustionModel/rhoThermoCombustion/rhoThermoCombustion.C
index ef95710f2a4564996cffc0411971a9a76949cd7d..aa645f0898acd048d59c51cc9f0c9b4cf8db02fb 100644
--- a/src/combustionModels/rhoCombustionModel/rhoThermoCombustion/rhoThermoCombustion.C
+++ b/src/combustionModels/rhoCombustionModel/rhoThermoCombustion/rhoThermoCombustion.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -61,11 +61,4 @@ Foam::combustionModels::rhoThermoCombustion::thermo() const
 }
 
 
-Foam::tmp<Foam::volScalarField>
-Foam::combustionModels::rhoThermoCombustion::rho() const
-{
-    return thermoPtr_().rho();
-}
-
-
 // ************************************************************************* //
diff --git a/src/combustionModels/rhoCombustionModel/rhoThermoCombustion/rhoThermoCombustion.H b/src/combustionModels/rhoCombustionModel/rhoThermoCombustion/rhoThermoCombustion.H
index 6982569fa6ffed58f25550950539538bdb566542..43041d46010009a4e70983425c620eda7822b3fb 100644
--- a/src/combustionModels/rhoCombustionModel/rhoThermoCombustion/rhoThermoCombustion.H
+++ b/src/combustionModels/rhoCombustionModel/rhoThermoCombustion/rhoThermoCombustion.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -95,9 +95,6 @@ public:
 
         //- Return const access to the thermo package
         virtual const rhoReactionThermo& thermo() const;
-
-        //- Return const access to the density field
-        virtual tmp<volScalarField> rho() const;
 };
 
 
diff --git a/src/conversion/ensight/file/ensightGeoFile.C b/src/conversion/ensight/file/ensightGeoFile.C
index c52aa79356a3270bc85ba9d1c04b1a7614262954..0119087e70f9dd17f8c009991a02ed20eeb88d92 100644
--- a/src/conversion/ensight/file/ensightGeoFile.C
+++ b/src/conversion/ensight/file/ensightGeoFile.C
@@ -24,14 +24,26 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "ensightGeoFile.H"
+#include "foamVersion.H"
+
+// Macros to stringify macro contents.
+#define STRINGIFY(content)      #content
+#define STRING_QUOTE(input)     STRINGIFY(input)
+
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
 void Foam::ensightGeoFile::initialize()
 {
+    #ifdef OPENFOAM_PLUS
+    string desc2("Written by OpenFOAM+ " STRING_QUOTE(OPENFOAM_PLUS));
+    #else
+    string desc2("Written by OpenFOAM-" + string(Foam::FOAMversion));
+    #endif
+
     writeBinaryHeader();
     write("Ensight Geometry File");  newline(); // description line 1
-    write("=====================");  newline(); // description line 2
+    write(desc2);                    newline(); // description line 2
     write("node id assign");         newline();
     write("element id assign");      newline();
 }
diff --git a/src/conversion/ensight/part/ensightPart.H b/src/conversion/ensight/part/ensightPart.H
index 9220692ac43f03e9d8cf9755b18e29fd518dbfb3..170b0e763d2c9fc22c06d71fa1c71ed92f89932f 100644
--- a/src/conversion/ensight/part/ensightPart.H
+++ b/src/conversion/ensight/part/ensightPart.H
@@ -311,27 +311,6 @@ public:
         //- Helper: write geometry given the pointField
         void writeGeometry(ensightGeoFile&, const pointField&) const;
 
-        //- Write scalar field
-        //  optionally write data per node
-        void writeScalarField
-        (
-            ensightFile&,
-            const List<scalar>& field,
-            const bool perNode = false
-        ) const;
-
-        //- Write vector field components
-        //  optionally write data per node
-        void writeVectorField
-        (
-            ensightFile&,
-            const List<scalar>& field0,
-            const List<scalar>& field1,
-            const List<scalar>& field2,
-            const bool perNode = false
-        ) const;
-
-
         //- Write generalized field components
         //  optionally write data per node
         template<class Type>
diff --git a/src/conversion/ensight/part/ensightPartIO.C b/src/conversion/ensight/part/ensightPartIO.C
index 1457ff46c3670b365f96909e2e6e9df0c509674e..4e21d6dd62b8bfbea7d8caeadab33267f3455632 100644
--- a/src/conversion/ensight/part/ensightPartIO.C
+++ b/src/conversion/ensight/part/ensightPartIO.C
@@ -213,78 +213,6 @@ void Foam::ensightPart::writeGeometry
 }
 
 
-void Foam::ensightPart::writeScalarField
-(
-    ensightFile& os,
-    const List<scalar>& field,
-    const bool perNode
-) const
-{
-    if (size() && field.size() && (os.allowUndef() || isFieldDefined(field)))
-    {
-        writeHeader(os);
-
-        if (perNode)
-        {
-            os.writeKeyword("coordinates");
-            writeFieldList(os, field, labelUList::null());
-        }
-        else
-        {
-            forAll(elementTypes(), elemI)
-            {
-                const labelUList& idList = elemLists_[elemI];
-
-                if (idList.size())
-                {
-                    os.writeKeyword(elementTypes()[elemI]);
-                    writeFieldList(os, field, idList);
-                }
-            }
-        }
-    }
-}
-
-
-void Foam::ensightPart::writeVectorField
-(
-    ensightFile& os,
-    const List<scalar>& field0,
-    const List<scalar>& field1,
-    const List<scalar>& field2,
-    const bool perNode
-) const
-{
-    if (size() && field0.size() && (os.allowUndef() || isFieldDefined(field0)))
-    {
-        writeHeader(os);
-
-        if (perNode)
-        {
-            os.writeKeyword("coordinates");
-            writeFieldList(os, field0, labelUList::null());
-            writeFieldList(os, field1, labelUList::null());
-            writeFieldList(os, field2, labelUList::null());
-        }
-        else
-        {
-            forAll(elementTypes(), elemI)
-            {
-                const labelUList& idList = elemLists_[elemI];
-
-                if (idList.size())
-                {
-                    os.writeKeyword(elementTypes()[elemI]);
-                    writeFieldList(os, field0, idList);
-                    writeFieldList(os, field1, idList);
-                    writeFieldList(os, field2, idList);
-                }
-            }
-        }
-    }
-}
-
-
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
 Foam::Ostream& Foam::operator<<
diff --git a/src/conversion/ensight/part/ensightPartTemplates.C b/src/conversion/ensight/part/ensightPartTemplates.C
index 32be0caef8d65593ea71bf2108c9ea39d97b31c3..13186460402ed81739c7856b4af8120470fb3385 100644
--- a/src/conversion/ensight/part/ensightPartTemplates.C
+++ b/src/conversion/ensight/part/ensightPartTemplates.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -27,6 +27,7 @@ Description
 \*---------------------------------------------------------------------------*/
 
 #include "ensightPart.H"
+#include "ensightPTraits.H"
 
 // * * * * * * * * * * * * * * * Global Functions  * * * * * * * * * * * * * //
 
@@ -45,13 +46,9 @@ void Foam::ensightPart::writeField
         if (perNode)
         {
             os.writeKeyword("coordinates");
-            for
-            (
-                direction cmpt=0;
-                cmpt < pTraits<Type>::nComponents;
-                ++cmpt
-            )
+            for (direction d=0; d < pTraits<Type>::nComponents; ++d)
             {
+                label cmpt = ensightPTraits<Type>::componentOrder[d];
                 writeFieldList(os, field.component(cmpt), labelUList::null());
             }
         }
@@ -65,13 +62,9 @@ void Foam::ensightPart::writeField
                 {
                     os.writeKeyword(elementTypes()[elemI]);
 
-                    for
-                    (
-                        direction cmpt=0;
-                        cmpt < pTraits<Type>::nComponents;
-                        ++cmpt
-                    )
+                    for (direction d=0; d < pTraits<Type>::nComponents; ++d)
                     {
+                        label cmpt = ensightPTraits<Type>::componentOrder[d];
                         writeFieldList(os, field.component(cmpt), idList);
                     }
                 }
diff --git a/src/conversion/ensight/part/ensightParts.C b/src/conversion/ensight/part/ensightParts.C
index 2e8e0feca414059972db01a687b161d446f6b246..c6f81160686a91cf503e16dfafbb5b4e3e5e7bff 100644
--- a/src/conversion/ensight/part/ensightParts.C
+++ b/src/conversion/ensight/part/ensightParts.C
@@ -225,59 +225,6 @@ void Foam::ensightParts::writeData(Ostream& os) const
 }
 
 
-void Foam::ensightParts::writeScalarField
-(
-    ensightFile& os,
-    const List<scalar>& field,
-    const bool useFaceData,
-    const bool perNode
-) const
-{
-    forAll(partsList_, partI)
-    {
-        if
-        (
-            useFaceData
-          ? partsList_[partI].isFaceData()
-          : partsList_[partI].isCellData()
-        )
-        {
-            partsList_[partI].writeScalarField(os, field, perNode);
-        }
-    }
-}
-
-
-void Foam::ensightParts::writeVectorField
-(
-    ensightFile& os,
-    const List<scalar>& field0,
-    const List<scalar>& field1,
-    const List<scalar>& field2,
-    const bool useFaceData,
-    const bool perNode
-) const
-{
-    forAll(partsList_, partI)
-    {
-        if
-        (
-            useFaceData
-          ? partsList_[partI].isFaceData()
-          : partsList_[partI].isCellData()
-        )
-        {
-            partsList_[partI].writeVectorField
-            (
-                os,
-                field0, field1, field2,
-                perNode
-            );
-        }
-    }
-}
-
-
 // * * * * * * * * * * * * * * * *  IOStream operators * * * * * * * * * * * //
 
 Foam::ensightGeoFile& Foam::operator<<
diff --git a/src/conversion/ensight/part/ensightParts.H b/src/conversion/ensight/part/ensightParts.H
index fd33238b1d4f30968780c77ab61757e90ac92056..84fc47fae99862dcad1bdc6531a20d821e379ddd 100644
--- a/src/conversion/ensight/part/ensightParts.H
+++ b/src/conversion/ensight/part/ensightParts.H
@@ -115,31 +115,6 @@ public:
         //- Write the lists
         void writeData(Ostream&) const;
 
-        //- Write (volume) scalar field
-        //  optionally write data for face parts
-        //  optionally write data per node
-        void writeScalarField
-        (
-            ensightFile&,
-            const List<scalar>& field,
-            const bool useFaceData = false,
-            const bool perNode = false
-        ) const;
-
-        //- Write (volume) vector field components
-        //  optionally write data for face parts
-        //  optionally write data per node
-        void writeVectorField
-        (
-            ensightFile&,
-            const List<scalar>& field0,
-            const List<scalar>& field1,
-            const List<scalar>& field2,
-            const bool useFaceData = false,
-            const bool perNode = false
-        ) const;
-
-
         //- Write generalized volume field components
         template<class Type>
         void writeField
diff --git a/src/dummyThirdParty/metisDecomp/metis.h b/src/dummyThirdParty/metisDecomp/metis.h
index 7b6ca31fc62f5f2b02b7dce8cde161b54549726d..b594fc09b1d322c48448d78c4d93eb1feeb1b711 100644
--- a/src/dummyThirdParty/metisDecomp/metis.h
+++ b/src/dummyThirdParty/metisDecomp/metis.h
@@ -1,5 +1,5 @@
 #ifndef METIS_H
-#define METIS_H 1
+#define METIS_H
 
 /* *** DUMMY VERSION of metis.h - this file should not be included if you have metis
  *     installed in the correct position in $WM_THIRD_PARTY_DIR - see
@@ -8,39 +8,52 @@
 
 #warning "Dummy metis.h - gets included since it cannot find metis installation."
 
-#define IDXTYPEWIDTH 32
+// Integer type: OpenFOAM uses WM_LABEL_SIZE, metis.h uses IDXTYPEWIDTH
+#if WM_LABEL_SIZE == 32
+  typedef int32_t idx_t;
 
-/*------------------------------------------------------------------------
-* Undefine the following #define in order to use short idxtype as the idxtype 
-*-------------------------------------------------------------------------*/
-#if IDXTYPEWIDTH == 32
+  #define IDXTYPEWIDTH 32
   #define SCNIDX  SCNd32
   #define PRIIDX  PRId32
+#elif WM_LABEL_SIZE == 64
+  typedef int64_t idx_t;
 
-  typedef int32_t idxtype;
-#elif IDXTYPEWIDTH == 64
+  #define IDXTYPEWIDTH 64
   #define SCNIDX  SCNd64
   #define PRIIDX  PRId64
-
-  typedef int64_t idxtype;
 #else
-  #error "Incorrect user-supplied value fo IDXTYPEWIDTH"
+  #error "Incorrect user-supplied value for WM_LABEL_SIZE  (metis IDXTYPEWIDTH)"
 #endif
 
 
-void METIS_WPartGraphRecursive(idxtype *nvtxs, idxtype *xadj, idxtype *adjncy, idxtype *vwgt,
-                   idxtype *adjwgt, idxtype *wgtflag, idxtype *numflag, idxtype *nparts, float *tpwgts, 
-                   idxtype *options, idxtype *edgecut, idxtype *part);
-void METIS_PartGraphRecursive(idxtype *nvtxs, idxtype *xadj, idxtype *adjncy, idxtype *vwgt,
-                   idxtype *adjwgt, idxtype *wgtflag, idxtype *numflag, idxtype *nparts, idxtype *options, 
-                   idxtype *edgecut, idxtype *part);
-void METIS_WPartGraphKway(idxtype *nvtxs, idxtype *xadj, idxtype *adjncy, idxtype *vwgt, 
-                   idxtype *adjwgt, idxtype *wgtflag, idxtype *numflag, idxtype *nparts, float *tpwgts, 
-                   idxtype *options, idxtype *edgecut, idxtype *part); 
-void METIS_PartGraphKway(idxtype *nvtxs, idxtype *xadj, idxtype *adjncy, idxtype *vwgt, 
-                   idxtype *adjwgt, idxtype *wgtflag, idxtype *numflag, idxtype *nparts, idxtype *options, 
-                   idxtype *edgecut, idxtype *part); 
+// Float type: OpenFOAM uses WM_SP, WM_DP, metis.h uses REALTYPEWIDTH
+#if defined(WM_SP)
+  typedef float real_t;
+  #define REALTYPEWIDTH 32
+#elif defined(WM_DP)
+  typedef double real_t;
+  #define REALTYPEWIDTH 64
+#else
+  #error "Incorrect user-supplied value for WM_SP / WM_DP  (metis REALTYPEWIDTH)"
+#endif
+
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+int            METIS_PartGraphRecursive(idx_t *nvtxs, idx_t *ncon, idx_t *xadj,
+                  idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt,
+                  idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options,
+                  idx_t *edgecut, idx_t *part);
+
+int            METIS_PartGraphKway(idx_t *nvtxs, idx_t *ncon, idx_t *xadj,
+                  idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt,
+                  idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options,
+                  idx_t *edgecut, idx_t *part);
+
+#ifdef __cplusplus
+}
+#endif
 
 
 #endif
diff --git a/src/dynamicMesh/motionSmoother/motionSmootherAlgoTemplates.C b/src/dynamicMesh/motionSmoother/motionSmootherAlgoTemplates.C
index 92f9d60fefbf85e773d07eb4c8c93af8ee6cc53f..89180f26db879bdbe2f4c4da209364c5f20782e0 100644
--- a/src/dynamicMesh/motionSmoother/motionSmootherAlgoTemplates.C
+++ b/src/dynamicMesh/motionSmoother/motionSmootherAlgoTemplates.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -57,7 +57,7 @@ void Foam::motionSmootherAlgo::checkConstraints
     }
 
 
-    typename FldType::Boundary& bFld = pf.boundaryField();
+    typename FldType::Boundary& bFld = pf.boundaryFieldRef();
 
 
     // Evaluate in reverse order
diff --git a/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFVelocityFvPatchVectorField/SRFVelocityFvPatchVectorField.C b/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFVelocityFvPatchVectorField/SRFVelocityFvPatchVectorField.C
index ec59dbedfc4831e63df8014b5dee16f85967cc4c..ba3a0457269c5797892d14affd7577550d78ecf9 100644
--- a/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFVelocityFvPatchVectorField/SRFVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFVelocityFvPatchVectorField/SRFVelocityFvPatchVectorField.C
@@ -64,12 +64,10 @@ Foam::SRFVelocityFvPatchVectorField::SRFVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF),
+    fixedValueFvPatchVectorField(p, iF, dict),
     relative_(dict.lookup("relative")),
     inletValue_("inletValue", dict, p.size())
-{
-    fvPatchVectorField::operator=(vectorField("value", dict, p.size()));
-}
+{}
 
 
 Foam::SRFVelocityFvPatchVectorField::SRFVelocityFvPatchVectorField
diff --git a/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFWallVelocityFvPatchVectorField/SRFWallVelocityFvPatchVectorField.C b/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFWallVelocityFvPatchVectorField/SRFWallVelocityFvPatchVectorField.C
index 17c0dc700f8b4903566e537239b0cc1532f993de..2cd69993b14db767cb7c2612525f65e2f8c8d979 100644
--- a/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFWallVelocityFvPatchVectorField/SRFWallVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFWallVelocityFvPatchVectorField/SRFWallVelocityFvPatchVectorField.C
@@ -60,10 +60,8 @@ Foam::SRFWallVelocityFvPatchVectorField::SRFWallVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF)
-{
-    fvPatchVectorField::operator=(vectorField("value", dict, p.size()));
-}
+    fixedValueFvPatchVectorField(p, iF, dict)
+{}
 
 
 Foam::SRFWallVelocityFvPatchVectorField::SRFWallVelocityFvPatchVectorField
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchField.C
index 5a6f29aa89f0b1589416a19589c5f84b1806f1ca..d53c2505657503de552c5ee958025a248b102008 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchField.C
@@ -71,11 +71,12 @@ Foam::coupledFvPatchField<Type>::coupledFvPatchField
 (
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
-    const dictionary& dict
+    const dictionary& dict,
+    const bool valueRequired
 )
 :
     LduInterfaceField<Type>(refCast<const lduInterface>(p)),
-    fvPatchField<Type>(p, iF, dict)
+    fvPatchField<Type>(p, iF, dict, valueRequired)
 {}
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchField.H
index 0148af1ac55e61664f3f384048403d919b3f962f..20d87b8e86663c051ee1929e276be3ed2f702734 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchField.H
@@ -86,7 +86,8 @@ public:
         (
             const fvPatch&,
             const DimensionedField<Type, volMesh>&,
-            const dictionary&
+            const dictionary&,
+            const bool valueRequired=true
         );
 
         //- Construct by mapping the given coupledFvPatchField onto a new patch
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/extrapolatedCalculated/extrapolatedCalculatedFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/basic/extrapolatedCalculated/extrapolatedCalculatedFvPatchField.C
index 3d154348800421869debd5160ad42b4a69bc3a1c..188294d38d07bef566100d4641dae3d35923b5ec 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/extrapolatedCalculated/extrapolatedCalculatedFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/basic/extrapolatedCalculated/extrapolatedCalculatedFvPatchField.C
@@ -46,12 +46,13 @@ extrapolatedCalculatedFvPatchField
 (
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
-    const dictionary& dict,
-    const bool valueRequired
+    const dictionary& dict
 )
 :
-    calculatedFvPatchField<Type>(p, iF, dict, valueRequired)
-{}
+    calculatedFvPatchField<Type>(p, iF, dict, false)
+{
+    evaluate();
+}
 
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/extrapolatedCalculated/extrapolatedCalculatedFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/extrapolatedCalculated/extrapolatedCalculatedFvPatchField.H
index da998d3a85d8f833733046f676f53fdd7193ff20..f9eb61e28561d5e55f3e18bef42f6ce0d8993300 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/extrapolatedCalculated/extrapolatedCalculatedFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/extrapolatedCalculated/extrapolatedCalculatedFvPatchField.H
@@ -87,8 +87,7 @@ public:
         (
             const fvPatch&,
             const DimensionedField<Type, volMesh>&,
-            const dictionary&,
-            const bool valueRequired=false
+            const dictionary&
         );
 
         //- Construct by mapping given patchField<Type> onto a new patch
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchField.C
index bb789ed827c0b472790e8177be938ce30d5af505..a7a8a8562fe61036da82d69aa9ee6287d4521a8b 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchField.C
@@ -48,7 +48,7 @@ Foam::fixedGradientFvPatchField<Type>::fixedGradientFvPatchField
     const dictionary& dict
 )
 :
-    fvPatchField<Type>(p, iF, dict),
+    fvPatchField<Type>(p, iF, dict, false),
     gradient_("gradient", dict, p.size())
 {
     evaluate();
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.C
index b6841f3353339849eb09deafe5905a72060df949..fcde153c9d8730285d5fa703cccef9ee1703b63e 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.C
@@ -55,10 +55,11 @@ Foam::fixedValueFvPatchField<Type>::fixedValueFvPatchField
 (
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
-    const dictionary& dict
+    const dictionary& dict,
+    const bool valueRequired
 )
 :
-    fvPatchField<Type>(p, iF, dict, true)
+    fvPatchField<Type>(p, iF, dict, valueRequired)
 {}
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.H
index 3cf2421420dd38b7ed47d6b09235fef02bd8c301..375d57fea4cf99655dc386fab4865fcff43f8050 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.H
@@ -99,7 +99,8 @@ public:
         (
             const fvPatch&,
             const DimensionedField<Type, volMesh>&,
-            const dictionary&
+            const dictionary&,
+            const bool valueRequired=true
         );
 
         //- Construct by mapping the given fixedValueFvPatchField<Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/mixed/mixedFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/basic/mixed/mixedFvPatchField.C
index bcec377834b95b94dbd2cb0626bf072b035c1014..9a195de206e561b3e99c693e0cf9654fe2c6f212 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/mixed/mixedFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/basic/mixed/mixedFvPatchField.C
@@ -49,7 +49,7 @@ Foam::mixedFvPatchField<Type>::mixedFvPatchField
     const dictionary& dict
 )
 :
-    fvPatchField<Type>(p, iF, dict),
+    fvPatchField<Type>(p, iF, dict, false),
     refValue_("refValue", dict, p.size()),
     refGrad_("refGradient", dict, p.size()),
     valueFraction_("valueFraction", dict, p.size())
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/sliced/slicedFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/basic/sliced/slicedFvPatchField.C
index 98bd38eb72b8f78b5256245923700fe87b3bff53..ba0dd92f091745d82449017571c14e3612e2dc77 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/sliced/slicedFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/basic/sliced/slicedFvPatchField.C
@@ -61,7 +61,7 @@ Foam::slicedFvPatchField<Type>::slicedFvPatchField
     const dictionary& dict
 )
 :
-    fvPatchField<Type>(p, iF, dict)
+    fvPatchField<Type>(p, iF, dict, false)
 {
     NotImplemented;
 }
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.C
index bccf65ef165e913aa1e16b195b030f949cb7de0b..0ed9a26703365fafca395d09732c366fa0dcd061 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.C
@@ -61,7 +61,7 @@ Foam::transformFvPatchField<Type>::transformFvPatchField
     const dictionary& dict
 )
 :
-    fvPatchField<Type>(p, iF, dict)
+    fvPatchField<Type>(p, iF, dict, false)
 {}
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchField.C
index 4395534fe2a948a5eda2dcb95024a387d5e2976d..e99530bf21ccf984cf47011eb999a9d0ee0b8ef8 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchField.C
@@ -47,7 +47,7 @@ Foam::zeroGradientFvPatchField<Type>::zeroGradientFvPatchField
     const dictionary& dict
 )
 :
-    fvPatchField<Type>(p, iF, dict)
+    fvPatchField<Type>(p, iF, dict, false)
 {
     fvPatchField<Type>::operator=(this->patchInternalField());
 }
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C
index 4513dc4da654a92cad748d918dde744cacb109d2..b4241bb27109b85eded51c58f16226ca1441eda6 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C
@@ -48,7 +48,7 @@ Foam::cyclicFvPatchField<Type>::cyclicFvPatchField
     const dictionary& dict
 )
 :
-    coupledFvPatchField<Type>(p, iF, dict),
+    coupledFvPatchField<Type>(p, iF, dict, false),
     cyclicPatch_(refCast<const cyclicFvPatch>(p))
 {
     if (!isA<cyclicFvPatch>(p))
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicACMI/cyclicACMIFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicACMI/cyclicACMIFvPatchField.C
index c32b6f33d607305eade4e9597d44ecf6c1a1ed7e..0b9335fb8f8543a4135e8a7a9db49b0c2b518169 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicACMI/cyclicACMIFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicACMI/cyclicACMIFvPatchField.C
@@ -44,60 +44,61 @@ Foam::cyclicACMIFvPatchField<Type>::cyclicACMIFvPatchField
 template<class Type>
 Foam::cyclicACMIFvPatchField<Type>::cyclicACMIFvPatchField
 (
-    const cyclicACMIFvPatchField<Type>& ptf,
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
-    const fvPatchFieldMapper& mapper
+    const dictionary& dict
 )
 :
     cyclicACMILduInterfaceField(),
-    coupledFvPatchField<Type>(ptf, p, iF, mapper),
+    coupledFvPatchField<Type>(p, iF, dict, dict.found("value")),
     cyclicACMIPatch_(refCast<const cyclicACMIFvPatch>(p))
 {
-    if (!isA<cyclicACMIFvPatch>(this->patch()))
+    if (!isA<cyclicACMIFvPatch>(p))
     {
-        FatalErrorInFunction
+        FatalIOErrorInFunction
+        (
+            dict
+        )   << "    patch type '" << p.type()
             << "' not constraint type '" << typeName << "'"
             << "\n    for patch " << p.name()
             << " of field " << this->internalField().name()
             << " in file " << this->internalField().objectPath()
             << exit(FatalIOError);
     }
+
+    if (!dict.found("value") && this->coupled())
+    {
+        this->evaluate(Pstream::blocking);
+    }
 }
 
 
 template<class Type>
 Foam::cyclicACMIFvPatchField<Type>::cyclicACMIFvPatchField
 (
+    const cyclicACMIFvPatchField<Type>& ptf,
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
-    const dictionary& dict
+    const fvPatchFieldMapper& mapper
 )
 :
     cyclicACMILduInterfaceField(),
-    coupledFvPatchField<Type>(p, iF, dict),
+    coupledFvPatchField<Type>(ptf, p, iF, mapper),
     cyclicACMIPatch_(refCast<const cyclicACMIFvPatch>(p))
 {
-    if (!isA<cyclicACMIFvPatch>(p))
+    if (!isA<cyclicACMIFvPatch>(this->patch()))
     {
-        FatalIOErrorInFunction
-        (
-            dict
-        )   << "    patch type '" << p.type()
+        FatalErrorInFunction
             << "' not constraint type '" << typeName << "'"
             << "\n    for patch " << p.name()
             << " of field " << this->internalField().name()
             << " in file " << this->internalField().objectPath()
             << exit(FatalIOError);
     }
-
-    if (!dict.found("value") && this->coupled())
-    {
-        this->evaluate(Pstream::blocking);
-    }
 }
 
 
+
 template<class Type>
 Foam::cyclicACMIFvPatchField<Type>::cyclicACMIFvPatchField
 (
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.C
index f97985b115a087f4bb4434e81aa28a046436b418..7d8fec72c12e968fe1068b75143887ce007db5ad 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.C
@@ -41,57 +41,57 @@ Foam::cyclicAMIFvPatchField<Type>::cyclicAMIFvPatchField
 template<class Type>
 Foam::cyclicAMIFvPatchField<Type>::cyclicAMIFvPatchField
 (
-    const cyclicAMIFvPatchField<Type>& ptf,
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
-    const fvPatchFieldMapper& mapper
+    const dictionary& dict
 )
 :
     cyclicAMILduInterfaceField(),
-    coupledFvPatchField<Type>(ptf, p, iF, mapper),
+    coupledFvPatchField<Type>(p, iF, dict, dict.found("value")),
     cyclicAMIPatch_(refCast<const cyclicAMIFvPatch>(p))
 {
-    if (!isA<cyclicAMIFvPatch>(this->patch()))
+    if (!isA<cyclicAMIFvPatch>(p))
     {
-        FatalErrorInFunction
+        FatalIOErrorInFunction
+        (
+            dict
+        )   << "    patch type '" << p.type()
             << "' not constraint type '" << typeName << "'"
             << "\n    for patch " << p.name()
             << " of field " << this->internalField().name()
             << " in file " << this->internalField().objectPath()
             << exit(FatalIOError);
     }
+
+    if (!dict.found("value") && this->coupled())
+    {
+        this->evaluate(Pstream::blocking);
+    }
 }
 
 
 template<class Type>
 Foam::cyclicAMIFvPatchField<Type>::cyclicAMIFvPatchField
 (
+    const cyclicAMIFvPatchField<Type>& ptf,
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
-    const dictionary& dict
+    const fvPatchFieldMapper& mapper
 )
 :
     cyclicAMILduInterfaceField(),
-    coupledFvPatchField<Type>(p, iF, dict),
+    coupledFvPatchField<Type>(ptf, p, iF, mapper),
     cyclicAMIPatch_(refCast<const cyclicAMIFvPatch>(p))
 {
-    if (!isA<cyclicAMIFvPatch>(p))
+    if (!isA<cyclicAMIFvPatch>(this->patch()))
     {
-        FatalIOErrorInFunction
-        (
-            dict
-        )   << "    patch type '" << p.type()
+        FatalErrorInFunction
             << "' not constraint type '" << typeName << "'"
             << "\n    for patch " << p.name()
             << " of field " << this->internalField().name()
             << " in file " << this->internalField().objectPath()
             << exit(FatalIOError);
     }
-
-    if (!dict.found("value") && this->coupled())
-    {
-        this->evaluate(Pstream::blocking);
-    }
 }
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchField.C
index acd103c2129c0d9a31bfbddfc132b5728d584819..0a7c8e7bea5e07967a96a6d764f8088fad630d73 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchField.C
@@ -70,13 +70,12 @@ Foam::processorFvPatchField<Type>::processorFvPatchField
 template<class Type>
 Foam::processorFvPatchField<Type>::processorFvPatchField
 (
-    const processorFvPatchField<Type>& ptf,
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
-    const fvPatchFieldMapper& mapper
+    const dictionary& dict
 )
 :
-    coupledFvPatchField<Type>(ptf, p, iF, mapper),
+    coupledFvPatchField<Type>(p, iF, dict, dict.found("value")),
     procPatch_(refCast<const processorFvPatch>(p)),
     sendBuf_(0),
     receiveBuf_(0),
@@ -85,20 +84,23 @@ Foam::processorFvPatchField<Type>::processorFvPatchField
     scalarSendBuf_(0),
     scalarReceiveBuf_(0)
 {
-    if (!isA<processorFvPatch>(this->patch()))
+    if (!isA<processorFvPatch>(p))
     {
-        FatalErrorInFunction
+        FatalIOErrorInFunction
+        (
+            dict
+        )   << "\n    patch type '" << p.type()
             << "' not constraint type '" << typeName << "'"
             << "\n    for patch " << p.name()
             << " of field " << this->internalField().name()
             << " in file " << this->internalField().objectPath()
             << exit(FatalIOError);
     }
-    if (debug && !ptf.ready())
+
+    // If the value is not supplied set to the internal field
+    if (!dict.found("value"))
     {
-        FatalErrorInFunction
-            << "On patch " << procPatch_.name() << " outstanding request."
-            << abort(FatalError);
+        fvPatchField<Type>::operator=(this->patchInternalField());
     }
 }
 
@@ -106,12 +108,13 @@ Foam::processorFvPatchField<Type>::processorFvPatchField
 template<class Type>
 Foam::processorFvPatchField<Type>::processorFvPatchField
 (
+    const processorFvPatchField<Type>& ptf,
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
-    const dictionary& dict
+    const fvPatchFieldMapper& mapper
 )
 :
-    coupledFvPatchField<Type>(p, iF, dict),
+    coupledFvPatchField<Type>(ptf, p, iF, mapper),
     procPatch_(refCast<const processorFvPatch>(p)),
     sendBuf_(0),
     receiveBuf_(0),
@@ -120,18 +123,21 @@ Foam::processorFvPatchField<Type>::processorFvPatchField
     scalarSendBuf_(0),
     scalarReceiveBuf_(0)
 {
-    if (!isA<processorFvPatch>(p))
+    if (!isA<processorFvPatch>(this->patch()))
     {
-        FatalIOErrorInFunction
-        (
-            dict
-        )   << "\n    patch type '" << p.type()
+        FatalErrorInFunction
             << "' not constraint type '" << typeName << "'"
             << "\n    for patch " << p.name()
             << " of field " << this->internalField().name()
             << " in file " << this->internalField().objectPath()
             << exit(FatalIOError);
     }
+    if (debug && !ptf.ready())
+    {
+        FatalErrorInFunction
+            << "On patch " << procPatch_.name() << " outstanding request."
+            << abort(FatalError);
+    }
 }
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.C
index 4da794509c8dc7a3b8737e61ea722be39b1fb096..a2e322b35f77a2f62a7969ba716587ac1e3ced21 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.C
@@ -47,68 +47,68 @@ Foam::processorCyclicFvPatchField<Type>::processorCyclicFvPatchField
 (
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
-    const Field<Type>& f
+    const dictionary& dict
 )
 :
-    processorFvPatchField<Type>(p, iF, f),
+    processorFvPatchField<Type>(p, iF, dict),
     procPatch_(refCast<const processorCyclicFvPatch>(p))
-{}
+{
+    if (!isType<processorCyclicFvPatch>(p))
+    {
+        FatalIOErrorInFunction
+        (
+            dict
+        )   << "\n    patch type '" << p.type()
+            << "' not constraint type '" << typeName << "'"
+            << "\n    for patch " << p.name()
+            << " of field " << this->internalField().name()
+            << " in file " << this->internalField().objectPath()
+            << exit(FatalIOError);
+    }
+
+    if (Pstream::defaultCommsType == Pstream::scheduled)
+    {
+        WarningInFunction
+            << "Scheduled communication with split cyclics not supported."
+            << endl;
+    }
+}
 
 
 template<class Type>
 Foam::processorCyclicFvPatchField<Type>::processorCyclicFvPatchField
 (
-    const processorCyclicFvPatchField<Type>& ptf,
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
-    const fvPatchFieldMapper& mapper
+    const Field<Type>& f
 )
 :
-    processorFvPatchField<Type>(ptf, p, iF, mapper),
+    processorFvPatchField<Type>(p, iF, f),
     procPatch_(refCast<const processorCyclicFvPatch>(p))
-{
-    if (!isType<processorCyclicFvPatch>(this->patch()))
-    {
-        FatalErrorInFunction
-            << "' not constraint type '" << typeName << "'"
-            << "\n    for patch " << p.name()
-            << " of field " << this->internalField().name()
-            << " in file " << this->internalField().objectPath()
-            << exit(FatalIOError);
-    }
-}
+{}
 
 
 template<class Type>
 Foam::processorCyclicFvPatchField<Type>::processorCyclicFvPatchField
 (
+    const processorCyclicFvPatchField<Type>& ptf,
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
-    const dictionary& dict
+    const fvPatchFieldMapper& mapper
 )
 :
-    processorFvPatchField<Type>(p, iF, dict),
+    processorFvPatchField<Type>(ptf, p, iF, mapper),
     procPatch_(refCast<const processorCyclicFvPatch>(p))
 {
-    if (!isType<processorCyclicFvPatch>(p))
+    if (!isType<processorCyclicFvPatch>(this->patch()))
     {
-        FatalIOErrorInFunction
-        (
-            dict
-        )   << "\n    patch type '" << p.type()
+        FatalErrorInFunction
             << "' not constraint type '" << typeName << "'"
             << "\n    for patch " << p.name()
             << " of field " << this->internalField().name()
             << " in file " << this->internalField().objectPath()
             << exit(FatalIOError);
     }
-
-    if (Pstream::defaultCommsType == Pstream::scheduled)
-    {
-        WarningInFunction
-            << "Scheduled communication with split cyclics not supported."
-            << endl;
-    }
 }
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.C
index 1ce7a7d39f4e01f8fd5ca52fedfbe59a1804c158..18213659c7674dc484d1e76d8b8ce46ce74b7297 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.C
@@ -85,7 +85,7 @@ activeBaffleVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF),
+    fixedValueFvPatchVectorField(p, iF, dict, false),
     pName_(dict.lookupOrDefault<word>("p", "p")),
     cyclicPatchName_(dict.lookup("cyclicPatch")),
     cyclicPatchLabel_(p.patch().boundaryMesh().findPatchID(cyclicPatchName_)),
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.C
index ad6ebca09f66a581d2926373b9d06bc7541187ef..6a86dea0da02ca783b977ba06d3c100a70cbe63d 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.C
@@ -91,7 +91,7 @@ activePressureForceBaffleVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF),
+    fixedValueFvPatchVectorField(p, iF, dict, false),
     pName_(dict.lookupOrDefault<word>("p", "p")),
     cyclicPatchName_(dict.lookup("cyclicPatch")),
     cyclicPatchLabel_(p.patch().boundaryMesh().findPatchID(cyclicPatchName_)),
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedProfile/fixedProfileFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/fixedProfile/fixedProfileFvPatchField.C
index 1ea26724c6595432e591eb89bb40e31d38f3add1..be52334338351d2a6153861a75064c6d6ea45d6f 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedProfile/fixedProfileFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedProfile/fixedProfileFvPatchField.C
@@ -64,7 +64,7 @@ Foam::fixedProfileFvPatchField<Type>::fixedProfileFvPatchField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchField<Type>(p, iF),
+    fixedValueFvPatchField<Type>(p, iF, dict, false),
     profile_(Function1<Type>::New("profile", dict)),
     dir_(dict.lookup("direction")),
     origin_(readScalar(dict.lookup("origin")))
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C
index 79b1745ddabe2c38f28c7dde06b86af5456b404e..1e507a5dfd5de242cd4b90526119254643ccff3f 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C
@@ -54,7 +54,7 @@ flowRateInletVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchField<vector>(p, iF),
+    fixedValueFvPatchField<vector>(p, iF, dict, false),
     rhoInlet_(dict.lookupOrDefault<scalar>("rhoInlet", -VGREAT)),
     extrapolateProfile_
     (
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C
index 6c0bba62635a982d2096ca86e54687665f498853..22d6a2e789b9f98ccc919e7c17ff3d2e497949f7 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C
@@ -50,10 +50,8 @@ movingWallVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF)
-{
-    fvPatchVectorField::operator=(vectorField("value", dict, p.size()));
-}
+    fixedValueFvPatchVectorField(p, iF, dict)
+{}
 
 
 Foam::movingWallVelocityFvPatchVectorField::
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/plenumPressure/plenumPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/plenumPressure/plenumPressureFvPatchScalarField.C
index 19476f5e7fbf99170443074fa4ab6a0070377e29..aadbfcfd85e54c0ec4772ee7bf36bc4629355257 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/plenumPressure/plenumPressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/plenumPressure/plenumPressureFvPatchScalarField.C
@@ -65,7 +65,7 @@ Foam::plenumPressureFvPatchScalarField::plenumPressureFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict),
     gamma_(readScalar(dict.lookup("gamma"))),
     R_(readScalar(dict.lookup("R"))),
     supplyMassFlowRate_(readScalar(dict.lookup("supplyMassFlowRate"))),
@@ -87,8 +87,6 @@ Foam::plenumPressureFvPatchScalarField::plenumPressureFvPatchScalarField
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     UName_(dict.lookupOrDefault<word>("U", "U"))
 {
-    fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
-
     if (dict.found("rho"))
     {
         rho_ = readScalar(dict.lookup("rho"));
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/pressureDirectedInletVelocity/pressureDirectedInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/pressureDirectedInletVelocity/pressureDirectedInletVelocityFvPatchVectorField.C
index cd4eb18b988a852da9dd7c1fccfc37156377de54..9ab1bc87ef46b0eb0f47bef14b843be094c7dec3 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/pressureDirectedInletVelocity/pressureDirectedInletVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/pressureDirectedInletVelocity/pressureDirectedInletVelocityFvPatchVectorField.C
@@ -70,13 +70,11 @@ pressureDirectedInletVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF),
+    fixedValueFvPatchVectorField(p, iF, dict),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
     inletDir_("inletDirection", dict, p.size())
-{
-    fvPatchVectorField::operator=(vectorField("value", dict, p.size()));
-}
+{}
 
 
 Foam::pressureDirectedInletVelocityFvPatchVectorField::
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/pressureInletVelocity/pressureInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/pressureInletVelocity/pressureInletVelocityFvPatchVectorField.C
index 6a779ae0bda7822aba642a4b484d21453a6e8374..06e58e73bb78dbfff02aba60cb19c03aabb6eb76 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/pressureInletVelocity/pressureInletVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/pressureInletVelocity/pressureInletVelocityFvPatchVectorField.C
@@ -66,12 +66,10 @@ pressureInletVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF),
+    fixedValueFvPatchVectorField(p, iF, dict),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho"))
-{
-    fvPatchVectorField::operator=(vectorField("value", dict, p.size()));
-}
+{}
 
 
 Foam::pressureInletVelocityFvPatchVectorField::
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/prghPressure/prghPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/prghPressure/prghPressureFvPatchScalarField.C
index 5ea2c2c823780709cb7f2b9587398a5990284ee1..c266d27f856511810bc0b20177bf43b7055622a5 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/prghPressure/prghPressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/prghPressure/prghPressureFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,7 +52,7 @@ prghPressureFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict, false),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
     p_("p", dict, p.size())
 {
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/prghTotalPressure/prghTotalPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/prghTotalPressure/prghTotalPressureFvPatchScalarField.C
index 21229f7d82f8bdc25dc6fe4b0f13493754c128e5..1140551128a9f7d8e7ae245ca5719f6c29e504f6 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/prghTotalPressure/prghTotalPressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/prghTotalPressure/prghTotalPressureFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -55,7 +55,7 @@ prghTotalPressureFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict, false),
     UName_(dict.lookupOrDefault<word>("U", "U")),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.C
index 461481f5fb7bcdeb68aea7f7247303e640abc8ba..ebc32b0790c26fb0e32d714dce7e41d9557a949e 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.C
@@ -52,7 +52,7 @@ rotatingWallVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchField<vector>(p, iF),
+    fixedValueFvPatchField<vector>(p, iF, dict, false),
     origin_(dict.lookup("origin")),
     axis_(dict.lookup("axis")),
     omega_(Function1<scalar>::New("omega", dict))
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVectorField.C
index 478600608b1ceff37d07d3010f0a95902f33310a..dc37c38a43e20bc0122f10e9d2c9b3caf3a8c09e 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVectorField.C
@@ -50,7 +50,7 @@ surfaceNormalFixedValueFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF),
+    fixedValueFvPatchVectorField(p, iF, dict, false),
     refValue_("refValue", dict, p.size())
 {
     fvPatchVectorField::operator=(refValue_*patch().nf());
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/syringePressure/syringePressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/syringePressure/syringePressureFvPatchScalarField.C
index 5acddd12fa3ad7d53f64b7ffd59509b4697f02bf..c33db45ca26ec2d5a6d958b7903f0ff46c9588f3 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/syringePressure/syringePressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/syringePressure/syringePressureFvPatchScalarField.C
@@ -50,7 +50,7 @@ Foam::syringePressureFvPatchScalarField::syringePressureFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict, false),
     Ap_(readScalar(dict.lookup("Ap"))),
     Sp_(readScalar(dict.lookup("Sp"))),
     VsI_(readScalar(dict.lookup("VsI"))),
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C
index 7e266aa33f680cab1db5973bcdd49a54c6a388ff..c32deca90dbd0f5679b43dfeb4f9bb3a496067b7 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C
@@ -63,7 +63,7 @@ timeVaryingMappedFixedValueFvPatchField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchField<Type>(p, iF),
+    fixedValueFvPatchField<Type>(p, iF, dict, false),
     fieldTableName_(iF.name()),
     setAverage_(dict.lookupOrDefault("setAverage", false)),
     perturb_(dict.lookupOrDefault("perturb", 1e-5)),
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/totalPressure/totalPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/totalPressure/totalPressureFvPatchScalarField.C
index c88c0a59ffe2e637c44f8b09920591fbfae95cdb..bcd8557253970b4a1b9eb4fc747393e2f73c97f7 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/totalPressure/totalPressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/totalPressure/totalPressureFvPatchScalarField.C
@@ -55,7 +55,7 @@ Foam::totalPressureFvPatchScalarField::totalPressureFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict, false),
     UName_(dict.lookupOrDefault<word>("U", "U")),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.C
index 7d14db67faef883415c9e061ac15be209d3177a3..15df485592646cb42f2c8a4b78dcf1b983a2f8cd 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,7 +70,7 @@ Foam::totalTemperatureFvPatchScalarField::totalTemperatureFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict, false),
     UName_(dict.lookupOrDefault<word>("U", "U")),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     psiName_(dict.lookupOrDefault<word>("psi", "thermo:psi")),
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.C
index 37b7ada77298cb958604c498dc043f1fe0fa86aa..d41a42470174efcf903a7810906f9a2ae809c6b6 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.C
@@ -49,7 +49,7 @@ translatingWallVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchField<vector>(p, iF),
+    fixedValueFvPatchField<vector>(p, iF, dict, false),
     U_(Function1<vector>::New("U", dict))
 {
     // Evaluate the wall velocity
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C
index 4527eca00981499c7a8b9f91b62178afa2d82318..ec71541bd0f2be12c6e8e502dac1881c0423ade1 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C
@@ -51,7 +51,7 @@ Foam::turbulentInletFvPatchField<Type>::turbulentInletFvPatchField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchField<Type>(p, iF),
+    fixedValueFvPatchField<Type>(p, iF, dict, false),
     ranGen_(label(0)),
     fluctuationScale_(pTraits<Type>(dict.lookup("fluctuationScale"))),
     referenceField_("referenceField", dict, p.size()),
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformDensityHydrostaticPressure/uniformDensityHydrostaticPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/uniformDensityHydrostaticPressure/uniformDensityHydrostaticPressureFvPatchScalarField.C
index 6eea5de3bc2723b1da79c6e2fecd464582ef4406..ba14325c6a35d7094923ef2a625d2dac5b90052f 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/uniformDensityHydrostaticPressure/uniformDensityHydrostaticPressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformDensityHydrostaticPressure/uniformDensityHydrostaticPressureFvPatchScalarField.C
@@ -54,7 +54,7 @@ uniformDensityHydrostaticPressureFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict, false),
     rho_(readScalar(dict.lookup("rho"))),
     pRefValue_(readScalar(dict.lookup("pRefValue"))),
     pRefPoint_(dict.lookup("pRefPoint"))
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedValue/uniformFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedValue/uniformFixedValueFvPatchField.C
index ab03ec6b0e1e7093face4fb7f2f0b0a50cba85a2..e79df9bec06d2dbccd0c3c7541ccb5ca0159ddfa 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedValue/uniformFixedValueFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedValue/uniformFixedValueFvPatchField.C
@@ -60,7 +60,7 @@ Foam::uniformFixedValueFvPatchField<Type>::uniformFixedValueFvPatchField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchField<Type>(p, iF),
+    fixedValueFvPatchField<Type>(p, iF, dict, false),
     uniformValue_(Function1<Type>::New("uniformValue", dict))
 {
     this->evaluate();
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformTotalPressure/uniformTotalPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/uniformTotalPressure/uniformTotalPressureFvPatchScalarField.C
index 744ac51b472f56e5ff9b5539986600eee8a213c5..0a37e65e809e328bc8525984af69c8377c324389 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/uniformTotalPressure/uniformTotalPressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformTotalPressure/uniformTotalPressureFvPatchScalarField.C
@@ -56,7 +56,7 @@ uniformTotalPressureFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict, false),
     UName_(dict.lookupOrDefault<word>("U", "U")),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.C
index f156caf7e844eaf2eca0d7c0ced8c58106043258..4b25603ce045c166af4b3ca3377e147b6f8b1efe 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.C
@@ -82,16 +82,11 @@ waveSurfacePressureFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     zetaName_(dict.lookupOrDefault<word>("zeta", "zeta")),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho"))
-{
-    fvPatchField<scalar>::operator=
-    (
-        scalarField("value", dict, p.size())
-    );
-}
+{}
 
 
 Foam::waveSurfacePressureFvPatchScalarField::
diff --git a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C
index a0726dd589183bc4b4362eaf55ac69a3a29dd07a..f44f574a7c142b73df2e648dc5e5c32755c786e7 100644
--- a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C
@@ -114,24 +114,23 @@ Foam::fvPatchField<Type>::fvPatchField
     manipulatedMatrix_(false),
     patchType_(dict.lookupOrDefault<word>("patchType", word::null))
 {
-    if (dict.found("value"))
+    if (valueRequired)
     {
-        Field<Type>::operator=
-        (
-            Field<Type>("value", dict, p.size())
-        );
-    }
-    else if (!valueRequired)
-    {
-        Field<Type>::operator=(Zero);
-    }
-    else
-    {
-        FatalIOErrorInFunction
-        (
-            dict
-        )   << "Essential entry 'value' missing"
-            << exit(FatalIOError);
+        if (dict.found("value"))
+        {
+            Field<Type>::operator=
+            (
+                Field<Type>("value", dict, p.size())
+            );
+        }
+        else
+        {
+            FatalIOErrorInFunction
+            (
+                dict
+            )   << "Essential entry 'value' missing"
+                << exit(FatalIOError);
+        }
     }
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H
index 3fc282dab7f395a399e11b60495e7199fe20dd57..1d689139b94505f8709fd4624ab53ec2f180d92e 100644
--- a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H
@@ -200,7 +200,7 @@ public:
             const fvPatch&,
             const DimensionedField<Type, volMesh>&,
             const dictionary&,
-            const bool valueRequired=false
+            const bool valueRequired=true
         );
 
         //- Construct by mapping the given fvPatchField onto a new patch
diff --git a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C
index fe2958a42ebbc601e97a0569bfc160c04e31af71..cab438a468f5326372e47c6532d8c15824df9cc6 100644
--- a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C
+++ b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -100,7 +100,13 @@ Foam::wallDist::wallDist(const fvMesh& mesh, const word& patchTypeName)
         static_cast<const fvSchemes&>(mesh).subDict(patchTypeName_ & "Dist")
        .lookupOrDefault<Switch>("nRequired", false)
     ),
-    n_(volVectorField::null())
+    n_(volVectorField::null()),
+    updateInterval_
+    (
+        static_cast<const fvSchemes&>(mesh).subDict(patchTypeName_ & "Dist")
+       .lookupOrDefault<label>("updateInterval", 1)
+    ),
+    requireUpdate_(true)
 {
     if (nRequired_)
     {
@@ -148,7 +154,13 @@ Foam::wallDist::wallDist
         static_cast<const fvSchemes&>(mesh).subDict(patchTypeName_ & "Dist")
        .lookupOrDefault<Switch>("nRequired", false)
     ),
-    n_(volVectorField::null())
+    n_(volVectorField::null()),
+    updateInterval_
+    (
+        static_cast<const fvSchemes&>(mesh).subDict(patchTypeName_ & "Dist")
+       .lookupOrDefault<label>("updateInterval", 1)
+    ),
+    requireUpdate_(true)
 {
     if (nRequired_)
     {
@@ -187,8 +199,21 @@ const Foam::volVectorField& Foam::wallDist::n() const
 
 bool Foam::wallDist::movePoints()
 {
-    if (pdm_->movePoints())
+    if
+    (
+        (updateInterval_ != 0)
+     && ((mesh_.time().timeIndex() % updateInterval_) == 0)
+    )
     {
+        requireUpdate_ = true;
+    }
+
+    if (requireUpdate_ && pdm_->movePoints())
+    {
+        DebugInfo<< "Updating wall distance" << endl;
+
+        requireUpdate_ = false;
+
         if (nRequired_)
         {
             return pdm_->correct(y_, n_.ref());
@@ -208,6 +233,12 @@ bool Foam::wallDist::movePoints()
 void Foam::wallDist::updateMesh(const mapPolyMesh& mpm)
 {
     pdm_->updateMesh(mpm);
+
+    // Force update if performing topology change
+    // Note: needed?
+    // - field would have been mapped, so if using updateInterval option (!= 1)
+    //   live with error associated of not updating and use mapped values?
+    requireUpdate_ = true;
     movePoints();
 }
 
diff --git a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.H b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.H
index 4aa5cffd7153434e8bac47a2360ab8e33e15ec9c..5d0aa325fd88993a948e385d0f6f6ea4e78cc771 100644
--- a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.H
+++ b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -37,6 +37,10 @@ Description
             // Optional entry enabling the calculation
             // of the normal-to-wall field
             nRequired false;
+
+            // Optional entry delaying wall distance update to every n steps
+            // Default is 1 (update every step)
+            updateInterval 5;
         }
     \endverbatim
 
@@ -90,6 +94,12 @@ class wallDist
         //- Normal-to-wall field
         mutable tmp<volVectorField> n_;
 
+        //- Update wall distance every updateInterval_ steps
+        const label updateInterval_;
+
+        //- Flag to indicate whether the wall distance requires updating
+        bool requireUpdate_;
+
 
     // Private Member Functions
 
diff --git a/src/finiteVolume/interpolation/interpolation/interpolationCellPoint/cellPointWeight/cellPointWeight.C b/src/finiteVolume/interpolation/interpolation/interpolationCellPoint/cellPointWeight/cellPointWeight.C
index e24093da4156d36ba79e0f34ff3e0ff63e4ff991..58c36623015c51c184e24f6757795475dbb84931 100644
--- a/src/finiteVolume/interpolation/interpolation/interpolationCellPoint/cellPointWeight/cellPointWeight.C
+++ b/src/finiteVolume/interpolation/interpolation/interpolationCellPoint/cellPointWeight/cellPointWeight.C
@@ -166,7 +166,7 @@ void Foam::cellPointWeight::findTriangle
     {
         const tetIndices& tetIs = faceTets[tetI];
 
-        List<scalar> triWeights(3);
+        FixedList<scalar, 3> triWeights;
 
         // Barycentric coordinates of the position
         scalar det = tetIs.faceTri(mesh).barycentric(position, triWeights);
@@ -234,7 +234,7 @@ void Foam::cellPointWeight::findTriangle
     // determinant is suitable.  If not, the return from barycentric
     // to triWeights is safe.
 
-    List<scalar> triWeights(3);
+    FixedList<scalar, 3> triWeights;
 
     tetIs.faceTri(mesh).barycentric(position, triWeights);
 
@@ -260,9 +260,7 @@ Foam::cellPointWeight::cellPointWeight
     const label facei
 )
 :
-    celli_(celli),
-    weights_(4),
-    faceVertices_(3)
+    celli_(celli)
 {
     if (facei < 0)
     {
diff --git a/src/finiteVolume/interpolation/interpolation/interpolationCellPoint/cellPointWeight/cellPointWeight.H b/src/finiteVolume/interpolation/interpolation/interpolationCellPoint/cellPointWeight/cellPointWeight.H
index 8bd162c1ce438624edcc13e84b84069363ba4ea0..6d1b14948b0b556a5da5f53d267e3c8732d9ad48 100644
--- a/src/finiteVolume/interpolation/interpolation/interpolationCellPoint/cellPointWeight/cellPointWeight.H
+++ b/src/finiteVolume/interpolation/interpolation/interpolationCellPoint/cellPointWeight/cellPointWeight.H
@@ -58,10 +58,10 @@ protected:
        const label celli_;
 
        //- Weights applied to tet vertices
-       List<scalar> weights_;
+       FixedList<scalar, 4> weights_;
 
        //- Face vertex indices
-       List<label> faceVertices_;
+       FixedList<label, 3> faceVertices_;
 
 
     // Protected Member Functions
@@ -112,13 +112,13 @@ public:
         }
 
         //- Interpolation weights
-        inline const List<scalar>& weights() const
+        inline const FixedList<scalar, 4>& weights() const
         {
             return weights_;
         }
 
         //- Interpolation addressing for points on face
-        inline const List<label>& faceVertices() const
+        inline const FixedList<label, 3>& faceVertices() const
         {
             return faceVertices_;
         }
diff --git a/src/finiteVolume/interpolation/interpolation/interpolationCellPoint/interpolationCellPointI.H b/src/finiteVolume/interpolation/interpolation/interpolationCellPoint/interpolationCellPointI.H
index dfd3a3b99b12e50639098c9c829e1f400c56aaca..8cfa3947c8cfe76e0d14953e8d2fe1c4c5f22611 100644
--- a/src/finiteVolume/interpolation/interpolation/interpolationCellPoint/interpolationCellPointI.H
+++ b/src/finiteVolume/interpolation/interpolation/interpolationCellPoint/interpolationCellPointI.H
@@ -31,8 +31,8 @@ inline Type Foam::interpolationCellPoint<Type>::interpolate
     const cellPointWeight& cpw
 ) const
 {
-    const List<scalar>& weights = cpw.weights();
-    const List<label>& faceVertices = cpw.faceVertices();
+    const FixedList<scalar, 4>& weights = cpw.weights();
+    const FixedList<label, 3>& faceVertices = cpw.faceVertices();
 
     Type t = this->psi_[cpw.cell()]*weights[0];
     t += psip_[faceVertices[0]]*weights[1];
@@ -79,7 +79,7 @@ inline Type Foam::interpolationCellPoint<Type>::interpolate
         }
     }
 
-    List<scalar> weights;
+    FixedList<scalar, 4> weights;
 
     tetIs.tet(this->pMesh_).barycentric(position, weights);
 
diff --git a/src/finiteVolume/interpolation/interpolation/interpolationCellPointWallModified/interpolationCellPointWallModifiedI.H b/src/finiteVolume/interpolation/interpolation/interpolationCellPointWallModified/interpolationCellPointWallModifiedI.H
index d1861134796de710cfc9d991a085c39d160306e7..803c7a440a050570ecc42e6b745a0ff50e4e5fcb 100644
--- a/src/finiteVolume/interpolation/interpolation/interpolationCellPointWallModified/interpolationCellPointWallModifiedI.H
+++ b/src/finiteVolume/interpolation/interpolation/interpolationCellPointWallModified/interpolationCellPointWallModifiedI.H
@@ -31,8 +31,8 @@ inline Type Foam::interpolationCellPointWallModified<Type>::interpolate
     const cellPointWeightWallModified& cpw
 ) const
 {
-    const List<scalar>& weights = cpw.weights();
-    const List<label>& faceVertices = cpw.faceVertices();
+    const FixedList<scalar, 4>& weights = cpw.weights();
+    const FixedList<label, 3>& faceVertices = cpw.faceVertices();
 
     Type t = this->psi_[cpw.cell()]*weights[0];
     t += this->psip_[faceVertices[0]]*weights[1];
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2.H
index 4b36d81b9708bd4dccdcde8fe69a5ce814c94abc..de625085cdfb9290b4bb76ed9d716ea4ff9672ab 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2.H
@@ -54,7 +54,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                     Class filteredLinear2Limiter Declaration
+                   Class filteredLinear2Limiter Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class LimiterFunc>
@@ -64,7 +64,7 @@ class filteredLinear2Limiter
 {
     // Private data
 
-        // Scaling corefficient for the gradient ratio,
+        // Scaling coefficient for the gradient ratio,
         // 0 = linear
         // 1 = fully limited
         scalar k_;
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearUpwind/linearUpwind.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearUpwind/linearUpwind.C
index 9cc8cf488c6c3d41f92670e8be66191459b8fbeb..f6e89172c5195b38d6c9d6625fdbc3bea3b5d717 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearUpwind/linearUpwind.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearUpwind/linearUpwind.C
@@ -65,47 +65,150 @@ Foam::linearUpwind<Type>::correction
     const volVectorField& C = mesh.C();
     const surfaceVectorField& Cf = mesh.Cf();
 
-    tmp
-    <
-        GeometricField
-        <
-            typename outerProduct<vector, Type>::type,
-            fvPatchField,
-            volMesh
-        >
-    > tgradVf = gradScheme_().grad(vf, gradSchemeName_);
-
-    const GeometricField
-    <
-        typename outerProduct<vector, Type>::type,
-        fvPatchField,
-        volMesh
-    >& gradVf = tgradVf();
+    tmp<fv::gradScheme<scalar>> gradScheme_
+    (
+        fv::gradScheme<scalar>::New
+        (
+            mesh,
+            mesh.gradScheme(gradSchemeName_)
+        )
+    );
+
+    for (direction cmpt = 0; cmpt < pTraits<Type>::nComponents; cmpt++)
+    {
+        tmp<volVectorField> tgradVf =
+            gradScheme_().grad(vf.component(cmpt), gradSchemeName_);
+
+        const volVectorField& gradVf = tgradVf();
+
+        forAll(faceFlux, facei)
+        {
+            const label celli =
+                (faceFlux[facei] > 0) ? owner[facei] : neighbour[facei];
+
+            setComponent(sfCorr[facei], cmpt) =
+                (Cf[facei] - C[celli]) & gradVf[celli];
+        }
+
+        typename GeometricField<Type, fvsPatchField, surfaceMesh>::
+            Boundary& bSfCorr = sfCorr.boundaryFieldRef();
+
+        forAll(bSfCorr, patchi)
+        {
+            fvsPatchField<Type>& pSfCorr = bSfCorr[patchi];
+
+            if (pSfCorr.coupled())
+            {
+                const labelUList& pOwner = mesh.boundary()[patchi].faceCells();
+                const vectorField& pCf = Cf.boundaryField()[patchi];
+                const scalarField& pFaceFlux = faceFlux.boundaryField()[patchi];
+
+                const vectorField pGradVfNei
+                (
+                    gradVf.boundaryField()[patchi].patchNeighbourField()
+                );
+
+                // Build the d-vectors
+                const vectorField pd
+                (
+                    Cf.boundaryField()[patchi].patch().delta()
+                );
+
+                forAll(pOwner, facei)
+                {
+                    label own = pOwner[facei];
+
+                    if (pFaceFlux[facei] > 0)
+                    {
+                        setComponent(pSfCorr[facei], cmpt) =
+                            (pCf[facei] - C[own])
+                          & gradVf[own];
+                    }
+                    else
+                    {
+                        setComponent(pSfCorr[facei], cmpt) =
+                            (pCf[facei] - pd[facei] - C[own])
+                          & pGradVfNei[facei];
+                    }
+                }
+            }
+        }
+    }
+
+    return tsfCorr;
+}
+
+
+template<>
+Foam::tmp<Foam::surfaceVectorField>
+Foam::linearUpwind<Foam::vector>::correction
+(
+    const volVectorField& vf
+) const
+{
+    const fvMesh& mesh = this->mesh();
+
+    tmp<surfaceVectorField> tsfCorr
+    (
+        new surfaceVectorField
+        (
+            IOobject
+            (
+                "linearUpwind::correction(" + vf.name() + ')',
+                mesh.time().timeName(),
+                mesh,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            ),
+            mesh,
+            dimensioned<vector>(vf.name(), vf.dimensions(), Zero)
+        )
+    );
+
+    surfaceVectorField& sfCorr = tsfCorr.ref();
+
+    const surfaceScalarField& faceFlux = this->faceFlux_;
+
+    const labelList& owner = mesh.owner();
+    const labelList& neighbour = mesh.neighbour();
+
+    const volVectorField& C = mesh.C();
+    const surfaceVectorField& Cf = mesh.Cf();
+
+    tmp<fv::gradScheme<vector>> gradScheme_
+    (
+        fv::gradScheme<vector>::New
+        (
+            mesh,
+            mesh.gradScheme(gradSchemeName_)
+        )
+    );
+
+    tmp<volTensorField> tgradVf = gradScheme_().grad(vf, gradSchemeName_);
+    const volTensorField& gradVf = tgradVf();
 
     forAll(faceFlux, facei)
     {
-        label celli = (faceFlux[facei] > 0) ? owner[facei] : neighbour[facei];
+        const label celli =
+            (faceFlux[facei] > 0) ? owner[facei] : neighbour[facei];
         sfCorr[facei] = (Cf[facei] - C[celli]) & gradVf[celli];
     }
 
 
-    typename GeometricField<Type, fvsPatchField, surfaceMesh>::
-        Boundary& bSfCorr = sfCorr.boundaryFieldRef();
+    typename surfaceVectorField::Boundary& bSfCorr = sfCorr.boundaryFieldRef();
 
     forAll(bSfCorr, patchi)
     {
-        fvsPatchField<Type>& pSfCorr = bSfCorr[patchi];
+        fvsPatchVectorField& pSfCorr = bSfCorr[patchi];
 
         if (pSfCorr.coupled())
         {
-            const labelUList& pOwner =
-                mesh.boundary()[patchi].faceCells();
-
+            const labelUList& pOwner = mesh.boundary()[patchi].faceCells();
             const vectorField& pCf = Cf.boundaryField()[patchi];
-
             const scalarField& pFaceFlux = faceFlux.boundaryField()[patchi];
 
-            const Field<typename outerProduct<vector, Type>::type> pGradVfNei
+            const tensorField pGradVfNei
             (
                 gradVf.boundaryField()[patchi].patchNeighbourField()
             );
@@ -136,9 +239,7 @@ Foam::linearUpwind<Type>::correction
 
 namespace Foam
 {
-    //makelimitedSurfaceInterpolationScheme(linearUpwind)
-    makelimitedSurfaceInterpolationTypeScheme(linearUpwind, scalar)
-    makelimitedSurfaceInterpolationTypeScheme(linearUpwind, vector)
+    makelimitedSurfaceInterpolationScheme(linearUpwind)
 }
 
 // ************************************************************************* //
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearUpwind/linearUpwind.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearUpwind/linearUpwind.H
index d9f1102484edb07b84238469a41387b096dbab40..9d73a61b032f6c3fbd6c16017b96c7f49032a473 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearUpwind/linearUpwind.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearUpwind/linearUpwind.H
@@ -60,7 +60,6 @@ class linearUpwind
     // Private Data
 
         word gradSchemeName_;
-        tmp<fv::gradScheme<Type>> gradScheme_;
 
 
     // Private Member Functions
@@ -88,11 +87,7 @@ public:
         )
         :
             upwind<Type>(mesh, faceFlux),
-            gradSchemeName_("grad"),
-            gradScheme_
-            (
-                new fv::gaussGrad<Type>(mesh)
-            )
+            gradSchemeName_("grad")
         {}
 
         //- Construct from Istream.
@@ -105,15 +100,7 @@ public:
         )
         :
             upwind<Type>(mesh, schemeData),
-            gradSchemeName_(schemeData),
-            gradScheme_
-            (
-                fv::gradScheme<Type>::New
-                (
-                    mesh,
-                    mesh.gradScheme(gradSchemeName_)
-                )
-            )
+            gradSchemeName_(schemeData)
         {}
 
         //- Construct from faceFlux and Istream
@@ -125,15 +112,7 @@ public:
         )
         :
             upwind<Type>(mesh, faceFlux, schemeData),
-            gradSchemeName_(schemeData),
-            gradScheme_
-            (
-                fv::gradScheme<Type>::New
-                (
-                    mesh,
-                    mesh.gradScheme(gradSchemeName_)
-                )
-            )
+            gradSchemeName_(schemeData)
         {}
 
 
@@ -151,10 +130,17 @@ public:
         (
             const GeometricField<Type, fvPatchField, volMesh>&
         ) const;
-
 };
 
 
+// Specialize for volVectorField to support cached gradients
+template<>
+tmp<surfaceVectorField> linearUpwind<vector>::correction
+(
+    const volVectorField& vf
+) const;
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/functionObjects/field/DESModelRegions/DESModelRegions.C b/src/functionObjects/field/DESModelRegions/DESModelRegions.C
index 87a3e1fb58732fd8d0e8e7e3f3edf85526c7c477..360af5136c96772e9940329f47b0d1cd8a5d0e04 100644
--- a/src/functionObjects/field/DESModelRegions/DESModelRegions.C
+++ b/src/functionObjects/field/DESModelRegions/DESModelRegions.C
@@ -110,6 +110,7 @@ Foam::functionObjects::DESModelRegions::~DESModelRegions()
 
 bool Foam::functionObjects::DESModelRegions::read(const dictionary& dict)
 {
+    fvMeshFunctionObject::read(dict);
     writeFile::read(dict);
 
     dict.readIfPresent("resultName", resultName_);
diff --git a/src/functionObjects/field/Make/files b/src/functionObjects/field/Make/files
index 2a4fab2de85385959df5f06b87afc993245569a5..e8e4f79e4ea2dd00d83b3cf530d7bec97f780126 100644
--- a/src/functionObjects/field/Make/files
+++ b/src/functionObjects/field/Make/files
@@ -72,4 +72,7 @@ externalCoupled/externalCoupled.C
 externalCoupled/externalCoupledMixed/externalCoupledMixedFvPatchFields.C
 externalCoupled/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.C
 
+ddt2/ddt2.C
+zeroGradient/zeroGradient.C
+
 LIB = $(FOAM_LIBBIN)/libfieldFunctionObjects
diff --git a/src/functionObjects/field/PecletNo/PecletNo.C b/src/functionObjects/field/PecletNo/PecletNo.C
index 1dd4c91764e4732dbf984d6f6102ce71977fb60b..da4018b54b3aa19be1dcb4ccc7e44cc55693a26c 100644
--- a/src/functionObjects/field/PecletNo/PecletNo.C
+++ b/src/functionObjects/field/PecletNo/PecletNo.C
@@ -144,6 +144,7 @@ Foam::functionObjects::PecletNo::PecletNo
     rhoName_("rho")
 {
     setResultName("Pe", "phi");
+    read(dict);
 }
 
 
diff --git a/src/functionObjects/field/Q/Q.H b/src/functionObjects/field/Q/Q.H
index 586fd13d12d6d23351c38fca13699970a33b1f78..a40e71f758aed04daaa24b9935e92eab2af7ba24 100644
--- a/src/functionObjects/field/Q/Q.H
+++ b/src/functionObjects/field/Q/Q.H
@@ -46,7 +46,7 @@ Usage
     Q1
     {
         type        Q;
-        functionObjectLibs ("libutilityFunctionObjects.so");
+        libs        ("libutilityFunctionObjects.so");
         ...
     }
     \endverbatim
diff --git a/src/functionObjects/field/XiReactionRate/XiReactionRate.C b/src/functionObjects/field/XiReactionRate/XiReactionRate.C
index 2f6febfb54580f63d69e3a22da4113c7f1af7208..ff67a59f686090ee18cc0f22ba9b20446416a741 100644
--- a/src/functionObjects/field/XiReactionRate/XiReactionRate.C
+++ b/src/functionObjects/field/XiReactionRate/XiReactionRate.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -63,6 +63,12 @@ Foam::functionObjects::XiReactionRate::~XiReactionRate()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+bool Foam::functionObjects::XiReactionRate::read(const dictionary& dict)
+{
+    return fvMeshFunctionObject::read(dict);
+}
+
+
 bool Foam::functionObjects::XiReactionRate::execute()
 {
     return true;
diff --git a/src/functionObjects/field/XiReactionRate/XiReactionRate.H b/src/functionObjects/field/XiReactionRate/XiReactionRate.H
index e699b1090ef80a86d5d28d1aa19ea410a219a830..0d25ed3be7b39cea4f7c0c844a059b57bc4bcc1b 100644
--- a/src/functionObjects/field/XiReactionRate/XiReactionRate.H
+++ b/src/functionObjects/field/XiReactionRate/XiReactionRate.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -107,10 +107,13 @@ public:
 
     // Member Functions
 
+        //- Read the reaction rate data
+        virtual bool read(const dictionary&);
+
         //- Do nothing
         virtual bool execute();
 
-        //- Write the cell-centre fields
+        //- Write the reaction rate fields
         virtual bool write();
 };
 
diff --git a/src/functionObjects/field/components/components.C b/src/functionObjects/field/components/components.C
index 7ed53909f189e207c688abbff4d978480376d751..ef45328f3262f1f36f6a141b91b410162a5a2463 100644
--- a/src/functionObjects/field/components/components.C
+++ b/src/functionObjects/field/components/components.C
@@ -63,9 +63,7 @@ Foam::functionObjects::components::components
 )
 :
     fieldExpression(name, runTime, dict)
-{
-    read(dict);
-}
+{}
 
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
diff --git a/src/functionObjects/field/ddt2/ddt2.C b/src/functionObjects/field/ddt2/ddt2.C
new file mode 100644
index 0000000000000000000000000000000000000000..12d6d2b67ade02b633b23d9f22d4e75c509f4532
--- /dev/null
+++ b/src/functionObjects/field/ddt2/ddt2.C
@@ -0,0 +1,268 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "ddt2.H"
+
+#include "volFields.H"
+#include "dictionary.H"
+#include "steadyStateDdtScheme.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace functionObjects
+{
+    defineTypeNameAndDebug(ddt2, 0);
+
+    addToRunTimeSelectionTable
+    (
+        functionObject,
+        ddt2,
+        dictionary
+    );
+}
+}
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+bool Foam::functionObjects::ddt2::checkFormatName(const word& str)
+{
+    if (str.find("@@") == string::npos)
+    {
+        WarningInFunction
+            << "Bad result naming "
+            << "(no '@@' token found), deactivating."
+            << nl << endl;
+
+        return false;
+    }
+    else if (str == "@@")
+    {
+        WarningInFunction
+            << "Bad result naming "
+            << "(only a '@@' token found), deactivating."
+            << nl
+            << endl;
+
+        return false;
+    }
+    else
+    {
+        return true;
+    }
+}
+
+
+void Foam::functionObjects::ddt2::uniqWords(wordReList& lst)
+{
+    boolList retain(lst.size());
+    wordHashSet uniq;
+    forAll(lst, i)
+    {
+        const wordRe& select = lst[i];
+
+        retain[i] =
+        (
+            select.isPattern()
+         || uniq.insert(static_cast<const word&>(select))
+        );
+    }
+
+    inplaceSubset(retain, lst);
+}
+
+
+bool Foam::functionObjects::ddt2::accept(const word& fieldName) const
+{
+    // check input vs possible result names
+    // to avoid circular calculations
+    return !blacklist_.match(fieldName);
+}
+
+
+int Foam::functionObjects::ddt2::process(const word& fieldName)
+{
+    if (!accept(fieldName))
+    {
+        return -1;
+    }
+
+    int state = 0;
+
+    apply<volScalarField>(fieldName, state);
+    apply<volVectorField>(fieldName, state);
+
+    return state;
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::functionObjects::ddt2::ddt2
+(
+    const word& name,
+    const Time& runTime,
+    const dictionary& dict
+)
+:
+    fvMeshFunctionObject(name, runTime, dict),
+    selectFields_(),
+    resultName_(word::null),
+    blacklist_(),
+    results_(),
+    mag_(dict.lookupOrDefault<Switch>("mag", false))
+{
+    read(dict);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::functionObjects::ddt2::~ddt2()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+bool Foam::functionObjects::ddt2::read(const dictionary& dict)
+{
+    fvMeshFunctionObject::read(dict);
+
+    if (word(mesh_.ddtScheme("default")) == "steadyState")
+    {
+        WarningInFunction
+            << typeName << " function object not appropriate for steady-state"
+            << endl;
+        return false;
+    }
+
+    fvMeshFunctionObject::read(dict);
+
+    dict.lookup("fields") >> selectFields_;
+    uniqWords(selectFields_);
+
+    resultName_ = dict.lookupOrDefault<word>
+    (
+        "result",
+        ( mag_ ? "mag(ddt(@@))" : "magSqr(ddt(@@))" )
+    );
+
+    if (checkFormatName(resultName_))
+    {
+        blacklist_.set
+        (
+            string::quotemeta<regExp>
+            (
+                resultName_
+            ).replace("@@", "(.+)")
+        );
+
+        return true;
+    }
+    else
+    {
+        blacklist_.clear();
+        return false;
+    }
+}
+
+
+bool Foam::functionObjects::ddt2::execute()
+{
+    results_.clear();
+
+    wordHashSet candidates = subsetStrings(selectFields_, mesh_.names());
+    DynamicList<word> missing(selectFields_.size());
+    DynamicList<word> ignored(selectFields_.size());
+
+    // check exact matches first
+    forAll(selectFields_, i)
+    {
+        const wordRe& select = selectFields_[i];
+        if (!select.isPattern())
+        {
+            const word& fieldName = static_cast<const word&>(select);
+
+            if (!candidates.erase(fieldName))
+            {
+                missing.append(fieldName);
+            }
+            else if (process(fieldName) < 1)
+            {
+                ignored.append(fieldName);
+            }
+        }
+    }
+
+    forAllConstIter(wordHashSet, candidates, iter)
+    {
+        process(iter.key());
+    }
+
+    if (missing.size())
+    {
+        WarningInFunction
+            << "Missing field " << missing << endl;
+    }
+    if (ignored.size())
+    {
+        WarningInFunction
+            << "Unprocessed field " << ignored << endl;
+    }
+
+    return true;
+}
+
+
+bool Foam::functionObjects::ddt2::write()
+{
+    if (results_.size())
+    {
+        Log << type() << ' ' << name() << " write:" << endl;
+    }
+
+    // Consistent output order
+    const wordList outputList = results_.sortedToc();
+    forAll(outputList, i)
+    {
+        const word& fieldName = outputList[i];
+
+        if (foundObject<regIOobject>(fieldName))
+        {
+            const regIOobject& io = lookupObject<regIOobject>(fieldName);
+
+            Log << "    " << fieldName << endl;
+
+            io.write();
+        }
+    }
+
+    return true;
+}
+
+
+// ************************************************************************* //
diff --git a/src/functionObjects/field/ddt2/ddt2.H b/src/functionObjects/field/ddt2/ddt2.H
new file mode 100644
index 0000000000000000000000000000000000000000..0f4b69bea34188ad80e1f9383af379eb745c572a
--- /dev/null
+++ b/src/functionObjects/field/ddt2/ddt2.H
@@ -0,0 +1,197 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::ddt2
+
+Group
+    grpFVFunctionObjects
+
+Description
+    This function object calculates the magnitude squared
+    of d(scalarField)/dt.
+
+    The result can be used further for determining variance or RMS values
+    (for example).
+
+    Example of function object specification:
+    \verbatim
+    dpdt2
+    {
+        type        ddt2;
+        libs        ("libfieldFunctionObjects.so");
+        fields      (p);
+        result      d@@dt2;
+        ...
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property | Description                | Required  | Default value
+        type     | type name: ddt2            | yes       |
+        fields   | Name of fields to process  | yes       |
+        result   | Name of results            | no        | magSqr(ddt(@@))
+        log      | Log to standard output     | no        | yes
+        mag      | Use 'mag' instead of 'magSqr' | no     | false
+    \endtable
+
+    Note that the optional 'mag' entry cannot be changed during the simulation
+    since it alters the dimensions of the output field.
+
+    A list of fields can contain exact names or regular expressions.
+    The token '\@\@' in the result name is replaced by the name of the source
+    field.
+
+    The function object will skip over fields that appear to have
+    already been processed (ie, their names are similar to the output names).
+
+SourceFiles
+    ddt2.C
+    ddt2Templates.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef functionObjects_ddt2_H
+#define functionObjects_ddt2_H
+
+#include "fvMeshFunctionObject.H"
+#include "volFieldsFwd.H"
+#include "OFstream.H"
+#include "wordReList.H"
+#include "regExp.H"
+#include "HashSet.H"
+#include "Switch.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace functionObjects
+{
+
+/*---------------------------------------------------------------------------*\
+                            Class ddt2 Declaration
+\*---------------------------------------------------------------------------*/
+
+class ddt2
+:
+    public fvMeshFunctionObject
+{
+    // Private data
+
+        //- Name of fields to process
+        wordReList selectFields_;
+
+        //- Formatting for the result fields.
+        word resultName_;
+
+        //- Avoid processing the same field twice.
+        mutable regExp blacklist_;
+
+        //- Hashed names of result fields.
+        wordHashSet results_;
+
+        //- Use 'mag' instead of 'magSqr'.
+        //  Cannot be adjusted during the simulation since it alters the
+        //  dimensions of the output field.
+        const Switch mag_;
+
+
+    // Private Member Functions
+
+        //- Check that the word contains the appropriate substitution token(s).
+        static bool checkFormatName(const word&);
+
+        //- Eliminate duplicate 'word' entries
+        static void uniqWords(wordReList&);
+
+
+        //- Accept unless field name appears to have already been processed
+        bool accept(const word& fieldName) const;
+
+        //- Apply for the volume field type
+        template<class FieldType>
+        int apply(const word& inputName, int& state);
+
+        //- Process by trying to apply for various volume field types.
+        int process(const word& inputName);
+
+
+        //- Disallow default bitwise copy construct
+        ddt2(const ddt2&) = delete;
+
+        //- Disallow default bitwise assignment
+        void operator=(const ddt2&) = delete;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("ddt2");
+
+
+    // Constructors
+
+        //- Construct from Time and dictionary
+        ddt2
+        (
+            const word& name,
+            const Time& runTime,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~ddt2();
+
+
+    // Member Functions
+
+        //- Read the ddt2 specification
+        virtual bool read(const dictionary&);
+
+        //- Calculate the ddt2 fields
+        virtual bool execute();
+
+        //- Write the ddt fields
+        virtual bool write();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace functionObjects
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "ddt2Templates.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/functionObjects/field/ddt2/ddt2Templates.C b/src/functionObjects/field/ddt2/ddt2Templates.C
new file mode 100644
index 0000000000000000000000000000000000000000..3514dbe3b64d7574ff0806bd476686941b797678
--- /dev/null
+++ b/src/functionObjects/field/ddt2/ddt2Templates.C
@@ -0,0 +1,103 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "Time.H"
+#include "dimensionedType.H"
+#include "fvcDdt.H"
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+template<class FieldType>
+int Foam::functionObjects::ddt2::apply(const word& inputName, int& state)
+{
+    // State: return 0 (not-processed), -1 (skip), +1 ok
+
+    // Already done, or not available
+    if (state || !foundObject<FieldType>(inputName))
+    {
+        return state;
+    }
+
+    const FieldType& input = lookupObject<FieldType>(inputName);
+
+    word outputName(resultName_);
+    outputName.replace("@@", inputName);
+
+    results_.set(outputName);
+
+    if (!foundObject<volScalarField>(outputName))
+    {
+        tmp<volScalarField> tddt2
+        (
+            new volScalarField
+            (
+                IOobject
+                (
+                    outputName,
+                    time_.timeName(),
+                    mesh_,
+                    IOobject::NO_READ,
+                    IOobject::NO_WRITE
+                ),
+                mesh_,
+                dimensionedScalar
+                (
+                    "0",
+                    (
+                        mag_
+                      ? mag(input.dimensions()/dimTime)
+                      : magSqr(input.dimensions()/dimTime)
+                    ),
+                    Zero
+                )
+            )
+        );
+
+        store(outputName, tddt2);
+    }
+
+    volScalarField& output =
+        const_cast<volScalarField&>(lookupObject<volScalarField>(outputName));
+
+    if (mag_)
+    {
+        output = mag(fvc::ddt(input));
+    }
+    else
+    {
+        output = magSqr(fvc::ddt(input));
+    }
+
+    // Could add additional statistics here
+    Log << type() << ' ' << name()
+        << " field " << outputName
+        << " average: " << gAverage(output) << endl;
+
+    state = +1;
+    return state;
+}
+
+
+// ************************************************************************* //
diff --git a/src/functionObjects/field/externalCoupled/externalCoupled.C b/src/functionObjects/field/externalCoupled/externalCoupled.C
index 6828d13e1399dcc7e35367fefef438dc8c512aef..727aa595f5d2302cc6a2cb7e05c56c2b15b1f758 100644
--- a/src/functionObjects/field/externalCoupled/externalCoupled.C
+++ b/src/functionObjects/field/externalCoupled/externalCoupled.C
@@ -135,19 +135,19 @@ void Foam::functionObjects::externalCoupled::removeReadFiles() const
 
     Log << type() << ": removing all read files" << endl;
 
-    forAll(regionGroupNames_, regionI)
+    forAll(regionGroupNames_, regioni)
     {
-        const word& compName = regionGroupNames_[regionI];
+        const word& compName = regionGroupNames_[regioni];
 
         const labelList& groups = regionToGroups_[compName];
         forAll(groups, i)
         {
-            label groupI = groups[i];
-            const wordRe& groupName = groupNames_[groupI];
+            label groupi = groups[i];
+            const wordRe& groupName = groupNames_[groupi];
 
-            forAll(groupReadFields_[groupI], fieldI)
+            forAll(groupReadFields_[groupi], fieldi)
             {
-                const word& fieldName = groupReadFields_[groupI][fieldI];
+                const word& fieldName = groupReadFields_[groupi][fieldi];
                 rm
                 (
                     groupDir(commsDir_, compName, groupName)
@@ -168,19 +168,19 @@ void Foam::functionObjects::externalCoupled::removeWriteFiles() const
 
     Log << type() << ": removing all write files" << endl;
 
-    forAll(regionGroupNames_, regionI)
+    forAll(regionGroupNames_, regioni)
     {
-        const word& compName = regionGroupNames_[regionI];
+        const word& compName = regionGroupNames_[regioni];
 
         const labelList& groups = regionToGroups_[compName];
         forAll(groups, i)
         {
-            label groupI = groups[i];
-            const wordRe& groupName = groupNames_[groupI];
+            label groupi = groups[i];
+            const wordRe& groupName = groupNames_[groupi];
 
-            forAll(groupReadFields_[groupI], fieldI)
+            forAll(groupReadFields_[groupi], fieldi)
             {
-                const word& fieldName = groupReadFields_[groupI][fieldI];
+                const word& fieldName = groupReadFields_[groupi][fieldi];
                 rm
                 (
                     groupDir(commsDir_, compName, groupName)
@@ -252,20 +252,20 @@ void Foam::functionObjects::externalCoupled::readColumns
 
         // Read data from file and send to destination processor
 
-        for (label procI = 0; procI < Pstream::nProcs(); procI++)
+        for (label proci = 0; proci < Pstream::nProcs(); proci++)
         {
             // Temporary storage
             List<scalarField> values(nColumns);
 
-            // Number of rows to read for processor procI
-            label procNRows = globalFaces.localSize(procI);
+            // Number of rows to read for processor proci
+            label procNRows = globalFaces.localSize(proci);
 
-            forAll(values, columnI)
+            forAll(values, columni)
             {
-                values[columnI].setSize(procNRows);
+                values[columni].setSize(procNRows);
             }
 
-            for (label rowI = 0; rowI < procNRows; rowI++)
+            for (label rowi = 0; rowi < procNRows; rowi++)
             {
                 // Get a line
                 do
@@ -273,8 +273,8 @@ void Foam::functionObjects::externalCoupled::readColumns
                     if (!masterFilePtr().good())
                     {
                         FatalIOErrorInFunction(masterFilePtr())
-                            << "Trying to read data for processor " << procI
-                            << " row " << rowI
+                            << "Trying to read data for processor " << proci
+                            << " row " << rowi
                             << ". Does your file have as many rows as there are"
                             << " patch faces (" << globalFaces.size()
                             << ") ?" << exit(FatalIOError);
@@ -285,14 +285,14 @@ void Foam::functionObjects::externalCoupled::readColumns
 
                 IStringStream lineStr(line);
 
-                for (label columnI = 0; columnI < nColumns; columnI++)
+                for (label columni = 0; columni < nColumns; columni++)
                 {
-                    lineStr >> values[columnI][rowI];
+                    lineStr >> values[columni][rowi];
                 }
             }
 
-            // Send to procI
-            UOPstream str(procI, pBufs);
+            // Send to proci
+            UOPstream str(proci, pBufs);
             str << values;
         }
     }
@@ -322,14 +322,14 @@ void Foam::functionObjects::externalCoupled::readLines
 
         // Read line from file and send to destination processor
 
-        for (label procI = 0; procI < Pstream::nProcs(); procI++)
+        for (label proci = 0; proci < Pstream::nProcs(); proci++)
         {
-            // Number of rows to read for processor procI
-            label procNRows = globalFaces.localSize(procI);
+            // Number of rows to read for processor proci
+            label procNRows = globalFaces.localSize(proci);
 
-            UOPstream toProc(procI, pBufs);
+            UOPstream toProc(proci, pBufs);
 
-            for (label rowI = 0; rowI < procNRows; rowI++)
+            for (label rowi = 0; rowi < procNRows; rowi++)
             {
                 // Get a line
                 do
@@ -337,8 +337,8 @@ void Foam::functionObjects::externalCoupled::readLines
                     if (!masterFilePtr().good())
                     {
                         FatalIOErrorInFunction(masterFilePtr())
-                            << "Trying to read data for processor " << procI
-                            << " row " << rowI
+                            << "Trying to read data for processor " << proci
+                            << " row " << rowi
                             << ". Does your file have as many rows as there are"
                             << " patch faces (" << globalFaces.size()
                             << ") ?" << exit(FatalIOError);
@@ -358,7 +358,7 @@ void Foam::functionObjects::externalCoupled::readLines
 
     // Read lines from PstreamBuffers
     UIPstream str(Pstream::masterNo(), pBufs);
-    for (label rowI = 0; rowI < nRows; rowI++)
+    for (label rowi = 0; rowi < nRows; rowi++)
     {
         string line(str);
         lines << line.c_str() << nl;
@@ -399,9 +399,9 @@ void Foam::functionObjects::externalCoupled::writeGeometry
     DynamicList<face> allMeshesFaces;
     DynamicField<point> allMeshesPoints;
 
-    forAll(meshes, meshI)
+    forAll(meshes, meshi)
     {
-        const fvMesh& mesh = meshes[meshI];
+        const fvMesh& mesh = meshes[meshi];
         const polyBoundaryMesh& pbm = mesh.boundaryMesh();
 
         const labelList patchIDs
@@ -422,9 +422,9 @@ void Foam::functionObjects::externalCoupled::writeGeometry
         {
             const polyPatch& p = pbm[patchIDs[i]];
 
-            forAll(p, pI)
+            forAll(p, pi)
             {
-                allFaceIDs.append(p.start()+pI);
+                allFaceIDs.append(p.start()+pi);
             }
         }
 
@@ -445,18 +445,18 @@ void Foam::functionObjects::externalCoupled::writeGeometry
             uniquePointIDs
         );
 
-        label procI = Pstream::myProcNo();
+        label proci = Pstream::myProcNo();
 
         List<pointField> collectedPoints(Pstream::nProcs());
-        collectedPoints[procI] = pointField(mesh.points(), uniquePointIDs);
+        collectedPoints[proci] = pointField(mesh.points(), uniquePointIDs);
         Pstream::gatherList(collectedPoints);
 
         List<faceList> collectedFaces(Pstream::nProcs());
-        faceList& patchFaces = collectedFaces[procI];
+        faceList& patchFaces = collectedFaces[proci];
         patchFaces = allPatch.localFaces();
-        forAll(patchFaces, faceI)
+        forAll(patchFaces, facei)
         {
-            inplaceRenumber(pointToGlobal, patchFaces[faceI]);
+            inplaceRenumber(pointToGlobal, patchFaces[facei]);
         }
         Pstream::gatherList(collectedFaces);
 
@@ -465,19 +465,19 @@ void Foam::functionObjects::externalCoupled::writeGeometry
             // Append and renumber
             label nPoints = allMeshesPoints.size();
 
-            forAll(collectedPoints, procI)
+            forAll(collectedPoints, proci)
             {
-                allMeshesPoints.append(collectedPoints[procI]);
+                allMeshesPoints.append(collectedPoints[proci]);
 
             }
             face newFace;
-            forAll(collectedFaces, procI)
+            forAll(collectedFaces, proci)
             {
-                const faceList& procFaces = collectedFaces[procI];
+                const faceList& procFaces = collectedFaces[proci];
 
-                forAll(procFaces, faceI)
+                forAll(procFaces, facei)
                 {
-                    const face& f = procFaces[faceI];
+                    const face& f = procFaces[facei];
 
                     newFace.setSize(f.size());
                     forAll(f, fp)
@@ -487,7 +487,7 @@ void Foam::functionObjects::externalCoupled::writeGeometry
                     allMeshesFaces.append(newFace);
                 }
 
-                nPoints += collectedPoints[procI].size();
+                nPoints += collectedPoints[proci].size();
             }
         }
 
@@ -573,10 +573,10 @@ void Foam::functionObjects::externalCoupled::checkOrder
 
 void Foam::functionObjects::externalCoupled::readData()
 {
-    forAll(regionGroupNames_, regionI)
+    forAll(regionGroupNames_, regioni)
     {
-        const word& compName = regionGroupNames_[regionI];
-        const wordList& regionNames = regionGroupRegions_[regionI];
+        const word& compName = regionGroupNames_[regioni];
+        const wordList& regionNames = regionGroupRegions_[regioni];
 
         // Get the meshes for the region-group
         UPtrList<const fvMesh> meshes(regionNames.size());
@@ -590,13 +590,13 @@ void Foam::functionObjects::externalCoupled::readData()
 
         forAll(groups, i)
         {
-            label groupI = groups[i];
-            const wordRe& groupName = groupNames_[groupI];
-            const wordList& fieldNames = groupReadFields_[groupI];
+            label groupi = groups[i];
+            const wordRe& groupName = groupNames_[groupi];
+            const wordList& fieldNames = groupReadFields_[groupi];
 
-            forAll(fieldNames, fieldI)
+            forAll(fieldNames, fieldi)
             {
-                const word& fieldName = fieldNames[fieldI];
+                const word& fieldName = fieldNames[fieldi];
 
                 bool ok = readData<scalar>
                 (
@@ -643,10 +643,10 @@ void Foam::functionObjects::externalCoupled::readData()
 
 void Foam::functionObjects::externalCoupled::writeData() const
 {
-    forAll(regionGroupNames_, regionI)
+    forAll(regionGroupNames_, regioni)
     {
-        const word& compName = regionGroupNames_[regionI];
-        const wordList& regionNames = regionGroupRegions_[regionI];
+        const word& compName = regionGroupNames_[regioni];
+        const wordList& regionNames = regionGroupRegions_[regioni];
 
         // Get the meshes for the region-group
         UPtrList<const fvMesh> meshes(regionNames.size());
@@ -660,13 +660,13 @@ void Foam::functionObjects::externalCoupled::writeData() const
 
         forAll(groups, i)
         {
-            label groupI = groups[i];
-            const wordRe& groupName = groupNames_[groupI];
-            const wordList& fieldNames = groupWriteFields_[groupI];
+            label groupi = groups[i];
+            const wordRe& groupName = groupNames_[groupi];
+            const wordList& fieldNames = groupWriteFields_[groupi];
 
-            forAll(fieldNames, fieldI)
+            forAll(fieldNames, fieldi)
             {
-                const word& fieldName = fieldNames[fieldI];
+                const word& fieldName = fieldNames[fieldi];
 
                 bool ok = writeData<scalar>
                 (
@@ -736,8 +736,8 @@ void Foam::functionObjects::externalCoupled::initialise()
 
         forAll(groups, i)
         {
-            label groupI = groups[i];
-            const wordRe& groupName = groupNames_[groupI];
+            label groupi = groups[i];
+            const wordRe& groupName = groupNames_[groupi];
 
             bool exists = false;
             if (Pstream::master())
@@ -854,6 +854,8 @@ bool Foam::functionObjects::externalCoupled::end()
 
 bool Foam::functionObjects::externalCoupled::read(const dictionary& dict)
 {
+    functionObject::read(dict);
+
     dict.readIfPresent("enabled", enabled_);
 
     if (!enabled_)
@@ -938,26 +940,26 @@ bool Foam::functionObjects::externalCoupled::read(const dictionary& dict)
     if (log)
     {
         Info<< type() << ": Communicating with regions:" << endl;
-        forAll(regionGroupNames_, rgI)
+        forAll(regionGroupNames_, rgi)
         {
-            //const wordList& regionNames = regionGroupRegions_[rgI];
-            const word& compName = regionGroupNames_[rgI];
+            //const wordList& regionNames = regionGroupRegions_[rgi];
+            const word& compName = regionGroupNames_[rgi];
 
             Info<< "Region: " << compName << endl << incrIndent;
             const labelList& groups = regionToGroups_[compName];
             forAll(groups, i)
             {
-                label groupI = groups[i];
-                const wordRe& groupName = groupNames_[groupI];
+                label groupi = groups[i];
+                const wordRe& groupName = groupNames_[groupi];
 
                 Info<< indent << "patchGroup: " << groupName << "\t"
                     << endl
                     << incrIndent
                     << indent << "Reading fields: "
-                    << groupReadFields_[groupI]
+                    << groupReadFields_[groupi]
                     << endl
                     << indent << "Writing fields: "
-                    << groupWriteFields_[groupI]
+                    << groupWriteFields_[groupi]
                     << endl
                     << decrIndent;
             }
@@ -971,15 +973,15 @@ bool Foam::functionObjects::externalCoupled::read(const dictionary& dict)
     //       should already be written - but just make sure
     if (Pstream::master())
     {
-        forAll(regionGroupNames_, rgI)
+        forAll(regionGroupNames_, rgi)
         {
-            const word& compName = regionGroupNames_[rgI];
+            const word& compName = regionGroupNames_[rgi];
 
             const labelList& groups = regionToGroups_[compName];
             forAll(groups, i)
             {
-                label groupI = groups[i];
-                const wordRe& groupName = groupNames_[groupI];
+                label groupi = groups[i];
+                const wordRe& groupName = groupNames_[groupi];
 
                 fileName dir(groupDir(commsDir_, compName, groupName));
                 if (!isDir(dir))
diff --git a/src/functionObjects/field/externalCoupled/externalCoupledMixed/externalCoupledMixedFvPatchField.C b/src/functionObjects/field/externalCoupled/externalCoupledMixed/externalCoupledMixedFvPatchField.C
index 17587fc9a55332fc10a1abf43cc35d8762d043a5..84117274b0aad20a8053bc83b49f5e03503b3cc5 100644
--- a/src/functionObjects/field/externalCoupled/externalCoupledMixed/externalCoupledMixedFvPatchField.C
+++ b/src/functionObjects/field/externalCoupled/externalCoupledMixed/externalCoupledMixedFvPatchField.C
@@ -126,13 +126,13 @@ void Foam::externalCoupledMixedFvPatchField<Type>::writeData
     const Field<Type>& refGrad(this->refGrad());
     const scalarField& valueFraction(this->valueFraction());
 
-    forAll(refValue, faceI)
+    forAll(refValue, facei)
     {
-        os  << this->operator[](faceI) << token::SPACE
-            << snGrad[faceI] << token::SPACE
-            << refValue[faceI] << token::SPACE
-            << refGrad[faceI] << token::SPACE
-            << valueFraction[faceI] << nl;
+        os  << this->operator[](facei) << token::SPACE
+            << snGrad[facei] << token::SPACE
+            << refValue[facei] << token::SPACE
+            << refGrad[facei] << token::SPACE
+            << valueFraction[facei] << nl;
     }
 }
 
@@ -146,7 +146,7 @@ void Foam::externalCoupledMixedFvPatchField<Type>::readData(Istream& is)
 
     string line;
 
-    forAll(*this, faceI)
+    forAll(*this, facei)
     {
         iss.getLine(line);
         IStringStream lineStr(line);
@@ -158,9 +158,9 @@ void Foam::externalCoupledMixedFvPatchField<Type>::readData(Istream& is)
         lineStr
             >> value
             >> snGrad
-            >> this->refValue()[faceI]
-            >> this->refGrad()[faceI]
-            >> this->valueFraction()[faceI];
+            >> this->refValue()[facei]
+            >> this->refGrad()[facei]
+            >> this->valueFraction()[facei];
     }
 }
 
diff --git a/src/functionObjects/field/externalCoupled/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.C b/src/functionObjects/field/externalCoupled/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.C
index b86ada440912f02d8acb28d88f805677b0871b60..70128b880041b1a8a856df638101baebfefee17d 100644
--- a/src/functionObjects/field/externalCoupled/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.C
+++ b/src/functionObjects/field/externalCoupled/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.C
@@ -145,7 +145,7 @@ void Foam::externalCoupledTemperatureMixedFvPatchScalarField::writeData
     Ostream& os
 ) const
 {
-    const label patchI = patch().index();
+    const label patchi = patch().index();
 
     // Heat flux [W/m2]
     scalarField qDot(this->patch().size(), 0.0);
@@ -170,17 +170,17 @@ void Foam::externalCoupledTemperatureMixedFvPatchScalarField::writeData
 
         const basicThermo& thermo = turbModel.transport();
 
-        const fvPatchScalarField& hep = thermo.he().boundaryField()[patchI];
+        const fvPatchScalarField& hep = thermo.he().boundaryField()[patchi];
 
-        qDot = turbModel.alphaEff(patchI)*hep.snGrad();
+        qDot = turbModel.alphaEff(patchi)*hep.snGrad();
     }
     else if (db().foundObject<basicThermo>(thermoName))
     {
         const basicThermo& thermo = db().lookupObject<basicThermo>(thermoName);
 
-        const fvPatchScalarField& hep = thermo.he().boundaryField()[patchI];
+        const fvPatchScalarField& hep = thermo.he().boundaryField()[patchi];
 
-        qDot = thermo.alpha().boundaryField()[patchI]*hep.snGrad();
+        qDot = thermo.alpha().boundaryField()[patchi]*hep.snGrad();
     }
     else
     {
@@ -200,12 +200,12 @@ void Foam::externalCoupledTemperatureMixedFvPatchScalarField::writeData
 
     const Field<scalar>& magSf(this->patch().magSf());
 
-    forAll(patch(), faceI)
+    forAll(patch(), facei)
     {
-        os  << magSf[faceI] << token::SPACE
-            << Tp[faceI] << token::SPACE
-            << qDot[faceI] << token::SPACE
-            << htc[faceI] << token::SPACE
+        os  << magSf[facei] << token::SPACE
+            << Tp[facei] << token::SPACE
+            << qDot[facei] << token::SPACE
+            << htc[facei] << token::SPACE
             << nl;
     }
 }
@@ -222,15 +222,15 @@ void Foam::externalCoupledTemperatureMixedFvPatchScalarField::readData
 
     string line;
 
-    forAll(*this, faceI)
+    forAll(*this, facei)
     {
         iss.getLine(line);
         IStringStream lineStr(line);
 
         lineStr
-            >> this->refValue()[faceI]
-            >> this->refGrad()[faceI]
-            >> this->valueFraction()[faceI];
+            >> this->refValue()[facei]
+            >> this->refGrad()[facei]
+            >> this->valueFraction()[facei];
     }
 }
 
diff --git a/src/functionObjects/field/externalCoupled/externalCoupledTemplates.C b/src/functionObjects/field/externalCoupled/externalCoupledTemplates.C
index 997dfffd3e3ef894abe03a79cdea2371712e7e1a..9daa4c49dff01e34e6fd8e7fcdd34c9d32baacd1 100644
--- a/src/functionObjects/field/externalCoupled/externalCoupledTemplates.C
+++ b/src/functionObjects/field/externalCoupled/externalCoupledTemplates.C
@@ -110,9 +110,9 @@ bool Foam::functionObjects::externalCoupled::readData
         // Handle column-wise reading of patch data. Supports most easy types
         forAll(patchIDs, i)
         {
-            label patchI = patchIDs[i];
+            label patchi = patchIDs[i];
 
-            if (isA<patchFieldType>(bf[patchI]))
+            if (isA<patchFieldType>(bf[patchi]))
             {
                 // Explicit handling of externalCoupledMixed bcs - they
                 // have specialised reading routines.
@@ -121,7 +121,7 @@ bool Foam::functionObjects::externalCoupled::readData
                 (
                     refCast<const patchFieldType>
                     (
-                        bf[patchI]
+                        bf[patchi]
                     )
                 );
 
@@ -129,7 +129,7 @@ bool Foam::functionObjects::externalCoupled::readData
                 OStringStream os;
                 readLines
                 (
-                    bf[patchI].size(),      // number of lines to read
+                    bf[patchi].size(),      // number of lines to read
                     masterFilePtr,
                     os
                 );
@@ -141,14 +141,14 @@ bool Foam::functionObjects::externalCoupled::readData
                 // additional processing by derived type.
                 pf.patchFieldType::evaluate();
             }
-            else if (isA<mixedFvPatchField<Type>>(bf[patchI]))
+            else if (isA<mixedFvPatchField<Type>>(bf[patchi]))
             {
                 // Read columns from file for
                 // value, snGrad, refValue, refGrad, valueFraction
                 List<scalarField> data;
                 readColumns
                 (
-                    bf[patchI].size(),              // number of lines to read
+                    bf[patchi].size(),              // number of lines to read
                     4*pTraits<Type>::nComponents+1, // nColumns: 4*Type+1*scalar
                     masterFilePtr,
                     data
@@ -159,13 +159,13 @@ bool Foam::functionObjects::externalCoupled::readData
                 (
                     refCast<const mixedFvPatchField<Type>>
                     (
-                        bf[patchI]
+                        bf[patchi]
                     )
                 );
 
                 // Transfer read data to bc.
                 // Skip value, snGrad
-                direction columnI = 2*pTraits<Type>::nComponents;
+                direction columni = 2*pTraits<Type>::nComponents;
 
                 Field<Type>& refValue = pf.refValue();
                 for
@@ -175,7 +175,7 @@ bool Foam::functionObjects::externalCoupled::readData
                     cmpt++
                 )
                 {
-                    refValue.replace(cmpt, data[columnI++]);
+                    refValue.replace(cmpt, data[columni++]);
                 }
                 Field<Type>& refGrad = pf.refGrad();
                 for
@@ -185,21 +185,21 @@ bool Foam::functionObjects::externalCoupled::readData
                     cmpt++
                 )
                 {
-                    refGrad.replace(cmpt, data[columnI++]);
+                    refGrad.replace(cmpt, data[columni++]);
                 }
-                pf.valueFraction() = data[columnI];
+                pf.valueFraction() = data[columni];
 
                 // Update the value from the read coefficicient. Bypass any
                 // additional processing by derived type.
                 pf.mixedFvPatchField<Type>::evaluate();
             }
-            else if (isA<fixedGradientFvPatchField<Type>>(bf[patchI]))
+            else if (isA<fixedGradientFvPatchField<Type>>(bf[patchi]))
             {
                 // Read columns for value and gradient
                 List<scalarField> data;
                 readColumns
                 (
-                    bf[patchI].size(),              // number of lines to read
+                    bf[patchi].size(),              // number of lines to read
                     2*pTraits<Type>::nComponents,   // nColumns: Type
                     masterFilePtr,
                     data
@@ -210,7 +210,7 @@ bool Foam::functionObjects::externalCoupled::readData
                 (
                     refCast<const fixedGradientFvPatchField<Type>>
                     (
-                        bf[patchI]
+                        bf[patchi]
                     )
                 );
 
@@ -234,20 +234,20 @@ bool Foam::functionObjects::externalCoupled::readData
                 // additional processing by derived type.
                 pf.fixedGradientFvPatchField<Type>::evaluate();
             }
-            else if (isA<fixedValueFvPatchField<Type>>(bf[patchI]))
+            else if (isA<fixedValueFvPatchField<Type>>(bf[patchi]))
             {
                 // Read columns for value only
                 List<scalarField> data;
                 readColumns
                 (
-                    bf[patchI].size(),              // number of lines to read
+                    bf[patchi].size(),              // number of lines to read
                     pTraits<Type>::nComponents,     // number of columns to read
                     masterFilePtr,
                     data
                 );
 
                 // Transfer read value to bc
-                Field<Type> value(bf[patchI].size());
+                Field<Type> value(bf[patchi].size());
                 for
                 (
                     direction cmpt = 0;
@@ -263,7 +263,7 @@ bool Foam::functionObjects::externalCoupled::readData
                 (
                     refCast<const fixedValueFvPatchField<Type>>
                     (
-                        bf[patchI]
+                        bf[patchi]
                     )
                 );
 
@@ -276,8 +276,8 @@ bool Foam::functionObjects::externalCoupled::readData
             else
             {
                 FatalErrorInFunction
-                    << "Unsupported boundary condition " << bf[patchI].type()
-                    << " for patch " << bf[patchI].patch().name()
+                    << "Unsupported boundary condition " << bf[patchi].type()
+                    << " for patch " << bf[patchi].patch().name()
                     << " in region " << mesh.name()
                     << exit(FatalError);
             }
@@ -309,24 +309,24 @@ Foam::functionObjects::externalCoupled::gatherAndCombine
     if (Pstream::master())
     {
         // Combine values into single field
-        label globalElemI = 0;
+        label globalElemi = 0;
 
-        forAll(gatheredValues, lstI)
+        forAll(gatheredValues, lsti)
         {
-            globalElemI += gatheredValues[lstI].size();
+            globalElemi += gatheredValues[lsti].size();
         }
 
-        result.setSize(globalElemI);
+        result.setSize(globalElemi);
 
-        globalElemI = 0;
+        globalElemi = 0;
 
-        forAll(gatheredValues, lstI)
+        forAll(gatheredValues, lsti)
         {
-            const Field<Type>& sub = gatheredValues[lstI];
+            const Field<Type>& sub = gatheredValues[lsti];
 
-            forAll(sub, elemI)
+            forAll(sub, elemi)
             {
-                result[globalElemI++] = sub[elemI];
+                result[globalElemi++] = sub[elemi];
             }
         }
     }
@@ -408,18 +408,18 @@ bool Foam::functionObjects::externalCoupled::writeData
         // Handle column-wise writing of patch data. Supports most easy types
         forAll(patchIDs, i)
         {
-            label patchI = patchIDs[i];
+            label patchi = patchIDs[i];
 
-            const globalIndex globalFaces(bf[patchI].size());
+            const globalIndex globalFaces(bf[patchi].size());
 
-            if (isA<patchFieldType>(bf[patchI]))
+            if (isA<patchFieldType>(bf[patchi]))
             {
                 // Explicit handling of externalCoupledMixed bcs - they
                 // have specialised writing routines
 
                 const patchFieldType& pf = refCast<const patchFieldType>
                 (
-                    bf[patchI]
+                    bf[patchi]
                 );
                 OStringStream os;
 
@@ -438,9 +438,9 @@ bool Foam::functionObjects::externalCoupled::writeData
                     }
                     masterFilePtr() << os.str().c_str();
 
-                    for (label procI = 1; procI < Pstream::nProcs(); procI++)
+                    for (label proci = 1; proci < Pstream::nProcs(); proci++)
                     {
-                        IPstream fromSlave(Pstream::scheduled, procI);
+                        IPstream fromSlave(Pstream::scheduled, proci);
                         string str(fromSlave);
                         masterFilePtr() << str.c_str();
                     }
@@ -451,10 +451,10 @@ bool Foam::functionObjects::externalCoupled::writeData
                     toMaster << os.str();
                 }
             }
-            else if (isA<mixedFvPatchField<Type>>(bf[patchI]))
+            else if (isA<mixedFvPatchField<Type>>(bf[patchi]))
             {
                 const mixedFvPatchField<Type>& pf =
-                    refCast<const mixedFvPatchField<Type>>(bf[patchI]);
+                    refCast<const mixedFvPatchField<Type>>(bf[patchi]);
 
                 Field<Type> value(gatherAndCombine(pf));
                 Field<Type> snGrad(gatherAndCombine(pf.snGrad()()));
@@ -464,29 +464,29 @@ bool Foam::functionObjects::externalCoupled::writeData
 
                 if (Pstream::master())
                 {
-                    forAll(refValue, faceI)
+                    forAll(refValue, facei)
                     {
                         masterFilePtr()
-                            << value[faceI] << token::SPACE
-                            << snGrad[faceI] << token::SPACE
-                            << refValue[faceI] << token::SPACE
-                            << refGrad[faceI] << token::SPACE
-                            << valueFraction[faceI] << nl;
+                            << value[facei] << token::SPACE
+                            << snGrad[facei] << token::SPACE
+                            << refValue[facei] << token::SPACE
+                            << refGrad[facei] << token::SPACE
+                            << valueFraction[facei] << nl;
                     }
                 }
             }
             else
             {
                 // Output the value and snGrad
-                Field<Type> value(gatherAndCombine(bf[patchI]));
-                Field<Type> snGrad(gatherAndCombine(bf[patchI].snGrad()()));
+                Field<Type> value(gatherAndCombine(bf[patchi]));
+                Field<Type> snGrad(gatherAndCombine(bf[patchi].snGrad()()));
                 if (Pstream::master())
                 {
-                    forAll(value, faceI)
+                    forAll(value, facei)
                     {
                         masterFilePtr()
-                            << value[faceI] << token::SPACE
-                            << snGrad[faceI] << nl;
+                            << value[facei] << token::SPACE
+                            << snGrad[facei] << nl;
                     }
                 }
             }
diff --git a/src/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C b/src/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C
index d50548bc2da54e0d1111732a360a2874988a3641..691e31382117475fc2a62795661b68ac4e174aa2 100644
--- a/src/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C
+++ b/src/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C
@@ -151,18 +151,18 @@ void Foam::functionObjects::fieldMinMax::calcMinMaxFields
                     {
                         const vectorField& Cfp = CfBoundary[patchi];
 
-                        label minPI = findMin(mfp);
-                        if (mfp[minPI] < minVs[proci])
+                        label minPi = findMin(mfp);
+                        if (mfp[minPi] < minVs[proci])
                         {
-                            minVs[proci] = mfp[minPI];
-                            minCs[proci] = Cfp[minPI];
+                            minVs[proci] = mfp[minPi];
+                            minCs[proci] = Cfp[minPi];
                         }
 
-                        label maxPI = findMax(mfp);
-                        if (mfp[maxPI] > maxVs[proci])
+                        label maxPi = findMax(mfp);
+                        if (mfp[maxPi] > maxVs[proci])
                         {
-                            maxVs[proci] = mfp[maxPI];
-                            maxCs[proci] = Cfp[maxPI];
+                            maxVs[proci] = mfp[maxPi];
+                            maxCs[proci] = Cfp[maxPi];
                         }
                     }
                 }
diff --git a/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.C b/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.C
index faabae815fc9c0e1bf676be427b2748524d0017e..b2f57b2b87d562707777a122c05e22b8a4312fc5 100644
--- a/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.C
+++ b/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.C
@@ -89,21 +89,20 @@ void Foam::functionObjects::fieldValues::volFieldValue::initialise
 
 void Foam::functionObjects::fieldValues::volFieldValue::writeFileHeader
 (
-    const label i
-)
+    Ostream& os
+) const
 {
-    volRegion::writeFileHeader(*this, file());
+    volRegion::writeFileHeader(*this, os);
 
-    writeCommented(file(), "Time");
+    writeCommented(os, "Time");
 
     forAll(fields_, fieldi)
     {
-        file()
-            << tab << operationTypeNames_[operation_]
+        os  << tab << operationTypeNames_[operation_]
             << "(" << fields_[fieldi] << ")";
     }
 
-    file() << endl;
+    os  << endl;
 }
 
 
@@ -122,6 +121,7 @@ Foam::functionObjects::fieldValues::volFieldValue::volFieldValue
     weightFieldName_("none")
 {
     read(dict);
+    writeFileHeader(file());
 }
 
 
diff --git a/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.H b/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.H
index 69643720d8be70f1eae5f4f5a97203e3d59c8416..adb7d4dcd9aa05e7b8ffc790d13d85b4ec7ee6d7 100644
--- a/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.H
+++ b/src/functionObjects/field/fieldValues/volFieldValue/volFieldValue.H
@@ -189,7 +189,7 @@ protected:
         ) const;
 
         //- Output file header information
-        virtual void writeFileHeader(const label i);
+        virtual void writeFileHeader(Ostream& os) const;
 
 
 public:
diff --git a/src/functionObjects/field/fluxSummary/fluxSummary.C b/src/functionObjects/field/fluxSummary/fluxSummary.C
index 80678076970d0fe1fad5900b47ccc879f967ad3a..deb45d77f19c753c2f8a6cae59f4093b9fbca2c8 100644
--- a/src/functionObjects/field/fluxSummary/fluxSummary.C
+++ b/src/functionObjects/field/fluxSummary/fluxSummary.C
@@ -81,9 +81,9 @@ void Foam::functionObjects::fluxSummary::initialiseFaceZone
 {
     const fvMesh& mesh = refCast<const fvMesh>(obr_);
 
-    label zoneI = mesh.faceZones().findZoneID(faceZoneName);
+    label zonei = mesh.faceZones().findZoneID(faceZoneName);
 
-    if (zoneI == -1)
+    if (zonei == -1)
     {
         FatalErrorInFunction
             << "Unable to find faceZone " << faceZoneName
@@ -93,7 +93,7 @@ void Foam::functionObjects::fluxSummary::initialiseFaceZone
 
     faceZoneNames.append(faceZoneName);
 
-    const faceZone& fZone = mesh.faceZones()[zoneI];
+    const faceZone& fZone = mesh.faceZones()[zonei];
 
     DynamicList<label> faceIDs(fZone.size());
     DynamicList<label> facePatchIDs(fZone.size());
@@ -101,24 +101,24 @@ void Foam::functionObjects::fluxSummary::initialiseFaceZone
 
     forAll(fZone, i)
     {
-        label faceI = fZone[i];
+        label facei = fZone[i];
 
         label faceID = -1;
         label facePatchID = -1;
-        if (mesh.isInternalFace(faceI))
+        if (mesh.isInternalFace(facei))
         {
-            faceID = faceI;
+            faceID = facei;
             facePatchID = -1;
         }
         else
         {
-            facePatchID = mesh.boundaryMesh().whichPatch(faceI);
+            facePatchID = mesh.boundaryMesh().whichPatch(facei);
             const polyPatch& pp = mesh.boundaryMesh()[facePatchID];
             if (isA<coupledPolyPatch>(pp))
             {
                 if (refCast<const coupledPolyPatch>(pp).owner())
                 {
-                    faceID = pp.whichFace(faceI);
+                    faceID = pp.whichFace(facei);
                 }
                 else
                 {
@@ -127,7 +127,7 @@ void Foam::functionObjects::fluxSummary::initialiseFaceZone
             }
             else if (!isA<emptyPolyPatch>(pp))
             {
-                faceID = faceI - pp.start();
+                faceID = facei - pp.start();
             }
             else
             {
@@ -139,7 +139,7 @@ void Foam::functionObjects::fluxSummary::initialiseFaceZone
         if (faceID >= 0)
         {
             // Orientation set by faceZone flip map
-            if (fZone.flipMap()[faceI])
+            if (fZone.flipMap()[facei])
             {
                 faceSigns.append(-1);
             }
@@ -174,9 +174,9 @@ void Foam::functionObjects::fluxSummary::initialiseFaceZoneAndDirection
 
     vector refDir = dir/(mag(dir) + ROOTVSMALL);
 
-    label zoneI = mesh.faceZones().findZoneID(faceZoneName);
+    label zonei = mesh.faceZones().findZoneID(faceZoneName);
 
-    if (zoneI == -1)
+    if (zonei == -1)
     {
          FatalErrorInFunction
             << "Unable to find faceZone " << faceZoneName
@@ -187,7 +187,7 @@ void Foam::functionObjects::fluxSummary::initialiseFaceZoneAndDirection
     faceZoneNames.append(faceZoneName);
     zoneRefDir.append(refDir);
 
-    const faceZone& fZone = mesh.faceZones()[zoneI];
+    const faceZone& fZone = mesh.faceZones()[zonei];
 
     DynamicList<label> faceIDs(fZone.size());
     DynamicList<label> facePatchIDs(fZone.size());
@@ -200,24 +200,24 @@ void Foam::functionObjects::fluxSummary::initialiseFaceZoneAndDirection
 
     forAll(fZone, i)
     {
-        label faceI = fZone[i];
+        label facei = fZone[i];
 
         label faceID = -1;
         label facePatchID = -1;
-        if (mesh.isInternalFace(faceI))
+        if (mesh.isInternalFace(facei))
         {
-            faceID = faceI;
+            faceID = facei;
             facePatchID = -1;
         }
         else
         {
-            facePatchID = mesh.boundaryMesh().whichPatch(faceI);
+            facePatchID = mesh.boundaryMesh().whichPatch(facei);
             const polyPatch& pp = mesh.boundaryMesh()[facePatchID];
             if (isA<coupledPolyPatch>(pp))
             {
                 if (refCast<const coupledPolyPatch>(pp).owner())
                 {
-                    faceID = pp.whichFace(faceI);
+                    faceID = pp.whichFace(facei);
                 }
                 else
                 {
@@ -226,7 +226,7 @@ void Foam::functionObjects::fluxSummary::initialiseFaceZoneAndDirection
             }
             else if (!isA<emptyPolyPatch>(pp))
             {
-                faceID = faceI - pp.start();
+                faceID = facei - pp.start();
             }
             else
             {
@@ -283,9 +283,9 @@ void Foam::functionObjects::fluxSummary::initialiseCellZoneAndDirection
 
     vector refDir = dir/(mag(dir) + ROOTVSMALL);
 
-    const label cellZoneI = mesh.cellZones().findZoneID(cellZoneName);
+    const label cellZonei = mesh.cellZones().findZoneID(cellZoneName);
 
-    if (cellZoneI == -1)
+    if (cellZonei == -1)
     {
         FatalErrorInFunction
             << "Unable to find cellZone " << cellZoneName
@@ -297,22 +297,22 @@ void Foam::functionObjects::fluxSummary::initialiseCellZoneAndDirection
     const polyBoundaryMesh& pbm = mesh.boundaryMesh();
 
     labelList cellAddr(mesh.nCells(), -1);
-    const labelList& cellIDs = mesh.cellZones()[cellZoneI];
+    const labelList& cellIDs = mesh.cellZones()[cellZonei];
     UIndirectList<label>(cellAddr, cellIDs) = identity(cellIDs.size());
     labelList nbrFaceCellAddr(mesh.nFaces() - nInternalFaces, -1);
 
-    forAll(pbm, patchI)
+    forAll(pbm, patchi)
     {
-        const polyPatch& pp = pbm[patchI];
+        const polyPatch& pp = pbm[patchi];
 
         if (pp.coupled())
         {
             forAll(pp, i)
             {
-                label faceI = pp.start() + i;
-                label nbrFaceI = faceI - nInternalFaces;
-                label own = mesh.faceOwner()[faceI];
-                nbrFaceCellAddr[nbrFaceI] = cellAddr[own];
+                label facei = pp.start() + i;
+                label nbrFacei = facei - nInternalFaces;
+                label own = mesh.faceOwner()[facei];
+                nbrFaceCellAddr[nbrFacei] = cellAddr[own];
             }
         }
     }
@@ -327,27 +327,27 @@ void Foam::functionObjects::fluxSummary::initialiseCellZoneAndDirection
     DynamicList<scalar> faceSigns(faceIDs.size());
 
     // Internal faces
-    for (label faceI = 0; faceI < nInternalFaces; faceI++)
+    for (label facei = 0; facei < nInternalFaces; facei++)
     {
-        const label own = cellAddr[mesh.faceOwner()[faceI]];
-        const label nbr = cellAddr[mesh.faceNeighbour()[faceI]];
+        const label own = cellAddr[mesh.faceOwner()[facei]];
+        const label nbr = cellAddr[mesh.faceNeighbour()[facei]];
 
         if (((own != -1) && (nbr == -1)) || ((own == -1) && (nbr != -1)))
         {
-            vector n = mesh.faces()[faceI].normal(mesh.points());
+            vector n = mesh.faces()[facei].normal(mesh.points());
             n /= mag(n) + ROOTVSMALL;
 
             if ((n & refDir) > tolerance_)
             {
-                faceIDs.append(faceI);
-                faceLocalPatchIDs.append(faceI);
+                faceIDs.append(facei);
+                faceLocalPatchIDs.append(facei);
                 facePatchIDs.append(-1);
                 faceSigns.append(1);
             }
             else if ((n & -refDir) > tolerance_)
             {
-                faceIDs.append(faceI);
-                faceLocalPatchIDs.append(faceI);
+                faceIDs.append(facei);
+                faceLocalPatchIDs.append(facei);
                 facePatchIDs.append(-1);
                 faceSigns.append(-1);
             }
@@ -355,33 +355,33 @@ void Foam::functionObjects::fluxSummary::initialiseCellZoneAndDirection
     }
 
     // Loop over boundary faces
-    forAll(pbm, patchI)
+    forAll(pbm, patchi)
     {
-        const polyPatch& pp = pbm[patchI];
+        const polyPatch& pp = pbm[patchi];
 
-        forAll(pp, localFaceI)
+        forAll(pp, localFacei)
         {
-            const label faceI = pp.start() + localFaceI;
-            const label own = cellAddr[mesh.faceOwner()[faceI]];
-            const label nbr = nbrFaceCellAddr[faceI - nInternalFaces];
+            const label facei = pp.start() + localFacei;
+            const label own = cellAddr[mesh.faceOwner()[facei]];
+            const label nbr = nbrFaceCellAddr[facei - nInternalFaces];
 
             if ((own != -1) && (nbr == -1))
             {
-                vector n = mesh.faces()[faceI].normal(mesh.points());
+                vector n = mesh.faces()[facei].normal(mesh.points());
                 n /= mag(n) + ROOTVSMALL;
 
                 if ((n & refDir) > tolerance_)
                 {
-                    faceIDs.append(faceI);
-                    faceLocalPatchIDs.append(localFaceI);
-                    facePatchIDs.append(patchI);
+                    faceIDs.append(facei);
+                    faceLocalPatchIDs.append(localFacei);
+                    facePatchIDs.append(patchi);
                     faceSigns.append(1);
                 }
                 else if ((n & -refDir) > tolerance_)
                 {
-                    faceIDs.append(faceI);
-                    faceLocalPatchIDs.append(localFaceI);
-                    facePatchIDs.append(patchI);
+                    faceIDs.append(facei);
+                    faceLocalPatchIDs.append(localFacei);
+                    facePatchIDs.append(patchi);
                     faceSigns.append(-1);
                 }
             }
@@ -423,26 +423,26 @@ void Foam::functionObjects::fluxSummary::initialiseCellZoneAndDirection
         DynamicList<label> changedEdges;
         DynamicList<patchEdgeFaceRegion> changedInfo;
 
-        label seedFaceI = labelMax;
+        label seedFacei = labelMax;
         for (; oldFaceID < patch.size(); oldFaceID++)
         {
             if (allFaceInfo[oldFaceID].region() == -1)
             {
-                seedFaceI = globalFaces.toGlobal(oldFaceID);
+                seedFacei = globalFaces.toGlobal(oldFaceID);
                 break;
             }
         }
-        reduce(seedFaceI, minOp<label>());
+        reduce(seedFacei, minOp<label>());
 
-        if (seedFaceI == labelMax)
+        if (seedFacei == labelMax)
         {
             break;
         }
 
-        if (globalFaces.isLocal(seedFaceI))
+        if (globalFaces.isLocal(seedFacei))
         {
-            label localFaceI = globalFaces.toLocal(seedFaceI);
-            const labelList& fEdges = patch.faceEdges()[localFaceI];
+            label localFacei = globalFaces.toLocal(seedFacei);
+            const labelList& fEdges = patch.faceEdges()[localFacei];
 
             forAll(fEdges, i)
             {
@@ -479,9 +479,9 @@ void Foam::functionObjects::fluxSummary::initialiseCellZoneAndDirection
         if (debug)
         {
             label nCells = 0;
-            forAll(allFaceInfo, faceI)
+            forAll(allFaceInfo, facei)
             {
-                if (allFaceInfo[faceI].region() == regioni)
+                if (allFaceInfo[facei].region() == regioni)
                 {
                     nCells++;
                 }
@@ -521,7 +521,7 @@ void Foam::functionObjects::fluxSummary::initialiseCellZoneAndDirection
         facePatchID.append(regionFacePatchIDs[regioni]);
         faceSign.append(regionFaceSigns[regioni]);
 
-        // Write OBJ of faces to file
+        // Write OBj of faces to file
         if (debug)
         {
             OBJstream os(mesh.time().path()/zoneName + ".obj");
@@ -619,6 +619,7 @@ Foam::functionObjects::fluxSummary::~fluxSummary()
 
 bool Foam::functionObjects::fluxSummary::read(const dictionary& dict)
 {
+    fvMeshFunctionObject::read(dict);
     writeFile::read(dict);
 
     mode_ = modeTypeNames_.read(dict.lookup("mode"));
@@ -712,16 +713,16 @@ bool Foam::functionObjects::fluxSummary::read(const dictionary& dict)
     {
         filePtrs_.setSize(faceZoneName_.size());
 
-        forAll(filePtrs_, fileI)
+        forAll(filePtrs_, filei)
         {
-            const word& fzName = faceZoneName_[fileI];
-            filePtrs_.set(fileI, createFile(fzName));
+            const word& fzName = faceZoneName_[filei];
+            filePtrs_.set(filei, createFile(fzName));
             writeFileHeader
             (
                 fzName,
-                faceArea_[fileI],
-                refDir_[fileI],
-                filePtrs_[fileI]
+                faceArea_[filei],
+                refDir_[filei],
+                filePtrs_[filei]
             );
         }
     }
diff --git a/src/functionObjects/field/fluxSummary/fluxSummary.H b/src/functionObjects/field/fluxSummary/fluxSummary.H
index 701a3ea852ac6e6ff5c51db180306f7378da0c1f..eab9df9c24b4a4e83359307ba6a8f48600faf1a3 100644
--- a/src/functionObjects/field/fluxSummary/fluxSummary.H
+++ b/src/functionObjects/field/fluxSummary/fluxSummary.H
@@ -41,7 +41,7 @@ Usage
     fluxSummary1
     {
         type        fluxSummary;
-        functionObjectLibs ("libutilityFunctionObjects.so");
+        libs        ("libutilityFunctionObjects.so");
         ...
         write       yes;
         log         yes;
diff --git a/src/functionObjects/field/grad/grad.C b/src/functionObjects/field/grad/grad.C
index b265ec80b7cb1583d33db4ccf515f9df218eccb9..4a689310eed29459d5dca7d593ccdc31343cb5c9 100644
--- a/src/functionObjects/field/grad/grad.C
+++ b/src/functionObjects/field/grad/grad.C
@@ -61,9 +61,7 @@ Foam::functionObjects::grad::grad
 )
 :
     fieldExpression(name, runTime, dict)
-{
-    read(dict);
-}
+{}
 
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
diff --git a/src/functionObjects/field/histogram/histogram.C b/src/functionObjects/field/histogram/histogram.C
index 68c5f46387d882d2edf9a3dce2c7beddc3b14fc6..63e2abcf0a88239f9db45cfa8ea08dfe9a87d6b7 100644
--- a/src/functionObjects/field/histogram/histogram.C
+++ b/src/functionObjects/field/histogram/histogram.C
@@ -92,6 +92,8 @@ Foam::functionObjects::histogram::~histogram()
 
 bool Foam::functionObjects::histogram::read(const dictionary& dict)
 {
+    fvMeshFunctionObject::read(dict);
+
     dict.lookup("field") >> fieldName_;
     dict.lookup("max") >> max_;
     min_ = dict.lookupOrDefault<scalar>("min", 0);
diff --git a/src/functionObjects/field/mag/mag.C b/src/functionObjects/field/mag/mag.C
index a5dfca1d4126c1e21eeb81edb5604ec55d80a8e2..42e970a9397ef69bfe416048980cceb75e070706 100644
--- a/src/functionObjects/field/mag/mag.C
+++ b/src/functionObjects/field/mag/mag.C
@@ -64,9 +64,7 @@ Foam::functionObjects::mag::mag
 )
 :
     fieldExpression(name, runTime, dict)
-{
-    read(dict);
-}
+{}
 
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
diff --git a/src/functionObjects/field/magSqr/magSqr.C b/src/functionObjects/field/magSqr/magSqr.C
index 7f45431e8229485fd1e6f748f9ed630d13e7c296..82b0822d9fda12f3a4a840e0d2eaf55caa3330b7 100644
--- a/src/functionObjects/field/magSqr/magSqr.C
+++ b/src/functionObjects/field/magSqr/magSqr.C
@@ -64,9 +64,7 @@ Foam::functionObjects::magSqr::magSqr
 )
 :
     fieldExpression(name, runTime, dict)
-{
-    read(dict);
-}
+{}
 
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
diff --git a/src/functionObjects/field/mapFields/mapFields.C b/src/functionObjects/field/mapFields/mapFields.C
index 61b94de2cb45b3b16a6739203ecbec34afc84f61..3f3ff47ab58d25d13f4f73b8fd98979826ffdb51 100644
--- a/src/functionObjects/field/mapFields/mapFields.C
+++ b/src/functionObjects/field/mapFields/mapFields.C
@@ -87,7 +87,7 @@ void Foam::functionObjects::mapFields::createInterpolation
         meshToMesh::interpolationMethodNames_[mapMethodName]
     );
 
-    // Lookup corresponding AMI method
+    // Lookup corresponding AMi method
     word patchMapMethodName =
         AMIPatchToPatchInterpolation::interpolationMethodToWord
         (
@@ -166,6 +166,8 @@ Foam::functionObjects::mapFields::~mapFields()
 
 bool Foam::functionObjects::mapFields::read(const dictionary& dict)
 {
+    fvMeshFunctionObject::read(dict);
+
     dict.lookup("fields") >> fieldNames_;
     createInterpolation(dict);
     return true;
diff --git a/src/functionObjects/field/nearWallFields/findCellParticle.C b/src/functionObjects/field/nearWallFields/findCellParticle.C
index 990b24ba9a16b322d2afe1e6eb4571ca7567466b..5f57285a2675d0460628cc5c0c9cc0d01728c951 100644
--- a/src/functionObjects/field/nearWallFields/findCellParticle.C
+++ b/src/functionObjects/field/nearWallFields/findCellParticle.C
@@ -33,12 +33,12 @@ Foam::findCellParticle::findCellParticle
     const vector& position,
     const label celli,
     const label tetFacei,
-    const label tetPtI,
+    const label tetPti,
     const point& end,
     const label data
 )
 :
-    particle(mesh, position, celli, tetFacei, tetPtI),
+    particle(mesh, position, celli, tetFacei, tetPti),
     end_(end),
     data_(data)
 {}
diff --git a/src/functionObjects/field/nearWallFields/findCellParticle.H b/src/functionObjects/field/nearWallFields/findCellParticle.H
index e239289063e7c0dae1f6dcaa31ea490cc863840e..d4bb541807d153f17bf8974118a5588bcc57b0a2 100644
--- a/src/functionObjects/field/nearWallFields/findCellParticle.H
+++ b/src/functionObjects/field/nearWallFields/findCellParticle.H
@@ -122,7 +122,7 @@ public:
             const vector& position,
             const label celli,
             const label tetFacei,
-            const label tetPtI,
+            const label tetPti,
             const point& end,
             const label data
         );
diff --git a/src/functionObjects/field/nearWallFields/nearWallFields.C b/src/functionObjects/field/nearWallFields/nearWallFields.C
index e8dd30f776370cc1eea860f6d0ed54881b05e7b5..1cb3f0684ecca3188b8cda80d44c8238749bf227 100644
--- a/src/functionObjects/field/nearWallFields/nearWallFields.C
+++ b/src/functionObjects/field/nearWallFields/nearWallFields.C
@@ -60,7 +60,12 @@ void Foam::functionObjects::nearWallFields::calcAddressing()
     DebugInFunction << "nPatchFaces: " << globalWalls.size() << endl;
 
     // Construct cloud
-    Cloud<findCellParticle> cloud(mesh_, IDLList<findCellParticle>());
+    Cloud<findCellParticle> cloud
+    (
+        mesh_,
+        cloud::defaultName,
+        IDLList<findCellParticle>()
+    );
 
     // Add particles to track to sample locations
     nPatchFaces = 0;
@@ -267,10 +272,10 @@ bool Foam::functionObjects::nearWallFields::read(const dictionary& dict)
     // Convert field to map
     fieldMap_.resize(2*fieldSet_.size());
     reverseFieldMap_.resize(2*fieldSet_.size());
-    forAll(fieldSet_, setI)
+    forAll(fieldSet_, seti)
     {
-        const word& fldName = fieldSet_[setI].first();
-        const word& sampleFldName = fieldSet_[setI].second();
+        const word& fldName = fieldSet_[seti].first();
+        const word& sampleFldName = fieldSet_[seti].second();
 
         fieldMap_.insert(fldName, sampleFldName);
         reverseFieldMap_.insert(sampleFldName, fldName);
diff --git a/src/functionObjects/field/pressure/pressure.C b/src/functionObjects/field/pressure/pressure.C
index 349e7cca8c575a3ca8bbb1591519f2291c15ee9c..7f1f12c33d7096dbb30c1d09fb4a8fc62c5d77b4 100644
--- a/src/functionObjects/field/pressure/pressure.C
+++ b/src/functionObjects/field/pressure/pressure.C
@@ -230,6 +230,8 @@ Foam::functionObjects::pressure::~pressure()
 
 bool Foam::functionObjects::pressure::read(const dictionary& dict)
 {
+    fieldExpression::read(dict);
+
     dict.readIfPresent("U", UName_);
     dict.readIfPresent("rho", rhoName_);
 
diff --git a/src/functionObjects/field/reactionSensitivityAnalysis/reactionsSensitivityAnalysis.C b/src/functionObjects/field/reactionSensitivityAnalysis/reactionsSensitivityAnalysis.C
index 5fd52e5da15c3f3dd97d6e3094d891899f289dab..8664497061df151553461d0a33447ff3c80cd8db 100644
--- a/src/functionObjects/field/reactionSensitivityAnalysis/reactionsSensitivityAnalysis.C
+++ b/src/functionObjects/field/reactionSensitivityAnalysis/reactionsSensitivityAnalysis.C
@@ -101,26 +101,26 @@ calculateSpeciesRR
 
     endTime_ += dt;
 
-    forAll(production_, specieI)
+    forAll(production_, speciei)
     {
-        forAll(production_[specieI], reactionI)
+        forAll(production_[speciei], reactioni)
         {
-            RR = basicChemistry.calculateRR(reactionI, specieI);
+            RR = basicChemistry.calculateRR(reactioni, speciei);
 
             if (RR[0] > 0.0)
             {
-                production_[specieI][reactionI] = RR[0];
-                productionInt_[specieI][reactionI] =+ dt*RR[0];
+                production_[speciei][reactioni] = RR[0];
+                productionInt_[speciei][reactioni] =+ dt*RR[0];
             }
             else if (RR[0] < 0.0)
             {
-                consumption_[specieI][reactionI] = RR[0];
-                consumptionInt_[specieI][reactionI] =+ dt*RR[0];
+                consumption_[speciei][reactioni] = RR[0];
+                consumptionInt_[speciei][reactioni] =+ dt*RR[0];
             }
             else
             {
-                production_[specieI][reactionI] = 0.0;
-                consumption_[specieI][reactionI] = 0.0;
+                production_[speciei][reactioni] = 0.0;
+                consumption_[speciei][reactioni] = 0.0;
             }
         }
     }
@@ -143,21 +143,21 @@ writeSpeciesRR()
     prodIntFilePtr_() << "start time : " << startTime_ << tab
             << "end time :" <<  endTime_ << nl;
 
-    for (label reactionI = 0; reactionI < nReactions_; ++reactionI)
+    for (label reactioni = 0; reactioni < nReactions_; ++reactioni)
     {
-        consFilePtr_() << reactionI << tab;
-        consIntFilePtr_() << reactionI << tab;
-        prodFilePtr_() << reactionI << tab;
-        prodIntFilePtr_() << reactionI << tab;
+        consFilePtr_() << reactioni << tab;
+        consIntFilePtr_() << reactioni << tab;
+        prodFilePtr_() << reactioni << tab;
+        prodIntFilePtr_() << reactioni << tab;
 
         forAll(speciesNames_, i)
         {
-            prodFilePtr_() << production_[i][reactionI] << tab;
-            consFilePtr_() << consumption_[i][reactionI] << tab;
-            prodIntFilePtr_() << productionInt_[i][reactionI] << tab;
-            consIntFilePtr_() << consumptionInt_[i][reactionI] << tab;
-            consumptionInt_[i][reactionI] = 0.0;
-            productionInt_[i][reactionI] = 0.0;
+            prodFilePtr_() << production_[i][reactioni] << tab;
+            consFilePtr_() << consumption_[i][reactioni] << tab;
+            prodIntFilePtr_() << productionInt_[i][reactioni] << tab;
+            consIntFilePtr_() << consumptionInt_[i][reactioni] << tab;
+            consumptionInt_[i][reactioni] = 0.0;
+            productionInt_[i][reactioni] = 0.0;
         }
         consFilePtr_() << nl;
         consIntFilePtr_() << nl;
@@ -267,6 +267,7 @@ bool Foam::functionObjects::reactionsSensitivityAnalysis<chemistryType>::read
     const dictionary& dict
 )
 {
+    fvMeshFunctionObject::read(dict);
     writeFile::read(dict);
     return true;
 }
diff --git a/src/functionObjects/field/reactionSensitivityAnalysis/reactionsSensitivityAnalysisObjects.C b/src/functionObjects/field/reactionSensitivityAnalysis/reactionsSensitivityAnalysisObjects.C
index 5784157f9b55c22bdd78036559b70c8b1ea0b483..cc34b0f1196e7c61156291823d000a8606286eea 100644
--- a/src/functionObjects/field/reactionSensitivityAnalysis/reactionsSensitivityAnalysisObjects.C
+++ b/src/functionObjects/field/reactionSensitivityAnalysis/reactionsSensitivityAnalysisObjects.C
@@ -32,19 +32,30 @@ License
 
 namespace Foam
 {
-namespace functionObjects
-{
-    // Psi-based chemistry
-    typedef reactionsSensitivityAnalysis<psiChemistryModel>
-        psiReactionsSensitivityAnalysisFunctionObject;
+// Psi-based chemistry
+typedef functionObjects::reactionsSensitivityAnalysis<psiChemistryModel>
+    psiReactionsSensitivityAnalysisFunctionObject;
 
-    defineTemplateTypeNameAndDebugWithName
-    (
-        psiReactionsSensitivityAnalysisFunctionObject,
-        "psiReactionsSensitivityAnalysis",
-        0
-    );
+defineTemplateTypeNameAndDebugWithName
+(
+    psiReactionsSensitivityAnalysisFunctionObject,
+    "psiReactionsSensitivityAnalysis",
+    0
+);
+
+// Rho-based chemistry
+typedef functionObjects::reactionsSensitivityAnalysis<rhoChemistryModel>
+    rhoReactionsSensitivityAnalysisFunctionObject;
 
+defineTemplateTypeNameAndDebugWithName
+(
+    rhoReactionsSensitivityAnalysisFunctionObject,
+    "rhoReactionsSensitivityAnalysis",
+    0
+);
+
+namespace functionObjects
+{
     addToRunTimeSelectionTable
     (
         functionObject,
@@ -52,18 +63,6 @@ namespace functionObjects
         dictionary
     );
 
-
-    // Rho-based chemistry
-    typedef reactionsSensitivityAnalysis<rhoChemistryModel>
-        rhoReactionsSensitivityAnalysisFunctionObject;
-
-    defineTemplateTypeNameAndDebugWithName
-    (
-        rhoReactionsSensitivityAnalysisFunctionObject,
-        "rhoReactionsSensitivityAnalysis",
-        0
-    );
-
     addToRunTimeSelectionTable
     (
         functionObject,
diff --git a/src/functionObjects/field/readFields/readFieldsTemplates.C b/src/functionObjects/field/readFields/readFieldsTemplates.C
index 357473ed1d9c0792f5e5de44128cac259422c178..fee32c56272a9ce7727890226de7c464f82c82bc 100644
--- a/src/functionObjects/field/readFields/readFieldsTemplates.C
+++ b/src/functionObjects/field/readFields/readFieldsTemplates.C
@@ -64,16 +64,16 @@ bool Foam::functionObjects::readFields::loadField(const word& fieldName)
         {
             // Store field on mesh database
             Log << "    Reading " << fieldName << endl;
-            tmp<VolFieldType> tvf(new VolFieldType(fieldHeader, mesh_));
-            regionFunctionObject::store(fieldName, tvf);
+            VolFieldType* vfPtr(new VolFieldType(fieldHeader, mesh_));
+            mesh_.objectRegistry::store(vfPtr);
             return true;
         }
         else if (fieldHeader.typeHeaderOk<SurfaceFieldType>(false))
         {
             // Store field on mesh database
             Log << "    Reading " << fieldName << endl;
-            tmp<SurfaceFieldType> tsf(new SurfaceFieldType(fieldHeader, mesh_));
-            regionFunctionObject::store(fieldName, tsf);
+            SurfaceFieldType* sfPtr(new SurfaceFieldType(fieldHeader, mesh_));
+            mesh_.objectRegistry::store(sfPtr);
             return true;
         }
     }
diff --git a/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C b/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C
index 2314f721fd8c5139c3f6dedc2d11db317ff99b49..fccc1b9cd168750ab4e42f4dc99974f6a4cf59dc 100644
--- a/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C
+++ b/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C
@@ -137,8 +137,8 @@ void Foam::functionObjects::regionSizeDistribution::writeAlphaFields
     // Knock out any cell not in patchRegions
     forAll(liquidCore, celli)
     {
-        label regionI = regions[celli];
-        if (patchRegions.found(regionI))
+        label regioni = regions[celli];
+        if (patchRegions.found(regioni))
         {
             backgroundAlpha[celli] = 0;
         }
@@ -146,7 +146,7 @@ void Foam::functionObjects::regionSizeDistribution::writeAlphaFields
         {
             liquidCore[celli] = 0;
 
-            scalar regionVol = regionVolume[regionI];
+            scalar regionVol = regionVolume[regioni];
             if (regionVol < maxDropletVol)
             {
                 backgroundAlpha[celli] = 0;
@@ -353,6 +353,8 @@ Foam::functionObjects::regionSizeDistribution::~regionSizeDistribution()
 
 bool Foam::functionObjects::regionSizeDistribution::read(const dictionary& dict)
 {
+    fvMeshFunctionObject::read(dict);
+
     dict.lookup("field") >> alphaName_;
     dict.lookup("patches") >> patchNames_;
     dict.lookup("threshold") >> threshold_;
@@ -598,10 +600,10 @@ bool Foam::functionObjects::regionSizeDistribution::write()
             << endl;
         forAllConstIter(Map<label>, patchRegions, iter)
         {
-            label regionI = iter.key();
+            label regioni = iter.key();
             Info<< "    " << token::TAB << iter.key()
-                << token::TAB << allRegionVolume[regionI]
-                << token::TAB << allRegionAlphaVolume[regionI] << endl;
+                << token::TAB << allRegionVolume[regioni]
+                << token::TAB << allRegionAlphaVolume[regioni] << endl;
 
         }
         Info<< endl;
@@ -658,17 +660,17 @@ bool Foam::functionObjects::regionSizeDistribution::write()
     // threshold
     forAllIter(Map<scalar>, allRegionVolume, vIter)
     {
-        label regionI = vIter.key();
+        label regioni = vIter.key();
         if
         (
-            patchRegions.found(regionI)
+            patchRegions.found(regioni)
          || vIter() >= maxDropletVol
-         || (allRegionAlphaVolume[regionI]/vIter() < threshold_)
+         || (allRegionAlphaVolume[regioni]/vIter() < threshold_)
         )
         {
             allRegionVolume.erase(vIter);
-            allRegionAlphaVolume.erase(regionI);
-            allRegionNumCells.erase(regionI);
+            allRegionAlphaVolume.erase(regioni);
+            allRegionNumCells.erase(regioni);
         }
     }
 
@@ -791,11 +793,11 @@ bool Foam::functionObjects::regionSizeDistribution::write()
                     << endl;
 
                 scalar delta = 0.0;
-                forAll(binDownCount, binI)
+                forAll(binDownCount, bini)
                 {
-                    Info<< "    " << token::TAB << binI
+                    Info<< "    " << token::TAB << bini
                         << token::TAB << delta
-                        << token::TAB << binDownCount[binI] << endl;
+                        << token::TAB << binDownCount[bini] << endl;
                     delta += deltaX;
                 }
                 Info<< endl;
@@ -844,11 +846,11 @@ bool Foam::functionObjects::regionSizeDistribution::write()
                 << endl;
 
             scalar diam = 0.0;
-            forAll(binCount, binI)
+            forAll(binCount, bini)
             {
-                Info<< "    " << token::TAB << binI
+                Info<< "    " << token::TAB << bini
                     << token::TAB << diam
-                    << token::TAB << binCount[binI] << endl;
+                    << token::TAB << binCount[bini] << endl;
 
                 diam += delta;
             }
diff --git a/src/functionObjects/field/regionSizeDistribution/regionSizeDistributionTemplates.C b/src/functionObjects/field/regionSizeDistribution/regionSizeDistributionTemplates.C
index a74e76afd0eb0e24a724bb71899e63e7057cb076..6dd27d8613ef56cf11c4fcfbdf90ba0dd1d6609d 100644
--- a/src/functionObjects/field/regionSizeDistribution/regionSizeDistributionTemplates.C
+++ b/src/functionObjects/field/regionSizeDistribution/regionSizeDistributionTemplates.C
@@ -41,12 +41,12 @@ Foam::Map<Type> Foam::functionObjects::regionSizeDistribution::regionSum
 
     forAll(fld, celli)
     {
-        label regionI = regions[celli];
+        label regioni = regions[celli];
 
-        typename Map<Type>::iterator fnd = regionToSum.find(regionI);
+        typename Map<Type>::iterator fnd = regionToSum.find(regioni);
         if (fnd == regionToSum.end())
         {
-            regionToSum.insert(regionI, fld[celli]);
+            regionToSum.insert(regioni, fld[celli]);
         }
         else
         {
diff --git a/src/functionObjects/field/streamFunction/streamFunction.C b/src/functionObjects/field/streamFunction/streamFunction.C
index f571baa16cbf253cb615c0272728f2b8bdb32e92..11ae3d05814d433ed676346b78273362d2c9c1f5 100644
--- a/src/functionObjects/field/streamFunction/streamFunction.C
+++ b/src/functionObjects/field/streamFunction/streamFunction.C
@@ -168,9 +168,9 @@ Foam::tmp<Foam::pointScalarField> Foam::functionObjects::streamFunction::calc
 
             const cellList& c = mesh_.cells();
 
-            forAll(c, cI)
+            forAll(c, ci)
             {
-                labelList zeroPoints = c[cI].labels(mesh_.faces());
+                labelList zeroPoints = c[ci].labels(mesh_.faces());
 
                 bool found = true;
 
diff --git a/src/functionObjects/field/streamLine/streamLineBase.C b/src/functionObjects/field/streamLine/streamLineBase.C
index 0a564d7baf7ebf6f57a782ff4e497a10df23dae6..0c1616d16d4ec4f1fd281e1d9a9c31d889124d01 100644
--- a/src/functionObjects/field/streamLine/streamLineBase.C
+++ b/src/functionObjects/field/streamLine/streamLineBase.C
@@ -54,12 +54,12 @@ Foam::functionObjects::streamLineBase::wallPatch() const
 
     label nFaces = 0;
 
-    forAll(patches, patchI)
+    forAll(patches, patchi)
     {
-        //if (!polyPatch::constraintType(patches[patchI].type()))
-        if (isA<wallPolyPatch>(patches[patchI]))
+        //if (!polyPatch::constraintType(patches[patchi].type()))
+        if (isA<wallPolyPatch>(patches[patchi]))
         {
-            nFaces += patches[patchI].size();
+            nFaces += patches[patchi].size();
         }
     }
 
@@ -67,12 +67,12 @@ Foam::functionObjects::streamLineBase::wallPatch() const
 
     nFaces = 0;
 
-    forAll(patches, patchI)
+    forAll(patches, patchi)
     {
-        //if (!polyPatch::constraintType(patches[patchI].type()))
-        if (isA<wallPolyPatch>(patches[patchI]))
+        //if (!polyPatch::constraintType(patches[patchi].type()))
+        if (isA<wallPolyPatch>(patches[patchi]))
         {
-            const polyPatch& pp = patches[patchI];
+            const polyPatch& pp = patches[patchi];
 
             forAll(pp, i)
             {
@@ -220,11 +220,11 @@ void Foam::functionObjects::streamLineBase::initInterpolations
 
 void Foam::functionObjects::streamLineBase::storePoint
 (
-    const label trackI,
+    const label tracki,
 
     const scalar w,
-    const label leftI,
-    const label rightI,
+    const label lefti,
+    const label righti,
 
     DynamicList<point>& newTrack,
     DynamicList<scalarList>& newScalars,
@@ -233,19 +233,19 @@ void Foam::functionObjects::streamLineBase::storePoint
 {
     label sz = newTrack.size();
 
-    const List<point>& track = allTracks_[trackI];
+    const List<point>& track = allTracks_[tracki];
 
-    newTrack.append((1.0-w)*track[leftI] + w*track[rightI]);
+    newTrack.append((1.0-w)*track[lefti] + w*track[righti]);
 
     // Scalars
     {
         newScalars.append(scalarList(allScalars_.size()));
         scalarList& newVals = newScalars[sz];
 
-        forAll(allScalars_, scalarI)
+        forAll(allScalars_, scalari)
         {
-            const scalarList& trackVals = allScalars_[scalarI][trackI];
-            newVals[scalarI] = (1.0-w)*trackVals[leftI] + w*trackVals[rightI];
+            const scalarList& trackVals = allScalars_[scalari][tracki];
+            newVals[scalari] = (1.0-w)*trackVals[lefti] + w*trackVals[righti];
         }
     }
 
@@ -254,10 +254,10 @@ void Foam::functionObjects::streamLineBase::storePoint
         newVectors.append(vectorList(allVectors_.size()));
         vectorList& newVals = newVectors[sz];
 
-        forAll(allVectors_, vectorI)
+        forAll(allVectors_, vectori)
         {
-            const vectorList& trackVals = allVectors_[vectorI][trackI];
-            newVals[vectorI] = (1.0-w)*trackVals[leftI] + w*trackVals[rightI];
+            const vectorList& trackVals = allVectors_[vectori][tracki];
+            newVals[vectori] = (1.0-w)*trackVals[lefti] + w*trackVals[righti];
         }
     }
 }
@@ -267,24 +267,24 @@ void Foam::functionObjects::streamLineBase::storePoint
 void Foam::functionObjects::streamLineBase::trimToBox
 (
     const treeBoundBox& bb,
-    const label trackI,
+    const label tracki,
     PtrList<DynamicList<point>>& newTracks,
     PtrList<DynamicList<scalarList>>& newScalars,
     PtrList<DynamicList<vectorList>>& newVectors
 ) const
 {
-    const List<point>& track = allTracks_[trackI];
+    const List<point>& track = allTracks_[tracki];
     if (track.size())
     {
         for
         (
-            label segmentI = 1;
-            segmentI < track.size();
-            segmentI++
+            label segmenti = 1;
+            segmenti < track.size();
+            segmenti++
         )
         {
-            const point& startPt = track[segmentI-1];
-            const point& endPt = track[segmentI];
+            const point& startPt = track[segmenti-1];
+            const point& endPt = track[segmenti];
 
             const vector d(endPt-startPt);
             scalar magD = mag(d);
@@ -292,14 +292,14 @@ void Foam::functionObjects::streamLineBase::trimToBox
             {
                 if (bb.contains(startPt))
                 {
-                    // Store 1.0*track[segmentI-1]+0*track[segmentI]
+                    // Store 1.0*track[segmenti-1]+0*track[segmenti]
                     storePoint
                     (
-                        trackI,
+                        tracki,
 
                         0.0,
-                        segmentI-1,
-                        segmentI,
+                        segmenti-1,
+                        segmenti,
 
                         newTracks.last(),
                         newScalars.last(),
@@ -315,11 +315,11 @@ void Foam::functionObjects::streamLineBase::trimToBox
                             // values
                             storePoint
                             (
-                                trackI,
+                                tracki,
 
                                 mag(clipPt-startPt)/magD,
-                                segmentI-1,
-                                segmentI,
+                                segmenti-1,
+                                segmenti,
 
                                 newTracks.last(),
                                 newScalars.last(),
@@ -356,11 +356,11 @@ void Foam::functionObjects::streamLineBase::trimToBox
                         // Store point and interpolated values
                         storePoint
                         (
-                            trackI,
+                            tracki,
 
                             mag(clipPt-startPt)/magD,
-                            segmentI-1,
-                            segmentI,
+                            segmenti-1,
+                            segmenti,
 
                             newTracks.last(),
                             newScalars.last(),
@@ -379,11 +379,11 @@ void Foam::functionObjects::streamLineBase::trimToBox
                             // Store point and interpolated values
                             storePoint
                             (
-                                trackI,
+                                tracki,
 
                                 mag(clipPt-startPt)/magD,
-                                segmentI-1,
-                                segmentI,
+                                segmenti-1,
+                                segmenti,
 
                                 newTracks.last(),
                                 newScalars.last(),
@@ -404,7 +404,7 @@ void Foam::functionObjects::streamLineBase::trimToBox
         {
             storePoint
             (
-                trackI,
+                tracki,
 
                 1.0,
                 track.size()-2,
@@ -427,9 +427,9 @@ void Foam::functionObjects::streamLineBase::trimToBox(const treeBoundBox& bb)
     PtrList<DynamicList<scalarList>> newScalars;
     PtrList<DynamicList<vectorList>> newVectors;
 
-    forAll(allTracks_, trackI)
+    forAll(allTracks_, tracki)
     {
-        const List<point>& track = allTracks_[trackI];
+        const List<point>& track = allTracks_[tracki];
 
         if (track.size())
         {
@@ -439,44 +439,44 @@ void Foam::functionObjects::streamLineBase::trimToBox(const treeBoundBox& bb)
             newVectors.append(new DynamicList<vectorList>(track.size()));
 
             // Trim, split and append to newTracks
-            trimToBox(bb, trackI, newTracks, newScalars, newVectors);
+            trimToBox(bb, tracki, newTracks, newScalars, newVectors);
         }
     }
 
     // Transfer newTracks to allTracks_
     allTracks_.setSize(newTracks.size());
-    forAll(allTracks_, trackI)
+    forAll(allTracks_, tracki)
     {
-        allTracks_[trackI].transfer(newTracks[trackI]);
+        allTracks_[tracki].transfer(newTracks[tracki]);
     }
     // Replace track scalars
-    forAll(allScalars_, scalarI)
+    forAll(allScalars_, scalari)
     {
-        DynamicList<scalarList>& fieldVals = allScalars_[scalarI];
+        DynamicList<scalarList>& fieldVals = allScalars_[scalari];
         fieldVals.setSize(newTracks.size());
 
-        forAll(fieldVals, trackI)
+        forAll(fieldVals, tracki)
         {
-            scalarList& trackVals = allScalars_[scalarI][trackI];
-            trackVals.setSize(newScalars[trackI].size());
-            forAll(trackVals, sampleI)
+            scalarList& trackVals = allScalars_[scalari][tracki];
+            trackVals.setSize(newScalars[tracki].size());
+            forAll(trackVals, samplei)
             {
-                trackVals[sampleI] = newScalars[trackI][sampleI][scalarI];
+                trackVals[samplei] = newScalars[tracki][samplei][scalari];
             }
         }
     }
     // Replace track vectors
-    forAll(allVectors_, vectorI)
+    forAll(allVectors_, vectori)
     {
-        DynamicList<vectorList>& fieldVals = allVectors_[vectorI];
+        DynamicList<vectorList>& fieldVals = allVectors_[vectori];
         fieldVals.setSize(newTracks.size());
-        forAll(fieldVals, trackI)
+        forAll(fieldVals, tracki)
         {
-            vectorList& trackVals = allVectors_[vectorI][trackI];
-            trackVals.setSize(newVectors[trackI].size());
-            forAll(trackVals, sampleI)
+            vectorList& trackVals = allVectors_[vectori][tracki];
+            trackVals.setSize(newVectors[tracki].size());
+            forAll(trackVals, samplei)
             {
-                trackVals[sampleI] = newVectors[trackI][sampleI][vectorI];
+                trackVals[samplei] = newVectors[tracki][samplei][vectori];
             }
         }
     }
@@ -507,6 +507,8 @@ Foam::functionObjects::streamLineBase::~streamLineBase()
 
 bool Foam::functionObjects::streamLineBase::read(const dictionary& dict)
 {
+    fvMeshFunctionObject::read(dict);
+
     Info<< type() << " " << name() << ":" << nl;
 
     dict.lookup("fields") >> fields_;
diff --git a/src/functionObjects/field/streamLine/streamLineBase.H b/src/functionObjects/field/streamLine/streamLineBase.H
index dd0083449f9cd44b58b1b8e1fe07c96cad873d7d..a87e3fd2109fb9decb105ee805da1240bd959c09 100644
--- a/src/functionObjects/field/streamLine/streamLineBase.H
+++ b/src/functionObjects/field/streamLine/streamLineBase.H
@@ -149,11 +149,11 @@ protected:
         //- Generate point and values by interpolating from existing values
         void storePoint
         (
-            const label trackI,
+            const label tracki,
 
             const scalar w,
-            const label leftI,
-            const label rightI,
+            const label lefti,
+            const label righti,
 
             DynamicList<point>& newTrack,
             DynamicList<List<scalar>>& newScalars,
@@ -164,7 +164,7 @@ protected:
         void trimToBox
         (
             const treeBoundBox& bb,
-            const label trackI,
+            const label tracki,
             PtrList<DynamicList<point>>& newTracks,
             PtrList<DynamicList<scalarList>>& newScalars,
             PtrList<DynamicList<vectorList>>& newVectors
diff --git a/src/functionObjects/field/streamLine/streamLineParticle.C b/src/functionObjects/field/streamLine/streamLineParticle.C
index 6fba3c22ab15cc09fb91aea2c5bc8f4f952f2e4b..e88f903f8a2e08833d5ed75946a8cf63e3779064 100644
--- a/src/functionObjects/field/streamLine/streamLineParticle.C
+++ b/src/functionObjects/field/streamLine/streamLineParticle.C
@@ -70,11 +70,11 @@ Foam::vector Foam::streamLineParticle::interpolateFields
     }
 
     sampledScalars_.setSize(td.vsInterp_.size());
-    forAll(td.vsInterp_, scalarI)
+    forAll(td.vsInterp_, scalari)
     {
-        sampledScalars_[scalarI].append
+        sampledScalars_[scalari].append
         (
-            td.vsInterp_[scalarI].interpolate
+            td.vsInterp_[scalari].interpolate
             (
                 position,
                 celli,
@@ -84,11 +84,11 @@ Foam::vector Foam::streamLineParticle::interpolateFields
     }
 
     sampledVectors_.setSize(td.vvInterp_.size());
-    forAll(td.vvInterp_, vectorI)
+    forAll(td.vvInterp_, vectori)
     {
-        sampledVectors_[vectorI].append
+        sampledVectors_[vectori].append
         (
-            td.vvInterp_[vectorI].interpolate
+            td.vvInterp_[vectori].interpolate
             (
                 position,
                 celli,
diff --git a/src/functionObjects/field/surfaceInterpolate/surfaceInterpolate.C b/src/functionObjects/field/surfaceInterpolate/surfaceInterpolate.C
index bd9e30e586c9bd9cf4fe2e3ed2f2fb44f3843f19..d81a37ef66fc0cf2c57c1cfc8523acc1e408fea7 100644
--- a/src/functionObjects/field/surfaceInterpolate/surfaceInterpolate.C
+++ b/src/functionObjects/field/surfaceInterpolate/surfaceInterpolate.C
@@ -74,6 +74,8 @@ bool Foam::functionObjects::surfaceInterpolate::read
     const dictionary& dict
 )
 {
+    fvMeshFunctionObject::read(dict);
+
     dict.lookup("fields") >> fieldSet_;
 
     return true;
diff --git a/src/functionObjects/field/surfaceInterpolate/surfaceInterpolateTemplates.C b/src/functionObjects/field/surfaceInterpolate/surfaceInterpolateTemplates.C
index 8a975aab22e0e5e62d23d9a703df29ee0d30d83d..8aa1aed42d525309115ce2a3867341ea54b4f75b 100644
--- a/src/functionObjects/field/surfaceInterpolate/surfaceInterpolateTemplates.C
+++ b/src/functionObjects/field/surfaceInterpolate/surfaceInterpolateTemplates.C
@@ -51,7 +51,7 @@ void Foam::functionObjects::surfaceInterpolate::interpolateFields()
         if (fieldMap.found(fld.name()))
         {
             //const word sName = "interpolate(" + fld.name() + ')';
-            const word& sName = fieldMap[fld.name()];
+            word& sName = fieldMap[fld.name()];
 
             if (obr_.found(sName))
             {
diff --git a/src/functionObjects/field/turbulenceFields/turbulenceFields.C b/src/functionObjects/field/turbulenceFields/turbulenceFields.C
index 19ac082ee0b71db79597f5d7b13639d292e4b5ae..29c1facb0e8aa22aa8b31867bc598c7b4b07dddd 100644
--- a/src/functionObjects/field/turbulenceFields/turbulenceFields.C
+++ b/src/functionObjects/field/turbulenceFields/turbulenceFields.C
@@ -146,6 +146,8 @@ Foam::functionObjects::turbulenceFields::~turbulenceFields()
 
 bool Foam::functionObjects::turbulenceFields::read(const dictionary& dict)
 {
+    fvMeshFunctionObject::read(dict);
+
     if (dict.found("field"))
     {
         fieldSet_.insert(word(dict.lookup("field")));
diff --git a/src/functionObjects/field/valueAverage/valueAverage.C b/src/functionObjects/field/valueAverage/valueAverage.C
index 4358cc23848cc16af9952d838a9ba17e53fe643b..a5a7100aed61c3f3352784f6ac3ca4842bbf7c17 100644
--- a/src/functionObjects/field/valueAverage/valueAverage.C
+++ b/src/functionObjects/field/valueAverage/valueAverage.C
@@ -106,6 +106,7 @@ Foam::functionObjects::valueAverage::~valueAverage()
 
 bool Foam::functionObjects::valueAverage::read(const dictionary& dict)
 {
+    regionFunctionObject::read(dict);
     writeFile::read(dict);
 
     dict.lookup("functionObjectName") >> functionObjectName_;
diff --git a/src/functionObjects/field/vorticity/vorticity.H b/src/functionObjects/field/vorticity/vorticity.H
index 82bf125da53c2d2732a5660577b0ca0216924c12..e78f72676bce191cdc756aabe65ce771c8fe7627 100644
--- a/src/functionObjects/field/vorticity/vorticity.H
+++ b/src/functionObjects/field/vorticity/vorticity.H
@@ -38,7 +38,7 @@ Usage
     vorticity1
     {
         type        vorticity;
-        functionObjectLibs ("libutilityFunctionObjects.so");
+        libs        ("libutilityFunctionObjects.so");
         ...
     }
     \endverbatim
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.C b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.C
index a4ee760a40975ebfb206eab1a29725797d87683f..1a36431ff3721b6a69db120c215b4e6c359eada9 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.C
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.C
@@ -56,10 +56,10 @@ Foam::edge Foam::wallBoundedParticle::currentEdge() const
     }
     else
     {
-        label faceBasePtI = mesh_.tetBasePtIs()[tetFace()];
-        label diagPtI = (faceBasePtI+diagEdge_)%f.size();
+        label faceBasePti = mesh_.tetBasePtIs()[tetFace()];
+        label diagPti = (faceBasePti+diagEdge_)%f.size();
 
-        return edge(f[faceBasePtI], f[diagPtI]);
+        return edge(f[faceBasePti], f[diagPti]);
     }
 }
 
@@ -135,7 +135,7 @@ void Foam::wallBoundedParticle::crossDiagonalEdge()
 
     const Foam::face& f = mesh_.faces()[tetFace()];
 
-    // tetPtI starts from 1, goes up to f.size()-2
+    // tetPti starts from 1, goes up to f.size()-2
 
     if (tetPt() == diagEdge_)
     {
@@ -165,7 +165,7 @@ void Foam::wallBoundedParticle::crossDiagonalEdge()
 Foam::scalar Foam::wallBoundedParticle::trackFaceTri
 (
     const vector& endPosition,
-    label& minEdgeI
+    label& minEdgei
 )
 {
     // Track p from position to endPosition
@@ -175,7 +175,7 @@ Foam::scalar Foam::wallBoundedParticle::trackFaceTri
 
     // Check which edge intersects the trajectory.
     // Project trajectory onto triangle
-    minEdgeI = -1;
+    minEdgei = -1;
     scalar minS = 1;        // end position
 
     edge currentE(-1, -1);
@@ -217,13 +217,13 @@ Foam::scalar Foam::wallBoundedParticle::trackFaceTri
                 if (s >= 0 && s < minS)
                 {
                     minS = s;
-                    minEdgeI = i;
+                    minEdgei = i;
                 }
             }
         }
     }
 
-    if (minEdgeI != -1)
+    if (minEdgei != -1)
     {
         position() += minS*(endPosition-position());
     }
@@ -299,12 +299,12 @@ Foam::wallBoundedParticle::wallBoundedParticle
     const vector& position,
     const label celli,
     const label tetFacei,
-    const label tetPtI,
+    const label tetPti,
     const label meshEdgeStart,
     const label diagEdge
 )
 :
-    particle(mesh, position, celli, tetFacei, tetPtI),
+    particle(mesh, position, celli, tetFacei, tetPti),
     meshEdgeStart_(meshEdgeStart),
     diagEdge_(diagEdge)
 {}
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.H b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.H
index 72d0c5831c0ce4bafb46f0b49f9d69d8ffedc9e1..a82b3f5b64cd0f50e10dd4a3e7849075ae831a9b 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.H
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.H
@@ -112,9 +112,9 @@ protected:
 
         //- Particle is on diagonal edge:
         //      const face& f = mesh.faces()[tetFace()]
-        //      label faceBasePtI = mesh.tetBasePtIs()[facei];
-        //      label diagPtI = (faceBasePtI+diagEdge_)%f.size();
-        //      const edge e(f[faceBasePtI], f[diagPtI]);
+        //      label faceBasePti = mesh.tetBasePtIs()[facei];
+        //      label diagPti = (faceBasePti+diagEdge_)%f.size();
+        //      const edge e(f[faceBasePti], f[diagPti]);
         label diagEdge_;
 
 
@@ -130,7 +130,7 @@ protected:
         void crossDiagonalEdge();
 
         //- Track through single triangle
-        scalar trackFaceTri(const vector& endPosition, label& minEdgeI);
+        scalar trackFaceTri(const vector& endPosition, label& minEdgei);
 
         //- Is current triangle in the track direction
         bool isTriAlongTrack(const point& endPosition) const;
@@ -225,7 +225,7 @@ public:
             const vector& position,
             const label celli,
             const label tetFacei,
-            const label tetPtI,
+            const label tetPti,
             const label meshEdgeStart,
             const label diagEdge
         );
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticleTemplates.C b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticleTemplates.C
index 7ee23cac58de22d33e535a47b3b8ae6445fc73a6..e4f151fe26d9169aa57e50318231a4ebe7b26534 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticleTemplates.C
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticleTemplates.C
@@ -172,7 +172,7 @@ Foam::scalar Foam::wallBoundedParticle::trackToEdge
               : mesh_.faceOwner()[facei_]
             );
             // Check angle to nbrCell tet. Is it in the direction of the
-            // endposition? I.e. since volume of nbr tet is positive the
+            // endposition? i.e. since volume of nbr tet is positive the
             // tracking direction should be into the tet.
             tetIndices nbrTi(nbrCelli, tetFacei_, tetPti_, mesh_);
             if ((nbrTi.faceTri(mesh_).normal() & (endPosition-position())) < 0)
@@ -241,10 +241,10 @@ Foam::scalar Foam::wallBoundedParticle::trackToEdge
         if (doTrack)
         {
             // Track across triangle. Return triangle edge crossed.
-            label triEdgeI = -1;
-            trackFraction = trackFaceTri(projectedEndPosition, triEdgeI);
+            label triEdgei = -1;
+            trackFraction = trackFaceTri(projectedEndPosition, triEdgei);
 
-            if (triEdgeI == -1)
+            if (triEdgei == -1)
             {
                 // Reached endpoint
                 //checkInside();
@@ -268,7 +268,7 @@ Foam::scalar Foam::wallBoundedParticle::trackToEdge
             const Foam::face& f = mesh_.faces()[ti.face()];
             const label fp0 = ti.faceBasePt();
 
-            if (triEdgeI == 0)
+            if (triEdgei == 0)
             {
                 if (ti.facePtA() == f.fcIndex(fp0))
                 {
@@ -305,7 +305,7 @@ Foam::scalar Foam::wallBoundedParticle::trackToEdge
                     crossDiagonalEdge();
                 }
             }
-            else if (triEdgeI == 1)
+            else if (triEdgei == 1)
             {
                 //Pout<< "Real edge." << endl;
                 diagEdge_ = -1;
@@ -314,7 +314,7 @@ Foam::scalar Foam::wallBoundedParticle::trackToEdge
                 crossEdgeConnectedFace(currentEdge());
                 patchInteraction(td, trackFraction);
             }
-            else // if (triEdgeI == 2)
+            else // if (triEdgei == 2)
             {
                 if (ti.facePtB() == f.rcIndex(fp0))
                 {
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
index bd4c5e6ccfbfe2769fa5c33d3e19f64327241a2a..0799254290c0ebbec5348878927a975aa9debe61 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
@@ -59,7 +59,7 @@ Foam::tetIndices Foam::functionObjects::wallBoundedStreamLine::findNearestTet
     const cell& cFaces = mesh_.cells()[celli];
 
     label minFacei = -1;
-    label minTetPtI = -1;
+    label minTetPti = -1;
     scalar minDistSqr = sqr(GREAT);
 
     forAll(cFaces, cFacei)
@@ -86,7 +86,7 @@ Foam::tetIndices Foam::functionObjects::wallBoundedStreamLine::findNearestTet
                 {
                     minDistSqr = d2;
                     minFacei = facei;
-                    minTetPtI = i-1;
+                    minTetPti = i-1;
                 }
                 fp = nextFp;
             }
@@ -98,7 +98,7 @@ Foam::tetIndices Foam::functionObjects::wallBoundedStreamLine::findNearestTet
     (
         celli,
         minFacei,
-        minTetPtI,
+        minTetPti,
         mesh_
     );
 }
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.C b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.C
index 2e54a5d5e10c64182eb7167a3f5de7df355ac5bf..82fccd411522471eb8426b9017b5f0abba749209 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.C
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.C
@@ -63,11 +63,11 @@ Foam::vector Foam::wallBoundedStreamLineParticle::interpolateFields
 
         // Store the scalar fields
         sampledScalars_.setSize(td.vsInterp_.size());
-        forAll(td.vsInterp_, scalarI)
+        forAll(td.vsInterp_, scalari)
         {
-            sampledScalars_[scalarI].append
+            sampledScalars_[scalari].append
             (
-                td.vsInterp_[scalarI].interpolate
+                td.vsInterp_[scalari].interpolate
                 (
                     position,
                     ti,     //celli,
@@ -78,23 +78,23 @@ Foam::vector Foam::wallBoundedStreamLineParticle::interpolateFields
 
         // Store the vector fields
         sampledVectors_.setSize(td.vvInterp_.size());
-        forAll(td.vvInterp_, vectorI)
+        forAll(td.vvInterp_, vectori)
         {
             vector positionU;
-            if (vectorI == td.UIndex_)
+            if (vectori == td.UIndex_)
             {
                 positionU = U;
             }
             else
             {
-                positionU = td.vvInterp_[vectorI].interpolate
+                positionU = td.vvInterp_[vectori].interpolate
                 (
                     position,
                     ti,     //celli,
                     facei
                 );
             }
-            sampledVectors_[vectorI].append(positionU);
+            sampledVectors_[vectori].append(positionU);
         }
     }
 
@@ -136,7 +136,7 @@ Foam::wallBoundedStreamLineParticle::wallBoundedStreamLineParticle
     const vector& position,
     const label celli,
     const label tetFacei,
-    const label tetPtI,
+    const label tetPti,
     const label meshEdgeStart,
     const label diagEdge,
     const label lifeTime
@@ -148,7 +148,7 @@ Foam::wallBoundedStreamLineParticle::wallBoundedStreamLineParticle
         position,
         celli,
         tetFacei,
-        tetPtI,
+        tetPti,
         meshEdgeStart,
         diagEdge
     ),
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.H b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.H
index b0f20d18cbc74cbb7a717e03d31331bcd03d75b9..62d6a8394021a7790c2edf8571fc4404b83e8dde 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.H
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.H
@@ -170,7 +170,7 @@ public:
             const vector& position,
             const label celli,
             const label tetFacei,
-            const label tetPtI,
+            const label tetPti,
             const label meshEdgeStart,
             const label diagEdge,
             const label lifeTime
diff --git a/src/functionObjects/field/wallShearStress/wallShearStress.C b/src/functionObjects/field/wallShearStress/wallShearStress.C
index b5e0cd858aff730ceaa7423c05b9c9b9e600287b..39b4a5ed3d56326d51f0cc238796920fc7c3ab60 100644
--- a/src/functionObjects/field/wallShearStress/wallShearStress.C
+++ b/src/functionObjects/field/wallShearStress/wallShearStress.C
@@ -92,7 +92,11 @@ Foam::functionObjects::wallShearStress::wallShearStress
     writeFile(mesh_, name, typeName, dict),
     patchSet_()
 {
-    tmp<volVectorField> wallShearStressPtr
+    read(dict);
+
+    writeFileHeader(file());
+
+    volVectorField* wallShearStressPtr
     (
         new volVectorField
         (
@@ -114,9 +118,7 @@ Foam::functionObjects::wallShearStress::wallShearStress
         )
     );
 
-    store(typeName, wallShearStressPtr);
-
-    read(dict);
+    mesh_.objectRegistry::store(wallShearStressPtr);
 }
 
 
diff --git a/src/functionObjects/field/writeCellCentres/writeCellCentres.C b/src/functionObjects/field/writeCellCentres/writeCellCentres.C
index d1f1d65fd0921071984ac593f875307f6a0caf64..fb52f26580e08da3b246d200b2afbe089b308730 100644
--- a/src/functionObjects/field/writeCellCentres/writeCellCentres.C
+++ b/src/functionObjects/field/writeCellCentres/writeCellCentres.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -62,6 +62,12 @@ Foam::functionObjects::writeCellCentres::~writeCellCentres()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+bool Foam::functionObjects::writeCellCentres::read(const dictionary& dict)
+{
+    return fvMeshFunctionObject::read(dict);
+}
+
+
 bool Foam::functionObjects::writeCellCentres::execute()
 {
     return true;
diff --git a/src/functionObjects/field/writeCellCentres/writeCellCentres.H b/src/functionObjects/field/writeCellCentres/writeCellCentres.H
index c6c050e6cd0c50dd6aaccace42d7f6c32c3d9ca9..42ee31f1a4c037269b650d9cf4a3837c12e70ac5 100644
--- a/src/functionObjects/field/writeCellCentres/writeCellCentres.H
+++ b/src/functionObjects/field/writeCellCentres/writeCellCentres.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -107,6 +107,9 @@ public:
 
     // Member Functions
 
+        //- Read the cell-centre rate data
+        virtual bool read(const dictionary&);
+
         //- Do nothing
         virtual bool execute();
 
diff --git a/src/functionObjects/field/writeCellVolumes/writeCellVolumes.C b/src/functionObjects/field/writeCellVolumes/writeCellVolumes.C
index 05bd64530d301cba61ecee45ca6514edff2fbafd..3ff4de770f57be691273eea8d8d338ca037a4d45 100644
--- a/src/functionObjects/field/writeCellVolumes/writeCellVolumes.C
+++ b/src/functionObjects/field/writeCellVolumes/writeCellVolumes.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -62,6 +62,12 @@ Foam::functionObjects::writeCellVolumes::~writeCellVolumes()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+bool Foam::functionObjects::writeCellVolumes::read(const dictionary& dict)
+{
+    return fvMeshFunctionObject::read(dict);
+}
+
+
 bool Foam::functionObjects::writeCellVolumes::execute()
 {
     return true;
diff --git a/src/functionObjects/field/writeCellVolumes/writeCellVolumes.H b/src/functionObjects/field/writeCellVolumes/writeCellVolumes.H
index 63d56124bcc25ee1482453e5fcd2633e0c99a66f..56bc4ffe22acf7b8c9763dae7a9c937dc4f3b813 100644
--- a/src/functionObjects/field/writeCellVolumes/writeCellVolumes.H
+++ b/src/functionObjects/field/writeCellVolumes/writeCellVolumes.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -106,10 +106,13 @@ public:
 
     // Member Functions
 
+        //- Read the cell-volume data
+        virtual bool read(const dictionary&);
+
         //- Do nothing
         virtual bool execute();
 
-        //- Write the cell-centre fields
+        //- Write the cell-volume fields
         virtual bool write();
 };
 
diff --git a/src/functionObjects/field/yPlus/yPlus.C b/src/functionObjects/field/yPlus/yPlus.C
index 1b69f6601b4fc0254d3222f46975ec7a5fccdb76..9ee1931edb81f1a435218d38fc2700422ceb9e83 100644
--- a/src/functionObjects/field/yPlus/yPlus.C
+++ b/src/functionObjects/field/yPlus/yPlus.C
@@ -75,9 +75,11 @@ Foam::functionObjects::yPlus::yPlus
     fvMeshFunctionObject(name, runTime, dict),
     writeFile(obr_, name, typeName, dict)
 {
+    read(dict);
+
     writeFileHeader(file());
 
-    tmp<volScalarField> tyPlusPtr
+    volScalarField* yPlusPtr
     (
         new volScalarField
         (
@@ -94,7 +96,7 @@ Foam::functionObjects::yPlus::yPlus
         )
     );
 
-    store(typeName, tyPlusPtr);
+    mesh_.objectRegistry::store(yPlusPtr);
 }
 
 
diff --git a/src/functionObjects/field/zeroGradient/zeroGradient.C b/src/functionObjects/field/zeroGradient/zeroGradient.C
new file mode 100644
index 0000000000000000000000000000000000000000..9f7a2c257e7cedf3aafd93e7a1103e65fe426f8d
--- /dev/null
+++ b/src/functionObjects/field/zeroGradient/zeroGradient.C
@@ -0,0 +1,223 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "zeroGradient.H"
+
+#include "volFields.H"
+#include "dictionary.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace functionObjects
+{
+    defineTypeNameAndDebug(zeroGradient, 0);
+
+    addToRunTimeSelectionTable
+    (
+        functionObject,
+        zeroGradient,
+        dictionary
+    );
+}
+}
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+bool Foam::functionObjects::zeroGradient::checkFormatName(const word& str)
+{
+    if (str.find("@@") == string::npos)
+    {
+        WarningInFunction
+            << "Bad result naming "
+            << "(no '@@' token found), deactivating."
+            << nl << endl;
+
+        return false;
+    }
+    else if (str == "@@")
+    {
+        WarningInFunction
+            << "Bad result naming "
+            << "(only a '@@' token found), deactivating."
+            << nl
+            << endl;
+
+        return false;
+    }
+    else
+    {
+        return true;
+    }
+}
+
+
+void Foam::functionObjects::zeroGradient::uniqWords(wordReList& lst)
+{
+    boolList retain(lst.size());
+    wordHashSet uniq;
+    forAll(lst, i)
+    {
+        const wordRe& select = lst[i];
+
+        retain[i] =
+        (
+            select.isPattern()
+         || uniq.insert(static_cast<const word&>(select))
+        );
+    }
+
+    inplaceSubset(retain, lst);
+}
+
+
+int Foam::functionObjects::zeroGradient::process(const word& fieldName)
+{
+    int state = 0;
+    apply<scalar>(fieldName, state);
+    apply<vector>(fieldName, state);
+    apply<sphericalTensor>(fieldName, state);
+    apply<symmTensor>(fieldName, state);
+    apply<tensor>(fieldName, state);
+
+    return state;
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::functionObjects::zeroGradient::zeroGradient
+(
+    const word& name,
+    const Time& runTime,
+    const dictionary& dict
+)
+:
+    fvMeshFunctionObject(name, runTime, dict),
+    selectFields_(),
+    resultName_(string::null),
+    results_()
+{
+    read(dict);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::functionObjects::zeroGradient::~zeroGradient()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+bool Foam::functionObjects::zeroGradient::read(const dictionary& dict)
+{
+    fvMeshFunctionObject::read(dict);
+
+    dict.lookup("fields") >> selectFields_;
+    uniqWords(selectFields_);
+
+    resultName_ = dict.lookupOrDefault<word>("result", type() + "(@@)");
+    return checkFormatName(resultName_);
+}
+
+
+bool Foam::functionObjects::zeroGradient::execute()
+{
+    results_.clear();
+
+    wordHashSet candidates = subsetStrings(selectFields_, mesh_.names());
+    DynamicList<word> missing(selectFields_.size());
+    DynamicList<word> ignored(selectFields_.size());
+
+    // check exact matches first
+    forAll(selectFields_, i)
+    {
+        const wordRe& select = selectFields_[i];
+        if (!select.isPattern())
+        {
+            const word& fieldName = static_cast<const word&>(select);
+
+            if (!candidates.erase(fieldName))
+            {
+                missing.append(fieldName);
+            }
+            else if (process(fieldName) < 1)
+            {
+                ignored.append(fieldName);
+            }
+        }
+    }
+
+    forAllConstIter(wordHashSet, candidates, iter)
+    {
+        process(iter.key());
+    }
+
+    if (missing.size())
+    {
+        WarningInFunction
+            << "Missing field " << missing << endl;
+    }
+    if (ignored.size())
+    {
+        WarningInFunction
+            << "Unprocessed field " << ignored << endl;
+    }
+
+    return true;
+}
+
+
+bool Foam::functionObjects::zeroGradient::write()
+{
+    if (results_.size())
+    {
+        Log << type() << ' ' << name() << " write:" << endl;
+    }
+
+    // Consistent output order
+    const wordList outputList = results_.sortedToc();
+    forAll(outputList, i)
+    {
+        const word& fieldName = outputList[i];
+
+        if (foundObject<regIOobject>(fieldName))
+        {
+            const regIOobject& io = lookupObject<regIOobject>(fieldName);
+
+            Log << "    " << fieldName << endl;
+
+            io.write();
+        }
+    }
+
+    return true;
+}
+
+
+// ************************************************************************* //
diff --git a/src/functionObjects/field/zeroGradient/zeroGradient.H b/src/functionObjects/field/zeroGradient/zeroGradient.H
new file mode 100644
index 0000000000000000000000000000000000000000..3ceda2cefe63552e8757a09df5ee9535594a4fc6
--- /dev/null
+++ b/src/functionObjects/field/zeroGradient/zeroGradient.H
@@ -0,0 +1,187 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::zeroGradient
+
+Group
+    grpFVFunctionObjects
+
+Description
+    This function object creates a volume field with zero-gradient
+    boundary conditions from another volume field.
+
+    The result can be used, for example, to post-process near-wall
+    field values.
+
+    Example of function object specification:
+    \verbatim
+    zeroGrad
+    {
+        type        zeroGradient;
+        libs        ("libfieldFunctionObjects.so");
+        fields      (U "(T|k|epsilon|omega)");
+        result      @@nearWall;
+        ...
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property | Description                | Required  | Default value
+        type     | type name: zeroGradient    | yes       |
+        fields   | Name of fields to process  | yes       |
+        result   | Name of results            | no        | zeroGradient(@@)
+        log      | Log to standard output     | no        | no
+    \endtable
+
+    A list of fields can contain exact names or regular expressions.
+    The token '\@\@' in the result name is replaced by the name of the source
+    field.
+
+    The function object will skip over fields that would not benefit
+    - ie, only processor, empty, zeroGradient, symmetry patches.
+    This check should also prevent processing fields multiple times.
+
+SourceFiles
+    zeroGradient.C
+    zeroGradientTemplates.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef functionObjects_zeroGradient_H
+#define functionObjects_zeroGradient_H
+
+#include "fvMeshFunctionObject.H"
+#include "volFieldsFwd.H"
+#include "OFstream.H"
+#include "wordReList.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace functionObjects
+{
+
+/*---------------------------------------------------------------------------*\
+                        Class zeroGradient Declaration
+\*---------------------------------------------------------------------------*/
+
+class zeroGradient
+:
+    public fvMeshFunctionObject
+{
+    // Private data
+
+        //- Name of fields to process
+        wordReList selectFields_;
+
+        //- Formatting for the result fields.
+        word resultName_;
+
+        //- Hashed names of result fields, and their type
+        HashTable<word> results_;
+
+
+    // Private Member Functions
+
+        //- Check that the word contains the appropriate substitution token(s).
+        static bool checkFormatName(const word&);
+
+        //- Eliminate duplicate 'word' entries
+        static void uniqWords(wordReList&);
+
+
+        //- Accept unless field only has constraint patches
+        //  (ie, empty/zero-gradient/processor).
+        //  This should also avoid fields that were already processed by
+        //  zeroGradient.
+        template<class Type>
+        static bool accept(const GeometricField<Type, fvPatchField, volMesh>&);
+
+        //- Apply for the volume field type
+        template<class Type>
+        int apply(const word& inputName, int& state);
+
+        //- Process by trying to apply for various volume field types.
+        int process(const word& inputName);
+
+
+        //- Disallow default bitwise copy construct
+        zeroGradient(const zeroGradient&) = delete;
+
+        //- Disallow default bitwise assignment
+        void operator=(const zeroGradient&) = delete;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("zeroGradient");
+
+
+    // Constructors
+
+        //- Construct from Time and dictionary
+        zeroGradient
+        (
+            const word& name,
+            const Time& runTime,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~zeroGradient();
+
+
+    // Member Functions
+
+        //- Read the zeroGradient specification
+        virtual bool read(const dictionary& dict);
+
+        //- Calculate the zeroGradient fields
+        virtual bool execute();
+
+        //- Write the zeroGradient fields
+        virtual bool write();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace functionObjects
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "zeroGradientTemplates.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/functionObjects/field/zeroGradient/zeroGradientTemplates.C b/src/functionObjects/field/zeroGradient/zeroGradientTemplates.C
new file mode 100644
index 0000000000000000000000000000000000000000..c900f9575d04c14352e4c629c6dc49f285c87e8f
--- /dev/null
+++ b/src/functionObjects/field/zeroGradient/zeroGradientTemplates.C
@@ -0,0 +1,118 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "polyPatch.H"
+#include "Time.H"
+#include "zeroGradientFvPatchField.H"
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+template<class Type>
+bool Foam::functionObjects::zeroGradient::accept
+(
+    const GeometricField<Type, fvPatchField, volMesh>& input
+)
+{
+    const typename GeometricField<Type, fvPatchField, volMesh>::Boundary&
+        patches = input.boundaryField();
+
+    forAll(patches, patchi)
+    {
+        if (!polyPatch::constraintType(patches[patchi].patch().patch().type()))
+        {
+            return true;
+        }
+    }
+
+    return false;
+}
+
+
+template<class Type>
+int Foam::functionObjects::zeroGradient::apply
+(
+    const word& inputName,
+    int& state
+)
+{
+    typedef GeometricField<Type, fvPatchField, volMesh> VolFieldType;
+
+    // State: return 0 (not-processed), -1 (skip), +1 ok
+
+    // Already done, or not available
+    if (state || !foundObject<VolFieldType>(inputName))
+    {
+        return state;
+    }
+
+    const VolFieldType& input = lookupObject<VolFieldType>(inputName);
+
+    if (!returnReduce(accept(input), orOp<bool>()))
+    {
+        state = -1;
+        return state;
+    }
+
+    word outputName(resultName_);
+    outputName.replace("@@", inputName);
+
+    // Also save the field-type, just in case we want it later
+    results_.set(outputName, VolFieldType::typeName);
+
+    if (!foundObject<VolFieldType>(outputName))
+    {
+        tmp<VolFieldType> tzg
+        (
+            new VolFieldType
+            (
+                IOobject
+                (
+                    outputName,
+                    time_.timeName(),
+                    mesh_,
+                    IOobject::NO_READ,
+                    IOobject::NO_WRITE
+                ),
+                mesh_,
+                dimensioned<Type>("0", input.dimensions(), Zero),
+                zeroGradientFvPatchField<Type>::typeName
+            )
+        );
+
+        store(outputName, tzg);
+    }
+
+    VolFieldType& output =
+        const_cast<VolFieldType&>(lookupObject<VolFieldType>(outputName));
+
+    output = input;
+    output.correctBoundaryConditions();
+
+    state = +1;
+    return state;
+}
+
+
+// ************************************************************************* //
diff --git a/src/functionObjects/forces/forceCoeffs/forceCoeffs.C b/src/functionObjects/forces/forceCoeffs/forceCoeffs.C
index de824dd2e96bd042387af8ab82c5687190216d18..221f1fea638885b5c35016faefa947426415abda 100644
--- a/src/functionObjects/forces/forceCoeffs/forceCoeffs.C
+++ b/src/functionObjects/forces/forceCoeffs/forceCoeffs.C
@@ -109,24 +109,24 @@ void Foam::functionObjects::forceCoeffs::writeBinHeader
 
     vectorField binPoints(nBin_);
     writeCommented(os, "x co-ords  :");
-    forAll(binPoints, pointI)
+    forAll(binPoints, pointi)
     {
-        binPoints[pointI] = (binMin_ + (pointI + 1)*binDx_)*binDir_;
-        os << tab << binPoints[pointI].x();
+        binPoints[pointi] = (binMin_ + (pointi + 1)*binDx_)*binDir_;
+        os << tab << binPoints[pointi].x();
     }
     os << nl;
 
     writeCommented(os, "y co-ords  :");
-    forAll(binPoints, pointI)
+    forAll(binPoints, pointi)
     {
-        os << tab << binPoints[pointI].y();
+        os << tab << binPoints[pointi].y();
     }
     os << nl;
 
     writeCommented(os, "z co-ords  :");
-    forAll(binPoints, pointI)
+    forAll(binPoints, pointi)
     {
-        os << tab << binPoints[pointI].z();
+        os << tab << binPoints[pointi].z();
     }
     os << nl;
 
@@ -156,25 +156,27 @@ void Foam::functionObjects::forceCoeffs::writeIntegratedData
     const List<Field<scalar>>& coeff
 ) const
 {
+    if (!log)
+    {
+        return;
+    }
+
     scalar pressure = sum(coeff[0]);
     scalar viscous = sum(coeff[1]);
     scalar porous = sum(coeff[2]);
     scalar total = pressure + viscous + porous;
 
-    if (log)
-    {
-        Info<< "        " << title << "       : " << total << token::TAB
-            << "("
-            << "pressure: " << pressure << token::TAB
-            << "viscous: " << viscous;
-
-        if (porosity_)
-        {
-            Info<< token::TAB << "porous: " << porous;
-        }
+    Info<< "        " << title << "       : " << total << token::TAB
+        << "("
+        << "pressure: " << pressure << token::TAB
+        << "viscous: " << viscous;
 
-        Info<< ")" << endl;
+    if (porosity_)
+    {
+        Info<< token::TAB << "porous: " << porous;
     }
+
+    Info<< ")" << endl;
 }
 
 
@@ -186,15 +188,15 @@ void Foam::functionObjects::forceCoeffs::writeBinData
 {
     os  << obr_.time().value();
 
-    for (label binI = 0; binI < nBin_; binI++)
+    for (label bini = 0; bini < nBin_; bini++)
     {
-        scalar total = coeffs[0][binI] + coeffs[1][binI] + coeffs[2][binI];
+        scalar total = coeffs[0][bini] + coeffs[1][bini] + coeffs[2][bini];
 
-        os  << tab << total << tab << coeffs[0][binI] << tab << coeffs[1][binI];
+        os  << tab << total << tab << coeffs[0][bini] << tab << coeffs[1][bini];
 
         if (porosity_)
         {
-            os  << tab << coeffs[2][binI];
+            os  << tab << coeffs[2][bini];
         }
     }
 
@@ -256,7 +258,7 @@ bool Foam::functionObjects::forceCoeffs::read(const dictionary& dict)
     {
         const fvMesh& mesh = refCast<const fvMesh>(obr_);
 
-        tmp<volVectorField> tforceCoeff
+        volVectorField* forceCoeffPtr
         (
             new volVectorField
             (
@@ -273,9 +275,9 @@ bool Foam::functionObjects::forceCoeffs::read(const dictionary& dict)
             )
         );
 
-        store(tforceCoeff().name(), tforceCoeff);
+        mesh_.objectRegistry::store(forceCoeffPtr);
 
-        tmp<volVectorField> tmomentCoeff
+        volVectorField* momentCoeffPtr
         (
             new volVectorField
             (
@@ -292,7 +294,7 @@ bool Foam::functionObjects::forceCoeffs::read(const dictionary& dict)
             )
         );
 
-        store(tmomentCoeff().name(), tmomentCoeff);
+        mesh_.objectRegistry::store(momentCoeffPtr);
     }
 
     return true;
@@ -361,11 +363,11 @@ bool Foam::functionObjects::forceCoeffs::execute()
             {
                 forAll(liftCoeffs, i)
                 {
-                    for (label binI = 1; binI < nBin_; binI++)
+                    for (label bini = 1; bini < nBin_; bini++)
                     {
-                        liftCoeffs[i][binI] += liftCoeffs[i][binI-1];
-                        dragCoeffs[i][binI] += dragCoeffs[i][binI-1];
-                        momentCoeffs[i][binI] += momentCoeffs[i][binI-1];
+                        liftCoeffs[i][bini] += liftCoeffs[i][bini-1];
+                        dragCoeffs[i][bini] += dragCoeffs[i][bini-1];
+                        momentCoeffs[i][bini] += momentCoeffs[i][bini-1];
                     }
                 }
             }
@@ -388,21 +390,21 @@ bool Foam::functionObjects::forceCoeffs::execute()
     if (writeFields_)
     {
         const volVectorField& force =
-            obr_.lookupObject<volVectorField>(fieldName("force"));
+            lookupObject<volVectorField>(fieldName("force"));
 
         const volVectorField& moment =
-            obr_.lookupObject<volVectorField>(fieldName("moment"));
+            lookupObject<volVectorField>(fieldName("moment"));
 
         volVectorField& forceCoeff =
             const_cast<volVectorField&>
             (
-                obr_.lookupObject<volVectorField>(fieldName("forceCoeff"))
+                lookupObject<volVectorField>(fieldName("forceCoeff"))
             );
 
         volVectorField& momentCoeff =
             const_cast<volVectorField&>
             (
-                obr_.lookupObject<volVectorField>(fieldName("momentCoeff"))
+                lookupObject<volVectorField>(fieldName("momentCoeff"))
             );
 
         dimensionedScalar f0("f0", dimForce, Aref_*pDyn);
@@ -421,10 +423,10 @@ bool Foam::functionObjects::forceCoeffs::write()
     if (writeFields_)
     {
         const volVectorField& forceCoeff =
-            obr_.lookupObject<volVectorField>(fieldName("forceCoeff"));
+            lookupObject<volVectorField>(fieldName("forceCoeff"));
 
         const volVectorField& momentCoeff =
-            obr_.lookupObject<volVectorField>(fieldName("momentCoeff"));
+            lookupObject<volVectorField>(fieldName("momentCoeff"));
 
         forceCoeff.write();
         momentCoeff.write();
diff --git a/src/functionObjects/forces/forces/forces.C b/src/functionObjects/forces/forces/forces.C
index 371569f6807fbfd75c38716319aa1b8f91128ea8..1a7018fb4cab8a1fef900d68a021182d0ba12970 100644
--- a/src/functionObjects/forces/forces/forces.C
+++ b/src/functionObjects/forces/forces/forces.C
@@ -126,24 +126,24 @@ void Foam::functionObjects::forces::writeBinHeader
 
     vectorField binPoints(nBin_);
     writeCommented(os, "x co-ords  :");
-    forAll(binPoints, pointI)
+    forAll(binPoints, pointi)
     {
-        binPoints[pointI] = (binMin_ + (pointI + 1)*binDx_)*binDir_;
-        os  << tab << binPoints[pointI].x();
+        binPoints[pointi] = (binMin_ + (pointi + 1)*binDx_)*binDir_;
+        os  << tab << binPoints[pointi].x();
     }
     os  << nl;
 
     writeCommented(os, "y co-ords  :");
-    forAll(binPoints, pointI)
+    forAll(binPoints, pointi)
     {
-        os  << tab << binPoints[pointI].y();
+        os  << tab << binPoints[pointi].y();
     }
     os  << nl;
 
     writeCommented(os, "z co-ords  :");
-    forAll(binPoints, pointI)
+    forAll(binPoints, pointi)
     {
-        os  << tab << binPoints[pointI].z();
+        os  << tab << binPoints[pointi].z();
     }
     os  << nl;
 
@@ -223,8 +223,8 @@ void Foam::functionObjects::forces::initialiseBins()
         scalar binMax = -GREAT;
         forAllConstIter(labelHashSet, patchSet_, iter)
         {
-            label patchI = iter.key();
-            const polyPatch& pp = pbm[patchI];
+            label patchi = iter.key();
+            const polyPatch& pp = pbm[patchi];
             scalarField d(pp.faceCentres() & binDir_);
             binMin_ = min(min(d), binMin_);
             binMax = max(max(d), binMax);
@@ -245,8 +245,8 @@ void Foam::functionObjects::forces::initialiseBins()
 
                 forAll(cellZoneIDs, i)
                 {
-                    label zoneI = cellZoneIDs[i];
-                    const cellZone& cZone = mesh_.cellZones()[zoneI];
+                    label zonei = cellZoneIDs[i];
+                    const cellZone& cZone = mesh_.cellZones()[zonei];
                     const scalarField d(dd, cZone);
                     binMin_ = min(min(d), binMin_);
                     binMax = max(max(d), binMax);
@@ -497,7 +497,7 @@ void Foam::functionObjects::forces::applyBins
 
 void Foam::functionObjects::forces::addToFields
 (
-    const label patchI,
+    const label patchi,
     const vectorField& Md,
     const vectorField& fN,
     const vectorField& fT,
@@ -515,7 +515,7 @@ void Foam::functionObjects::forces::addToFields
             lookupObject<volVectorField>(fieldName("force"))
         );
 
-    vectorField& pf = force.boundaryFieldRef()[patchI];
+    vectorField& pf = force.boundaryFieldRef()[patchi];
     pf += fN + fT + fP;
 
     volVectorField& moment =
@@ -524,7 +524,7 @@ void Foam::functionObjects::forces::addToFields
             lookupObject<volVectorField>(fieldName("moment"))
         );
 
-    vectorField& pm = moment.boundaryFieldRef()[patchI];
+    vectorField& pm = moment.boundaryFieldRef()[patchi];
     pm += Md;
 }
 
@@ -557,9 +557,9 @@ void Foam::functionObjects::forces::addToFields
 
     forAll(cellIDs, i)
     {
-        label cellI = cellIDs[i];
-        force[cellI] += fN[i] + fT[i] + fP[i];
-        moment[cellI] += Md[i];
+        label celli = cellIDs[i];
+        force[celli] += fN[i] + fT[i] + fP[i];
+        moment[celli] += Md[i];
     }
 }
 
@@ -934,7 +934,7 @@ bool Foam::functionObjects::forces::read(const dictionary& dict)
     {
         Info << "    Fields will be written" << endl;
 
-        tmp<volVectorField> tforce
+        volVectorField* forcePtr
         (
             new volVectorField
             (
@@ -951,9 +951,9 @@ bool Foam::functionObjects::forces::read(const dictionary& dict)
             )
         );
 
-        store(tforce().name(), tforce);
+        mesh_.objectRegistry::store(forcePtr);
 
-        tmp<volVectorField> tmoment
+        volVectorField* momentPtr
         (
             new volVectorField
             (
@@ -970,7 +970,7 @@ bool Foam::functionObjects::forces::read(const dictionary& dict)
             )
         );
 
-        store(tmoment().name(), tmoment);
+        mesh_.objectRegistry::store(momentPtr);
     }
 
     return true;
@@ -991,33 +991,33 @@ void Foam::functionObjects::forces::calcForcesMoment()
 
         forAllConstIter(labelHashSet, patchSet_, iter)
         {
-            label patchI = iter.key();
+            label patchi = iter.key();
 
             vectorField Md
             (
-                mesh_.C().boundaryField()[patchI] - coordSys_.origin()
+                mesh_.C().boundaryField()[patchi] - coordSys_.origin()
             );
 
-            scalarField sA(mag(Sfb[patchI]));
+            scalarField sA(mag(Sfb[patchi]));
 
             // Normal force = surfaceUnitNormal*(surfaceNormal & forceDensity)
             vectorField fN
             (
-                Sfb[patchI]/sA
+                Sfb[patchi]/sA
                *(
-                    Sfb[patchI] & fD.boundaryField()[patchI]
+                    Sfb[patchi] & fD.boundaryField()[patchi]
                 )
             );
 
             // Tangential force (total force minus normal fN)
-            vectorField fT(sA*fD.boundaryField()[patchI] - fN);
+            vectorField fT(sA*fD.boundaryField()[patchi] - fN);
 
             // Porous force
             vectorField fP(Md.size(), Zero);
 
-            addToFields(patchI, Md, fN, fT, fP);
+            addToFields(patchi, Md, fN, fT, fP);
 
-            applyBins(Md, fN, fT, fP, mesh_.C().boundaryField()[patchI]);
+            applyBins(Md, fN, fT, fP, mesh_.C().boundaryField()[patchi]);
         }
     }
     else
@@ -1035,25 +1035,25 @@ void Foam::functionObjects::forces::calcForcesMoment()
 
         forAllConstIter(labelHashSet, patchSet_, iter)
         {
-            label patchI = iter.key();
+            label patchi = iter.key();
 
             vectorField Md
             (
-                mesh_.C().boundaryField()[patchI] - coordSys_.origin()
+                mesh_.C().boundaryField()[patchi] - coordSys_.origin()
             );
 
             vectorField fN
             (
-                rho(p)*Sfb[patchI]*(p.boundaryField()[patchI] - pRef)
+                rho(p)*Sfb[patchi]*(p.boundaryField()[patchi] - pRef)
             );
 
-            vectorField fT(Sfb[patchI] & devRhoReffb[patchI]);
+            vectorField fT(Sfb[patchi] & devRhoReffb[patchi]);
 
             vectorField fP(Md.size(), Zero);
 
-            addToFields(patchI, Md, fN, fT, fP);
+            addToFields(patchi, Md, fN, fT, fP);
 
-            applyBins(Md, fN, fT, fP, mesh_.C().boundaryField()[patchI]);
+            applyBins(Md, fN, fT, fP, mesh_.C().boundaryField()[patchi]);
         }
     }
 
@@ -1085,8 +1085,8 @@ void Foam::functionObjects::forces::calcForcesMoment()
 
             forAll(cellZoneIDs, i)
             {
-                label zoneI = cellZoneIDs[i];
-                const cellZone& cZone = mesh_.cellZones()[zoneI];
+                label zonei = cellZoneIDs[i];
+                const cellZone& cZone = mesh_.cellZones()[zonei];
 
                 const vectorField d(mesh_.C(), cZone);
                 const vectorField fP(fPTot, cZone);
diff --git a/src/functionObjects/forces/forces/forces.H b/src/functionObjects/forces/forces/forces.H
index 2d6b1eff94ca1f9c4c36512f7a7d646d17ec2eb8..0bc8ab395481f1c3c9ac5b1e75cf8a5fcbd27f54 100644
--- a/src/functionObjects/forces/forces/forces.H
+++ b/src/functionObjects/forces/forces/forces.H
@@ -305,7 +305,7 @@ protected:
         //- Add patch contributions to force and moment fields
         void addToFields
         (
-            const label patchI,
+            const label patchi,
             const vectorField& Md,
             const vectorField& fN,
             const vectorField& fT,
diff --git a/src/functionObjects/graphics/runTimePostProcessing/pathline.C b/src/functionObjects/graphics/runTimePostProcessing/pathline.C
index 7cba153645ababd5fb3751cddc5dc4a879cb6118..aba780e5ed9741ebba4eeb98658ecf443a4d5c41 100644
--- a/src/functionObjects/graphics/runTimePostProcessing/pathline.C
+++ b/src/functionObjects/graphics/runTimePostProcessing/pathline.C
@@ -75,14 +75,14 @@ const Foam::NamedEnum
 
 void Foam::functionObjects::runTimePostPro::pathline::addLines
 (
-    const label frameI,
+    const label framei,
     vtkActor* actor,
     vtkPolyData* data
 ) const
 {
     geometryBase::initialiseActor(actor);
 
-    vector colour = lineColour_->value(frameI);
+    vector colour = lineColour_->value(framei);
     actor->GetProperty()->SetColor(colour[0], colour[1], colour[2]);
 
     vtkPolyDataMapper* mapper =
diff --git a/src/functionObjects/graphics/runTimePostProcessing/pathline.H b/src/functionObjects/graphics/runTimePostProcessing/pathline.H
index 20d21f872366c19c811e9389176b4769fba87060..209a2887cd80840633f2d155026195f9e792ef99 100644
--- a/src/functionObjects/graphics/runTimePostProcessing/pathline.H
+++ b/src/functionObjects/graphics/runTimePostProcessing/pathline.H
@@ -104,7 +104,7 @@ protected:
         //- Add the pathlines to the renderer
         void addLines
         (
-            const label frameI,
+            const label framei,
             vtkActor* actor,
             vtkPolyData* data
         ) const;
diff --git a/src/functionObjects/graphics/runTimePostProcessing/pointData.C b/src/functionObjects/graphics/runTimePostProcessing/pointData.C
index cfda633b91c06735e754c014efa52ac536c28c91..c5581a600137eed85554bd9f5fa75e4172e7691b 100644
--- a/src/functionObjects/graphics/runTimePostProcessing/pointData.C
+++ b/src/functionObjects/graphics/runTimePostProcessing/pointData.C
@@ -72,7 +72,7 @@ const Foam::NamedEnum
 
 void Foam::functionObjects::runTimePostPro::pointData::addPoints
 (
-    const label frameI,
+    const label framei,
     vtkActor* actor,
     vtkPolyDataMapper* mapper,
     vtkPolyData* data
@@ -80,7 +80,7 @@ void Foam::functionObjects::runTimePostPro::pointData::addPoints
 {
     geometryBase::initialiseActor(actor);
 
-    vector colour = pointColour_->value(frameI);
+    vector colour = pointColour_->value(framei);
     actor->GetProperty()->SetColor(colour[0], colour[1], colour[2]);
 
     switch (representation_)
diff --git a/src/functionObjects/graphics/runTimePostProcessing/pointData.H b/src/functionObjects/graphics/runTimePostProcessing/pointData.H
index a3d4c0578b4b14f6ba92a0a7f03c7f6a58840381..1ced613bd5a3a014d5bd88dd1448d0bc6b3cf67d 100644
--- a/src/functionObjects/graphics/runTimePostProcessing/pointData.H
+++ b/src/functionObjects/graphics/runTimePostProcessing/pointData.H
@@ -102,7 +102,7 @@ protected:
         //- Add the point data to the renderer
         void addPoints
         (
-            const label frameI,
+            const label framei,
             vtkActor* actor,
             vtkPolyDataMapper* mapper,
             vtkPolyData* data
diff --git a/src/functionObjects/graphics/runTimePostProcessing/runTimePostProcessing.C b/src/functionObjects/graphics/runTimePostProcessing/runTimePostProcessing.C
index 3fdf57ad8e73a2d614191624929e3acbb6c09d8c..0b46ab48ff40dd8fc5dfa790d4c62b84f7595299 100644
--- a/src/functionObjects/graphics/runTimePostProcessing/runTimePostProcessing.C
+++ b/src/functionObjects/graphics/runTimePostProcessing/runTimePostProcessing.C
@@ -90,6 +90,8 @@ Foam::functionObjects::runTimePostProcessing::~runTimePostProcessing()
 
 bool Foam::functionObjects::runTimePostProcessing::read(const dictionary& dict)
 {
+    fvMeshFunctionObject::read(dict);
+
     Info<< type() << " " << name() << ": reading post-processing data" << endl;
 
     scene_.read(dict);
diff --git a/src/functionObjects/lagrangian/dsmcFields/dsmcFields.C b/src/functionObjects/lagrangian/dsmcFields/dsmcFields.C
index 6c70937e4d3c6ae5a198b31720efb36b24d619f0..b2b97c6c1de0aa27be0dc11b7d11dd84b9a719f7 100644
--- a/src/functionObjects/lagrangian/dsmcFields/dsmcFields.C
+++ b/src/functionObjects/lagrangian/dsmcFields/dsmcFields.C
@@ -75,6 +75,7 @@ Foam::functionObjects::dsmcFields::~dsmcFields()
 
 bool Foam::functionObjects::dsmcFields::read(const dictionary& dict)
 {
+    fvMeshFunctionObject::read(dict);
     return true;
 }
 
diff --git a/src/functionObjects/lagrangian/dsmcFields/dsmcFields.H b/src/functionObjects/lagrangian/dsmcFields/dsmcFields.H
index d2a4c6df1adf5cc5f1fefde5f6209d46ec065ec1..396c84316414921da2f30f47dc882c6b469a8e85 100644
--- a/src/functionObjects/lagrangian/dsmcFields/dsmcFields.H
+++ b/src/functionObjects/lagrangian/dsmcFields/dsmcFields.H
@@ -41,7 +41,7 @@ Description
     dsmcFields1
     {
         type        dsmcFields;
-        functionObjectLibs ("libutilityFunctionObjects.so");
+        libs        ("libutilityFunctionObjects.so");
         ...
     }
     \endverbatim
diff --git a/src/functionObjects/solvers/scalarTransport/scalarTransport.H b/src/functionObjects/solvers/scalarTransport/scalarTransport.H
index 032f795813608bb9eb3b932765276d7145f862ac..e6020af39c669c9495908d8ef5a770bd91ef444a 100644
--- a/src/functionObjects/solvers/scalarTransport/scalarTransport.H
+++ b/src/functionObjects/solvers/scalarTransport/scalarTransport.H
@@ -103,9 +103,6 @@ class scalarTransport
         //- Name of field to process
         word fieldName_;
 
-        //- On/off switch
-        bool active_;
-
         //- Name of flux field (optional)
         word phiName_;
 
diff --git a/src/functionObjects/utilities/abort/abort.C b/src/functionObjects/utilities/abort/abort.C
index 54853319ec9f2247a82d4cab2f5c90fcf292b166..90a8db66b4d06f5c2be059a028f0799ef51d94eb 100644
--- a/src/functionObjects/utilities/abort/abort.C
+++ b/src/functionObjects/utilities/abort/abort.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -114,6 +114,8 @@ Foam::functionObjects::abort::~abort()
 
 bool Foam::functionObjects::abort::read(const dictionary& dict)
 {
+    functionObject::read(dict);
+
     if (dict.found("action"))
     {
         action_ = actionTypeNames_.read(dict.lookup("action"));
diff --git a/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C b/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C
index 33d2227e650e1cf869f77b5cb8a40935494d2fc8..b1a12b48cd7de31486f6a5fd71bf2d3e644e5850 100644
--- a/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C
+++ b/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C
@@ -184,6 +184,8 @@ bool Foam::codedFunctionObject::end()
 
 bool Foam::codedFunctionObject::read(const dictionary& dict)
 {
+    functionObject::read(dict);
+
     // Backward compatibility
     if (dict.found("redirectType"))
     {
diff --git a/src/functionObjects/utilities/removeRegisteredObject/removeRegisteredObject.C b/src/functionObjects/utilities/removeRegisteredObject/removeRegisteredObject.C
index 76b51e732b522801f7e7281fd7d4ab29c5de18a5..e9776316f211ecd755307c5242bedccdc2849917 100644
--- a/src/functionObjects/utilities/removeRegisteredObject/removeRegisteredObject.C
+++ b/src/functionObjects/utilities/removeRegisteredObject/removeRegisteredObject.C
@@ -72,6 +72,8 @@ Foam::functionObjects::removeRegisteredObject::~removeRegisteredObject()
 
 bool Foam::functionObjects::removeRegisteredObject::read(const dictionary& dict)
 {
+    regionFunctionObject::read(dict);
+
     dict.lookup("objects") >> objectNames_;
 
     return true;
diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/averageCondition/averageCondition.C b/src/functionObjects/utilities/runTimeControl/runTimeCondition/averageCondition/averageCondition.C
index c4a7e9f6039f1228b6c820ce0c1f3611b9236dcb..8f0c5d72afafc0303b731cf7fe28b29a46fa8763 100644
--- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/averageCondition/averageCondition.C
+++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/averageCondition/averageCondition.C
@@ -64,14 +64,14 @@ Foam::functionObjects::runTimeControls::averageCondition::averageCondition
     {
         const dictionary& dict = conditionDict();
 
-        forAll(fieldNames_, fieldI)
+        forAll(fieldNames_, fieldi)
         {
-            const word& fieldName = fieldNames_[fieldI];
+            const word& fieldName = fieldNames_[fieldi];
 
             if (dict.found(fieldName))
             {
                 const dictionary& valueDict = dict.subDict(fieldName);
-                totalTime_[fieldI] = readScalar(valueDict.lookup("totalTime"));
+                totalTime_[fieldi] = readScalar(valueDict.lookup("totalTime"));
             }
         }
     }
@@ -101,11 +101,11 @@ bool Foam::functionObjects::runTimeControls::averageCondition::apply()
 
     DynamicList<label> unprocessedFields(fieldNames_.size());
 
-    forAll(fieldNames_, fieldI)
+    forAll(fieldNames_, fieldi)
     {
-        const word& fieldName(fieldNames_[fieldI]);
+        const word& fieldName(fieldNames_[fieldi]);
 
-        scalar Dt = totalTime_[fieldI];
+        scalar Dt = totalTime_[fieldi];
         scalar alpha = (Dt - dt)/Dt;
         scalar beta = dt/Dt;
 
@@ -133,10 +133,10 @@ bool Foam::functionObjects::runTimeControls::averageCondition::apply()
 
         if (!processed)
         {
-            unprocessedFields.append(fieldI);
+            unprocessedFields.append(fieldi);
         }
 
-        totalTime_[fieldI] += dt;
+        totalTime_[fieldi] += dt;
     }
 
     if (unprocessedFields.size())
@@ -147,8 +147,8 @@ bool Foam::functionObjects::runTimeControls::averageCondition::apply()
 
         forAll(unprocessedFields, i)
         {
-            label fieldI = unprocessedFields[i];
-            Info<< "        " << fieldNames_[fieldI] << nl;
+            label fieldi = unprocessedFields[i];
+            Info<< "        " << fieldNames_[fieldi] << nl;
         }
     }
 
@@ -162,20 +162,20 @@ void Foam::functionObjects::runTimeControls::averageCondition::write()
 {
     dictionary& conditionDict = this->conditionDict();
 
-    forAll(fieldNames_, fieldI)
+    forAll(fieldNames_, fieldi)
     {
-        const word& fieldName = fieldNames_[fieldI];
+        const word& fieldName = fieldNames_[fieldi];
 
         // value dictionary should be present - mean values are written there
         if (conditionDict.found(fieldName))
         {
             dictionary& valueDict = conditionDict.subDict(fieldName);
-            valueDict.add("totalTime", totalTime_[fieldI], true);
+            valueDict.add("totalTime", totalTime_[fieldi], true);
         }
         else
         {
             dictionary valueDict;
-            valueDict.add("totalTime", totalTime_[fieldI], true);
+            valueDict.add("totalTime", totalTime_[fieldi], true);
             conditionDict.add(fieldName, valueDict);
         }
     }
diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.C b/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.C
index 4d5a580f02587763fe85b292d37deb851c16fd2b..df35537bad4a03f3b832f5cf54e492795336f735 100644
--- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.C
+++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.C
@@ -132,15 +132,15 @@ apply()
 
     List<scalar> result(fieldNames_.size(), -VGREAT);
 
-    forAll(fieldNames_, fieldI)
+    forAll(fieldNames_, fieldi)
     {
-        const word& fieldName = fieldNames_[fieldI];
+        const word& fieldName = fieldNames_[fieldi];
 
         if (solverDict.found(fieldName))
         {
             const List<solverPerformance> sp(solverDict.lookup(fieldName));
             const scalar residual = sp.first().initialResidual();
-            result[fieldI] = residual;
+            result[fieldi] = residual;
 
             switch (mode_)
             {
@@ -203,14 +203,14 @@ apply()
                 << ": satisfied using threshold value: " << value_ << nl;
         }
 
-        forAll(result, resultI)
+        forAll(result, resulti)
         {
-            if (result[resultI] > 0)
+            if (result[resulti] > 0)
             {
                 if (log_)
                 {
-                    Info<< "    field: " << fieldNames_[resultI]
-                        << ", residual: " << result[resultI] << nl;
+                    Info<< "    field: " << fieldNames_[resulti]
+                        << ", residual: " << result[resulti] << nl;
                 }
             }
         }
diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.C b/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.C
index afac40bdced488ea3db77f18f4eb3eccfaeaa074..f23e69a3ea0226f92f71a433a9b29be77193877e 100644
--- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.C
+++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.C
@@ -105,15 +105,15 @@ bool Foam::functionObjects::runTimeControls::equationMaxIterCondition::apply()
 
     List<label> result(fieldNames_.size(), -1);
 
-    forAll(fieldNames_, fieldI)
+    forAll(fieldNames_, fieldi)
     {
-        const word& fieldName = fieldNames_[fieldI];
+        const word& fieldName = fieldNames_[fieldi];
 
         if (solverDict.found(fieldName))
         {
             const List<solverPerformance> sp(solverDict.lookup(fieldName));
             const label nIterations = sp.first().nIterations();
-            result[fieldI] = nIterations;
+            result[fieldi] = nIterations;
 
             if (nIterations > threshold_)
             {
@@ -154,14 +154,14 @@ bool Foam::functionObjects::runTimeControls::equationMaxIterCondition::apply()
                 << ": satisfied using threshold value: " << threshold_ << nl;
         }
 
-        forAll(result, resultI)
+        forAll(result, resulti)
         {
-            if (result[resultI] != -1)
+            if (result[resulti] != -1)
             {
                 if (log_)
                 {
-                    Info<< "    field: " << fieldNames_[resultI]
-                        << ", iterations: " << result[resultI] << nl;
+                    Info<< "    field: " << fieldNames_[resulti]
+                        << ", iterations: " << result[resulti] << nl;
                 }
             }
         }
diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.C b/src/functionObjects/utilities/runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.C
index 7f741d2ec605d237eb1d372f5c5101aa16764244..e848a310871413f5505861d75b9e4f52a92ca314 100644
--- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.C
+++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -53,16 +53,21 @@ namespace runTimeControls
     defineTypeNameAndDebug(minMaxCondition, 0);
     addToRunTimeSelectionTable(runTimeCondition, minMaxCondition, dictionary);
 
-    template<>
-    const char* NamedEnum<minMaxCondition::modeType, 2>::names[] =
-    {
-        "minimum",
-        "maximum"
-    };
 }
 }
 }
 
+template<>
+const char* Foam::NamedEnum
+<
+    Foam::functionObjects::runTimeControls::minMaxCondition::modeType,
+    2
+>::names[] =
+{
+    "minimum",
+    "maximum"
+};
+
 const Foam::NamedEnum
 <
     Foam
@@ -86,7 +91,7 @@ Foam::functionObjects::runTimeControls::minMaxCondition::minMaxCondition
 )
 :
     runTimeCondition(name, obr, dict, state),
-    functionObjectName_(dict.lookup("functionObjectName")),
+    functionObjectName_(dict.lookup("functionObject")),
     mode_(modeTypeNames_.read(dict.lookup("mode"))),
     fieldNames_(dict.lookup("fields")),
     value_(readScalar(dict.lookup("value")))
@@ -110,9 +115,9 @@ bool Foam::functionObjects::runTimeControls::minMaxCondition::apply()
         return satisfied;
     }
 
-    forAll(fieldNames_, fieldI)
+    forAll(fieldNames_, fieldi)
     {
-        const word& fieldName = fieldNames_[fieldI];
+        const word& fieldName = fieldNames_[fieldi];
 
         const word valueType =
             state_.objectResultType(functionObjectName_, fieldName);
diff --git a/src/functionObjects/utilities/runTimeControl/runTimeControl.C b/src/functionObjects/utilities/runTimeControl/runTimeControl.C
index 4b18e6f16dbcd2d33cf7f38d016d5375bdef238b..e4c0d89095ba9c3281c42005e660eb776786fe4f 100644
--- a/src/functionObjects/utilities/runTimeControl/runTimeControl.C
+++ b/src/functionObjects/utilities/runTimeControl/runTimeControl.C
@@ -77,27 +77,29 @@ bool Foam::functionObjects::runTimeControls::runTimeControl::read
     const dictionary& dict
 )
 {
+    fvMeshFunctionObject::read(dict);
+
     const dictionary& conditionsDict = dict.subDict("conditions");
     const wordList conditionNames(conditionsDict.toc());
     conditions_.setSize(conditionNames.size());
 
-    label uniqueGroupI = 0;
-    forAll(conditionNames, conditionI)
+    label uniqueGroupi = 0;
+    forAll(conditionNames, conditioni)
     {
-        const word& conditionName = conditionNames[conditionI];
+        const word& conditionName = conditionNames[conditioni];
         const dictionary& dict = conditionsDict.subDict(conditionName);
 
         conditions_.set
         (
-            conditionI,
+            conditioni,
             runTimeCondition::New(conditionName, obr_, dict, *this)
         );
 
-        label groupI = conditions_[conditionI].groupID();
+        label groupi = conditions_[conditioni].groupID();
 
-        if (groupMap_.insert(groupI, uniqueGroupI))
+        if (groupMap_.insert(groupi, uniqueGroupi))
         {
-            uniqueGroupI++;
+            uniqueGroupi++;
         }
     }
 
@@ -114,9 +116,9 @@ bool Foam::functionObjects::runTimeControls::runTimeControl::read
     {
         // Check that at least one condition is active
         bool active = false;
-        forAll(conditions_, conditionI)
+        forAll(conditions_, conditioni)
         {
-            if (conditions_[conditionI].active())
+            if (conditions_[conditioni].active())
             {
                 active = true;
                 break;
@@ -146,32 +148,32 @@ bool Foam::functionObjects::runTimeControls::runTimeControl::execute()
     List<bool> groupSatisfied(groupMap_.size(), true);
     List<bool> groupActive(groupMap_.size(), false);
 
-    forAll(conditions_, conditionI)
+    forAll(conditions_, conditioni)
     {
-        runTimeCondition& condition = conditions_[conditionI];
+        runTimeCondition& condition = conditions_[conditioni];
 
         if (condition.active())
         {
             bool conditionSatisfied = condition.apply();
 
-            label groupI = condition.groupID();
+            label groupi = condition.groupID();
 
-            Map<label>::const_iterator conditionIter = groupMap_.find(groupI);
+            Map<label>::const_iterator conditionIter = groupMap_.find(groupi);
 
             if (conditionIter == groupMap_.end())
             {
                 FatalErrorInFunction
-                    << "group " << groupI << " not found in map"
+                    << "group " << groupi << " not found in map"
                     << abort(FatalError);
             }
 
             if (conditionSatisfied)
             {
-                IDs.append(conditionI);
+                IDs.append(conditioni);
 
                 groupActive[conditionIter()] = true;
 
-                if (groupI == -1)
+                if (groupi == -1)
                 {
                     // Condition not part of a group - only requires this to be
                     // satisfied for completion flag to be set
@@ -187,9 +189,9 @@ bool Foam::functionObjects::runTimeControls::runTimeControl::execute()
     }
 
     bool done = false;
-    forAll(groupSatisfied, groupI)
+    forAll(groupSatisfied, groupi)
     {
-        if (groupSatisfied[groupI] && groupActive[groupI])
+        if (groupSatisfied[groupi] && groupActive[groupi])
         {
             done = true;
             break;
@@ -198,10 +200,10 @@ bool Foam::functionObjects::runTimeControls::runTimeControl::execute()
 
     if (done)
     {
-        forAll(IDs, conditionI)
+        forAll(IDs, conditioni)
         {
-            Info<< "    " << conditions_[conditionI].type() << ": "
-                <<  conditions_[conditionI].name()
+            Info<< "    " << conditions_[conditioni].type() << ": "
+                <<  conditions_[conditioni].name()
                 << " condition satisfied" << nl;
         }
 
@@ -235,9 +237,9 @@ bool Foam::functionObjects::runTimeControls::runTimeControl::execute()
 
 bool Foam::functionObjects::runTimeControls::runTimeControl::write()
 {
-    forAll(conditions_, conditionI)
+    forAll(conditions_, conditioni)
     {
-        conditions_[conditionI].write();
+        conditions_[conditioni].write();
     }
 
     return true;
diff --git a/src/functionObjects/utilities/setTimeStep/setTimeStepFunctionObject.C b/src/functionObjects/utilities/setTimeStep/setTimeStepFunctionObject.C
index 1f4554360988fc54fce3eddad537886867be6e59..62f04d3640b935b99d01938993dfd51dbfa5e008 100644
--- a/src/functionObjects/utilities/setTimeStep/setTimeStepFunctionObject.C
+++ b/src/functionObjects/utilities/setTimeStep/setTimeStepFunctionObject.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2013-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -92,6 +92,8 @@ bool Foam::functionObjects::setTimeStepFunctionObject::read
     const dictionary& dict
 )
 {
+    functionObject::read(dict);
+
     timeStepPtr_ = Function1<scalar>::New("deltaT", dict);
 
     // Check that adjustTimeStep is active
diff --git a/src/functionObjects/utilities/setTimeStep/setTimeStepFunctionObject.H b/src/functionObjects/utilities/setTimeStep/setTimeStepFunctionObject.H
index 2a00e997e011a970189eb1bfa4323372cd877344..d3ce16442c95243af6f7d8093e00074b781d7db7 100644
--- a/src/functionObjects/utilities/setTimeStep/setTimeStepFunctionObject.H
+++ b/src/functionObjects/utilities/setTimeStep/setTimeStepFunctionObject.H
@@ -40,7 +40,7 @@ Description
     setTimeStep1
     {
         type        setTimeStep;
-        functionObjectLibs ("libutilityFunctionObjects.so");
+        libs        ("libutilityFunctionObjects.so");
         ...
     }
     \endverbatim
diff --git a/src/functionObjects/utilities/systemCall/systemCall.C b/src/functionObjects/utilities/systemCall/systemCall.C
index 498457e10cd11616c5b1f608ac8b6fd6f61e51f7..2076b3d3a41d3eb416f735a4bd91b1aa230003e4 100644
--- a/src/functionObjects/utilities/systemCall/systemCall.C
+++ b/src/functionObjects/utilities/systemCall/systemCall.C
@@ -74,6 +74,8 @@ Foam::functionObjects::systemCall::~systemCall()
 
 bool Foam::functionObjects::systemCall::read(const dictionary& dict)
 {
+    functionObject::read(dict);
+
     dict.readIfPresent("executeCalls", executeCalls_);
     dict.readIfPresent("endCalls", endCalls_);
     dict.readIfPresent("writeCalls", writeCalls_);
@@ -107,9 +109,9 @@ bool Foam::functionObjects::systemCall::read(const dictionary& dict)
 
 bool Foam::functionObjects::systemCall::execute()
 {
-    forAll(executeCalls_, callI)
+    forAll(executeCalls_, calli)
     {
-        Foam::system(executeCalls_[callI]);
+        Foam::system(executeCalls_[calli]);
     }
 
     return true;
@@ -118,9 +120,9 @@ bool Foam::functionObjects::systemCall::execute()
 
 bool Foam::functionObjects::systemCall::end()
 {
-    forAll(endCalls_, callI)
+    forAll(endCalls_, calli)
     {
-        Foam::system(endCalls_[callI]);
+        Foam::system(endCalls_[calli]);
     }
 
     return true;
@@ -129,9 +131,9 @@ bool Foam::functionObjects::systemCall::end()
 
 bool Foam::functionObjects::systemCall::write()
 {
-    forAll(writeCalls_, callI)
+    forAll(writeCalls_, calli)
     {
-        Foam::system(writeCalls_[callI]);
+        Foam::system(writeCalls_[calli]);
     }
 
     return true;
diff --git a/src/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C b/src/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C
index 1f57b3e19f7a135d042eb6639f297b8c523aacd1..d6dc1d10400199b608e1e4e3795d0402a6f0fddd 100644
--- a/src/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C
+++ b/src/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -103,6 +103,8 @@ bool Foam::functionObjects::timeActivatedFileUpdate::read
     const dictionary& dict
 )
 {
+    functionObject::read(dict);
+
     dict.lookup("fileToUpdate") >> fileToUpdate_;
     dict.lookup("timeVsFile") >> timeVsFile_;
 
diff --git a/src/functionObjects/utilities/writeDictionary/writeDictionary.C b/src/functionObjects/utilities/writeDictionary/writeDictionary.C
index 22c63d60d2f1359c51c4386f6b91e633a27ff162..7d2c6c74b08c84b401f7deb873bec3ab0a56c295 100644
--- a/src/functionObjects/utilities/writeDictionary/writeDictionary.C
+++ b/src/functionObjects/utilities/writeDictionary/writeDictionary.C
@@ -50,14 +50,14 @@ namespace functionObjects
 
 bool Foam::functionObjects::writeDictionary::tryDirectory
 (
-    const label dictI,
+    const label dicti,
     const word& location,
     bool& firstDict
 )
 {
     IOobject dictIO
     (
-        dictNames_[dictI],
+        dictNames_[dicti],
         location,
         obr_,
         IOobject::MUST_READ,
@@ -69,7 +69,7 @@ bool Foam::functionObjects::writeDictionary::tryDirectory
     {
         IOdictionary dict(dictIO);
 
-        if (dict.digest() != digests_[dictI])
+        if (dict.digest() != digests_[dicti])
         {
             if (firstDict)
             {
@@ -84,7 +84,7 @@ bool Foam::functionObjects::writeDictionary::tryDirectory
 
             IOobject::writeDivider(Info);
 
-            digests_[dictI] = dict.digest();
+            digests_[dicti] = dict.digest();
         }
 
         return true;
@@ -122,6 +122,8 @@ Foam::functionObjects::writeDictionary::~writeDictionary()
 
 bool Foam::functionObjects::writeDictionary::read(const dictionary& dict)
 {
+    regionFunctionObject::read(dict);
+
     wordList dictNames(dict.lookup("dictNames"));
     HashSet<word> uniqueNames(dictNames);
     dictNames_ = uniqueNames.toc();
diff --git a/src/functionObjects/utilities/writeDictionary/writeDictionary.H b/src/functionObjects/utilities/writeDictionary/writeDictionary.H
index bb3cbd4047ee75d50a206a7920a48b36da00819b..b6d33bc694dafa91bbd80045fb5954581989dffc 100644
--- a/src/functionObjects/utilities/writeDictionary/writeDictionary.H
+++ b/src/functionObjects/utilities/writeDictionary/writeDictionary.H
@@ -75,7 +75,7 @@ class writeDictionary
         //- Helper function to write the dictionary if found at location
         bool tryDirectory
         (
-            const label dictI,
+            const label dicti,
             const word& location,
             bool& firstDict
         );
diff --git a/src/functionObjects/utilities/writeObjects/writeObjects.C b/src/functionObjects/utilities/writeObjects/writeObjects.C
index a1a049b26ce7d38d334ebdd520886d660178d645..aad0e40554e6d8b0ffc41597fdb2efe5f4450d44 100644
--- a/src/functionObjects/utilities/writeObjects/writeObjects.C
+++ b/src/functionObjects/utilities/writeObjects/writeObjects.C
@@ -98,6 +98,8 @@ Foam::functionObjects::writeObjects::~writeObjects()
 
 bool Foam::functionObjects::writeObjects::read(const dictionary& dict)
 {
+    functionObject::read(dict);
+
     if (dict.found("field"))
     {
         objectNames_.setSize(1);
diff --git a/src/fvAgglomerationMethods/MGridGenGamgAgglomeration/MGridGenGAMGAgglomeration.C b/src/fvAgglomerationMethods/MGridGenGamgAgglomeration/MGridGenGAMGAgglomeration.C
index 6959e4b2fde97c30951cbd638470caadd4411c90..644a585366dc70168269715f007ac74e1ba6648a 100644
--- a/src/fvAgglomerationMethods/MGridGenGamgAgglomeration/MGridGenGAMGAgglomeration.C
+++ b/src/fvAgglomerationMethods/MGridGenGamgAgglomeration/MGridGenGAMGAgglomeration.C
@@ -286,7 +286,7 @@ Foam::MGridGenGAMGAgglomeration::MGridGenGAMGAgglomeration
             );
         }
 
-        if (continueAgglomerating(nCoarseCells))
+        if (continueAgglomerating(finalAgglomPtr().size(), nCoarseCells))
         {
             nCells_[nCreatedLevels] = nCoarseCells;
             restrictAddressing_.set(nCreatedLevels, finalAgglomPtr);
diff --git a/src/fvMotionSolver/fvPatchFields/derived/cellMotion/cellMotionFvPatchField.C b/src/fvMotionSolver/fvPatchFields/derived/cellMotion/cellMotionFvPatchField.C
index 0ad8ad0e4559b72336fa58385aaa22a28f7a0ab9..a908defc02f88205fbf0cbcf1290146e7388e9ac 100644
--- a/src/fvMotionSolver/fvPatchFields/derived/cellMotion/cellMotionFvPatchField.C
+++ b/src/fvMotionSolver/fvPatchFields/derived/cellMotion/cellMotionFvPatchField.C
@@ -63,10 +63,8 @@ Foam::cellMotionFvPatchField<Type>::cellMotionFvPatchField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchField<Type>(p, iF)
-{
-    fvPatchField<Type>::operator=(Field<Type>("value", dict, p.size()));
-}
+    fixedValueFvPatchField<Type>(p, iF, dict)
+{}
 
 
 template<class Type>
diff --git a/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.C b/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.C
index ffbfd8f34157d9c5997fa70378b711b8c50c09f9..f14cb3d7f6d582bf22ddb7a2bff3ff9f8db64bac 100644
--- a/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.C
+++ b/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.C
@@ -63,7 +63,7 @@ timeVaryingMappedFixedValuePointPatchField
     const dictionary& dict
 )
 :
-    fixedValuePointPatchField<Type>(p, iF),
+    fixedValuePointPatchField<Type>(p, iF, dict, false),
     fieldTableName_(iF.name()),
     setAverage_(dict.lookupOrDefault("setAverage", false)),
     perturb_(dict.lookupOrDefault("perturb", 1e-5)),
diff --git a/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H b/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H
index 7e4af6a618aa7179b84907d17d7cbf7b2856b0ec..845c1a3294be9e489acd0927798068f6a4ded899 100644
--- a/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H
+++ b/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H
@@ -52,7 +52,7 @@ Usage
     \verbatim
     actuationDiskSourceCoeffs
     {
-        fieldNames      (U);        // names of fields to apply source
+        fields          (U);        // names of fields to apply source
         diskDir         (-1 0 0);   // disk direction
         Cp              0.1;        // power coefficient
         Ct              0.5;        // thrust coefficient
diff --git a/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.H b/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.H
index ab6fc3c68a91a2a185f25905a145daf308c609fd..7ea680dad8a1f0ac20d2afa2cd3e15cdf9631b46 100644
--- a/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.H
+++ b/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.H
@@ -36,7 +36,7 @@ Usage
     \verbatim
     buoyancyEnergyCoeffs
     {
-        fieldNames      (h);                    // Name of energy field
+        fields          (h);                    // Name of energy field
     }
     \endverbatim
 
diff --git a/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.H b/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.H
index d39e8c9148fd83c2bb9b2be38cbe5b634b3b8e92..8ddba4676d7e8684c975137d8bdc5bbec7b69f19 100644
--- a/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.H
+++ b/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.H
@@ -36,7 +36,7 @@ Usage
     \verbatim
     buoyancyForceCoeffs
     {
-        fieldNames      (U);                    // Name of velocity field
+        fields          (U);                    // Name of velocity field
     }
     \endverbatim
 
diff --git a/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.H b/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.H
index 91e4346db22dc2bec45901601b37bf8d96d5cd21..dfa5b96ea74945d06de7a37fbc120feb3f83673c 100644
--- a/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.H
+++ b/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.H
@@ -39,7 +39,7 @@ Usage
     meanVelocityForceCoeffs
     {
         selectionMode   all;                    // Apply force to all cells
-        fieldNames      (U);                    // Name of velocity field
+        fields          (U);                    // Name of velocity field
         Ubar            (10.0 0 0);             // Desired mean velocity
         relaxation      0.2;                    // Optional relaxation factor
     }
diff --git a/src/fvOptions/sources/derived/meanVelocityForce/patchMeanVelocityForce/patchMeanVelocityForce.H b/src/fvOptions/sources/derived/meanVelocityForce/patchMeanVelocityForce/patchMeanVelocityForce.H
index 8cac6a950d85ce80a38dbd89d888ddb9235b7c63..7413cd497e1e1531750e26161d6aee2961add30b 100644
--- a/src/fvOptions/sources/derived/meanVelocityForce/patchMeanVelocityForce/patchMeanVelocityForce.H
+++ b/src/fvOptions/sources/derived/meanVelocityForce/patchMeanVelocityForce/patchMeanVelocityForce.H
@@ -36,7 +36,7 @@ Usage
     patchMeanVelocityForceCoeffs
     {
         selectionMode   all;                    // Apply force to all cells
-        fieldNames      (U);                    // Name of velocity field
+        fields          (U);                    // Name of velocity field
         patch           inlet;                  // Name of the patch
         Ubar            (10.0 0 0);             // Desired mean velocity
         relaxation      0.2;                    // Optional relaxation factor
diff --git a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H
index 1f7a2870eaca754d57ac918062a6d836a3ff854f..db6b8db3758a5242a3960044b643abb5646b44e4 100644
--- a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H
+++ b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H
@@ -38,7 +38,7 @@ Usage
     \verbatim
     rotorDiskSourceCoeffs
     {
-        fieldNames      (U);    // names of fields on which to apply source
+        fields          (U);    // names of fields on which to apply source
         nBlades         3;      // number of blades
         tipEffect       0.96;   // normalised radius above which lift = 0
 
diff --git a/src/fvOptions/sources/general/codedSource/CodedSource.C b/src/fvOptions/sources/general/codedSource/CodedSource.C
index 3933d87f8dfb1e928f56f67cb50d79537b0527ae..267354e313f4ece5f2f598bb77e0bf7061e1185f 100644
--- a/src/fvOptions/sources/general/codedSource/CodedSource.C
+++ b/src/fvOptions/sources/general/codedSource/CodedSource.C
@@ -68,6 +68,7 @@ void Foam::fv::CodedSource<Type>::prepare
             "-I$(LIB_SRC)/finiteVolume/lnInclude \\\n"
             "-I$(LIB_SRC)/meshTools/lnInclude \\\n"
             "-I$(LIB_SRC)/sampling/lnInclude \\\n"
+            "-I$(LIB_SRC)/fvOptions/lnInclude \\\n"
             + context.options()
             + "\n\nLIB_LIBS = \\\n"
             + "    -lmeshTools \\\n"
diff --git a/src/fvOptions/sources/general/codedSource/CodedSource.H b/src/fvOptions/sources/general/codedSource/CodedSource.H
index 9ea8e80306d5655fcefe74d527df9ee271cfbe6d..6dce798fd3524373c1b9b20c1c4e4549714717db 100644
--- a/src/fvOptions/sources/general/codedSource/CodedSource.H
+++ b/src/fvOptions/sources/general/codedSource/CodedSource.H
@@ -60,14 +60,12 @@ Usage
     {
         type            scalarCodedSource;
 
-        active          yes;
-
         scalarCodedSourceCoeffs
         {
             selectionMode   all;
 
-            fieldNames      (h);
-            name    sourceTime;
+            fields          (h);
+            name            sourceTime;
 
             codeInclude
             #{
diff --git a/src/genericPatchFields/genericFvPatchField/genericFvPatchField.C b/src/genericPatchFields/genericFvPatchField/genericFvPatchField.C
index 98cc00afcf81f17c2dc03435e585e648610b8395..24ccdccae6abe8259fae6d74827f543138bb8d5c 100644
--- a/src/genericPatchFields/genericFvPatchField/genericFvPatchField.C
+++ b/src/genericPatchFields/genericFvPatchField/genericFvPatchField.C
@@ -53,7 +53,7 @@ Foam::genericFvPatchField<Type>::genericFvPatchField
     const dictionary& dict
 )
 :
-    calculatedFvPatchField<Type>(p, iF, dict, false),
+    calculatedFvPatchField<Type>(p, iF, dict),
     actualTypeName_(dict.lookup("type")),
     dict_(dict)
 {
diff --git a/src/lagrangian/basic/Cloud/Cloud.C b/src/lagrangian/basic/Cloud/Cloud.C
index 1e108771a965825b0fb3ac385098c570435661c9..710e36bfd2837d72a0f7fc74b26e9e2dd978fa2d 100644
--- a/src/lagrangian/basic/Cloud/Cloud.C
+++ b/src/lagrangian/basic/Cloud/Cloud.C
@@ -92,31 +92,6 @@ void Foam::Cloud<ParticleType>::calcCellWallFaces() const
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class ParticleType>
-Foam::Cloud<ParticleType>::Cloud
-(
-    const polyMesh& pMesh,
-    const IDLList<ParticleType>& particles
-)
-:
-    cloud(pMesh),
-    IDLList<ParticleType>(),
-    polyMesh_(pMesh),
-    labels_(),
-    nTrackingRescues_(),
-    cellWallFacesPtr_()
-{
-    checkPatches();
-
-    // Ask for the tetBasePtIs to trigger all processors to build
-    // them, otherwise, if some processors have no particles then
-    // there is a comms mismatch.
-    polyMesh_.tetBasePtIs();
-
-    IDLList<ParticleType>::operator=(particles);
-}
-
-
 template<class ParticleType>
 Foam::Cloud<ParticleType>::Cloud
 (
@@ -139,7 +114,10 @@ Foam::Cloud<ParticleType>::Cloud
     // there is a comms mismatch.
     polyMesh_.tetBasePtIs();
 
-    IDLList<ParticleType>::operator=(particles);
+    if (particles.size())
+    {
+        IDLList<ParticleType>::operator=(particles);
+    }
 }
 
 
diff --git a/src/lagrangian/basic/Cloud/Cloud.H b/src/lagrangian/basic/Cloud/Cloud.H
index cb6b5eee8171cac78e8a6d885180ea1dac8d6ed3..2ad874691b7a492482d8192eed4a3ec89d64fba9 100644
--- a/src/lagrangian/basic/Cloud/Cloud.H
+++ b/src/lagrangian/basic/Cloud/Cloud.H
@@ -131,28 +131,12 @@ public:
 
         //- Construct from mesh and a list of particles
         Cloud
-        (
-            const polyMesh& mesh,
-            const IDLList<ParticleType>& particles
-        );
-
-        //- Construct from mesh, cloud name, and a list of particles
-        Cloud
         (
             const polyMesh& mesh,
             const word& cloudName,
             const IDLList<ParticleType>& particles
         );
 
-        //- Construct from mesh by reading from file
-        //  Optionally disable checking of class name for post-processing
-        Cloud
-        (
-            const polyMesh& mesh,
-            const bool checkClass = true
-        );
-
-
         //- Construct from mesh by reading from file with given cloud instance
         //  Optionally disable checking of class name for post-processing
         Cloud
diff --git a/src/lagrangian/basic/Cloud/CloudIO.C b/src/lagrangian/basic/Cloud/CloudIO.C
index 172dbb8ae07295dd574a5f21b9a97e6fe3b5b48e..33e26087860f513faab420d27a42221430c24179 100644
--- a/src/lagrangian/basic/Cloud/CloudIO.C
+++ b/src/lagrangian/basic/Cloud/CloudIO.C
@@ -144,25 +144,6 @@ void Foam::Cloud<ParticleType>::initCloud(const bool checkClass)
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-template<class ParticleType>
-Foam::Cloud<ParticleType>::Cloud
-(
-    const polyMesh& pMesh,
-    const bool checkClass
-)
-:
-    cloud(pMesh),
-    polyMesh_(pMesh),
-    labels_(),
-    nTrackingRescues_(),
-    cellWallFacesPtr_()
-{
-    checkPatches();
-
-    initCloud(checkClass);
-}
-
-
 template<class ParticleType>
 Foam::Cloud<ParticleType>::Cloud
 (
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
index 87b434646ed6b814e8be98b6f181a252c14dbe4c..90f52a9bbc5c24752c140e7eac47bf2c8a55a6f7 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
@@ -72,8 +72,6 @@ void Foam::ThermoParcel<ParcelType>::cellValueSourceCorrection
 {
     this->Uc_ += td.cloud().UTrans()[celli]/this->massCell(celli);
 
-    const scalar CpMean = td.CpInterp().psi()[celli];
-
     tetIndices tetIs = this->currentTetIndices();
     Tc_ = td.TInterp().interpolate(this->position(), tetIs);
 
diff --git a/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/Dual/Dual.C b/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/Dual/Dual.C
index 6fefd0410b1a53ea29b7d51fd7d173bf2f9e9aa3..c0974c6a89724278bba012b9c81f33243da8d462 100644
--- a/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/Dual/Dual.C
+++ b/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/Dual/Dual.C
@@ -55,9 +55,7 @@ Foam::AveragingMethods::Dual<Type>::Dual
     volumeCell_(mesh.V()),
     volumeDual_(mesh.nPoints(), 0.0),
     dataCell_(FieldField<Field, Type>::operator[](0)),
-    dataDual_(FieldField<Field, Type>::operator[](1)),
-    tetVertices_(3),
-    tetCoordinates_(4)
+    dataDual_(FieldField<Field, Type>::operator[](1))
 {
     forAll(this->mesh_.C(), celli)
     {
@@ -123,7 +121,10 @@ void Foam::AveragingMethods::Dual<Type>::tetGeometry
 
     tetIs.tet(this->mesh_).barycentric(position, tetCoordinates_);
 
-    tetCoordinates_ = max(tetCoordinates_, scalar(0));
+    forAll(tetCoordinates_, i)
+    {
+        tetCoordinates_[i] = max(tetCoordinates_[i], scalar(0));
+    }
 }
 
 
diff --git a/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/Dual/Dual.H b/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/Dual/Dual.H
index 64cd170b9278333b26dbf55914be2106aec0d611..a753fc742bcdf76a6b42f02e403d701080697cbf 100644
--- a/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/Dual/Dual.H
+++ b/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/Dual/Dual.H
@@ -94,10 +94,10 @@ private:
         Field<Type>& dataDual_;
 
         //- Tet vertex labels
-        mutable List<label> tetVertices_;
+        mutable FixedList<label, 3> tetVertices_;
 
         //- Tet barycentric coordinates
-        mutable List<scalar> tetCoordinates_;
+        mutable FixedList<scalar, 4> tetCoordinates_;
 
 
     //- Private static member functions
diff --git a/src/lagrangian/intermediate/submodels/MPPIC/PackingModels/Implicit/Implicit.C b/src/lagrangian/intermediate/submodels/MPPIC/PackingModels/Implicit/Implicit.C
index 9f8cb4ef0c23aed604bb05d39524e973bd2c342a..33937408cd5c03c3b89f3ee9e8ccb689175c73ae 100644
--- a/src/lagrangian/intermediate/submodels/MPPIC/PackingModels/Implicit/Implicit.C
+++ b/src/lagrangian/intermediate/submodels/MPPIC/PackingModels/Implicit/Implicit.C
@@ -340,7 +340,7 @@ Foam::vector Foam::PackingModels::Implicit<CloudType>::velocityCorrection
     const label celli = p.cell();
     const label facei = p.tetFace();
     const tetIndices tetIs(celli, facei, p.tetPt(), mesh);
-    List<scalar> tetCoordinates(4);
+    FixedList<scalar, 4> tetCoordinates;
     tetIs.tet(mesh).barycentric(p.position(), tetCoordinates);
 
     // cell velocity
diff --git a/src/mesh/blockMesh/blockDescriptor/blockDescriptor.C b/src/mesh/blockMesh/blockDescriptor/blockDescriptor.C
index 1bdb4a82d7ddc8af0b99449d6fb1be7a277550bc..1f8c9118c1b0a6784e80a3ff023c08e14c094ee8 100644
--- a/src/mesh/blockMesh/blockDescriptor/blockDescriptor.C
+++ b/src/mesh/blockMesh/blockDescriptor/blockDescriptor.C
@@ -23,9 +23,85 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "error.H"
 #include "blockDescriptor.H"
 
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+void Foam::blockDescriptor::check(const Istream& is)
+{
+    forAll(blockShape_, pi)
+    {
+        if (blockShape_[pi] < 0)
+        {
+            FatalIOErrorInFunction(is)
+                << "Negative point label " << blockShape_[pi]
+                << " in block " << *this
+                << exit(FatalIOError);
+        }
+        else if (blockShape_[pi] >= blockPointField_.size())
+        {
+            FatalIOErrorInFunction(is)
+                << "Point label " << blockShape_[pi]
+                << " out of range 0.." << blockPointField_.size() - 1
+                << " in block " << *this
+                << exit(FatalIOError);
+        }
+    }
+
+    const point blockCentre(blockShape_.centre(blockPointField_));
+    const faceList faces(blockShape_.faces());
+
+    // Check each face is outward-pointing with respect to the block centre
+    label outwardFaceCount = 0;
+    boolList correctFaces(faces.size(), true);
+
+    forAll(faces, i)
+    {
+        point faceCentre(faces[i].centre(blockPointField_));
+        vector faceNormal(faces[i].normal(blockPointField_));
+        if (mag(faceNormal) > SMALL)
+        {
+            if (((faceCentre - blockCentre) & faceNormal) > 0)
+            {
+                outwardFaceCount++;
+            }
+            else
+            {
+                correctFaces[i] = false;
+            }
+        }
+        else
+        {
+            outwardFaceCount++;
+        }
+    }
+
+    // If all faces are inward-pointing the block is inside-out
+    if (outwardFaceCount == 0)
+    {
+        FatalIOErrorInFunction(is)
+            << "Block " << *this << " is inside-out"
+            << exit(FatalIOError);
+    }
+    else if (outwardFaceCount != faces.size())
+    {
+        FatalIOErrorInFunction(is)
+            << "Block " << *this << " has inward-pointing faces"
+            << nl << "    ";
+
+        forAll(correctFaces, i)
+        {
+            if (!correctFaces[i])
+            {
+                FatalIOError<< faces[i] << token::SPACE;
+            }
+        }
+
+        FatalIOError << exit(FatalIOError);
+    }
+}
+
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 Foam::blockDescriptor::blockDescriptor
@@ -156,11 +232,13 @@ Foam::blockDescriptor::blockDescriptor
     }
     else
     {
-        FatalErrorInFunction
+        FatalIOErrorInFunction(is)
             << "Unknown definition of expansion ratios: " << expRatios
-            << exit(FatalError);
+            << exit(FatalIOError);
     }
 
+    check(is);
+
     // Create a list of edges
     makeBlockEdges();
 }
diff --git a/src/mesh/blockMesh/blockDescriptor/blockDescriptor.H b/src/mesh/blockMesh/blockDescriptor/blockDescriptor.H
index c245eefccc9f601ae1af43031c9415befc0d3f62..0ff5b1e865225d280c75640d4964e0a48ad640d6 100644
--- a/src/mesh/blockMesh/blockDescriptor/blockDescriptor.H
+++ b/src/mesh/blockMesh/blockDescriptor/blockDescriptor.H
@@ -28,6 +28,21 @@ Description
     Takes the description of the block and the list of curved edges and
     creates a list of points on edges together with the weighting factors
 
+    For a given block, the correspondence between the ordering of vertex labels
+    and face labels is shown below.  For vertex numbering in the sequence 0 to 7
+    (block, centre): faces 0 (f0) and 1 are left and right, respectively; faces
+    2 and 3 are bottom and top; and faces 4 and 5 are front the back:
+    \verbatim
+             4 ---- 5
+        f3   |\     |\   f5
+         |   | 7 ---- 6    \
+         |   0 |--- 1 |     \
+         |    \|     \|      f4
+        f2     3 ---- 2
+
+             f0 ----- f1
+     \endverbatim
+
 SourceFiles
     blockDescriptor.C
     blockDescriptorEdges.C
@@ -90,6 +105,9 @@ class blockDescriptor
 
     // Private Member Functions
 
+        //- Check block has outward-pointing faces
+        void check(const Istream& is);
+
         //- Set the points/weights for all edges
         void makeBlockEdges();
 
diff --git a/src/mesh/blockMesh/blockMesh/blockMesh.H b/src/mesh/blockMesh/blockMesh/blockMesh.H
index b4cad2a87d69b948e39af1cd8a60b03d05f06311..348a59f018d93962e8b197503f7d990c02afe89a 100644
--- a/src/mesh/blockMesh/blockMesh/blockMesh.H
+++ b/src/mesh/blockMesh/blockMesh/blockMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -97,21 +97,16 @@ class blockMesh
 
     // Private Member Functions
 
-        bool blockLabelsOK
+        template<class Source>
+        void checkPatchLabels
         (
-            const label blockLabel,
+            const Source& source,
+            const word& patchName,
             const pointField& points,
-            const cellShape& blockShape
+            faceList& patchShapes
         ) const;
 
-        bool patchLabelsOK
-        (
-            const label patchLabel,
-            const pointField& points,
-            const faceList& patchShapes
-        ) const;
-
-        bool readPatches
+        void readPatches
         (
             const dictionary& meshDescription,
             faceListList& tmpBlocksPatches,
@@ -120,7 +115,7 @@ class blockMesh
             wordList& nbrPatchNames
         );
 
-        bool readBoundary
+        void readBoundary
         (
             const dictionary& meshDescription,
             wordList& patchNames,
@@ -131,7 +126,8 @@ class blockMesh
         void createCellShapes(cellShapeList& tmpBlockCells);
 
         polyMesh* createTopology(const IOdictionary&, const word& regionName);
-        void checkBlockMesh(const polyMesh&) const;
+
+        void check(const polyMesh&) const;
 
         //- Determine the merge info and the final number of cells/points
         void calcMergeInfo();
diff --git a/src/mesh/blockMesh/blockMesh/blockMeshCheck.C b/src/mesh/blockMesh/blockMesh/blockMeshCheck.C
index 2347e8efd8e86393e536470e1d677c2ad363f725..3091c16cbd34a5f987b6dfe17af260b69ec51cbd 100644
--- a/src/mesh/blockMesh/blockMesh/blockMeshCheck.C
+++ b/src/mesh/blockMesh/blockMesh/blockMeshCheck.C
@@ -27,7 +27,7 @@ License
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-void Foam::blockMesh::checkBlockMesh(const polyMesh& bm) const
+void Foam::blockMesh::check(const polyMesh& bm) const
 {
     if (verboseOutput)
     {
@@ -146,82 +146,4 @@ void Foam::blockMesh::checkBlockMesh(const polyMesh& bm) const
 }
 
 
-bool Foam::blockMesh::blockLabelsOK
-(
-    const label blockLabel,
-    const pointField& points,
-    const cellShape& blockShape
-) const
-{
-    bool ok = true;
-
-    forAll(blockShape, blockI)
-    {
-        if (blockShape[blockI] < 0)
-        {
-            ok = false;
-
-            WarningInFunction
-                << "out-of-range point label " << blockShape[blockI]
-                << " (min = 0"
-                << ") in block " << blockLabel << endl;
-        }
-        else if (blockShape[blockI] >= points.size())
-        {
-            ok = false;
-
-            WarningInFunction
-                << "out-of-range point label " << blockShape[blockI]
-                << " (max = " << points.size() - 1
-                << ") in block " << blockLabel << endl;
-        }
-    }
-
-    return ok;
-}
-
-
-bool Foam::blockMesh::patchLabelsOK
-(
-    const label patchLabel,
-    const pointField& points,
-    const faceList& patchFaces
-) const
-{
-    bool ok = true;
-
-    forAll(patchFaces, facei)
-    {
-        const labelList& f = patchFaces[facei];
-
-        forAll(f, fp)
-        {
-            if (f[fp] < 0)
-            {
-                ok = false;
-
-                WarningInFunction
-                    << "out-of-range point label " << f[fp]
-                    << " (min = 0"
-                    << ") on patch " << patchLabel
-                    << ", face " << facei << endl;
-            }
-            else if (f[fp] >= points.size())
-            {
-                ok = false;
-
-                WarningInFunction
-                    << "out-of-range point label " << f[fp]
-                    << " (max = " << points.size() - 1
-                    << ") on patch " << patchLabel
-                    << ", face " << facei << endl;
-
-            }
-        }
-    }
-
-    return ok;
-}
-
-
 // ************************************************************************* //
diff --git a/src/mesh/blockMesh/blockMesh/blockMeshTopology.C b/src/mesh/blockMesh/blockMesh/blockMeshTopology.C
index c0223efe7170dfb9612fb975f9889e10145ec974..dfc1d93b2df37468a597919c5e37498bd1428ce2 100644
--- a/src/mesh/blockMesh/blockMesh/blockMeshTopology.C
+++ b/src/mesh/blockMesh/blockMesh/blockMeshTopology.C
@@ -29,8 +29,79 @@ License
 #include "emptyPolyPatch.H"
 #include "cyclicPolyPatch.H"
 
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+template<class Source>
+void Foam::blockMesh::checkPatchLabels
+(
+    const Source& source,
+    const word& patchName,
+    const pointField& points,
+    faceList& patchFaces
+) const
+{
+    forAll(patchFaces, facei)
+    {
+        face& f = patchFaces[facei];
+
+        // Replace (<block> <face>) face description
+        // with the corresponding block face
+        if (f.size() == 2)
+        {
+            const label bi = f[0];
+            const label fi = f[1];
+
+            if (bi >= size())
+            {
+                FatalIOErrorInFunction(source)
+                    << "Block index out of range for patch face " << f << nl
+                    << "    Number of blocks = " << size()
+                    << ", index = " << f[0] << nl
+                    << "    on patch " << patchName << ", face " << facei
+                    << exit(FatalIOError);
+            }
+            else if (fi >= operator[](bi).blockShape().faces().size())
+            {
+                FatalIOErrorInFunction(source)
+                    << "Block face index out of range for patch face " << f
+                    << nl
+                    << "    Number of block faces = "
+                    << operator[](bi).blockShape().faces().size()
+                    << ", index = " << f[1] << nl
+                    << "    on patch " << patchName << ", face " << facei
+                    << exit(FatalIOError);
+            }
+            else
+            {
+                f = operator[](bi).blockShape().faces()[fi];
+            }
+        }
+        else
+        {
+            forAll(f, fp)
+            {
+                if (f[fp] < 0)
+                {
+                    FatalIOErrorInFunction(source)
+                        << "Negative point label " << f[fp] << nl
+                        << "    on patch " << patchName << ", face " << facei
+                        << exit(FatalIOError);
+                }
+                else if (f[fp] >= points.size())
+                {
+                    FatalIOErrorInFunction(source)
+                        << "Point label " << f[fp]
+                        << " out of range 0.." << points.size() - 1 << nl
+                        << "    on patch " << patchName << ", face " << facei
+                        << exit(FatalIOError);
+                }
+            }
+        }
+    }
+}
+
 
-bool Foam::blockMesh::readPatches
+void Foam::blockMesh::readPatches
 (
     const dictionary& meshDescription,
     faceListList& tmpBlocksPatches,
@@ -39,8 +110,6 @@ bool Foam::blockMesh::readPatches
     wordList& nbrPatchNames
 )
 {
-    bool topologyOK = true;
-
     ITstream& patchStream(meshDescription.lookup("patches"));
 
     // read number of patches in mesh
@@ -94,22 +163,22 @@ bool Foam::blockMesh::readPatches
         patchStream >> tmpBlocksPatches[nPatches];
 
 
-        // Catch multiple patches asap.
+        // Check for multiple patches
         for (label i = 0; i < nPatches; i++)
         {
             if (patchNames[nPatches] == patchNames[i])
             {
-                FatalErrorInFunction
+                FatalIOErrorInFunction(patchStream)
                     << "Duplicate patch " << patchNames[nPatches]
                     << " at line " << patchStream.lineNumber()
-                    << ". Exiting !" << nl
-                    << exit(FatalError);
+                    << exit(FatalIOError);
             }
         }
 
-        topologyOK = topologyOK && patchLabelsOK
+        checkPatchLabels
         (
-            nPatches,
+            patchStream,
+            patchNames[nPatches],
             blockPointField_,
             tmpBlocksPatches[nPatches]
         );
@@ -124,13 +193,13 @@ bool Foam::blockMesh::readPatches
             word halfA = patchNames[nPatches-1] + "_half0";
             word halfB = patchNames[nPatches-1] + "_half1";
 
-            WarningInFunction
+            FatalIOErrorInFunction(patchStream)
                 << "Old-style cyclic definition."
                 << " Splitting patch "
                 << patchNames[nPatches-1] << " into two halves "
                 << halfA << " and " << halfB << endl
                 << "    Alternatively use new 'boundary' dictionary syntax."
-                << endl;
+                << exit(FatalIOError);
 
             // Add extra patch
             if (tmpBlocksPatches.size() <= nPatches)
@@ -152,10 +221,10 @@ bool Foam::blockMesh::readPatches
             // Split faces
             if ((tmpBlocksPatches[nPatches-1].size() % 2) != 0)
             {
-                FatalErrorInFunction
+                FatalIOErrorInFunction(patchStream)
                     << "Size of cyclic faces is not a multiple of 2 :"
                     << tmpBlocksPatches[nPatches-1]
-                    << exit(FatalError);
+                    << exit(FatalIOError);
             }
             label sz = tmpBlocksPatches[nPatches-1].size()/2;
             faceList unsplitFaces(tmpBlocksPatches[nPatches-1], true);
@@ -177,12 +246,10 @@ bool Foam::blockMesh::readPatches
 
     // Read end of blocks
     patchStream.readEnd("patches");
-
-    return topologyOK;
 }
 
 
-bool Foam::blockMesh::readBoundary
+void Foam::blockMesh::readBoundary
 (
     const dictionary& meshDescription,
     wordList& patchNames,
@@ -190,8 +257,6 @@ bool Foam::blockMesh::readBoundary
     PtrList<dictionary>& patchDicts
 )
 {
-    bool topologyOK = true;
-
     // Read like boundary file
     const PtrList<entry> patchesInfo
     (
@@ -210,24 +275,26 @@ bool Foam::blockMesh::readBoundary
         {
             FatalIOErrorInFunction(meshDescription)
                 << "Entry " << patchInfo << " in boundary section is not a"
-                << " valid dictionary." << exit(FatalIOError);
+                << " valid dictionary."
+                << exit(FatalIOError);
         }
 
         patchNames[patchi] = patchInfo.keyword();
-        // Construct dictionary
+
+        // Construct patch dictionary
         patchDicts.set(patchi, new dictionary(patchInfo.dict()));
+
         // Read block faces
         patchDicts[patchi].lookup("faces") >> tmpBlocksPatches[patchi];
 
-        topologyOK = topologyOK && patchLabelsOK
+        checkPatchLabels
         (
-            patchi,
+            patchInfo.dict(),
+            patchNames[patchi],
             blockPointField_,
             tmpBlocksPatches[patchi]
         );
     }
-
-    return topologyOK;
 }
 
 
@@ -241,14 +308,7 @@ void Foam::blockMesh::createCellShapes
     tmpBlockCells.setSize(blocks.size());
     forAll(blocks, blockI)
     {
-        tmpBlockCells[blockI] = cellShape(blocks[blockI].blockShape());
-
-        if (tmpBlockCells[blockI].mag(blockPointField_) < 0.0)
-        {
-            WarningInFunction
-                << "negative volume block : " << blockI
-                << ", probably defined inside-out" << endl;
-        }
+        tmpBlockCells[blockI] = blocks[blockI].blockShape();
     }
 }
 
@@ -261,8 +321,6 @@ Foam::polyMesh* Foam::blockMesh::createTopology
     const word& regionName
 )
 {
-    bool topologyOK = true;
-
     blockList& blocks = *this;
 
     word defaultPatchName = "defaultFaces";
@@ -411,13 +469,6 @@ Foam::polyMesh* Foam::blockMesh::createTopology
                 )
             );
 
-            topologyOK = topologyOK && blockLabelsOK
-            (
-                nBlocks,
-                blockPointField_,
-                blocks[nBlocks].blockShape()
-            );
-
             nBlocks++;
 
             is >> lastToken;
@@ -448,7 +499,7 @@ Foam::polyMesh* Foam::blockMesh::createTopology
         wordList patchTypes;
         wordList nbrPatchNames;
 
-        topologyOK = topologyOK && readPatches
+        readPatches
         (
             meshDescription,
             tmpBlocksPatches,
@@ -457,13 +508,6 @@ Foam::polyMesh* Foam::blockMesh::createTopology
             nbrPatchNames
         );
 
-        if (!topologyOK)
-        {
-            FatalErrorInFunction
-                << "Cannot create mesh due to errors in topology, exiting !"
-                << nl << exit(FatalError);
-        }
-
         Info<< nl << "Creating block mesh topology" << endl;
 
         cellShapeList tmpBlockCells(blocks.size());
@@ -504,14 +548,12 @@ Foam::polyMesh* Foam::blockMesh::createTopology
             }
             else if (word(dict.lookup("type")) != patchTypes[patchi])
             {
-                IOWarningInFunction
-                (
-                    meshDescription
-                )   << "For patch " << patchNames[patchi]
+                FatalIOErrorInFunction(meshDescription)
+                    << "For patch " << patchNames[patchi]
                     << " overriding type '" << patchTypes[patchi]
                     << "' with '" << word(dict.lookup("type"))
                     << "' (read from boundary file)"
-                    << endl;
+                    << exit(FatalIOError);
             }
 
             // Override neighbourpatch name
@@ -521,7 +563,6 @@ Foam::polyMesh* Foam::blockMesh::createTopology
             }
         }
 
-
         blockMeshPtr = new polyMesh
         (
             IOobject
@@ -548,7 +589,7 @@ Foam::polyMesh* Foam::blockMesh::createTopology
         faceListList tmpBlocksPatches;
         PtrList<dictionary> patchDicts;
 
-        topologyOK = topologyOK && readBoundary
+        readBoundary
         (
             meshDescription,
             patchNames,
@@ -556,21 +597,11 @@ Foam::polyMesh* Foam::blockMesh::createTopology
             patchDicts
         );
 
-        if (!topologyOK)
-        {
-            FatalErrorInFunction
-                << "Cannot create mesh due to errors in topology, exiting !"
-                << nl << exit(FatalError);
-        }
-
-
         Info<< nl << "Creating block mesh topology" << endl;
 
         cellShapeList tmpBlockCells(blocks.size());
         createCellShapes(tmpBlockCells);
 
-        // Extract
-
         blockMeshPtr = new polyMesh
         (
             IOobject
@@ -592,7 +623,7 @@ Foam::polyMesh* Foam::blockMesh::createTopology
         );
     }
 
-    checkBlockMesh(*blockMeshPtr);
+    check(*blockMeshPtr);
 
     return blockMeshPtr;
 }
diff --git a/src/mesh/extrudeModel/offsetSurface/offsetSurface.C b/src/mesh/extrudeModel/offsetSurface/offsetSurface.C
index 987f376bfa436ed9f41f56b3fc2aa0b11e1eb609..69a1b5dd327e47f55053d6809604e7caa7e947ce 100644
--- a/src/mesh/extrudeModel/offsetSurface/offsetSurface.C
+++ b/src/mesh/extrudeModel/offsetSurface/offsetSurface.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -116,7 +116,7 @@ point offsetSurface::operator()
         const triSurface& base = baseSurfPtr_();
         const triPointRef baseTri(base[triI].tri(base.points()));
 
-        List<scalar> bary;
+        FixedList<scalar, 3> bary;
         baseTri.barycentric(surfacePoint, bary);
 
         const triSurface& offset = offsetSurfPtr_();
@@ -135,8 +135,8 @@ point offsetSurface::operator()
         );
 
 
-        //- Either return interpolatedPoint or re-project onto surface (since
-        //  snapping might not have do so exactly)
+        // Either return interpolatedPoint or re-project onto surface (since
+        // snapping might not have do so exactly)
 
         if (project_)
         {
diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C
index 9cb5b6d8d64805abd9d86bf2580d1fb206fc5c5b..ba9b943adf1019f7255bc8a3c9c9010cb08f18fc 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C
@@ -83,22 +83,22 @@ void Foam::snappyLayerDriver::dumpDisplacement
     OBJstream dispStr(prefix + "_disp.obj");
     Info<< "Writing all displacements to " << dispStr.name() << endl;
 
-    forAll(patchDisp, patchPointI)
+    forAll(patchDisp, patchPointi)
     {
-        const point& pt = pp.localPoints()[patchPointI];
-        dispStr.write(linePointRef(pt, pt + patchDisp[patchPointI]));
+        const point& pt = pp.localPoints()[patchPointi];
+        dispStr.write(linePointRef(pt, pt + patchDisp[patchPointi]));
     }
 
 
     OBJstream illStr(prefix + "_illegal.obj");
     Info<< "Writing invalid displacements to " << illStr.name() << endl;
 
-    forAll(patchDisp, patchPointI)
+    forAll(patchDisp, patchPointi)
     {
-        if (extrudeStatus[patchPointI] != EXTRUDE)
+        if (extrudeStatus[patchPointi] != EXTRUDE)
         {
-            const point& pt = pp.localPoints()[patchPointI];
-            illStr.write(linePointRef(pt, pt + patchDisp[patchPointI]));
+            const point& pt = pp.localPoints()[patchPointi];
+            illStr.write(linePointRef(pt, pt + patchDisp[patchPointi]));
         }
     }
 }
@@ -113,16 +113,16 @@ Foam::tmp<Foam::scalarField> Foam::snappyLayerDriver::avgPointData
     tmp<scalarField> tfaceFld(new scalarField(pp.size(), 0.0));
     scalarField& faceFld = tfaceFld.ref();
 
-    forAll(pp.localFaces(), faceI)
+    forAll(pp.localFaces(), facei)
     {
-        const face& f = pp.localFaces()[faceI];
+        const face& f = pp.localFaces()[facei];
         if (f.size())
         {
             forAll(f, fp)
             {
-                faceFld[faceI] += pointFld[f[fp]];
+                faceFld[facei] += pointFld[f[fp]];
             }
-            faceFld[faceI] /= f.size();
+            faceFld[facei] /= f.size();
         }
     }
     return tfaceFld;
@@ -143,13 +143,13 @@ void Foam::snappyLayerDriver::checkManifold
     // Check for edge-faces (surface pinched at edge)
     const labelListList& edgeFaces = fp.edgeFaces();
 
-    forAll(edgeFaces, edgeI)
+    forAll(edgeFaces, edgei)
     {
-        const labelList& eFaces = edgeFaces[edgeI];
+        const labelList& eFaces = edgeFaces[edgei];
 
         if (eFaces.size() > 2)
         {
-            const edge& e = fp.edges()[edgeI];
+            const edge& e = fp.edges()[edgei];
 
             nonManifoldPoints.insert(fp.meshPoints()[e[0]]);
             nonManifoldPoints.insert(fp.meshPoints()[e[1]]);
@@ -167,9 +167,9 @@ void Foam::snappyLayerDriver::checkMeshManifold() const
     // Get all outside faces
     labelList outsideFaces(mesh.nFaces() - mesh.nInternalFaces());
 
-    for (label faceI = mesh.nInternalFaces(); faceI < mesh.nFaces(); faceI++)
+    for (label facei = mesh.nInternalFaces(); facei < mesh.nFaces(); facei++)
     {
-         outsideFaces[faceI - mesh.nInternalFaces()] = faceI;
+         outsideFaces[facei - mesh.nInternalFaces()] = facei;
     }
 
     pointSet nonManifoldPoints
@@ -214,24 +214,24 @@ void Foam::snappyLayerDriver::checkMeshManifold() const
 // Unset extrusion on point. Returns true if anything unset.
 bool Foam::snappyLayerDriver::unmarkExtrusion
 (
-    const label patchPointI,
+    const label patchPointi,
     pointField& patchDisp,
     labelList& patchNLayers,
     List<extrudeMode>& extrudeStatus
 )
 {
-    if (extrudeStatus[patchPointI] == EXTRUDE)
+    if (extrudeStatus[patchPointi] == EXTRUDE)
     {
-        extrudeStatus[patchPointI] = NOEXTRUDE;
-        patchNLayers[patchPointI] = 0;
-        patchDisp[patchPointI] = Zero;
+        extrudeStatus[patchPointi] = NOEXTRUDE;
+        patchNLayers[patchPointi] = 0;
+        patchDisp[patchPointi] = Zero;
         return true;
     }
-    else if (extrudeStatus[patchPointI] == EXTRUDEREMOVE)
+    else if (extrudeStatus[patchPointi] == EXTRUDEREMOVE)
     {
-        extrudeStatus[patchPointI] = NOEXTRUDE;
-        patchNLayers[patchPointI] = 0;
-        patchDisp[patchPointI] = Zero;
+        extrudeStatus[patchPointi] = NOEXTRUDE;
+        patchNLayers[patchPointi] = 0;
+        patchDisp[patchPointi] = Zero;
         return true;
     }
     else
@@ -296,18 +296,18 @@ void Foam::snappyLayerDriver::handleNonManifolds
     checkManifold(pp, nonManifoldPoints);
 
     // 2. Remote check for boundary edges on coupled boundaries
-    forAll(edgeGlobalFaces, edgeI)
+    forAll(edgeGlobalFaces, edgei)
     {
         if
         (
-            pp.edgeFaces()[edgeI].size() == 1
-         && edgeGlobalFaces[edgeI].size() > 2
+            pp.edgeFaces()[edgei].size() == 1
+         && edgeGlobalFaces[edgei].size() > 2
         )
         {
             // So boundary edges that are connected to more than 2 processors
             // i.e. a non-manifold edge which is exactly on a processor
             // boundary.
-            const edge& e = pp.edges()[edgeI];
+            const edge& e = pp.edges()[edgei];
             nonManifoldPoints.insert(pp.meshPoints()[e[0]]);
             nonManifoldPoints.insert(pp.meshPoints()[e[1]]);
         }
@@ -330,19 +330,19 @@ void Foam::snappyLayerDriver::handleNonManifolds
             0
         );
 
-        forAll(edgeGlobalFaces, edgeI)
+        forAll(edgeGlobalFaces, edgei)
         {
-            label meshEdgeI = meshEdges[edgeI];
+            label meshEdgei = meshEdges[edgei];
 
             if
             (
-                pp.edgeFaces()[edgeI].size() == 1
-             && edgeGlobalFaces[edgeI].size() == 1
-             && isCoupledEdge[meshEdgeI]
+                pp.edgeFaces()[edgei].size() == 1
+             && edgeGlobalFaces[edgei].size() == 1
+             && isCoupledEdge[meshEdgei]
             )
             {
                 // Edge of patch but no continuation across processor.
-                const edge& e = pp.edges()[edgeI];
+                const edge& e = pp.edges()[edgei];
                 //Pout<< "** Stopping extrusion on edge "
                 //    << pp.localPoints()[e[0]]
                 //    << pp.localPoints()[e[1]] << endl;
@@ -363,13 +363,13 @@ void Foam::snappyLayerDriver::handleNonManifolds
     {
         const labelList& meshPoints = pp.meshPoints();
 
-        forAll(meshPoints, patchPointI)
+        forAll(meshPoints, patchPointi)
         {
-            if (nonManifoldPoints.found(meshPoints[patchPointI]))
+            if (nonManifoldPoints.found(meshPoints[patchPointi]))
             {
                 unmarkExtrusion
                 (
-                    patchPointI,
+                    patchPointi,
                     patchDisp,
                     patchNLayers,
                     extrudeStatus
@@ -405,17 +405,17 @@ void Foam::snappyLayerDriver::handleFeatureAngle
 
         const labelListList& edgeFaces = pp.edgeFaces();
 
-        forAll(edgeFaces, edgeI)
+        forAll(edgeFaces, edgei)
         {
-            const labelList& eFaces = pp.edgeFaces()[edgeI];
+            const labelList& eFaces = pp.edgeFaces()[edgei];
 
-            label meshEdgeI = meshEdges[edgeI];
+            label meshEdgei = meshEdges[edgei];
 
             forAll(eFaces, i)
             {
                 nomalsCombine()
                 (
-                    edgeNormal[meshEdgeI],
+                    edgeNormal[meshEdgei],
                     pp.faceNormals()[eFaces[i]]
                 );
             }
@@ -449,13 +449,13 @@ void Foam::snappyLayerDriver::handleFeatureAngle
 
         // Now on coupled edges the edgeNormal will have been truncated and
         // only be still be the old value where two faces have the same normal
-        forAll(edgeFaces, edgeI)
+        forAll(edgeFaces, edgei)
         {
-            const labelList& eFaces = pp.edgeFaces()[edgeI];
+            const labelList& eFaces = pp.edgeFaces()[edgei];
 
-            label meshEdgeI = meshEdges[edgeI];
+            label meshEdgei = meshEdges[edgei];
 
-            const vector& n = edgeNormal[meshEdgeI];
+            const vector& n = edgeNormal[meshEdgei];
 
             if (n != point::max)
             {
@@ -463,7 +463,7 @@ void Foam::snappyLayerDriver::handleFeatureAngle
 
                 if (cos < minCos)
                 {
-                    const edge& e = pp.edges()[edgeI];
+                    const edge& e = pp.edges()[edgei];
 
                     unmarkExtrusion
                     (
@@ -528,13 +528,13 @@ void Foam::snappyLayerDriver::handleWarpedFaces
 
         if (f.size() > 3)
         {
-            label faceI = pp.addressing()[i];
+            label facei = pp.addressing()[i];
 
-            label ownLevel = cellLevel[mesh.faceOwner()[faceI]];
+            label ownLevel = cellLevel[mesh.faceOwner()[facei]];
             scalar edgeLen = edge0Len/(1<<ownLevel);
 
             // Normal distance to face centre plane
-            const point& fc = mesh.faceCentres()[faceI];
+            const point& fc = mesh.faceCentres()[facei];
             const vector& fn = pp.faceNormals()[i];
 
             scalarField vProj(f.size());
@@ -595,21 +595,21 @@ void Foam::snappyLayerDriver::handleWarpedFaces
 //    cellSet multiPatchCells(mesh, "multiPatchCells", pp.size());
 //
 //    // Detect points that use multiple faces on same cell.
-//    forAll(pointFaces, patchPointI)
+//    forAll(pointFaces, patchPointi)
 //    {
-//        const labelList& pFaces = pointFaces[patchPointI];
+//        const labelList& pFaces = pointFaces[patchPointi];
 //
 //        labelHashSet pointCells(pFaces.size());
 //
 //        forAll(pFaces, i)
 //        {
-//            label cellI = mesh.faceOwner()[pp.addressing()[pFaces[i]]];
+//            label celli = mesh.faceOwner()[pp.addressing()[pFaces[i]]];
 //
-//            if (!pointCells.insert(cellI))
+//            if (!pointCells.insert(celli))
 //            {
 //                // Second or more occurrence of cell so cell has two or more
 //                // pp faces connected to this point.
-//                multiPatchCells.insert(cellI);
+//                multiPatchCells.insert(celli);
 //            }
 //        }
 //    }
@@ -639,24 +639,24 @@ void Foam::snappyLayerDriver::handleWarpedFaces
 //        // (has to be done in separate loop since having one point on
 //        // multipatches has to reset extrusion on all points of cell)
 //
-//        forAll(pointFaces, patchPointI)
+//        forAll(pointFaces, patchPointi)
 //        {
-//            if (extrudeStatus[patchPointI] != NOEXTRUDE)
+//            if (extrudeStatus[patchPointi] != NOEXTRUDE)
 //            {
-//                const labelList& pFaces = pointFaces[patchPointI];
+//                const labelList& pFaces = pointFaces[patchPointi];
 //
 //                forAll(pFaces, i)
 //                {
-//                    label cellI =
+//                    label celli =
 //                        mesh.faceOwner()[pp.addressing()[pFaces[i]]];
 //
-//                    if (multiPatchCells.found(cellI))
+//                    if (multiPatchCells.found(celli))
 //                    {
 //                        if
 //                        (
 //                            unmarkExtrusion
 //                            (
-//                                patchPointI,
+//                                patchPointi,
 //                                patchDisp,
 //                                patchNLayers,
 //                                extrudeStatus
@@ -701,18 +701,18 @@ void Foam::snappyLayerDriver::setNumLayers
 
     forAll(patchIDs, i)
     {
-        label patchI = patchIDs[i];
+        label patchi = patchIDs[i];
 
-        const labelList& meshPoints = mesh.boundaryMesh()[patchI].meshPoints();
+        const labelList& meshPoints = mesh.boundaryMesh()[patchi].meshPoints();
 
-        label wantedLayers = patchToNLayers[patchI];
+        label wantedLayers = patchToNLayers[patchi];
 
-        forAll(meshPoints, patchPointI)
+        forAll(meshPoints, patchPointi)
         {
-            label ppPointI = pp.meshPointMap()[meshPoints[patchPointI]];
+            label ppPointi = pp.meshPointMap()[meshPoints[patchPointi]];
 
-            maxLayers[ppPointI] = max(wantedLayers, maxLayers[ppPointI]);
-            minLayers[ppPointI] = min(wantedLayers, minLayers[ppPointI]);
+            maxLayers[ppPointi] = max(wantedLayers, maxLayers[ppPointi]);
+            minLayers[ppPointi] = min(wantedLayers, minLayers[ppPointi]);
         }
     }
 
@@ -776,9 +776,9 @@ void Foam::snappyLayerDriver::setNumLayers
 
     // Calculate number of cells to create
     nAddedCells = 0;
-    forAll(pp.localFaces(), faceI)
+    forAll(pp.localFaces(), facei)
     {
-        const face& f = pp.localFaces()[faceI];
+        const face& f = pp.localFaces()[facei];
 
         // Get max of extrusion per point
         label nCells = 0;
@@ -817,35 +817,35 @@ Foam::snappyLayerDriver::makeLayerDisplacementField
         slipPointPatchVectorField::typeName
     );
     wordList actualPatchTypes(patchFieldTypes.size());
-    forAll(pointPatches, patchI)
+    forAll(pointPatches, patchi)
     {
-        actualPatchTypes[patchI] = pointPatches[patchI].type();
+        actualPatchTypes[patchi] = pointPatches[patchi].type();
     }
 
-    forAll(numLayers, patchI)
+    forAll(numLayers, patchi)
     {
         //  0 layers: do not allow slip so fixedValue 0
         // >0 layers: fixedValue which gets adapted
-        if (numLayers[patchI] == 0)
+        if (numLayers[patchi] == 0)
         {
-            patchFieldTypes[patchI] =
+            patchFieldTypes[patchi] =
                 zeroFixedValuePointPatchVectorField::typeName;
         }
-        else if (numLayers[patchI] > 0)
+        else if (numLayers[patchi] > 0)
         {
-            patchFieldTypes[patchI] = fixedValuePointPatchVectorField::typeName;
+            patchFieldTypes[patchi] = fixedValuePointPatchVectorField::typeName;
         }
     }
 
-    forAll(pointPatches, patchI)
+    forAll(pointPatches, patchi)
     {
-        if (isA<processorPointPatch>(pointPatches[patchI]))
+        if (isA<processorPointPatch>(pointPatches[patchi]))
         {
-            patchFieldTypes[patchI] = calculatedPointPatchVectorField::typeName;
+            patchFieldTypes[patchi] = calculatedPointPatchVectorField::typeName;
         }
-        else if (isA<cyclicPointPatch>(pointPatches[patchI]))
+        else if (isA<cyclicPointPatch>(pointPatches[patchi]))
         {
-            patchFieldTypes[patchI] = cyclicSlipPointPatchVectorField::typeName;
+            patchFieldTypes[patchi] = cyclicSlipPointPatchVectorField::typeName;
         }
     }
 
@@ -892,9 +892,9 @@ void Foam::snappyLayerDriver::growNoExtrusion
 
     label nGrown = 0;
 
-    forAll(localFaces, faceI)
+    forAll(localFaces, facei)
     {
-        const face& f = localFaces[faceI];
+        const face& f = localFaces[facei];
 
         bool hasSqueeze = false;
         forAll(f, fp)
@@ -950,12 +950,12 @@ void Foam::snappyLayerDriver::growNoExtrusion
     }
 
 
-    forAll(extrudeStatus, patchPointI)
+    forAll(extrudeStatus, patchPointi)
     {
-        if (extrudeStatus[patchPointI] == NOEXTRUDE)
+        if (extrudeStatus[patchPointi] == NOEXTRUDE)
         {
-            patchDisp[patchPointI] = Zero;
-            patchNLayers[patchPointI] = 0;
+            patchDisp[patchPointi] = Zero;
+            patchNLayers[patchPointi] = 0;
         }
     }
 
@@ -1022,42 +1022,41 @@ void Foam::snappyLayerDriver::determineSidePatches
         // so prepare to renumber edgePatchID
         Map<label> wantedToAddedPatch;
 
-        for (label patchI = nOldPatches; patchI < nPatches; patchI++)
+        for (label patchi = nOldPatches; patchi < nPatches; patchi++)
         {
-            label nbrProcI = patchToNbrProc[patchI];
-            word name =
-                    "procBoundary"
-                  + Foam::name(Pstream::myProcNo())
-                  + "to"
-                  + Foam::name(nbrProcI);
+            label nbrProci = patchToNbrProc[patchi];
+            word name
+            (
+                processorPolyPatch::newName(Pstream::myProcNo(), nbrProci)
+            );
 
             dictionary patchDict;
             patchDict.add("type", processorPolyPatch::typeName);
             patchDict.add("myProcNo", Pstream::myProcNo());
-            patchDict.add("neighbProcNo", nbrProcI);
+            patchDict.add("neighbProcNo", nbrProci);
             patchDict.add("nFaces", 0);
             patchDict.add("startFace", mesh.nFaces());
 
-            //Pout<< "Adding patch " << patchI
+            //Pout<< "Adding patch " << patchi
             //    << " name:" << name
             //    << " between " << Pstream::myProcNo()
-            //    << " and " << nbrProcI << endl;
+            //    << " and " << nbrProci << endl;
 
-            label procPatchI = meshRefiner_.appendPatch
+            label procPatchi = meshRefiner_.appendPatch
             (
                 mesh,
                 mesh.boundaryMesh().size(), // new patch index
                 name,
                 patchDict
             );
-            wantedToAddedPatch.insert(patchI, procPatchI);
+            wantedToAddedPatch.insert(patchi, procPatchi);
         }
 
         // Renumber edgePatchID
         forAll(edgePatchID, i)
         {
-            label patchI = edgePatchID[i];
-            Map<label>::const_iterator fnd = wantedToAddedPatch.find(patchI);
+            label patchi = edgePatchID[i];
+            Map<label>::const_iterator fnd = wantedToAddedPatch.find(patchi);
             if (fnd != wantedToAddedPatch.end())
             {
                 edgePatchID[i] = fnd();
@@ -1102,38 +1101,38 @@ void Foam::snappyLayerDriver::calculateLayerThickness
 
     forAll(patchIDs, i)
     {
-        label patchI = patchIDs[i];
+        label patchi = patchIDs[i];
 
-        const labelList& meshPoints = patches[patchI].meshPoints();
+        const labelList& meshPoints = patches[patchi].meshPoints();
 
-        forAll(meshPoints, patchPointI)
+        forAll(meshPoints, patchPointi)
         {
-            label ppPointI = pp.meshPointMap()[meshPoints[patchPointI]];
+            label ppPointi = pp.meshPointMap()[meshPoints[patchPointi]];
 
-            firstLayerThickness[ppPointI] = min
+            firstLayerThickness[ppPointi] = min
             (
-                firstLayerThickness[ppPointI],
-                layerParams.firstLayerThickness()[patchI]
+                firstLayerThickness[ppPointi],
+                layerParams.firstLayerThickness()[patchi]
             );
-            finalLayerThickness[ppPointI] = min
+            finalLayerThickness[ppPointi] = min
             (
-                finalLayerThickness[ppPointI],
-                layerParams.finalLayerThickness()[patchI]
+                finalLayerThickness[ppPointi],
+                layerParams.finalLayerThickness()[patchi]
             );
-            totalThickness[ppPointI] = min
+            totalThickness[ppPointi] = min
             (
-                totalThickness[ppPointI],
-                layerParams.thickness()[patchI]
+                totalThickness[ppPointi],
+                layerParams.thickness()[patchi]
             );
-            expRatio[ppPointI] = min
+            expRatio[ppPointi] = min
             (
-                expRatio[ppPointI],
-                layerParams.expansionRatio()[patchI]
+                expRatio[ppPointi],
+                layerParams.expansionRatio()[patchi]
             );
-            minThickness[ppPointI] = min
+            minThickness[ppPointi] = min
             (
-                minThickness[ppPointI],
-                layerParams.minThickness()[patchI]
+                minThickness[ppPointi],
+                layerParams.minThickness()[patchi]
             );
         }
     }
@@ -1231,14 +1230,14 @@ void Foam::snappyLayerDriver::calculateLayerThickness
         );
 
 
-        forAll(maxPointLevel, pointI)
+        forAll(maxPointLevel, pointi)
         {
             // Find undistorted edge size for this level.
-            scalar edgeLen = edge0Len/(1<<maxPointLevel[pointI]);
-            firstLayerThickness[pointI] *= edgeLen;
-            finalLayerThickness[pointI] *= edgeLen;
-            totalThickness[pointI] *= edgeLen;
-            minThickness[pointI] *= edgeLen;
+            scalar edgeLen = edge0Len/(1<<maxPointLevel[pointi]);
+            firstLayerThickness[pointi] *= edgeLen;
+            finalLayerThickness[pointi] *= edgeLen;
+            totalThickness[pointi] *= edgeLen;
+            minThickness[pointi] *= edgeLen;
         }
     }
 
@@ -1247,24 +1246,24 @@ void Foam::snappyLayerDriver::calculateLayerThickness
     // Rework thickness parameters into overall thickness
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    forAll(firstLayerThickness, pointI)
+    forAll(firstLayerThickness, pointi)
     {
-        thickness[pointI] = layerParams.layerThickness
+        thickness[pointi] = layerParams.layerThickness
         (
-            patchNLayers[pointI],
-            firstLayerThickness[pointI],
-            finalLayerThickness[pointI],
-            totalThickness[pointI],
-            expRatio[pointI]
+            patchNLayers[pointi],
+            firstLayerThickness[pointi],
+            finalLayerThickness[pointi],
+            totalThickness[pointi],
+            expRatio[pointi]
         );
 
-        expansionRatio[pointI] = layerParams.layerExpansionRatio
+        expansionRatio[pointi] = layerParams.layerExpansionRatio
         (
-            patchNLayers[pointI],
-            firstLayerThickness[pointI],
-            finalLayerThickness[pointI],
-            totalThickness[pointI],
-            expRatio[pointI]
+            patchNLayers[pointi],
+            firstLayerThickness[pointi],
+            finalLayerThickness[pointi],
+            totalThickness[pointi],
+            expRatio[pointi]
         );
     }
 
@@ -1281,8 +1280,8 @@ void Foam::snappyLayerDriver::calculateLayerThickness
         label maxPatchNameLen = 0;
         forAll(patchIDs, i)
         {
-            label patchI = patchIDs[i];
-            word patchName = patches[patchI].name();
+            label patchi = patchIDs[i];
+            word patchName = patches[patchi].name();
             maxPatchNameLen = max(maxPatchNameLen, label(patchName.size()));
         }
 
@@ -1299,29 +1298,29 @@ void Foam::snappyLayerDriver::calculateLayerThickness
 
         forAll(patchIDs, i)
         {
-            label patchI = patchIDs[i];
+            label patchi = patchIDs[i];
 
-            const labelList& meshPoints = patches[patchI].meshPoints();
+            const labelList& meshPoints = patches[patchi].meshPoints();
 
             scalar sumThickness = 0;
             scalar sumNearWallThickness = 0;
             label nMasterPoints = 0;
 
-            forAll(meshPoints, patchPointI)
+            forAll(meshPoints, patchPointi)
             {
-                label meshPointI = meshPoints[patchPointI];
-                if (isMasterPoint[meshPointI])
+                label meshPointi = meshPoints[patchPointi];
+                if (isMasterPoint[meshPointi])
                 {
-                    label ppPointI = pp.meshPointMap()[meshPointI];
+                    label ppPointi = pp.meshPointMap()[meshPointi];
 
-                    sumThickness += thickness[ppPointI];
+                    sumThickness += thickness[ppPointi];
                     sumNearWallThickness += layerParams.firstLayerThickness
                     (
-                        patchNLayers[ppPointI],
-                        firstLayerThickness[ppPointI],
-                        finalLayerThickness[ppPointI],
-                        thickness[ppPointI],
-                        expansionRatio[ppPointI]
+                        patchNLayers[ppPointi],
+                        firstLayerThickness[ppPointi],
+                        finalLayerThickness[ppPointi],
+                        thickness[ppPointi],
+                        expansionRatio[ppPointi]
                     );
                     nMasterPoints++;
                 }
@@ -1344,10 +1343,10 @@ void Foam::snappyLayerDriver::calculateLayerThickness
             }
 
             Info<< setf(ios_base::left) << setw(maxPatchNameLen)
-                << patches[patchI].name() << setprecision(3)
+                << patches[patchi].name() << setprecision(3)
                 << " " << setw(8)
-                << returnReduce(patches[patchI].size(), sumOp<scalar>())
-                << " " << setw(6) << layerParams.numLayers()[patchI]
+                << returnReduce(patches[patchi].size(), sumOp<scalar>())
+                << " " << setw(6) << layerParams.numLayers()[patchi]
                 << " " << setw(8) << avgNearWallThickness
                 << "  " << setw(8) << avgThickness
                 << endl;
@@ -1525,57 +1524,57 @@ void Foam::snappyLayerDriver::getPatchDisplacement
 
 
     // Check if no extrude possible.
-    forAll(pointNormals, patchPointI)
+    forAll(pointNormals, patchPointi)
     {
-        label meshPointI = pp.meshPoints()[patchPointI];
+        label meshPointi = pp.meshPoints()[patchPointi];
 
-        if (extrudeStatus[patchPointI] == NOEXTRUDE)
+        if (extrudeStatus[patchPointi] == NOEXTRUDE)
         {
             // Do not use unmarkExtrusion; forcibly set to zero extrusion.
-            patchNLayers[patchPointI] = 0;
-            patchDisp[patchPointI] = Zero;
+            patchNLayers[patchPointi] = 0;
+            patchDisp[patchPointi] = Zero;
         }
         else
         {
             // Get normal
-            const vector& n = pointNormals[patchPointI];
+            const vector& n = pointNormals[patchPointi];
 
-            if (!meshTools::visNormal(n, faceNormals, pointFaces[patchPointI]))
+            if (!meshTools::visNormal(n, faceNormals, pointFaces[patchPointi]))
             {
                 if (debug&meshRefinement::ATTRACTION)
                 {
-                    Pout<< "No valid normal for point " << meshPointI
-                        << ' ' << pp.points()[meshPointI]
+                    Pout<< "No valid normal for point " << meshPointi
+                        << ' ' << pp.points()[meshPointi]
                         << "; setting displacement to "
-                        << patchDisp[patchPointI]
+                        << patchDisp[patchPointi]
                         << endl;
                 }
 
-                extrudeStatus[patchPointI] = EXTRUDEREMOVE;
+                extrudeStatus[patchPointi] = EXTRUDEREMOVE;
                 nNoVisNormal++;
             }
         }
     }
 
     // At illegal points make displacement average of new neighbour positions
-    forAll(extrudeStatus, patchPointI)
+    forAll(extrudeStatus, patchPointi)
     {
-        if (extrudeStatus[patchPointI] == EXTRUDEREMOVE)
+        if (extrudeStatus[patchPointi] == EXTRUDEREMOVE)
         {
             point avg(Zero);
             label nPoints = 0;
 
-            const labelList& pEdges = pp.pointEdges()[patchPointI];
+            const labelList& pEdges = pp.pointEdges()[patchPointi];
 
             forAll(pEdges, i)
             {
-                label edgeI = pEdges[i];
+                label edgei = pEdges[i];
 
-                label otherPointI = pp.edges()[edgeI].otherVertex(patchPointI);
+                label otherPointi = pp.edges()[edgei].otherVertex(patchPointi);
 
-                if (extrudeStatus[otherPointI] != NOEXTRUDE)
+                if (extrudeStatus[otherPointi] != NOEXTRUDE)
                 {
-                    avg += localPoints[otherPointI] + patchDisp[otherPointI];
+                    avg += localPoints[otherPointi] + patchDisp[otherPointi];
                     nPoints++;
                 }
             }
@@ -1585,15 +1584,15 @@ void Foam::snappyLayerDriver::getPatchDisplacement
                 if (debug&meshRefinement::ATTRACTION)
                 {
                     Pout<< "Displacement at illegal point "
-                        << localPoints[patchPointI]
+                        << localPoints[patchPointi]
                         << " set to "
-                        << (avg / nPoints - localPoints[patchPointI])
+                        << (avg / nPoints - localPoints[patchPointi])
                         << endl;
                 }
 
-                patchDisp[patchPointI] =
+                patchDisp[patchPointi] =
                     avg / nPoints
-                  - localPoints[patchPointI];
+                  - localPoints[patchPointi];
 
                 nExtrudeRemove++;
             }
@@ -1628,15 +1627,15 @@ void Foam::snappyLayerDriver::getPatchDisplacement
 bool Foam::snappyLayerDriver::sameEdgeNeighbour
 (
     const labelListList& globalEdgeFaces,
-    const label myGlobalFaceI,
-    const label nbrGlobFaceI,
-    const label edgeI
+    const label myGlobalFacei,
+    const label nbrGlobFacei,
+    const label edgei
 ) const
 {
-    const labelList& eFaces = globalEdgeFaces[edgeI];
+    const labelList& eFaces = globalEdgeFaces[edgei];
     if (eFaces.size() == 2)
     {
-        return edge(myGlobalFaceI, nbrGlobFaceI) == edge(eFaces[0], eFaces[1]);
+        return edge(myGlobalFacei, nbrGlobFacei) == edge(eFaces[0], eFaces[1]);
     }
     else
     {
@@ -1649,15 +1648,15 @@ void Foam::snappyLayerDriver::getVertexString
 (
     const indirectPrimitivePatch& pp,
     const labelListList& globalEdgeFaces,
-    const label faceI,
-    const label edgeI,
-    const label myGlobFaceI,
-    const label nbrGlobFaceI,
+    const label facei,
+    const label edgei,
+    const label myGlobFacei,
+    const label nbrGlobFacei,
     DynamicList<label>& vertices
 ) const
 {
-    const labelList& fEdges = pp.faceEdges()[faceI];
-    label fp = findIndex(fEdges, edgeI);
+    const labelList& fEdges = pp.faceEdges()[facei];
+    label fp = findIndex(fEdges, edgei);
 
     if (fp == -1)
     {
@@ -1676,8 +1675,8 @@ void Foam::snappyLayerDriver::getVertexString
            !sameEdgeNeighbour
             (
                 globalEdgeFaces,
-                myGlobFaceI,
-                nbrGlobFaceI,
+                myGlobFacei,
+                nbrGlobFacei,
                 fEdges[prevFp]
             )
         )
@@ -1696,8 +1695,8 @@ void Foam::snappyLayerDriver::getVertexString
            !sameEdgeNeighbour
             (
                 globalEdgeFaces,
-                myGlobFaceI,
-                nbrGlobFaceI,
+                myGlobFacei,
+                nbrGlobFacei,
                 fEdges[nextFp]
             )
         )
@@ -1707,7 +1706,7 @@ void Foam::snappyLayerDriver::getVertexString
         endFp = nextFp;
     }
 
-    const face& f = pp.localFaces()[faceI];
+    const face& f = pp.localFaces()[facei];
     vertices.clear();
     fp = startFp;
     while (fp != endFp)
@@ -1744,30 +1743,30 @@ Foam::label Foam::snappyLayerDriver::truncateDisplacement
 
     forAllConstIter(faceSet, illegalPatchFaces, iter)
     {
-        label faceI = iter.key();
+        label facei = iter.key();
 
-        if (mesh.isInternalFace(faceI))
+        if (mesh.isInternalFace(facei))
         {
             FatalErrorInFunction
                 << "Faceset " << illegalPatchFaces.name()
-                << " contains internal face " << faceI << nl
+                << " contains internal face " << facei << nl
                 << "It should only contain patch faces" << abort(FatalError);
         }
 
-        const face& f = mesh.faces()[faceI];
+        const face& f = mesh.faces()[facei];
 
 
         forAll(f, fp)
         {
             if (meshPointMap.found(f[fp]))
             {
-                label patchPointI = meshPointMap[f[fp]];
+                label patchPointi = meshPointMap[f[fp]];
 
-                if (extrudeStatus[patchPointI] != NOEXTRUDE)
+                if (extrudeStatus[patchPointi] != NOEXTRUDE)
                 {
                     unmarkExtrusion
                     (
-                        patchPointI,
+                        patchPointi,
                         patchDisp,
                         patchNLayers,
                         extrudeStatus
@@ -1778,15 +1777,15 @@ Foam::label Foam::snappyLayerDriver::truncateDisplacement
         }
     }
 
-    forAll(patchDisp, patchPointI)
+    forAll(patchDisp, patchPointi)
     {
-        if (mag(patchDisp[patchPointI]) < minThickness[patchPointI])
+        if (mag(patchDisp[patchPointi]) < minThickness[patchPointi])
         {
             if
             (
                 unmarkExtrusion
                 (
-                    patchPointI,
+                    patchPointi,
                     patchDisp,
                     patchNLayers,
                     extrudeStatus
@@ -1796,11 +1795,11 @@ Foam::label Foam::snappyLayerDriver::truncateDisplacement
                 nChanged++;
             }
         }
-        else if (extrudeStatus[patchPointI] == NOEXTRUDE)
+        else if (extrudeStatus[patchPointi] == NOEXTRUDE)
         {
             // Make sure displacement is 0. Should already be so but ...
-            patchDisp[patchPointI] = Zero;
-            patchNLayers[patchPointI] = 0;
+            patchDisp[patchPointi] = Zero;
+            patchNLayers[patchPointi] = 0;
         }
     }
 
@@ -1897,20 +1896,20 @@ Foam::label Foam::snappyLayerDriver::truncateDisplacement
         label nButterFly = 0;
         {
             DynamicList<label> stringedVerts;
-            forAll(pp.edges(), edgeI)
+            forAll(pp.edges(), edgei)
             {
-                const labelList& globFaces = edgeGlobalFaces[edgeI];
+                const labelList& globFaces = edgeGlobalFaces[edgei];
 
                 if (globFaces.size() == 2)
                 {
-                    label myFaceI = pp.edgeFaces()[edgeI][0];
-                    label myGlobalFaceI = globalFaces.toGlobal
+                    label myFacei = pp.edgeFaces()[edgei][0];
+                    label myGlobalFacei = globalFaces.toGlobal
                     (
-                        pp.addressing()[myFaceI]
+                        pp.addressing()[myFacei]
                     );
-                    label nbrGlobalFaceI =
+                    label nbrGlobalFacei =
                     (
-                        globFaces[0] != myGlobalFaceI
+                        globFaces[0] != myGlobalFacei
                       ? globFaces[0]
                       : globFaces[1]
                     );
@@ -1918,10 +1917,10 @@ Foam::label Foam::snappyLayerDriver::truncateDisplacement
                     (
                         pp,
                         edgeGlobalFaces,
-                        myFaceI,
-                        edgeI,
-                        myGlobalFaceI,
-                        nbrGlobalFaceI,
+                        myFacei,
+                        edgei,
+                        myGlobalFacei,
+                        nbrGlobalFacei,
                         stringedVerts
                     );
 
@@ -1935,10 +1934,7 @@ Foam::label Foam::snappyLayerDriver::truncateDisplacement
                         bool pinch = false;
                         for (label i = 1; i < stringedVerts.size()-1; i++)
                         {
-                            if
-                            (
-                                extrudeStatus[stringedVerts[i]] == NOEXTRUDE
-                            )
+                            if (extrudeStatus[stringedVerts[i]] == NOEXTRUDE)
                             {
                                 pinch = true;
                                 break;
@@ -2059,15 +2055,15 @@ void Foam::snappyLayerDriver::setupLayerInfoTruncation
             << " nBufferCellsNoExtrude set to less than 0  ..." << endl;
 
         // Face layers if any point gets extruded
-        forAll(pp.localFaces(), patchFaceI)
+        forAll(pp.localFaces(), patchFacei)
         {
-            const face& f = pp.localFaces()[patchFaceI];
+            const face& f = pp.localFaces()[patchFacei];
 
             forAll(f, fp)
             {
                 if (patchNLayers[f[fp]] > 0)
                 {
-                    nPatchFaceLayers[patchFaceI] = patchNLayers[f[fp]];
+                    nPatchFaceLayers[patchFacei] = patchNLayers[f[fp]];
                     break;
                 }
             }
@@ -2075,11 +2071,11 @@ void Foam::snappyLayerDriver::setupLayerInfoTruncation
         nPatchPointLayers = patchNLayers;
 
         // Set any unset patch face layers
-        forAll(nPatchFaceLayers, patchFaceI)
+        forAll(nPatchFaceLayers, patchFacei)
         {
-            if (nPatchFaceLayers[patchFaceI] == -1)
+            if (nPatchFaceLayers[patchFacei] == -1)
             {
-                nPatchFaceLayers[patchFaceI] = 0;
+                nPatchFaceLayers[patchFacei] = 0;
             }
         }
     }
@@ -2088,9 +2084,9 @@ void Foam::snappyLayerDriver::setupLayerInfoTruncation
         // Determine max point layers per face.
         labelList maxLevel(pp.size(), 0);
 
-        forAll(pp.localFaces(), patchFaceI)
+        forAll(pp.localFaces(), patchFacei)
         {
-            const face& f = pp.localFaces()[patchFaceI];
+            const face& f = pp.localFaces()[patchFacei];
 
             // find patch faces where layer terminates (i.e contains extrude
             // and noextrude points).
@@ -2114,12 +2110,12 @@ void Foam::snappyLayerDriver::setupLayerInfoTruncation
 
                 if (noExtrude)
                 {
-                    nPatchFaceLayers[patchFaceI] = 1;
-                    maxLevel[patchFaceI] = mLevel;
+                    nPatchFaceLayers[patchFacei] = 1;
+                    maxLevel[patchFacei] = mLevel;
                 }
                 else
                 {
-                    maxLevel[patchFaceI] = mLevel;
+                    maxLevel[patchFacei] = mLevel;
                 }
             }
         }
@@ -2153,19 +2149,19 @@ void Foam::snappyLayerDriver::setupLayerInfoTruncation
 
                 boolList foundNeighbour(pp.nPoints(), false);
 
-                forAll(pp.meshPoints(), patchPointI)
+                forAll(pp.meshPoints(), patchPointi)
                 {
-                    forAll(pointFaces[patchPointI], pointFaceI)
+                    forAll(pointFaces[patchPointi], pointFacei)
                     {
-                        label faceI = pointFaces[patchPointI][pointFaceI];
+                        label facei = pointFaces[patchPointi][pointFacei];
 
                         if
                         (
-                            nPatchFaceLayers[faceI] != -1
-                         && maxLevel[faceI] > 0
+                            nPatchFaceLayers[facei] != -1
+                         && maxLevel[facei] > 0
                         )
                         {
-                            foundNeighbour[patchPointI] = true;
+                            foundNeighbour[patchPointi] = true;
                             break;
                         }
                     }
@@ -2180,21 +2176,21 @@ void Foam::snappyLayerDriver::setupLayerInfoTruncation
                     false               // null value
                 );
 
-                forAll(pp.meshPoints(), patchPointI)
+                forAll(pp.meshPoints(), patchPointi)
                 {
-                    if (foundNeighbour[patchPointI])
+                    if (foundNeighbour[patchPointi])
                     {
-                        forAll(pointFaces[patchPointI], pointFaceI)
+                        forAll(pointFaces[patchPointi], pointFacei)
                         {
-                            label faceI = pointFaces[patchPointI][pointFaceI];
+                            label facei = pointFaces[patchPointi][pointFacei];
                             if
                             (
-                                nPatchFaceLayers[faceI] == -1
-                             && maxLevel[faceI] > 0
-                             && ilevel < maxLevel[faceI]
+                                nPatchFaceLayers[facei] == -1
+                             && maxLevel[facei] > 0
+                             && ilevel < maxLevel[facei]
                             )
                             {
-                                tempCounter[faceI] = ilevel;
+                                tempCounter[facei] = ilevel;
                             }
                         }
                     }
@@ -2203,31 +2199,31 @@ void Foam::snappyLayerDriver::setupLayerInfoTruncation
             }
         }
 
-        forAll(pp.localFaces(), patchFaceI)
+        forAll(pp.localFaces(), patchFacei)
         {
-            if (nPatchFaceLayers[patchFaceI] == -1)
+            if (nPatchFaceLayers[patchFacei] == -1)
             {
-                nPatchFaceLayers[patchFaceI] = maxLevel[patchFaceI];
+                nPatchFaceLayers[patchFacei] = maxLevel[patchFacei];
             }
         }
 
-        forAll(pp.meshPoints(), patchPointI)
+        forAll(pp.meshPoints(), patchPointi)
         {
-            if (extrudeStatus[patchPointI] != NOEXTRUDE)
+            if (extrudeStatus[patchPointi] != NOEXTRUDE)
             {
-                forAll(pointFaces[patchPointI], pointFaceI)
+                forAll(pointFaces[patchPointi], pointFacei)
                 {
-                    label face = pointFaces[patchPointI][pointFaceI];
-                    nPatchPointLayers[patchPointI] = max
+                    label face = pointFaces[patchPointi][pointFacei];
+                    nPatchPointLayers[patchPointi] = max
                     (
-                        nPatchPointLayers[patchPointI],
+                        nPatchPointLayers[patchPointi],
                         nPatchFaceLayers[face]
                     );
                 }
             }
             else
             {
-                nPatchPointLayers[patchPointI] = 0;
+                nPatchPointLayers[patchPointi] = 0;
             }
         }
         syncTools::syncPointList
@@ -2254,9 +2250,9 @@ bool Foam::snappyLayerDriver::cellsUseFace
     {
         const cell& cFaces = mesh.cells()[cellLabels[i]];
 
-        forAll(cFaces, cFaceI)
+        forAll(cFaces, cFacei)
         {
-            if (faces.found(cFaces[cFaceI]))
+            if (faces.found(cFaces[cFacei]))
             {
                 return true;
             }
@@ -2322,11 +2318,11 @@ Foam::label Foam::snappyLayerDriver::checkAndUnmark
     const label nReportMax = 10;
     DynamicField<point> disabledFaceCentres(nReportMax);
 
-    forAll(addedCells, oldPatchFaceI)
+    forAll(addedCells, oldPatchFacei)
     {
         // Get the cells (in newMesh labels) per old patch face (in mesh
         // labels)
-        const labelList& fCells = addedCells[oldPatchFaceI];
+        const labelList& fCells = addedCells[oldPatchFacei];
 
         if (cellsUseFace(newMesh, fCells, wrongFaces))
         {
@@ -2335,7 +2331,7 @@ Foam::label Foam::snappyLayerDriver::checkAndUnmark
             (
                 unmarkExtrusion
                 (
-                    pp.localFaces()[oldPatchFaceI],
+                    pp.localFaces()[oldPatchFacei],
                     patchDisp,
                     patchNLayers,
                     extrudeStatus
@@ -2346,7 +2342,7 @@ Foam::label Foam::snappyLayerDriver::checkAndUnmark
                 {
                     disabledFaceCentres.append
                     (
-                        pp.faceCentres()[oldPatchFaceI]
+                        pp.faceCentres()[oldPatchFacei]
                     );
                 }
 
@@ -2448,41 +2444,41 @@ Foam::List<Foam::labelPair> Foam::snappyLayerDriver::getBafflesOnAddedMesh
     // - use the boundary face for the new baffles
 
     Map<label> baffleSet(4*baffles.size());
-    forAll(baffles, baffleI)
+    forAll(baffles, bafflei)
     {
-        baffleSet.insert(baffles[baffleI][0], baffleI);
-        baffleSet.insert(baffles[baffleI][1], baffleI);
+        baffleSet.insert(baffles[bafflei][0], bafflei);
+        baffleSet.insert(baffles[bafflei][1], bafflei);
     }
 
 
     List<labelPair> newBaffles(baffles.size(), labelPair(-1, -1));
     for
     (
-        label faceI = mesh.nInternalFaces();
-        faceI < mesh.nFaces();
-        faceI++
+        label facei = mesh.nInternalFaces();
+        facei < mesh.nFaces();
+        facei++
     )
     {
-        label oldFaceI = newToOldFaces[faceI];
+        label oldFacei = newToOldFaces[facei];
 
-        Map<label>::const_iterator faceFnd = baffleSet.find(oldFaceI);
+        Map<label>::const_iterator faceFnd = baffleSet.find(oldFacei);
         if (faceFnd != baffleSet.end())
         {
-            label baffleI = faceFnd();
-            labelPair& p = newBaffles[baffleI];
+            label bafflei = faceFnd();
+            labelPair& p = newBaffles[bafflei];
             if (p[0] == -1)
             {
-                p[0] = faceI;
+                p[0] = facei;
             }
             else if (p[1] == -1)
             {
-                p[1] = faceI;
+                p[1] = facei;
             }
             else
             {
                 FatalErrorInFunction
-                    << "Problem:" << faceI << " at:"
-                    << mesh.faceCentres()[faceI]
+                    << "Problem:" << facei << " at:"
+                    << mesh.faceCentres()[facei]
                     << " is on same baffle as " << p[0]
                     << " at:" << mesh.faceCentres()[p[0]]
                     << " and " << p[1]
@@ -2517,11 +2513,11 @@ void Foam::snappyLayerDriver::getLayerCellsFaces
     // Mark all cells in the layer.
     labelListList addedCells(addPatchCellLayer::addedCells(mesh, layerFaces));
 
-    forAll(addedCells, oldPatchFaceI)
+    forAll(addedCells, oldPatchFacei)
     {
-        const labelList& added = addedCells[oldPatchFaceI];
+        const labelList& added = addedCells[oldPatchFacei];
 
-        const labelList& layer = layerFaces[oldPatchFaceI];
+        const labelList& layer = layerFaces[oldPatchFacei];
 
         if (layer.size())
         {
@@ -2533,10 +2529,10 @@ void Foam::snappyLayerDriver::getLayerCellsFaces
         }
     }
 
-    forAll(layerFaces, oldPatchFaceI)
+    forAll(layerFaces, oldPatchFacei)
     {
-        const labelList& layer = layerFaces[oldPatchFaceI];
-        const scalar realThickness = oldRealThickness[oldPatchFaceI];
+        const labelList& layer = layerFaces[oldPatchFacei];
+        const scalar realThickness = oldRealThickness[oldPatchFacei];
 
         if (layer.size())
         {
@@ -2568,8 +2564,8 @@ void Foam::snappyLayerDriver::printLayerData
     label maxPatchNameLen = 0;
     forAll(patchIDs, i)
     {
-        label patchI = patchIDs[i];
-        word patchName = pbm[patchI].name();
+        label patchi = patchIDs[i];
+        word patchName = pbm[patchi].name();
         maxPatchNameLen = max(maxPatchNameLen, label(patchName.size()));
     }
 
@@ -2584,8 +2580,8 @@ void Foam::snappyLayerDriver::printLayerData
 
     forAll(patchIDs, i)
     {
-        label patchI = patchIDs[i];
-        const polyPatch& pp = pbm[patchI];
+        label patchi = patchIDs[i];
+        const polyPatch& pp = pbm[patchi];
 
         label sumSize = pp.size();
 
@@ -2598,11 +2594,11 @@ void Foam::snappyLayerDriver::printLayerData
         }
 
         // Thickness
-        scalarField::subField patchWanted = pbm[patchI].patchSlice
+        scalarField::subField patchWanted = pbm[patchi].patchSlice
         (
             faceWantedThickness
         );
-        scalarField::subField patchReal = pbm[patchI].patchSlice
+        scalarField::subField patchReal = pbm[patchi].patchSlice
         (
             faceRealThickness
         );
@@ -2635,7 +2631,7 @@ void Foam::snappyLayerDriver::printLayerData
         }
 
         Info<< setf(ios_base::left) << setw(maxPatchNameLen)
-            << pbm[patchI].name() << setprecision(3)
+            << pbm[patchi].name() << setprecision(3)
             << " " << setw(8) << sumSize
             << " " << setw(8) << avgLayers
             << " " << setw(8) << avgReal
@@ -2656,19 +2652,19 @@ bool Foam::snappyLayerDriver::writeLayerSets
     bool allOk = true;
     {
         label nAdded = 0;
-        forAll(cellNLayers, cellI)
+        forAll(cellNLayers, celli)
         {
-            if (cellNLayers[cellI] > 0)
+            if (cellNLayers[celli] > 0)
             {
                 nAdded++;
             }
         }
         cellSet addedCellSet(mesh, "addedCells", nAdded);
-        forAll(cellNLayers, cellI)
+        forAll(cellNLayers, celli)
         {
-            if (cellNLayers[cellI] > 0)
+            if (cellNLayers[celli] > 0)
             {
-                addedCellSet.insert(cellI);
+                addedCellSet.insert(celli);
             }
         }
         addedCellSet.instance() = meshRefiner_.timeName();
@@ -2681,20 +2677,20 @@ bool Foam::snappyLayerDriver::writeLayerSets
     }
     {
         label nAdded = 0;
-        for (label faceI = 0; faceI < mesh.nInternalFaces(); faceI++)
+        for (label facei = 0; facei < mesh.nInternalFaces(); facei++)
         {
-            if (faceRealThickness[faceI] > 0)
+            if (faceRealThickness[facei] > 0)
             {
                 nAdded++;
             }
         }
 
         faceSet layerFacesSet(mesh, "layerFaces", nAdded);
-        for (label faceI = 0; faceI < mesh.nInternalFaces(); faceI++)
+        for (label facei = 0; facei < mesh.nInternalFaces(); facei++)
         {
-            if (faceRealThickness[faceI] > 0)
+            if (faceRealThickness[facei] > 0)
             {
-                layerFacesSet.insert(faceI);
+                layerFacesSet.insert(facei);
             }
         }
         layerFacesSet.instance() = meshRefiner_.timeName();
@@ -2746,24 +2742,24 @@ bool Foam::snappyLayerDriver::writeLayerData
                 dimensionedScalar("zero", dimless, 0),
                 fixedValueFvPatchScalarField::typeName
             );
-            forAll(fld, cellI)
+            forAll(fld, celli)
             {
-                fld[cellI] = cellNLayers[cellI];
+                fld[celli] = cellNLayers[celli];
             }
             volScalarField::Boundary& fldBf = fld.boundaryFieldRef();
 
             const polyBoundaryMesh& pbm = mesh.boundaryMesh();
             forAll(patchIDs, i)
             {
-                label patchI = patchIDs[i];
-                const polyPatch& pp = pbm[patchI];
+                label patchi = patchIDs[i];
+                const polyPatch& pp = pbm[patchi];
                 const labelList& faceCells = pp.faceCells();
                 scalarField pfld(faceCells.size());
                 forAll(faceCells, i)
                 {
                     pfld[i] = cellNLayers[faceCells[i]];
                 }
-                fldBf[patchI] == pfld;
+                fldBf[patchi] == pfld;
             }
             Info<< indent << fld.name() << "    : actual number of layers"
                 << endl;
@@ -2790,8 +2786,8 @@ bool Foam::snappyLayerDriver::writeLayerData
             const polyBoundaryMesh& pbm = mesh.boundaryMesh();
             forAll(patchIDs, i)
             {
-                label patchI = patchIDs[i];
-                fldBf[patchI] == pbm[patchI].patchSlice(faceRealThickness);
+                label patchi = patchIDs[i];
+                fldBf[patchi] == pbm[patchi].patchSlice(faceRealThickness);
             }
             Info<< indent << fld.name() << "         : overall layer thickness"
                 << endl;
@@ -2818,13 +2814,13 @@ bool Foam::snappyLayerDriver::writeLayerData
             const polyBoundaryMesh& pbm = mesh.boundaryMesh();
             forAll(patchIDs, i)
             {
-                label patchI = patchIDs[i];
+                label patchi = patchIDs[i];
 
-                scalarField::subField patchWanted = pbm[patchI].patchSlice
+                scalarField::subField patchWanted = pbm[patchi].patchSlice
                 (
                     faceWantedThickness
                 );
-                scalarField::subField patchReal = pbm[patchI].patchSlice
+                scalarField::subField patchReal = pbm[patchi].patchSlice
                 (
                     faceRealThickness
                 );
@@ -2839,7 +2835,7 @@ bool Foam::snappyLayerDriver::writeLayerData
                     }
                 }
 
-                fldBf[patchI] == pfld;
+                fldBf[patchi] == pfld;
             }
             Info<< indent << fld.name()
                 << " : overall layer thickness (fraction"
@@ -3014,37 +3010,37 @@ void Foam::snappyLayerDriver::addLayers
     labelList numLayers(layerParams.numLayers());
     {
         labelHashSet layerIDs(patchIDs);
-        forAll(mesh.faceZones(), zoneI)
+        forAll(mesh.faceZones(), zonei)
         {
-            label mpI, spI;
+            label mpi, spi;
             surfaceZonesInfo::faceZoneType fzType;
             bool hasInfo = meshRefiner_.getFaceZoneInfo
             (
-                mesh.faceZones()[zoneI].name(),
-                mpI,
-                spI,
+                mesh.faceZones()[zonei].name(),
+                mpi,
+                spi,
                 fzType
             );
             if (hasInfo)
             {
                 const polyBoundaryMesh& pbm = mesh.boundaryMesh();
-                if (layerIDs.found(mpI) && !layerIDs.found(spI))
+                if (layerIDs.found(mpi) && !layerIDs.found(spi))
                 {
                     // Only layers on master side. Fix points on slave side
-                    Info<< "On faceZone " << mesh.faceZones()[zoneI].name()
-                        << " adding layers to master patch " << pbm[mpI].name()
+                    Info<< "On faceZone " << mesh.faceZones()[zonei].name()
+                        << " adding layers to master patch " << pbm[mpi].name()
                         << " only. Freezing points on slave patch "
-                        << pbm[spI].name() << endl;
-                    numLayers[spI] = 0;
+                        << pbm[spi].name() << endl;
+                    numLayers[spi] = 0;
                 }
-                else if (!layerIDs.found(mpI) && layerIDs.found(spI))
+                else if (!layerIDs.found(mpi) && layerIDs.found(spi))
                 {
                     // Only layers on slave side. Fix points on master side
-                    Info<< "On faceZone " << mesh.faceZones()[zoneI].name()
-                        << " adding layers to slave patch " << pbm[spI].name()
+                    Info<< "On faceZone " << mesh.faceZones()[zonei].name()
+                        << " adding layers to slave patch " << pbm[spi].name()
                         << " only. Freezing points on master patch "
-                        << pbm[mpI].name() << endl;
-                    numLayers[mpI] = 0;
+                        << pbm[mpi].name() << endl;
+                    numLayers[mpi] = 0;
                 }
             }
         }
@@ -3101,11 +3097,11 @@ void Foam::snappyLayerDriver::addLayers
                 extrudeStatus
             );
 
-            forAll(extrudeStatus, patchPointI)
+            forAll(extrudeStatus, patchPointi)
             {
-                if (extrudeStatus[patchPointI] != NOEXTRUDE)
+                if (extrudeStatus[patchPointi] != NOEXTRUDE)
                 {
-                    duplicatePoint[pp().meshPoints()[patchPointI]] = 1;
+                    duplicatePoint[pp().meshPoints()[patchPointi]] = 1;
                 }
             }
         }
@@ -3122,11 +3118,11 @@ void Foam::snappyLayerDriver::addLayers
         label n = duplicatePoint.count();
         labelList candidatePoints(n);
         n = 0;
-        forAll(duplicatePoint, pointI)
+        forAll(duplicatePoint, pointi)
         {
-            if (duplicatePoint[pointI])
+            if (duplicatePoint[pointi])
             {
-                candidatePoints[n++] = pointI;
+                candidatePoints[n++] = pointi;
             }
         }
 
@@ -3139,20 +3135,20 @@ void Foam::snappyLayerDriver::addLayers
             DynamicList<label> nonDupZones(mesh.faceZones().size());
 
             labelHashSet layerIDs(patchIDs);
-            forAll(mesh.faceZones(), zoneI)
+            forAll(mesh.faceZones(), zonei)
             {
-                label mpI, spI;
+                label mpi, spi;
                 surfaceZonesInfo::faceZoneType fzType;
                 bool hasInfo = meshRefiner_.getFaceZoneInfo
                 (
-                    mesh.faceZones()[zoneI].name(),
-                    mpI,
-                    spI,
+                    mesh.faceZones()[zonei].name(),
+                    mpi,
+                    spi,
                     fzType
                 );
-                if (hasInfo && !layerIDs.found(mpI) && !layerIDs.found(spI))
+                if (hasInfo && !layerIDs.found(mpi) && !layerIDs.found(spi))
                 {
-                    nonDupZones.append(zoneI);
+                    nonDupZones.append(zonei);
                 }
             }
             nonDupBaffles = meshRefinement::subsetBaffles
@@ -3179,16 +3175,16 @@ void Foam::snappyLayerDriver::addLayers
             const labelList& pointMap = map().pointMap();
             const labelList& reversePointMap = map().reversePointMap();
 
-            forAll(pointMap, pointI)
+            forAll(pointMap, pointi)
             {
-                label oldPointI = pointMap[pointI];
-                label newMasterPointI = reversePointMap[oldPointI];
+                label oldPointi = pointMap[pointi];
+                label newMasterPointi = reversePointMap[oldPointi];
 
-                if (newMasterPointI != pointI)
+                if (newMasterPointi != pointi)
                 {
                     // Found slave. Mark both master and slave
-                    pointToMaster[pointI] = newMasterPointI;
-                    pointToMaster[newMasterPointI] = newMasterPointI;
+                    pointToMaster[pointi] = newMasterPointi;
+                    pointToMaster[newMasterPointi] = newMasterPointi;
                 }
             }
 
@@ -3230,13 +3226,13 @@ void Foam::snappyLayerDriver::addLayers
                 );
                 Info<< "Writing point-duplicates to " << str.name() << endl;
                 const pointField& p = mesh.points();
-                forAll(pointMap, pointI)
+                forAll(pointMap, pointi)
                 {
-                    label newMasterI = reversePointMap[pointMap[pointI]];
+                    label newMasteri = reversePointMap[pointMap[pointi]];
 
-                    if (newMasterI != pointI)
+                    if (newMasteri != pointi)
                     {
-                        str.write(linePointRef(p[pointI], p[newMasterI]));
+                        str.write(linePointRef(p[pointi], p[newMasteri]));
                     }
                 }
             }
@@ -3752,7 +3748,7 @@ void Foam::snappyLayerDriver::addLayers
             );
             fvMesh& newMesh = newMeshPtr();
 
-            // get timing, but more importantly get memory information
+            // Get timing, but more importantly get memory information
             addProfiling(grow, "snappyHexMesh::layers::updateMesh");
 
             //?necessary? Update fields
@@ -3784,9 +3780,9 @@ void Foam::snappyLayerDriver::addLayers
 
             // Count number of added cells
             label nAddedCells = 0;
-            forAll(cellNLayers, cellI)
+            forAll(cellNLayers, celli)
             {
-                if (cellNLayers[cellI] > 0)
+                if (cellNLayers[celli] > 0)
                 {
                     nAddedCells++;
                 }
@@ -3816,20 +3812,20 @@ void Foam::snappyLayerDriver::addLayers
                 labelList meshToNewMesh(mesh.nFaces(), -1);
                 for
                 (
-                    label faceI = newMesh.nInternalFaces();
-                    faceI < newMesh.nFaces();
-                    faceI++
+                    label facei = newMesh.nInternalFaces();
+                    facei < newMesh.nFaces();
+                    facei++
                 )
                 {
-                    label newMeshFaceI = map().faceMap()[faceI];
-                    if (newMeshFaceI != -1)
+                    label newMeshFacei = map().faceMap()[facei];
+                    if (newMeshFacei != -1)
                     {
-                        meshToNewMesh[newMeshFaceI] = faceI;
+                        meshToNewMesh[newMeshFacei] = facei;
                     }
                 }
 
                 List<labelPair> newMeshBaffles(baffles.size());
-                label newI = 0;
+                label newi = 0;
                 forAll(baffles, i)
                 {
                     const labelPair& p = baffles[i];
@@ -3840,10 +3836,10 @@ void Foam::snappyLayerDriver::addLayers
                     );
                     if (newMeshBaffle[0] != -1 && newMeshBaffle[1] != -1)
                     {
-                        newMeshBaffles[newI++] = newMeshBaffle;
+                        newMeshBaffles[newi++] = newMeshBaffle;
                     }
                 }
-                newMeshBaffles.setSize(newI);
+                newMeshBaffles.setSize(newi);
 
                 internalBaffles = meshRefinement::subsetBaffles
                 (
@@ -4004,23 +4000,23 @@ void Foam::snappyLayerDriver::addLayers
             //  - and point originating from duplicate
             for
             (
-                label faceI = mesh.nInternalFaces();
-                faceI < mesh.nFaces();
-                faceI++
+                label facei = mesh.nInternalFaces();
+                facei < mesh.nFaces();
+                facei++
             )
             {
-                label oldFaceI = map().faceMap()[faceI];
-                if (oldFaceI != -1 && oldBaffleFace[oldFaceI])
+                label oldFacei = map().faceMap()[facei];
+                if (oldFacei != -1 && oldBaffleFace[oldFacei])
                 {
-                    const face& f = mesh.faces()[faceI];
+                    const face& f = mesh.faces()[facei];
                     forAll(f, fp)
                     {
-                        label pointI = f[fp];
-                        label oldPointI = map().pointMap()[pointI];
+                        label pointi = f[fp];
+                        label oldPointi = map().pointMap()[pointi];
 
-                        if (pointToMaster[oldPointI] != -1)
+                        if (pointToMaster[oldPointi] != -1)
                         {
-                            candidates.append(pointI);
+                            candidates.append(pointi);
                         }
                     }
                 }
@@ -4051,19 +4047,19 @@ void Foam::snappyLayerDriver::addLayers
             pointToMaster.setSize(mesh.nPoints());
             pointToMaster = -1;
 
-            forAll(newToOld, newI)
+            forAll(newToOld, newi)
             {
-                const labelList& oldPoints = newToOld[newI];
+                const labelList& oldPoints = newToOld[newi];
                 if (oldPoints.size() > 1)
                 {
                     labelList meshPoints
                     (
                         UIndirectList<label>(candidates, oldPoints)
                     );
-                    label masterI = min(meshPoints);
+                    label masteri = min(meshPoints);
                     forAll(meshPoints, i)
                     {
-                        pointToMaster[meshPoints[i]] = masterI;
+                        pointToMaster[meshPoints[i]] = masteri;
                     }
                 }
             }
@@ -4076,10 +4072,10 @@ void Foam::snappyLayerDriver::addLayers
 
     // Count duplicate points
     label nPointPairs = 0;
-    forAll(pointToMaster, pointI)
+    forAll(pointToMaster, pointi)
     {
-        label otherPointI = pointToMaster[pointI];
-        if (otherPointI != -1)
+        label otherPointi = pointToMaster[pointi];
+        if (otherPointi != -1)
         {
             nPointPairs++;
         }
@@ -4100,13 +4096,13 @@ void Foam::snappyLayerDriver::addLayers
               + ".obj"
             );
             Info<< "Points to be merged to " << str.name() << endl;
-            forAll(pointToMaster, pointI)
+            forAll(pointToMaster, pointi)
             {
-                label otherPointI = pointToMaster[pointI];
-                if (otherPointI != -1)
+                label otherPointi = pointToMaster[pointi];
+                if (otherPointi != -1)
                 {
-                    const point& pt = mesh.points()[pointI];
-                    const point& otherPt = mesh.points()[otherPointI];
+                    const point& pt = mesh.points()[pointi];
+                    const point& otherPt = mesh.points()[otherPointi];
                     str.write(linePointRef(pt, otherPt));
                 }
             }
@@ -4148,15 +4144,15 @@ void Foam::snappyLayerDriver::addLayers
             // layers.
             scalarField newFaceRealThickness(mesh.nFaces(), 0.0);
             scalarField newFaceWantedThickness(mesh.nFaces(), 0.0);
-            forAll(newFaceRealThickness, faceI)
+            forAll(newFaceRealThickness, facei)
             {
-                label oldFaceI = faceMap[faceI];
-                if (oldFaceI >= 0)
+                label oldFacei = faceMap[facei];
+                if (oldFacei >= 0)
                 {
-                    scalar& realThick = newFaceRealThickness[faceI];
-                    realThick = max(realThick, faceRealThickness[oldFaceI]);
-                    scalar& wanted = newFaceWantedThickness[faceI];
-                    wanted = max(wanted, faceWantedThickness[oldFaceI]);
+                    scalar& realThick = newFaceRealThickness[facei];
+                    realThick = max(realThick, faceRealThickness[oldFacei]);
+                    scalar& wanted = newFaceWantedThickness[facei];
+                    wanted = max(wanted, faceWantedThickness[oldFacei]);
                 }
             }
             faceRealThickness.transfer(newFaceRealThickness);
@@ -4249,16 +4245,16 @@ void Foam::snappyLayerDriver::doLayers
     // Patches that need to get a layer
     DynamicList<label> patchIDs(numLayers.size());
     label nFacesWithLayers = 0;
-    forAll(numLayers, patchI)
+    forAll(numLayers, patchi)
     {
-        if (numLayers[patchI] > 0)
+        if (numLayers[patchi] > 0)
         {
-            const polyPatch& pp = mesh.boundaryMesh()[patchI];
+            const polyPatch& pp = mesh.boundaryMesh()[patchi];
 
             if (!pp.coupled())
             {
-                patchIDs.append(patchI);
-                nFacesWithLayers += mesh.boundaryMesh()[patchI].size();
+                patchIDs.append(patchi);
+                nFacesWithLayers += mesh.boundaryMesh()[patchi].size();
             }
             else
             {
@@ -4271,19 +4267,19 @@ void Foam::snappyLayerDriver::doLayers
 
     // Add contributions from faceZones that get layers
     const faceZoneMesh& fZones = mesh.faceZones();
-    forAll(fZones, zoneI)
+    forAll(fZones, zonei)
     {
-        label mpI, spI;
+        label mpi, spi;
         surfaceZonesInfo::faceZoneType fzType;
-        meshRefiner_.getFaceZoneInfo(fZones[zoneI].name(), mpI, spI, fzType);
+        meshRefiner_.getFaceZoneInfo(fZones[zonei].name(), mpi, spi, fzType);
 
-        if (numLayers[mpI] > 0)
+        if (numLayers[mpi] > 0)
         {
-            nFacesWithLayers += fZones[zoneI].size();
+            nFacesWithLayers += fZones[zonei].size();
         }
-        if (numLayers[spI] > 0)
+        if (numLayers[spi] > 0)
         {
-            nFacesWithLayers += fZones[zoneI].size();
+            nFacesWithLayers += fZones[zonei].size();
         }
     }
 
@@ -4326,16 +4322,16 @@ void Foam::snappyLayerDriver::doLayers
             {
                 // Add contributions from faceZones that get layers
                 const faceZoneMesh& fZones = mesh.faceZones();
-                forAll(fZones, zoneI)
+                forAll(fZones, zonei)
                 {
-                    const faceZone& fZone = fZones[zoneI];
+                    const faceZone& fZone = fZones[zonei];
                     const word& fzName = fZone.name();
 
-                    label mpI, spI;
+                    label mpi, spi;
                     surfaceZonesInfo::faceZoneType fzType;
-                    meshRefiner_.getFaceZoneInfo(fzName, mpI, spI, fzType);
+                    meshRefiner_.getFaceZoneInfo(fzName, mpi, spi, fzType);
 
-                    if (numLayers[mpI] > 0 || numLayers[spI])
+                    if (numLayers[mpi] > 0 || numLayers[spi])
                     {
                         forAll(fZone, i)
                         {
@@ -4352,12 +4348,12 @@ void Foam::snappyLayerDriver::doLayers
 
             for
             (
-                label faceI = mesh.nInternalFaces();
-                faceI < mesh.nFaces();
-                faceI++
+                label facei = mesh.nInternalFaces();
+                facei < mesh.nFaces();
+                facei++
             )
             {
-                if (intOrCoupled[faceI] && isExtrudedZoneFace[faceI])
+                if (intOrCoupled[facei] && isExtrudedZoneFace[facei])
                 {
                     faceZoneOnCoupledFace = true;
                     break;
@@ -4379,30 +4375,30 @@ void Foam::snappyLayerDriver::doLayers
                 << endl;
 
             scalarField cellWeights(mesh.nCells(), 1);
-            forAll(numLayers, patchI)
+            forAll(numLayers, patchi)
             {
-                if (numLayers[patchI] > 0)
+                if (numLayers[patchi] > 0)
                 {
-                    const polyPatch& pp = mesh.boundaryMesh()[patchI];
+                    const polyPatch& pp = mesh.boundaryMesh()[patchi];
                     forAll(pp.faceCells(), i)
                     {
-                        cellWeights[pp.faceCells()[i]] += numLayers[patchI];
+                        cellWeights[pp.faceCells()[i]] += numLayers[patchi];
                     }
                 }
             }
 
             // Add contributions from faceZones that get layers
             const faceZoneMesh& fZones = mesh.faceZones();
-            forAll(fZones, zoneI)
+            forAll(fZones, zonei)
             {
-                const faceZone& fZone = fZones[zoneI];
+                const faceZone& fZone = fZones[zonei];
                 const word& fzName = fZone.name();
 
-                label mpI, spI;
+                label mpi, spi;
                 surfaceZonesInfo::faceZoneType fzType;
-                meshRefiner_.getFaceZoneInfo(fzName, mpI, spI, fzType);
+                meshRefiner_.getFaceZoneInfo(fzName, mpi, spi, fzType);
 
-                if (numLayers[mpI] > 0)
+                if (numLayers[mpi] > 0)
                 {
                     // Get the owner side for unflipped faces, neighbour side
                     // for flipped ones
@@ -4411,18 +4407,18 @@ void Foam::snappyLayerDriver::doLayers
                     {
                         if (cellIDs[i] >= 0)
                         {
-                            cellWeights[cellIDs[i]] += numLayers[mpI];
+                            cellWeights[cellIDs[i]] += numLayers[mpi];
                         }
                     }
                 }
-                if (numLayers[spI] > 0)
+                if (numLayers[spi] > 0)
                 {
                     const labelList& cellIDs = fZone.masterCells();
                     forAll(cellIDs, i)
                     {
                         if (cellIDs[i] >= 0)
                         {
-                            cellWeights[cellIDs[i]] += numLayers[mpI];
+                            cellWeights[cellIDs[i]] += numLayers[mpi];
                         }
                     }
                 }
diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyRefineDriver.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyRefineDriver.C
index 162412268fe4ed4f0f68819f6a9eb91e580140b8..05adb3e125063a55f32e26afdcf448d0f79ee98b 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyRefineDriver.C
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyRefineDriver.C
@@ -993,21 +993,21 @@ Foam::label Foam::snappyRefineDriver::refinementInterfaceRefine
                     cells.size()/100
                 );
 
-                forAll(cells, cellI)
+                forAll(cells, celli)
                 {
-                    const cell& cFaces = cells[cellI];
-                    label cLevel = cutter.cellLevel()[cellI];
+                    const cell& cFaces = cells[celli];
+                    label cLevel = cutter.cellLevel()[celli];
 
-                    forAll(cFaces, cFaceI)
+                    forAll(cFaces, cFacei)
                     {
-                        label faceI = cFaces[cFaceI];
+                        label facei = cFaces[cFacei];
 
-                        if (surfaceIndex[faceI] != -1)
+                        if (surfaceIndex[facei] != -1)
                         {
-                            label fLevel = cutter.faceLevel(faceI);
+                            label fLevel = cutter.faceLevel(facei);
                             if (fLevel != cLevel)
                             {
-                                transitionCells.insert(cellI);
+                                transitionCells.insert(celli);
                             }
                         }
                     }
@@ -1025,24 +1025,24 @@ Foam::label Foam::snappyRefineDriver::refinementInterfaceRefine
 
                 //forAllConstIter(cellSet, transitionCells, iter)
                 //{
-                //    label cellI = iter.key();
-                //    const cell& cFaces = cells[cellI];
-                //    const point& cc = cellCentres[cellI];
-                //    const scalar rCVol = pow(cellVolumes[cellI], -5.0/3.0);
+                //    label celli = iter.key();
+                //    const cell& cFaces = cells[celli];
+                //    const point& cc = cellCentres[celli];
+                //    const scalar rCVol = pow(cellVolumes[celli], -5.0/3.0);
                 //
                 //    // Determine principal axes of cell
                 //    symmTensor R(Zero);
                 //
                 //    forAll(cFaces, i)
                 //    {
-                //        label faceI = cFaces[i];
+                //        label facei = cFaces[i];
                 //
-                //        const point& fc = faceCentres[faceI];
+                //        const point& fc = faceCentres[facei];
                 //
                 //        // Calculate face-pyramid volume
-                //        scalar pyrVol = 1.0/3.0 * fA[faceI] & (fc-cc);
+                //        scalar pyrVol = 1.0/3.0 * fA[facei] & (fc-cc);
                 //
-                //        if (faceOwner[faceI] != cellI)
+                //        if (faceOwner[facei] != celli)
                 //        {
                 //            pyrVol = -pyrVol;
                 //        }
@@ -1066,17 +1066,17 @@ Foam::label Foam::snappyRefineDriver::refinementInterfaceRefine
                 //    labelVector plusFaceLevel(labelVector(-1, -1, -1));
                 //    labelVector minFaceLevel(labelVector(-1, -1, -1));
                 //
-                //    forAll(cFaces, cFaceI)
+                //    forAll(cFaces, cFacei)
                 //    {
-                //        label faceI = cFaces[cFaceI];
+                //        label facei = cFaces[cFacei];
                 //
-                //        if (surfaceIndex[faceI] != -1)
+                //        if (surfaceIndex[facei] != -1)
                 //        {
-                //            label fLevel = cutter.faceLevel(faceI);
+                //            label fLevel = cutter.faceLevel(facei);
                 //
                 //            // Get outwards pointing normal
-                //            vector n = fA[faceI]/mag(fA[faceI]);
-                //            if (faceOwner[faceI] != cellI)
+                //            vector n = fA[facei]/mag(fA[facei]);
+                //            if (faceOwner[facei] != celli)
                 //            {
                 //                n = -n;
                 //            }
@@ -1129,7 +1129,7 @@ Foam::label Foam::snappyRefineDriver::refinementInterfaceRefine
                 //         && plusFaceLevel[dir] != minFaceLevel[dir]
                 //        )
                 //        {
-                //            candidateCellSet.insert(cellI);
+                //            candidateCellSet.insert(celli);
                 //        }
                 //    }
                 //}
@@ -1138,26 +1138,26 @@ Foam::label Foam::snappyRefineDriver::refinementInterfaceRefine
 
                 forAllConstIter(cellSet, transitionCells, iter)
                 {
-                    label cellI = iter.key();
-                    const cell& cFaces = cells[cellI];
-                    label cLevel = cutter.cellLevel()[cellI];
+                    label celli = iter.key();
+                    const cell& cFaces = cells[celli];
+                    label cLevel = cutter.cellLevel()[celli];
 
                     // Detect opposite intersection
                     bool foundOpposite = false;
 
-                    forAll(cFaces, cFaceI)
+                    forAll(cFaces, cFacei)
                     {
-                        label faceI = cFaces[cFaceI];
+                        label facei = cFaces[cFacei];
 
                         if
                         (
-                            surfaceIndex[faceI] != -1
-                         && cutter.faceLevel(faceI) > cLevel
+                            surfaceIndex[facei] != -1
+                         && cutter.faceLevel(facei) > cLevel
                         )
                         {
                             // Get outwards pointing normal
-                            vector n = fA[faceI]/mag(fA[faceI]);
-                            if (faceOwner[faceI] != cellI)
+                            vector n = fA[facei]/mag(fA[facei]);
+                            if (faceOwner[facei] != celli)
                             {
                                 n = -n;
                             }
@@ -1165,17 +1165,17 @@ Foam::label Foam::snappyRefineDriver::refinementInterfaceRefine
                             // Check for any opposite intersection
                             forAll(cFaces, cFaceI2)
                             {
-                                label face2I = cFaces[cFaceI2];
+                                label face2i = cFaces[cFaceI2];
 
                                 if
                                 (
-                                    face2I != faceI
-                                 && surfaceIndex[face2I] != -1
+                                    face2i != facei
+                                 && surfaceIndex[face2i] != -1
                                 )
                                 {
                                     // Get outwards pointing normal
-                                    vector n2 = fA[face2I]/mag(fA[face2I]);
-                                    if (faceOwner[face2I] != cellI)
+                                    vector n2 = fA[face2i]/mag(fA[face2i]);
+                                    if (faceOwner[face2i] != celli)
                                     {
                                         n2 = -n2;
                                     }
@@ -1199,7 +1199,7 @@ Foam::label Foam::snappyRefineDriver::refinementInterfaceRefine
 
                     if (foundOpposite)
                     {
-                        candidateCellSet.insert(cellI);
+                        candidateCellSet.insert(celli);
                     }
                 }
 
@@ -1813,22 +1813,22 @@ void Foam::snappyRefineDriver::addFaceZones
             //const word slaveName = czNames.second()+"_to_"+czNames.first();
             const word& slaveName = patchNames.second();
 
-            label mpI = meshRefiner.addMeshedPatch(masterName, patchInfo);
+            label mpi = meshRefiner.addMeshedPatch(masterName, patchInfo);
 
             Info<< setf(ios_base::left)
-                << setw(6) << mpI
-                << setw(20) << mesh.boundaryMesh()[mpI].type()
+                << setw(6) << mpi
+                << setw(20) << mesh.boundaryMesh()[mpi].type()
                 << setw(30) << masterName
                 << setw(30) << fzName
                 << setw(10) << surfaceZonesInfo::faceZoneTypeNames[fzType]
                 << nl;
 
 
-            label slI = meshRefiner.addMeshedPatch(slaveName, patchInfo);
+            label sli = meshRefiner.addMeshedPatch(slaveName, patchInfo);
 
             Info<< setf(ios_base::left)
-                << setw(6) << slI
-                << setw(20) << mesh.boundaryMesh()[slI].type()
+                << setw(6) << sli
+                << setw(20) << mesh.boundaryMesh()[sli].type()
                 << setw(30) << slaveName
                 << setw(30) << fzName
                 << setw(10) << surfaceZonesInfo::faceZoneTypeNames[fzType]
diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriver.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriver.C
index f243c2eeb3a3fb3623608ccda51d189c7d49e235..1e5552f4d14ad90e8d8a1a28b5920cdd078fc5c6 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriver.C
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriver.C
@@ -89,32 +89,32 @@ Foam::label Foam::snappySnapDriver::getCollocatedPoints
     // Per old point the newPoint. Or -1 (not set yet) or -2 (already seen
     // twice)
     labelList firstOldPoint(nUnique, -1);
-    forAll(pointMap, oldPointI)
+    forAll(pointMap, oldPointi)
     {
-        label newPointI = pointMap[oldPointI];
+        label newPointi = pointMap[oldPointi];
 
-        if (firstOldPoint[newPointI] == -1)
+        if (firstOldPoint[newPointi] == -1)
         {
-            // First use of oldPointI. Store.
-            firstOldPoint[newPointI] = oldPointI;
+            // First use of oldPointi. Store.
+            firstOldPoint[newPointi] = oldPointi;
         }
-        else if (firstOldPoint[newPointI] == -2)
+        else if (firstOldPoint[newPointi] == -2)
         {
-            // Third or more reference of oldPointI -> non-manifold
-            isCollocatedPoint.set(oldPointI, 1u);
+            // Third or more reference of oldPointi -> non-manifold
+            isCollocatedPoint.set(oldPointi, 1u);
             nCollocated++;
         }
         else
         {
-            // Second reference of oldPointI -> non-manifold
-            isCollocatedPoint.set(firstOldPoint[newPointI], 1u);
+            // Second reference of oldPointi -> non-manifold
+            isCollocatedPoint.set(firstOldPoint[newPointi], 1u);
             nCollocated++;
 
-            isCollocatedPoint.set(oldPointI, 1u);
+            isCollocatedPoint.set(oldPointi, 1u);
             nCollocated++;
 
             // Mark with special value to save checking next time round
-            firstOldPoint[newPointI] = -2;
+            firstOldPoint[newPointi] = -2;
         }
     }
     return returnReduce(nCollocated, sumOp<label>());
@@ -148,20 +148,20 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothInternalDisplacement
     //{
     //    PackedBoolList newIsFront(mesh.nFaces());
     //
-    //    forAll(isFront, faceI)
+    //    forAll(isFront, facei)
     //    {
-    //        if (isFront[faceI])
+    //        if (isFront[facei])
     //        {
-    //            label own = mesh.faceOwner()[faceI];
+    //            label own = mesh.faceOwner()[facei];
     //            const cell& ownFaces = mesh.cells()[own];
     //            forAll(ownFaces, i)
     //            {
     //                newIsFront[ownFaces[i]] = true;
     //            }
     //
-    //            if (mesh.isInternalFace(faceI))
+    //            if (mesh.isInternalFace(facei))
     //            {
-    //                label nei = mesh.faceNeighbour()[faceI];
+    //                label nei = mesh.faceNeighbour()[facei];
     //                const cell& neiFaces = mesh.cells()[nei];
     //                forAll(neiFaces, i)
     //                {
@@ -188,14 +188,14 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothInternalDisplacement
 
     label nInterface = 0;
 
-    for (label faceI = 0; faceI < mesh.nInternalFaces(); faceI++)
+    for (label facei = 0; facei < mesh.nInternalFaces(); facei++)
     {
-        label ownLevel = cellLevel[mesh.faceOwner()[faceI]];
-        label neiLevel = cellLevel[mesh.faceNeighbour()[faceI]];
+        label ownLevel = cellLevel[mesh.faceOwner()[facei]];
+        label neiLevel = cellLevel[mesh.faceNeighbour()[facei]];
 
-        if (!isFront[faceI] && ownLevel != neiLevel)
+        if (!isFront[facei] && ownLevel != neiLevel)
         {
-            const face& f = mesh.faces()[faceI];
+            const face& f = mesh.faces()[facei];
             forAll(f, fp)
             {
                 isMovingPoint[f[fp]] = true;
@@ -208,14 +208,14 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothInternalDisplacement
     labelList neiCellLevel;
     syncTools::swapBoundaryCellList(mesh, cellLevel, neiCellLevel);
 
-    for (label faceI = mesh.nInternalFaces(); faceI < mesh.nFaces(); faceI++)
+    for (label facei = mesh.nInternalFaces(); facei < mesh.nFaces(); facei++)
     {
-        label ownLevel = cellLevel[mesh.faceOwner()[faceI]];
-        label neiLevel = neiCellLevel[faceI-mesh.nInternalFaces()];
+        label ownLevel = cellLevel[mesh.faceOwner()[facei]];
+        label neiLevel = neiCellLevel[facei-mesh.nInternalFaces()];
 
-        if (!isFront[faceI] && ownLevel != neiLevel)
+        if (!isFront[facei] && ownLevel != neiLevel)
         {
-            const face& f = mesh.faces()[faceI];
+            const face& f = mesh.faces()[facei];
             forAll(f, fp)
             {
                 isMovingPoint[f[fp]] = true;
@@ -239,9 +239,9 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothInternalDisplacement
 
     // Unmark any point on the boundary. If we're doing zero iterations of
     // face-cell wave we might have coupled points not being unmarked.
-    forAll(pp.meshPoints(), pointI)
+    forAll(pp.meshPoints(), pointi)
     {
-        isMovingPoint[pp.meshPoints()[pointI]] = false;
+        isMovingPoint[pp.meshPoints()[pointi]] = false;
     }
 
     // Make sure that points that are coupled to meshPoints but not on a patch
@@ -253,16 +253,16 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothInternalDisplacement
     labelList nCells(mesh.nPoints(), 0);
     pointField sumLocation(mesh.nPoints(), Zero);
 
-    forAll(isMovingPoint, pointI)
+    forAll(isMovingPoint, pointi)
     {
-        if (isMovingPoint[pointI])
+        if (isMovingPoint[pointi])
         {
-            const labelList& pCells = mesh.pointCells(pointI);
+            const labelList& pCells = mesh.pointCells(pointi);
 
             forAll(pCells, i)
             {
-                sumLocation[pointI] += mesh.cellCentres()[pCells[i]];
-                nCells[pointI]++;
+                sumLocation[pointi] += mesh.cellCentres()[pCells[i]];
+                nCells[pointi]++;
             }
         }
     }
@@ -282,12 +282,12 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothInternalDisplacement
 
     label nAdapted = 0;
 
-    forAll(displacement, pointI)
+    forAll(displacement, pointi)
     {
-        if (nCells[pointI] > 0)
+        if (nCells[pointi] > 0)
         {
-            displacement[pointI] =
-                sumLocation[pointI]/nCells[pointI]-mesh.points()[pointI];
+            displacement[pointi] =
+                sumLocation[pointi]/nCells[pointi]-mesh.points()[pointi];
             nAdapted++;
         }
     }
@@ -374,18 +374,18 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
     vectorField avgBoundary(pointFaces.size(), Zero);
     labelList nBoundary(pointFaces.size(), 0);
 
-    forAll(pointFaces, patchPointI)
+    forAll(pointFaces, patchPointi)
     {
-        const labelList& pFaces = pointFaces[patchPointI];
+        const labelList& pFaces = pointFaces[patchPointi];
 
-        forAll(pFaces, pfI)
+        forAll(pFaces, pfi)
         {
-            label faceI = pFaces[pfI];
+            label facei = pFaces[pfi];
 
-            if (isMasterFace.get(pp.addressing()[faceI]))
+            if (isMasterFace.get(pp.addressing()[facei]))
             {
-                avgBoundary[patchPointI] += pp[faceI].centre(points);
-                nBoundary[patchPointI]++;
+                avgBoundary[patchPointi] += pp[facei].centre(points);
+                nBoundary[patchPointi]++;
             }
         }
     }
@@ -425,10 +425,10 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
         // Note: no use of pointFaces
         const faceList& faces = mesh.faces();
 
-        for (label faceI = 0; faceI < mesh.nInternalFaces(); faceI++)
+        for (label facei = 0; facei < mesh.nInternalFaces(); facei++)
         {
-            const face& f = faces[faceI];
-            const point& fc = mesh.faceCentres()[faceI];
+            const face& f = faces[facei];
+            const point& fc = mesh.faceCentres()[facei];
 
             forAll(f, fp)
             {
@@ -440,16 +440,16 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
         // Count coupled faces as internal ones (but only once)
         const polyBoundaryMesh& patches = mesh.boundaryMesh();
 
-        forAll(patches, patchI)
+        forAll(patches, patchi)
         {
             if
             (
-                patches[patchI].coupled()
-             && refCast<const coupledPolyPatch>(patches[patchI]).owner()
+                patches[patchi].coupled()
+             && refCast<const coupledPolyPatch>(patches[patchi]).owner()
             )
             {
                 const coupledPolyPatch& pp =
-                    refCast<const coupledPolyPatch>(patches[patchI]);
+                    refCast<const coupledPolyPatch>(patches[patchi]);
 
                 const vectorField::subField faceCentres = pp.faceCentres();
 
@@ -485,21 +485,21 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
         avgInternal.setSize(meshPoints.size());
         nInternal.setSize(meshPoints.size());
 
-        forAll(avgInternal, patchPointI)
+        forAll(avgInternal, patchPointi)
         {
-            label meshPointI = meshPoints[patchPointI];
+            label meshPointi = meshPoints[patchPointi];
 
-            nInternal[patchPointI] = globalNum[meshPointI];
+            nInternal[patchPointi] = globalNum[meshPointi];
 
-            if (nInternal[patchPointI] == 0)
+            if (nInternal[patchPointi] == 0)
             {
-                avgInternal[patchPointI] = globalSum[meshPointI];
+                avgInternal[patchPointi] = globalSum[meshPointi];
             }
             else
             {
-                avgInternal[patchPointI] =
-                    globalSum[meshPointI]
-                  / nInternal[patchPointI];
+                avgInternal[patchPointi] =
+                    globalSum[meshPointi]
+                  / nInternal[patchPointi];
             }
         }
     }
@@ -509,10 +509,10 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
     labelList anyCell(mesh.nPoints(), -1);
-    forAll(mesh.faceOwner(), faceI)
+    forAll(mesh.faceOwner(), facei)
     {
-        label own = mesh.faceOwner()[faceI];
-        const face& f = mesh.faces()[faceI];
+        label own = mesh.faceOwner()[facei];
+        const face& f = mesh.faces()[facei];
 
         forAll(f, fp)
         {
@@ -527,8 +527,8 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
 
     forAll(pointFaces, i)
     {
-        label meshPointI = meshPoints[i];
-        const point& currentPos = pp.points()[meshPointI];
+        label meshPointi = meshPoints[i];
+        const point& currentPos = pp.points()[meshPointi];
 
         // Now we have the two average points: avgBoundary and avgInternal
         // and how many boundary/internal faces connect to the point
@@ -559,9 +559,9 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
         {
             // Non-manifold without internal faces. Use any connected cell
             // as internal point instead. Use precalculated any cell to avoid
-            // e.g. pointCells()[meshPointI][0]
+            // e.g. pointCells()[meshPointi][0]
 
-            const point& cc = mesh.cellCentres()[anyCell[meshPointI]];
+            const point& cc = mesh.cellCentres()[anyCell[meshPointi]];
 
             scalar cellCBlend = 0.8;
             scalar blend = 0.1;
@@ -601,19 +601,19 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
 //    tmp<pointField> tavg(new pointField(pointEdges.size(), Zero));
 //    pointField& avg = tavg();
 //
-//    forAll(pointEdges, vertI)
+//    forAll(pointEdges, verti)
 //    {
-//        vector& avgPos = avg[vertI];
+//        vector& avgPos = avg[verti];
 //
-//        const labelList& pEdges = pointEdges[vertI];
+//        const labelList& pEdges = pointEdges[verti];
 //
-//        forAll(pEdges, myEdgeI)
+//        forAll(pEdges, myEdgei)
 //        {
-//            const edge& e = edges[pEdges[myEdgeI]];
+//            const edge& e = edges[pEdges[myEdgei]];
 //
-//            label otherVertI = e.otherVertex(vertI);
+//            label otherVerti = e.otherVertex(verti);
 //
-//            avgPos += localPoints[otherVertI];
+//            avgPos += localPoints[otherVerti];
 //        }
 //
 //        avgPos /= pEdges.size();
@@ -662,9 +662,9 @@ Foam::tmp<Foam::scalarField> Foam::snappySnapDriver::edgePatchDist
     // Set initial changed points to all the patch points
     List<pointEdgePoint> wallInfo(pp.nPoints());
 
-    forAll(pp.localPoints(), ppI)
+    forAll(pp.localPoints(), ppi)
     {
-        wallInfo[ppI] = pointEdgePoint(pp.localPoints()[ppI], 0.0);
+        wallInfo[ppi] = pointEdgePoint(pp.localPoints()[ppi], 0.0);
     }
 
     // Current info on points
@@ -688,9 +688,9 @@ Foam::tmp<Foam::scalarField> Foam::snappySnapDriver::edgePatchDist
     tmp<scalarField> tedgeDist(new scalarField(mesh.nEdges()));
     scalarField& edgeDist = tedgeDist.ref();
 
-    forAll(allEdgeInfo, edgeI)
+    forAll(allEdgeInfo, edgei)
     {
-        edgeDist[edgeI] = Foam::sqrt(allEdgeInfo[edgeI].distSqr());
+        edgeDist[edgei] = Foam::sqrt(allEdgeInfo[edgei].distSqr());
     }
 
     return tedgeDist;
@@ -709,17 +709,17 @@ void Foam::snappySnapDriver::dumpMove
 
     OFstream nearestStream(fName);
 
-    label vertI = 0;
+    label verti = 0;
 
-    forAll(meshPts, ptI)
+    forAll(meshPts, pti)
     {
-        meshTools::writeOBJ(nearestStream, meshPts[ptI]);
-        vertI++;
+        meshTools::writeOBJ(nearestStream, meshPts[pti]);
+        verti++;
 
-        meshTools::writeOBJ(nearestStream, surfPts[ptI]);
-        vertI++;
+        meshTools::writeOBJ(nearestStream, surfPts[pti]);
+        verti++;
 
-        nearestStream<< "l " << vertI-1 << ' ' << vertI << nl;
+        nearestStream<< "l " << verti-1 << ' ' << verti << nl;
     }
 }
 
@@ -735,11 +735,11 @@ bool Foam::snappySnapDriver::outwardsDisplacement
     const vectorField& faceNormals = pp.faceNormals();
     const labelListList& pointFaces = pp.pointFaces();
 
-    forAll(pointFaces, pointI)
+    forAll(pointFaces, pointi)
     {
-        const labelList& pFaces = pointFaces[pointI];
+        const labelList& pFaces = pointFaces[pointi];
 
-        vector disp(patchDisp[pointI]);
+        vector disp(patchDisp[pointi]);
 
         scalar magDisp = mag(disp);
 
@@ -751,9 +751,9 @@ bool Foam::snappySnapDriver::outwardsDisplacement
 
             if (!outwards)
             {
-                Warning<< "Displacement " << patchDisp[pointI]
-                    << " at mesh point " << pp.meshPoints()[pointI]
-                    << " coord " << pp.points()[pp.meshPoints()[pointI]]
+                Warning<< "Displacement " << patchDisp[pointi]
+                    << " at mesh point " << pp.meshPoints()[pointi]
+                    << " coord " << pp.points()[pp.meshPoints()[pointi]]
                     << " points through the surrounding patch faces" << endl;
                 return false;
             }
@@ -797,17 +797,17 @@ Foam::scalarField Foam::snappySnapDriver::calcSnapDistance
 
     scalarField maxEdgeLen(localPoints.size(), -GREAT);
 
-    forAll(pointEdges, pointI)
+    forAll(pointEdges, pointi)
     {
-        const labelList& pEdges = pointEdges[pointI];
+        const labelList& pEdges = pointEdges[pointi];
 
-        forAll(pEdges, pEdgeI)
+        forAll(pEdges, pEdgei)
         {
-            const edge& e = edges[pEdges[pEdgeI]];
+            const edge& e = edges[pEdges[pEdgei]];
 
             scalar len = e.mag(localPoints);
 
-            maxEdgeLen[pointI] = max(maxEdgeLen[pointI], len);
+            maxEdgeLen[pointi] = max(maxEdgeLen[pointi], len);
         }
     }
 
@@ -858,9 +858,9 @@ void Foam::snappySnapDriver::preSmoothPatch
     {
         Info<< "Smoothing iteration " << smoothIter << endl;
         checkFaces.setSize(mesh.nFaces());
-        forAll(checkFaces, faceI)
+        forAll(checkFaces, facei)
         {
-            checkFaces[faceI] = faceI;
+            checkFaces[facei] = facei;
         }
 
         // If enabled smooth the internal points
@@ -949,16 +949,16 @@ Foam::labelList Foam::snappySnapDriver::getZoneSurfacePoints
     const word& zoneName
 )
 {
-    label zoneI = mesh.faceZones().findZoneID(zoneName);
+    label zonei = mesh.faceZones().findZoneID(zoneName);
 
-    if (zoneI == -1)
+    if (zonei == -1)
     {
         FatalErrorInFunction
             << "Cannot find zone " << zoneName
             << exit(FatalError);
     }
 
-    const faceZone& fZone = mesh.faceZones()[zoneI];
+    const faceZone& fZone = mesh.faceZones()[zonei];
 
 
     // Could use PrimitivePatch & localFaces to extract points but might just
@@ -972,15 +972,15 @@ Foam::labelList Foam::snappySnapDriver::getZoneSurfacePoints
 
         forAll(f, fp)
         {
-            label meshPointI = f[fp];
+            label meshPointi = f[fp];
 
             Map<label>::const_iterator iter =
-                pp.meshPointMap().find(meshPointI);
+                pp.meshPointMap().find(meshPointi);
 
             if (iter != pp.meshPointMap().end())
             {
-                label pointI = iter();
-                pointOnZone[pointI] = true;
+                label pointi = iter();
+                pointOnZone[pointi] = true;
             }
         }
     }
@@ -1005,18 +1005,18 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::avgCellCentres
     pointField& avgBoundary = tavgBoundary.ref();
     labelList nBoundary(pointFaces.size(), 0);
 
-    forAll(pointFaces, pointI)
+    forAll(pointFaces, pointi)
     {
-        const labelList& pFaces = pointFaces[pointI];
+        const labelList& pFaces = pointFaces[pointi];
 
-        forAll(pFaces, pfI)
+        forAll(pFaces, pfi)
         {
-            label faceI = pFaces[pfI];
-            label meshFaceI = pp.addressing()[faceI];
+            label facei = pFaces[pfi];
+            label meshFacei = pp.addressing()[facei];
 
-            label own = mesh.faceOwner()[meshFaceI];
-            avgBoundary[pointI] += mesh.cellCentres()[own];
-            nBoundary[pointI]++;
+            label own = mesh.faceOwner()[meshFacei];
+            avgBoundary[pointi] += mesh.cellCentres()[own];
+            nBoundary[pointi]++;
         }
     }
 
@@ -1083,10 +1083,10 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::avgCellCentres
 //        );
 //
 //
-//        forAll(maxPointLevel, pointI)
+//        forAll(maxPointLevel, pointi)
 //        {
 //            // Find undistorted edge size for this level.
-//            edgeLen[pointI] = edge0Len/(1<<maxPointLevel[pointI]);
+//            edgeLen[pointi] = edge0Len/(1<<maxPointLevel[pointi]);
 //        }
 //    }
 //    return tedgeLen;
@@ -1124,113 +1124,113 @@ void Foam::snappySnapDriver::detectNearSurfaces
     //    pointField start(14*pp.nPoints());
     //    pointField end(start.size());
     //
-    //    label rayI = 0;
-    //    forAll(localPoints, pointI)
+    //    label rayi = 0;
+    //    forAll(localPoints, pointi)
     //    {
-    //        const point& pt = localPoints[pointI];
+    //        const point& pt = localPoints[pointi];
     //
     //        // Along coordinate axes
     //
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
-    //            endPt.x() -= edgeLen[pointI];
+    //            endPt.x() -= edgeLen[pointi];
     //        }
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
-    //            endPt.x() += edgeLen[pointI];
+    //            endPt.x() += edgeLen[pointi];
     //        }
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
-    //            endPt.y() -= edgeLen[pointI];
+    //            endPt.y() -= edgeLen[pointi];
     //        }
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
-    //            endPt.y() += edgeLen[pointI];
+    //            endPt.y() += edgeLen[pointi];
     //        }
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
-    //            endPt.z() -= edgeLen[pointI];
+    //            endPt.z() -= edgeLen[pointi];
     //        }
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
-    //            endPt.z() += edgeLen[pointI];
+    //            endPt.z() += edgeLen[pointi];
     //        }
     //
     //        // At 45 degrees
     //
-    //        const vector vec(edgeLen[pointI]*n);
+    //        const vector vec(edgeLen[pointi]*n);
     //
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
     //            endPt.x() += vec.x();
     //            endPt.y() += vec.y();
     //            endPt.z() += vec.z();
     //        }
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
     //            endPt.x() -= vec.x();
     //            endPt.y() += vec.y();
     //            endPt.z() += vec.z();
     //        }
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
     //            endPt.x() += vec.x();
     //            endPt.y() -= vec.y();
     //            endPt.z() += vec.z();
     //        }
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
     //            endPt.x() -= vec.x();
     //            endPt.y() -= vec.y();
     //            endPt.z() += vec.z();
     //        }
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
     //            endPt.x() += vec.x();
     //            endPt.y() += vec.y();
     //            endPt.z() -= vec.z();
     //        }
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
     //            endPt.x() -= vec.x();
     //            endPt.y() += vec.y();
     //            endPt.z() -= vec.z();
     //        }
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
     //            endPt.x() += vec.x();
     //            endPt.y() -= vec.y();
     //            endPt.z() -= vec.z();
     //        }
     //        {
-    //            start[rayI] = pt;
-    //            point& endPt = end[rayI++];
+    //            start[rayi] = pt;
+    //            point& endPt = end[rayi++];
     //            endPt = pt;
     //            endPt.x() -= vec.x();
     //            endPt.y() -= vec.y();
@@ -1299,7 +1299,7 @@ void Foam::snappySnapDriver::detectNearSurfaces
     //        Info<< "Dumping intersections with co-planar surfaces to "
     //            << str.name() << endl;
     //
-    //        forAll(localPoints, pointI)
+    //        forAll(localPoints, pointi)
     //        {
     //            bool hasNormal = false;
     //            point surfPointA;
@@ -1309,13 +1309,13 @@ void Foam::snappySnapDriver::detectNearSurfaces
     //
     //            bool isCoplanar = false;
     //
-    //            label rayI = 14*pointI;
+    //            label rayi = 14*pointi;
     //            for (label i = 0; i < 14; i++)
     //            {
-    //                if (hit1[rayI].hit())
+    //                if (hit1[rayi].hit())
     //                {
-    //                    const point& pt = hit1[rayI].hitPoint();
-    //                    const vector& n = normal1[rayI];
+    //                    const point& pt = hit1[rayi].hitPoint();
+    //                    const vector& n = normal1[rayi];
     //
     //                    if (!hasNormal)
     //                    {
@@ -1344,10 +1344,10 @@ void Foam::snappySnapDriver::detectNearSurfaces
     //                        }
     //                    }
     //                }
-    //                if (hit2[rayI].hit())
+    //                if (hit2[rayi].hit())
     //                {
-    //                    const point& pt = hit2[rayI].hitPoint();
-    //                    const vector& n = normal2[rayI];
+    //                    const point& pt = hit2[rayi].hitPoint();
+    //                    const vector& n = normal2[rayi];
     //
     //                    if (!hasNormal)
     //                    {
@@ -1377,7 +1377,7 @@ void Foam::snappySnapDriver::detectNearSurfaces
     //                    }
     //                }
     //
-    //                rayI++;
+    //                rayi++;
     //            }
     //
     //            if (isCoplanar)
@@ -1394,12 +1394,12 @@ void Foam::snappySnapDriver::detectNearSurfaces
     // Construct rays through localPoints to beyond cell centre
     pointField start(pp.nPoints());
     pointField end(pp.nPoints());
-    forAll(localPoints, pointI)
+    forAll(localPoints, pointi)
     {
-        const point& pt = localPoints[pointI];
-        const vector d = 2*(avgCc[pointI]-pt);
-        start[pointI] = pt - d;
-        end[pointI] = pt + d;
+        const point& pt = localPoints[pointi];
+        const vector d = 2*(avgCc[pointi]-pt);
+        start[pointi] = pt - d;
+        end[pointi] = pt + d;
     }
 
 
@@ -1465,61 +1465,61 @@ void Foam::snappySnapDriver::detectNearSurfaces
         );
 
 
-        forAll(localPoints, pointI)
+        forAll(localPoints, pointi)
         {
             // Current location
-            const point& pt = localPoints[pointI];
+            const point& pt = localPoints[pointi];
 
             bool override = false;
 
-            //if (hit1[pointI].hit())
+            //if (hit1[pointi].hit())
             //{
             //    if
             //    (
             //        meshRefiner_.isGap
             //        (
             //            planarCos,
-            //            nearestPoint[pointI],
-            //            nearestNormal[pointI],
-            //            hit1[pointI].hitPoint(),
-            //            normal1[pointI]
+            //            nearestPoint[pointi],
+            //            nearestNormal[pointi],
+            //            hit1[pointi].hitPoint(),
+            //            normal1[pointi]
             //        )
             //    )
             //    {
-            //        disp[pointI] = hit1[pointI].hitPoint()-pt;
+            //        disp[pointi] = hit1[pointi].hitPoint()-pt;
             //        override = true;
             //    }
             //}
-            //if (hit2[pointI].hit())
+            //if (hit2[pointi].hit())
             //{
             //    if
             //    (
             //        meshRefiner_.isGap
             //        (
             //            planarCos,
-            //            nearestPoint[pointI],
-            //            nearestNormal[pointI],
-            //            hit2[pointI].hitPoint(),
-            //            normal2[pointI]
+            //            nearestPoint[pointi],
+            //            nearestNormal[pointi],
+            //            hit2[pointi].hitPoint(),
+            //            normal2[pointi]
             //        )
             //    )
             //    {
-            //        disp[pointI] = hit2[pointI].hitPoint()-pt;
+            //        disp[pointi] = hit2[pointi].hitPoint()-pt;
             //        override = true;
             //    }
             //}
 
-            if (hit1[pointI].hit() && hit2[pointI].hit())
+            if (hit1[pointi].hit() && hit2[pointi].hit())
             {
                 if
                 (
                     meshRefiner_.isGap
                     (
                         planarCos,
-                        hit1[pointI].hitPoint(),
-                        normal1[pointI],
-                        hit2[pointI].hitPoint(),
-                        normal2[pointI]
+                        hit1[pointi].hitPoint(),
+                        normal1[pointi],
+                        hit2[pointi].hitPoint(),
+                        normal2[pointi]
                     )
                 )
                 {
@@ -1528,17 +1528,17 @@ void Foam::snappySnapDriver::detectNearSurfaces
 
                     if (gapStr.valid())
                     {
-                        const point& intPt = hit2[pointI].hitPoint();
+                        const point& intPt = hit2[pointi].hitPoint();
                         gapStr().write(linePointRef(pt, intPt));
                     }
 
                     // Choose hit2 : nearest to end point (so inside the domain)
-                    disp[pointI] = hit2[pointI].hitPoint()-pt;
+                    disp[pointi] = hit2[pointi].hitPoint()-pt;
                     override = true;
                 }
             }
 
-            if (override && isPatchMasterPoint[pointI])
+            if (override && isPatchMasterPoint[pointi])
             {
                 nOverride++;
             }
@@ -1560,11 +1560,11 @@ void Foam::snappySnapDriver::detectNearSurfaces
 
         forAll(zonedSurfaces, i)
         {
-            label zoneSurfI = zonedSurfaces[i];
+            label zoneSurfi = zonedSurfaces[i];
 
-            const word& faceZoneName = surfZones[zoneSurfI].faceZoneName();
+            const word& faceZoneName = surfZones[zoneSurfi].faceZoneName();
 
-            const labelList surfacesToTest(1, zoneSurfI);
+            const labelList surfacesToTest(1, zoneSurfi);
 
             // Get indices of points both on faceZone and on pp.
             labelList zonePointIndices
@@ -1607,10 +1607,10 @@ void Foam::snappySnapDriver::detectNearSurfaces
 
             forAll(hit1, i)
             {
-                label pointI = zonePointIndices[i];
+                label pointi = zonePointIndices[i];
 
                 // Current location
-                const point& pt = localPoints[pointI];
+                const point& pt = localPoints[pointi];
 
                 bool override = false;
 
@@ -1621,14 +1621,14 @@ void Foam::snappySnapDriver::detectNearSurfaces
                 //        meshRefiner_.isGap
                 //        (
                 //            planarCos,
-                //            nearestPoint[pointI],
-                //            nearestNormal[pointI],
+                //            nearestPoint[pointi],
+                //            nearestNormal[pointi],
                 //            hit1[i].hitPoint(),
                 //            normal1[i]
                 //        )
                 //    )
                 //    {
-                //        disp[pointI] = hit1[i].hitPoint()-pt;
+                //        disp[pointi] = hit1[i].hitPoint()-pt;
                 //        override = true;
                 //    }
                 //}
@@ -1639,14 +1639,14 @@ void Foam::snappySnapDriver::detectNearSurfaces
                 //        meshRefiner_.isGap
                 //        (
                 //            planarCos,
-                //            nearestPoint[pointI],
-                //            nearestNormal[pointI],
+                //            nearestPoint[pointi],
+                //            nearestNormal[pointi],
                 //            hit2[i].hitPoint(),
                 //            normal2[i]
                 //        )
                 //    )
                 //    {
-                //        disp[pointI] = hit2[i].hitPoint()-pt;
+                //        disp[pointi] = hit2[i].hitPoint()-pt;
                 //        override = true;
                 //    }
                 //}
@@ -1671,12 +1671,12 @@ void Foam::snappySnapDriver::detectNearSurfaces
                             gapStr().write(linePointRef(pt, intPt));
                         }
 
-                        disp[pointI] = hit2[i].hitPoint()-pt;
+                        disp[pointi] = hit2[i].hitPoint()-pt;
                         override = true;
                     }
                 }
 
-                if (override && isPatchMasterPoint[pointI])
+                if (override && isPatchMasterPoint[pointi])
                 {
                     nOverride++;
                 }
@@ -1736,9 +1736,9 @@ void Foam::snappySnapDriver::calcNearestSurface
         {
             if (hitInfo[i].hit())
             {
-                label pointI = zonePointIndices[i];
-                nearestPoint[pointI] = hitInfo[i].hitPoint();
-                nearestNormal[pointI] = hitNormal[i];
+                label pointi = zonePointIndices[i];
+                nearestPoint[pointi] = hitInfo[i].hitPoint();
+                nearestNormal[pointi] = hitNormal[i];
             }
         }
     }
@@ -1761,11 +1761,11 @@ void Foam::snappySnapDriver::calcNearestSurface
     {
         if (hitInfo[i].hit())
         {
-            label pointI = zonePointIndices[i];
+            label pointi = zonePointIndices[i];
 
-            patchDisp[pointI] = hitInfo[i].hitPoint() - localPoints[pointI];
-            minSnapDist[pointI] = mag(patchDisp[pointI]);
-            snapSurf[pointI] = hitSurface[i];
+            patchDisp[pointi] = hitInfo[i].hitPoint() - localPoints[pointi];
+            minSnapDist[pointi] = mag(patchDisp[pointi]);
+            snapSurf[pointi] = hitSurface[i];
         }
     }
 }
@@ -1825,17 +1825,17 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
         {
             // Attract patch points to same region only
 
-            forAll(surfaces.surfaces(), surfI)
+            forAll(surfaces.surfaces(), surfi)
             {
-                label geomI = surfaces.surfaces()[surfI];
-                label nRegions = surfaces.geometry()[geomI].regions().size();
+                label geomi = surfaces.surfaces()[surfi];
+                label nRegions = surfaces.geometry()[geomi].regions().size();
 
-                const labelList surfacesToTest(1, surfI);
+                const labelList surfacesToTest(1, surfi);
 
-                for (label regionI = 0; regionI < nRegions; regionI++)
+                for (label regioni = 0; regioni < nRegions; regioni++)
                 {
-                    label globalI = surfaces.globalRegion(surfI, regionI);
-                    label masterPatchI = globalToMasterPatch[globalI];
+                    label globali = surfaces.globalRegion(surfi, regioni);
+                    label masterPatchi = globalToMasterPatch[globali];
 
                     // Get indices of points both on patch and on pp
                     labelList zonePointIndices
@@ -1843,7 +1843,7 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
                         getFacePoints
                         (
                             pp,
-                            mesh.boundaryMesh()[masterPatchI]
+                            mesh.boundaryMesh()[masterPatchi]
                         )
                     );
 
@@ -1852,7 +1852,7 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
                         surfaces,
 
                         surfacesToTest,
-                        labelListList(1, labelList(1, regionI)), //regionsToTest
+                        labelListList(1, labelList(1, regioni)), //regionsToTest
 
                         localPoints,
                         zonePointIndices,
@@ -1866,9 +1866,9 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
                         nearestNormal
                     );
 
-                    if (globalToSlavePatch[globalI] != masterPatchI)
+                    if (globalToSlavePatch[globali] != masterPatchi)
                     {
-                        label slavePatchI = globalToSlavePatch[globalI];
+                        label slavePatchi = globalToSlavePatch[globali];
 
                         // Get indices of points both on patch and on pp
                         labelList zonePointIndices
@@ -1876,7 +1876,7 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
                             getFacePoints
                             (
                                 pp,
-                                mesh.boundaryMesh()[slavePatchI]
+                                mesh.boundaryMesh()[slavePatchi]
                             )
                         );
 
@@ -1885,7 +1885,7 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
                             surfaces,
 
                             surfacesToTest,
-                            labelListList(1, labelList(1, regionI)),
+                            labelListList(1, labelList(1, regioni)),
 
                             localPoints,
                             zonePointIndices,
@@ -1933,12 +1933,12 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
                     hitNormal
                 );
 
-                forAll(hitInfo, pointI)
+                forAll(hitInfo, pointi)
                 {
-                    if (hitInfo[pointI].hit())
+                    if (hitInfo[pointi].hit())
                     {
-                        nearestPoint[pointI] = hitInfo[pointI].hitPoint();
-                        nearestNormal[pointI] = hitNormal[pointI];
+                        nearestPoint[pointi] = hitInfo[pointi].hitPoint();
+                        nearestNormal[pointi] = hitNormal[pointi];
                     }
                 }
             }
@@ -1954,15 +1954,15 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
                 );
             }
 
-            forAll(hitInfo, pointI)
+            forAll(hitInfo, pointi)
             {
-                if (hitInfo[pointI].hit())
+                if (hitInfo[pointi].hit())
                 {
-                    patchDisp[pointI] =
-                        hitInfo[pointI].hitPoint()
-                      - localPoints[pointI];
+                    patchDisp[pointi] =
+                        hitInfo[pointi].hitPoint()
+                      - localPoints[pointi];
 
-                    snapSurf[pointI] = hitSurface[pointI];
+                    snapSurf[pointi] = hitSurface[pointi];
                 }
             }
 
@@ -1982,14 +1982,14 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
 
             forAll(zonedSurfaces, i)
             {
-                label surfI = zonedSurfaces[i];
+                label surfi = zonedSurfaces[i];
 
-                const word& faceZoneName = surfZones[surfI].faceZoneName();
+                const word& faceZoneName = surfZones[surfi].faceZoneName();
 
-                const labelList surfacesToTest(1, surfI);
+                const labelList surfacesToTest(1, surfi);
 
-                label geomI = surfaces.surfaces()[surfI];
-                label nRegions = surfaces.geometry()[geomI].regions().size();
+                label geomi = surfaces.surfaces()[surfi];
+                label nRegions = surfaces.geometry()[geomi].regions().size();
 
 
                 // Get indices of points both on faceZone and on pp.
@@ -2027,15 +2027,15 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
 
 
         // Check if all points are being snapped
-        forAll(snapSurf, pointI)
+        forAll(snapSurf, pointi)
         {
-            if (snapSurf[pointI] == -1)
+            if (snapSurf[pointi] == -1)
             {
                 WarningInFunction
-                    << "For point:" << pointI
-                    << " coordinate:" << localPoints[pointI]
+                    << "For point:" << pointi
+                    << " coordinate:" << localPoints[pointi]
                     << " did not find any surface within:"
-                    << minSnapDist[pointI]
+                    << minSnapDist[pointi]
                     << " metre." << endl;
             }
         }
@@ -2065,16 +2065,16 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
 
     // Limit amount of movement. Can not happen for triSurfaceMesh but
     // can happen for some analytical shapes?
-    forAll(patchDisp, patchPointI)
+    forAll(patchDisp, patchPointi)
     {
-        scalar magDisp = mag(patchDisp[patchPointI]);
+        scalar magDisp = mag(patchDisp[patchPointi]);
 
-        if (magDisp > snapDist[patchPointI])
+        if (magDisp > snapDist[patchPointi])
         {
-            patchDisp[patchPointI] *= snapDist[patchPointI] / magDisp;
+            patchDisp[patchPointi] *= snapDist[patchPointi] / magDisp;
 
-            Pout<< "Limiting displacement for " << patchPointI
-                << " from " << magDisp << " to " << snapDist[patchPointI]
+            Pout<< "Limiting displacement for " << patchPointi
+                << " from " << magDisp << " to " << snapDist[patchPointi]
                 << endl;
         }
     }
@@ -2264,11 +2264,11 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::snappySnapDriver::repatchToSurface
     PackedBoolList isZonedFace(mesh.nFaces());
     {
         // 1. Preserve faces in preserveFaces list
-        forAll(preserveFaces, faceI)
+        forAll(preserveFaces, facei)
         {
-            if (preserveFaces[faceI] != -1)
+            if (preserveFaces[facei] != -1)
             {
-                isZonedFace.set(faceI, 1);
+                isZonedFace.set(facei, 1);
             }
         }
 
@@ -2278,8 +2278,8 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::snappySnapDriver::repatchToSurface
 
         forAll(zonedSurfaces, i)
         {
-            const label zoneSurfI = zonedSurfaces[i];
-            const faceZone& fZone = fZones[surfZones[zoneSurfI].faceZoneName()];
+            const label zoneSurfi = zonedSurfaces[i];
+            const faceZone& fZone = fZones[surfZones[zoneSurfi].faceZoneName()];
 
             forAll(fZone, i)
             {
@@ -2311,15 +2311,15 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::snappySnapDriver::repatchToSurface
 
             const faceList& localFaces = pp.localFaces();
 
-            forAll(localFaces, faceI)
+            forAll(localFaces, facei)
             {
-                const face& f = localFaces[faceI];
+                const face& f = localFaces[facei];
 
                 forAll(f, fp)
                 {
-                    faceSnapDist[faceI] = max
+                    faceSnapDist[facei] = max
                     (
-                        faceSnapDist[faceI],
+                        faceSnapDist[facei],
                         snapDist[f[fp]]
                     );
                 }
@@ -2343,9 +2343,9 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::snappySnapDriver::repatchToSurface
         // Get patch
         forAll(pp, i)
         {
-            label faceI = pp.addressing()[i];
+            label facei = pp.addressing()[i];
 
-            if (hitSurface[i] != -1 && !isZonedFace.get(faceI))
+            if (hitSurface[i] != -1 && !isZonedFace.get(facei))
             {
                 closestPatch[i] = globalToMasterPatch_
                 [
@@ -2368,26 +2368,26 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::snappySnapDriver::repatchToSurface
 
     const polyBoundaryMesh& patches = mesh.boundaryMesh();
 
-    forAll(patches, patchI)
+    forAll(patches, patchi)
     {
-        const polyPatch& pp = patches[patchI];
+        const polyPatch& pp = patches[patchi];
 
         forAll(pp, i)
         {
-            ownPatch[pp.start()+i] = patchI;
-            neiPatch[pp.start()+i] = patchI;
+            ownPatch[pp.start()+i] = patchi;
+            neiPatch[pp.start()+i] = patchi;
         }
     }
 
     label nChanged = 0;
     forAll(closestPatch, i)
     {
-        label faceI = pp.addressing()[i];
+        label facei = pp.addressing()[i];
 
-        if (closestPatch[i] != -1 && closestPatch[i] != ownPatch[faceI])
+        if (closestPatch[i] != -1 && closestPatch[i] != ownPatch[facei])
         {
-            ownPatch[faceI] = closestPatch[i];
-            neiPatch[faceI] = closestPatch[i];
+            ownPatch[facei] = closestPatch[i];
+            neiPatch[facei] = closestPatch[i];
             nChanged++;
         }
     }
@@ -2425,9 +2425,9 @@ void Foam::snappySnapDriver::detectWarpedFaces
     face f0(4);
     face f1(4);
 
-    forAll(localFaces, faceI)
+    forAll(localFaces, facei)
     {
-        const face& f = localFaces[faceI];
+        const face& f = localFaces[facei];
 
         if (f.size() >= 4)
         {
@@ -2486,7 +2486,7 @@ void Foam::snappySnapDriver::detectWarpedFaces
 
             if (minCos < featureCos)
             {
-                splitFaces.append(bFaces[faceI]);
+                splitFaces.append(bFaces[facei]);
                 splits.append(minDiag);
             }
         }
diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverFeature.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverFeature.C
index 45535a7f1949e1494c0be9a26196bb3a1c238353..2846704f8013072ea36ba45ba6851759c4d9d301 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverFeature.C
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverFeature.C
@@ -70,12 +70,12 @@ bool Foam::snappySnapDriver::isFeaturePoint
     const scalar featureCos,
     const indirectPrimitivePatch& pp,
     const PackedBoolList& isFeatureEdge,
-    const label pointI
+    const label pointi
 ) const
 {
     const pointField& points = pp.localPoints();
     const edgeList& edges = pp.edges();
-    const labelList& pEdges = pp.pointEdges()[pointI];
+    const labelList& pEdges = pp.pointEdges()[pointi];
 
     label nFeatEdges = 0;
 
@@ -89,24 +89,24 @@ bool Foam::snappySnapDriver::isFeaturePoint
             {
                 if (isFeatureEdge[pEdges[j]])
                 {
-                    const edge& eI = edges[pEdges[i]];
-                    const edge& eJ = edges[pEdges[j]];
+                    const edge& ei = edges[pEdges[i]];
+                    const edge& ej = edges[pEdges[j]];
 
-                    const point& p = points[pointI];
-                    const point& pI = points[eI.otherVertex(pointI)];
-                    const point& pJ = points[eJ.otherVertex(pointI)];
+                    const point& p = points[pointi];
+                    const point& pi = points[ei.otherVertex(pointi)];
+                    const point& pj = points[ej.otherVertex(pointi)];
 
-                    vector vI = p-pI;
-                    scalar vIMag = mag(vI);
+                    vector vi = p-pi;
+                    scalar viMag = mag(vi);
 
-                    vector vJ = pJ-p;
-                    scalar vJMag = mag(vJ);
+                    vector vj = pj-p;
+                    scalar vjMag = mag(vj);
 
                     if
                     (
-                        vIMag > SMALL
-                     && vJMag > SMALL
-                     && ((vI/vIMag & vJ/vJMag) < featureCos)
+                        viMag > SMALL
+                     && vjMag > SMALL
+                     && ((vi/viMag & vj/vjMag) < featureCos)
                     )
                     {
                         return true;
@@ -158,25 +158,25 @@ void Foam::snappySnapDriver::smoothAndConstrain
         const labelListList& pointEdges = pp.pointEdges();
         const edgeList& edges = pp.edges();
 
-        forAll(pointEdges, pointI)
+        forAll(pointEdges, pointi)
         {
-            const labelList& pEdges = pointEdges[pointI];
+            const labelList& pEdges = pointEdges[pointi];
 
-            label nConstraints = constraints[pointI].first();
+            label nConstraints = constraints[pointi].first();
 
             if (nConstraints <= 1)
             {
                 forAll(pEdges, i)
                 {
-                    label edgeI = pEdges[i];
+                    label edgei = pEdges[i];
 
-                    if (isPatchMasterEdge[edgeI])
+                    if (isPatchMasterEdge[edgei])
                     {
-                        label nbrPointI = edges[edgeI].otherVertex(pointI);
-                        if (constraints[nbrPointI].first() >= nConstraints)
+                        label nbrPointi = edges[edgei].otherVertex(pointi);
+                        if (constraints[nbrPointi].first() >= nConstraints)
                         {
-                            dispSum[pointI] += disp[nbrPointI];
-                            dispCount[pointI]++;
+                            dispSum[pointi] += disp[nbrPointi];
+                            dispCount[pointi]++;
                         }
                     }
                 }
@@ -203,14 +203,14 @@ void Foam::snappySnapDriver::smoothAndConstrain
         );
 
         // Constraints
-        forAll(constraints, pointI)
+        forAll(constraints, pointi)
         {
-            if (dispCount[pointI] > 0)
+            if (dispCount[pointi] > 0)
             {
                 // Mix my displacement with neighbours' displacement
-                disp[pointI] =
+                disp[pointi] =
                     0.5
-                   *(disp[pointI] + dispSum[pointI]/dispCount[pointI]);
+                   *(disp[pointi] + dispSum[pointi]/dispCount[pointi]);
             }
         }
     }
@@ -258,19 +258,19 @@ void Foam::snappySnapDriver::calcNearestFace
 
     forAll(zonedSurfaces, i)
     {
-        label zoneSurfI = zonedSurfaces[i];
+        label zoneSurfi = zonedSurfaces[i];
 
-        const word& faceZoneName = surfZones[zoneSurfI].faceZoneName();
+        const word& faceZoneName = surfZones[zoneSurfi].faceZoneName();
 
         // Get indices of faces on pp that are also in zone
-        label zoneI = mesh.faceZones().findZoneID(faceZoneName);
-        if (zoneI == -1)
+        label zonei = mesh.faceZones().findZoneID(faceZoneName);
+        if (zonei == -1)
         {
             FatalErrorInFunction
                 << "Problem. Cannot find zone " << faceZoneName
                 << exit(FatalError);
         }
-        const faceZone& fZone = mesh.faceZones()[zoneI];
+        const faceZone& fZone = mesh.faceZones()[zonei];
         PackedBoolList isZonedFace(mesh.nFaces());
         forAll(fZone, i)
         {
@@ -283,7 +283,7 @@ void Foam::snappySnapDriver::calcNearestFace
         {
             if (isZonedFace[pp.addressing()[i]])
             {
-                snapSurf[i] = zoneSurfI;
+                snapSurf[i] = zoneSurfi;
                 ppFaces.append(i);
                 meshFaces.append(pp.addressing()[i]);
             }
@@ -308,7 +308,7 @@ void Foam::snappySnapDriver::calcNearestFace
         vectorField hitNormal;
         surfaces.findNearestRegion
         (
-            labelList(1, zoneSurfI),
+            labelList(1, zoneSurfi),
             fc,
             sqr(faceSnapDist),// sqr of attract dist
             hitSurface,
@@ -317,23 +317,23 @@ void Foam::snappySnapDriver::calcNearestFace
             hitNormal
         );
 
-        forAll(hitInfo, hitI)
+        forAll(hitInfo, hiti)
         {
-            if (hitInfo[hitI].hit())
+            if (hitInfo[hiti].hit())
             {
-                label faceI = ppFaces[hitI];
-                faceDisp[faceI] = hitInfo[hitI].hitPoint() - fc[hitI];
-                faceSurfaceNormal[faceI] = hitNormal[hitI];
-                faceSurfaceGlobalRegion[faceI] = surfaces.globalRegion
+                label facei = ppFaces[hiti];
+                faceDisp[facei] = hitInfo[hiti].hitPoint() - fc[hiti];
+                faceSurfaceNormal[facei] = hitNormal[hiti];
+                faceSurfaceGlobalRegion[facei] = surfaces.globalRegion
                 (
-                    hitSurface[hitI],
-                    hitRegion[hitI]
+                    hitSurface[hiti],
+                    hitRegion[hiti]
                 );
             }
             else
             {
                 WarningInFunction
-                    << "Did not find surface near face centre " << fc[hitI]
+                    << "Did not find surface near face centre " << fc[hiti]
                     << endl;
             }
         }
@@ -381,23 +381,23 @@ void Foam::snappySnapDriver::calcNearestFace
         hitNormal
     );
 
-    forAll(hitInfo, hitI)
+    forAll(hitInfo, hiti)
     {
-        if (hitInfo[hitI].hit())
+        if (hitInfo[hiti].hit())
         {
-            label faceI = ppFaces[hitI];
-            faceDisp[faceI] = hitInfo[hitI].hitPoint() - fc[hitI];
-            faceSurfaceNormal[faceI] = hitNormal[hitI];
-            faceSurfaceGlobalRegion[faceI] = surfaces.globalRegion
+            label facei = ppFaces[hiti];
+            faceDisp[facei] = hitInfo[hiti].hitPoint() - fc[hiti];
+            faceSurfaceNormal[facei] = hitNormal[hiti];
+            faceSurfaceGlobalRegion[facei] = surfaces.globalRegion
             (
-                hitSurface[hitI],
-                hitRegion[hitI]
+                hitSurface[hiti],
+                hitRegion[hiti]
             );
         }
         else
         {
             WarningInFunction
-                << "Did not find surface near face centre " << fc[hitI]
+                << "Did not find surface near face centre " << fc[hiti]
                 << endl;
         }
     }
@@ -410,12 +410,12 @@ void Foam::snappySnapDriver::calcNearestFace
     //faceRotation.setSize(pp.size());
     //faceRotation = Zero;
     //
-    //forAll(faceRotation, faceI)
+    //forAll(faceRotation, facei)
     //{
     //    // Note: extend to >180 degrees checking
-    //    faceRotation[faceI] =
-    //        pp.faceNormals()[faceI]
-    //      ^ faceSurfaceNormal[faceI];
+    //    faceRotation[facei] =
+    //        pp.faceNormals()[facei]
+    //      ^ faceSurfaceNormal[facei];
     //}
     //
     //if (debug&meshRefinement::ATTRACTION)
@@ -473,43 +473,43 @@ void Foam::snappySnapDriver::calcNearestFacePointProperties
     pointFacePatchID.setSize(pp.nPoints());
 
     // Fill local data
-    forAll(pp.pointFaces(), pointI)
+    forAll(pp.pointFaces(), pointi)
     {
-        const labelList& pFaces = pp.pointFaces()[pointI];
+        const labelList& pFaces = pp.pointFaces()[pointi];
 
         // Count valid face normals
         label nFaces = 0;
         forAll(pFaces, i)
         {
-            label faceI = pFaces[i];
-            if (isMasterFace[faceI] && faceSurfaceGlobalRegion[faceI] != -1)
+            label facei = pFaces[i];
+            if (isMasterFace[facei] && faceSurfaceGlobalRegion[facei] != -1)
             {
                 nFaces++;
             }
         }
 
 
-        List<point>& pNormals = pointFaceSurfNormals[pointI];
+        List<point>& pNormals = pointFaceSurfNormals[pointi];
         pNormals.setSize(nFaces);
-        List<point>& pDisp = pointFaceDisp[pointI];
+        List<point>& pDisp = pointFaceDisp[pointi];
         pDisp.setSize(nFaces);
-        List<point>& pFc = pointFaceCentres[pointI];
+        List<point>& pFc = pointFaceCentres[pointi];
         pFc.setSize(nFaces);
-        labelList& pFid = pointFacePatchID[pointI];
+        labelList& pFid = pointFacePatchID[pointi];
         pFid.setSize(nFaces);
 
         nFaces = 0;
         forAll(pFaces, i)
         {
-            label faceI = pFaces[i];
-            label globalRegionI = faceSurfaceGlobalRegion[faceI];
+            label facei = pFaces[i];
+            label globalRegioni = faceSurfaceGlobalRegion[facei];
 
-            if (isMasterFace[faceI] && globalRegionI != -1)
+            if (isMasterFace[facei] && globalRegioni != -1)
             {
-                pNormals[nFaces] = faceSurfaceNormal[faceI];
-                pDisp[nFaces] = faceDisp[faceI];
-                pFc[nFaces] = pp.faceCentres()[faceI];
-                pFid[nFaces] = globalToMasterPatch_[globalRegionI];
+                pNormals[nFaces] = faceSurfaceNormal[facei];
+                pDisp[nFaces] = faceDisp[facei];
+                pFc[nFaces] = pp.faceCentres()[facei];
+                pFid[nFaces] = globalToMasterPatch_[globalRegioni];
                 nFaces++;
             }
         }
@@ -528,16 +528,16 @@ void Foam::snappySnapDriver::calcNearestFacePointProperties
         labelList patchID(pbm.patchID());
 
         // Unmark all non-coupled boundary faces
-        forAll(pbm, patchI)
+        forAll(pbm, patchi)
         {
-            const polyPatch& pp = pbm[patchI];
+            const polyPatch& pp = pbm[patchi];
 
             if (pp.coupled() || isA<emptyPolyPatch>(pp))
             {
                 forAll(pp, i)
                 {
-                    label meshFaceI = pp.start()+i;
-                    patchID[meshFaceI-mesh.nInternalFaces()] = -1;
+                    label meshFacei = pp.start()+i;
+                    patchID[meshFacei-mesh.nInternalFaces()] = -1;
                 }
             }
         }
@@ -545,8 +545,8 @@ void Foam::snappySnapDriver::calcNearestFacePointProperties
         // Remove any meshed faces
         forAll(pp.addressing(), i)
         {
-            label meshFaceI = pp.addressing()[i];
-            patchID[meshFaceI-mesh.nInternalFaces()] = -1;
+            label meshFacei = pp.addressing()[i];
+            patchID[meshFacei-mesh.nInternalFaces()] = -1;
         }
 
 
@@ -567,10 +567,10 @@ void Foam::snappySnapDriver::calcNearestFacePointProperties
         const labelListList& edgeFaces = pp.edgeFaces();
         const edgeList& edges = pp.edges();
 
-        forAll(edgeFaces, edgeI)
+        forAll(edgeFaces, edgei)
         {
-            const edge& e = edges[edgeI];
-            const labelList& eFaces = edgeFaces[edgeI];
+            const edge& e = edges[edgei];
+            const labelList& eFaces = edgeFaces[edgei];
 
             if (eFaces.size() == 1)
             {
@@ -589,38 +589,38 @@ void Foam::snappySnapDriver::calcNearestFacePointProperties
 
         // Construct labelList equivalent of meshPointMap
         labelList meshToPatchPoint(mesh.nPoints(), -1);
-        forAll(pp.meshPoints(), pointI)
+        forAll(pp.meshPoints(), pointi)
         {
-            meshToPatchPoint[pp.meshPoints()[pointI]] = pointI;
+            meshToPatchPoint[pp.meshPoints()[pointi]] = pointi;
         }
 
-        forAll(patchID, bFaceI)
+        forAll(patchID, bFacei)
         {
-            label patchI = patchID[bFaceI];
+            label patchi = patchID[bFacei];
 
-            if (patchI != -1)
+            if (patchi != -1)
             {
-                label faceI = mesh.nInternalFaces()+bFaceI;
-                const face& f = mesh.faces()[faceI];
+                label facei = mesh.nInternalFaces()+bFacei;
+                const face& f = mesh.faces()[facei];
 
                 forAll(f, fp)
                 {
-                    label pointI = meshToPatchPoint[f[fp]];
+                    label pointi = meshToPatchPoint[f[fp]];
 
-                    if (pointI != -1 && isBoundaryPoint[pointI])
+                    if (pointi != -1 && isBoundaryPoint[pointi])
                     {
-                        List<point>& pNormals = pointFaceSurfNormals[pointI];
-                        List<point>& pDisp = pointFaceDisp[pointI];
-                        List<point>& pFc = pointFaceCentres[pointI];
-                        labelList& pFid = pointFacePatchID[pointI];
+                        List<point>& pNormals = pointFaceSurfNormals[pointi];
+                        List<point>& pDisp = pointFaceDisp[pointi];
+                        List<point>& pFc = pointFaceCentres[pointi];
+                        labelList& pFid = pointFacePatchID[pointi];
 
                         const point& pt = mesh.points()[f[fp]];
-                        vector fn = mesh.faceAreas()[faceI];
+                        vector fn = mesh.faceAreas()[facei];
 
                         pNormals.append(fn/mag(fn));
-                        pDisp.append(mesh.faceCentres()[faceI]-pt);
-                        pFc.append(mesh.faceCentres()[faceI]);
-                        pFid.append(patchI);
+                        pDisp.append(mesh.faceCentres()[facei]-pt);
+                        pFc.append(mesh.faceCentres()[facei]);
+                        pFid.append(patchi);
                     }
                 }
             }
@@ -667,12 +667,12 @@ void Foam::snappySnapDriver::calcNearestFacePointProperties
     // Sort the data according to the face centres. This is only so we get
     // consistent behaviour serial and parallel.
     labelList visitOrder;
-    forAll(pointFaceDisp, pointI)
+    forAll(pointFaceDisp, pointi)
     {
-        List<point>& pNormals = pointFaceSurfNormals[pointI];
-        List<point>& pDisp = pointFaceDisp[pointI];
-        List<point>& pFc = pointFaceCentres[pointI];
-        labelList& pFid = pointFacePatchID[pointI];
+        List<point>& pNormals = pointFaceSurfNormals[pointi];
+        List<point>& pDisp = pointFaceDisp[pointi];
+        List<point>& pFc = pointFaceCentres[pointi];
+        labelList& pFid = pointFacePatchID[pointi];
 
         sortedOrder(mag(pFc)(), visitOrder);
 
@@ -845,9 +845,9 @@ Foam::pointIndexHit Foam::snappySnapDriver::findMultiPatchPoint
                 }
             }
 
-            forAll(normalToPatch, normalI)
+            forAll(normalToPatch, normali)
             {
-                if (normalToPatch[normalI] == -2)
+                if (normalToPatch[normali] == -2)
                 {
                     // Multiple patches on same normals plane, flat region
                     // edge
@@ -874,21 +874,21 @@ void Foam::snappySnapDriver::writeStats
     label nEdge = 0;
     label nPoint = 0;
 
-    forAll(patchConstraints, pointI)
+    forAll(patchConstraints, pointi)
     {
-        if (isPatchMasterPoint[pointI])
+        if (isPatchMasterPoint[pointi])
         {
             nMasterPoints++;
 
-            if (patchConstraints[pointI].first() == 1)
+            if (patchConstraints[pointi].first() == 1)
             {
                 nPlanar++;
             }
-            else if (patchConstraints[pointI].first() == 2)
+            else if (patchConstraints[pointi].first() == 2)
             {
                 nEdge++;
             }
-            else if (patchConstraints[pointI].first() == 3)
+            else if (patchConstraints[pointi].first() == 3)
             {
                 nPoint++;
             }
@@ -918,7 +918,7 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
     const indirectPrimitivePatch& pp,
     const scalarField& snapDist,
     const vectorField& nearestDisp,
-    const label pointI,
+    const label pointi,
 
     const List<List<point>>& pointFaceSurfNormals,
     const List<List<point>>& pointFaceDisp,
@@ -936,9 +936,9 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
     patchAttraction = Zero;
     patchConstraint = pointConstraint();
 
-    const List<point>& pfSurfNormals = pointFaceSurfNormals[pointI];
-    const List<point>& pfDisp = pointFaceDisp[pointI];
-    const List<point>& pfCentres = pointFaceCentres[pointI];
+    const List<point>& pfSurfNormals = pointFaceSurfNormals[pointi];
+    const List<point>& pfDisp = pointFaceDisp[pointi];
+    const List<point>& pfCentres = pointFaceCentres[pointi];
 
     // Bin according to surface normal
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -962,7 +962,7 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
         const vector& fDisp = pfDisp[i];
 
         // What to do with very far attraction? For now just ignore the face
-        if (magSqr(fDisp) < sqr(snapDist[pointI]) && mag(fSNormal) > VSMALL)
+        if (magSqr(fDisp) < sqr(snapDist[pointi]) && mag(fSNormal) > VSMALL)
         {
             const point pt = fc + fDisp;
 
@@ -1019,7 +1019,7 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
                         plane pl3(pt, fSNormal);
                         point p013(pl0.planePlaneIntersect(pl1, pl3));
 
-                        if (mag(p012-p013) > snapDist[pointI])
+                        if (mag(p012-p013) > snapDist[pointi])
                         {
                             // Different feature point
                             surfacePoints.append(pt);
@@ -1033,7 +1033,7 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
     }
 
 
-    const point& pt = pp.localPoints()[pointI];
+    const point& pt = pp.localPoints()[pointi];
 
     // Check the number of directions
     if (surfaceNormals.size() == 1)
@@ -1044,9 +1044,9 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
            *surfaceNormals[0];
 
         // Trim to snap distance
-        if (magSqr(d) > sqr(snapDist[pointI]))
+        if (magSqr(d) > sqr(snapDist[pointi]))
         {
-            d *= Foam::sqrt(sqr(snapDist[pointI])/magSqr(d));
+            d *= Foam::sqrt(sqr(snapDist[pointi])/magSqr(d));
         }
 
         patchAttraction = d;
@@ -1066,9 +1066,9 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
         d -= (d&n)*n;
 
         // Trim to snap distance
-        if (magSqr(d) > sqr(snapDist[pointI]))
+        if (magSqr(d) > sqr(snapDist[pointi]))
         {
-            d *= Foam::sqrt(sqr(snapDist[pointI])/magSqr(d));
+            d *= Foam::sqrt(sqr(snapDist[pointi])/magSqr(d));
         }
 
         patchAttraction = d;
@@ -1087,9 +1087,9 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
         vector d = cornerPt - pt;
 
         // Trim to snap distance
-        if (magSqr(d) > sqr(snapDist[pointI]))
+        if (magSqr(d) > sqr(snapDist[pointi]))
         {
-            d *= Foam::sqrt(sqr(snapDist[pointI])/magSqr(d));
+            d *= Foam::sqrt(sqr(snapDist[pointi])/magSqr(d));
         }
 
         patchAttraction = d;
@@ -1153,7 +1153,7 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
     DynamicList<vector> surfaceNormals(4);
     labelList faceToNormalBin;
 
-    forAll(pp.localPoints(), pointI)
+    forAll(pp.localPoints(), pointi)
     {
         vector attraction = Zero;
         pointConstraint constraint;
@@ -1167,7 +1167,7 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
             snapDist,
             nearestDisp,
 
-            pointI,
+            pointi,
 
             pointFaceSurfNormals,
             pointFaceDisp,
@@ -1184,25 +1184,25 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
 
         if
         (
-            (constraint.first() > patchConstraints[pointI].first())
+            (constraint.first() > patchConstraints[pointi].first())
          || (
-                (constraint.first() == patchConstraints[pointI].first())
-             && (magSqr(attraction) < magSqr(patchAttraction[pointI]))
+                (constraint.first() == patchConstraints[pointi].first())
+             && (magSqr(attraction) < magSqr(patchAttraction[pointi]))
             )
         )
         {
-            patchAttraction[pointI] = attraction;
-            patchConstraints[pointI] = constraint;
+            patchAttraction[pointi] = attraction;
+            patchConstraints[pointi] = constraint;
 
-            const point& pt = pp.localPoints()[pointI];
+            const point& pt = pp.localPoints()[pointi];
 
-            if (patchConstraints[pointI].first() == 2 && feStr.valid())
+            if (patchConstraints[pointi].first() == 2 && feStr.valid())
             {
-                feStr().write(linePointRef(pt, pt+patchAttraction[pointI]));
+                feStr().write(linePointRef(pt, pt+patchAttraction[pointi]));
             }
-            else if (patchConstraints[pointI].first() == 3 && fpStr.valid())
+            else if (patchConstraints[pointi].first() == 3 && fpStr.valid())
             {
-                fpStr().write(linePointRef(pt, pt+patchAttraction[pointI]));
+                fpStr().write(linePointRef(pt, pt+patchAttraction[pointi]));
             }
         }
     }
@@ -1251,29 +1251,29 @@ void Foam::snappySnapDriver::stringFeatureEdges
         label nChanged = 0;
 
         const labelListList& pointEdges = pp.pointEdges();
-        forAll(pointEdges, pointI)
+        forAll(pointEdges, pointi)
         {
-            if (patchConstraints[pointI].first() == 2)
+            if (patchConstraints[pointi].first() == 2)
             {
-                const point& pt = pp.localPoints()[pointI];
-                const labelList& pEdges = pointEdges[pointI];
-                const vector& featVec = patchConstraints[pointI].second();
+                const point& pt = pp.localPoints()[pointi];
+                const labelList& pEdges = pointEdges[pointi];
+                const vector& featVec = patchConstraints[pointi].second();
 
                 // Detect whether there are edges in both directions.
                 // (direction along the feature edge that is)
                 bool hasPos = false;
                 bool hasNeg = false;
 
-                forAll(pEdges, pEdgeI)
+                forAll(pEdges, pEdgei)
                 {
-                    const edge& e = pp.edges()[pEdges[pEdgeI]];
-                    label nbrPointI = e.otherVertex(pointI);
+                    const edge& e = pp.edges()[pEdges[pEdgei]];
+                    label nbrPointi = e.otherVertex(pointi);
 
-                    if (patchConstraints[nbrPointI].first() > 1)
+                    if (patchConstraints[nbrPointi].first() > 1)
                     {
-                        const point& nbrPt = pp.localPoints()[nbrPointI];
+                        const point& nbrPt = pp.localPoints()[nbrPointi];
                         const point featPt =
-                            nbrPt + patchAttraction[nbrPointI];
+                            nbrPt + patchAttraction[nbrPointi];
                         const scalar cosAngle = (featVec & (featPt-pt));
 
                         if (cosAngle > 0)
@@ -1290,41 +1290,41 @@ void Foam::snappySnapDriver::stringFeatureEdges
                 if (!hasPos || !hasNeg)
                 {
                     //Pout<< "**Detected feature string end at  "
-                    //    << pp.localPoints()[pointI] << endl;
+                    //    << pp.localPoints()[pointi] << endl;
 
                     // No string. Assign best choice on either side
-                    label bestPosPointI = -1;
+                    label bestPosPointi = -1;
                     scalar minPosDistSqr = GREAT;
-                    label bestNegPointI = -1;
+                    label bestNegPointi = -1;
                     scalar minNegDistSqr = GREAT;
 
-                    forAll(pEdges, pEdgeI)
+                    forAll(pEdges, pEdgei)
                     {
-                        const edge& e = pp.edges()[pEdges[pEdgeI]];
-                        label nbrPointI = e.otherVertex(pointI);
+                        const edge& e = pp.edges()[pEdges[pEdgei]];
+                        label nbrPointi = e.otherVertex(pointi);
 
                         if
                         (
-                            patchConstraints[nbrPointI].first() <= 1
-                         && rawPatchConstraints[nbrPointI].first() > 1
+                            patchConstraints[nbrPointi].first() <= 1
+                         && rawPatchConstraints[nbrPointi].first() > 1
                         )
                         {
                             const vector& nbrFeatVec =
-                                rawPatchConstraints[pointI].second();
+                                rawPatchConstraints[pointi].second();
 
                             if (mag(featVec&nbrFeatVec) > featureCos)
                             {
-                                // nbrPointI attracted to sameish feature
+                                // nbrPointi attracted to sameish feature
                                 // Note: also check on position.
 
                                 scalar d2 = magSqr
                                 (
-                                    rawPatchAttraction[nbrPointI]
+                                    rawPatchAttraction[nbrPointi]
                                 );
 
                                 const point featPt =
-                                    pp.localPoints()[nbrPointI]
-                                  + rawPatchAttraction[nbrPointI];
+                                    pp.localPoints()[nbrPointi]
+                                  + rawPatchAttraction[nbrPointi];
                                 const scalar cosAngle =
                                     (featVec & (featPt-pt));
 
@@ -1333,7 +1333,7 @@ void Foam::snappySnapDriver::stringFeatureEdges
                                     if (!hasPos && d2 < minPosDistSqr)
                                     {
                                         minPosDistSqr = d2;
-                                        bestPosPointI = nbrPointI;
+                                        bestPosPointi = nbrPointi;
                                     }
                                 }
                                 else
@@ -1341,44 +1341,44 @@ void Foam::snappySnapDriver::stringFeatureEdges
                                     if (!hasNeg && d2 < minNegDistSqr)
                                     {
                                         minNegDistSqr = d2;
-                                        bestNegPointI = nbrPointI;
+                                        bestNegPointi = nbrPointi;
                                     }
                                 }
                             }
                         }
                     }
 
-                    if (bestPosPointI != -1)
+                    if (bestPosPointi != -1)
                     {
                         // Use reconstructed-feature attraction. Use only
                         // part of it since not sure...
                         //const point& bestPt =
-                        //    pp.localPoints()[bestPosPointI];
+                        //    pp.localPoints()[bestPosPointi];
                         //Pout<< "**Overriding point " << bestPt
                         //    << " on reconstructed feature edge at "
-                        //    << rawPatchAttraction[bestPosPointI]+bestPt
+                        //    << rawPatchAttraction[bestPosPointi]+bestPt
                         //    << " to attracted-to-feature-edge." << endl;
-                        patchAttraction[bestPosPointI] =
-                            0.5*rawPatchAttraction[bestPosPointI];
-                        patchConstraints[bestPosPointI] =
-                            rawPatchConstraints[bestPosPointI];
+                        patchAttraction[bestPosPointi] =
+                            0.5*rawPatchAttraction[bestPosPointi];
+                        patchConstraints[bestPosPointi] =
+                            rawPatchConstraints[bestPosPointi];
 
                         nChanged++;
                     }
-                    if (bestNegPointI != -1)
+                    if (bestNegPointi != -1)
                     {
                         // Use reconstructed-feature attraction. Use only
                         // part of it since not sure...
                         //const point& bestPt =
-                        //    pp.localPoints()[bestNegPointI];
+                        //    pp.localPoints()[bestNegPointi];
                         //Pout<< "**Overriding point " << bestPt
                         //    << " on reconstructed feature edge at "
-                        //    << rawPatchAttraction[bestNegPointI]+bestPt
+                        //    << rawPatchAttraction[bestNegPointi]+bestPt
                         //    << " to attracted-to-feature-edge." << endl;
-                        patchAttraction[bestNegPointI] =
-                            0.5*rawPatchAttraction[bestNegPointI];
-                        patchConstraints[bestNegPointI] =
-                            rawPatchConstraints[bestNegPointI];
+                        patchAttraction[bestNegPointi] =
+                            0.5*rawPatchAttraction[bestNegPointi];
+                        patchConstraints[bestNegPointi] =
+                            rawPatchConstraints[bestNegPointi];
 
                         nChanged++;
                     }
@@ -1436,37 +1436,37 @@ void Foam::snappySnapDriver::releasePointsNextToMultiPatch
     // 1. Mark points on multiple patches
     PackedBoolList isMultiPatchPoint(pp.size());
 
-    forAll(pointFacePatchID, pointI)
+    forAll(pointFacePatchID, pointi)
     {
         pointIndexHit multiPatchPt = findMultiPatchPoint
         (
-            pp.localPoints()[pointI],
-            pointFacePatchID[pointI],
-            pointFaceCentres[pointI]
+            pp.localPoints()[pointi],
+            pointFacePatchID[pointi],
+            pointFaceCentres[pointi]
         );
-        isMultiPatchPoint[pointI] = multiPatchPt.hit();
+        isMultiPatchPoint[pointi] = multiPatchPt.hit();
     }
 
     // 2. Make sure multi-patch points are also attracted
-    forAll(isMultiPatchPoint, pointI)
+    forAll(isMultiPatchPoint, pointi)
     {
-        if (isMultiPatchPoint[pointI])
+        if (isMultiPatchPoint[pointi])
         {
             if
             (
-                patchConstraints[pointI].first() <= 1
-             && rawPatchConstraints[pointI].first() > 1
+                patchConstraints[pointi].first() <= 1
+             && rawPatchConstraints[pointi].first() > 1
             )
             {
-                patchAttraction[pointI] = rawPatchAttraction[pointI];
-                patchConstraints[pointI] = rawPatchConstraints[pointI];
+                patchAttraction[pointi] = rawPatchAttraction[pointi];
+                patchConstraints[pointi] = rawPatchConstraints[pointi];
 
                 //if (multiPatchStr.valid())
                 //{
                 //    Pout<< "Adding constraint on multiPatchPoint:"
-                //        << pp.localPoints()[pointI]
-                //        << " constraint:" << patchConstraints[pointI]
-                //        << " attraction:" << patchAttraction[pointI]
+                //        << pp.localPoints()[pointi]
+                //        << " constraint:" << patchConstraints[pointi]
+                //        << " attraction:" << patchAttraction[pointi]
                 //        << endl;
                 //}
             }
@@ -1478,18 +1478,18 @@ void Foam::snappySnapDriver::releasePointsNextToMultiPatch
 
     // 3. Knock out any attraction on faces with multi-patch points
     label nChanged = 0;
-    forAll(pp.localFaces(), faceI)
+    forAll(pp.localFaces(), facei)
     {
-        const face& f = pp.localFaces()[faceI];
+        const face& f = pp.localFaces()[facei];
 
         label nMultiPatchPoints = 0;
         forAll(f, fp)
         {
-            label pointI = f[fp];
+            label pointi = f[fp];
             if
             (
-                isMultiPatchPoint[pointI]
-             && patchConstraints[pointI].first() > 1
+                isMultiPatchPoint[pointi]
+             && patchConstraints[pointi].first() > 1
             )
             {
                 nMultiPatchPoints++;
@@ -1500,23 +1500,23 @@ void Foam::snappySnapDriver::releasePointsNextToMultiPatch
         {
             forAll(f, fp)
             {
-                label pointI = f[fp];
+                label pointi = f[fp];
                 if
                 (
-                   !isMultiPatchPoint[pointI]
-                 && patchConstraints[pointI].first() > 1
+                   !isMultiPatchPoint[pointi]
+                 && patchConstraints[pointi].first() > 1
                 )
                 {
                     //Pout<< "Knocking out constraint"
                     //    << " on non-multiPatchPoint:"
-                    //    << pp.localPoints()[pointI] << endl;
-                    patchAttraction[pointI] = Zero;
-                    patchConstraints[pointI] = pointConstraint();
+                    //    << pp.localPoints()[pointi] << endl;
+                    patchAttraction[pointi] = Zero;
+                    patchConstraints[pointi] = pointConstraint();
                     nChanged++;
 
                     if (multiPatchStr.valid())
                     {
-                        multiPatchStr().write(pp.localPoints()[pointI]);
+                        multiPatchStr().write(pp.localPoints()[pointi]);
                     }
                 }
             }
@@ -1534,10 +1534,10 @@ Foam::labelPair Foam::snappySnapDriver::findDiagonalAttraction
     const indirectPrimitivePatch& pp,
     const vectorField& patchAttraction,
     const List<pointConstraint>& patchConstraints,
-    const label faceI
+    const label facei
 ) const
 {
-    const face& f = pp.localFaces()[faceI];
+    const face& f = pp.localFaces()[facei];
     // For now just detect any attraction. Improve this to look at
     // actual attraction position and orientation
 
@@ -1672,13 +1672,13 @@ Foam::labelPair Foam::snappySnapDriver::findDiagonalAttraction
     const List<pointConstraint>& patchConstraints,
     const vectorField& nearestAttr,
     const vectorField& nearestNormal,
-    const label faceI,
+    const label facei,
 
     DynamicField<point>& points0,
     DynamicField<point>& points1
 ) const
 {
-    const face& localF = pp.localFaces()[faceI];
+    const face& localF = pp.localFaces()[facei];
 
     labelPair attractIndices(-1, -1);
 
@@ -1690,10 +1690,10 @@ Foam::labelPair Foam::snappySnapDriver::findDiagonalAttraction
         //// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         //// (is this necessary?)
         //const polyMesh& mesh = meshRefiner_.mesh();
-        //label meshFaceI = pp.addressing()[faceI];
-        //const face& meshF = mesh.faces()[meshFaceI];
-        //label cellI = mesh.faceOwner()[meshFaceI];
-        //const labelList& cPoints = mesh.cellPoints(cellI);
+        //label meshFacei = pp.addressing()[facei];
+        //const face& meshF = mesh.faces()[meshFacei];
+        //label celli = mesh.faceOwner()[meshFacei];
+        //const labelList& cPoints = mesh.cellPoints(celli);
         //
         //point cc(mesh.points()[meshF[0]]);
         //for (label i = 1; i < meshF.size(); i++)
@@ -1702,14 +1702,14 @@ Foam::labelPair Foam::snappySnapDriver::findDiagonalAttraction
         //}
         //forAll(cPoints, i)
         //{
-        //    label pointI = cPoints[i];
-        //    if (findIndex(meshF, pointI) == -1)
+        //    label pointi = cPoints[i];
+        //    if (findIndex(meshF, pointi) == -1)
         //    {
-        //        cc += mesh.points()[pointI];
+        //        cc += mesh.points()[pointi];
         //    }
         //}
         //cc /= cPoints.size();
-        ////const point& cc = mesh.cellCentres()[cellI];
+        ////const point& cc = mesh.cellCentres()[celli];
         //
         //const scalar vol = pyrVol(pp, patchAttr, localF, cc);
         //const scalar area = localF.mag(localPts);
@@ -1733,11 +1733,11 @@ Foam::labelPair Foam::snappySnapDriver::findDiagonalAttraction
                 endFp++
             )
             {
-                label startPtI = localF[startFp];
-                label endPtI = localF[endFp];
+                label startPti = localF[startFp];
+                label endPti = localF[endFp];
 
-                const pointConstraint& startPc = patchConstraints[startPtI];
-                const pointConstraint& endPc = patchConstraints[endPtI];
+                const pointConstraint& startPc = patchConstraints[startPti];
+                const pointConstraint& endPc = patchConstraints[endPti];
 
                 if (startPc.first() >= 2 && endPc.first() >= 2)
                 {
@@ -1746,8 +1746,8 @@ Foam::labelPair Foam::snappySnapDriver::findDiagonalAttraction
                         // Check if
                         // - sameish feature edge normal
                         // - diagonal aligned with feature edge normal
-                        point start = localPts[startPtI]+patchAttr[startPtI];
-                        point end = localPts[endPtI]+patchAttr[endPtI];
+                        point start = localPts[startPti]+patchAttr[startPti];
+                        point end = localPts[endPti]+patchAttr[endPti];
 
                         if
                         (
@@ -1790,8 +1790,8 @@ Foam::labelPair Foam::snappySnapDriver::findDiagonalAttraction
                     points0.append(localPts[f0[0]] + patchAttr[f0[0]]);
                     for (label fp=1; fp < f0.size()-1; fp++)
                     {
-                        label pI = f0[fp];
-                        points0.append(localPts[pI] + nearestAttr[pI]);
+                        label pi = f0[fp];
+                        points0.append(localPts[pi] + nearestAttr[pi]);
                     }
                     points0.append
                     (
@@ -1821,8 +1821,8 @@ Foam::labelPair Foam::snappySnapDriver::findDiagonalAttraction
                     points1.append(localPts[f1[0]] + patchAttr[f1[0]]);
                     for (label fp=1; fp < f1.size()-1; fp++)
                     {
-                        label pI = f1[fp];
-                        points1.append(localPts[pI] + nearestAttr[pI]);
+                        label pi = f1[fp];
+                        points1.append(localPts[pi] + nearestAttr[pi]);
                     }
                     points1.append
                     (
@@ -1909,7 +1909,7 @@ void Foam::snappySnapDriver::splitDiagonals
     DynamicField<point> facePoints0;
     DynamicField<point> facePoints1;
 
-    forAll(bFaces, faceI)
+    forAll(bFaces, facei)
     {
         const labelPair split
         (
@@ -1925,7 +1925,7 @@ void Foam::snappySnapDriver::splitDiagonals
 
                 nearestAttraction,
                 nearestNormal,
-                faceI,
+                facei,
 
                 facePoints0,
                 facePoints1
@@ -1934,10 +1934,10 @@ void Foam::snappySnapDriver::splitDiagonals
 
         if (split != labelPair(-1, -1))
         {
-            splitFaces.append(bFaces[faceI]);
+            splitFaces.append(bFaces[facei]);
             splits.append(split);
 
-            const face& f = pp.localFaces()[faceI];
+            const face& f = pp.localFaces()[facei];
 
             // Knock out other attractions on face
             forAll(f, fp)
@@ -1977,16 +1977,16 @@ void Foam::snappySnapDriver::avoidDiagonalAttraction
     List<pointConstraint>& patchConstraints
 ) const
 {
-    forAll(pp.localFaces(), faceI)
+    forAll(pp.localFaces(), facei)
     {
-        const face& f = pp.localFaces()[faceI];
+        const face& f = pp.localFaces()[facei];
 
         labelPair diag = findDiagonalAttraction
         (
             pp,
             patchAttraction,
             patchConstraints,
-            faceI
+            facei
         );
 
         if (diag[0] != -1 && diag[1] != -1)
@@ -2022,10 +2022,10 @@ void Foam::snappySnapDriver::avoidDiagonalAttraction
                 scalar minDistSqr = GREAT;
                 forAll(f, fp)
                 {
-                    label pointI = f[fp];
-                    if (patchConstraints[pointI].first() <= 1)
+                    label pointi = f[fp];
+                    if (patchConstraints[pointi].first() <= 1)
                     {
-                        const point& pt = pp.localPoints()[pointI];
+                        const point& pt = pp.localPoints()[pointi];
                         scalar distSqr = magSqr(mid-pt);
                         if (distSqr < minDistSqr)
                         {
@@ -2036,10 +2036,10 @@ void Foam::snappySnapDriver::avoidDiagonalAttraction
                 }
                 if (minFp != -1)
                 {
-                    label minPointI = f[minFp];
-                    patchAttraction[minPointI] =
-                        mid-pp.localPoints()[minPointI];
-                    patchConstraints[minPointI] = patchConstraints[f[diag[0]]];
+                    label minPointi = f[minFp];
+                    patchAttraction[minPointi] =
+                        mid-pp.localPoints()[minPointi];
+                    patchConstraints[minPointi] = patchConstraints[f[diag[0]]];
                 }
             }
             else
@@ -2071,7 +2071,7 @@ Foam::snappySnapDriver::findNearFeatureEdge
 
     const indirectPrimitivePatch& pp,
     const scalarField& snapDist,
-    const label pointI,
+    const label pointi,
     const point& estimatedPt,
 
     List<List<DynamicList<point>>>& edgeAttractors,
@@ -2091,7 +2091,7 @@ Foam::snappySnapDriver::findNearFeatureEdge
         features.findNearestRegionEdge
         (
             pointField(1, estimatedPt),
-            scalarField(1, sqr(snapDist[pointI])),
+            scalarField(1, sqr(snapDist[pointi])),
             nearEdgeFeat,
             nearEdgeInfo,
             nearNormal
@@ -2102,7 +2102,7 @@ Foam::snappySnapDriver::findNearFeatureEdge
         features.findNearestEdge
         (
             pointField(1, estimatedPt),
-            scalarField(1, sqr(snapDist[pointI])),
+            scalarField(1, sqr(snapDist[pointi])),
             nearEdgeFeat,
             nearEdgeInfo,
             nearNormal
@@ -2110,24 +2110,24 @@ Foam::snappySnapDriver::findNearFeatureEdge
     }
 
     const pointIndexHit& nearInfo = nearEdgeInfo[0];
-    label featI = nearEdgeFeat[0];
+    label feati = nearEdgeFeat[0];
 
     if (nearInfo.hit())
     {
         // So we have a point on the feature edge. Use this
         // instead of our estimate from planes.
-        edgeAttractors[featI][nearInfo.index()].append
+        edgeAttractors[feati][nearInfo.index()].append
         (
             nearInfo.hitPoint()
         );
         pointConstraint c(Tuple2<label, vector>(2, nearNormal[0]));
-        edgeConstraints[featI][nearInfo.index()].append(c);
+        edgeConstraints[feati][nearInfo.index()].append(c);
 
         // Store for later use
-        patchAttraction[pointI] = nearInfo.hitPoint()-pp.localPoints()[pointI];
-        patchConstraints[pointI] = c;
+        patchAttraction[pointi] = nearInfo.hitPoint()-pp.localPoints()[pointi];
+        patchConstraints[pointi] = c;
     }
-    return Tuple2<label, pointIndexHit>(featI, nearInfo);
+    return Tuple2<label, pointIndexHit>(feati, nearInfo);
 }
 
 
@@ -2138,7 +2138,7 @@ Foam::snappySnapDriver::findNearFeaturePoint
 
     const indirectPrimitivePatch& pp,
     const scalarField& snapDist,
-    const label pointI,
+    const label pointi,
     const point& estimatedPt,
 
     // Feature-point to pp point
@@ -2161,47 +2161,47 @@ Foam::snappySnapDriver::findNearFeaturePoint
     features.findNearestPoint
     (
         pointField(1, estimatedPt),
-        scalarField(1, sqr(snapDist[pointI])),
+        scalarField(1, sqr(snapDist[pointi])),
         nearFeat,
         nearInfo
     );
 
-    label featI = nearFeat[0];
+    label feati = nearFeat[0];
 
-    if (featI != -1)
+    if (feati != -1)
     {
-        const point& pt = pp.localPoints()[pointI];
+        const point& pt = pp.localPoints()[pointi];
 
-        label featPointI = nearInfo[0].index();
+        label featPointi = nearInfo[0].index();
         const point& featPt = nearInfo[0].hitPoint();
         scalar distSqr = magSqr(featPt-pt);
 
         // Check if already attracted
-        label oldPointI = pointAttractor[featI][featPointI];
+        label oldPointi = pointAttractor[feati][featPointi];
 
-        if (oldPointI != -1)
+        if (oldPointi != -1)
         {
             // Check distance
-            if (distSqr >= magSqr(featPt-pp.localPoints()[oldPointI]))
+            if (distSqr >= magSqr(featPt-pp.localPoints()[oldPointi]))
             {
-                // oldPointI nearest. Keep.
-                featI = -1;
-                featPointI = -1;
+                // oldPointi nearest. Keep.
+                feati = -1;
+                featPointi = -1;
             }
             else
             {
-                // Current pointI nearer.
-                pointAttractor[featI][featPointI] = pointI;
-                pointConstraints[featI][featPointI].first() = 3;
-                pointConstraints[featI][featPointI].second() = Zero;
+                // Current pointi nearer.
+                pointAttractor[feati][featPointi] = pointi;
+                pointConstraints[feati][featPointi].first() = 3;
+                pointConstraints[feati][featPointi].second() = Zero;
 
                 // Store for later use
-                patchAttraction[pointI] = featPt-pt;
-                patchConstraints[pointI] = pointConstraints[featI][featPointI];
+                patchAttraction[pointi] = featPt-pt;
+                patchConstraints[pointi] = pointConstraints[feati][featPointi];
 
-                // Reset oldPointI to nearest on feature edge
-                patchAttraction[oldPointI] = Zero;
-                patchConstraints[oldPointI] = pointConstraint();
+                // Reset oldPointi to nearest on feature edge
+                patchAttraction[oldPointi] = Zero;
+                patchConstraints[oldPointi] = pointConstraint();
 
                 findNearFeatureEdge
                 (
@@ -2209,8 +2209,8 @@ Foam::snappySnapDriver::findNearFeaturePoint
 
                     pp,
                     snapDist,
-                    oldPointI,
-                    pp.localPoints()[oldPointI],
+                    oldPointi,
+                    pp.localPoints()[oldPointi],
 
                     edgeAttractors,
                     edgeConstraints,
@@ -2221,18 +2221,18 @@ Foam::snappySnapDriver::findNearFeaturePoint
         }
         else
         {
-            // Current pointI nearer.
-            pointAttractor[featI][featPointI] = pointI;
-            pointConstraints[featI][featPointI].first() = 3;
-            pointConstraints[featI][featPointI].second() = Zero;
+            // Current pointi nearer.
+            pointAttractor[feati][featPointi] = pointi;
+            pointConstraints[feati][featPointi].first() = 3;
+            pointConstraints[feati][featPointi].second() = Zero;
 
             // Store for later use
-            patchAttraction[pointI] = featPt-pt;
-            patchConstraints[pointI] = pointConstraints[featI][featPointI];
+            patchAttraction[pointi] = featPt-pt;
+            patchConstraints[pointi] = pointConstraints[feati][featPointi];
         }
     }
 
-    return Tuple2<label, pointIndexHit>(featI, nearInfo[0]);
+    return Tuple2<label, pointIndexHit>(feati, nearInfo[0]);
 }
 
 
@@ -2333,9 +2333,9 @@ void Foam::snappySnapDriver::determineFeatures
     DynamicList<vector> surfaceNormals(4);
     labelList faceToNormalBin;
 
-    forAll(pp.localPoints(), pointI)
+    forAll(pp.localPoints(), pointi)
     {
-        const point& pt = pp.localPoints()[pointI];
+        const point& pt = pp.localPoints()[pointi];
 
 
         // Determine the geometric planes the point is (approximately) on.
@@ -2358,7 +2358,7 @@ void Foam::snappySnapDriver::determineFeatures
             snapDist,
             nearestDisp,
 
-            pointI,
+            pointi,
 
             pointFaceSurfNormals,
             pointFaceDisp,
@@ -2405,29 +2405,29 @@ void Foam::snappySnapDriver::determineFeatures
 
         if
         (
-            (constraint.first() > patchConstraints[pointI].first())
+            (constraint.first() > patchConstraints[pointi].first())
          || (
-                (constraint.first() == patchConstraints[pointI].first())
-             && (magSqr(attraction) < magSqr(patchAttraction[pointI]))
+                (constraint.first() == patchConstraints[pointi].first())
+             && (magSqr(attraction) < magSqr(patchAttraction[pointi]))
             )
         )
         {
-            patchAttraction[pointI] = attraction;
-            patchConstraints[pointI] = constraint;
+            patchAttraction[pointi] = attraction;
+            patchConstraints[pointi] = constraint;
 
             // Check the number of directions
-            if (patchConstraints[pointI].first() == 1)
+            if (patchConstraints[pointi].first() == 1)
             {
                 // Flat surface. Check for different patchIDs
                 if (multiRegionFeatureSnap)
                 {
-                    const point estimatedPt(pt + nearestDisp[pointI]);
+                    const point estimatedPt(pt + nearestDisp[pointi]);
                     pointIndexHit multiPatchPt
                     (
                         findMultiPatchPoint
                         (
                             estimatedPt,
-                            pointFacePatchID[pointI],
+                            pointFacePatchID[pointi],
                             surfaceNormals,
                             faceToNormalBin
                         )
@@ -2444,7 +2444,7 @@ void Foam::snappySnapDriver::determineFeatures
                             true,                       // isRegionEdge
                             pp,
                             snapDist,
-                            pointI,
+                            pointi,
                             multiPatchPt.hitPoint(),    // estimatedPt
 
                             edgeAttractors,
@@ -2479,12 +2479,12 @@ void Foam::snappySnapDriver::determineFeatures
                     }
                 }
             }
-            else if (patchConstraints[pointI].first() == 2)
+            else if (patchConstraints[pointi].first() == 2)
             {
                 // Mark point on the nearest feature edge. Note that we
                 // only search within the surrounding since the plane
                 // reconstruction might find a feature where there isn't one.
-                const point estimatedPt(pt + patchAttraction[pointI]);
+                const point estimatedPt(pt + patchAttraction[pointi]);
 
                 Tuple2<label, pointIndexHit> nearInfo(-1, pointIndexHit());
 
@@ -2497,7 +2497,7 @@ void Foam::snappySnapDriver::determineFeatures
                         findMultiPatchPoint
                         (
                             estimatedPt,
-                            pointFacePatchID[pointI],
+                            pointFacePatchID[pointi],
                             surfaceNormals,
                             faceToNormalBin
                         )
@@ -2512,7 +2512,7 @@ void Foam::snappySnapDriver::determineFeatures
                                 true,               // isRegionEdge
                                 pp,
                                 snapDist,
-                                pointI,
+                                pointi,
                                 estimatedPt,
 
                                 edgeAttractors,
@@ -2549,7 +2549,7 @@ void Foam::snappySnapDriver::determineFeatures
                                 true,           // isRegionPoint
                                 pp,
                                 snapDist,
-                                pointI,
+                                pointi,
                                 estimatedPt,
 
                                 // Feature-point to pp point
@@ -2580,7 +2580,7 @@ void Foam::snappySnapDriver::determineFeatures
                                     true,           // isRegionEdge
                                     pp,
                                     snapDist,
-                                    pointI,
+                                    pointi,
                                     estimatedPt,
 
                                     // Feature-edge to pp point
@@ -2619,7 +2619,7 @@ void Foam::snappySnapDriver::determineFeatures
                         false,      // isRegionPoint
                         pp,
                         snapDist,
-                        pointI,
+                        pointi,
                         estimatedPt,
 
                         edgeAttractors,
@@ -2637,7 +2637,7 @@ void Foam::snappySnapDriver::determineFeatures
                 {
                     if
                     (
-                        patchConstraints[pointI].first() == 3
+                        patchConstraints[pointi].first() == 3
                      && featurePointStr.valid()
                     )
                     {
@@ -2648,7 +2648,7 @@ void Foam::snappySnapDriver::determineFeatures
                     }
                     else if
                     (
-                        patchConstraints[pointI].first() == 2
+                        patchConstraints[pointi].first() == 2
                      && featureEdgeStr.valid()
                     )
                     {
@@ -2669,10 +2669,10 @@ void Foam::snappySnapDriver::determineFeatures
                     }
                 }
             }
-            else if (patchConstraints[pointI].first() == 3)
+            else if (patchConstraints[pointi].first() == 3)
             {
                 // Mark point on the nearest feature point.
-                const point estimatedPt(pt + patchAttraction[pointI]);
+                const point estimatedPt(pt + patchAttraction[pointi]);
 
                 Tuple2<label, pointIndexHit> nearInfo(-1, pointIndexHit());
 
@@ -2683,7 +2683,7 @@ void Foam::snappySnapDriver::determineFeatures
                         findMultiPatchPoint
                         (
                             estimatedPt,
-                            pointFacePatchID[pointI],
+                            pointFacePatchID[pointi],
                             surfaceNormals,
                             faceToNormalBin
                         )
@@ -2696,7 +2696,7 @@ void Foam::snappySnapDriver::determineFeatures
                             true,           // isRegionPoint
                             pp,
                             snapDist,
-                            pointI,
+                            pointi,
                             estimatedPt,
 
                             // Feature-point to pp point
@@ -2717,7 +2717,7 @@ void Foam::snappySnapDriver::determineFeatures
                             false,              // isRegionPoint
                             pp,
                             snapDist,
-                            pointI,
+                            pointi,
                             estimatedPt,
 
                             // Feature-point to pp point
@@ -2740,7 +2740,7 @@ void Foam::snappySnapDriver::determineFeatures
                         false,              // isRegionPoint
                         pp,
                         snapDist,
-                        pointI,
+                        pointi,
                         estimatedPt,
 
                         // Feature-point to pp point
@@ -2807,15 +2807,15 @@ void Foam::snappySnapDriver::determineBaffleFeatures
     List<List<point>> edgeFaceNormals(pp.nEdges());
 
     // Fill local data
-    forAll(pp.edgeFaces(), edgeI)
+    forAll(pp.edgeFaces(), edgei)
     {
-        const labelList& eFaces = pp.edgeFaces()[edgeI];
-        List<point>& eFc = edgeFaceNormals[edgeI];
+        const labelList& eFaces = pp.edgeFaces()[edgei];
+        List<point>& eFc = edgeFaceNormals[edgei];
         eFc.setSize(eFaces.size());
         forAll(eFaces, i)
         {
-            label faceI = eFaces[i];
-            eFc[i] = pp.faceNormals()[faceI];
+            label facei = eFaces[i];
+            eFc[i] = pp.faceNormals()[facei];
         }
     }
 
@@ -2867,15 +2867,15 @@ void Foam::snappySnapDriver::determineBaffleFeatures
     // -1 : rest
     labelList pointStatus(pp.nPoints(), -1);
 
-    forAll(edgeFaceNormals, edgeI)
+    forAll(edgeFaceNormals, edgei)
     {
-        const List<point>& efn = edgeFaceNormals[edgeI];
+        const List<point>& efn = edgeFaceNormals[edgei];
 
         if (efn.size() == 2 && (efn[0]&efn[1]) < baffleFeatureCos)
         {
-            isBaffleEdge[edgeI] = true;
+            isBaffleEdge[edgei] = true;
             nBaffleEdges++;
-            const edge& e = pp.edges()[edgeI];
+            const edge& e = pp.edges()[edgei];
             pointStatus[e[0]] = 0;
             pointStatus[e[1]] = 0;
 
@@ -2897,7 +2897,7 @@ void Foam::snappySnapDriver::determineBaffleFeatures
 
 
     //- Baffle edges will be too ragged to sensibly determine feature points
-    //forAll(pp.pointEdges(), pointI)
+    //forAll(pp.pointEdges(), pointi)
     //{
     //    if
     //    (
@@ -2906,22 +2906,22 @@ void Foam::snappySnapDriver::determineBaffleFeatures
     //            featureCos,
     //            pp,
     //            isBaffleEdge,
-    //            pointI
+    //            pointi
     //        )
     //    )
     //    {
-    //        //Pout<< "Detected feature point:" << pp.localPoints()[pointI]
+    //        //Pout<< "Detected feature point:" << pp.localPoints()[pointi]
     //        //    << endl;
     //        //-TEMPORARILY DISABLED:
-    //        //pointStatus[pointI] = 1;
+    //        //pointStatus[pointi] = 1;
     //    }
     //}
 
 
     label nBafflePoints = 0;
-    forAll(pointStatus, pointI)
+    forAll(pointStatus, pointi)
     {
-        if (pointStatus[pointI] != -1)
+        if (pointStatus[pointi] != -1)
         {
             nBafflePoints++;
         }
@@ -2932,11 +2932,11 @@ void Foam::snappySnapDriver::determineBaffleFeatures
     label nPointAttract = 0;
     label nEdgeAttract = 0;
 
-    forAll(pointStatus, pointI)
+    forAll(pointStatus, pointi)
     {
-        const point& pt = pp.localPoints()[pointI];
+        const point& pt = pp.localPoints()[pointi];
 
-        if (pointStatus[pointI] == 0)   // baffle edge
+        if (pointStatus[pointi] == 0)   // baffle edge
         {
             // 1: attract to near feature edge first
 
@@ -2945,7 +2945,7 @@ void Foam::snappySnapDriver::determineBaffleFeatures
                 false,          // isRegionPoint?
                 pp,
                 snapDist,
-                pointI,
+                pointi,
                 pt,
 
                 edgeAttractors,
@@ -2971,7 +2971,7 @@ void Foam::snappySnapDriver::determineBaffleFeatures
 
                         pp,
                         snapDist,
-                        pointI,
+                        pointi,
                         pt,             // estimatedPt,
 
                         // Feature-point to pp point
@@ -2993,50 +2993,50 @@ void Foam::snappySnapDriver::determineBaffleFeatures
                 }
             }
         }
-        else if (pointStatus[pointI] == 1)   // baffle point
+        else if (pointStatus[pointi] == 1)   // baffle point
         {
             labelList nearFeat;
             List<pointIndexHit> nearInfo;
             features.findNearestPoint
             (
                 pointField(1, pt),
-                scalarField(1, sqr(snapDist[pointI])),
+                scalarField(1, sqr(snapDist[pointi])),
                 nearFeat,
                 nearInfo
             );
 
-            label featI = nearFeat[0];
+            label feati = nearFeat[0];
 
-            if (featI != -1)
+            if (feati != -1)
             {
                 nPointAttract++;
 
-                label featPointI = nearInfo[0].index();
+                label featPointi = nearInfo[0].index();
                 const point& featPt = nearInfo[0].hitPoint();
                 scalar distSqr = magSqr(featPt-pt);
 
                 // Check if already attracted
-                label oldPointI = pointAttractor[featI][featPointI];
+                label oldPointi = pointAttractor[feati][featPointi];
 
                 if
                 (
-                    oldPointI == -1
+                    oldPointi == -1
                  || (
                         distSqr
-                      < magSqr(featPt-pp.localPoints()[oldPointI])
+                      < magSqr(featPt-pp.localPoints()[oldPointi])
                     )
                 )
                 {
-                    pointAttractor[featI][featPointI] = pointI;
-                    pointConstraints[featI][featPointI].first() = 3;
-                    pointConstraints[featI][featPointI].second() = Zero;
+                    pointAttractor[feati][featPointi] = pointi;
+                    pointConstraints[feati][featPointi].first() = 3;
+                    pointConstraints[feati][featPointi].second() = Zero;
 
                     // Store for later use
-                    patchAttraction[pointI] = featPt-pt;
-                    patchConstraints[pointI] =
-                        pointConstraints[featI][featPointI];
+                    patchAttraction[pointi] = featPt-pt;
+                    patchConstraints[pointi] =
+                        pointConstraints[feati][featPointi];
 
-                    if (oldPointI != -1)
+                    if (oldPointi != -1)
                     {
                         // The current point is closer so wins. Reset
                         // the old point to attract to nearest edge
@@ -3046,8 +3046,8 @@ void Foam::snappySnapDriver::determineBaffleFeatures
                             false,              // isRegionPoint
                             pp,
                             snapDist,
-                            oldPointI,
-                            pp.localPoints()[oldPointI],
+                            oldPointi,
+                            pp.localPoints()[oldPointi],
 
                             edgeAttractors,
                             edgeConstraints,
@@ -3059,13 +3059,13 @@ void Foam::snappySnapDriver::determineBaffleFeatures
                 else
                 {
                     // Make it fall through to check below
-                    featI = -1;
+                    feati = -1;
                 }
             }
 
             // Not found a feature point or another point is already
             // closer to that feature
-            if (featI == -1)
+            if (feati == -1)
             {
                 //Pout<< "*** Falling back to finding nearest feature"
                 //    << " edge"
@@ -3077,7 +3077,7 @@ void Foam::snappySnapDriver::determineBaffleFeatures
                     false,                  // isRegionPoint
                     pp,
                     snapDist,
-                    pointI,
+                    pointi,
                     pt,                     // starting point
 
                     edgeAttractors,
@@ -3156,11 +3156,11 @@ void Foam::snappySnapDriver::reverseAttractMeshPoints
 
         boolList isFeatureEdgeOrPoint(pp.nPoints(), false);
         label nFeats = 0;
-        forAll(rawPatchConstraints, pointI)
+        forAll(rawPatchConstraints, pointi)
         {
-            if (rawPatchConstraints[pointI].first() >= 2)
+            if (rawPatchConstraints[pointi].first() >= 2)
             {
-                isFeatureEdgeOrPoint[pointI] = true;
+                isFeatureEdgeOrPoint[pointi] = true;
                 nFeats++;
             }
         }
@@ -3185,9 +3185,9 @@ void Foam::snappySnapDriver::reverseAttractMeshPoints
         {
             boolList newIsFeatureEdgeOrPoint(isFeatureEdgeOrPoint);
 
-            forAll(pp.localFaces(), faceI)
+            forAll(pp.localFaces(), facei)
             {
-                const face& f = pp.localFaces()[faceI];
+                const face& f = pp.localFaces()[facei];
 
                 forAll(f, fp)
                 {
@@ -3217,11 +3217,11 @@ void Foam::snappySnapDriver::reverseAttractMeshPoints
 
 
         // Collect attractPoints
-        forAll(isFeatureEdgeOrPoint, pointI)
+        forAll(isFeatureEdgeOrPoint, pointi)
         {
-            if (isFeatureEdgeOrPoint[pointI])
+            if (isFeatureEdgeOrPoint[pointi])
             {
-                attractPoints.append(pointI);
+                attractPoints.append(pointi);
             }
         }
 
@@ -3248,15 +3248,15 @@ void Foam::snappySnapDriver::reverseAttractMeshPoints
     patchConstraints.setSize(pp.nPoints());
     patchConstraints = pointConstraint();
 
-    forAll(edgeAttractors, featI)
+    forAll(edgeAttractors, feati)
     {
-        const List<DynamicList<point>>& edgeAttr = edgeAttractors[featI];
+        const List<DynamicList<point>>& edgeAttr = edgeAttractors[feati];
         const List<DynamicList<pointConstraint>>& edgeConstr =
-            edgeConstraints[featI];
+            edgeConstraints[feati];
 
-        forAll(edgeAttr, featEdgeI)
+        forAll(edgeAttr, featEdgei)
         {
-            const DynamicList<point>& attr = edgeAttr[featEdgeI];
+            const DynamicList<point>& attr = edgeAttr[featEdgei];
             forAll(attr, i)
             {
                 // Find nearest pp point
@@ -3269,20 +3269,20 @@ void Foam::snappySnapDriver::reverseAttractMeshPoints
 
                 if (nearInfo.hit())
                 {
-                    label pointI =
+                    label pointi =
                         ppTree.shapes().pointLabels()[nearInfo.index()];
-                    const point attraction = featPt-pp.localPoints()[pointI];
+                    const point attraction = featPt-pp.localPoints()[pointi];
 
                     // Check if this point is already being attracted. If so
                     // override it only if nearer.
                     if
                     (
-                        patchConstraints[pointI].first() <= 1
-                     || magSqr(attraction) < magSqr(patchAttraction[pointI])
+                        patchConstraints[pointi].first() <= 1
+                     || magSqr(attraction) < magSqr(patchAttraction[pointi])
                     )
                     {
-                        patchAttraction[pointI] = attraction;
-                        patchConstraints[pointI] = edgeConstr[featEdgeI][i];
+                        patchAttraction[pointi] = attraction;
+                        patchConstraints[pointi] = edgeConstr[featEdgei][i];
                     }
                 }
                 else
@@ -3305,18 +3305,18 @@ void Foam::snappySnapDriver::reverseAttractMeshPoints
     // Find nearest mesh point to feature point
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     // (overrides attraction to feature edge)
-    forAll(pointAttractor, featI)
+    forAll(pointAttractor, feati)
     {
-        const labelList& pointAttr = pointAttractor[featI];
-        const List<pointConstraint>& pointConstr = pointConstraints[featI];
+        const labelList& pointAttr = pointAttractor[feati];
+        const List<pointConstraint>& pointConstr = pointConstraints[feati];
 
-        forAll(pointAttr, featPointI)
+        forAll(pointAttr, featPointi)
         {
-            if (pointAttr[featPointI] != -1)
+            if (pointAttr[featPointi] != -1)
             {
-                const point& featPt = features[featI].points()
+                const point& featPt = features[feati].points()
                 [
-                    featPointI
+                    featPointi
                 ];
 
                 // Find nearest pp point
@@ -3328,37 +3328,37 @@ void Foam::snappySnapDriver::reverseAttractMeshPoints
 
                 if (nearInfo.hit())
                 {
-                    label pointI =
+                    label pointi =
                         ppTree.shapes().pointLabels()[nearInfo.index()];
 
-                    const point& pt = pp.localPoints()[pointI];
+                    const point& pt = pp.localPoints()[pointi];
                     const point attraction = featPt-pt;
 
                     // - already attracted to feature edge : point always wins
                     // - already attracted to feature point: nearest wins
 
-                    if (patchConstraints[pointI].first() <= 1)
+                    if (patchConstraints[pointi].first() <= 1)
                     {
-                        patchAttraction[pointI] = attraction;
-                        patchConstraints[pointI] = pointConstr[featPointI];
+                        patchAttraction[pointi] = attraction;
+                        patchConstraints[pointi] = pointConstr[featPointi];
                     }
-                    else if (patchConstraints[pointI].first() == 2)
+                    else if (patchConstraints[pointi].first() == 2)
                     {
-                        patchAttraction[pointI] = attraction;
-                        patchConstraints[pointI] = pointConstr[featPointI];
+                        patchAttraction[pointi] = attraction;
+                        patchConstraints[pointi] = pointConstr[featPointi];
                     }
-                    else if (patchConstraints[pointI].first() == 3)
+                    else if (patchConstraints[pointi].first() == 3)
                     {
                         // Only if nearer
                         if
                         (
                             magSqr(attraction)
-                          < magSqr(patchAttraction[pointI])
+                          < magSqr(patchAttraction[pointi])
                         )
                         {
-                            patchAttraction[pointI] = attraction;
-                            patchConstraints[pointI] =
-                                pointConstr[featPointI];
+                            patchAttraction[pointi] = attraction;
+                            patchConstraints[pointi] =
+                                pointConstr[featPointi];
                         }
                     }
                 }
@@ -3419,11 +3419,11 @@ void Foam::snappySnapDriver::featureAttractionUsingFeatureEdges
     (
         features.size()
     );
-    forAll(features, featI)
+    forAll(features, feati)
     {
-        label nFeatEdges = features[featI].edges().size();
-        edgeAttractors[featI].setSize(nFeatEdges);
-        edgeConstraints[featI].setSize(nFeatEdges);
+        label nFeatEdges = features[feati].edges().size();
+        edgeAttractors[feati].setSize(nFeatEdges);
+        edgeConstraints[feati].setSize(nFeatEdges);
     }
 
     // Per feature, per feature-point the pp point that is attracted to it.
@@ -3431,11 +3431,11 @@ void Foam::snappySnapDriver::featureAttractionUsingFeatureEdges
     // used.
     List<labelList> pointAttractor(features.size());
     List<List<pointConstraint>> pointConstraints(features.size());
-    forAll(features, featI)
+    forAll(features, feati)
     {
-        label nFeatPoints = features[featI].points().size();
-        pointAttractor[featI].setSize(nFeatPoints, -1);
-        pointConstraints[featI].setSize(nFeatPoints);
+        label nFeatPoints = features[feati].points().size();
+        pointAttractor[feati].setSize(nFeatPoints, -1);
+        pointConstraints[feati].setSize(nFeatPoints);
     }
 
     // Reverse: from pp point to nearest feature
@@ -3570,16 +3570,16 @@ void Foam::snappySnapDriver::featureAttractionUsingFeatureEdges
         Info<< "Dumping feature-point attraction to "
             << featurePointStr.name() << endl;
 
-        forAll(patchConstraints, pointI)
+        forAll(patchConstraints, pointi)
         {
-            const point& pt = pp.localPoints()[pointI];
-            const vector& attr = patchAttraction[pointI];
+            const point& pt = pp.localPoints()[pointi];
+            const vector& attr = patchAttraction[pointi];
 
-            if (patchConstraints[pointI].first() == 2)
+            if (patchConstraints[pointi].first() == 2)
             {
                 featureEdgeStr.write(linePointRef(pt, pt+attr));
             }
-            else if (patchConstraints[pointI].first() == 3)
+            else if (patchConstraints[pointi].first() == 3)
             {
                 featurePointStr.write(linePointRef(pt, pt+attr));
             }
@@ -3696,9 +3696,9 @@ void Foam::snappySnapDriver::preventFaceSqueeze
 
     pointField points;
     face singleF;
-    forAll(pp.localFaces(), faceI)
+    forAll(pp.localFaces(), facei)
     {
-        const face& f = pp.localFaces()[faceI];
+        const face& f = pp.localFaces()[facei];
 
         if (f.size() != points.size())
         {
@@ -3712,12 +3712,12 @@ void Foam::snappySnapDriver::preventFaceSqueeze
         label nConstraints = 0;
         forAll(f, fp)
         {
-            label pointI = f[fp];
-            const point& pt = pp.localPoints()[pointI];
+            label pointi = f[fp];
+            const point& pt = pp.localPoints()[pointi];
 
-            if (patchConstraints[pointI].first() > 1)
+            if (patchConstraints[pointi].first() > 1)
             {
-                points[fp] = pt + patchAttraction[pointI];
+                points[fp] = pt + patchAttraction[pointi];
                 nConstraints++;
             }
             else
@@ -3749,24 +3749,24 @@ void Foam::snappySnapDriver::preventFaceSqueeze
                 }
                 if (maxFp != -1)
                 {
-                    label pointI = f.prevLabel(maxFp);
+                    label pointi = f.prevLabel(maxFp);
 
-                    // Reset attraction on pointI to nearest
+                    // Reset attraction on pointi to nearest
 
-                    const point& pt = pp.localPoints()[pointI];
+                    const point& pt = pp.localPoints()[pointi];
 
-                    //Pout<< "** on triangle " << pp.faceCentres()[faceI]
-                    //    << " knocking out attraction to " << pointI
+                    //Pout<< "** on triangle " << pp.faceCentres()[facei]
+                    //    << " knocking out attraction to " << pointi
                     //    << " at:" << pt
                     //    << endl;
 
-                    patchAttraction[pointI] = nearestAttraction[pointI];
+                    patchAttraction[pointi] = nearestAttraction[pointi];
 
                     if (strPtr.valid())
                     {
                         strPtr().write
                         (
-                            linePointRef(pt, pt+patchAttraction[pointI])
+                            linePointRef(pt, pt+patchAttraction[pointi])
                         );
                     }
                 }
@@ -3791,9 +3791,9 @@ void Foam::snappySnapDriver::preventFaceSqueeze
                     }
                     if (maxFp != -1)
                     {
-                        label pointI = f[maxFp];
-                        // Lower attraction on pointI
-                        patchAttraction[pointI] *= 0.5;
+                        label pointi = f[maxFp];
+                        // Lower attraction on pointi
+                        patchAttraction[pointi] *= 0.5;
                     }
                 }
             }
@@ -3860,12 +3860,12 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurfaceFeature
         // Calculate attraction distance per face (from the attraction distance
         // per point)
         scalarField faceSnapDist(pp.size(), -GREAT);
-        forAll(pp.localFaces(), faceI)
+        forAll(pp.localFaces(), facei)
         {
-            const face& f = pp.localFaces()[faceI];
+            const face& f = pp.localFaces()[facei];
             forAll(f, fp)
             {
-                faceSnapDist[faceI] = max(faceSnapDist[faceI], snapDist[f[fp]]);
+                faceSnapDist[facei] = max(faceSnapDist[facei], snapDist[f[fp]]);
             }
         }
 
@@ -4088,13 +4088,13 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurfaceFeature
 
 
     // Mix with direct feature attraction
-    forAll(patchConstraints, pointI)
+    forAll(patchConstraints, pointi)
     {
-        if (patchConstraints[pointI].first() > 1)
+        if (patchConstraints[pointi].first() > 1)
         {
-            patchDisp[pointI] =
-                (1.0-featureAttract)*patchDisp[pointI]
-              + featureAttract*patchAttraction[pointI];
+            patchDisp[pointi] =
+                (1.0-featureAttract)*patchDisp[pointi]
+              + featureAttract*patchAttraction[pointi];
         }
     }
 
diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverTemplates.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverTemplates.C
index b0f87e462b5dbd6efce8a6ad5473b225fe57b53b..95bbdf2220d977cc7cbae5455921742ca88763e0 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverTemplates.C
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverTemplates.C
@@ -45,15 +45,15 @@ Foam::labelList Foam::snappySnapDriver::getFacePoints
 
         forAll(f, fp)
         {
-            label meshPointI = f[fp];
+            label meshPointi = f[fp];
 
             Map<label>::const_iterator iter =
-                pp.meshPointMap().find(meshPointI);
+                pp.meshPointMap().find(meshPointi);
 
             if (iter != pp.meshPointMap().end())
             {
-                label pointI = iter();
-                pointOnZone[pointI] = true;
+                label pointi = iter();
+                pointOnZone[pointi] = true;
             }
         }
     }
diff --git a/src/parallel/decompose/metisDecomp/metisDecomp.C b/src/parallel/decompose/metisDecomp/metisDecomp.C
index e36a40032c87748ed26c175059208130e1d67ba1..735ce49c0d14a0695a4da17222d6824e95297129 100644
--- a/src/parallel/decompose/metisDecomp/metisDecomp.C
+++ b/src/parallel/decompose/metisDecomp/metisDecomp.C
@@ -67,7 +67,7 @@ Foam::label Foam::metisDecomp::decompose
 
     // Processor weights initialised with no size, only used if specified in
     // a file
-    Field<floatScalar> processorWeights;
+    Field<scalar> processorWeights;
 
     // Cell weights (so on the vertices of the dual)
     List<label> cellWeights;
diff --git a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
index 9db0d72d4a00037cfb1cdac3283a79ced168a469..de5557bcb55d59a53b6c5dde4b659690e681aee8 100644
--- a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
+++ b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -1766,6 +1766,8 @@ void Foam::distributedTriSurfaceMesh::findLineAll
     e1.setSize(compactI);
     pointMap.setSize(compactI);
 
+
+    label iter = 0;
     while (returnReduce(e0.size(), sumOp<label>()) > 0)
     {
         findLine
@@ -1791,7 +1793,12 @@ void Foam::distributedTriSurfaceMesh::findLineAll
 
                 point pt = hitInfo[i].hitPoint() + smallVec[pointI];
 
-                if (((pt-start[pointI])&dirVec[pointI]) <= magSqrDirVec[pointI])
+                // Check current coordinate along ray
+                scalar d = ((pt-start[pointI])&dirVec[pointI]);
+
+                // Note check for d>0. Very occasionally the octree will find
+                // an intersection to the left of the ray due to tolerances.
+                if (d > 0 && d <= magSqrDirVec[pointI])
                 {
                     e0[compactI] = pt;
                     e1[compactI] = end[pointI];
@@ -1805,6 +1812,21 @@ void Foam::distributedTriSurfaceMesh::findLineAll
         e0.setSize(compactI);
         e1.setSize(compactI);
         pointMap.setSize(compactI);
+
+        iter++;
+
+        if (iter == 1000)
+        {
+            Pout<< "distributedTriSurfaceMesh::findLineAll :"
+                << " Exiting loop due to excessive number of"
+                << " intersections along ray"
+                << " start:" << UIndirectList<point>(start, pointMap)
+                << " end:" << UIndirectList<point>(end, pointMap)
+                << " e0:" << UIndirectList<point>(e0, pointMap)
+                << " e1:" << UIndirectList<point>(e1, pointMap)
+                << endl;
+            break;
+        }
     }
 }
 
diff --git a/src/postProcessing/functionObjects/jobControl/Make/files b/src/postProcessing/functionObjects/jobControl/Make/files
deleted file mode 100644
index 9d4ebe3aebe70c86c331b466dc679ddf3075506f..0000000000000000000000000000000000000000
--- a/src/postProcessing/functionObjects/jobControl/Make/files
+++ /dev/null
@@ -1,20 +0,0 @@
-abortCalculation/abortCalculation.C
-abortCalculation/abortCalculationFunctionObject.C
-
-runTimeControl/runTimeControl.C
-runTimeControl/runTimeControlFunctionObject.C
-runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.C
-runTimeControl/runTimeCondition/runTimeCondition/runTimeConditionNew.C
-runTimeControl/runTimeCondition/equationMaxIterCondition/equationMaxIterCondition.C
-runTimeControl/runTimeCondition/equationInitialResidualCondition/equationInitialResidualCondition.C
-runTimeControl/runTimeCondition/minMaxCondition/minMaxCondition.C
-runTimeControl/runTimeCondition/averageCondition/averageCondition.C
-runTimeControl/runTimeCondition/minTimeStepCondition/minTimeStepCondition.C
-
-externalCoupled = externalCoupled
-$(externalCoupled)/externalCoupledFunctionObject.C
-$(externalCoupled)/externalCoupledMixed/externalCoupledMixedFvPatchFields.C
-$(externalCoupled)/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.C
-
-
-LIB = $(FOAM_LIBBIN)/libjobControl
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C
index 5734f736f334274e77b49ba5d45d23ae24e251e5..6d1e2ee2dd5f67e63195d157498d58fbf9723279 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.C
@@ -71,7 +71,7 @@ filmPyrolysisTemperatureCoupledFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict),
     filmRegionName_
     (
         dict.lookupOrDefault<word>("filmRegion", "surfaceFilmProperties")
@@ -82,9 +82,7 @@ filmPyrolysisTemperatureCoupledFvPatchScalarField
     ),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho"))
-{
-    fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
-}
+{}
 
 
 Foam::filmPyrolysisTemperatureCoupledFvPatchScalarField::
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C
index 4f30cb3a302cc2d67a93c31d3236a7afd1827259..8bf2ea9908ffd0626ee58efc6228f43930c46145 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.C
@@ -71,7 +71,7 @@ filmPyrolysisVelocityCoupledFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF),
+    fixedValueFvPatchVectorField(p, iF, dict),
     filmRegionName_
     (
         dict.lookupOrDefault<word>("filmRegion", "surfaceFilmProperties")
@@ -82,9 +82,7 @@ filmPyrolysisVelocityCoupledFvPatchVectorField
     ),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho"))
-{
-    fvPatchVectorField::operator=(vectorField("value", dict, p.size()));
-}
+{}
 
 
 Foam::filmPyrolysisVelocityCoupledFvPatchVectorField::
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/filmHeightInletVelocity/filmHeightInletVelocityFvPatchVectorField.C b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/filmHeightInletVelocity/filmHeightInletVelocityFvPatchVectorField.C
index 41fec4b2eb08adfa209383a5bc11e3b72ad03b7b..18a0bc751eb1c76ff064f228d6d7d2755564959d 100644
--- a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/filmHeightInletVelocity/filmHeightInletVelocityFvPatchVectorField.C
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/filmHeightInletVelocity/filmHeightInletVelocityFvPatchVectorField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -68,13 +68,11 @@ filmHeightInletVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF),
+    fixedValueFvPatchVectorField(p, iF, dict),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
     deltafName_(dict.lookupOrDefault<word>("deltaf", "deltaf"))
-{
-    fvPatchVectorField::operator=(vectorField("value", dict, p.size()));
-}
+{}
 
 
 Foam::filmHeightInletVelocityFvPatchVectorField::
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/inclinedFilmNusseltHeight/inclinedFilmNusseltHeightFvPatchScalarField.C b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/inclinedFilmNusseltHeight/inclinedFilmNusseltHeightFvPatchScalarField.C
index d2ba5990dacb183223af36c8cf3079ecbd0e4deb..39174d25c8942854c5ad7645e06f4297606cbeae 100644
--- a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/inclinedFilmNusseltHeight/inclinedFilmNusseltHeightFvPatchScalarField.C
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/inclinedFilmNusseltHeight/inclinedFilmNusseltHeightFvPatchScalarField.C
@@ -70,7 +70,7 @@ inclinedFilmNusseltHeightFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict),
     filmRegionName_
     (
         dict.lookupOrDefault<word>("filmRegion", "surfaceFilmProperties")
@@ -78,9 +78,7 @@ inclinedFilmNusseltHeightFvPatchScalarField
     GammaMean_(Function1<scalar>::New("GammaMean", dict)),
     a_(Function1<scalar>::New("a", dict)),
     omega_(Function1<scalar>::New("omega", dict))
-{
-    fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
-}
+{}
 
 
 Foam::inclinedFilmNusseltHeightFvPatchScalarField::
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/inclinedFilmNusseltInletVelocity/inclinedFilmNusseltInletVelocityFvPatchVectorField.C b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/inclinedFilmNusseltInletVelocity/inclinedFilmNusseltInletVelocityFvPatchVectorField.C
index d619afb92212e3fed9e965750e221f5e18454dbc..22b08e7fa493052a52e1dfb4638d36be7eb66562 100644
--- a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/inclinedFilmNusseltInletVelocity/inclinedFilmNusseltInletVelocityFvPatchVectorField.C
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/inclinedFilmNusseltInletVelocity/inclinedFilmNusseltInletVelocityFvPatchVectorField.C
@@ -70,7 +70,7 @@ inclinedFilmNusseltInletVelocityFvPatchVectorField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchVectorField(p, iF),
+    fixedValueFvPatchVectorField(p, iF, dict),
     filmRegionName_
     (
         dict.lookupOrDefault<word>("filmRegion", "surfaceFilmProperties")
@@ -78,9 +78,7 @@ inclinedFilmNusseltInletVelocityFvPatchVectorField
     GammaMean_(Function1<scalar>::New("GammaMean", dict)),
     a_(Function1<scalar>::New("a", dict)),
     omega_(Function1<scalar>::New("omega", dict))
-{
-    fvPatchVectorField::operator=(vectorField("value", dict, p.size()));
-}
+{}
 
 
 Foam::inclinedFilmNusseltInletVelocityFvPatchVectorField::
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H
index ceaecabb25c8711ed5b80d9792ca128da6d70db7..5ff3b877658e0cd8592fd9cdd3154a8a2cc64d8a 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/filmTurbulenceModel/laminar/laminar.H
@@ -32,8 +32,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef laminar_H
-#define laminar_H
+#ifndef regionModels_surfaceFilmModels_laminar_H
+#define regionModels_surfaceFilmModels_laminar_H
 
 #include "filmTurbulenceModel.H"
 
diff --git a/src/renumber/renumberMethods/Make/files b/src/renumber/renumberMethods/Make/files
index 4fe9cd69fb9b4070d7e2c404dc43229b26a9b74b..c0a66850387fd4ff58bd299144d3990617e30b8a 100644
--- a/src/renumber/renumberMethods/Make/files
+++ b/src/renumber/renumberMethods/Make/files
@@ -4,5 +4,6 @@ CuthillMcKeeRenumber/CuthillMcKeeRenumber.C
 randomRenumber/randomRenumber.C
 springRenumber/springRenumber.C
 structuredRenumber/structuredRenumber.C
+structuredRenumber/OppositeFaceCellWaveName.C
 
 LIB = $(FOAM_LIBBIN)/librenumberMethods
diff --git a/src/renumber/renumberMethods/structuredRenumber/OppositeFaceCellWave.C b/src/renumber/renumberMethods/structuredRenumber/OppositeFaceCellWave.C
new file mode 100644
index 0000000000000000000000000000000000000000..4e865bd0b11c13e6ede0254b59a75233202a2721
--- /dev/null
+++ b/src/renumber/renumberMethods/structuredRenumber/OppositeFaceCellWave.C
@@ -0,0 +1,331 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "OppositeFaceCellWave.H"
+#include "polyMesh.H"
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+template<class Type, class TrackingData>
+void Foam::OppositeFaceCellWave<Type, TrackingData>::opposingFaceLabels
+(
+    const label celli,
+    const label masterFaceLabel,
+    DynamicList<label>& oppositeFaceLabels
+) const
+{
+    // Variant of cell::opposingFaceLabel
+
+    // Algorithm:
+    // Go through all the faces of the cell and find the one which
+    // does not share a single vertex with the master face.  If there
+    // are two or more such faces, return the first one and issue a
+    // warning; if there is no opposite face, return -1;
+
+    const face& masterFace = this->mesh_.faces()[masterFaceLabel];
+
+    const labelList& curFaceLabels = this->mesh_.cells()[celli];
+
+    oppositeFaceLabels.clear();
+
+    forAll(curFaceLabels, facei)
+    {
+        // Compare the face with the master
+        const face& curFace = this->mesh_.faces()[curFaceLabels[facei]];
+
+        // Skip the master face
+        if (curFaceLabels[facei] != masterFaceLabel)
+        {
+            bool sharedPoint = false;
+
+            // Compare every vertex of the current face against the
+            // vertices of the master face
+            forAll(curFace, pointi)
+            {
+                const label l = curFace[pointi];
+
+                forAll(masterFace, masterPointi)
+                {
+                    if (masterFace[masterPointi] == l)
+                    {
+                        sharedPoint = true;
+                        break;
+                    }
+                }
+
+                if (sharedPoint) break;
+            }
+
+            // If no points are shared, this is the opposite face
+            if (!sharedPoint)
+            {
+                // Found opposite face
+                oppositeFaceLabels.append(curFaceLabels[facei]);
+            }
+        }
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+// Iterate, propagating changedFacesInfo across mesh, until no change (or
+// maxIter reached). Initial cell values specified.
+template<class Type, class TrackingData>
+Foam::OppositeFaceCellWave<Type, TrackingData>::OppositeFaceCellWave
+(
+    const polyMesh& mesh,
+    const labelList& changedFaces,
+    const List<Type>& changedFacesInfo,
+    UList<Type>& allFaceInfo,
+    UList<Type>& allCellInfo,
+    const label maxIter,
+    TrackingData& td
+)
+:
+    FaceCellWave<Type, TrackingData>
+    (
+        mesh,
+        changedFaces,
+        changedFacesInfo,
+        allFaceInfo,
+        allCellInfo,
+        0,              //maxIter,
+        td
+    ),
+    changedOppositeFaces_(this->mesh_.nCells())
+{
+    // Iterate until nothing changes
+    label iter = this->iterate(maxIter);
+
+    if ((maxIter > 0) && (iter >= maxIter))
+    {
+        FatalErrorInFunction
+            << "Maximum number of iterations reached. Increase maxIter."
+            << endl
+            << "    maxIter:" << maxIter << endl
+            << "    nChangedCells:" << this->changedCells_.size() << endl
+            << "    nChangedFaces:" << this->changedFaces_.size() << endl
+            << exit(FatalError);
+    }
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class Type, class TrackingData>
+Foam::label Foam::OppositeFaceCellWave<Type, TrackingData>::faceToCell()
+{
+    const labelList& owner = this->mesh_.faceOwner();
+    const labelList& neighbour = this->mesh_.faceNeighbour();
+    label nInternalFaces = this->mesh_.nInternalFaces();
+
+    DynamicList<label> oppositeFaceLabels;
+
+    forAll(this->changedFaces_, changedFacei)
+    {
+        label facei = this->changedFaces_[changedFacei];
+
+        if (!this->changedFace_[facei])
+        {
+            FatalErrorInFunction
+                << "Face " << facei
+                << " not marked as having been changed"
+                << abort(FatalError);
+        }
+
+
+        const Type& neighbourWallInfo = this->allFaceInfo_[facei];
+
+        // Evaluate all connected cells
+
+        // Owner
+        {
+            label celli = owner[facei];
+            Type& currentWallInfo = this->allCellInfo_[celli];
+
+            if (!currentWallInfo.equal(neighbourWallInfo, this->td_))
+            {
+                // Check if cell is prismatic w.r.t facei
+                opposingFaceLabels(celli, facei, oppositeFaceLabels);
+
+                if (oppositeFaceLabels.size())
+                {
+                    label sz = this->changedCells_.size();
+                    this->updateCell
+                    (
+                        celli,
+                        facei,
+                        neighbourWallInfo,
+                        this->propagationTol_,
+                        currentWallInfo
+                    );
+                    if (this->changedCells_.size() > sz)
+                    {
+                        label oppFacei = -1;
+                        if (oppositeFaceLabels.size() == 1)
+                        {
+                            oppFacei = oppositeFaceLabels[0];
+                        }
+                        changedOppositeFaces_.append(oppFacei);
+                    }
+                }
+            }
+        }
+
+        // Neighbour.
+        if (facei < nInternalFaces)
+        {
+            label celli = neighbour[facei];
+            Type& currentWallInfo2 = this->allCellInfo_[celli];
+
+            if (!currentWallInfo2.equal(neighbourWallInfo, this->td_))
+            {
+                // Check if cell is prismatic w.r.t facei
+                opposingFaceLabels(celli, facei, oppositeFaceLabels);
+
+                if (oppositeFaceLabels.size())
+                {
+                    label sz = this->changedCells_.size();
+                    this->updateCell
+                    (
+                        celli,
+                        facei,
+                        neighbourWallInfo,
+                        this->propagationTol_,
+                        currentWallInfo2
+                    );
+                    if (this->changedCells_.size() > sz)
+                    {
+                        label oppFacei = -1;
+                        if (oppositeFaceLabels.size() == 1)
+                        {
+                            oppFacei = oppositeFaceLabels[0];
+                        }
+                        changedOppositeFaces_.append(oppFacei);
+                    }
+                }
+            }
+        }
+
+        // Reset status of face
+        this->changedFace_[facei] = false;
+    }
+
+    // Handled all changed faces by now
+    this->changedFaces_.clear();
+
+    if (debug & 2)
+    {
+        Pout<< " Changed cells            : " << this->changedCells_.size()
+            << endl;
+    }
+
+    // Sum changedCells over all procs
+    label totNChanged = this->changedCells_.size();
+
+    reduce(totNChanged, sumOp<label>());
+
+    return totNChanged;
+}
+
+
+template<class Type, class TrackingData>
+Foam::label Foam::OppositeFaceCellWave<Type, TrackingData>::cellToFace()
+{
+    forAll(this->changedCells_, changedCelli)
+    {
+        label celli = this->changedCells_[changedCelli];
+        label facei = changedOppositeFaces_[changedCelli];
+
+        if (!this->changedCell_[celli])
+        {
+            FatalErrorInFunction
+                << "Cell " << celli << " not marked as having been changed"
+                << abort(FatalError);
+        }
+
+        if (facei != -1)
+        {
+            const Type& neighbourWallInfo = this->allCellInfo_[celli];
+
+            // Evaluate facei
+
+            Type& currentWallInfo = this->allFaceInfo_[facei];
+
+            if (!currentWallInfo.equal(neighbourWallInfo, this->td_))
+            {
+                this->updateFace
+                (
+                    facei,
+                    celli,
+                    neighbourWallInfo,
+                    this->propagationTol_,
+                    currentWallInfo
+                );
+            }
+        }
+
+        // Reset status of cell
+        this->changedCell_[celli] = false;
+    }
+
+    // Handled all changed cells by now
+    this->changedCells_.clear();
+    changedOppositeFaces_.clear();
+
+    if (this->hasCyclicPatches_)
+    {
+        // Transfer changed faces across cyclic halves
+        this->handleCyclicPatches();
+    }
+
+    if (this->hasCyclicAMIPatches_)
+    {
+        this->handleAMICyclicPatches();
+    }
+
+    if (Pstream::parRun())
+    {
+        // Transfer changed faces from neighbouring processors.
+        this->handleProcPatches();
+    }
+
+    if (debug & 2)
+    {
+        Pout<< " Changed faces            : " << this->changedFaces_.size()
+            << endl;
+    }
+
+    // Sum nChangedFaces over all procs
+    label totNChanged = this->changedFaces_.size();
+
+    reduce(totNChanged, sumOp<label>());
+
+    return totNChanged;
+}
+
+
+// ************************************************************************* //
diff --git a/src/renumber/renumberMethods/structuredRenumber/OppositeFaceCellWave.H b/src/renumber/renumberMethods/structuredRenumber/OppositeFaceCellWave.H
new file mode 100644
index 0000000000000000000000000000000000000000..bcfe3cb0ddafc991691bd72fdf48bd852303cf0d
--- /dev/null
+++ b/src/renumber/renumberMethods/structuredRenumber/OppositeFaceCellWave.H
@@ -0,0 +1,143 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::OppositeFaceCellWave
+
+Description
+    Version of FaceCellWave that walks through prismatic cells only.
+
+    Used to determine mesh structure. In the front walking routines
+    (faceToCell and faceToCell) it
+    - walks across prismatic cells only
+    - and only to a single opposite face
+
+    Notes:
+    A cell with a split faces will be marked but not walked through (since
+    there is no single opposite face.
+
+SourceFiles
+    OppositeFaceCellWave.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef OppositeFaceCellWave_H
+#define OppositeFaceCellWave_H
+
+#include "FaceCellWave.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                        Class OppositeFaceCellWaveName Declaration
+\*---------------------------------------------------------------------------*/
+
+TemplateName(OppositeFaceCellWave);
+
+
+/*---------------------------------------------------------------------------*\
+                           Class OppositeFaceCellWave Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class Type, class TrackingData = int>
+class OppositeFaceCellWave
+:
+    public FaceCellWave<Type, TrackingData>,
+    public OppositeFaceCellWaveName
+{
+protected:
+
+    // Protected data
+
+        //- For every entry in changedCells (i.e. the cell front) gives
+        //  the face that it needs to transfer to
+        DynamicList<label> changedOppositeFaces_;
+
+
+   // Protected Member Functions
+
+        //- Determine 'opposite' faces (= faces not sharing a vertex) on cell
+        void opposingFaceLabels
+        (
+            const label celli,
+            const label facei,
+            DynamicList<label>&
+        ) const;
+
+
+public:
+
+    // Constructors
+
+        //- Construct from mesh and list of changed faces with the Type
+        //  for these faces. Iterates until nothing changes or maxIter reached.
+        //  (maxIter can be 0)
+        OppositeFaceCellWave
+        (
+            const polyMesh&,
+            const labelList& initialChangedFaces,
+            const List<Type>& changedFacesInfo,
+            UList<Type>& allFaceInfo,
+            UList<Type>& allCellInfo,
+            const label maxIter,
+            TrackingData& td = FaceCellWave<Type, TrackingData>::dummyTrackData_
+        );
+
+
+    //- Destructor
+    virtual ~OppositeFaceCellWave()
+    {};
+
+
+    // Member Functions
+
+        //- Propagate from face to cell. Returns total number of cells
+        //  (over all processors) changed.
+        virtual label faceToCell();
+
+        //- Propagate from cell to face. Returns total number of faces
+        //  (over all processors) changed. (Faces on processorpatches are
+        //  counted double)
+        virtual label cellToFace();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "OppositeFaceCellWave.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/itoa.H b/src/renumber/renumberMethods/structuredRenumber/OppositeFaceCellWaveName.C
similarity index 73%
rename from applications/utilities/postProcessing/dataConversion/foamToEnsight/itoa.H
rename to src/renumber/renumberMethods/structuredRenumber/OppositeFaceCellWaveName.C
index 0977a38960c15e24a75f9d3cede1813350609343..9af627e95db8e0758475845427d40e3d1478a0cd 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/itoa.H
+++ b/src/renumber/renumberMethods/structuredRenumber/OppositeFaceCellWaveName.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -21,27 +21,16 @@ License
     You should have received a copy of the GNU General Public License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
-InApplication
-    foamToEnsight
-
-Description
-
 \*---------------------------------------------------------------------------*/
 
-#include "word.H"
-#include "label.H"
+#include "OppositeFaceCellWave.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
 {
+    defineTypeNameAndDebug(OppositeFaceCellWaveName, 0);
+}
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-word itoa(const label n);
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
 
 // ************************************************************************* //
diff --git a/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.C b/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.C
index 093d44bb25b88d573c51369224f01672732007a0..e227f2861fb6efe200d22fc4d75ab261884752fc 100644
--- a/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.C
+++ b/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.C
@@ -27,7 +27,7 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "topoDistanceData.H"
 #include "fvMeshSubset.H"
-#include "FaceCellWave.H"
+#include "OppositeFaceCellWave.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -54,7 +54,7 @@ Foam::structuredRenumber::structuredRenumber
     renumberMethod(renumberDict),
     methodDict_(renumberDict.subDict(typeName + "Coeffs")),
     patches_(methodDict_.lookup("patches")),
-    //nLayers_(readLabel(methodDict_.lookup("nLayers"))),
+    nLayers_(methodDict_.lookupOrDefault<label>("nLayers", labelMax)),
     depthFirst_(methodDict_.lookup("depthFirst")),
     method_(renumberMethod::New(methodDict_)),
     reverse_(methodDict_.lookup("reverse"))
@@ -63,6 +63,75 @@ Foam::structuredRenumber::structuredRenumber
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+bool Foam::structuredRenumber::layerLess::operator()
+(
+    const label a,
+    const label b
+)
+{
+    const topoDistanceData& ta = distance_[a];
+    const topoDistanceData& tb = distance_[b];
+
+    int dummy;
+
+    if (ta.valid(dummy))
+    {
+        if (tb.valid(dummy))
+        {
+            if (depthFirst_)
+            {
+                if (ta.data() < tb.data())
+                {
+                    // Sort column first
+                    return true;
+                }
+                else if (ta.data() > tb.data())
+                {
+                    return false;
+                }
+                else
+                {
+                    // Same column. Sort according to layer
+                    return ta.distance() < tb.distance();
+                }
+            }
+            else
+            {
+                if (ta.distance() < tb.distance())
+                {
+                    return true;
+                }
+                else if (ta.distance() > tb.distance())
+                {
+                    return false;
+                }
+                else
+                {
+                    // Same layer; sort according to current values
+                    return ta.data() < tb.data();
+                }
+            }
+        }
+        else
+        {
+            return true;
+        }
+    }
+    else
+    {
+        if (tb.valid(dummy))
+        {
+            return false;
+        }
+        else
+        {
+            // Both not valid; fall back to cell indices for sorting
+            return order_[a] < order_[b];
+        }
+    }
+}
+
+
 Foam::labelList Foam::structuredRenumber::renumber
 (
     const polyMesh& mesh,
@@ -104,18 +173,13 @@ Foam::labelList Foam::structuredRenumber::renumber
     const label nLayers = nTotalCells/nTotalSeeds;
 
     Info<< type() << " : seeding " << nTotalSeeds
-        << " cells on " << nLayers << " layers" << nl
+        << " cells on (estimated) " << nLayers << " layers" << nl
         << endl;
 
 
-    // Avoid subsetMesh, FaceCellWave going through proc boundaries
-    bool oldParRun = Pstream::parRun();
-    Pstream::parRun() = false;
-
-
     // Work array. Used here to temporarily store the original-to-ordered
     // index. Later on used to store the ordered-to-original.
-    labelList orderedToOld(points.size(), -1);
+    labelList orderedToOld(mesh.nCells(), -1);
 
     // Subset the layer of cells next to the patch
     {
@@ -125,20 +189,23 @@ Foam::labelList Foam::structuredRenumber::renumber
 
         pointField subPoints(points, subsetter.cellMap());
 
-        // Decompose the layer of cells
+        // Locally renumber the layer of cells
         labelList subOrder(method_().renumber(subMesh, subPoints));
 
         labelList subOrigToOrdered(invert(subOrder.size(), subOrder));
 
-        // Transfer to final decomposition
+        globalIndex globalSubCells(subOrder.size());
+
+        // Transfer to final decomposition and convert into global numbering
         forAll(subOrder, i)
         {
-            orderedToOld[subsetter.cellMap()[i]] = subOrigToOrdered[i];
+            orderedToOld[subsetter.cellMap()[i]] =
+                globalSubCells.toGlobal(subOrigToOrdered[i]);
         }
     }
 
 
-    // Walk out.
+    // Walk sub-ordering (=column index) out.
     labelList patchFaces(nFaces);
     List<topoDistanceData> patchData(nFaces);
     nFaces = 0;
@@ -151,7 +218,7 @@ Foam::labelList Foam::structuredRenumber::renumber
             patchFaces[nFaces] = pp.start()+i;
             patchData[nFaces] = topoDistanceData
             (
-                orderedToOld[fc[i]],// passive data: order of originating face
+                orderedToOld[fc[i]],// passive data: global column
                 0                   // distance: layer
             );
             nFaces++;
@@ -163,50 +230,43 @@ Foam::labelList Foam::structuredRenumber::renumber
     List<topoDistanceData> faceData(mesh.nFaces());
 
     // Propagate information inwards
-    FaceCellWave<topoDistanceData> deltaCalc
+    OppositeFaceCellWave<topoDistanceData> deltaCalc
     (
         mesh,
         patchFaces,
         patchData,
         faceData,
         cellData,
-        nTotalCells+1
+        0
     );
 
+    deltaCalc.iterate(nLayers_);
 
-    Pstream::parRun() = oldParRun;
+    Info<< type() << " : did not visit "
+        << deltaCalc.getUnsetCells()
+        << " cells out of " << nTotalCells
+        << "; using " << method_().type() << " renumbering for these" << endl;
 
+    // Get cell order using the method(). These values will get overwitten
+    // by any visited cell so are used only if the number of nLayers is limited.
+    labelList oldToOrdered
+    (
+        invert
+        (
+            mesh.nCells(),
+            method_().renumber(mesh, points)
+        )
+    );
 
-    // And extract.
-    // Note that distance is distance from face so starts at 1.
-    bool haveWarned = false;
-    forAll(orderedToOld, celli)
-    {
-        if (!cellData[celli].valid(deltaCalc.data()))
-        {
-            if (!haveWarned)
-            {
-                WarningInFunction
-                    << "Did not visit some cells, e.g. cell " << celli
-                    << " at " << mesh.cellCentres()[celli] << endl
-                    << "Assigning these cells to domain 0." << endl;
-                haveWarned = true;
-            }
-            orderedToOld[celli] = 0;
-        }
-        else
-        {
-            label layerI = cellData[celli].distance();
-            if (depthFirst_)
-            {
-                orderedToOld[nLayers*cellData[celli].data()+layerI] = celli;
-            }
-            else
-            {
-                orderedToOld[cellData[celli].data()+nLayers*layerI] = celli;
-            }
-        }
-    }
+    // Use specialised sorting to sorted either layers or columns first
+    // Done so that at no point we need to combine both into a single
+    // index and we might run out of label size.
+    sortedOrder
+    (
+        cellData,
+        orderedToOld,
+        layerLess(depthFirst_, oldToOrdered, cellData)
+    );
 
     // Return furthest away cell first
     if (reverse_)
diff --git a/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.H b/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.H
index b95f7d7036fb73019687d2d89260f93e6b433fcf..407fbf2329c9ad5d612ca8c62ea417b9b5ff067e 100644
--- a/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.H
+++ b/src/renumber/renumberMethods/structuredRenumber/structuredRenumber.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,6 +41,7 @@ SourceFiles
 #define structuredRenumber_H
 
 #include "renumberMethod.H"
+#include "topoDistanceData.H"
 #include "Switch.H"
 
 namespace Foam
@@ -54,12 +55,44 @@ class structuredRenumber
 :
     public renumberMethod
 {
+public:
+
+    // Public classes
+
+        //- Less function class that can be used for sorting according to
+        //  column and layer
+        class layerLess
+        {
+            const Switch depthFirst_;
+            const labelList& order_;
+            const List<topoDistanceData>& distance_;
+
+        public:
+
+            layerLess
+            (
+                const Switch depthFirst,
+                const labelList& order,
+                const List<topoDistanceData>& distance
+            )
+            :
+                depthFirst_(depthFirst),
+                order_(order),
+                distance_(distance)
+            {}
+
+            bool operator()(const label a, const label b);
+        };
+
+
     // Private data
 
         const dictionary methodDict_;
 
         const wordReList patches_;
 
+        const label nLayers_;
+
         const Switch depthFirst_;
 
         const autoPtr<renumberMethod> method_;
diff --git a/src/rigidBodyDynamics/rigidBodyMotion/rigidBodyMotion.C b/src/rigidBodyDynamics/rigidBodyMotion/rigidBodyMotion.C
index f14acc6e60af9139bfb749574b7c32c18afe7526..6cf2514c04e688df753b9a85529c80772d0fb1b0 100644
--- a/src/rigidBodyDynamics/rigidBodyMotion/rigidBodyMotion.C
+++ b/src/rigidBodyDynamics/rigidBodyMotion/rigidBodyMotion.C
@@ -178,6 +178,28 @@ void Foam::RBD::rigidBodyMotion::status(const label bodyID) const
 }
 
 
+Foam::tmp<Foam::pointField> Foam::RBD::rigidBodyMotion::transformPoints
+(
+    const label bodyID,
+    const pointField& initialPoints
+) const
+{
+    // Calculate the transform from the initial state in the global frame
+    // to the current state in the global frame
+    spatialTransform X(X0(bodyID).inv() & X00(bodyID));
+
+    tmp<pointField> tpoints(new pointField(initialPoints.size()));
+    pointField& points = tpoints.ref();
+
+    forAll(points, i)
+    {
+        points[i] = X.transformPoint(initialPoints[i]);
+    }
+
+    return tpoints;
+}
+
+
 Foam::tmp<Foam::pointField> Foam::RBD::rigidBodyMotion::transformPoints
 (
     const label bodyID,
@@ -249,25 +271,23 @@ Foam::tmp<Foam::pointField> Foam::RBD::rigidBodyMotion::transformPoints
 
     forAll(points, i)
     {
-        // Sum (1 - wi) and find the maximum wi
-        scalar sum1mw = 0;
-        scalar maxw = 0;
+        // Initialize to 1 for the far-field weight
+        scalar sum1mw = 1;
 
         forAll(bodyIDs, bi)
         {
             w[bi] = (*(weights[bi]))[i];
-            sum1mw += 1 - w[bi];
-            maxw = max(maxw, w[bi]);
+            sum1mw += w[bi]/(1 + SMALL - w[bi]);
         }
 
-        // Calculate the limiter for (1 - wi) to ensure the sum(wi) = maxw
-        scalar lambda = (w.size() - 1 - maxw)/sum1mw;
+        // Calculate the limiter for wi/(1 - wi) to ensure the sum(wi) = 1
+        scalar lambda = 1/sum1mw;
 
-        // Limit (1 - wi) and sum the resulting wi
+        // Limit wi/(1 - wi) and sum the resulting wi
         scalar sumw = 0;
         forAll(bodyIDs, bi)
         {
-            w[bi] = 1 - lambda*(1 - w[bi]);
+            w[bi] = lambda*w[bi]/(1 + SMALL - w[bi]);
             sumw += w[bi];
         }
 
diff --git a/src/rigidBodyDynamics/rigidBodyMotion/rigidBodyMotion.H b/src/rigidBodyDynamics/rigidBodyMotion/rigidBodyMotion.H
index c386169064bdbde0380c03fb7a46144ccf1d7bda..d065d9797c21fefba1a657b105030d60b5c7858b 100644
--- a/src/rigidBodyDynamics/rigidBodyMotion/rigidBodyMotion.H
+++ b/src/rigidBodyDynamics/rigidBodyMotion/rigidBodyMotion.H
@@ -183,6 +183,14 @@ public:
 
         // Transformations
 
+            //- Transform the given initial pointField of the specified body
+            //  to correspond to the current motion state
+            tmp<pointField> transformPoints
+            (
+                const label bodyID,
+                const pointField& initialPoints
+            ) const;
+
             //- Transform the given initial pointField of the specified body
             //  to correspond to the current motion state scaled using
             //  'slerp' interpolation
diff --git a/src/rigidBodyMeshMotion/Make/files b/src/rigidBodyMeshMotion/Make/files
index f7fcbc136171b7095bf66b6ffb19c9b3ebea49c6..57443ab01dde527012f71d2a86eb0ee8017b829a 100644
--- a/src/rigidBodyMeshMotion/Make/files
+++ b/src/rigidBodyMeshMotion/Make/files
@@ -1,3 +1,4 @@
-rigidBodyMeshMotion.C
+rigidBodyMeshMotion/rigidBodyMeshMotion.C
+rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.C
 
 LIB = $(FOAM_LIBBIN)/librigidBodyMeshMotion
diff --git a/src/rigidBodyMeshMotion/rigidBodyMeshMotion.C b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C
similarity index 100%
rename from src/rigidBodyMeshMotion/rigidBodyMeshMotion.C
rename to src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C
diff --git a/src/rigidBodyMeshMotion/rigidBodyMeshMotion.H b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H
similarity index 100%
rename from src/rigidBodyMeshMotion/rigidBodyMeshMotion.H
rename to src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H
diff --git a/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.C b/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.C
new file mode 100644
index 0000000000000000000000000000000000000000..dbe3eee194df215bcfdbb8745e52bcfa85d86e01
--- /dev/null
+++ b/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.C
@@ -0,0 +1,334 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "rigidBodyMeshMotionSolver.H"
+#include "addToRunTimeSelectionTable.H"
+#include "polyMesh.H"
+#include "pointPatchDist.H"
+#include "pointConstraints.H"
+#include "uniformDimensionedFields.H"
+#include "forces.H"
+#include "mathematicalConstants.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineTypeNameAndDebug(rigidBodyMeshMotionSolver, 0);
+
+    addToRunTimeSelectionTable
+    (
+        motionSolver,
+        rigidBodyMeshMotionSolver,
+        dictionary
+    );
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::rigidBodyMeshMotionSolver::bodyMesh::bodyMesh
+(
+    const polyMesh& mesh,
+    const word& name,
+    const label bodyID,
+    const dictionary& dict
+)
+:
+    name_(name),
+    bodyID_(bodyID),
+    patches_(wordReList(dict.lookup("patches"))),
+    patchSet_(mesh.boundaryMesh().patchSet(patches_))
+{}
+
+
+Foam::rigidBodyMeshMotionSolver::rigidBodyMeshMotionSolver
+(
+    const polyMesh& mesh,
+    const IOdictionary& dict
+)
+:
+    motionSolver(mesh, dict, typeName),
+    model_
+    (
+        coeffDict(),
+        IOobject
+        (
+            "rigidBodyMotionState",
+            mesh.time().timeName(),
+            "uniform",
+            mesh
+        ).typeHeaderOk<IOdictionary>(false)
+      ? IOdictionary
+        (
+            IOobject
+            (
+                "rigidBodyMotionState",
+                mesh.time().timeName(),
+                "uniform",
+                mesh,
+                IOobject::READ_IF_PRESENT,
+                IOobject::NO_WRITE,
+                false
+            )
+        )
+      : coeffDict()
+    ),
+    test_(coeffDict().lookupOrDefault<Switch>("test", false)),
+    rhoInf_(1.0),
+    rhoName_(coeffDict().lookupOrDefault<word>("rho", "rho")),
+    curTimeIndex_(-1),
+    meshSolverPtr_
+    (
+        motionSolver::New
+        (
+            mesh,
+            IOdictionary
+            (
+                IOobject
+                (
+                    "rigidBodyMotionSolver:meshSolver",
+                    mesh.time().constant(),
+                    mesh
+                ),
+                coeffDict().subDict("meshSolver")
+            )
+        )
+    ),
+    meshSolver_(refCast<displacementMotionSolver>(meshSolverPtr_()))
+{
+    if (rhoName_ == "rhoInf")
+    {
+        rhoInf_ = readScalar(coeffDict().lookup("rhoInf"));
+    }
+
+    const dictionary& bodiesDict = coeffDict().subDict("bodies");
+
+    forAllConstIter(IDLList<entry>, bodiesDict, iter)
+    {
+        const dictionary& bodyDict = iter().dict();
+
+        if (bodyDict.found("patches"))
+        {
+            const label bodyID = model_.bodyID(iter().keyword());
+
+            if (bodyID == -1)
+            {
+                FatalErrorInFunction
+                    << "Body " << iter().keyword()
+                    << " has been merged with another body"
+                       " and cannot be assigned a set of patches"
+                    << exit(FatalError);
+            }
+
+            bodyMeshes_.append
+            (
+                new bodyMesh
+                (
+                    mesh,
+                    iter().keyword(),
+                    bodyID,
+                    bodyDict
+                )
+            );
+        }
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::rigidBodyMeshMotionSolver::~rigidBodyMeshMotionSolver()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::pointField>
+Foam::rigidBodyMeshMotionSolver::curPoints() const
+{
+    return meshSolverPtr_->curPoints();
+}
+
+
+void Foam::rigidBodyMeshMotionSolver::solve()
+{
+    const Time& t = mesh().time();
+
+    if (mesh().nPoints() != meshSolver_.points0().size())
+    {
+        FatalErrorInFunction
+            << "The number of points in the mesh seems to have changed." << endl
+            << "In constant/polyMesh there are " << meshSolver_.points0().size()
+            << " points; in the current mesh there are " << mesh().nPoints()
+            << " points." << exit(FatalError);
+    }
+
+    // Store the motion state at the beginning of the time-step
+    if (curTimeIndex_ != this->db().time().timeIndex())
+    {
+        model_.newTime();
+        curTimeIndex_ = this->db().time().timeIndex();
+    }
+
+    if (db().foundObject<uniformDimensionedVectorField>("g"))
+    {
+        model_.g() =
+            db().lookupObject<uniformDimensionedVectorField>("g").value();
+    }
+
+    if (test_)
+    {
+        label nIter(readLabel(coeffDict().lookup("nIter")));
+
+        for (label i=0; i<nIter; i++)
+        {
+            model_.solve
+            (
+                t.deltaTValue(),
+                scalarField(model_.nDoF(), Zero),
+                Field<spatialVector>(model_.nBodies(), Zero)
+            );
+        }
+    }
+    else
+    {
+        Field<spatialVector> fx(model_.nBodies(), Zero);
+
+        forAll(bodyMeshes_, bi)
+        {
+            const label bodyID = bodyMeshes_[bi].bodyID_;
+
+            dictionary forcesDict;
+            forcesDict.add("type", functionObjects::forces::typeName);
+            forcesDict.add("patches", bodyMeshes_[bi].patches_);
+            forcesDict.add("rhoInf", rhoInf_);
+            forcesDict.add("rho", rhoName_);
+            forcesDict.add("CofR", vector::zero);
+
+            functionObjects::forces f("forces", db(), forcesDict);
+            f.calcForcesMoment();
+
+            fx[bodyID] = spatialVector(f.momentEff(), f.forceEff());
+        }
+
+        model_.solve
+        (
+            t.deltaTValue(),
+            scalarField(model_.nDoF(), Zero),
+            fx
+        );
+    }
+
+    if (Pstream::master() && model_.report())
+    {
+        forAll(bodyMeshes_, bi)
+        {
+            model_.status(bodyMeshes_[bi].bodyID_);
+        }
+    }
+
+    // Update the displacements
+    forAll(bodyMeshes_, bi)
+    {
+        forAllConstIter(labelHashSet, bodyMeshes_[bi].patchSet_, iter)
+        {
+            label patchi = iter.key();
+
+            pointField patchPoints0
+            (
+                meshSolver_.pointDisplacement().boundaryField()[patchi]
+               .patchInternalField(meshSolver_.points0())
+            );
+
+            meshSolver_.pointDisplacement().boundaryFieldRef()[patchi] ==
+            (
+                model_.transformPoints
+                (
+                    bodyMeshes_[bi].bodyID_,
+                    patchPoints0
+                ) - patchPoints0
+            )();
+        }
+    }
+
+    meshSolverPtr_->solve();
+}
+
+
+bool Foam::rigidBodyMeshMotionSolver::writeObject
+(
+    IOstream::streamFormat fmt,
+    IOstream::versionNumber ver,
+    IOstream::compressionType cmp
+) const
+{
+    IOdictionary dict
+    (
+        IOobject
+        (
+            "rigidBodyMotionState",
+            mesh().time().timeName(),
+            "uniform",
+            mesh(),
+            IOobject::NO_READ,
+            IOobject::NO_WRITE,
+            false
+        )
+    );
+
+    model_.state().write(dict);
+    return dict.regIOobject::write();
+}
+
+
+bool Foam::rigidBodyMeshMotionSolver::read()
+{
+    if (motionSolver::read())
+    {
+        model_.read(coeffDict());
+
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+void Foam::rigidBodyMeshMotionSolver::movePoints(const pointField& points)
+{
+    meshSolverPtr_->movePoints(points);
+}
+
+
+void Foam::rigidBodyMeshMotionSolver::updateMesh(const mapPolyMesh& mpm)
+{
+    meshSolverPtr_->updateMesh(mpm);
+}
+
+
+// ************************************************************************* //
diff --git a/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.H b/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.H
new file mode 100644
index 0000000000000000000000000000000000000000..26dfb21899be8b1faa7187db64bda0074f4b3e0f
--- /dev/null
+++ b/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.H
@@ -0,0 +1,184 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::rigidBodyMeshMotionSolver
+
+Description
+    Rigid-body mesh motion solver for fvMesh.
+
+    Applies septernion interpolation of movement as function of distance to the
+    object surface.
+
+SourceFiles
+    rigidBodyMeshMotionSolver.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef rigidBodyMeshMotionSolver_H
+#define rigidBodyMeshMotionSolver_H
+
+#include "displacementMotionSolver.H"
+#include "rigidBodyMotion.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+        Class rigidBodyMeshMotionSolver Declaration
+\*---------------------------------------------------------------------------*/
+
+class rigidBodyMeshMotionSolver
+:
+    public motionSolver
+{
+    //- Class containing the patches and point motion weighting for each body
+    class bodyMesh
+    {
+        //- Name of the body
+        const word name_;
+
+        //- ID of the body in the RBD::rigidBodyMotion
+        const label bodyID_;
+
+        //- List of mesh patches associated with this body
+        const wordReList patches_;
+
+        //- Patches to integrate forces
+        const labelHashSet patchSet_;
+
+
+    public:
+
+        friend class rigidBodyMeshMotionSolver;
+
+        bodyMesh
+        (
+            const polyMesh& mesh,
+            const word& name,
+            const label bodyID,
+            const dictionary& dict
+        );
+    };
+
+
+    // Private data
+
+        //- Rigid-body model
+        RBD::rigidBodyMotion model_;
+
+        //- List of the bodyMeshes containing the patches and point motion
+        //  weighting for each body
+        PtrList<bodyMesh> bodyMeshes_;
+
+        //- Switch for test-mode in which only the
+        //  gravitational body-force is applied
+        Switch test_;
+
+        //- Reference density required by the forces object for
+        //  incompressible calculations, required if rho == rhoInf
+        scalar rhoInf_;
+
+        //- Name of density field, optional unless used for an
+        //  incompressible simulation, when this needs to be specified
+        //  as rhoInf
+        word rhoName_;
+
+        //- Current time index (used for updating)
+        label curTimeIndex_;
+
+        autoPtr<motionSolver> meshSolverPtr_;
+
+        displacementMotionSolver& meshSolver_;
+
+
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        rigidBodyMeshMotionSolver
+        (
+            const rigidBodyMeshMotionSolver&
+        );
+
+        //- Disallow default bitwise assignment
+        void operator=(const rigidBodyMeshMotionSolver&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("rigidBodyMotionSolver");
+
+
+    // Constructors
+
+        //- Construct from polyMesh and IOdictionary
+        rigidBodyMeshMotionSolver
+        (
+            const polyMesh&,
+            const IOdictionary& dict
+        );
+
+
+    //- Destructor
+    ~rigidBodyMeshMotionSolver();
+
+
+    // Member Functions
+
+        //- Return point location obtained from the current motion field
+        virtual tmp<pointField> curPoints() const;
+
+        //- Solve for motion
+        virtual void solve();
+
+        //- Write state using given format, version and compression
+        virtual bool writeObject
+        (
+            IOstream::streamFormat fmt,
+            IOstream::versionNumber ver,
+            IOstream::compressionType cmp
+        ) const;
+
+        //- Read dynamicMeshDict dictionary
+        virtual bool read();
+
+        //- Update local data for geometry changes
+        virtual void movePoints(const pointField&);
+
+        //-  Update local data for topology changes
+        virtual void updateMesh(const mapPolyMesh&);
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/sampling/probes/patchProbes.H b/src/sampling/probes/patchProbes.H
index d2742b2f682dae1e57e225ecf4dbcf9e7059e5b9..f290bd11e02f5333cf9740ed5aaa9bc293d92abe 100644
--- a/src/sampling/probes/patchProbes.H
+++ b/src/sampling/probes/patchProbes.H
@@ -37,7 +37,7 @@ Description
     patchProbes
     {
         type            patchProbes;
-        functionObjectLibs ( "libsampling.so" );
+        libs            ( "libsampling.so" );
 
         // Name of the directory for probe data
         name            patchProbes;
@@ -46,14 +46,11 @@ Description
         patches         (".*inl.*");
 
         // Write at same frequency as fields
-        outputControl   outputTime;
-        outputInterval  1;
+        writeControl    writeTime;
+        writeInterval   1;
 
         // Fields to be probed
-        fields
-        (
-            p U
-        );
+        fields          (p U);
 
         // Locations to probe. These get snapped onto the nearest point
         // on the selected patches
diff --git a/src/sampling/probes/probes.H b/src/sampling/probes/probes.H
index 9f6e898cf638ed0aefe17e05ce2f7cf985fdd293..2f8bb4e13891fc8ce653a24f7a59aac144b5860b 100644
--- a/src/sampling/probes/probes.H
+++ b/src/sampling/probes/probes.H
@@ -37,20 +37,17 @@ Description
     probes
     {
         type            probes;
-        functionObjectLibs ( "libsampling.so" );
+        libs            ("libsampling.so");
 
         // Name of the directory for probe data
         name            probes;
 
         // Write at same frequency as fields
-        outputControl   outputTime;
-        outputInterval  1;
+        writeControl    outputTime;
+        writeInterval   1;
 
         // Fields to be probed
-        fields
-        (
-            p U
-        );
+        fields          (p U);
 
         // Optional: do not recalculate cells if mesh moves
         fixedLocations  false;
diff --git a/src/sampling/sampledSurface/isoSurface/isoSurface.C b/src/sampling/sampledSurface/isoSurface/isoSurface.C
index d168b4513f6f4b318c78b3b17d926f03466396ce..dc93fd1684247ee648ffe8441646232293160b02 100644
--- a/src/sampling/sampledSurface/isoSurface/isoSurface.C
+++ b/src/sampling/sampledSurface/isoSurface/isoSurface.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -1240,7 +1240,7 @@ void Foam::isoSurface::trimToBox
                 dynInterpolatedOldPoints.append(oldPoints);
 
                 triPointRef tri(oldTriPoints, oldPoints);
-                scalarList bary;
+                FixedList<scalar, 3> bary;
                 tri.barycentric(pt, bary);
                 FixedList<scalar, 3> weights;
                 weights[0] = bary[0];
diff --git a/src/thermophysicalModels/chemistryModel/chemistrySolver/chemistrySolver/makeChemistrySolverTypes.H b/src/thermophysicalModels/chemistryModel/chemistrySolver/chemistrySolver/makeChemistrySolverTypes.H
index 526177de586187ad96dccdd6585750af692badfd..e98171d4bf7357c7312e29c18b3ac175552df58e 100644
--- a/src/thermophysicalModels/chemistryModel/chemistrySolver/chemistrySolver/makeChemistrySolverTypes.H
+++ b/src/thermophysicalModels/chemistryModel/chemistrySolver/chemistrySolver/makeChemistrySolverTypes.H
@@ -39,8 +39,8 @@ License
 
 #define makeChemistrySolverType(SS, Comp, Thermo)                              \
                                                                                \
-    typedef SS<chemistryModel<Comp, Thermo> > SS##Comp##Thermo;                \
-    typedef SS<TDACChemistryModel<Comp, Thermo> > TDAC##SS##Comp##Thermo;      \
+    typedef SS<chemistryModel<Comp, Thermo>> SS##Comp##Thermo;                 \
+    typedef SS<TDACChemistryModel<Comp, Thermo>> TDAC##SS##Comp##Thermo;       \
                                                                                \
     defineTemplateTypeNameAndDebugWithName                                     \
     (                                                                          \
diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
index e135ba89127d4c7ae9733e506e84788965bbae73..54ae1eb7da26768a59ff023e88f4e5f9d5efea10 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
@@ -67,7 +67,7 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict, false),
     Qro_("Qro", dict, p.size()),
     solarLoad_(dict.lookupOrDefault<bool>("solarLoad", false))
 {
diff --git a/src/thermophysicalModels/radiation/radiationModels/solarLoad/solarLoad.C b/src/thermophysicalModels/radiation/radiationModels/solarLoad/solarLoad.C
index b6eb14b4a7a2cb7e8ed3fc31b8ecee0c4beebcf1..866865fbcb2ffe263beb1806f05c6388c815141c 100644
--- a/src/thermophysicalModels/radiation/radiationModels/solarLoad/solarLoad.C
+++ b/src/thermophysicalModels/radiation/radiationModels/solarLoad/solarLoad.C
@@ -65,7 +65,7 @@ bool Foam::radiation::solarLoad::updateHitFaces()
                 return false;
                 break;
             }
-            case solarCalculator::mSunDirTraking:
+            case solarCalculator::mSunDirTracking:
             {
                 label updateIndex = label
                 (
diff --git a/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C b/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C
index 905194a91421400c14e8fb08d91173334041359c..caae10e34d3d565472fb74866dff81ffb872c5a5 100644
--- a/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C
+++ b/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C
@@ -41,7 +41,7 @@ namespace Foam
     >::names[] =
     {
         "sunDirConstant",
-        "sunDirTraking"
+        "sunDirTracking"
     };
 
     template<>
@@ -70,7 +70,7 @@ void Foam::solarCalculator::calculateBetaTetha()
     scalar runTime = 0.0;
     switch (sunDirectionModel_)
     {
-        case mSunDirTraking:
+        case mSunDirTracking:
         {
             runTime = mesh_.time().value();
             break;
@@ -165,7 +165,7 @@ void Foam::solarCalculator::init()
 
             break;
         }
-        case mSunDirTraking:
+        case mSunDirTracking:
         {
             if (word(mesh_.ddtScheme("default")) == "steadyState")
             {
@@ -278,7 +278,7 @@ void Foam::solarCalculator::correctSunDirection()
         {
             break;
         }
-        case mSunDirTraking:
+        case mSunDirTracking:
         {
             calculateBetaTetha();
             calculateSunDirection();
diff --git a/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.H b/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.H
index dd83c23f94ff66229925c35dccb5244d35bf03f6..6d3b13c12ba2641ef3d35e17f5a16c8cb0e4a4c8 100644
--- a/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.H
+++ b/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.H
@@ -30,7 +30,7 @@ Description
 
     For the Sun direction:
     1) SunDirConstant : the direction is given in 'sunDirection'
-    2) SunDirTraking : the direction is calculated from the following
+    2) SunDirTracking : the direction is calculated from the following
        parameters:
             localStandardMeridian : GMT (Local Zone Meridian) in hours
             startDay :  day from 1 to 365)
@@ -109,7 +109,7 @@ public:
         enum sunDirModel
         {
             mSunDirConstant,
-            mSunDirTraking
+            mSunDirTracking
         };
 
         //- Direct sun load models
@@ -182,7 +182,7 @@ private:
         //- Up grid orientation
         vector gridUp_;
 
-        //- Interval in decimal hours to update Sun direction for SunDirTraking
+        //- Interval in decimal hours to update Sun direction for SunDirTracking
         scalar sunTrackingUpdateInterval_;
 
         //- Start time for the Sun position (decimal hours)
diff --git a/src/transportModels/twoPhaseProperties/alphaFixedPressure/alphaFixedPressureFvPatchScalarField.C b/src/transportModels/twoPhaseProperties/alphaFixedPressure/alphaFixedPressureFvPatchScalarField.C
index e6e6ea2c10612c0c1a3a82c39c51fd484f9e1535..3eb505dfa1e67ddec8680f9afb2388eb45ccbd21 100644
--- a/src/transportModels/twoPhaseProperties/alphaFixedPressure/alphaFixedPressureFvPatchScalarField.C
+++ b/src/transportModels/twoPhaseProperties/alphaFixedPressure/alphaFixedPressureFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -66,7 +66,7 @@ alphaFixedPressureFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict, false),
     p_("p", dict, p.size())
 {
     if (dict.found("value"))
diff --git a/tutorials/basic/laplacianFoam/flange/Allrun b/tutorials/basic/laplacianFoam/flange/Allrun
index 91c4818b86203a7025ee9eed8092cb6c054dd52c..ac1e880823e320228d9149db460c0daef0e993f5 100755
--- a/tutorials/basic/laplacianFoam/flange/Allrun
+++ b/tutorials/basic/laplacianFoam/flange/Allrun
@@ -20,8 +20,8 @@ runAnsysToFoam()
 
 runAnsysToFoam flange.ans 0.001
 runApplication $application
-runApplication foamToEnsight
-runApplication foamToEnsightParts
+runApplication foamToEnsight -noZero
+runApplication foamToEnsightParts -noZero
 runApplication foamToVTK
 
 #------------------------------------------------------------------------------
diff --git a/tutorials/combustion/XiFoam/ras/Allclean b/tutorials/combustion/XiFoam/RAS/Allclean
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/Allclean
rename to tutorials/combustion/XiFoam/RAS/Allclean
diff --git a/tutorials/combustion/XiFoam/ras/Allrun b/tutorials/combustion/XiFoam/RAS/Allrun
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/Allrun
rename to tutorials/combustion/XiFoam/RAS/Allrun
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/Su b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/Su
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/Su
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/Su
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/T b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/T
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/T
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/T
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/Tu b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/Tu
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/Tu
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/Tu
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/U b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/U
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/U
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/U
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/Xi b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/Xi
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/Xi
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/Xi
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/alphat b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/alphat
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/alphat
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/alphat
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/b b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/b
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/b
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/b
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/epsilon b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/epsilon
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/epsilon
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/epsilon
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/ft b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/ft
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/ft
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/ft
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/fu b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/fu
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/fu
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/fu
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/k b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/k
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/k
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/k
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/nut b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/nut
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/nut
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/nut
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/p b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/p
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/0/p
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/0/p
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/combustionProperties b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/combustionProperties
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/combustionProperties
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/combustionProperties
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/thermophysicalProperties b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/thermophysicalProperties
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/thermophysicalProperties
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/thermophysicalProperties.hydrogen b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/thermophysicalProperties.hydrogen
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/thermophysicalProperties.hydrogen
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/thermophysicalProperties.hydrogen
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/turbulenceProperties b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/turbulenceProperties
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/turbulenceProperties
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/constant/turbulenceProperties
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/system/blockMeshDict b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/system/blockMeshDict
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/system/blockMeshDict
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/system/blockMeshDict
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/system/controlDict b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/system/controlDict
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/system/controlDict
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/system/controlDict
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/system/fvSchemes b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/system/fvSchemes
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/system/fvSchemes
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/system/fvSchemes
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/system/fvSolution b/tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/system/fvSolution
similarity index 100%
rename from tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/system/fvSolution
rename to tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous/system/fvSolution
diff --git a/tutorials/combustion/chemFoam/gri/system/controlDict b/tutorials/combustion/chemFoam/gri/system/controlDict
index cb4c6ab7aa84fd7069823453e1f8e034d0994320..caaf117c7cedf56bd9e3b95b68f0557864e5a722 100644
--- a/tutorials/combustion/chemFoam/gri/system/controlDict
+++ b/tutorials/combustion/chemFoam/gri/system/controlDict
@@ -56,7 +56,7 @@ functions
 {
     sensitivityAnalysis
     {
-        functionObjectLibs  ("libfieldFunctionObjects.so");
+        libs                ("libfieldFunctionObjects.so");
         type                psiReactionsSensitivityAnalysis;
         writeControl        writeTime;
     }
diff --git a/tutorials/combustion/chemFoam/ic8h18_TDAC/chemkin/transportProperties b/tutorials/combustion/chemFoam/ic8h18_TDAC/chemkin/transportProperties
index 6e932ca799beaca89ccf5f9e9f961104e2170037..c54853202cd6df830b492e4205e3456cf6c1a7e9 100644
--- a/tutorials/combustion/chemFoam/ic8h18_TDAC/chemkin/transportProperties
+++ b/tutorials/combustion/chemFoam/ic8h18_TDAC/chemkin/transportProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/chemFoam/ic8h18_TDAC/constant/chemistryProperties b/tutorials/combustion/chemFoam/ic8h18_TDAC/constant/chemistryProperties
index 7b032d90c1a51f36d145e7a41f8ba56ff8556034..943a0a7de93ffb259ff8f8a647c53e4264004c73 100644
--- a/tutorials/combustion/chemFoam/ic8h18_TDAC/constant/chemistryProperties
+++ b/tutorials/combustion/chemFoam/ic8h18_TDAC/constant/chemistryProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/chemFoam/ic8h18_TDAC/constant/initialConditions b/tutorials/combustion/chemFoam/ic8h18_TDAC/constant/initialConditions
index 34ebb058dea2146d18c87b3ac523ab517b8fb74e..76dff0b122fffda12cd154287976ece02417cd5c 100644
--- a/tutorials/combustion/chemFoam/ic8h18_TDAC/constant/initialConditions
+++ b/tutorials/combustion/chemFoam/ic8h18_TDAC/constant/initialConditions
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/chemFoam/ic8h18_TDAC/constant/thermophysicalProperties b/tutorials/combustion/chemFoam/ic8h18_TDAC/constant/thermophysicalProperties
index 90267ad29f80d4d560f2aed28d1b15d908e2f8e5..58207acbee0e230080795d405c67608ac4db4f90 100644
--- a/tutorials/combustion/chemFoam/ic8h18_TDAC/constant/thermophysicalProperties
+++ b/tutorials/combustion/chemFoam/ic8h18_TDAC/constant/thermophysicalProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/chemFoam/ic8h18_TDAC/system/controlDict b/tutorials/combustion/chemFoam/ic8h18_TDAC/system/controlDict
index 7c100daec0e3a42b5adecfe711c2b202d344c0d0..a9b2c7e829b649733fda285402304c58029aec5a 100644
--- a/tutorials/combustion/chemFoam/ic8h18_TDAC/system/controlDict
+++ b/tutorials/combustion/chemFoam/ic8h18_TDAC/system/controlDict
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/chemFoam/ic8h18_TDAC/system/fvSolution b/tutorials/combustion/chemFoam/ic8h18_TDAC/system/fvSolution
index 6b16dd4035184065e7d5c3f4b52f2c3c1fe89d30..bb187637d0eb89edca721bdd86738d6aaf326459 100644
--- a/tutorials/combustion/chemFoam/ic8h18_TDAC/system/fvSolution
+++ b/tutorials/combustion/chemFoam/ic8h18_TDAC/system/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/C3H8 b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/C3H8
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/C3H8
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/C3H8
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/IDefault b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/IDefault
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/IDefault
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/IDefault
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/N2 b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/N2
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/N2
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/N2
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/O2 b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/O2
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/O2
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/O2
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/T b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/T
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/T
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/T
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/U b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/U
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/U
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/U
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/Ydefault b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/Ydefault
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/Ydefault
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/Ydefault
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/alphat b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/alphat
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/alphat
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/alphat
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/filmRegion/Tf b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/filmRegion/Tf
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/filmRegion/Tf
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/filmRegion/Tf
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/filmRegion/Uf b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/filmRegion/Uf
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/filmRegion/Uf
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/filmRegion/Uf
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/filmRegion/deltaf b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/filmRegion/deltaf
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/filmRegion/deltaf
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/filmRegion/deltaf
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/k b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/k
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/k
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/k
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/nut b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/nut
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/nut
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/nut
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/p b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/p
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/p
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/p
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/p_rgh b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/p_rgh
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/p_rgh
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/p_rgh
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/ph_rgh.orig b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/ph_rgh.orig
similarity index 95%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/ph_rgh.orig
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/ph_rgh.orig
index c8d764aa048b519a24b86fbf7596fe70557ed87c..833aae7d10a2a0d30d9fb158df59a97247e6e009 100644
--- a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/ph_rgh.orig
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/ph_rgh.orig
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Qr b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Qr
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Qr
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Qr
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/T b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/T
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/T
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/T
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Y0Default b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Y0Default
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Y0Default
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/Y0Default
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/char b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/char
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/char
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/char
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/p b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/p
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/p
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/p
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/wood b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/wood
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/wood
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/0/pyrolysisRegion/wood
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/Allclean b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/Allclean
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/Allclean
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/Allclean
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/Allrun b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/Allrun
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/Allrun
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/Allrun
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/additionalControls b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/additionalControls
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/additionalControls
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/additionalControls
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/turbulenceProperties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/boundaryRadiationProperties
similarity index 77%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/turbulenceProperties
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/boundaryRadiationProperties
index 5eec04267266e7fd15e7701a875d683d5e658cd9..530a06e550c99083db8f35706eb94e8287c4562d 100644
--- a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/turbulenceProperties
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/boundaryRadiationProperties
@@ -11,11 +11,23 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      turbulenceProperties;
+    object      boundaryRadiationProperties;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-simulationType  laminar;
+
+region0_to_pyrolysisRegion_coupledWall
+{
+    mode            solidRadiation;
+}
+
+".*"
+{
+    mode            lookup;
+    emissivity      1.0;
+    absorptivity    1.0;
+    transmissivity  0.0;
+}
 
 
 // ************************************************************************* //
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/combustionProperties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/combustionProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/combustionProperties
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/combustionProperties
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/g b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/g
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/g
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/g
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/pRef b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pRef
similarity index 93%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/pRef
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pRef
index 2f1d6789fe47433b943d0d92780d649736a21516..ff8869e9e49da67abfd23ffb5d2af97979961833 100644
--- a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/pRef
+++ b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pRef
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/chemistryProperties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/chemistryProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/chemistryProperties
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/chemistryProperties
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/radiationProperties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/radiationProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/radiationProperties
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/radiationProperties
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/reactions b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/reactions
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/reactions
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/reactions
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermo.solid b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermo.solid
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermo.solid
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermo.solid
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermophysicalProperties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermophysicalProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermophysicalProperties
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisRegion/thermophysicalProperties
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pyrolysisZones b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisZones
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pyrolysisZones
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/pyrolysisZones
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/radiationProperties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/radiationProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/radiationProperties
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/radiationProperties
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/reactingCloud1Positions b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/reactingCloud1Positions
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/reactingCloud1Positions
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/reactingCloud1Positions
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/reactingCloud1Properties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/reactingCloud1Properties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/reactingCloud1Properties
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/reactingCloud1Properties
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/reactions b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/reactions
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/reactions
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/reactions
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/surfaceFilmProperties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/surfaceFilmProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/surfaceFilmProperties
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/surfaceFilmProperties
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/thermo.compressibleGas b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermo.compressibleGas
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/thermo.compressibleGas
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermo.compressibleGas
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/thermophysicalProperties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/thermophysicalProperties
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/thermophysicalProperties
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/turbulenceProperties b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/turbulenceProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/turbulenceProperties
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/constant/turbulenceProperties
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/blockMeshDict b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/blockMeshDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/blockMeshDict
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/blockMeshDict
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/controlDict b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/controlDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/controlDict
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/controlDict
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/createPatchDict b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/createPatchDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/createPatchDict
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/createPatchDict
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/extrudeToRegionMeshDictFilm b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/extrudeToRegionMeshDictFilm
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/extrudeToRegionMeshDictFilm
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/extrudeToRegionMeshDictFilm
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/extrudeToRegionMeshDictPyr b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/extrudeToRegionMeshDictPyr
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/extrudeToRegionMeshDictPyr
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/extrudeToRegionMeshDictPyr
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/filmRegion/changeDictionaryDict b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/filmRegion/changeDictionaryDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/filmRegion/changeDictionaryDict
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/filmRegion/changeDictionaryDict
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/filmRegion/createPatchDict b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/filmRegion/createPatchDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/filmRegion/createPatchDict
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/filmRegion/createPatchDict
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/filmRegion/fvSchemes b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/filmRegion/fvSchemes
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/filmRegion/fvSchemes
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/filmRegion/fvSchemes
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/filmRegion/fvSolution b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/filmRegion/fvSolution
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/filmRegion/fvSolution
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/filmRegion/fvSolution
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/filmRegion/topoSetDict b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/filmRegion/topoSetDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/filmRegion/topoSetDict
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/filmRegion/topoSetDict
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/fvSchemes b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/fvSchemes
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/fvSchemes
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/fvSchemes
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/fvSolution b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/fvSolution
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/fvSolution
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/fvSolution
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/pyrolysisRegion/fvSchemes b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/pyrolysisRegion/fvSchemes
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/pyrolysisRegion/fvSchemes
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/pyrolysisRegion/fvSchemes
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/pyrolysisRegion/fvSolution b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/pyrolysisRegion/fvSolution
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/pyrolysisRegion/fvSolution
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/pyrolysisRegion/fvSolution
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/topoSetDict b/tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/topoSetDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/system/topoSetDict
rename to tutorials/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel/system/topoSetDict
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/C3H8 b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/C3H8
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/C3H8
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/C3H8
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/G b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/G
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/G
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/G
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/IDefault b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/IDefault
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/IDefault
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/IDefault
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/N2 b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/N2
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/N2
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/N2
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/O2 b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/O2
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/O2
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/O2
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/T b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/T
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/T
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/T
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/U b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/U
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/U
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/U
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/Ydefault b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/Ydefault
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/Ydefault
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/Ydefault
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/alphat b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/alphat
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/alphat
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/alphat
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/k b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/k
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/k
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/k
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/nut b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/nut
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/nut
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/nut
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/p b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/p
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/p
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/p
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/p_rgh b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/p_rgh
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/p_rgh
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/p_rgh
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/panelRegion/Qr b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/Qr
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/panelRegion/Qr
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/Qr
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/panelRegion/T b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/T
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/panelRegion/T
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/T
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/panelRegion/Y0Default b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/Y0Default
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/panelRegion/Y0Default
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/Y0Default
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/panelRegion/char b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/char
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/panelRegion/char
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/char
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/panelRegion/p b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/p
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/panelRegion/p
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/p
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/panelRegion/wood b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/wood
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/panelRegion/wood
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/panelRegion/wood
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/ph_rgh.orig b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/ph_rgh.orig
similarity index 95%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/ph_rgh.orig
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/ph_rgh.orig
index bf41c4365a54e9e3e40011702762c16b8d1e4080..64fa134b335524d88ee7f32d741f0bcb37385306 100644
--- a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/0/ph_rgh.orig
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/0/ph_rgh.orig
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/Allclean b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/Allclean
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/Allclean
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/Allclean
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/Allrun b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/Allrun
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/Allrun
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/Allrun
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/additionalControls b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/additionalControls
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/additionalControls
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/additionalControls
diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/boundaryRadiationProperties b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/boundaryRadiationProperties
new file mode 100644
index 0000000000000000000000000000000000000000..d3a530f353e0341610772036fba934c0cd356ecc
--- /dev/null
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/boundaryRadiationProperties
@@ -0,0 +1,33 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      boundaryRadiationProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+".*"
+{
+    type            boundaryRadiation;
+    mode            lookup;
+    emissivity      1.0;
+}
+
+"(region0_to.*)"
+{
+    type            boundaryRadiation;
+    mode            solidRadiation;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/combustionProperties b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/combustionProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/combustionProperties
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/combustionProperties
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/g b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/g
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/g
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/g
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/hRef b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/hRef
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/hRef
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/hRef
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/pRef b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pRef
similarity index 93%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/pRef
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pRef
index 2f1d6789fe47433b943d0d92780d649736a21516..ff8869e9e49da67abfd23ffb5d2af97979961833 100644
--- a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/pRef
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pRef
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/chemistryProperties b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/chemistryProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/chemistryProperties
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/chemistryProperties
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/radiationProperties b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/radiationProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/radiationProperties
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/radiationProperties
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/reactions b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/reactions
similarity index 99%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/reactions
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/reactions
index ee8b4281db6af696cb6a843ba795ab83e3011042..7fc5f0719be60dc5ff7dc6805178ee1d9f82004c 100644
--- a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/reactions
+++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/reactions
@@ -20,4 +20,3 @@ reactions
         Tcrit       400;
     }
 }
-
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/thermo.solid b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/thermo.solid
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/thermo.solid
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/thermo.solid
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/thermophysicalProperties b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/thermophysicalProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/panelRegion/thermophysicalProperties
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/panelRegion/thermophysicalProperties
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/pyrolysisZones b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pyrolysisZones
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/pyrolysisZones
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/pyrolysisZones
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/radiationProperties b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/radiationProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/radiationProperties
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/radiationProperties
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/reactingCloud1Properties b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/reactingCloud1Properties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/reactingCloud1Properties
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/reactingCloud1Properties
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/reactions b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/reactions
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/reactions
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/reactions
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/surfaceFilmProperties b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/surfaceFilmProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/surfaceFilmProperties
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/surfaceFilmProperties
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/thermo.compressibleGas b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/thermo.compressibleGas
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/thermo.compressibleGas
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/thermo.compressibleGas
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/thermophysicalProperties b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/thermophysicalProperties
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/thermophysicalProperties
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/turbulenceProperties b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/turbulenceProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/constant/turbulenceProperties
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/constant/turbulenceProperties
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/blockMeshDict b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/blockMeshDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/blockMeshDict
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/blockMeshDict
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/cRefine.topoSetDict b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/cRefine.topoSetDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/cRefine.topoSetDict
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/cRefine.topoSetDict
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/controlDict b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/controlDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/controlDict
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/controlDict
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/createPatchDict b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/createPatchDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/createPatchDict
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/createPatchDict
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/decomposeParDict b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/decomposeParDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/decomposeParDict
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/decomposeParDict
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/extrudeToRegionMeshDict b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/extrudeToRegionMeshDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/extrudeToRegionMeshDict
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/extrudeToRegionMeshDict
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/f.topoSetDict b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/f.topoSetDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/f.topoSetDict
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/f.topoSetDict
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/fBurner.topoSetDict b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/fBurner.topoSetDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/fBurner.topoSetDict
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/fBurner.topoSetDict
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/fvSchemes b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/fvSchemes
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/fvSchemes
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/fvSchemes
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/fvSolution b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/fvSolution
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/fvSolution
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/fvSolution
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/panelRegion/decomposeParDict b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/panelRegion/decomposeParDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/panelRegion/decomposeParDict
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/panelRegion/decomposeParDict
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/panelRegion/fvSchemes b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/panelRegion/fvSchemes
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/panelRegion/fvSchemes
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/panelRegion/fvSchemes
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/panelRegion/fvSolution b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/panelRegion/fvSolution
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/panelRegion/fvSolution
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/panelRegion/fvSolution
diff --git a/tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/refineMeshDict b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/refineMeshDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/oppositeBurningPanels/system/refineMeshDict
rename to tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/refineMeshDict
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/CH4 b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/CH4
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/CH4
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/CH4
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/omega b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/FSDomega
similarity index 98%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/omega
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/FSDomega
index 97d2141656152a47375c966d7a872b3c024d8bc2..134d83dbeb0d66b1c1d480607638be6d7633e8f5 100644
--- a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/omega
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/FSDomega
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       volScalarField;
     location    "0";
-    object      omega;
+    object      FSDomega;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/G b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/G
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/G
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/G
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/IDefault b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/IDefault
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/IDefault
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/IDefault
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/N2 b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/N2
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/N2
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/N2
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/O2 b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/O2
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/O2
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/O2
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/T b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/T
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/T
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/T
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/U b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/U
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/U
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/U
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/Ydefault b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/Ydefault
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/Ydefault
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/Ydefault
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/alphat b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/alphat
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/alphat
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/alphat
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/k b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/k
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/k
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/k
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/nut b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/nut
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/nut
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/nut
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/p b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/p
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/p
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/p
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/p_rgh b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/p_rgh
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/p_rgh
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/p_rgh
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/ph_rgh.orig b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/ph_rgh.orig
similarity index 95%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/ph_rgh.orig
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/ph_rgh.orig
index e2fcf692f233fad17f8c074e65973be92a27927f..e984cf2b4c7f6a8bd94a5fdbabb7084f3c7a7e0e 100644
--- a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/ph_rgh.orig
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/ph_rgh.orig
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/soot b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/soot
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/0/soot
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/0/soot
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/Allclean b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/Allclean
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/Allclean
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/Allclean
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/Allrun b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/Allrun
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/Allrun
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/Allrun
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/additionalControls b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/additionalControls
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/additionalControls
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/additionalControls
diff --git a/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/boundaryRadiationProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/boundaryRadiationProperties
new file mode 100644
index 0000000000000000000000000000000000000000..a4660c95b70402f810a2ebad1e99cfb9d19c2a21
--- /dev/null
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/boundaryRadiationProperties
@@ -0,0 +1,43 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  plus                                  |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      boundaryRadiationProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+base
+{
+    mode            lookup;
+    emissivity      1.0;
+}
+
+outlet
+{
+    mode            lookup;
+    emissivity      1.0;
+}
+
+sides
+{
+    mode            lookup;
+    emissivity      1.0;
+}
+
+inlet
+{
+    mode            lookup;
+    emissivity      1.0;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/combustionProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/combustionProperties
similarity index 98%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/combustionProperties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/combustionProperties
index e6fb9e4e20df5e7d76841b0d06a54b9038cb743e..52286f20236ea202e3af1ca4fbaf5e985267b333 100644
--- a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/combustionProperties
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/combustionProperties
@@ -54,6 +54,8 @@ FSDCoeffs
 
     fuel                Methane;
 
+    semiImplicit        no;
+
     relaxationCoeffs
     {
         C                     2.0;
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/g b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/g
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/g
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/g
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/hRef b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/hRef
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/hRef
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/hRef
diff --git a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pRef b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pRef
similarity index 93%
rename from tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pRef
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pRef
index 2f1d6789fe47433b943d0d92780d649736a21516..ff8869e9e49da67abfd23ffb5d2af97979961833 100644
--- a/tutorials/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel/constant/pRef
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pRef
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/pyrolysisZones b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pyrolysisZones
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/pyrolysisZones
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/pyrolysisZones
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/radiationProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/radiationProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/radiationProperties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/radiationProperties
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/reactingCloud1Properties b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/reactingCloud1Properties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/reactingCloud1Properties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/reactingCloud1Properties
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/reactions b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/reactions
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/reactions
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/reactions
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/surfaceFilmProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/surfaceFilmProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/surfaceFilmProperties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/surfaceFilmProperties
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/thermo.compressibleGas b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/thermo.compressibleGas
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/thermo.compressibleGas
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/thermo.compressibleGas
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/thermophysicalProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/thermophysicalProperties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/thermophysicalProperties
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/turbulenceProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/turbulenceProperties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/constant/turbulenceProperties
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/system/blockMeshDict b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/blockMeshDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/system/blockMeshDict
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/blockMeshDict
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/system/controlDict b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/controlDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/system/controlDict
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/controlDict
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/system/createPatchDict b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/createPatchDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/system/createPatchDict
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/createPatchDict
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/system/fvSchemes b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/fvSchemes
similarity index 93%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/system/fvSchemes
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/fvSchemes
index d3d1653c10a60a12f2c2f18c40c5b8b0fa9f230f..584324c8b82f1270c87e5fcd8e8317f021094fc1 100644
--- a/tutorials/combustion/fireFoam/les/smallPoolFire2D/system/fvSchemes
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/fvSchemes
@@ -30,8 +30,10 @@ divSchemes
     default         none;
 
     div(phi,U)      Gauss LUST grad(U);
-    div(phi,K)      Gauss limitedLinear 1;
+    div(U)          Gauss linear;
+    div(phi,K)      Gauss linear;
     div(phi,k)      Gauss limitedLinear 1;
+    div(phi,FSDomega) Gauss limitedLinear 1;
     div(phi,Yi_h)   Gauss multivariateSelection
     {
         O2              limitedLinear01 1;
@@ -39,12 +41,9 @@ divSchemes
         N2              limitedLinear01 1;
         H2O             limitedLinear01 1;
         CO2             limitedLinear01 1;
-        CO              limitedLinear01 1;
         h               limitedLinear 1;
     };
     div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
-    div(phi,omega)  Gauss upwind;
-    div(U)          Gauss linear;
     div(Ji,Ii_h)    Gauss upwind;
 }
 
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/system/fvSolution b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/fvSolution
similarity index 97%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/system/fvSolution
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/fvSolution
index 20aebce4cded202ca4a968344c3c61c041d989b7..4ca222298232199ad999579c978ded72e19f4b56 100644
--- a/tutorials/combustion/fireFoam/les/smallPoolFire2D/system/fvSolution
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/fvSolution
@@ -54,7 +54,7 @@ solvers
     }
 
 
-    "(U|Yi|k|h|omega)"
+    "(U|Yi|k|h|FSDomega)"
     {
         solver          PBiCGStab;
         preconditioner  DILU;
@@ -63,7 +63,7 @@ solvers
         nSweeps         1;
     };
 
-    "(U|Yi|k|h|omega)Final"
+    "(U|Yi|k|h|FSDomega)Final"
     {
         $U;
         tolerance       1e-6;
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/system/topoSetDict b/tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/topoSetDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/system/topoSetDict
rename to tutorials/combustion/fireFoam/LES/smallPoolFire2D/system/topoSetDict
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/CH4 b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/CH4
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/CH4
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/CH4
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/G b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/G
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/G
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/G
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/IDefault b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/IDefault
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/IDefault
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/IDefault
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/N2 b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/N2
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/N2
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/N2
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/O2 b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/O2
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/O2
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/O2
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/T b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/T
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/T
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/T
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/U b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/U
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/U
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/U
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/Ydefault b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/Ydefault
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/Ydefault
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/Ydefault
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/alphat b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/alphat
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/alphat
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/alphat
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/k b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/k
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/k
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/k
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/nut b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/nut
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/nut
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/nut
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/p b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/p
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/p
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/p
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/p_rgh b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/p_rgh
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/p_rgh
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/p_rgh
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/ph_rgh.orig b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/ph_rgh.orig
similarity index 95%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/0/ph_rgh.orig
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/ph_rgh.orig
index 3a5ed69ec5fbfab4fa3e1f51d982ef70866eb05d..988375bfe996c2bc06338dac4858da4399150b2a 100644
--- a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/ph_rgh.orig
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/0/ph_rgh.orig
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/Allclean b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/Allclean
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/Allclean
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/Allclean
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/Allrun b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/Allrun
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/Allrun
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/Allrun
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/additionalControls b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/additionalControls
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/additionalControls
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/additionalControls
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/turbulenceProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/boundaryRadiationProperties
similarity index 86%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/turbulenceProperties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/boundaryRadiationProperties
index 5eec04267266e7fd15e7701a875d683d5e658cd9..474446378fd7065c3d27ca0ce45bdf67c118ad36 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/turbulenceProperties
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/boundaryRadiationProperties
@@ -11,11 +11,16 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      turbulenceProperties;
+    object      boundaryRadiationProperties;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-simulationType  laminar;
+".*"
+{
+    mode            lookup;
+    emissivity      1.0;
+    absorptivity    0.0;
+}
 
 
 // ************************************************************************* //
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/chemistryProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/chemistryProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/chemistryProperties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/chemistryProperties
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/combustionProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/combustionProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/combustionProperties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/combustionProperties
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/g b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/g
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/g
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/g
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/hRef b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/hRef
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/hRef
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/hRef
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/pRef b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pRef
similarity index 93%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/pRef
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pRef
index 2f1d6789fe47433b943d0d92780d649736a21516..ff8869e9e49da67abfd23ffb5d2af97979961833 100644
--- a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/pRef
+++ b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pRef
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/pyrolysisZones b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pyrolysisZones
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/pyrolysisZones
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/pyrolysisZones
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/radiationProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/radiationProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/radiationProperties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/radiationProperties
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/reactingCloud1Properties b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/reactingCloud1Properties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/reactingCloud1Properties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/reactingCloud1Properties
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/reactions b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/reactions
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/reactions
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/reactions
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/surfaceFilmProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/surfaceFilmProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/surfaceFilmProperties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/surfaceFilmProperties
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/thermo.compressibleGas b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/thermo.compressibleGas
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/thermo.compressibleGas
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/thermo.compressibleGas
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/thermophysicalProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/thermophysicalProperties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/thermophysicalProperties
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/turbulenceProperties b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/constant/turbulenceProperties
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/constant/turbulenceProperties
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/system/blockMeshDict b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/blockMeshDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/system/blockMeshDict
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/blockMeshDict
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/system/controlDict b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/controlDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/system/controlDict
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/controlDict
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/system/createPatchDict b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/createPatchDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/system/createPatchDict
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/createPatchDict
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/system/decomposeParDict b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/decomposeParDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/system/decomposeParDict
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/decomposeParDict
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/system/fvSchemes b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/fvSchemes
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/system/fvSchemes
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/fvSchemes
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/system/fvSolution b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/fvSolution
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/system/fvSolution
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/fvSolution
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/system/topoSetDict b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/topoSetDict
similarity index 100%
rename from tutorials/combustion/fireFoam/les/smallPoolFire3D/system/topoSetDict
rename to tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/topoSetDict
diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/T b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/T
index d06404e17fd1b56355b0b7354d8ee0784c8675f9..86c1260be083230c14b4050f88ffb8f3a6fc90d6 100644
--- a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/T
+++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/T
@@ -36,8 +36,8 @@ boundaryField
 
 
         type                fixedIncidentRadiation;
-        kappa               solidThermo;
-        kappaName           none;
+        kappaMethod         solidThermo;
+        kappa               none;
         QrIncident          uniform 60000.0;   //W
         value               uniform 298.15;
     }
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/CH4 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/CH4
index 15dd5eddf1636eec4cbfa1925991bfcb2ad39311..61f76d6a2a8daa3736f322ab111b3d28eaccf64d 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/CH4
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/CH4
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/CO2 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/CO2
index 2fef379ec761a9a98aec2cce70b70f25f08d8d68..12efa11dc690c8291faeec4b42088983f6d9387f 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/CO2
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/CO2
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/H2O b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/H2O
index ca2273563064fa528f36a9e642e4fe90a1126376..8e065f3e2cec11ae2b8737e6e610dec7c2b63e68 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/H2O
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/H2O
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/N2 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/N2
index f1b3314273db256625bad38c50358dc109013532..7947ecd71c2476df6d30dfbf4b68d4821c95ec48 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/N2
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/N2
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/O2 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/O2
index 95649fdac4d49cfb0bf4c106761a3d7835c25504..b29ae9dffbc5bb2e32e1880ffba2a1e0f8abb0f7 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/O2
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/O2
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/T b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/T
index 8825b9971cb34f196f66cbb3760dec9c45a32cce..31d0ed3bf12dbf1786420a832ced70f57d15c9cd 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/T
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/T
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/U b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/U
index c235ba3d6599d2ee0addf202f46971a86b27b928..ca32ebfb981dc921b5c0c7424b95e793f8209386 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/U
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/U
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/Ydefault b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/Ydefault
index 96004af717f654335a5de7623b30a6415b42542b..cf322de72d562d513e75ffa8c6d10ce1790fbbee 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/Ydefault
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/Ydefault
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/alphat b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/alphat
index c74018bbdb33b027d8c9098fc95a61eae2024749..3244699b19d9e39007e78216bc4d8b7ebcca5b3e 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/alphat
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/alphat
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/p b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/p
index d3bca9b21e593adc7bfc355153d035ce24783825..f6f689df0a93c3dfc51feabc588fd2898d6712c0 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/p
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/0/p
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/chemistryProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/chemistryProperties
index 6cadb7e70ad666b8feff2af7867dfcbcd8871af9..d60be0eea4654eb290787f2d990e92be763e4bae 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/chemistryProperties
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/chemistryProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/combustionProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/combustionProperties
index d5c12209c1dac6c3e38c74191d14bc79977d6b3b..9b50afab09627f5999855c7f05828a9661a5357e 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/combustionProperties
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/combustionProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermo.compressibleGas b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermo.compressibleGas
index 33208fc6c041f4e73a02a1042d79f93e5f3a2177..b60fcfc6a62b4e67944e33bfce95f9d4af5e72a7 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermo.compressibleGas
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermo.compressibleGas
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  3.0.x                                 |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermophysicalProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermophysicalProperties
index 98c192c7cf0a61ecf410870a2320eec1b166e663..e1b9d2481310030578cf8b9776333af0c32d9685 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermophysicalProperties
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/constant/thermophysicalProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/blockMeshDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/blockMeshDict
index 3683ab33882557a8a1dda26ddb4ca3213da69c25..df1f24f54c3e68da3135cb263a945bd2c3eed128 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/blockMeshDict
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/blockMeshDict
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/controlDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/controlDict
index a87c823f8f83a6291d5d464b166aedfc46ace9bf..12aa45d177065362226e31f8670fb322b08099d6 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/controlDict
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/controlDict
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/fvSchemes b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/fvSchemes
index 9208e7ca8f4158aeeaf1dfdd907b6a0397457fa0..ece96fde64e3e48e0bbfd568b15bd88ae8adc67f 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/fvSchemes
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/fvSchemes
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/fvSolution b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/fvSolution
index 7ff37c8434d5caf54eb170a11543f915a259db9a..bd938b85db1d0cd293e32b319bf709ebcfecca3d 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/fvSolution
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/CH4 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/CH4
index 15dd5eddf1636eec4cbfa1925991bfcb2ad39311..61f76d6a2a8daa3736f322ab111b3d28eaccf64d 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/CH4
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/CH4
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/CO2 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/CO2
index 2fef379ec761a9a98aec2cce70b70f25f08d8d68..12efa11dc690c8291faeec4b42088983f6d9387f 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/CO2
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/CO2
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/H2O b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/H2O
index ca2273563064fa528f36a9e642e4fe90a1126376..8e065f3e2cec11ae2b8737e6e610dec7c2b63e68 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/H2O
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/H2O
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/N2 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/N2
index c0af2935811856c682ebcabd441d4c5271765312..34b42690c415542fc3b634253713fc34aa468546 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/N2
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/N2
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/O2 b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/O2
index 95649fdac4d49cfb0bf4c106761a3d7835c25504..b29ae9dffbc5bb2e32e1880ffba2a1e0f8abb0f7 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/O2
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/O2
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/T b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/T
index 8825b9971cb34f196f66cbb3760dec9c45a32cce..31d0ed3bf12dbf1786420a832ced70f57d15c9cd 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/T
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/T
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/U b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/U
index c235ba3d6599d2ee0addf202f46971a86b27b928..ca32ebfb981dc921b5c0c7424b95e793f8209386 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/U
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/U
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/Ydefault b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/Ydefault
index 96004af717f654335a5de7623b30a6415b42542b..cf322de72d562d513e75ffa8c6d10ce1790fbbee 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/Ydefault
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/Ydefault
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/alphat b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/alphat
index c74018bbdb33b027d8c9098fc95a61eae2024749..3244699b19d9e39007e78216bc4d8b7ebcca5b3e 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/alphat
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/alphat
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/p b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/p
index d3bca9b21e593adc7bfc355153d035ce24783825..f6f689df0a93c3dfc51feabc588fd2898d6712c0 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/p
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/0/p
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties
index 6a2a326f127db93ce4172ffbcc2b2d32c0937877..cb60fbf59d43024bbba7f263071ebadff7a50f4c 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties.new b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties.new
index e7efd6ee16af6b795dee7500431ff2af0f5ee0fb..514fa711adcaf52a59adee9824a3fa622e8027a0 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties.new
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/chemistryProperties.new
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/combustionProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/combustionProperties
index d5c12209c1dac6c3e38c74191d14bc79977d6b3b..9b50afab09627f5999855c7f05828a9661a5357e 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/combustionProperties
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/combustionProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermo.compressibleGas b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermo.compressibleGas
index 33208fc6c041f4e73a02a1042d79f93e5f3a2177..b60fcfc6a62b4e67944e33bfce95f9d4af5e72a7 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermo.compressibleGas
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermo.compressibleGas
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  3.0.x                                 |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermophysicalProperties b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermophysicalProperties
index 98c192c7cf0a61ecf410870a2320eec1b166e663..e1b9d2481310030578cf8b9776333af0c32d9685 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermophysicalProperties
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/constant/thermophysicalProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/blockMeshDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/blockMeshDict
index 3683ab33882557a8a1dda26ddb4ca3213da69c25..df1f24f54c3e68da3135cb263a945bd2c3eed128 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/blockMeshDict
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/blockMeshDict
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/controlDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/controlDict
index a87c823f8f83a6291d5d464b166aedfc46ace9bf..12aa45d177065362226e31f8670fb322b08099d6 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/controlDict
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/controlDict
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/decomposeParDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/decomposeParDict
index 43667b412c462133ba225b6705ec589fa9904dd8..4401dc3a336dbc63700b86379ed526bab6abb451 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/decomposeParDict
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/decomposeParDict
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/fvSchemes b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/fvSchemes
index 9208e7ca8f4158aeeaf1dfdd907b6a0397457fa0..ece96fde64e3e48e0bbfd568b15bd88ae8adc67f 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/fvSchemes
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/fvSchemes
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/fvSolution b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/fvSolution
index 7ff37c8434d5caf54eb170a11543f915a259db9a..bd938b85db1d0cd293e32b319bf709ebcfecca3d 100644
--- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/fvSolution
+++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/T b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/T
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/T
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/T
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/U b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/U
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/U
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/U
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/alphat b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/alphat
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/alphat
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/alphat
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/k b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/k
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/k
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/k
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/muTilda b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/muTilda
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/muTilda
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/muTilda
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/nut b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/nut
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/nut
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/nut
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/p b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/p
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/0/p
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/0/p
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/thermophysicalProperties
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/constant/thermophysicalProperties
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/turbulenceProperties b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/constant/turbulenceProperties
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/constant/turbulenceProperties
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/constant/turbulenceProperties
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/system/blockMeshDict b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/blockMeshDict
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/system/blockMeshDict
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/blockMeshDict
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/system/controlDict b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/controlDict
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/system/controlDict
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/controlDict
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/system/fvSchemes b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/fvSchemes
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/system/fvSchemes
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/fvSchemes
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/fvSolution
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/les/pitzDaily/system/fvSolution
rename to tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/fvSolution
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/T b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/T
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/T
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/T
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/U b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/U
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/U
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/U
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/alphat b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/alphat
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/alphat
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/alphat
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/epsilon b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/epsilon
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/epsilon
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/epsilon
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/k b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/k
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/k
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/k
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/nut b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/nut
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/nut
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/nut
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/p b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/p
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/0/p
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/0/p
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/Allrun b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/Allrun
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/Allrun
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/Allrun
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/fvOptions b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/fvOptions
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/fvOptions
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/fvOptions
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/thermophysicalProperties
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/thermophysicalProperties
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/turbulenceProperties b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/turbulenceProperties
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/constant/turbulenceProperties
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/constant/turbulenceProperties
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/system/blockMeshDict.m4 b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/blockMeshDict.m4
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/system/blockMeshDict.m4
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/blockMeshDict.m4
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/system/controlDict b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/controlDict
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/system/controlDict
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/controlDict
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/system/fvSchemes b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/fvSchemes
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/system/fvSchemes
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/fvSchemes
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/fvSolution
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuct/system/fvSolution
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuct/system/fvSolution
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/T b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/T
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/T
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/T
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/U b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/U
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/U
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/U
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/alphat b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/alphat
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/alphat
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/alphat
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/epsilon b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/epsilon
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/epsilon
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/epsilon
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/k b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/k
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/k
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/k
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/nut b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/nut
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/nut
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/nut
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/p b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/p
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/0/p
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/0/p
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/Allrun b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/Allrun
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/Allrun
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/Allrun
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/constant/fvOptions b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/fvOptions
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/constant/fvOptions
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/fvOptions
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/constant/thermophysicalProperties
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/thermophysicalProperties
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/constant/turbulenceProperties b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/turbulenceProperties
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/constant/turbulenceProperties
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/constant/turbulenceProperties
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/system/blockMeshDict.m4 b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/system/blockMeshDict.m4
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/system/blockMeshDict.m4
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/system/blockMeshDict.m4
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/system/controlDict b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/system/controlDict
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/system/controlDict
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/system/controlDict
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/system/fvSchemes b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/system/fvSchemes
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/system/fvSchemes
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/system/fvSchemes
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/system/fvSolution
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS/system/fvSolution
rename to tutorials/compressible/rhoPimpleFoam/RAS/angledDuctLTS/system/fvSolution
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/0/T b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/T
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/0/T
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/T
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/0/U b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/U
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/0/U
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/U
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/0/alphat b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/alphat
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/0/alphat
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/alphat
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/0/epsilon b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/epsilon
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/0/epsilon
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/epsilon
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/0/k b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/k
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/0/k
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/k
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/0/nut b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/nut
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/0/nut
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/nut
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/0/omega b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/omega
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/0/omega
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/omega
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/0/p b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/p
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/0/p
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/0/p
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/constant/thermophysicalProperties
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/constant/thermophysicalProperties
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/constant/turbulenceProperties b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/constant/turbulenceProperties
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/constant/turbulenceProperties
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/constant/turbulenceProperties
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/system/blockMeshDict b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/blockMeshDict
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/system/blockMeshDict
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/blockMeshDict
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/system/controlDict b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/controlDict
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/system/controlDict
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/controlDict
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/system/fvSchemes b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/fvSchemes
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/system/fvSchemes
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/fvSchemes
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/fvSolution
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/cavity/system/fvSolution
rename to tutorials/compressible/rhoPimpleFoam/RAS/cavity/system/fvSolution
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/T b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/T
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/T
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/T
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/U b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/U
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/U
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/U
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/alphat b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/alphat
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/alphat
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/alphat
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/epsilon b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/epsilon
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/epsilon
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/epsilon
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/k b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/k
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/k
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/k
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/nut b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/nut
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/nut
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/nut
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/p b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/p
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/0/p
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/0/p
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/Allrun b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/Allrun
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/Allrun
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/Allrun
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/MRFProperties b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/MRFProperties
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/MRFProperties
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/MRFProperties
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/fvOptions b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/fvOptions
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/fvOptions
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/fvOptions
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/thermophysicalProperties
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/thermophysicalProperties
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/transportProperties b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/transportProperties
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/transportProperties
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/transportProperties
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/turbulenceProperties b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/constant/turbulenceProperties
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/constant/turbulenceProperties
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/makeMesh b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/makeMesh
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/makeMesh
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/makeMesh
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/blockMeshDict.m4 b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/blockMeshDict.m4
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/blockMeshDict.m4
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/blockMeshDict.m4
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/controlDict b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/controlDict
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/controlDict
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/controlDict
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/fvSchemes b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/fvSchemes
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/fvSchemes
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/fvSchemes
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/fvSolution
similarity index 100%
rename from tutorials/compressible/rhoPimpleFoam/ras/mixerVessel2D/system/fvSolution
rename to tutorials/compressible/rhoPimpleFoam/RAS/mixerVessel2D/system/fvSolution
diff --git a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/0/T b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/0/T
index 08c022f92f38c2ee8c8ecafd7f22b7742d387bdc..6a8286ff87b43db4dfbfa593c23f7609de3d32b4 100644
--- a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/0/T
+++ b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/0/T
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/0/U b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/0/U
index 37b1c45ea10966b672d05bb9766e0add319ef2e7..81c690b7ce5f0dd0e4206e2d7222f845c27f1b07 100644
--- a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/0/U
+++ b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/0/U
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/0/p b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/0/p
index e9b41399de39be294b60f13a70ef987d1d84b191..79f422967446237f3f7c08e028d15a17eb25bbd1 100644
--- a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/0/p
+++ b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/0/p
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/constant/thermophysicalProperties b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/constant/thermophysicalProperties
index 392e2e045bf30bfbf162b0f531cf855d8a6056b8..f418d51cdd863796d3bb40cf8326f2178840b0ac 100644
--- a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/constant/thermophysicalProperties
+++ b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/constant/thermophysicalProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/constant/turbulenceProperties b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/constant/turbulenceProperties
index c2c3b28a1b4e8f4a2cae55f58bd61f9b1a67b488..d0a0998654c0e013d16bc1b9e58e51ff26d40edc 100644
--- a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/constant/turbulenceProperties
+++ b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/constant/turbulenceProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/blockMeshDict b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/blockMeshDict
index e4dabbfe23c9ce735e938267e22da5c977145ff3..3cf178ed203db156cc2ea129b68d75e0113dfccb 100644
--- a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/blockMeshDict
+++ b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/blockMeshDict
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/decomposeParDict b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/decomposeParDict
index 702df4decde3f6db59fed02c6d657cebf90c8e94..0f97fd08eeb8bf372d308eada925a743633c3238 100644
--- a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/decomposeParDict
+++ b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/decomposeParDict
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/fvSchemes b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/fvSchemes
index 6a8292d18718c9a118b08a2e2a3c3dc177ece5ae..c271104f45e52b48abff3b3994298461bbe9e2a1 100644
--- a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/fvSchemes
+++ b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/fvSchemes
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/fvSolution
index 4eddb387211b68f540ad69979408dacf480d5255..af3250664149a0bbd5771157132d4179f212be11 100644
--- a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/fvSolution
+++ b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/T b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/T
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/T
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/T
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/U b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/U
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/U
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/U
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/alphat b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/alphat
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/alphat
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/alphat
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/epsilon b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/epsilon
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/epsilon
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/epsilon
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/k b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/k
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/k
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/k
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/nut b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/nut
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/nut
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/nut
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/p b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/p
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/0/p
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/p
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/Allclean b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Allclean
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/Allclean
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Allclean
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/Allrun b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Allrun
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/Allrun
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Allrun
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/Running_Notes b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Running_Notes
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/Running_Notes
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Running_Notes
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/thermophysicalProperties
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/constant/thermophysicalProperties
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/turbulenceProperties b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/constant/turbulenceProperties
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/constant/turbulenceProperties
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/constant/turbulenceProperties
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/prostar/nacaAirfoil.bnd.gz b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.bnd.gz
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/prostar/nacaAirfoil.bnd.gz
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.bnd.gz
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/prostar/nacaAirfoil.cel.gz b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.cel.gz
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/prostar/nacaAirfoil.cel.gz
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.cel.gz
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/prostar/nacaAirfoil.vrt.gz b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.vrt.gz
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/prostar/nacaAirfoil.vrt.gz
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.vrt.gz
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/controlDict b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/controlDict
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/controlDict
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/controlDict
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/fvSchemes b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/fvSchemes
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/fvSchemes
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/fvSchemes
diff --git a/tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/fvSolution b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/fvSolution
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/nacaAirfoil/system/fvSolution
rename to tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/fvSolution
diff --git a/tutorials/compressible/sonicFoam/ras/prism/0/T b/tutorials/compressible/sonicFoam/RAS/prism/0/T
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/0/T
rename to tutorials/compressible/sonicFoam/RAS/prism/0/T
diff --git a/tutorials/compressible/sonicFoam/ras/prism/0/U b/tutorials/compressible/sonicFoam/RAS/prism/0/U
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/0/U
rename to tutorials/compressible/sonicFoam/RAS/prism/0/U
diff --git a/tutorials/compressible/sonicFoam/ras/prism/0/alphat b/tutorials/compressible/sonicFoam/RAS/prism/0/alphat
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/0/alphat
rename to tutorials/compressible/sonicFoam/RAS/prism/0/alphat
diff --git a/tutorials/compressible/sonicFoam/ras/prism/0/epsilon b/tutorials/compressible/sonicFoam/RAS/prism/0/epsilon
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/0/epsilon
rename to tutorials/compressible/sonicFoam/RAS/prism/0/epsilon
diff --git a/tutorials/compressible/sonicFoam/ras/prism/0/k b/tutorials/compressible/sonicFoam/RAS/prism/0/k
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/0/k
rename to tutorials/compressible/sonicFoam/RAS/prism/0/k
diff --git a/tutorials/compressible/sonicFoam/ras/prism/0/nut b/tutorials/compressible/sonicFoam/RAS/prism/0/nut
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/0/nut
rename to tutorials/compressible/sonicFoam/RAS/prism/0/nut
diff --git a/tutorials/compressible/sonicFoam/ras/prism/0/p b/tutorials/compressible/sonicFoam/RAS/prism/0/p
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/0/p
rename to tutorials/compressible/sonicFoam/RAS/prism/0/p
diff --git a/tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties b/tutorials/compressible/sonicFoam/RAS/prism/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/constant/thermophysicalProperties
rename to tutorials/compressible/sonicFoam/RAS/prism/constant/thermophysicalProperties
diff --git a/tutorials/compressible/sonicFoam/ras/prism/constant/turbulenceProperties b/tutorials/compressible/sonicFoam/RAS/prism/constant/turbulenceProperties
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/constant/turbulenceProperties
rename to tutorials/compressible/sonicFoam/RAS/prism/constant/turbulenceProperties
diff --git a/tutorials/compressible/sonicFoam/ras/prism/system/blockMeshDict b/tutorials/compressible/sonicFoam/RAS/prism/system/blockMeshDict
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/system/blockMeshDict
rename to tutorials/compressible/sonicFoam/RAS/prism/system/blockMeshDict
diff --git a/tutorials/compressible/sonicFoam/ras/prism/system/controlDict b/tutorials/compressible/sonicFoam/RAS/prism/system/controlDict
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/system/controlDict
rename to tutorials/compressible/sonicFoam/RAS/prism/system/controlDict
diff --git a/tutorials/compressible/sonicFoam/ras/prism/system/fvSchemes b/tutorials/compressible/sonicFoam/RAS/prism/system/fvSchemes
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/system/fvSchemes
rename to tutorials/compressible/sonicFoam/RAS/prism/system/fvSchemes
diff --git a/tutorials/compressible/sonicFoam/ras/prism/system/fvSolution b/tutorials/compressible/sonicFoam/RAS/prism/system/fvSolution
similarity index 100%
rename from tutorials/compressible/sonicFoam/ras/prism/system/fvSolution
rename to tutorials/compressible/sonicFoam/RAS/prism/system/fvSolution
diff --git a/tutorials/compressible/sonicFoam/laminar/shockTube/Allclean b/tutorials/compressible/sonicFoam/laminar/shockTube/Allclean
index 6e94f2d9da6aad4e33d77f78a333c0a8efb266b7..ea06ee44e4a644b27faa316683704cbd2f1ac709 100755
--- a/tutorials/compressible/sonicFoam/laminar/shockTube/Allclean
+++ b/tutorials/compressible/sonicFoam/laminar/shockTube/Allclean
@@ -4,7 +4,7 @@ cd ${0%/*} || exit 1    # Run from this directory
 # Source tutorial clean functions
 . $WM_PROJECT_DIR/bin/tools/CleanFunctions
 
-# Remove 0.org/ copy
+# Remove 0.orig/ copy
 \rm -rf 0
 
 cleanCase
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/changeDictionaryDict
index ec844d5a568dc326631ee3df0edaf53fe36a92a0..adf9935141aea0a6e8c9c6720e8d2bc8b4afa865 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/changeDictionaryDict
@@ -70,8 +70,8 @@ dictionaryReplacement
             {
                 type            compressible::turbulentTemperatureCoupledBaffleMixed;
                 Tnbr            T;
-                kappa           fluidThermo;
-                kappaName       none;
+                kappaMethod     fluidThermo;
+                kappa           none;
                 value           uniform 300;
             }
         }
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/controlDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/controlDict
index 7a6cb60419f18357bbeeabf3a44adb6093003e8b..3ab994b043d498fa58ea9449e2e2d12846d43104 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/controlDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/controlDict
@@ -59,7 +59,7 @@ functions
     externalCoupled
     {
         // Where to load it from (if not already in solver)
-        libs            ("libfieldControl.so");
+        libs            ("libfieldFunctionObjects.so");
 
         type            externalCoupled;
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/changeDictionaryDict
index 0e3628fdc5ff1f27bef4c994e77fc2ef2f5f1d50..5f0519e7e102541cf45068990fb92964d8b5a79c 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/changeDictionaryDict
@@ -49,8 +49,8 @@ dictionaryReplacement
             {
                 type            compressible::turbulentTemperatureCoupledBaffleMixed;
                 Tnbr            T;
-                kappa           solidThermo;
-                kappaName       none;
+                kappaMethod     solidThermo;
+                kappa           none;
                 value           uniform 300;
             }
 
@@ -58,8 +58,8 @@ dictionaryReplacement
             {
                 type            compressible::turbulentTemperatureCoupledBaffleMixed;
                 Tnbr            T;
-                kappa           solidThermo;
-                kappaName       none;
+                kappaMethod     solidThermo;
+                kappa           none;
                 thicknessLayers (1e-3);
                 kappaLayers     (5e-4);
                 value           uniform 300;
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/changeDictionaryDict
index 8e96133ac2d5d0ae86b12e5b92decd6505a75128..917043d203cbe6fdc9bb72185d24960d7f0fef8f 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/changeDictionaryDict
@@ -43,8 +43,8 @@ dictionaryReplacement
             {
                 type            compressible::turbulentTemperatureCoupledBaffleMixed;
                 Tnbr            T;
-                kappa           solidThermo;
-                kappaName       none;
+                kappaMethod     solidThermo;
+                kappa           none;
                 value           uniform 300;
             }
 
@@ -52,8 +52,8 @@ dictionaryReplacement
             {
                 type            compressible::turbulentTemperatureCoupledBaffleMixed;
                 Tnbr            T;
-                kappa           solidThermo;
-                kappaName       none;
+                kappaMethod     solidThermo;
+                kappa           none;
                 thicknessLayers (1e-3);
                 kappaLayers     (5e-4);
                 value           uniform 300;
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/changeDictionaryDict
index 20e446ba05621a3d9f8c0b9fb6985b00a52c5d92..77bebe210e7502c311b4062a6a85e4ac902ba161 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/changeDictionaryDict
@@ -43,8 +43,8 @@ dictionaryReplacement
             {
                 type            compressible::turbulentTemperatureCoupledBaffleMixed;
                 Tnbr            T;
-                kappa           solidThermo;
-                kappaName       none;
+                kappaMethod     solidThermo;
+                kappa           none;
                 value           uniform 300;
             }
         }
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/changeDictionaryDict
index a5fdd7b1c06698e41dbeb6ca9390b7d81f4cfbaa..40ce87668ba58c36162a8732b036bbcfbb376531 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/changeDictionaryDict
@@ -76,8 +76,8 @@ dictionaryReplacement
             {
                 type            compressible::turbulentTemperatureCoupledBaffleMixed;
                 Tnbr            T;
-                kappa           fluidThermo;
-                kappaName       none;
+                kappaMethod     fluidThermo;
+                kappa           none;
                 value           uniform 300;
             }
         }
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/air/T b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/air/T
index 446c1e3ab2e8133a9658b8c05ed9b73c33c90d04..a7d921215a3c3703368d3346e3d966429a973fb2 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/air/T
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/air/T
@@ -57,10 +57,10 @@ boundaryField
         value           uniform 300;
         inletValue      uniform 300;
         Tnbr            T;
-        kappa           fluidThermo;
+        kappaMethod     fluidThermo;
         QrNbr           none;
         Qr              Qr;
-        kappaName       none;
+        kappa           none;
     }
     air_to_solid
     {
@@ -68,10 +68,10 @@ boundaryField
         value           uniform 300;
         inletValue      uniform 300;
         Tnbr            T;
-        kappa           fluidThermo;
+        kappaMethod     fluidThermo;
         QrNbr           none;
         Qr              Qr;
-        kappaName       none;
+        kappa           none;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/floor/T b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/floor/T
index 01add2ab205e9a36fa7c97a15b4d80c035bd099b..267473f7901eabb2dbace17c9760348d5e01e180 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/floor/T
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/floor/T
@@ -45,12 +45,12 @@ boundaryField
     {
         type            externalWallHeatFluxTemperature;
         value           uniform 300;
-        kappa           solidThermo;
+        kappaMethod     solidThermo;
         Ta              uniform 313;
         h               uniform 1000000;
         thicknessLayers ( 1 2 );
         kappaLayers     ( 100 200 );
-        kappaName       none;
+        kappa           none;
     }
     floor_to_domain3
     {
@@ -62,20 +62,20 @@ boundaryField
         type            compressible::turbulentTemperatureRadCoupledMixed;
         value           uniform 300;
         Tnbr            T;
-        kappa           solidThermo;
+        kappaMethod     solidThermo;
         QrNbr           Qr;
         Qr              none;
-        kappaName       none;
+        kappa           none;
     }
     floor_to_solid
     {
         type            compressible::turbulentTemperatureRadCoupledMixed;
         value           uniform 300;
         Tnbr            T;
-        kappa           solidThermo;
+        kappaMethod     solidThermo;
         QrNbr           none;
         Qr              none;
-        kappaName       none;
+        kappa           none;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/solid/T b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/solid/T
index fd81c80c4e85db8b31582bb6f1d59d97ffc19ccc..4e1f26a8c48a2fe050afe249eb90e5f745e78282 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/solid/T
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/0/solid/T
@@ -31,20 +31,20 @@ boundaryField
         type            compressible::turbulentTemperatureRadCoupledMixed;
         value           uniform 300;
         Tnbr            T;
-        kappa           solidThermo;
+        kappaMethod     solidThermo;
         QrNbr           Qr;
         Qr              none;
-        kappaName       none;
+        kappa           none;
     }
     solid_to_floor
     {
         type            compressible::turbulentTemperatureRadCoupledMixed;
         value           uniform 300;
         Tnbr            T;
-        kappa           solidThermo;
+        kappaMethod     solidThermo;
         QrNbr           none;
         Qr              none;
-        kappaName       none;
+        kappa           none;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/constant/air/radiationProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/constant/air/radiationProperties
index 65e88f1f4ebef47493b3039a5873fd8bd9c5a065..dd4e6f8da4a19a7c08072d511acac88629670bc1 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/constant/air/radiationProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/constant/air/radiationProperties
@@ -26,7 +26,7 @@ solarLoadCoeffs
 
     // Sun direction ray model. Give the sunDirection or calculated using the
     // (solar calculator)
-    sunDirectionModel   sunDirTraking;//sunDirConstant;
+    sunDirectionModel   sunDirTracking;//sunDirConstant;
 
         // Time interval to update Sun position (sec)
         sunTrackingUpdateInterval 800;
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/air/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/air/changeDictionaryDict
index 25ac73691ab85d1ca389b1b3f088d73109af1cc0..92b630af9bf14896a91c097cd35e62e294530974 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/air/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/air/changeDictionaryDict
@@ -68,10 +68,10 @@ dictionaryReplacement
             {
                 type            compressible::turbulentTemperatureRadCoupledMixed;
                 Tnbr            T;
-                kappa           fluidThermo;
+                kappaMethod     fluidThermo;
                 QrNbr           none;
                 Qr              Qr;
-                kappaName       none;
+                kappa           none;
                 value           uniform 300;
             }
         }
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/changeDictionaryDict
index 5189b5faef4dd1f5a28825c08c224657fe290ebc..faf294c0843ef6557154e19f9ff98949d21bacd7 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/changeDictionaryDict
@@ -39,10 +39,10 @@ dictionaryReplacement
             {
                 type            compressible::turbulentTemperatureRadCoupledMixed;
                 Tnbr            T;
-                kappa           solidThermo;
+                kappaMethod     solidThermo;
                 QrNbr           none;
                 Qr              none;
-                kappaName       none;
+                kappa           none;
                 value           uniform 300;
             }
 
@@ -50,10 +50,10 @@ dictionaryReplacement
             {
                 type            compressible::turbulentTemperatureRadCoupledMixed;
                 Tnbr            T;
-                kappa           solidThermo;
+                kappaMethod     solidThermo;
                 QrNbr           Qr;
                 Qr              none;
-                kappaName       none;
+                kappa           none;
                 value           uniform 300;
             }
 
@@ -66,13 +66,13 @@ dictionaryReplacement
             minZ
             {
                 type            externalWallHeatFluxTemperature;
-                kappa           solidThermo;
+                kappaMethod     solidThermo;
                 Ta              uniform 313.0;
                 h               uniform 10e5;
                 thicknessLayers (1 2);
                 kappaLayers     (100 200);
                 value           uniform 300.0;
-                kappaName       none;
+                kappa           none;
             }
         }
     }
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/solid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/solid/changeDictionaryDict
index 92da12adfb04ff1b8f27d0c454f718a1eb902b60..1a3e5fe65c845c29b3d24f04f445a2eadb64a591 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/solid/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/solid/changeDictionaryDict
@@ -33,10 +33,10 @@ dictionaryReplacement
             {
                 type            compressible::turbulentTemperatureRadCoupledMixed;
                 Tnbr            T;
-                kappa           solidThermo;
+                kappaMethod     solidThermo;
                 QrNbr           Qr;
                 Qr              none;
-                kappaName       none;
+                kappa           none;
                 value           uniform 300;
             }
 
@@ -44,10 +44,10 @@ dictionaryReplacement
             {
                 type            compressible::turbulentTemperatureRadCoupledMixed;
                 Tnbr            T;
-                kappa           solidThermo;
+                kappaMethod     solidThermo;
                 QrNbr           none;
                 Qr              none;
-                kappaName       none;
+                kappa           none;
                 value           uniform 300;
             }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/fvSolution
index ccb0d3183fb2d698ff0b6b23ca6367efb9adfe00..cb81d3185993a5de1377b41c0e3be231454aa316 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/fvSolution
index ccb0d3183fb2d698ff0b6b23ca6367efb9adfe00..cb81d3185993a5de1377b41c0e3be231454aa316 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/fvSolution
index 0eb178deb7442d6482f7419353e96187dabf0148..21da1747408a3ee835aff788874376e5c3ffcec5 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/fvSolution
index ccb0d3183fb2d698ff0b6b23ca6367efb9adfe00..cb81d3185993a5de1377b41c0e3be231454aa316 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/fvSolution
index ccb0d3183fb2d698ff0b6b23ca6367efb9adfe00..cb81d3185993a5de1377b41c0e3be231454aa316 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/fvSolution
index 066616d5534bcb0645d1365cffa100d383aeb5e6..b986d2efb2fd04039639748c2adbb711705dba14 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/0.orig/cabin/T b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/0.orig/cabin/T
index d0013971fed559209b0b3352baf65563e32923d5..e1f36abd656a66e30f63dee1502802e76b361bea 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/0.orig/cabin/T
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/0.orig/cabin/T
@@ -49,8 +49,8 @@ boundaryField
     cabin_to_windshield
     {
         type            humidityTemperatureCoupledMixed;
-        kappa           fluidThermo;
-        kappaName       none;
+        kappaMethod     fluidThermo;
+        kappa           none;
 
         // Mode of operation: inert, condensation, vaporization,
         // condensationAndEvaporation
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/0.orig/windshield/T b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/0.orig/windshield/T
index 5dd082096f5668b392c5f1757c9d38afc8acc2ee..a384823f320069c53d6f6d0d125a40c589dbde65 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/0.orig/windshield/T
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/0.orig/windshield/T
@@ -32,15 +32,15 @@ boundaryField
     windshield_to_cabin
     {
         type            humidityTemperatureCoupledMixed;
-        kappa           solidThermo;
-        kappaName       none;
+        kappaMethod     solidThermo;
+        kappa           none;
         value           uniform 260;
     }
     exterior
     {
         type            externalWallHeatFluxTemperature;
-        kappa           solidThermo;
-        kappaName       none;
+        kappaMethod     solidThermo;
+        kappa           none;
         h               uniform 10;
         Ta              uniform 260;
         value           uniform 260;
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/controlDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/controlDict
index 9ea87b6028da0fb5e7aab21190b316f3c3e4a07f..1dd1497a4ac0f7dd7c2bd2b359f669da749298db 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/controlDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/controlDict
@@ -58,7 +58,8 @@ functions
         type            scalarTransport;
         libs            ("libsolverFunctionObjects.so");
         resetOnStartUp  no;
-        region cabin;
+        region          cabin;
+        field           H2O;
 
         fvOptions
         {
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/0.orig/cabin/T b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/0.orig/cabin/T
index 420465cbb293a6b3de273b55fb251ae01d6c4774..cb41965f6d01c80f5be714ccfabd3ff3edeee398 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/0.orig/cabin/T
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/0.orig/cabin/T
@@ -50,8 +50,8 @@ boundaryField
         type            compressible::turbulentTemperatureCoupledBaffleMixed;
         value           uniform 260;
         Tnbr            T;
-        kappa           fluidThermo;
-        kappaName       none;
+        kappaMethod     fluidThermo;
+        kappa           none;
 
         // windshield 3 mm
         thicknessLayers (0.003);
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/0.orig/exterior/T b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/0.orig/exterior/T
index d3c0de7d18f7cdbcf03c8716e539c79ab53e0b83..dd56368c3933e47d6e7dec3a91c0e38f10cfa3c9 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/0.orig/exterior/T
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/0.orig/exterior/T
@@ -36,8 +36,8 @@ boundaryField
         type            compressible::turbulentTemperatureCoupledBaffleMixed;
         value           uniform 260;
         Tnbr            T;
-        kappa           fluidThermo;
-        kappaName       none;
+        kappaMethod     fluidThermo;
+        kappa           none;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/0.orig/ice/T b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/0.orig/ice/T
index 290057824fedea727a0c8bd1b6fca68b4376583f..e48d2b0c5a91beb557bb102866ccc61fc51d4e6b 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/0.orig/ice/T
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/0.orig/ice/T
@@ -34,16 +34,16 @@ boundaryField
         type            compressible::turbulentTemperatureCoupledBaffleMixed;
         value           uniform 260;
         Tnbr            T;
-        kappa           fluidThermo;
-        kappaName       none;
+        kappaMethod     fluidThermo;
+        kappa           none;
     }
     ice_to_exterior
     {
         type            compressible::turbulentTemperatureCoupledBaffleMixed;
         value           uniform 260;
         Tnbr            T;
-        kappa           fluidThermo;
-        kappaName       none;
+        kappaMethod     fluidThermo;
+        kappa           none;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/controlDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/controlDict
index 07835724cf5bf8756a9556b5d77c2dc5f54fab02..f67edeb57deb8541f5b0351fe1af8e0d6c0e7df7 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/controlDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/controlDict
@@ -55,15 +55,15 @@ functions
 {
     massFlux
     {
-        type            faceSource;
+        type            surfaceFieldValue;
         libs            ("libfieldFunctionObjects.so");
         enabled         yes;
         writeControl    timeStep; //writeTime;
         writeInterval   1;
         log             yes;
-        valueOutput     no;
-        source          patch;
-        sourceName      inlet;
+        writeFields     no;
+        regionType      patch;
+        name            inlet;
         operation       sum;
         fields          (phi);
         region          cabin;
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/fvSolution
index b743687b83ade1b7608083b5a72b5746d37033a8..852536f64afb212ddae195d7de7bf118550880b4 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/fvSolution
index b743687b83ade1b7608083b5a72b5746d37033a8..852536f64afb212ddae195d7de7bf118550880b4 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/fvSolution
index 2f353374cdcebe05c339674695d1313b590f1ccf..176ec43fecfaa2afdc418f1299ef12fc0691e4f1 100644
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/pimpleFoam/channel395/0.orig/U b/tutorials/incompressible/pimpleFoam/LES/channel395/0.orig/U
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/0.orig/U
rename to tutorials/incompressible/pimpleFoam/LES/channel395/0.orig/U
diff --git a/tutorials/incompressible/pimpleFoam/channel395/0.orig/k b/tutorials/incompressible/pimpleFoam/LES/channel395/0.orig/k
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/0.orig/k
rename to tutorials/incompressible/pimpleFoam/LES/channel395/0.orig/k
diff --git a/tutorials/incompressible/pimpleFoam/channel395/0.orig/nuTilda b/tutorials/incompressible/pimpleFoam/LES/channel395/0.orig/nuTilda
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/0.orig/nuTilda
rename to tutorials/incompressible/pimpleFoam/LES/channel395/0.orig/nuTilda
diff --git a/tutorials/incompressible/pimpleFoam/channel395/0.orig/nut b/tutorials/incompressible/pimpleFoam/LES/channel395/0.orig/nut
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/0.orig/nut
rename to tutorials/incompressible/pimpleFoam/LES/channel395/0.orig/nut
diff --git a/tutorials/incompressible/pimpleFoam/channel395/0.orig/p b/tutorials/incompressible/pimpleFoam/LES/channel395/0.orig/p
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/0.orig/p
rename to tutorials/incompressible/pimpleFoam/LES/channel395/0.orig/p
diff --git a/tutorials/incompressible/pimpleFoam/channel395/0/B.gz b/tutorials/incompressible/pimpleFoam/LES/channel395/0/B.gz
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/0/B.gz
rename to tutorials/incompressible/pimpleFoam/LES/channel395/0/B.gz
diff --git a/tutorials/incompressible/pimpleFoam/channel395/0/U.gz b/tutorials/incompressible/pimpleFoam/LES/channel395/0/U.gz
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/0/U.gz
rename to tutorials/incompressible/pimpleFoam/LES/channel395/0/U.gz
diff --git a/tutorials/incompressible/pimpleFoam/channel395/0/k.gz b/tutorials/incompressible/pimpleFoam/LES/channel395/0/k.gz
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/0/k.gz
rename to tutorials/incompressible/pimpleFoam/LES/channel395/0/k.gz
diff --git a/tutorials/incompressible/pimpleFoam/channel395/0/nuTilda.gz b/tutorials/incompressible/pimpleFoam/LES/channel395/0/nuTilda.gz
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/0/nuTilda.gz
rename to tutorials/incompressible/pimpleFoam/LES/channel395/0/nuTilda.gz
diff --git a/tutorials/incompressible/pimpleFoam/channel395/0/nut.gz b/tutorials/incompressible/pimpleFoam/LES/channel395/0/nut.gz
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/0/nut.gz
rename to tutorials/incompressible/pimpleFoam/LES/channel395/0/nut.gz
diff --git a/tutorials/incompressible/pimpleFoam/channel395/0/p.gz b/tutorials/incompressible/pimpleFoam/LES/channel395/0/p.gz
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/0/p.gz
rename to tutorials/incompressible/pimpleFoam/LES/channel395/0/p.gz
diff --git a/tutorials/incompressible/pimpleFoam/channel395/Allrun b/tutorials/incompressible/pimpleFoam/LES/channel395/Allrun
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/Allrun
rename to tutorials/incompressible/pimpleFoam/LES/channel395/Allrun
diff --git a/tutorials/incompressible/pimpleFoam/channel395/constant/fvOptions b/tutorials/incompressible/pimpleFoam/LES/channel395/constant/fvOptions
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/constant/fvOptions
rename to tutorials/incompressible/pimpleFoam/LES/channel395/constant/fvOptions
diff --git a/tutorials/incompressible/pimpleFoam/channel395/constant/postChannelDict b/tutorials/incompressible/pimpleFoam/LES/channel395/constant/postChannelDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/constant/postChannelDict
rename to tutorials/incompressible/pimpleFoam/LES/channel395/constant/postChannelDict
diff --git a/tutorials/incompressible/pimpleFoam/channel395/constant/transportProperties b/tutorials/incompressible/pimpleFoam/LES/channel395/constant/transportProperties
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/constant/transportProperties
rename to tutorials/incompressible/pimpleFoam/LES/channel395/constant/transportProperties
diff --git a/tutorials/incompressible/pimpleFoam/channel395/constant/turbulenceProperties b/tutorials/incompressible/pimpleFoam/LES/channel395/constant/turbulenceProperties
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/constant/turbulenceProperties
rename to tutorials/incompressible/pimpleFoam/LES/channel395/constant/turbulenceProperties
diff --git a/tutorials/incompressible/pimpleFoam/channel395/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/LES/channel395/system/blockMeshDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/system/blockMeshDict
rename to tutorials/incompressible/pimpleFoam/LES/channel395/system/blockMeshDict
diff --git a/tutorials/incompressible/pimpleFoam/channel395/system/controlDict b/tutorials/incompressible/pimpleFoam/LES/channel395/system/controlDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/system/controlDict
rename to tutorials/incompressible/pimpleFoam/LES/channel395/system/controlDict
diff --git a/tutorials/incompressible/pimpleFoam/channel395/system/decomposeParDict b/tutorials/incompressible/pimpleFoam/LES/channel395/system/decomposeParDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/system/decomposeParDict
rename to tutorials/incompressible/pimpleFoam/LES/channel395/system/decomposeParDict
diff --git a/tutorials/incompressible/pimpleFoam/channel395/system/fvSchemes b/tutorials/incompressible/pimpleFoam/LES/channel395/system/fvSchemes
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/system/fvSchemes
rename to tutorials/incompressible/pimpleFoam/LES/channel395/system/fvSchemes
diff --git a/tutorials/incompressible/pimpleFoam/channel395/system/fvSolution b/tutorials/incompressible/pimpleFoam/LES/channel395/system/fvSolution
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395/system/fvSolution
rename to tutorials/incompressible/pimpleFoam/LES/channel395/system/fvSolution
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/0/U b/tutorials/incompressible/pimpleFoam/RAS/TJunction/0/U
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/0/U
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/0/U
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/0/epsilon b/tutorials/incompressible/pimpleFoam/RAS/TJunction/0/epsilon
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/0/epsilon
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/0/epsilon
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/0/k b/tutorials/incompressible/pimpleFoam/RAS/TJunction/0/k
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/0/k
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/0/k
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/0/nuTilda b/tutorials/incompressible/pimpleFoam/RAS/TJunction/0/nuTilda
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/0/nuTilda
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/0/nuTilda
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/0/nut b/tutorials/incompressible/pimpleFoam/RAS/TJunction/0/nut
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/0/nut
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/0/nut
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/0/p b/tutorials/incompressible/pimpleFoam/RAS/TJunction/0/p
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/0/p
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/0/p
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/README.txt b/tutorials/incompressible/pimpleFoam/RAS/TJunction/README.txt
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/README.txt
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/README.txt
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/constant/transportProperties b/tutorials/incompressible/pimpleFoam/RAS/TJunction/constant/transportProperties
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/constant/transportProperties
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/constant/transportProperties
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/constant/turbulenceProperties b/tutorials/incompressible/pimpleFoam/RAS/TJunction/constant/turbulenceProperties
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/constant/turbulenceProperties
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/constant/turbulenceProperties
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/RAS/TJunction/system/blockMeshDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/system/blockMeshDict
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/system/blockMeshDict
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/system/controlDict b/tutorials/incompressible/pimpleFoam/RAS/TJunction/system/controlDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/system/controlDict
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/system/controlDict
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/system/fvSchemes b/tutorials/incompressible/pimpleFoam/RAS/TJunction/system/fvSchemes
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/system/fvSchemes
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/system/fvSchemes
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/system/fvSolution b/tutorials/incompressible/pimpleFoam/RAS/TJunction/system/fvSolution
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunction/system/fvSolution
rename to tutorials/incompressible/pimpleFoam/RAS/TJunction/system/fvSolution
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/0.orig/U b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/0.orig/U
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/0.orig/U
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/0.orig/U
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/0.orig/epsilon b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/0.orig/epsilon
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/0.orig/epsilon
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/0.orig/epsilon
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/0.orig/k b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/0.orig/k
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/0.orig/k
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/0.orig/k
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/0.orig/nuTilda b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/0.orig/nuTilda
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/0.orig/nuTilda
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/0.orig/nuTilda
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/0.orig/nut b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/0.orig/nut
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/0.orig/nut
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/0.orig/nut
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/0.orig/p b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/0.orig/p
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/0.orig/p
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/0.orig/p
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/Allclean b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/Allclean
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/Allclean
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/Allclean
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/Allrun b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/Allrun
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/Allrun
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/Allrun
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/README.txt b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/README.txt
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/README.txt
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/README.txt
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/constant/transportProperties b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/constant/transportProperties
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/constant/transportProperties
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/constant/transportProperties
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/constant/turbulenceProperties b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/constant/turbulenceProperties
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/constant/turbulenceProperties
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/constant/turbulenceProperties
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/system/blockMeshDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/system/blockMeshDict
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/system/blockMeshDict
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/system/controlDict b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/system/controlDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/system/controlDict
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/system/controlDict
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/system/createBafflesDict b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/system/createBafflesDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/system/createBafflesDict
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/system/createBafflesDict
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/system/fvSchemes b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/system/fvSchemes
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/system/fvSchemes
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/system/fvSchemes
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/system/fvSolution b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/system/fvSolution
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/system/fvSolution
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/system/fvSolution
diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/system/topoSetDict b/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/system/topoSetDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/TJunctionFan/system/topoSetDict
rename to tutorials/incompressible/pimpleFoam/RAS/TJunctionFan/system/topoSetDict
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/0/U b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/0/U
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/0/U
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/0/U
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/0/kl b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/0/kl
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/0/kl
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/0/kl
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/0/kt b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/0/kt
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/0/kt
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/0/kt
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/0/nut b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/0/nut
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/0/nut
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/0/nut
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/0/omega b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/0/omega
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/0/omega
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/0/omega
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/0/p b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/0/p
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/0/p
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/0/p
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/Allclean b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/Allclean
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/Allclean
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/Allclean
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/Allrun b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/Allrun
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/Allrun
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/Allrun
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/constant/transportProperties b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/constant/transportProperties
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/constant/transportProperties
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/constant/transportProperties
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/constant/turbulenceProperties b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/constant/turbulenceProperties
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/constant/turbulenceProperties
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/constant/turbulenceProperties
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/blockMeshDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/blockMeshDict
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/blockMeshDict
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/changeDictionaryDict b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/changeDictionaryDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/changeDictionaryDict
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/changeDictionaryDict
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/changeDictionaryDict.X b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/changeDictionaryDict.X
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/changeDictionaryDict.X
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/changeDictionaryDict.X
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/changeDictionaryDict.Y b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/changeDictionaryDict.Y
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/changeDictionaryDict.Y
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/changeDictionaryDict.Y
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/controlDict b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/controlDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/controlDict
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/controlDict
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/createPatchDict b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/createPatchDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/createPatchDict
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/createPatchDict
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/fvSchemes b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/fvSchemes
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/fvSchemes
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/fvSchemes
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/fvSolution b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/fvSolution
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/fvSolution
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/fvSolution
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/mirrorMeshDict b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/mirrorMeshDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/mirrorMeshDict
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/mirrorMeshDict
diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/topoSetDict b/tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/topoSetDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/topoSetDict
rename to tutorials/incompressible/pimpleFoam/RAS/elipsekkLOmega/system/topoSetDict
diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/0/U b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/0/U
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/pitzDaily/0/U
rename to tutorials/incompressible/pimpleFoam/RAS/pitzDaily/0/U
diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/0/epsilon b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/0/epsilon
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/pitzDaily/0/epsilon
rename to tutorials/incompressible/pimpleFoam/RAS/pitzDaily/0/epsilon
diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/0/k b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/0/k
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/pitzDaily/0/k
rename to tutorials/incompressible/pimpleFoam/RAS/pitzDaily/0/k
diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/0/nuTilda b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/0/nuTilda
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/pitzDaily/0/nuTilda
rename to tutorials/incompressible/pimpleFoam/RAS/pitzDaily/0/nuTilda
diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/0/nut b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/0/nut
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/pitzDaily/0/nut
rename to tutorials/incompressible/pimpleFoam/RAS/pitzDaily/0/nut
diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/0/p b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/0/p
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/pitzDaily/0/p
rename to tutorials/incompressible/pimpleFoam/RAS/pitzDaily/0/p
diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/constant/transportProperties b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/constant/transportProperties
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/pitzDaily/constant/transportProperties
rename to tutorials/incompressible/pimpleFoam/RAS/pitzDaily/constant/transportProperties
diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/constant/turbulenceProperties b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/constant/turbulenceProperties
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/pitzDaily/constant/turbulenceProperties
rename to tutorials/incompressible/pimpleFoam/RAS/pitzDaily/constant/turbulenceProperties
diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/blockMeshDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/pitzDaily/system/blockMeshDict
rename to tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/blockMeshDict
diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/system/controlDict b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/controlDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/pitzDaily/system/controlDict
rename to tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/controlDict
diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/system/fvSchemes b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/fvSchemes
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/pitzDaily/system/fvSchemes
rename to tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/fvSchemes
diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/system/fvSolution b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/fvSolution
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/pitzDaily/system/fvSolution
rename to tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/fvSolution
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/Allrun b/tutorials/incompressible/pimpleFoam/channel395DFSEM/Allrun
index f3cf09467dc6f2f26197d540bafec7a12151fd9c..2ba4fbfe4201bfc156f4cf3b9891e6edf69d4953 100755
--- a/tutorials/incompressible/pimpleFoam/channel395DFSEM/Allrun
+++ b/tutorials/incompressible/pimpleFoam/channel395DFSEM/Allrun
@@ -5,7 +5,7 @@ cd ${0%/*} || exit 1    # run from this directory
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 # Get application directory
-application=`getApplication`
+application=$(getApplication)
 
 runApplication blockMesh
 
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/L b/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/L
index 94aef1c2034e5847fae59462efcf57f04c520e97..9c6e3ab67d541f7b64a113dcdafdf89d88f6c5d4 100644
--- a/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/L
+++ b/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/L
@@ -1,20 +1,3 @@
-/*--------------------------------*- C++ -*----------------------------------*| =========                 |                                                 |
-| \      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \    /   O peration     | Version:  plus                                  |
-|   \  /    A nd           | Web:      www.OpenFOAM.com                      |
-|    \/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       scalarAverageField;
-    object      values;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-// LMean
-0
-
 (
 0
 1.76693e-06
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/R b/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/R
index 497e864386e606a46edfc42c8eb5c8a95d68b91f..084bdd9f8f461bdd3b3be2c09cd7a1a81464b1f8 100644
--- a/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/R
+++ b/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/R
@@ -1,21 +1,3 @@
-/*--------------------------------*- C++ -*----------------------------------*| =========                 |                                                 |
-| \      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \    /   O peration     | Version:  plus                                  |
-|   \  /    A nd           | Web:      www.OpenFOAM.com                      |
-|    \/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       symmTensorAverageField;
-    object      values;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-// UU, UV, UZ, VV, VW, WW
-
-// Average
-(0 0 0 0 0 0)
 (
 (5.3376e-28 1.1206e-30 -6.1282e-30 4.9018e-29 6.2793e-32 5.9575e-28)
 (1.3684e-04 -2.4414e-08 5.9464e-08 9.4734e-11 -2.8525e-11 5.2943e-05)
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/U b/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/U
index 925381d73a1f95428c04158f4d369beca3a91270..2ecd2a6ad4141142b100a68636202dae22eecf91 100644
--- a/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/U
+++ b/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/U
@@ -1,20 +1,3 @@
-/*--------------------------------*- C++ -*----------------------------------*| =========                 |                                                 |
-| \      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \    /   O peration     | Version:  plus                                  |
-|   \  /    A nd           | Web:      www.OpenFOAM.com                      |
-|    \/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       vectorAverageField;
-    object      values;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-// UMean
-(0 0 0)
-
 (
 ( 0.0000e+00 0 0 )
 ( 2.9538e-02 0 0 )
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/system/controlDict b/tutorials/incompressible/pimpleFoam/channel395DFSEM/system/controlDict
index 2d4b47d56da7d065ee87577e6ec7c5ea382df4c0..1efeae985112ea44c30a5fe8062f75d2bc2a4036 100644
--- a/tutorials/incompressible/pimpleFoam/channel395DFSEM/system/controlDict
+++ b/tutorials/incompressible/pimpleFoam/channel395DFSEM/system/controlDict
@@ -50,25 +50,25 @@ functions
     Q1
     {
         type            Q;
-        functionObjectLibs ("libfieldFunctionObjects.so");
+        libs            ("libfieldFunctionObjects.so");
         writeControl    writeTime;
     }
     vorticity1
     {
         type            vorticity;
-        functionObjectLibs ("libfieldFunctionObjects.so");
+        libs            ("libfieldFunctionObjects.so");
         writeControl    writeTime;
     }
     yPlus
     {
         type            yPlus;
-        functionObjectLibs ("libfieldFunctionObjects.so");
+        libs            ("libfieldFunctionObjects.so");
         writeControl    writeTime;
     }
     fieldAverage1
     {
         type            fieldAverage;
-        functionObjectLibs ( "libfieldFunctionObjects.so" );
+        libs            ("libfieldFunctionObjects.so");
         writeControl    writeTime;
         timeStart       8.5;
 
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarContraction/0/U b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/0/U
new file mode 100644
index 0000000000000000000000000000000000000000..ee40b539a6631c3bc7c60c27e8c116b4407de031
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/0/U
@@ -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       volVectorField;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Uinlet          (0.03876 0 0);
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    inlet
+    {
+        type            fixedValue;
+        value           uniform $Uinlet;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+        value           uniform (0 0 0);
+    }
+
+    wall
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarContraction/0/p b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/0/p
new file mode 100644
index 0000000000000000000000000000000000000000..f2d9ffb3b9b57fcc3fa4b00a3d78e1b23fc40f96
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/0/p
@@ -0,0 +1,42 @@
+/*--------------------------------*- 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;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    inlet
+    {
+        type            zeroGradient;
+    }
+
+    outlet
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    wall
+    {
+        type            zeroGradient;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarContraction/0/sigma b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/0/sigma
new file mode 100644
index 0000000000000000000000000000000000000000..259ccfb7b7681920f6e46c2718d1df50bb85e880
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/0/sigma
@@ -0,0 +1,38 @@
+/*--------------------------------*- 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       volSymmTensorField;
+    object      R;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform (0 0 0 0 0 0);
+
+boundaryField
+{
+    inlet
+    {
+        type            fixedValue;
+        value           $internalField;
+    }
+
+    ".*"
+    {
+        type            zeroGradient;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarContraction/constant/transportProperties b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/constant/transportProperties
new file mode 100644
index 0000000000000000000000000000000000000000..35bbd73e1e046f359e2e83076592dba3ecb60874
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/constant/transportProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  3.0.1                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+transportModel  Newtonian;
+
+nu              [0 2 -1 0 0 0 0] 1e-5;
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarContraction/constant/turbulenceProperties b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..6503cde5c3b3edeba25d8ac231cc2f55e5119e46
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/constant/turbulenceProperties
@@ -0,0 +1,32 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType laminar;
+
+laminar
+{
+    laminarModel        Maxwell;
+
+    MaxwellCoeffs
+    {
+        nuM             0.002;
+        lambda          0.03;
+    }
+
+    printCoeffs         on;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/blockMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..b46680344851471e6c5f91b786ceabc8bf9dc0f1
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/blockMeshDict
@@ -0,0 +1,112 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 0.0032;
+
+vertices
+(
+    (-40 0 -1)
+    (  0 0 -1)
+    ( 30 0 -1)
+    (-40 1 -1)
+    (  0 1 -1)
+    ( 30 1 -1)
+    (-40 4 -1)
+    (  0 4 -1)
+
+    (-40 0  1)
+    (  0 0  1)
+    ( 30 0  1)
+    (-40 1  1)
+    (  0 1  1)
+    ( 30 1  1)
+    (-40 4  1)
+    (  0 4  1)
+);
+
+blocks
+(
+    hex (0 1 4 3  8  9 12 11) (40 12 1) simpleGrading (0.02 0.4 1)
+    hex (1 2 5 4  9 10 13 12) (30 12 1) simpleGrading (50 0.4 1)
+    hex (3 4 7 6 11 12 15 14) (40 24 1) simpleGrading (0.02 ((0.5 0.5 4.0) (0.5 0.5 0.25)) 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    inlet
+    {
+        type patch;
+        faces
+        (
+            (0 3 11 8)
+            (3 6 14 11)
+        );
+    }
+
+    walls
+    {
+        type wall;
+        faces
+        (
+            (6 7 15 14)
+            (7 4 12 15)
+            (4 5 13 12)
+        );
+    }
+
+    outlet
+    {
+        type patch;
+        faces
+        (
+            (2 5 13 10)
+        );
+    }
+
+    centreline
+    {
+        type symmetryPlane;
+        faces
+        (
+            (0 1 9 8)
+            (1 2 10 9)
+        );
+    }
+
+    frontAndBack
+    {
+        type empty;
+        faces
+        (
+            (0 1 4 3)
+            (3 4 7 6)
+            (1 2 5 4)
+            (8 9 12 11)
+            (11 12 15 14)
+            (9 10 13 12)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/controlDict b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..66f6d6cfde386383e2b3444d4441ce34f5cf5055
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/controlDict
@@ -0,0 +1,52 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     pimpleFoam;
+
+startFrom       latestTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         0.25;
+
+deltaT          2e-4;
+
+writeControl    runTime;
+
+writeInterval   0.01;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision   8;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable true;
+
+functions
+{
+    #includeFunc graphs
+}
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/fvSchemes b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..9f4397a08452f8bfb4a758b47b7ddd9c21290418
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/fvSchemes
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         backward;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+
+    div(phi,U)      Gauss linearUpwind grad(U);
+    div(phi,sigma)  Gauss vanAlbada;
+
+    div(sigma)                  Gauss linear;
+    div((nu*dev2(T(grad(U)))))  Gauss linear;
+    div((nuM*grad(U)))          Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear corrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         corrected;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/fvSolution b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..302add3af75057536698d57de5ec54e197cbcbac
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/fvSolution
@@ -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       dictionary;
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    p
+    {
+        solver          GAMG;
+        smoother        DIC;
+        tolerance       1e-6;
+        relTol          0.05;
+    }
+
+    "(U|sigma)"
+    {
+        solver          smoothSolver;
+        smoother        symGaussSeidel;
+        tolerance       1e-6;
+        relTol          0.1;
+    }
+
+    pFinal
+    {
+        $p;
+        relTol          0;
+    }
+
+    "(U|sigma)Final"
+    {
+        $U;
+        relTol          0;
+    }
+}
+
+PIMPLE
+{
+    momentumPredictor   off;
+    nOuterCorrectors    15;
+    nCorrectors         1;
+    nNonOrthogonalCorrectors 0;
+    pRefCell            0;
+    pRefValue           0;
+    turbOnFinalIterOnly no;
+}
+
+relaxationFactors
+{
+    equations
+    {
+        ".*"   1;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/graphs b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/graphs
new file mode 100644
index 0000000000000000000000000000000000000000..6c622052c3853b0cc1bf15becaef08c121a32c1e
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarContraction/system/graphs
@@ -0,0 +1,62 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Web:      www.OpenFOAM.org
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+Description
+    Writes graph data for specified fields along a line, specified by start
+    and end points.
+
+\*---------------------------------------------------------------------------*/
+
+
+// Sampling and I/O settings
+#includeEtc "caseDicts/postProcessing/graphs/sampleDict.cfg"
+
+// Override settings here, e.g.
+// setConfig { type midPoint; }
+
+type            sets;
+libs            ("libsampling.so");
+
+writeControl    writeTime;
+
+interpolationScheme cellPoint;
+
+setFormat   raw;
+
+setConfig
+{
+    type    midPoint;  // midPoint
+    axis    distance;  // x, y, z, xyz
+}
+
+sets
+(
+    lineA
+    {
+        $setConfig;
+        start (-0.0016 0      0);
+        end   (-0.0016 0.0128 0);
+    }
+
+    lineB
+    {
+        $setConfig;
+        start (-0.0048 0      0);
+        end   (-0.0048 0.0128 0);
+    }
+
+    lineC
+    {
+        $setConfig;
+        start (-0.032 0      0);
+        end   (-0.032 0.0128 0);
+    }
+);
+
+fields  (U);
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/0/U b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/0/U
new file mode 100644
index 0000000000000000000000000000000000000000..6a258e941b7d62ce19cb640844c44d7991e09cf9
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/0/U
@@ -0,0 +1,32 @@
+/*--------------------------------*- 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;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    wall
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/0/p b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/0/p
new file mode 100644
index 0000000000000000000000000000000000000000..af35540f51a569eae088d12fca4ccd412b100d2f
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/0/p
@@ -0,0 +1,31 @@
+/*--------------------------------*- 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;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    walls
+    {
+        type            zeroGradient;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/0/sigma b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/0/sigma
new file mode 100644
index 0000000000000000000000000000000000000000..491709d9ff31c05c2090d8e572129a0493228a16
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/0/sigma
@@ -0,0 +1,32 @@
+/*--------------------------------*- 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       volSymmTensorField;
+    object      R;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform (0 0 0 0 0 0);
+
+boundaryField
+{
+    walls
+    {
+        type            zeroGradient;
+    }
+
+    #includeEtc "caseDicts/setConstraintTypes"
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allclean b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allclean
new file mode 100755
index 0000000000000000000000000000000000000000..0f2f7ba75f3eef784515c8f4fc1c3d4650637320
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allclean
@@ -0,0 +1,12 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial clean functions
+. $WM_PROJECT_DIR/bin/tools/CleanFunctions
+
+cleanCase
+rm -rf postProcessing *.dat validation/*.eps
+
+wclean validation/WatersKing
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allrun b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allrun
new file mode 100755
index 0000000000000000000000000000000000000000..1737ee272a0ee93b1f0dcaaaec3d532eddac3144
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allrun
@@ -0,0 +1,15 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+runApplication blockMesh
+runApplication $(getApplication)
+
+wmake validation/WatersKing
+runApplication WatersKing
+
+( cd validation && ./createGraph )
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/fvOptions b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/fvOptions
new file mode 100644
index 0000000000000000000000000000000000000000..5a267f51d288005827ce9ed631571107148f0996
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/fvOptions
@@ -0,0 +1,38 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      fvOptions;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+momentumSource
+{
+    type      vectorSemiImplicitSource;
+    active    yes;
+
+    vectorSemiImplicitSourceCoeffs
+    {
+        timeStart       0.0;
+        duration        1000;
+        selectionMode   all;
+
+        volumeMode      specific;
+        injectionRateSuSp
+        {
+            U    ((5 0 0) 0);
+        }
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/transportProperties b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/transportProperties
new file mode 100644
index 0000000000000000000000000000000000000000..ca57ed7652d4b64d6f99f354efbda03bee38da43
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/transportProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+transportModel  Newtonian;
+
+nu              [0 2 -1 0 0 0 0] 0.1; // kinematic -> 0.002 dynamic
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/turbulenceProperties b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..e7cf61543fc7c456a07847bd1483ab3e8200ca72
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/turbulenceProperties
@@ -0,0 +1,32 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType laminar;
+
+laminar
+{
+    laminarModel        Maxwell;
+
+    MaxwellCoeffs
+    {
+        nuM             1;
+        lambda          5;
+    }
+
+    printCoeffs         on;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/blockMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..99174900c47a2c2fe6643cf17af41d763bc6030e
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/blockMeshDict
@@ -0,0 +1,96 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 0.1;
+
+vertices
+(
+    (-1  0 -1)
+    ( 1  0 -1)
+    ( 1 10 -1)
+    (-1 10 -1)
+
+    (-1  0  1)
+    ( 1  0  1)
+    ( 1 10  1)
+    (-1 10  1)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (1 40 1) simpleGrading (1 4 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    left
+    {
+        type cyclic;
+        neighbourPatch right;
+        faces
+        (
+            (0 3 7 4)
+        );
+    }
+
+    right
+    {
+        type cyclic;
+        neighbourPatch left;
+        faces
+        (
+            (1 2 6 5)
+        );
+    }
+
+    walls
+    {
+        type wall;
+        faces
+        (
+            (0 1 5 4)
+        );
+    }
+
+    centreline
+    {
+        type symmetryPlane;
+        faces
+        (
+            (2 3 7 6)
+        );
+    }
+
+    frontAndBack
+    {
+        type empty;
+        faces
+        (
+            (0 1 2 3)
+            (4 5 6 7)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/controlDict b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..a986b1ae759a852285eb187491f744bb70fea438
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/controlDict
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     pimpleFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         25;
+
+deltaT          5e-3;
+
+writeControl    runTime;
+
+writeInterval   1;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision   8;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable true;
+
+functions
+{
+    #includeFunc residuals
+    #includeFunc singleGraph
+    #includeFunc probes
+}
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/fvSchemes b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..c7802ef9357c09d7ecfddf08c464cdc138b4533a
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/fvSchemes
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         backward;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+
+    div(phi,U)      Gauss linearUpwind grad(U);
+    div(phi,sigma)  Gauss vanAlbada;
+
+    div(sigma)                  Gauss linear;
+    div((nu*dev2(T(grad(U)))))  Gauss linear;
+    div((nuM*grad(U)))          Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear uncorrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         uncorrected;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/fvSolution b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..c82c0fb0101772c67cff20330d549c77b5a8a5ef
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/fvSolution
@@ -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       dictionary;
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    p
+    {
+        solver          GAMG;
+        smoother        DIC;
+        tolerance       1e-6;
+        relTol          0.05;
+    }
+
+    "(U|sigma)"
+    {
+        solver          smoothSolver;
+        smoother        symGaussSeidel;
+        tolerance       1e-6;
+        relTol          0.1;
+    }
+
+    pFinal
+    {
+        $p;
+        relTol          0;
+    }
+
+    "(U|sigma)Final"
+    {
+        $U;
+        relTol          0;
+    }
+}
+
+PIMPLE
+{
+    momentumPredictor   off;
+    nOuterCorrectors    15;
+    nCorrectors         3;
+    nNonOrthogonalCorrectors 0;
+    pRefCell            0;
+    pRefValue           0;
+    turbOnFinalIterOnly no;
+}
+
+relaxationFactors
+{
+    equations
+    {
+        ".*"   1;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/probes b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/probes
new file mode 100644
index 0000000000000000000000000000000000000000..6bec7ba300bbdfbf83bcca887f1e8c54085aec1c
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/probes
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Web:      www.OpenFOAM.org
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+Description
+    Writes out values of fields from cells nearest to specified locations.
+
+\*---------------------------------------------------------------------------*/
+
+#includeEtc "caseDicts/postProcessing/probes/probes.cfg"
+
+fields (U);
+probeLocations
+(
+    (0 1 0)
+);
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/residuals b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/residuals
new file mode 100644
index 0000000000000000000000000000000000000000..af061576bd1a7ee769e2f04e97783213f535a037
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/residuals
@@ -0,0 +1,19 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Web:      www.OpenFOAM.org
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+Description
+    For specified fields, writes out the initial residuals for the first
+    solution of each time step; for non-scalar fields (e.g. vectors), writes
+    the largest of the residuals for each component (e.g. x, y, z).
+
+\*---------------------------------------------------------------------------*/
+
+#includeEtc "caseDicts/postProcessing/numerical/residuals.cfg"
+
+fields (p sigma);
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/singleGraph b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/singleGraph
new file mode 100644
index 0000000000000000000000000000000000000000..560dd1c51a18554077d5be633125d8c7aa579631
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/singleGraph
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Web:      www.OpenFOAM.org
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+Description
+    Writes graph data for specified fields along a line, specified by start
+    and end points.
+
+\*---------------------------------------------------------------------------*/
+
+
+// Sampling and I/O settings
+#includeEtc "caseDicts/postProcessing/graphs/sampleDict.cfg"
+
+// Override settings here, e.g.
+// setConfig { type midPoint; }
+
+type            sets;
+libs            ("libsampling.so");
+
+writeControl    writeTime;
+
+interpolationScheme cellPoint;
+
+setFormat   raw;
+
+setConfig
+{
+    type    midPoint;  // midPoint
+    axis    distance;  // x, y, z, xyz
+}
+
+sets
+(
+    line
+    {
+        $setConfig;
+        start (0 0 0);
+        end   (0 1 0);
+    }
+);
+
+fields  (U);
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/Make/files b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..af1834eae111dec4ed527694124f7501b06b9516
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/Make/files
@@ -0,0 +1,3 @@
+WatersKing.C
+
+EXE = $(FOAM_USER_APPBIN)/WatersKing
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/Make/options b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..780009c87677eafea4af40169ebf63b047525dec
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/Make/options
@@ -0,0 +1,14 @@
+EXE_INC = \
+    -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
+    -I$(LIB_SRC)/transportModels \
+    -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
+
+EXE_LIBS = \
+    -lturbulenceModels \
+    -lincompressibleTurbulenceModels \
+    -lincompressibleTransportModels \
+    -lfiniteVolume \
+    -lmeshTools
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/WatersKing.C b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/WatersKing.C
new file mode 100644
index 0000000000000000000000000000000000000000..4f9ebd896be0c7c0c8ad9119fb929f0454ef09b2
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/WatersKing.C
@@ -0,0 +1,146 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Application
+    WatersKing
+
+Description
+    Analytical solution for the start-up planar Poiseuille flow of an
+    Oldroyd-B fluid.
+
+    References:
+    \verbatim
+        Waters, N. D., & King, M. J. (1970).
+        Unsteady flow of an elasto-viscous liquid.
+        Rheologica Acta, 9, 345-355.
+
+        Amoreira, L. J., & Oliveira, P. J. (2010).
+        Comparison of different formulations for the numerical
+        calculation of unsteady incompressible viscoelastic fluid
+        flow. Adv. Appl. Math. Mech, 4, 483-502.
+    \endverbatim
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+#include "singlePhaseTransportModel.H"
+#include "turbulentTransportModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+    #include "setRootCase.H"
+    #include "createTime.H"
+
+    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+    #include "createMesh.H"
+    #include "createFields.H"
+
+    const scalar h = mesh.bounds().span().y();
+    Info<< "Height from centreline to wall = " << h << endl;
+
+    label centrelineID = mesh.boundary().findPatchID("centreline");
+    const vector patchToCell =
+        mesh.boundary()[centrelineID].Cf()[0]
+      - mesh.C()[mesh.findNearestCell(location)];
+
+    const scalar y = patchToCell.y()/h;
+    Info<< "Normalised distance from centreline = " << y << nl << endl;
+
+    const scalar nu0 = nu1 + nu2;
+    const scalar E = lambda*nu0/(rho*sqr(h));
+    const scalar beta = nu2/nu0;
+    const scalar UInf = K*sqr(h)/3.0/nu0;
+
+    Info<< "Waters and King parameters:" << nl
+        << "E =    " << E << nl
+        << "beta = " << beta << nl
+        << "K =    " << K << nl
+        << "UInf = " << UInf << nl << endl;
+
+    label order = 8;
+
+    scalarField ak(order, 0);
+    scalarField bk(order, 0);
+    scalarField ck(order, 0);
+    scalarField B(order, 0);
+
+    forAll(ak, i)
+    {
+        scalar k = i + 1;
+        ak[i] = (2.0*k - 1)/2.0*constant::mathematical::pi*::sqrt(E);
+        bk[i] = (1.0 + beta*sqr(ak[i]))/2.0;
+        ck[i] = ::sqrt(mag(sqr(bk[i]) - sqr(ak[i])));
+        B[i]  = 48*::pow(-1, k)/::pow((2*k - 1)*constant::mathematical::pi, 3)*
+                ::cos((2*k - 1)*constant::mathematical::pi*y/2);
+    }
+
+    scalarField A(order, 0);
+    OFstream file(runTime.path()/"WatersKing.dat");
+    const scalar LOGVGREAT = ::log(VGREAT);
+    while (!runTime.end())
+    {
+        scalar t = runTime.timeOutputValue()/lambda;
+        forAll(A, i)
+        {
+            if (bk[i]*t < LOGVGREAT)
+            {
+                if (bk[i] >= ak[i])
+                {
+                    A[i] = (bk[i] - sqr(ak[i]))/ck[i]*::sinh(ck[i]*t)
+                    + ::cosh(ck[i]*t);
+                }
+                else
+                {
+                    A[i] = (bk[i] - sqr(ak[i]))/ck[i]*::sin(ck[i]*t)
+                         + ::cos(ck[i]*t);
+                }
+                A[i] *= ::exp(-bk[i]*t);
+            }
+            else
+            {
+                Info<< "Coefficient A[" << order << "] = 0" << endl;
+                order = i;
+                Info<< "Resizing A and B to " << order << endl;
+                A.resize(order);
+                B.resize(order);
+            }
+        }
+        scalar U = UInf*(1.5*(1 - sqr(y)) + sum(A*B));
+        file<< runTime.timeName() << token::TAB << U << endl;
+        runTime++;
+    }
+
+    Info<< nl << "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+        << "  ClockTime = " << runTime.elapsedClockTime() << " s"
+        << nl << endl;
+
+    Info<< "End\n" << endl;
+
+    return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/createFields.H b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/createFields.H
new file mode 100644
index 0000000000000000000000000000000000000000..4ae80853b46fbadfaca181a249b95df7eaf55509
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/WatersKing/createFields.H
@@ -0,0 +1,64 @@
+Info<< "Reading transportProperties\n" << endl;
+IOdictionary transportProperties
+(
+    IOobject
+    (
+        "transportProperties",
+        runTime.constant(),
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::NO_WRITE
+    )
+);
+const scalar nu2 =
+    dimensionedScalar
+    (
+        "nu",
+        dimViscosity,
+        transportProperties.lookup("nu")
+    ).value();
+
+Info<< "Reading viscoelastic properties\n" << endl;
+IOdictionary turbulenceProperties
+(
+    IOobject
+    (
+        "turbulenceProperties",
+        runTime.constant(),
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::NO_WRITE
+    )
+);
+const dictionary& MaxwellCoeffs =
+    turbulenceProperties.subDict("laminar").subDict("MaxwellCoeffs");
+const scalar nu1 = readScalar(MaxwellCoeffs.lookup("nuM"));
+const scalar lambda = readScalar(MaxwellCoeffs.lookup("lambda"));
+
+const scalar rho = 1;
+
+Info<< "Reading pressure gradient\n" << endl;
+IOdictionary fvOptions
+(
+    IOobject
+    (
+        "fvOptions",
+        runTime.constant(),
+        mesh,
+        IOobject::MUST_READ,
+        IOobject::NO_WRITE
+    )
+);
+const dictionary& gradPDict =
+    fvOptions.subDict("momentumSource").subDict
+    (
+        "vectorSemiImplicitSourceCoeffs"
+    ).subDict
+    (
+        "injectionRateSuSp"
+    );
+const scalar K =
+    Tuple2<vector, scalar>(gradPDict.lookup("U")).first().x();
+
+dictionary probes(IFstream(runTime.system()/"probes")());
+const point location = pointField(probes.lookup("probeLocations"))[0];
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/createGraph b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/createGraph
new file mode 100755
index 0000000000000000000000000000000000000000..a30402600ef4a7c305a4f6eb368e9798a376b0e8
--- /dev/null
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/createGraph
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+tail -n +4 ../postProcessing/probes/0/U  | \
+    tr -s " " | tr -d '(' | cut -d " " -f2-3 > ../Numerical.dat
+
+if ! which gnuplot > /dev/null 2>&1
+then
+    echo "gnuplot not found - skipping graph creation" >&2
+    exit 1
+fi
+
+gnuplot<<EOF
+    set terminal postscript eps color enhanced "Helvetica,20"
+    set output "planarPoiseuille.eps"
+    set xlabel "Time / [s]" font "Helvetica,24"
+    set ylabel "Velocity / [m/s]" font "Helvetica,24"
+    set grid
+    set key right top
+    set xrange [0:25]
+    set yrange [0:8]
+    plot \
+        "../Numerical.dat" t "OpenFOAM (every 100 pts)" \
+            with linespoints pointinterval 100 lt 1 pt 6 ps 1.5, \
+        "../WatersKing.dat" with lines t "Analytical" lt -1
+EOF
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/Allclean b/tutorials/incompressible/pisoFoam/LES/motorBike/Allclean
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/Allclean
rename to tutorials/incompressible/pisoFoam/LES/motorBike/Allclean
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/Allrun b/tutorials/incompressible/pisoFoam/LES/motorBike/Allrun
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/Allrun
rename to tutorials/incompressible/pisoFoam/LES/motorBike/Allrun
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/Allrun b/tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/Allrun
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/Allrun
rename to tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/Allrun
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/controlDict b/tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/controlDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/controlDict
rename to tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/controlDict
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/fvSchemes b/tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/fvSchemes
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/fvSchemes
rename to tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/fvSchemes
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/fvSolution b/tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/fvSolution
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/fvSolution
rename to tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/fvSolution
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/turbulenceProperties b/tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/turbulenceProperties
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/turbulenceProperties
rename to tutorials/incompressible/pisoFoam/LES/motorBike/lesFiles/turbulenceProperties
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/U b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/U
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/U
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/U
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/include/fixedInlet b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/include/fixedInlet
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/include/fixedInlet
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/include/fixedInlet
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/include/frontBackUpperPatches b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/include/frontBackUpperPatches
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/include/frontBackUpperPatches
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/include/frontBackUpperPatches
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/include/initialConditions b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/include/initialConditions
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/include/initialConditions
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/include/initialConditions
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/k b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/k
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/k
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/k
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/nuTilda b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/nuTilda
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/nuTilda
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/nuTilda
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/nut b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/nut
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/nut
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/nut
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/p b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/p
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/0.orig/p
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/0.orig/p
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/Allclean b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allclean
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/Allclean
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allclean
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/Allrun b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/Allrun
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/constant/polyMesh/blockMeshDict.8pSmall b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/constant/polyMesh/blockMeshDict.8pSmall
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/constant/polyMesh/blockMeshDict.8pSmall
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/constant/polyMesh/blockMeshDict.8pSmall
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/constant/transportProperties b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/constant/transportProperties
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/constant/transportProperties
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/constant/transportProperties
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/constant/triSurface/README b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/constant/triSurface/README
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/constant/triSurface/README
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/constant/triSurface/README
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/constant/turbulenceProperties b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/constant/turbulenceProperties
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/constant/turbulenceProperties
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/constant/turbulenceProperties
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/blockMeshDict b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/blockMeshDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/blockMeshDict
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/blockMeshDict
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/controlDict b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/controlDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/controlDict
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/controlDict
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/cuttingPlane b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/cuttingPlane
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/cuttingPlane
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/cuttingPlane
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/decomposeParDict b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/decomposeParDict
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/decomposeParDict.hierarchical b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict.hierarchical
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/decomposeParDict.hierarchical
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict.hierarchical
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/decomposeParDict.ptscotch b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict.ptscotch
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/decomposeParDict.ptscotch
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict.ptscotch
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/forceCoeffs b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/forceCoeffs
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/forceCoeffs
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/forceCoeffs
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/fvSchemes b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/fvSchemes
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/fvSchemes
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/fvSchemes
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/fvSolution b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/fvSolution
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/fvSolution
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/fvSolution
diff --git a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/runtimePostProcessing b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/runtimePostProcessing
new file mode 100644
index 0000000000000000000000000000000000000000..b331e95ac0a63fa786de9c697ca06ff730dfcaa2
--- /dev/null
+++ b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/runtimePostProcessing
@@ -0,0 +1,122 @@
+postPro1
+{
+    type            runTimePostProcessing;
+    functionObjectLibs ("librunTimePostProcessing.so");
+    outputControl   outputTime;
+    output
+    {
+        name            image;
+        width           2000;
+        height          1200;
+    }
+    camera
+    {
+        // If camera is moving, optionally provide start and end times
+        // startPosition    0.2;
+        // endPosition      0.75;
+
+        // Total number of frames to generate
+        nFrameTotal         1;
+
+        // Parallel projection flag
+        parallelProjection  no;
+
+        // Camera mode:
+        // - flightPath: define flight path
+        // - static: fixed position
+        mode                static;
+        staticCoeffs
+        {
+            clipBox         (-0.2 -0.2 0)(1.65 0.2 1.25); // optional
+            focalPoint      (1.2 1.1 0.2);
+            up              (0 0 1);
+            lookDir         (2.4 4.0 -1.5);
+        }
+    }
+
+    // Default colours
+    // - If select to colourBy colour, these values are used unless
+    // they are locally overriden
+    colours
+    {
+        background      (1 1 1);
+        background2     (0 0 1);
+        text            (0 0 0);
+        edge            (1 0 0);
+        surface         (0.5 0.5 0.5);
+        line            (1 0 0);
+    }
+    // Line data
+    lines
+    {
+        streamline
+        {
+            type            line;
+            functionObject  streamLines;
+            representation  tube;
+            visible         yes;
+            tubeRadius      0.01;
+            colourBy        field;
+            fieldName       U;
+            range           (0 20);
+            opacity         1;
+            scalarBar
+            {
+                visible         yes;
+                position        (0.8 0.1);
+                vertical        yes;
+                fontSize        16;
+                title           "velocity / [m/s]";
+                labelFormat     "%6.2f";
+                numberOfLabels  5;
+            }
+        }
+    }
+
+    // Surface data
+    surfaces
+    {
+        surface1
+        {
+            type            geometry;
+            files           ("$FOAM_CASE/constant/triSurface/motorBike.obj.gz");
+            renderMode      phong;
+            representation  surface;
+            edgeColour      (0 0 0);
+            visible         yes;
+            featureEdges    yes;
+            opacity         1;
+        }
+        cuttingPlane1
+        {
+            type            functionObject;
+            functionObject  cuttingPlane;
+            colourMap       blueWhiteRed;
+            representation  glyph;
+            maxGlyphLength  0.1;
+            visible         yes;
+            featureEdges    no;
+            colourBy        field;
+            fieldName       U;
+            range           (0 30);
+            opacity         1;
+            scalarBar
+            {
+                visible         no;
+            }
+        }
+    }
+
+    // Text data
+    text
+    {
+        text1
+        {
+            string          "Motorbike";
+            position        (0.1 0.05);
+            size            72;
+            bold            yes;
+            visible         yes;
+        }
+    }
+}
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/snappyHexMeshDict b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/snappyHexMeshDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/snappyHexMeshDict
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/snappyHexMeshDict
diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/streamLines b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/streamLines
similarity index 96%
rename from tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/streamLines
rename to tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/streamLines
index 08da9fe7f230c86a6d339de1b8e8a185853f5825..95a07f82e26e87504589b308d8e3e371027eb0ea 100644
--- a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/streamLines
+++ b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/streamLines
@@ -16,6 +16,9 @@ streamLines
 
     setFormat       vtk; //gnuplot; //xmgr; //raw; //jplot; //csv; //ensight;
 
+    // Velocity field to use for tracking.
+    U               U;
+
     // Tracked forwards (+U) or backwards (-U)
     trackForward    true;
 
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/0/U b/tutorials/incompressible/pisoFoam/LES/pitzDaily/0/U
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDaily/0/U
rename to tutorials/incompressible/pisoFoam/LES/pitzDaily/0/U
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/0/k b/tutorials/incompressible/pisoFoam/LES/pitzDaily/0/k
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDaily/0/k
rename to tutorials/incompressible/pisoFoam/LES/pitzDaily/0/k
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/0/nuTilda b/tutorials/incompressible/pisoFoam/LES/pitzDaily/0/nuTilda
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDaily/0/nuTilda
rename to tutorials/incompressible/pisoFoam/LES/pitzDaily/0/nuTilda
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/0/nut b/tutorials/incompressible/pisoFoam/LES/pitzDaily/0/nut
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDaily/0/nut
rename to tutorials/incompressible/pisoFoam/LES/pitzDaily/0/nut
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/0/p b/tutorials/incompressible/pisoFoam/LES/pitzDaily/0/p
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDaily/0/p
rename to tutorials/incompressible/pisoFoam/LES/pitzDaily/0/p
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/0/s b/tutorials/incompressible/pisoFoam/LES/pitzDaily/0/s
similarity index 95%
rename from tutorials/incompressible/pisoFoam/les/pitzDaily/0/s
rename to tutorials/incompressible/pisoFoam/LES/pitzDaily/0/s
index be72c6e32e92dbfec2fed86d25e8206c476f11ae..d97d6a3337fa569f2634805dd9e48aa0cded8dac 100644
--- a/tutorials/incompressible/pisoFoam/les/pitzDaily/0/s
+++ b/tutorials/incompressible/pisoFoam/LES/pitzDaily/0/s
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/constant/transportProperties b/tutorials/incompressible/pisoFoam/LES/pitzDaily/constant/transportProperties
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDaily/constant/transportProperties
rename to tutorials/incompressible/pisoFoam/LES/pitzDaily/constant/transportProperties
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/constant/turbulenceProperties b/tutorials/incompressible/pisoFoam/LES/pitzDaily/constant/turbulenceProperties
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDaily/constant/turbulenceProperties
rename to tutorials/incompressible/pisoFoam/LES/pitzDaily/constant/turbulenceProperties
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/system/blockMeshDict b/tutorials/incompressible/pisoFoam/LES/pitzDaily/system/blockMeshDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDaily/system/blockMeshDict
rename to tutorials/incompressible/pisoFoam/LES/pitzDaily/system/blockMeshDict
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/system/controlDict b/tutorials/incompressible/pisoFoam/LES/pitzDaily/system/controlDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDaily/system/controlDict
rename to tutorials/incompressible/pisoFoam/LES/pitzDaily/system/controlDict
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/system/fvSchemes b/tutorials/incompressible/pisoFoam/LES/pitzDaily/system/fvSchemes
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDaily/system/fvSchemes
rename to tutorials/incompressible/pisoFoam/LES/pitzDaily/system/fvSchemes
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/system/fvSolution b/tutorials/incompressible/pisoFoam/LES/pitzDaily/system/fvSolution
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDaily/system/fvSolution
rename to tutorials/incompressible/pisoFoam/LES/pitzDaily/system/fvSolution
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/0/U b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/0/U
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDailyMapped/0/U
rename to tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/0/U
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/0/k b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/0/k
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDailyMapped/0/k
rename to tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/0/k
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/0/nuTilda b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/0/nuTilda
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDailyMapped/0/nuTilda
rename to tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/0/nuTilda
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/0/nut b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/0/nut
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDailyMapped/0/nut
rename to tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/0/nut
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/0/p b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/0/p
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDailyMapped/0/p
rename to tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/0/p
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/constant/transportProperties b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/constant/transportProperties
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDailyMapped/constant/transportProperties
rename to tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/constant/transportProperties
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/constant/turbulenceProperties b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/constant/turbulenceProperties
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDailyMapped/constant/turbulenceProperties
rename to tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/constant/turbulenceProperties
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/blockMeshDict b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/blockMeshDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/blockMeshDict
rename to tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/blockMeshDict
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/controlDict b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/controlDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/controlDict
rename to tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/controlDict
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/decomposeParDict b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/decomposeParDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/decomposeParDict
rename to tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/decomposeParDict
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/fvSchemes b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/fvSchemes
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/fvSchemes
rename to tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/fvSchemes
diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/fvSolution b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/fvSolution
similarity index 100%
rename from tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/fvSolution
rename to tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/fvSolution
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/0/U b/tutorials/incompressible/pisoFoam/RAS/cavity/0/U
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/0/U
rename to tutorials/incompressible/pisoFoam/RAS/cavity/0/U
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/0/epsilon b/tutorials/incompressible/pisoFoam/RAS/cavity/0/epsilon
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/0/epsilon
rename to tutorials/incompressible/pisoFoam/RAS/cavity/0/epsilon
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/0/k b/tutorials/incompressible/pisoFoam/RAS/cavity/0/k
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/0/k
rename to tutorials/incompressible/pisoFoam/RAS/cavity/0/k
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/0/nuTilda b/tutorials/incompressible/pisoFoam/RAS/cavity/0/nuTilda
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/0/nuTilda
rename to tutorials/incompressible/pisoFoam/RAS/cavity/0/nuTilda
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/0/nut b/tutorials/incompressible/pisoFoam/RAS/cavity/0/nut
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/0/nut
rename to tutorials/incompressible/pisoFoam/RAS/cavity/0/nut
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/0/omega b/tutorials/incompressible/pisoFoam/RAS/cavity/0/omega
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/0/omega
rename to tutorials/incompressible/pisoFoam/RAS/cavity/0/omega
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/0/p b/tutorials/incompressible/pisoFoam/RAS/cavity/0/p
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/0/p
rename to tutorials/incompressible/pisoFoam/RAS/cavity/0/p
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/constant/transportProperties b/tutorials/incompressible/pisoFoam/RAS/cavity/constant/transportProperties
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/constant/transportProperties
rename to tutorials/incompressible/pisoFoam/RAS/cavity/constant/transportProperties
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/constant/turbulenceProperties b/tutorials/incompressible/pisoFoam/RAS/cavity/constant/turbulenceProperties
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/constant/turbulenceProperties
rename to tutorials/incompressible/pisoFoam/RAS/cavity/constant/turbulenceProperties
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/system/blockMeshDict b/tutorials/incompressible/pisoFoam/RAS/cavity/system/blockMeshDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/system/blockMeshDict
rename to tutorials/incompressible/pisoFoam/RAS/cavity/system/blockMeshDict
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/system/controlDict b/tutorials/incompressible/pisoFoam/RAS/cavity/system/controlDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/system/controlDict
rename to tutorials/incompressible/pisoFoam/RAS/cavity/system/controlDict
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/system/fvSchemes b/tutorials/incompressible/pisoFoam/RAS/cavity/system/fvSchemes
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/system/fvSchemes
rename to tutorials/incompressible/pisoFoam/RAS/cavity/system/fvSchemes
diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/system/fvSolution b/tutorials/incompressible/pisoFoam/RAS/cavity/system/fvSolution
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavity/system/fvSolution
rename to tutorials/incompressible/pisoFoam/RAS/cavity/system/fvSolution
diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/U b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/0/U
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/U
rename to tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/0/U
diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/epsilon b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/0/epsilon
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/epsilon
rename to tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/0/epsilon
diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/k b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/0/k
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/k
rename to tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/0/k
diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/nuTilda b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/0/nuTilda
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/nuTilda
rename to tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/0/nuTilda
diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/nut b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/0/nut
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/nut
rename to tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/0/nut
diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/p b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/0/p
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/p
rename to tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/0/p
diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/transportProperties b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/constant/transportProperties
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/transportProperties
rename to tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/constant/transportProperties
diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/turbulenceProperties b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/constant/turbulenceProperties
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/turbulenceProperties
rename to tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/constant/turbulenceProperties
diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/blockMeshDict b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/system/blockMeshDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/blockMeshDict
rename to tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/system/blockMeshDict
diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/controlDict b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/system/controlDict
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/controlDict
rename to tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/system/controlDict
diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSchemes b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/system/fvSchemes
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSchemes
rename to tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/system/fvSchemes
diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSolution b/tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/system/fvSolution
similarity index 100%
rename from tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSolution
rename to tutorials/incompressible/pisoFoam/RAS/cavityCoupledU/system/fvSolution
diff --git a/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/system/backgroundMeshDecomposition/fvSolution b/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/system/backgroundMeshDecomposition/fvSolution
index 1f971d4c7d7814d045bfd88b936a5891547f28be..23ffd4fbadc06cb87f641a49faf8e36abc797b73 100644
--- a/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/system/backgroundMeshDecomposition/fvSolution
+++ b/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/system/backgroundMeshDecomposition/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/system/cellShapeControlMesh/fvSolution b/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/system/cellShapeControlMesh/fvSolution
index 1f971d4c7d7814d045bfd88b936a5891547f28be..23ffd4fbadc06cb87f641a49faf8e36abc797b73 100644
--- a/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/system/cellShapeControlMesh/fvSolution
+++ b/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/system/cellShapeControlMesh/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/shallowWaterFoam/squareBump/.gmtcommands4 b/tutorials/incompressible/shallowWaterFoam/squareBump/.gmtcommands4
deleted file mode 100644
index 2fdd6b92b54e47b55547fa13d01d910012b3adae..0000000000000000000000000000000000000000
--- a/tutorials/incompressible/shallowWaterFoam/squareBump/.gmtcommands4
+++ /dev/null
@@ -1,8 +0,0 @@
-# GMT common arguments shelf
--B0/0
--JX18c/18c
--R0/1/0/1
--jX18c/18c
-EOF
-F
-
diff --git a/tutorials/incompressible/simpleFoam/T3A/0/ReThetat b/tutorials/incompressible/simpleFoam/T3A/0/ReThetat
index 1f872c7cef40b12f1526616f87ddc786b9b62faa..3e9835876eb7ffd11add2dd4a01ff7f7c8d84f95 100644
--- a/tutorials/incompressible/simpleFoam/T3A/0/ReThetat
+++ b/tutorials/incompressible/simpleFoam/T3A/0/ReThetat
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/simpleFoam/T3A/0/U b/tutorials/incompressible/simpleFoam/T3A/0/U
index 2812c86759b6c77157e30026597e35fb3f6385cc..2add32cb42f5533a20cad855f1e3e62723dbe827 100644
--- a/tutorials/incompressible/simpleFoam/T3A/0/U
+++ b/tutorials/incompressible/simpleFoam/T3A/0/U
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/simpleFoam/T3A/0/gammaInt b/tutorials/incompressible/simpleFoam/T3A/0/gammaInt
index e5dd8891e66d8c75aee31a34d466cd87659ba005..38097fcf8a19ba2d5dc3b2388ea95b81bda5a13b 100644
--- a/tutorials/incompressible/simpleFoam/T3A/0/gammaInt
+++ b/tutorials/incompressible/simpleFoam/T3A/0/gammaInt
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/simpleFoam/T3A/0/k b/tutorials/incompressible/simpleFoam/T3A/0/k
index 8ad21a4d6c7fd457a5e4e28e538a07e138be5dbb..08ad0b449a4be7ce9b5c0482667eb217a9e8e2b9 100644
--- a/tutorials/incompressible/simpleFoam/T3A/0/k
+++ b/tutorials/incompressible/simpleFoam/T3A/0/k
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/simpleFoam/T3A/0/nut b/tutorials/incompressible/simpleFoam/T3A/0/nut
index 74358080dbfd685d2ee678ace44c59da8b0e5cce..129d1ce2d4c7d6d3412cd06d6972930b7f74f677 100644
--- a/tutorials/incompressible/simpleFoam/T3A/0/nut
+++ b/tutorials/incompressible/simpleFoam/T3A/0/nut
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/simpleFoam/T3A/0/omega b/tutorials/incompressible/simpleFoam/T3A/0/omega
index 1e3679a1b1d927cbc51f9a839e616cfea34c9785..7c997929cf4730521b86484ff4510b50492f9cc6 100644
--- a/tutorials/incompressible/simpleFoam/T3A/0/omega
+++ b/tutorials/incompressible/simpleFoam/T3A/0/omega
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/simpleFoam/T3A/0/p b/tutorials/incompressible/simpleFoam/T3A/0/p
index c0d9d3395be8c0f317d1549fceca8fd123cb4709..bb97e35c711f863792a046eab6fbc37b2e5c9d82 100644
--- a/tutorials/incompressible/simpleFoam/T3A/0/p
+++ b/tutorials/incompressible/simpleFoam/T3A/0/p
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/simpleFoam/T3A/constant/transportProperties b/tutorials/incompressible/simpleFoam/T3A/constant/transportProperties
index a84d773be4801a8136c93043bb927f406d177ea2..09310886be9e2c20028c1507a7625456084fb31d 100644
--- a/tutorials/incompressible/simpleFoam/T3A/constant/transportProperties
+++ b/tutorials/incompressible/simpleFoam/T3A/constant/transportProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/simpleFoam/T3A/system/blockMeshDict b/tutorials/incompressible/simpleFoam/T3A/system/blockMeshDict
index 8be326f93bbdf0dcdb2b510fdef6e303a25a5a94..552d5a733afadc35ba9e7aca2de510cfc5ea1190 100644
--- a/tutorials/incompressible/simpleFoam/T3A/system/blockMeshDict
+++ b/tutorials/incompressible/simpleFoam/T3A/system/blockMeshDict
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/simpleFoam/T3A/system/fvSchemes b/tutorials/incompressible/simpleFoam/T3A/system/fvSchemes
index 50a05500cf6e1693ab22f5ae726c467f6b3c89ea..feaf482086bac5d68f1f8b2024866f424b6f6951 100644
--- a/tutorials/incompressible/simpleFoam/T3A/system/fvSchemes
+++ b/tutorials/incompressible/simpleFoam/T3A/system/fvSchemes
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/simpleFoam/T3A/system/fvSolution b/tutorials/incompressible/simpleFoam/T3A/system/fvSolution
index c62270502d51b8ffb57750185c8cc2b6c4a74aad..ae094c0e71a6c6a079c8bdbd67c3430819299bab 100644
--- a/tutorials/incompressible/simpleFoam/T3A/system/fvSolution
+++ b/tutorials/incompressible/simpleFoam/T3A/system/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/incompressible/simpleFoam/T3A/system/kGraph b/tutorials/incompressible/simpleFoam/T3A/system/kGraph
index 9afad88eb1ef72a87d37573fce4aa94db776101e..708ad369e1d0e26703e1e2bce0982654ae00c228 100644
--- a/tutorials/incompressible/simpleFoam/T3A/system/kGraph
+++ b/tutorials/incompressible/simpleFoam/T3A/system/kGraph
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/tutorials/incompressible/simpleFoam/T3A/system/wallShearStressGraph b/tutorials/incompressible/simpleFoam/T3A/system/wallShearStressGraph
index 127e647d384676c7b2f9016941b7e4c34a5d80b0..8774ccff609985dd16582a90587d4a829f354cb6 100644
--- a/tutorials/incompressible/simpleFoam/T3A/system/wallShearStressGraph
+++ b/tutorials/incompressible/simpleFoam/T3A/system/wallShearStressGraph
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/tutorials/incompressible/simpleFoam/pitzDaily/system/streamlines b/tutorials/incompressible/simpleFoam/pitzDaily/system/streamlines
index 3ed986047c5c83dba4adbe8e39cf68314a6b89c8..bcf7a7d5322436ac0f53d00e79d4356ff0adbc0b 100644
--- a/tutorials/incompressible/simpleFoam/pitzDaily/system/streamlines
+++ b/tutorials/incompressible/simpleFoam/pitzDaily/system/streamlines
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Web:      www.OpenFOAM.org
+    \\  /    A nd           | Web:      www.OpenFOAM.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 Description
diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/Allclean b/tutorials/lagrangian/reactingParcelFoam/filter/Allclean
index eddae4496c8c0fd5a2837494ab2b86277b794034..7e7333f78c35c9d0bdc6794e91a776d808b25757 100755
--- a/tutorials/lagrangian/reactingParcelFoam/filter/Allclean
+++ b/tutorials/lagrangian/reactingParcelFoam/filter/Allclean
@@ -4,7 +4,7 @@ cd ${0%/*} || exit 1    # Run from this directory
 # Source tutorial clean functions
 . $WM_PROJECT_DIR/bin/tools/CleanFunctions
 
-# Remove 0.org/ copy and post-processing directories
+# Remove 0.orig/ copy and post-processing directories
 \rm -rf 0 postProcessing
 
 cleanCase
diff --git a/tutorials/mesh/foamyHexMesh/blob/system/backgroundMeshDecomposition/fvSolution b/tutorials/mesh/foamyHexMesh/blob/system/backgroundMeshDecomposition/fvSolution
index 740eb61a4bcb97e64ae0b33558f5c7057e7a6d20..39c45aff34bc35d20e87c93cabdbee88918ad277 100644
--- a/tutorials/mesh/foamyHexMesh/blob/system/backgroundMeshDecomposition/fvSolution
+++ b/tutorials/mesh/foamyHexMesh/blob/system/backgroundMeshDecomposition/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/mesh/foamyHexMesh/flange/system/backgroundMeshDecomposition/fvSolution b/tutorials/mesh/foamyHexMesh/flange/system/backgroundMeshDecomposition/fvSolution
index 6368c1229865b54c53db9d5d239567540a12540b..003764a1865a92aeac4f27bbb7148e0fd441cd14 100644
--- a/tutorials/mesh/foamyHexMesh/flange/system/backgroundMeshDecomposition/fvSolution
+++ b/tutorials/mesh/foamyHexMesh/flange/system/backgroundMeshDecomposition/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/system/backgroundMeshDecomposition/fvSolution b/tutorials/mesh/foamyHexMesh/mixerVessel/system/backgroundMeshDecomposition/fvSolution
index b5fc05a8355026cbbf2a38dd0eaee22e3ac9d188..ba2b8c03f3f78eebebfe47ddb170f6f5e9f6916c 100644
--- a/tutorials/mesh/foamyHexMesh/mixerVessel/system/backgroundMeshDecomposition/fvSolution
+++ b/tutorials/mesh/foamyHexMesh/mixerVessel/system/backgroundMeshDecomposition/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/mesh/parallel/filter/Allclean b/tutorials/mesh/parallel/filter/Allclean
index eddae4496c8c0fd5a2837494ab2b86277b794034..7e7333f78c35c9d0bdc6794e91a776d808b25757 100755
--- a/tutorials/mesh/parallel/filter/Allclean
+++ b/tutorials/mesh/parallel/filter/Allclean
@@ -4,7 +4,7 @@ cd ${0%/*} || exit 1    # Run from this directory
 # Source tutorial clean functions
 . $WM_PROJECT_DIR/bin/tools/CleanFunctions
 
-# Remove 0.org/ copy and post-processing directories
+# Remove 0.orig/ copy and post-processing directories
 \rm -rf 0 postProcessing
 
 cleanCase
diff --git a/tutorials/mesh/parallel/filter/Allrun b/tutorials/mesh/parallel/filter/Allrun
index 4be640030bc21cd4ba3faceacaa35ed29cb43fa4..0114f7829d55dc091a0406f0ebead592710c7641 100755
--- a/tutorials/mesh/parallel/filter/Allrun
+++ b/tutorials/mesh/parallel/filter/Allrun
@@ -9,7 +9,7 @@ application=$(getApplication)
 # Create mesh
 runApplication blockMesh
 
-# Restore 0/ from 0.org/
+# Restore 0/ from 0.orig/
 restore0Dir
 
 # Create sets
diff --git a/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/Allrun b/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/Allrun
index 188dbba1cde0064156c4222d3fd5ebbad406d04f..b5139052585786476764b1b342c5f887339d82f8 100755
--- a/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/Allrun
+++ b/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/Allrun
@@ -13,7 +13,7 @@ m4 system/pachuka.m4 > system/blockMeshDict
 
 runApplication blockMesh
 
-\cp 0/alpha.water.org 0/alpha.water
+\cp 0/alpha.water.orig 0/alpha.water
 
 # create faceSet for burner inlet and faceZone for coupled wall
 runApplication topoSet
diff --git a/tutorials/multiphase/cavitatingFoam/les/Allrun b/tutorials/multiphase/cavitatingFoam/LES/Allrun
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/Allrun
rename to tutorials/multiphase/cavitatingFoam/LES/Allrun
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/0/U b/tutorials/multiphase/cavitatingFoam/LES/throttle/0/U
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/0/U
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/0/U
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/0/alpha.vapour b/tutorials/multiphase/cavitatingFoam/LES/throttle/0/alpha.vapour
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/0/alpha.vapour
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/0/alpha.vapour
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/0/k b/tutorials/multiphase/cavitatingFoam/LES/throttle/0/k
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/0/k
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/0/k
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/0/nut b/tutorials/multiphase/cavitatingFoam/LES/throttle/0/nut
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/0/nut
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/0/nut
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/0/p b/tutorials/multiphase/cavitatingFoam/LES/throttle/0/p
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/0/p
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/0/p
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/0/rho b/tutorials/multiphase/cavitatingFoam/LES/throttle/0/rho
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/0/rho
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/0/rho
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/Allclean b/tutorials/multiphase/cavitatingFoam/LES/throttle/Allclean
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/Allclean
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/Allclean
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/Allrun b/tutorials/multiphase/cavitatingFoam/LES/throttle/Allrun
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/Allrun
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/Allrun
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/constant/thermodynamicProperties b/tutorials/multiphase/cavitatingFoam/LES/throttle/constant/thermodynamicProperties
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/constant/thermodynamicProperties
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/constant/thermodynamicProperties
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/constant/transportProperties b/tutorials/multiphase/cavitatingFoam/LES/throttle/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/constant/transportProperties
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/constant/transportProperties
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/constant/turbulenceProperties b/tutorials/multiphase/cavitatingFoam/LES/throttle/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/constant/turbulenceProperties
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/constant/turbulenceProperties
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/system/blockMeshDict b/tutorials/multiphase/cavitatingFoam/LES/throttle/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/system/blockMeshDict
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/system/blockMeshDict
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/system/controlDict b/tutorials/multiphase/cavitatingFoam/LES/throttle/system/controlDict
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/system/controlDict
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/system/controlDict
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/system/fvSchemes b/tutorials/multiphase/cavitatingFoam/LES/throttle/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/system/fvSchemes
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/system/fvSchemes
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/system/fvSolution b/tutorials/multiphase/cavitatingFoam/LES/throttle/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/system/fvSolution
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/system/fvSolution
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/system/refineMeshDict b/tutorials/multiphase/cavitatingFoam/LES/throttle/system/refineMeshDict
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/system/refineMeshDict
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/system/refineMeshDict
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/system/topoSetDict.1 b/tutorials/multiphase/cavitatingFoam/LES/throttle/system/topoSetDict.1
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/system/topoSetDict.1
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/system/topoSetDict.1
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/system/topoSetDict.2 b/tutorials/multiphase/cavitatingFoam/LES/throttle/system/topoSetDict.2
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/system/topoSetDict.2
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/system/topoSetDict.2
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/system/topoSetDict.3 b/tutorials/multiphase/cavitatingFoam/LES/throttle/system/topoSetDict.3
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle/system/topoSetDict.3
rename to tutorials/multiphase/cavitatingFoam/LES/throttle/system/topoSetDict.3
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/0.orig/U b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/0.orig/U
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/0.orig/U
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/0.orig/U
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/0.orig/alpha.vapour b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/0.orig/alpha.vapour
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/0.orig/alpha.vapour
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/0.orig/alpha.vapour
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/0.orig/k b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/0.orig/k
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/0.orig/k
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/0.orig/k
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/0.orig/nut b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/0.orig/nut
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/0.orig/nut
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/0.orig/nut
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/0.orig/p b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/0.orig/p
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/0.orig/p
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/0.orig/p
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/0.orig/rho b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/0.orig/rho
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/0.orig/rho
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/0.orig/rho
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/Allclean b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/Allclean
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/Allclean
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/Allclean
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/Allrun b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/Allrun
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/Allrun
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/Allrun
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/constant/thermodynamicProperties b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/thermodynamicProperties
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/constant/thermodynamicProperties
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/thermodynamicProperties
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/constant/transportProperties b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/constant/transportProperties
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/transportProperties
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/constant/turbulenceProperties b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/constant/turbulenceProperties
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/constant/turbulenceProperties
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/blockMeshDict b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/system/blockMeshDict
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/blockMeshDict
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/controlDict b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/system/controlDict
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/controlDict
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/decomposeParDict b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/system/decomposeParDict
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/decomposeParDict
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/fvSchemes b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/system/fvSchemes
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/fvSchemes
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/fvSolution b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/system/fvSolution
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/fvSolution
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/mapFieldsDict b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/mapFieldsDict
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/system/mapFieldsDict
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/mapFieldsDict
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/refineMeshDict b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/refineMeshDict
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/system/refineMeshDict
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/refineMeshDict
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/topoSetDict.1 b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/topoSetDict.1
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/system/topoSetDict.1
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/topoSetDict.1
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/topoSetDict.2 b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/topoSetDict.2
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/system/topoSetDict.2
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/topoSetDict.2
diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/system/topoSetDict.3 b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/topoSetDict.3
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/les/throttle3D/system/topoSetDict.3
rename to tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/topoSetDict.3
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/0/U b/tutorials/multiphase/cavitatingFoam/RAS/throttle/0/U
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/0/U
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/0/U
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/0/alpha.vapour b/tutorials/multiphase/cavitatingFoam/RAS/throttle/0/alpha.vapour
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/0/alpha.vapour
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/0/alpha.vapour
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/0/k b/tutorials/multiphase/cavitatingFoam/RAS/throttle/0/k
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/0/k
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/0/k
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/0/nut b/tutorials/multiphase/cavitatingFoam/RAS/throttle/0/nut
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/0/nut
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/0/nut
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/0/omega b/tutorials/multiphase/cavitatingFoam/RAS/throttle/0/omega
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/0/omega
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/0/omega
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/0/p b/tutorials/multiphase/cavitatingFoam/RAS/throttle/0/p
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/0/p
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/0/p
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/0/rho b/tutorials/multiphase/cavitatingFoam/RAS/throttle/0/rho
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/0/rho
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/0/rho
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/Allclean b/tutorials/multiphase/cavitatingFoam/RAS/throttle/Allclean
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/Allclean
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/Allclean
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/Allrun b/tutorials/multiphase/cavitatingFoam/RAS/throttle/Allrun
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/Allrun
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/Allrun
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/constant/thermodynamicProperties b/tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/thermodynamicProperties
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/constant/thermodynamicProperties
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/thermodynamicProperties
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/constant/transportProperties b/tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/constant/transportProperties
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/transportProperties
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/constant/turbulenceProperties b/tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/constant/turbulenceProperties
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/constant/turbulenceProperties
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/system/blockMeshDict b/tutorials/multiphase/cavitatingFoam/RAS/throttle/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/system/blockMeshDict
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/system/blockMeshDict
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/system/controlDict b/tutorials/multiphase/cavitatingFoam/RAS/throttle/system/controlDict
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/system/controlDict
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/system/controlDict
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/system/fvSchemes b/tutorials/multiphase/cavitatingFoam/RAS/throttle/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/system/fvSchemes
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/system/fvSchemes
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/system/fvSolution b/tutorials/multiphase/cavitatingFoam/RAS/throttle/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/system/fvSolution
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/system/fvSolution
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/system/refineMeshDict b/tutorials/multiphase/cavitatingFoam/RAS/throttle/system/refineMeshDict
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/system/refineMeshDict
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/system/refineMeshDict
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/system/topoSetDict.1 b/tutorials/multiphase/cavitatingFoam/RAS/throttle/system/topoSetDict.1
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/system/topoSetDict.1
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/system/topoSetDict.1
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/system/topoSetDict.2 b/tutorials/multiphase/cavitatingFoam/RAS/throttle/system/topoSetDict.2
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/system/topoSetDict.2
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/system/topoSetDict.2
diff --git a/tutorials/multiphase/cavitatingFoam/ras/throttle/system/topoSetDict.3 b/tutorials/multiphase/cavitatingFoam/RAS/throttle/system/topoSetDict.3
similarity index 100%
rename from tutorials/multiphase/cavitatingFoam/ras/throttle/system/topoSetDict.3
rename to tutorials/multiphase/cavitatingFoam/RAS/throttle/system/topoSetDict.3
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/0/T b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/0/T
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/0/T
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/0/T
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/U b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/0/U
similarity index 88%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/U
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/0/U
index 0b9660bb1bed9dd7f9dae436c4ac6ab981085e32..e18422b1de70bcafb4d5148125b2c2c329d429a5 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/U
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/alpha.water.orig b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/0/alpha.water.orig
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/0/alpha.water.orig
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/0/alpha.water.orig
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/0/p b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/0/p
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/0/p
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/0/p
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/0/p_rgh b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/0/p_rgh
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/0/p_rgh
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/Allclean b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/Allclean
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/Allclean
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allrun b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/Allrun
similarity index 81%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allrun
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/Allrun
index c1f08e0d5a1992512f06dfb64a4de45e49cd36d0..603304a5ae32ab7377ac84e7e38028913058ab0f 100755
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allrun
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/Allrun
@@ -6,8 +6,8 @@ cd ${0%/*} || exit 1    # Run from this directory
 
 m4 system/blockMeshDict.m4 > system/blockMeshDict
 runApplication blockMesh
-\cp 0/alpha.water.orig 0/alpha.water
+cp 0/alpha.water.orig 0/alpha.water
 runApplication setFields
-runApplication $(getApplication)
+runApplication `getApplication`
 
 #------------------------------------------------------------------------------
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
similarity index 90%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
index 34f15c02b714294f0bcf78b6f7645011fc77f853..d02a77dba8f31c78e01a04fb2e491f47d916fe21 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/dynamicMeshDict
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/g b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/g
similarity index 86%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/g
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/g
index abc208807166736c3e6e79b6af09a77709e4c8b2..9a3b78db7e1f18acdc41ce5769d8ed8dc2756014 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/g
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/g
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/thermophysicalProperties b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/thermophysicalProperties
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/thermophysicalProperties.air b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties.air
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/thermophysicalProperties.air
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties.air
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/thermophysicalProperties.water b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties.water
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/thermophysicalProperties.water
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/thermophysicalProperties.water
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/transportProperties
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/transportProperties
index 77e658d5c3609621f9aff003ab360e06d6f9628b..f746c06799895859b24017172245daee63f6b2a2 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/transportProperties
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/transportProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/turbulenceProperties b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..c2c3b28a1b4e8f4a2cae55f58bd61f9b1a67b488
--- /dev/null
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/blockMeshDict.m4 b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/blockMeshDict.m4
similarity index 96%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/blockMeshDict.m4
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/blockMeshDict.m4
index cc8f7c321263d08fd1ec39f2e7f0fbe108ae53b6..8285c3af966ad1948fe17e4883ee8ed5d357dd50 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/blockMeshDict.m4
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/blockMeshDict.m4
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/system/controlDict b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/system/controlDict
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/decomposeParDict b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/decomposeParDict
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/decomposeParDict
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/decomposeParDict
index 4b8c326537f15ea0b64d16cdabaea4e65302fae4..62f61b7350604b918cd56af06b2b2267ad3da746 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/decomposeParDict
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/decomposeParDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/system/fvSchemes b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/system/fvSchemes
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/fvSchemes
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/system/fvSolution b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/system/fvSolution
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/setFieldsDict b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/setFieldsDict
similarity index 88%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/setFieldsDict
rename to tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/setFieldsDict
index ee3b7933923189b19577cbef6144de38befcd0cc..75a2dfccb82c5a9d720f80695f612f9a36f57515 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/setFieldsDict
+++ b/tutorials/multiphase/compressibleInterDyMFoam/RAS/sloshingTank2D/system/setFieldsDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/0/U b/tutorials/multiphase/driftFluxFoam/RAS/dahl/0/U
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/0/U
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/0/U
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/0/alpha.sludge b/tutorials/multiphase/driftFluxFoam/RAS/dahl/0/alpha.sludge
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/0/alpha.sludge
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/0/alpha.sludge
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/0/epsilon b/tutorials/multiphase/driftFluxFoam/RAS/dahl/0/epsilon
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/0/epsilon
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/0/epsilon
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/0/k b/tutorials/multiphase/driftFluxFoam/RAS/dahl/0/k
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/0/k
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/0/k
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/0/nut b/tutorials/multiphase/driftFluxFoam/RAS/dahl/0/nut
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/0/nut
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/0/nut
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/0/p_rgh b/tutorials/multiphase/driftFluxFoam/RAS/dahl/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/0/p_rgh
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/0/p_rgh
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/constant/g b/tutorials/multiphase/driftFluxFoam/RAS/dahl/constant/g
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/constant/g
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/constant/g
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/constant/transportProperties b/tutorials/multiphase/driftFluxFoam/RAS/dahl/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/constant/transportProperties
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/constant/transportProperties
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/constant/turbulenceProperties b/tutorials/multiphase/driftFluxFoam/RAS/dahl/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/constant/turbulenceProperties
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/constant/turbulenceProperties
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/system/blockMeshDict b/tutorials/multiphase/driftFluxFoam/RAS/dahl/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/system/blockMeshDict
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/system/blockMeshDict
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/system/controlDict b/tutorials/multiphase/driftFluxFoam/RAS/dahl/system/controlDict
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/system/controlDict
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/system/controlDict
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/system/fvSchemes b/tutorials/multiphase/driftFluxFoam/RAS/dahl/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/system/fvSchemes
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/system/fvSchemes
diff --git a/tutorials/multiphase/driftFluxFoam/ras/dahl/system/fvSolution b/tutorials/multiphase/driftFluxFoam/RAS/dahl/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/dahl/system/fvSolution
rename to tutorials/multiphase/driftFluxFoam/RAS/dahl/system/fvSolution
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/0/U b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/0/U
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/0/U
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/0/U
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/0/alpha.sludge b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/0/alpha.sludge
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/0/alpha.sludge
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/0/alpha.sludge
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/0/epsilon b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/0/epsilon
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/0/epsilon
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/0/epsilon
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/0/k b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/0/k
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/0/k
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/0/k
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/0/nut b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/0/nut
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/0/nut
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/0/nut
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/0/p_rgh b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/0/p_rgh
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/0/p_rgh
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/Allrun b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/Allrun
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/Allrun
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/Allrun
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/constant/MRFProperties b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/constant/MRFProperties
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/constant/MRFProperties
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/constant/MRFProperties
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/constant/g b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/constant/g
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/constant/g
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/constant/g
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/constant/transportProperties b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/constant/transportProperties
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/constant/transportProperties
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/constant/turbulenceProperties b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/constant/turbulenceProperties
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/constant/turbulenceProperties
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/makeMesh b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/makeMesh
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/makeMesh
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/makeMesh
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/system/blockMeshDict.m4 b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/system/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/system/blockMeshDict.m4
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/system/blockMeshDict.m4
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/system/controlDict b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/system/controlDict
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/system/controlDict
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/system/fvSchemes b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/system/fvSchemes
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/system/fvSchemes
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/system/fvSolution b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/system/fvSolution
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/system/fvSolution
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/system/setFieldsDict b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/system/setFieldsDict
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/system/setFieldsDict
diff --git a/tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/system/topoSetDict b/tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/system/topoSetDict
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/mixerVessel2D/system/topoSetDict
rename to tutorials/multiphase/driftFluxFoam/RAS/mixerVessel2D/system/topoSetDict
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/0/U b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/0/U
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/0/U
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/0/U
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/0/alpha.sludge b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/0/alpha.sludge
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/0/alpha.sludge
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/0/alpha.sludge
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/0/epsilon b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/0/epsilon
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/0/epsilon
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/0/epsilon
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/0/k b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/0/k
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/0/k
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/0/k
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/0/nut b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/0/nut
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/0/nut
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/0/nut
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/0/p_rgh b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/0/p_rgh
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/0/p_rgh
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/Allclean b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/Allclean
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/Allclean
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/Allclean
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/Allrun b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/Allrun
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/Allrun
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/Allrun
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/g b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/g
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/g
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/g
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/polyMesh/boundary b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/polyMesh/boundary
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/polyMesh/cells.gz b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/polyMesh/cells.gz
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/polyMesh/cells.gz
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/polyMesh/cells.gz
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/polyMesh/faces.gz b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/polyMesh/faces.gz
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/polyMesh/faces.gz
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/polyMesh/faces.gz
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/polyMesh/neighbour.gz b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/polyMesh/neighbour.gz
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/polyMesh/neighbour.gz
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/polyMesh/neighbour.gz
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/polyMesh/owner.gz b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/polyMesh/owner.gz
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/polyMesh/owner.gz
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/polyMesh/owner.gz
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/polyMesh/points.gz b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/polyMesh/points.gz
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/polyMesh/points.gz
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/polyMesh/points.gz
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/transportProperties b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/transportProperties
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/transportProperties
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/turbulenceProperties b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/constant/turbulenceProperties
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/constant/turbulenceProperties
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/system/controlDict b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/system/controlDict
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/system/controlDict
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/system/fvSchemes b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/system/fvSchemes
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/system/fvSchemes
diff --git a/tutorials/multiphase/driftFluxFoam/ras/tank3D/system/fvSolution b/tutorials/multiphase/driftFluxFoam/RAS/tank3D/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/driftFluxFoam/ras/tank3D/system/fvSolution
rename to tutorials/multiphase/driftFluxFoam/RAS/tank3D/system/fvSolution
diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/T b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/T
index 1c3c7eb1b5fb85b6cd38a1ba0c539a76f616ae98..e909b4147cdffac9750c8fd6c7fe60c0840eb243 100644
--- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/T
+++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/T
@@ -35,8 +35,8 @@ boundaryField
         type            compressible::turbulentHeatFluxTemperature;
         heatSource      flux;
         q               uniform -40e3;
-        kappa           fluidThermo;
-        kappaName       none;
+        kappaMethod     fluidThermo;
+        kappa           none;
         value           $internalField;
     }
     right
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/U b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/U
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/U
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/alpha.water b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/alpha.water
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/alpha.water
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/alpha.water
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/k b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/k
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/k
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/k
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/nut b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/nut
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/nut
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/nut
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/omega b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/omega
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/omega
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/omega
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/p_rgh b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/p_rgh
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/p_rgh
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/p_rgh
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/pointDisplacement b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/pointDisplacement
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/0.orig/pointDisplacement
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/0.orig/pointDisplacement
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/Allclean b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/Allclean
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/Allclean
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/Allrun b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/Allrun
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/Allrun
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/README b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/README
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/README
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/README
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/dynamicMeshDict.sixDoF b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict.sixDoF
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/dynamicMeshDict.sixDoF
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/dynamicMeshDict.sixDoF
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/g b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/g
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/g
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/g
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/hRef b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/hRef
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/hRef
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/hRef
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/triSurface/README b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/triSurface/README
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/triSurface/README
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/triSurface/README
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/blockMeshDict b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/blockMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/controlDict b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/controlDict
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/fvSchemes b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/meshQualityDict b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/meshQualityDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/meshQualityDict
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/meshQualityDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/refineMeshDict b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/refineMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/refineMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/refineMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/snappyHexMeshDict b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/snappyHexMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/snappyHexMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/snappyHexMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/surfaceFeatureExtractDict b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/surfaceFeatureExtractDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/surfaceFeatureExtractDict
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/surfaceFeatureExtractDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.1 b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/topoSetDict.1
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.1
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/topoSetDict.1
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.2 b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/topoSetDict.2
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.2
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/topoSetDict.2
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.3 b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/topoSetDict.3
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.3
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/topoSetDict.3
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.4 b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/topoSetDict.4
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.4
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/topoSetDict.4
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.5 b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/topoSetDict.5
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.5
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/topoSetDict.5
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.6 b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/topoSetDict.6
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.6
rename to tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/topoSetDict.6
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/U b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/U
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/U
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/alpha.water b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/alpha.water
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/alpha.water
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/alpha.water
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/alpha.water.orig b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/alpha.water.orig
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/alpha.water.orig
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/k b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/k
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/k
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/k
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/nut b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/nut
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/nut
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/nut
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/omega b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/omega
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/omega
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/omega
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/p_rgh b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/p_rgh
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/0.orig/p_rgh
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/0.orig/p_rgh
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/Allclean b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/Allclean
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/Allrun b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/Allrun
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..c2c3b28a1b4e8f4a2cae55f58bd61f9b1a67b488
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/createObstacle.setSet b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/createObstacle.setSet
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/createObstacle.setSet
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/createObstacle.setSet
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/blockMeshDict b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/blockMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/controlDict b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/controlDict
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSchemes b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/topoSetDict b/tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/topoSetDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/topoSetDict
rename to tutorials/multiphase/interDyMFoam/RAS/damBreakWithObstacle/system/topoSetDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/U b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/U
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/U
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/alpha.water b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/alpha.water
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/alpha.water
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/alpha.water
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/epsilon b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/epsilon
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/epsilon
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/epsilon
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/k b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/k
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/k
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/k
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/nut b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/nut
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/nut
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/nut
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/p_rgh b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/p_rgh
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/p_rgh
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/p_rgh
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/pointDisplacement b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/pointDisplacement
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/0.orig/pointDisplacement
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/0.orig/pointDisplacement
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/Allclean b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/Allclean
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/Allrun b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/Allrun
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/dynamicMeshDict.sixDoF b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict.sixDoF
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/dynamicMeshDict.sixDoF
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/dynamicMeshDict.sixDoF
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/g b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/g
similarity index 86%
rename from tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/g
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/g
index abc208807166736c3e6e79b6af09a77709e4c8b2..9a3b78db7e1f18acdc41ce5769d8ed8dc2756014 100644
--- a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/g
+++ b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/g
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/transportProperties
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/transportProperties
index 77e658d5c3609621f9aff003ab360e06d6f9628b..f746c06799895859b24017172245daee63f6b2a2 100644
--- a/tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/transportProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/system/blockMeshDict b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/system/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/blockMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/system/controlDict b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/system/controlDict
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/system/fvSchemes b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/system/topoSetDict b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/topoSetDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/system/topoSetDict
rename to tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/topoSetDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/0.orig/U b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/0.orig/U
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/0.orig/U
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/0.orig/U
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/0.orig/alpha.water b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/0.orig/alpha.water
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/0.orig/alpha.water
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/0.orig/alpha.water
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/0.orig/epsilon b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/0.orig/epsilon
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/0.orig/epsilon
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/0.orig/epsilon
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/0.orig/k b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/0.orig/k
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/0.orig/k
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/0.orig/k
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/0.orig/nut b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/0.orig/nut
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/0.orig/nut
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/0.orig/nut
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/0.orig/p_rgh b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/0.orig/p_rgh
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/0.orig/p_rgh
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/0.orig/p_rgh
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/Allclean b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/Allclean
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/Allrun b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/Allrun
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/Allrun.pre b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/Allrun.pre
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/Allrun.pre
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/Allrun.pre
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/g b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/g
similarity index 86%
rename from tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/g
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/g
index abc208807166736c3e6e79b6af09a77709e4c8b2..9a3b78db7e1f18acdc41ce5769d8ed8dc2756014 100644
--- a/tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/g
+++ b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/g
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/baffles.stl b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/baffles.stl
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/baffles.stl
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/baffles.stl
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/gasInlet.stl b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/gasInlet.stl
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/gasInlet.stl
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/gasInlet.stl
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/outlet.stl b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/outlet.stl
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/outlet.stl
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/outlet.stl
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/problemFaces b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/problemFaces
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/problemFaces
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/problemFaces
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/rotating.stl b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/rotating.stl
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/rotating.stl
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/rotating.stl
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/shaft.stl b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/shaft.stl
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/shaft.stl
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/shaft.stl
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/shaftRotating.stl b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/shaftRotating.stl
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/shaftRotating.stl
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/shaftRotating.stl
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/sparger.stl b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/sparger.stl
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/sparger.stl
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/sparger.stl
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/stirrer.stl b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/stirrer.stl
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/stirrer.stl
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/stirrer.stl
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/vessel.stl b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/vessel.stl
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/triSurface/vessel.stl
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/triSurface/vessel.stl
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/blockMeshDict b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/blockMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/controlDict b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/controlDict
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/controlDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/createBafflesDict b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/createBafflesDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/createBafflesDict
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/createBafflesDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/fvSchemes b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/fvSchemes
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/fvSolution
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/snappyHexMeshDict b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/snappyHexMeshDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/snappyHexMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/snappyHexMeshDict
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/surfaceFeatureExtractDict b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/surfaceFeatureExtractDict
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/system/surfaceFeatureExtractDict
rename to tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/surfaceFeatureExtractDict
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/U b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/U
similarity index 88%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/U
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/U
index 0b9660bb1bed9dd7f9dae436c4ac6ab981085e32..e18422b1de70bcafb4d5148125b2c2c329d429a5 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/U
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/alpha.water.orig
similarity index 94%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/0/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/alpha.water.orig
index 70366ec29f7aae0cb1cc50f62a3d186553321883..0a30f6e7e0765778415db83c9943c5350310ecad 100644
--- a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/0/alpha.water.orig
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/alpha.water.orig
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/p_rgh b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/p_rgh
new file mode 100644
index 0000000000000000000000000000000000000000..66122dcff0e940326df3740c0bf86c718991a247
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/0/p_rgh
@@ -0,0 +1,37 @@
+/*--------------------------------*- 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;
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    front
+    {
+        type            empty;
+    }
+    back
+    {
+        type            empty;
+    }
+    walls
+    {
+        type            fixedFluxPressure;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allclean b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/Allclean
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allrun b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/Allrun
similarity index 81%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allrun
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/Allrun
index c1f08e0d5a1992512f06dfb64a4de45e49cd36d0..603304a5ae32ab7377ac84e7e38028913058ab0f 100755
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allrun
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/Allrun
@@ -6,8 +6,8 @@ cd ${0%/*} || exit 1    # Run from this directory
 
 m4 system/blockMeshDict.m4 > system/blockMeshDict
 runApplication blockMesh
-\cp 0/alpha.water.orig 0/alpha.water
+cp 0/alpha.water.orig 0/alpha.water
 runApplication setFields
-runApplication $(getApplication)
+runApplication `getApplication`
 
 #------------------------------------------------------------------------------
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
similarity index 90%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
index 34f15c02b714294f0bcf78b6f7645011fc77f853..d02a77dba8f31c78e01a04fb2e491f47d916fe21 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/dynamicMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/g b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/g
similarity index 86%
rename from tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/g
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/g
index abc208807166736c3e6e79b6af09a77709e4c8b2..9a3b78db7e1f18acdc41ce5769d8ed8dc2756014 100644
--- a/tutorials/multiphase/interDyMFoam/ras/mixerVesselAMI/constant/g
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/g
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/transportProperties
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/transportProperties
index 469a80c5846e9bb59f5ba405e5d554fc8d8f566c..e0fdefd56e43e498b875e3bc60e7a87d9f7aa595 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/transportProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..c2c3b28a1b4e8f4a2cae55f58bd61f9b1a67b488
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/blockMeshDict.m4
similarity index 96%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/blockMeshDict.m4
index cc8f7c321263d08fd1ec39f2e7f0fbe108ae53b6..8285c3af966ad1948fe17e4883ee8ed5d357dd50 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/blockMeshDict.m4
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/blockMeshDict.m4
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/controlDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/controlDict
similarity index 93%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/controlDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/controlDict
index 9044a220a873deca672be7c080ba2a9f7027797a..53812a4db3fd374be3d133e3dc50d515d7aef0bb 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/controlDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/controlDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/decomposeParDict
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/decomposeParDict
index 4b8c326537f15ea0b64d16cdabaea4e65302fae4..62f61b7350604b918cd56af06b2b2267ad3da746 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/decomposeParDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/decomposeParDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSchemes
similarity index 90%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSchemes
index 33f70de79d6c022c65e0336b478ae245640e6642..2d0ecbd0e1b722f6b1f0e60a87e12a449d4db283 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/fvSchemes
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSchemes
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSolution
similarity index 94%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSolution
index 24676d65528c969ec70c2f74d3d79b3f74dd820b..97f5144002828f54554f334ab6cdb9a0bc8ba7f4 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/fvSolution
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/setFieldsDict
similarity index 88%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/setFieldsDict
index ee3b7933923189b19577cbef6144de38befcd0cc..75a2dfccb82c5a9d720f80695f612f9a36f57515 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/setFieldsDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D/system/setFieldsDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/0/U b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/U
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/0/U
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/U
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/alpha.water.orig
similarity index 94%
rename from tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/alpha.water.orig
index 70366ec29f7aae0cb1cc50f62a3d186553321883..0a30f6e7e0765778415db83c9943c5350310ecad 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/0/alpha.water.orig
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/alpha.water.orig
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/p_rgh b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/p_rgh
new file mode 100644
index 0000000000000000000000000000000000000000..66122dcff0e940326df3740c0bf86c718991a247
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/0/p_rgh
@@ -0,0 +1,37 @@
+/*--------------------------------*- 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;
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    front
+    {
+        type            empty;
+    }
+    back
+    {
+        type            empty;
+    }
+    walls
+    {
+        type            fixedFluxPressure;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allclean b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/Allclean
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/Allrun b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/Allrun
similarity index 81%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/Allrun
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/Allrun
index c1f08e0d5a1992512f06dfb64a4de45e49cd36d0..603304a5ae32ab7377ac84e7e38028913058ab0f 100755
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/Allrun
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/Allrun
@@ -6,8 +6,8 @@ cd ${0%/*} || exit 1    # Run from this directory
 
 m4 system/blockMeshDict.m4 > system/blockMeshDict
 runApplication blockMesh
-\cp 0/alpha.water.orig 0/alpha.water
+cp 0/alpha.water.orig 0/alpha.water
 runApplication setFields
-runApplication $(getApplication)
+runApplication `getApplication`
 
 #------------------------------------------------------------------------------
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/dynamicMeshDict
similarity index 90%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/dynamicMeshDict
index c83b31bb9ad70fce7a948f2dcf06646b6f905b94..256d87cc3f9d0fa71c4d09742fa76c77eae20820 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/dynamicMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/g b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/g
new file mode 100644
index 0000000000000000000000000000000000000000..9a3b78db7e1f18acdc41ce5769d8ed8dc2756014
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/g
@@ -0,0 +1,22 @@
+/*--------------------------------*- 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       uniformDimensionedVectorField;
+    location    "constant";
+    object      g;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -2 0 0 0 0];
+value           (0 0 -9.81);
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/transportProperties
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/transportProperties
index 77e658d5c3609621f9aff003ab360e06d6f9628b..f746c06799895859b24017172245daee63f6b2a2 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/transportProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..c2c3b28a1b4e8f4a2cae55f58bd61f9b1a67b488
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/system/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/system/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/blockMeshDict.m4
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/controlDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/controlDict
similarity index 93%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/controlDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/controlDict
index 643153a8336b9c2ec4dfc4bf38074ac11a4b2dd9..085963018dd041db7d27e36594421bb1d0852a67 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/controlDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/controlDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/decomposeParDict
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/decomposeParDict
index 4b8c326537f15ea0b64d16cdabaea4e65302fae4..62f61b7350604b918cd56af06b2b2267ad3da746 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/decomposeParDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/decomposeParDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/fvSchemes b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSchemes
similarity index 90%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSchemes
index 33f70de79d6c022c65e0336b478ae245640e6642..2d0ecbd0e1b722f6b1f0e60a87e12a449d4db283 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/fvSchemes
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSchemes
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSolution
similarity index 94%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSolution
index 24676d65528c969ec70c2f74d3d79b3f74dd820b..97f5144002828f54554f334ab6cdb9a0bc8ba7f4 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/fvSolution
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/setFieldsDict
similarity index 88%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/setFieldsDict
index ee3b7933923189b19577cbef6144de38befcd0cc..75a2dfccb82c5a9d720f80695f612f9a36f57515 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/setFieldsDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank2D3DoF/system/setFieldsDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/U b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/U
similarity index 87%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/U
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/U
index b2ee2a55568a06d4075ed8967ce85f895d102aa1..679e9be0fb4f56deaf44c9404531ce7bd9b3ce2f 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/U
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/alpha.water.orig
similarity index 93%
rename from tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/alpha.water.orig
index bdebcf1ab45a891b0e5d3ace86f053118bc90d3b..a33fee45053ed867220c07ed75450bd8c0770117 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/0/alpha.water.orig
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/alpha.water.orig
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/p_rgh b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/p_rgh
new file mode 100644
index 0000000000000000000000000000000000000000..439aab3c2965b4927edda67b356b9d84a0f9b7df
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/0/p_rgh
@@ -0,0 +1,29 @@
+/*--------------------------------*- 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;
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    walls
+    {
+        type            fixedFluxPressure;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/Allclean b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/Allclean
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allrun b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/Allrun
similarity index 81%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allrun
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/Allrun
index c1f08e0d5a1992512f06dfb64a4de45e49cd36d0..603304a5ae32ab7377ac84e7e38028913058ab0f 100755
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allrun
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/Allrun
@@ -6,8 +6,8 @@ cd ${0%/*} || exit 1    # Run from this directory
 
 m4 system/blockMeshDict.m4 > system/blockMeshDict
 runApplication blockMesh
-\cp 0/alpha.water.orig 0/alpha.water
+cp 0/alpha.water.orig 0/alpha.water
 runApplication setFields
-runApplication $(getApplication)
+runApplication `getApplication`
 
 #------------------------------------------------------------------------------
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/dynamicMeshDict
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/dynamicMeshDict
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/g b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/g
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/g
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/g
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/transportProperties
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/transportProperties
index 469a80c5846e9bb59f5ba405e5d554fc8d8f566c..e0fdefd56e43e498b875e3bc60e7a87d9f7aa595 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/transportProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..c2c3b28a1b4e8f4a2cae55f58bd61f9b1a67b488
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/blockMeshDict.m4
similarity index 96%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/blockMeshDict.m4
index 30dc9f4ad692e226f35e43606b6dfafaed64befd..89b38ecd3dadfc3517fdf8609da813d5afc6ad84 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/blockMeshDict.m4
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/blockMeshDict.m4
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/controlDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/controlDict
similarity index 92%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/controlDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/controlDict
index 496f44ff1455b53cc0cc5c6b11731b9d8c94d855..92d536d02615b3a1577f8f1239e2a37c7ac7e957 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/controlDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/controlDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/decomposeParDict
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/decomposeParDict
index 4b8c326537f15ea0b64d16cdabaea4e65302fae4..62f61b7350604b918cd56af06b2b2267ad3da746 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/decomposeParDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/decomposeParDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSchemes
similarity index 90%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSchemes
index 33f70de79d6c022c65e0336b478ae245640e6642..2d0ecbd0e1b722f6b1f0e60a87e12a449d4db283 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/fvSchemes
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSchemes
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSolution
similarity index 94%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSolution
index 24676d65528c969ec70c2f74d3d79b3f74dd820b..97f5144002828f54554f334ab6cdb9a0bc8ba7f4 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/fvSolution
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/setFieldsDict
similarity index 88%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/setFieldsDict
index ee3b7933923189b19577cbef6144de38befcd0cc..75a2dfccb82c5a9d720f80695f612f9a36f57515 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/setFieldsDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D/system/setFieldsDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/U b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/U
similarity index 87%
rename from tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/U
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/U
index b2ee2a55568a06d4075ed8967ce85f895d102aa1..679e9be0fb4f56deaf44c9404531ce7bd9b3ce2f 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/U
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/ras/testTubeMixer/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/alpha.water.orig
similarity index 93%
rename from tutorials/multiphase/interDyMFoam/ras/testTubeMixer/0/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/alpha.water.orig
index bdebcf1ab45a891b0e5d3ace86f053118bc90d3b..a33fee45053ed867220c07ed75450bd8c0770117 100644
--- a/tutorials/multiphase/interDyMFoam/ras/testTubeMixer/0/alpha.water.orig
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/alpha.water.orig
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/p_rgh b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/p_rgh
new file mode 100644
index 0000000000000000000000000000000000000000..439aab3c2965b4927edda67b356b9d84a0f9b7df
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/0/p_rgh
@@ -0,0 +1,29 @@
+/*--------------------------------*- 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;
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    walls
+    {
+        type            fixedFluxPressure;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allclean b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/Allclean
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/Allrun b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/Allrun
new file mode 100755
index 0000000000000000000000000000000000000000..603304a5ae32ab7377ac84e7e38028913058ab0f
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/Allrun
@@ -0,0 +1,13 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+m4 system/blockMeshDict.m4 > system/blockMeshDict
+runApplication blockMesh
+cp 0/alpha.water.orig 0/alpha.water
+runApplication setFields
+runApplication `getApplication`
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/dynamicMeshDict
similarity index 90%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/dynamicMeshDict
index c83b31bb9ad70fce7a948f2dcf06646b6f905b94..256d87cc3f9d0fa71c4d09742fa76c77eae20820 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/dynamicMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/g b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/g
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/g
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/g
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..c2c3b28a1b4e8f4a2cae55f58bd61f9b1a67b488
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/blockMeshDict.m4
similarity index 96%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/blockMeshDict.m4
index 30dc9f4ad692e226f35e43606b6dfafaed64befd..89b38ecd3dadfc3517fdf8609da813d5afc6ad84 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/blockMeshDict.m4
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/blockMeshDict.m4
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/controlDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/controlDict
similarity index 92%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/controlDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/controlDict
index 05dcf8430342bac85e9a0a7038c2cf87caea4986..c3e1ed6fa25877780790487ab9f979d9bf805d7e 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/controlDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/controlDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..62f61b7350604b918cd56af06b2b2267ad3da746
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/decomposeParDict
@@ -0,0 +1,45 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 16;
+
+method          hierarchical;
+
+simpleCoeffs
+{
+    n               (2 2 1);
+    delta           0.001;
+}
+
+hierarchicalCoeffs
+{
+    n               (4 2 2);
+    delta           0.001;
+    order           xyz;
+}
+
+manualCoeffs
+{
+    dataFile        "";
+}
+
+distributed     no;
+
+roots           ( );
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/fvSchemes b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSchemes
similarity index 90%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/fvSchemes
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSchemes
index 33f70de79d6c022c65e0336b478ae245640e6642..2d0ecbd0e1b722f6b1f0e60a87e12a449d4db283 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/fvSchemes
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSchemes
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSolution
similarity index 94%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSolution
index 24676d65528c969ec70c2f74d3d79b3f74dd820b..97f5144002828f54554f334ab6cdb9a0bc8ba7f4 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/fvSolution
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D3DoF/system/setFieldsDict
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/U b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/U
similarity index 87%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/U
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/U
index b2ee2a55568a06d4075ed8967ce85f895d102aa1..679e9be0fb4f56deaf44c9404531ce7bd9b3ce2f 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/U
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/alpha.water.orig
similarity index 93%
rename from tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/alpha.water.orig
index bdebcf1ab45a891b0e5d3ace86f053118bc90d3b..a33fee45053ed867220c07ed75450bd8c0770117 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/0/alpha.water.orig
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/alpha.water.orig
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/p_rgh b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/p_rgh
new file mode 100644
index 0000000000000000000000000000000000000000..439aab3c2965b4927edda67b356b9d84a0f9b7df
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/0/p_rgh
@@ -0,0 +1,29 @@
+/*--------------------------------*- 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;
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    walls
+    {
+        type            fixedFluxPressure;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allclean b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allclean
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/Allclean
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/Allrun b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/Allrun
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/Allrun
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/Allrun
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/6DoF.dat b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/6DoF.dat
similarity index 99%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/6DoF.dat
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/6DoF.dat
index 0cf1f34768ee1525858abbcdf63827513c28faa0..0257203792c2c401dbc741566f3a51c5ed5a0067 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/6DoF.dat
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/6DoF.dat
@@ -102,4 +102,3 @@
 (39.596 ((1.625 0.77368 -0.260102) (-3.90153 5.2878 8.12498)))
 (40 ((1.82589 1.65428 -0.575807) (-8.6371 2.70906 9.12945)))
 )
-
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/dynamicMeshDict
similarity index 88%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/dynamicMeshDict
index 721de833d720c874c6acff638564774c7633e664..64c23c651214cd094922664f48701cc23efd1151 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/dynamicMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/g b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/g
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/g
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/g
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/transportProperties
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/transportProperties
index 469a80c5846e9bb59f5ba405e5d554fc8d8f566c..e0fdefd56e43e498b875e3bc60e7a87d9f7aa595 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/constant/transportProperties
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/transportProperties
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/Make/files b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/Make/files
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/Make/files
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/Make/files
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/Make/options b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/Make/options
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/Make/options
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/Make/options
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/gen6DoF.C b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/blockMeshDict.m4 b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/blockMeshDict.m4
similarity index 96%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/blockMeshDict.m4
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/blockMeshDict.m4
index 30dc9f4ad692e226f35e43606b6dfafaed64befd..89b38ecd3dadfc3517fdf8609da813d5afc6ad84 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/blockMeshDict.m4
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/blockMeshDict.m4
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/controlDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/controlDict
similarity index 92%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/controlDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/controlDict
index 05dcf8430342bac85e9a0a7038c2cf87caea4986..c3e1ed6fa25877780790487ab9f979d9bf805d7e 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/controlDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/controlDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..62f61b7350604b918cd56af06b2b2267ad3da746
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/decomposeParDict
@@ -0,0 +1,45 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 16;
+
+method          hierarchical;
+
+simpleCoeffs
+{
+    n               (2 2 1);
+    delta           0.001;
+}
+
+hierarchicalCoeffs
+{
+    n               (4 2 2);
+    delta           0.001;
+    order           xyz;
+}
+
+manualCoeffs
+{
+    dataFile        "";
+}
+
+distributed     no;
+
+roots           ( );
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSchemes b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..2d0ecbd0e1b722f6b1f0e60a87e12a449d4db283
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSchemes
@@ -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       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    div(rhoPhi,U)  Gauss vanLeerV;
+    div(phi,alpha)  Gauss vanLeer;
+    div(phirb,alpha) Gauss vanLeer;
+    div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear corrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         corrected;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..97f5144002828f54554f334ab6cdb9a0bc8ba7f4
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/fvSolution
@@ -0,0 +1,100 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    alpha.water
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+        cAlpha          1.5;
+    }
+
+    pcorr
+    {
+        solver          PCG;
+        preconditioner
+        {
+            preconditioner  GAMG;
+            tolerance       1e-05;
+            relTol          0;
+            smoother        DICGaussSeidel;
+            cacheAgglomeration no;
+        }
+
+        tolerance       1e-05;
+        relTol          0;
+        maxIter         100;
+    }
+
+    p_rgh
+    {
+        solver          GAMG;
+        tolerance       1e-08;
+        relTol          0.01;
+        smoother        DIC;
+    }
+
+    p_rghFinal
+    {
+        solver          PCG;
+        preconditioner
+        {
+            preconditioner  GAMG;
+            tolerance       2e-09;
+            relTol          0;
+            nVcycles        2;
+            smoother        DICGaussSeidel;
+            nPreSweeps      2;
+        }
+
+        tolerance       2e-09;
+        relTol          0;
+        maxIter         20;
+    }
+
+    U
+    {
+        solver          smoothSolver;
+        smoother        GaussSeidel;
+        tolerance       1e-06;
+        relTol          0;
+        nSweeps         1;
+    }
+}
+
+PIMPLE
+{
+    momentumPredictor no;
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 0;
+    correctPhi      no;
+
+    pRefPoint       (0 0 0.15);
+    pRefValue       1e5;
+}
+
+relaxationFactors
+{
+    equations
+    {
+        "U.*"           1;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/setFieldsDict
similarity index 88%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/setFieldsDict
index d5ec9c20cf4d29b236732acb4820dce1cf0ef41e..6ee6144d7b386948e3d171bac81dbc2cff9322e2 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/setFieldsDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/sloshingTank3D6DoF/system/setFieldsDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/U b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/U
similarity index 87%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/U
rename to tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/U
index b2ee2a55568a06d4075ed8967ce85f895d102aa1..679e9be0fb4f56deaf44c9404531ce7bd9b3ce2f 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/U
+++ b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/alpha.water.orig b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/alpha.water.orig
similarity index 93%
rename from tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/alpha.water.orig
rename to tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/alpha.water.orig
index bdebcf1ab45a891b0e5d3ace86f053118bc90d3b..a33fee45053ed867220c07ed75450bd8c0770117 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/0/alpha.water.orig
+++ b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/alpha.water.orig
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/p_rgh b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/p_rgh
new file mode 100644
index 0000000000000000000000000000000000000000..439aab3c2965b4927edda67b356b9d84a0f9b7df
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/0/p_rgh
@@ -0,0 +1,29 @@
+/*--------------------------------*- 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;
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    walls
+    {
+        type            fixedFluxPressure;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/Allclean b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/Allclean
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/Allclean
rename to tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/Allrun b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/Allrun
similarity index 79%
rename from tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/Allrun
rename to tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/Allrun
index ff72e72805e8aff7078e935fedbdd1d17b8008fe..9d4261f19ac9aa0bc3f11823a0a7da2197b8726e 100755
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/Allrun
+++ b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/Allrun
@@ -5,8 +5,8 @@ cd ${0%/*} || exit 1    # Run from this directory
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 runApplication blockMesh
-\cp 0/alpha.water.orig 0/alpha.water
+cp 0/alpha.water.orig 0/alpha.water
 runApplication setFields
-runApplication $(getApplication)
+runApplication `getApplication`
 
 #------------------------------------------------------------------------------
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/dynamicMeshDict
similarity index 93%
rename from tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/dynamicMeshDict
index ceab971d87df9d63953c9de75b90d06fab7cdadf..c6fa67e32640901a6fc815f49cecffe83526765b 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/dynamicMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/g b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/g
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/constant/g
rename to tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/g
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/transportProperties b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/constant/transportProperties
rename to tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/transportProperties
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/constant/turbulenceProperties
rename to tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/blockMeshDict b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/blockMeshDict
similarity index 90%
rename from tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/blockMeshDict
rename to tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/blockMeshDict
index cff87d9a1a92998cf95704ada21dbd552929847b..3e3063cfb6b20b7f92c414251f0a5cb1a96e224c 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/blockMeshDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/blockMeshDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/controlDict b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..9d279a2f7e9134e6343625d8ac3e1620ffead03a
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/controlDict
@@ -0,0 +1,56 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     interDyMFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         1;
+
+deltaT          0.0001;
+
+writeControl    adjustableRunTime;
+
+writeInterval   0.01;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable true;
+
+adjustTimeStep  yes;
+
+maxCo           0.5;
+maxAlphaCo      0.5;
+
+maxDeltaT       1;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D/system/decomposeParDict
rename to tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/decomposeParDict
diff --git a/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSchemes b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..2d0ecbd0e1b722f6b1f0e60a87e12a449d4db283
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSchemes
@@ -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       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    div(rhoPhi,U)  Gauss vanLeerV;
+    div(phi,alpha)  Gauss vanLeer;
+    div(phirb,alpha) Gauss vanLeer;
+    div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear corrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         corrected;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/fvSolution b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution
similarity index 94%
rename from tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/fvSolution
rename to tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution
index 0dabb7b24213bff0eb72fa5e2782dc43b36ccb24..7ebbdec3bd8eed6692ea2d55c1a74994473a7de7 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/fvSolution
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/setFieldsDict
similarity index 88%
rename from tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/setFieldsDict
rename to tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/setFieldsDict
index 478ef23077fd79fec881a4147ffa057ef228b3c8..e2ad18ae7ec7f06079e67c4394c9c350eae1797a 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/setFieldsDict
+++ b/tutorials/multiphase/interDyMFoam/RAS/testTubeMixer/system/setFieldsDict
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/alpha.water.orig
similarity index 90%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/alpha.water.orig
index fcfccd6c667bd28656d63bd0f841193633f50d62..1a4430bade5d5db39524136a26112633745e70a2 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/p_rgh
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/alpha.water.orig
@@ -10,11 +10,11 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      p_rgh;
+    object      alpha.water;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [1 -1 -2 0 0 0 0];
+dimensions      [0 0 0 0 0 0 0];
 
 internalField   uniform 0;
 
@@ -30,7 +30,7 @@ boundaryField
     }
     walls
     {
-        type            fixedFluxPressure;
+        type            zeroGradient;
     }
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/alpha.water.orig
similarity index 90%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/alpha.water.orig
index fcfccd6c667bd28656d63bd0f841193633f50d62..1a4430bade5d5db39524136a26112633745e70a2 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/0/p_rgh
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/0/alpha.water.orig
@@ -10,11 +10,11 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      p_rgh;
+    object      alpha.water;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [1 -1 -2 0 0 0 0];
+dimensions      [0 0 0 0 0 0 0];
 
 internalField   uniform 0;
 
@@ -30,7 +30,7 @@ boundaryField
     }
     walls
     {
-        type            fixedFluxPressure;
+        type            zeroGradient;
     }
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/alpha.water.orig
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/alpha.water.orig
index eab113c8ed5ed3faff01ccfffb7252e148de5cbb..dcac9db1da134e9baba9e4a0c02e5b6ab625f4d3 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/p_rgh
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/alpha.water.orig
@@ -10,11 +10,11 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      p_rgh;
+    object      alpha.water;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [1 -1 -2 0 0 0 0];
+dimensions      [0 0 0 0 0 0 0];
 
 internalField   uniform 0;
 
@@ -22,7 +22,7 @@ boundaryField
 {
     walls
     {
-        type            fixedFluxPressure;
+        type            zeroGradient;
     }
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/alpha.water.orig
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/alpha.water.orig
index eab113c8ed5ed3faff01ccfffb7252e148de5cbb..dcac9db1da134e9baba9e4a0c02e5b6ab625f4d3 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/p_rgh
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/0/alpha.water.orig
@@ -10,11 +10,11 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      p_rgh;
+    object      alpha.water;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [1 -1 -2 0 0 0 0];
+dimensions      [0 0 0 0 0 0 0];
 
 internalField   uniform 0;
 
@@ -22,7 +22,7 @@ boundaryField
 {
     walls
     {
-        type            fixedFluxPressure;
+        type            zeroGradient;
     }
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/alpha.water.orig
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/alpha.water.orig
index eab113c8ed5ed3faff01ccfffb7252e148de5cbb..dcac9db1da134e9baba9e4a0c02e5b6ab625f4d3 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/p_rgh
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/0/alpha.water.orig
@@ -10,11 +10,11 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      p_rgh;
+    object      alpha.water;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [1 -1 -2 0 0 0 0];
+dimensions      [0 0 0 0 0 0 0];
 
 internalField   uniform 0;
 
@@ -22,7 +22,7 @@ boundaryField
 {
     walls
     {
-        type            fixedFluxPressure;
+        type            zeroGradient;
     }
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allrun b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allrun
index 41332c6843ed23a0ff8789d36d0005423cca4025..c1f08e0d5a1992512f06dfb64a4de45e49cd36d0 100755
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allrun
+++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/Allrun
@@ -6,7 +6,7 @@ cd ${0%/*} || exit 1    # Run from this directory
 
 m4 system/blockMeshDict.m4 > system/blockMeshDict
 runApplication blockMesh
-\cp 0/alpha.water.org 0/alpha.water
+\cp 0/alpha.water.orig 0/alpha.water
 runApplication setFields
 runApplication $(getApplication)
 
diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/p_rgh b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/alpha.water.orig
similarity index 89%
rename from tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/p_rgh
rename to tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/alpha.water.orig
index eab113c8ed5ed3faff01ccfffb7252e148de5cbb..dcac9db1da134e9baba9e4a0c02e5b6ab625f4d3 100644
--- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/0/p_rgh
+++ b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/0/alpha.water.orig
@@ -10,11 +10,11 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      p_rgh;
+    object      alpha.water;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [1 -1 -2 0 0 0 0];
+dimensions      [0 0 0 0 0 0 0];
 
 internalField   uniform 0;
 
@@ -22,7 +22,7 @@ boundaryField
 {
     walls
     {
-        type            fixedFluxPressure;
+        type            zeroGradient;
     }
 }
 
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/U b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/U
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/0/U
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/U
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/alpha.fuel b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/alpha.fuel
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/0/alpha.fuel
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/alpha.fuel
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/data/Ubulk b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/data/Ubulk
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/0/data/Ubulk
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/data/Ubulk
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/data/ptrace b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/data/ptrace
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/0/data/ptrace
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/data/ptrace
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/k b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/k
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/0/k
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/k
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/nuTilda b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/nuTilda
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/0/nuTilda
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/nuTilda
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/nut b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/nut
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/0/nut
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/nut
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/0/p_rgh b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/0/p_rgh
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/0/p_rgh
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allclean b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/Allclean
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/Allclean
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/Allclean
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allrun b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/Allrun
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/Allrun
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/Allrun
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/constant/g b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/g
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/constant/g
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/g
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/constant/transportProperties b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/constant/transportProperties
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/transportProperties
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/constant/turbulenceProperties b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/constant/turbulenceProperties
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/blockMeshDict b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/system/blockMeshDict
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/blockMeshDict
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/controlDict b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/system/controlDict
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/controlDict
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSchemes b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSchemes
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/fvSchemes
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSolution b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSolution
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/fvSolution
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/refineMeshDict b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/refineMeshDict
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/system/refineMeshDict
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/refineMeshDict
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/topoSetDict.1 b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/topoSetDict.1
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/system/topoSetDict.1
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/topoSetDict.1
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/topoSetDict.2 b/tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/topoSetDict.2
similarity index 100%
rename from tutorials/multiphase/interFoam/les/nozzleFlow2D/system/topoSetDict.2
rename to tutorials/multiphase/interFoam/LES/nozzleFlow2D/system/topoSetDict.2
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/0.orig/U b/tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/U
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/0.orig/U
rename to tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/U
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/0.orig/alpha.water b/tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/alpha.water
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/0.orig/alpha.water
rename to tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/alpha.water
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/0.orig/k b/tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/k
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/0.orig/k
rename to tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/k
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/0.orig/nut b/tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/nut
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/0.orig/nut
rename to tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/nut
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/0.orig/omega b/tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/omega
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/0.orig/omega
rename to tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/omega
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/0.orig/p_rgh b/tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/p_rgh
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/0.orig/p_rgh
rename to tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/p_rgh
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/0.orig/pointDisplacement b/tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/pointDisplacement
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/0.orig/pointDisplacement
rename to tutorials/multiphase/interFoam/RAS/DTCHull/0.orig/pointDisplacement
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/Allclean b/tutorials/multiphase/interFoam/RAS/DTCHull/Allclean
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/Allclean
rename to tutorials/multiphase/interFoam/RAS/DTCHull/Allclean
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/Allrun b/tutorials/multiphase/interFoam/RAS/DTCHull/Allrun
similarity index 100%
rename from tutorials/multiphase/interDyMFoam/ras/DTCHull/Allrun
rename to tutorials/multiphase/interFoam/RAS/DTCHull/Allrun
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/README b/tutorials/multiphase/interFoam/RAS/DTCHull/README
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/README
rename to tutorials/multiphase/interFoam/RAS/DTCHull/README
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/constant/g b/tutorials/multiphase/interFoam/RAS/DTCHull/constant/g
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/constant/g
rename to tutorials/multiphase/interFoam/RAS/DTCHull/constant/g
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/constant/hRef b/tutorials/multiphase/interFoam/RAS/DTCHull/constant/hRef
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/constant/hRef
rename to tutorials/multiphase/interFoam/RAS/DTCHull/constant/hRef
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/DTCHull/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/constant/transportProperties
rename to tutorials/multiphase/interFoam/RAS/DTCHull/constant/transportProperties
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/constant/triSurface/README b/tutorials/multiphase/interFoam/RAS/DTCHull/constant/triSurface/README
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/constant/triSurface/README
rename to tutorials/multiphase/interFoam/RAS/DTCHull/constant/triSurface/README
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/constant/turbulenceProperties b/tutorials/multiphase/interFoam/RAS/DTCHull/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/constant/turbulenceProperties
rename to tutorials/multiphase/interFoam/RAS/DTCHull/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/blockMeshDict b/tutorials/multiphase/interFoam/RAS/DTCHull/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/blockMeshDict
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/blockMeshDict
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/controlDict b/tutorials/multiphase/interFoam/RAS/DTCHull/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/controlDict
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/controlDict
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/decomposeParDict b/tutorials/multiphase/interFoam/RAS/DTCHull/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/decomposeParDict
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/decomposeParDict
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/fvSchemes b/tutorials/multiphase/interFoam/RAS/DTCHull/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/fvSchemes
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/fvSchemes
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/fvSolution b/tutorials/multiphase/interFoam/RAS/DTCHull/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/fvSolution
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/fvSolution
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/meshQualityDict b/tutorials/multiphase/interFoam/RAS/DTCHull/system/meshQualityDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/meshQualityDict
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/meshQualityDict
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/refineMeshDict b/tutorials/multiphase/interFoam/RAS/DTCHull/system/refineMeshDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/refineMeshDict
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/refineMeshDict
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/setFieldsDict b/tutorials/multiphase/interFoam/RAS/DTCHull/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/setFieldsDict
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/setFieldsDict
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/snappyHexMeshDict b/tutorials/multiphase/interFoam/RAS/DTCHull/system/snappyHexMeshDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/snappyHexMeshDict
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/snappyHexMeshDict
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/surfaceFeatureExtractDict b/tutorials/multiphase/interFoam/RAS/DTCHull/system/surfaceFeatureExtractDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/surfaceFeatureExtractDict
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/surfaceFeatureExtractDict
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/topoSetDict.1 b/tutorials/multiphase/interFoam/RAS/DTCHull/system/topoSetDict.1
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/topoSetDict.1
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/topoSetDict.1
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/topoSetDict.2 b/tutorials/multiphase/interFoam/RAS/DTCHull/system/topoSetDict.2
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/topoSetDict.2
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/topoSetDict.2
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/topoSetDict.3 b/tutorials/multiphase/interFoam/RAS/DTCHull/system/topoSetDict.3
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/topoSetDict.3
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/topoSetDict.3
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/topoSetDict.4 b/tutorials/multiphase/interFoam/RAS/DTCHull/system/topoSetDict.4
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/topoSetDict.4
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/topoSetDict.4
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/topoSetDict.5 b/tutorials/multiphase/interFoam/RAS/DTCHull/system/topoSetDict.5
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/topoSetDict.5
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/topoSetDict.5
diff --git a/tutorials/multiphase/interFoam/ras/DTCHull/system/topoSetDict.6 b/tutorials/multiphase/interFoam/RAS/DTCHull/system/topoSetDict.6
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/DTCHull/system/topoSetDict.6
rename to tutorials/multiphase/interFoam/RAS/DTCHull/system/topoSetDict.6
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/0/U b/tutorials/multiphase/interFoam/RAS/angledDuct/0/U
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/0/U
rename to tutorials/multiphase/interFoam/RAS/angledDuct/0/U
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/0/alpha.water b/tutorials/multiphase/interFoam/RAS/angledDuct/0/alpha.water
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/0/alpha.water
rename to tutorials/multiphase/interFoam/RAS/angledDuct/0/alpha.water
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/0/epsilon b/tutorials/multiphase/interFoam/RAS/angledDuct/0/epsilon
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/0/epsilon
rename to tutorials/multiphase/interFoam/RAS/angledDuct/0/epsilon
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/0/k b/tutorials/multiphase/interFoam/RAS/angledDuct/0/k
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/0/k
rename to tutorials/multiphase/interFoam/RAS/angledDuct/0/k
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/0/nut b/tutorials/multiphase/interFoam/RAS/angledDuct/0/nut
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/0/nut
rename to tutorials/multiphase/interFoam/RAS/angledDuct/0/nut
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/0/p_rgh b/tutorials/multiphase/interFoam/RAS/angledDuct/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/0/p_rgh
rename to tutorials/multiphase/interFoam/RAS/angledDuct/0/p_rgh
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/Allrun b/tutorials/multiphase/interFoam/RAS/angledDuct/Allrun
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/Allrun
rename to tutorials/multiphase/interFoam/RAS/angledDuct/Allrun
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/constant/fvOptions b/tutorials/multiphase/interFoam/RAS/angledDuct/constant/fvOptions
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/constant/fvOptions
rename to tutorials/multiphase/interFoam/RAS/angledDuct/constant/fvOptions
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/constant/g b/tutorials/multiphase/interFoam/RAS/angledDuct/constant/g
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/constant/g
rename to tutorials/multiphase/interFoam/RAS/angledDuct/constant/g
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/angledDuct/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/constant/transportProperties
rename to tutorials/multiphase/interFoam/RAS/angledDuct/constant/transportProperties
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/constant/turbulenceProperties b/tutorials/multiphase/interFoam/RAS/angledDuct/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/constant/turbulenceProperties
rename to tutorials/multiphase/interFoam/RAS/angledDuct/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/system/blockMeshDict.m4 b/tutorials/multiphase/interFoam/RAS/angledDuct/system/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/system/blockMeshDict.m4
rename to tutorials/multiphase/interFoam/RAS/angledDuct/system/blockMeshDict.m4
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/system/controlDict b/tutorials/multiphase/interFoam/RAS/angledDuct/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/system/controlDict
rename to tutorials/multiphase/interFoam/RAS/angledDuct/system/controlDict
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/system/fvSchemes b/tutorials/multiphase/interFoam/RAS/angledDuct/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/system/fvSchemes
rename to tutorials/multiphase/interFoam/RAS/angledDuct/system/fvSchemes
diff --git a/tutorials/multiphase/interFoam/ras/angledDuct/system/fvSolution b/tutorials/multiphase/interFoam/RAS/angledDuct/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/angledDuct/system/fvSolution
rename to tutorials/multiphase/interFoam/RAS/angledDuct/system/fvSolution
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/Allclean b/tutorials/multiphase/interFoam/RAS/damBreak/Allclean
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/Allclean
rename to tutorials/multiphase/interFoam/RAS/damBreak/Allclean
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/Allrun b/tutorials/multiphase/interFoam/RAS/damBreak/Allrun
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/Allrun
rename to tutorials/multiphase/interFoam/RAS/damBreak/Allrun
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/U b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/U
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/U
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/U
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/alpha.water b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/alpha.water
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/alpha.water
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/alpha.water
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/alpha.water.orig b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/alpha.water.orig
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/alpha.water.orig
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/alpha.water.orig
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/epsilon b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/epsilon
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/epsilon
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/epsilon
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/k b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/k
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/k
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/k
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/nuTilda b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/nuTilda
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/nuTilda
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/nuTilda
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/nut b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/nut
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/nut
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/nut
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/p_rgh b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/0/p_rgh
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/0/p_rgh
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/Allclean b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/Allclean
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/Allclean
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/Allclean
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/Allrun b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/Allrun
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/Allrun
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/Allrun
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/constant/g b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/g
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/constant/g
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/g
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/constant/transportProperties
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/transportProperties
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/constant/turbulenceProperties b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/constant/turbulenceProperties
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/system/blockMeshDict b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/system/blockMeshDict
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/blockMeshDict
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/system/controlDict b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/system/controlDict
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/controlDict
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/system/decomposeParDict b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/decomposeParDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/system/decomposeParDict
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/decomposeParDict
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/fvSchemes b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/fvSchemes
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/fvSchemes
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/system/fvSolution b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/system/fvSolution
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/fvSolution
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/system/setFieldsDict b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/system/setFieldsDict
rename to tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/setFieldsDict
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/U b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/U
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/U
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/U
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/alpha.water
similarity index 97%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/alpha.water
index 1f8c00ace35d3196a075d27bd292a0e7ece61f12..a79b4bd61edcf46eb9a138bd255fa23502df9f0c 100644
--- a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water
+++ b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/alpha.water
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       volScalarField;
     location    "0";
-    object      alpha.water.org;
+    object      alpha.water.orig;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water.orig b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/alpha.water.orig
similarity index 97%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water.orig
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/alpha.water.orig
index 1f8c00ace35d3196a075d27bd292a0e7ece61f12..a79b4bd61edcf46eb9a138bd255fa23502df9f0c 100644
--- a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water.orig
+++ b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/alpha.water.orig
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       volScalarField;
     location    "0";
-    object      alpha.water.org;
+    object      alpha.water.orig;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/epsilon b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/epsilon
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/epsilon
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/epsilon
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/k b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/k
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/k
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/k
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/nuTilda b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/nuTilda
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/nuTilda
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/nuTilda
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/nut b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/nut
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/nut
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/nut
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/p_rgh b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/p_rgh
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/0/p_rgh
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/Allclean b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/Allclean
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/Allclean
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/Allclean
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/Allrun b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/Allrun
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/Allrun
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/Allrun
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/constant/g b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/g
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/constant/g
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/g
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/constant/transportProperties
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/transportProperties
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/constant/turbulenceProperties b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/constant/turbulenceProperties
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/blockMeshDict b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/blockMeshDict
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/blockMeshDict
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/changeDictionaryDict b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/changeDictionaryDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/changeDictionaryDict
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/changeDictionaryDict
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/controlDict b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/controlDict
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/controlDict
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/createBafflesDict b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/createBafflesDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/createBafflesDict
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/createBafflesDict
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/damBreak/system/fvSchemes b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreak/damBreak/system/fvSchemes
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/fvSchemes
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/fvSolution b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/fvSolution
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/fvSolution
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/setFieldsDict b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/setFieldsDict
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/setFieldsDict
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/topoSetDict b/tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/topoSetDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/topoSetDict
rename to tutorials/multiphase/interFoam/RAS/damBreakPorousBaffle/system/topoSetDict
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/0/U b/tutorials/multiphase/interFoam/RAS/waterChannel/0/U
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/0/U
rename to tutorials/multiphase/interFoam/RAS/waterChannel/0/U
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/0/alpha.water.orig b/tutorials/multiphase/interFoam/RAS/waterChannel/0/alpha.water.orig
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/0/alpha.water.orig
rename to tutorials/multiphase/interFoam/RAS/waterChannel/0/alpha.water.orig
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/0/k b/tutorials/multiphase/interFoam/RAS/waterChannel/0/k
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/0/k
rename to tutorials/multiphase/interFoam/RAS/waterChannel/0/k
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/0/nut b/tutorials/multiphase/interFoam/RAS/waterChannel/0/nut
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/0/nut
rename to tutorials/multiphase/interFoam/RAS/waterChannel/0/nut
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/0/omega b/tutorials/multiphase/interFoam/RAS/waterChannel/0/omega
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/0/omega
rename to tutorials/multiphase/interFoam/RAS/waterChannel/0/omega
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/0/p_rgh b/tutorials/multiphase/interFoam/RAS/waterChannel/0/p_rgh
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/0/p_rgh
rename to tutorials/multiphase/interFoam/RAS/waterChannel/0/p_rgh
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/Allclean b/tutorials/multiphase/interFoam/RAS/waterChannel/Allclean
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/Allclean
rename to tutorials/multiphase/interFoam/RAS/waterChannel/Allclean
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/Allmesh b/tutorials/multiphase/interFoam/RAS/waterChannel/Allmesh
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/Allmesh
rename to tutorials/multiphase/interFoam/RAS/waterChannel/Allmesh
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/Allrun b/tutorials/multiphase/interFoam/RAS/waterChannel/Allrun
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/Allrun
rename to tutorials/multiphase/interFoam/RAS/waterChannel/Allrun
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/constant/g b/tutorials/multiphase/interFoam/RAS/waterChannel/constant/g
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/constant/g
rename to tutorials/multiphase/interFoam/RAS/waterChannel/constant/g
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/waterChannel/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/constant/transportProperties
rename to tutorials/multiphase/interFoam/RAS/waterChannel/constant/transportProperties
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/constant/turbulenceProperties b/tutorials/multiphase/interFoam/RAS/waterChannel/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/constant/turbulenceProperties
rename to tutorials/multiphase/interFoam/RAS/waterChannel/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/system/blockMeshDict b/tutorials/multiphase/interFoam/RAS/waterChannel/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/system/blockMeshDict
rename to tutorials/multiphase/interFoam/RAS/waterChannel/system/blockMeshDict
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/system/controlDict b/tutorials/multiphase/interFoam/RAS/waterChannel/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/system/controlDict
rename to tutorials/multiphase/interFoam/RAS/waterChannel/system/controlDict
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/system/extrudeMeshDict b/tutorials/multiphase/interFoam/RAS/waterChannel/system/extrudeMeshDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/system/extrudeMeshDict
rename to tutorials/multiphase/interFoam/RAS/waterChannel/system/extrudeMeshDict
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/system/extrudeMeshDict.1 b/tutorials/multiphase/interFoam/RAS/waterChannel/system/extrudeMeshDict.1
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/system/extrudeMeshDict.1
rename to tutorials/multiphase/interFoam/RAS/waterChannel/system/extrudeMeshDict.1
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/system/extrudeMeshDict.2 b/tutorials/multiphase/interFoam/RAS/waterChannel/system/extrudeMeshDict.2
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/system/extrudeMeshDict.2
rename to tutorials/multiphase/interFoam/RAS/waterChannel/system/extrudeMeshDict.2
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/system/fvSchemes b/tutorials/multiphase/interFoam/RAS/waterChannel/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/system/fvSchemes
rename to tutorials/multiphase/interFoam/RAS/waterChannel/system/fvSchemes
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/system/fvSolution b/tutorials/multiphase/interFoam/RAS/waterChannel/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/system/fvSolution
rename to tutorials/multiphase/interFoam/RAS/waterChannel/system/fvSolution
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/system/setFieldsDict b/tutorials/multiphase/interFoam/RAS/waterChannel/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/waterChannel/system/setFieldsDict
rename to tutorials/multiphase/interFoam/RAS/waterChannel/system/setFieldsDict
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/U b/tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/U
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/U
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/U
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/alpha.water.orig b/tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/alpha.water.orig
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/alpha.water.orig
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/alpha.water.orig
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/epsilon b/tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/epsilon
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/epsilon
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/epsilon
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/include/initialConditions b/tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/include/initialConditions
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/include/initialConditions
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/include/initialConditions
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/k b/tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/k
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/k
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/k
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/nut b/tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/nut
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/nut
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/nut
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/p_rgh b/tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/p_rgh
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/0.orig/p_rgh
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/0.orig/p_rgh
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/Allclean b/tutorials/multiphase/interFoam/RAS/weirOverflow/Allclean
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/Allclean
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/Allclean
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/Allrun b/tutorials/multiphase/interFoam/RAS/weirOverflow/Allrun
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/Allrun
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/Allrun
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/constant/g b/tutorials/multiphase/interFoam/RAS/weirOverflow/constant/g
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/constant/g
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/constant/g
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/constant/transportProperties b/tutorials/multiphase/interFoam/RAS/weirOverflow/constant/transportProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/constant/transportProperties
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/constant/transportProperties
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/constant/turbulenceProperties b/tutorials/multiphase/interFoam/RAS/weirOverflow/constant/turbulenceProperties
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/constant/turbulenceProperties
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/constant/turbulenceProperties
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/system/blockMeshDict b/tutorials/multiphase/interFoam/RAS/weirOverflow/system/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/system/blockMeshDict
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/system/blockMeshDict
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/system/controlDict b/tutorials/multiphase/interFoam/RAS/weirOverflow/system/controlDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/system/controlDict
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/system/controlDict
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSchemes b/tutorials/multiphase/interFoam/RAS/weirOverflow/system/fvSchemes
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSchemes
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/system/fvSchemes
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSolution b/tutorials/multiphase/interFoam/RAS/weirOverflow/system/fvSolution
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSolution
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/system/fvSolution
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/system/setFieldsDict b/tutorials/multiphase/interFoam/RAS/weirOverflow/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/interFoam/ras/weirOverflow/system/setFieldsDict
rename to tutorials/multiphase/interFoam/RAS/weirOverflow/system/setFieldsDict
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/T.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/T.gas
index b997ba8d87f6993e039af15822ff20ef1ae7fb74..f925c8267b9fc25d3ee4d2ac12959569f9371634 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/T.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/T.gas
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/T.solids b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/T.solids
index f89c81a228121fb7c9f8bf40cb654863af290e75..971e96154cb42c167becdd040bba6996eafbd1cb 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/T.solids
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/T.solids
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/Theta.solids b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/Theta.solids
index 15e74863026c46ab8db16d6a4896ff6ee1a0118a..1b11e50edc7b164b04147818cfbe55296e214c6a 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/Theta.solids
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/Theta.solids
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/U.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/U.gas
index c2eba7f790c9c2056d4892e0b8a6e3d685862d37..71500e3613d9b036e390a2992ae9398dd8d3bf38 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/U.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/U.gas
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/U.solids b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/U.solids
index 83efb2917f8162c1447bc7e6cb18dd931c5bfe66..23ebd382c57dbc596e263ade1ca60f1912b67cf4 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/U.solids
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/U.solids
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/alpha.solids b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/alpha.solids
index 7b10e13ea304e9742e3812e2cc472b45ce6106ef..db8b80b9c4f778d1310e5a242b27db4140240317 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/alpha.solids
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/alpha.solids
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/alphat.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/alphat.gas
index a427a3d22089f842b607efd6b3a95e9efb8e1571..295400540e0c2fc9b5a37a664c5538b83d7f61cf 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/alphat.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/alphat.gas
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/alphat.solids b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/alphat.solids
index 629d9b81b2f7592eba1aede232120a7e2a938493..eabaa373442dc0ed8029519a3eea1bb5f7cfd2a8 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/alphat.solids
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/alphat.solids
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/epsilon.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/epsilon.gas
index d71220e918cbb5cdc0e6524ec2f0fe5d4128f242..cf9e1352a1c91cee9ca10795003786b5423d6cd9 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/epsilon.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/epsilon.gas
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/k.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/k.gas
index 7b712450dbfbc4661e4cafad3dfb1db514b467de..b67628e301369b74529c37b8cdb7a2e88c10d775 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/k.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/k.gas
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/nut.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/nut.gas
index 48bbb42864d6a9634bb033d1f6d11df1b00b781f..a3ade361a473168ed6d8b162422382657453d6ed 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/nut.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/nut.gas
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/nut.solids b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/nut.solids
index 978d7897046179ac59325dc1f87c8121a103c976..07f8dac1141f36616f5a7c7ca26d8d4e47282d5d 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/nut.solids
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/nut.solids
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/p b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/p
index 2ab8e8cdcccf07a4eb0de680c83a7dbfd681efbb..c5e3021065863fa464c86cf5d87db5474992d0b1 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/p
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/p
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/p_rgh b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/p_rgh
index 0b84a879587303f2279405666bf5d0d61e4ff843..e430732d90710979b990a4b37ef45a13699f768b 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/p_rgh
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/0/p_rgh
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/g b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/g
index e0ac2653b5b370ad62f6770588121d30cac51627..4fea433a003518e15418a7270bcf4842db7b2126 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/g
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/g
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/phaseProperties b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/phaseProperties
index d53b4d7196fad22aec495f92d8c5b7ab70920b79..7984f24f13a657ba301398a59372724b27defc36 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/phaseProperties
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/phaseProperties
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.gas
index a2a98f45f2c4e162d59c784de1b5e58f8a22348b..4022da7200574e41b2f9026894bc295795cc6f82 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.gas
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.solids b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.solids
index 84dae4b7166c241435c8fc55987ee9a24ce067d8..2c26b40cf592d8dfca2c2d11ad0220669f20affe 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.solids
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/thermophysicalProperties.solids
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/turbulenceProperties.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/turbulenceProperties.gas
index d92fbf9947c21aa42bebab8def094f82ace2005e..41653530eec9364676ec9ee7b6cf62033b02b8ae 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/turbulenceProperties.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/turbulenceProperties.gas
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/turbulenceProperties.solids b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/turbulenceProperties.solids
index 04793a45c21c537f1d65870f4372fea7a7c2224d..80a08be521e39cb0a0d3c9b94a338c1f693e5f94 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/turbulenceProperties.solids
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/constant/turbulenceProperties.solids
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/blockMeshDict b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/blockMeshDict
index ebf2ada3b0145848997436388a6b41acd3c4ac99..cb039838a1d273f7b0d46a48cf1fb97ce8f8a2a4 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/blockMeshDict
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/blockMeshDict
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/controlDict b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/controlDict
index f929ca081e9e0ab9142f219e8a754064247647eb..66ad117e76b46ae02549e6eddf0e6e94c20d4196 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/controlDict
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/controlDict
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/fvSchemes b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/fvSchemes
index 293328da6c694edaeb03b00089f1f712180b7fc6..2ec7a2729c27f750de606ffb0dd2ce791b04b174 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/fvSchemes
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/fvSchemes
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/fvSolution b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/fvSolution
index 50a63b0825742cad125cc7f1d9b70edb5e6fc8e5..65108876cf4bae9f8fbc64e6e960d9759e3af517 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/fvSolution
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/LBend/system/fvSolution
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/stressAnalysis/solidDisplacementFoam/plateHole/system/singleGraph b/tutorials/stressAnalysis/solidDisplacementFoam/plateHole/system/singleGraph
index 5a4229eed63714f16c7cce4e4ea0e6eb9e538304..67931a12408f09bb379121505e6c8a50fe37c201 100644
--- a/tutorials/stressAnalysis/solidDisplacementFoam/plateHole/system/singleGraph
+++ b/tutorials/stressAnalysis/solidDisplacementFoam/plateHole/system/singleGraph
@@ -2,7 +2,7 @@
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
 |  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 
diff --git a/wmake/rules/General/CGAL b/wmake/rules/General/CGAL
index 8097684eee4a59be68551979b4772c01b9b8a7ba..fd1965e656e351412c3d1b34cb53e89cce56e08b 100644
--- a/wmake/rules/General/CGAL
+++ b/wmake/rules/General/CGAL
@@ -10,5 +10,4 @@ CGAL_LIBS = \
     -L$(GMP_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
     -L$(BOOST_ARCH_PATH)/lib \
     -L$(CGAL_ARCH_PATH)/lib \
-    -lCGAL \
-    -lmpfr
+    -lCGAL
diff --git a/wmake/rules/General/general b/wmake/rules/General/general
index 4fb68a01d723c04add42111c850900d1c365bab3..f7e42cbef34a9482b129c9b44e04b196d520fc3a 100644
--- a/wmake/rules/General/general
+++ b/wmake/rules/General/general
@@ -1,5 +1,5 @@
 #-------------------------------*- makefile -*---------------------------------
-WM_VERSION = OPENFOAM_PLUS=1606
+WM_VERSION = OPENFOAM_PLUS=1609
 
 AR         = ar
 ARFLAGS    = cr
diff --git a/wmake/scripts/makeFiles b/wmake/scripts/makeFiles
index 62f21baf937f7e6395d72aff94d7417421339996..8d5a2c76f3f16e668d41d5465197b72513ca89ba 100755
--- a/wmake/scripts/makeFiles
+++ b/wmake/scripts/makeFiles
@@ -62,8 +62,8 @@ echo >> Make/files
 
 for file in `find . -name "*.[cCylLfF]" -type f -print`
 do
-    fileName=`echo ${file##*/}`
-    pathName=`echo ${file%/*} | sed 's%^\.%%' | sed 's%^/%%' | $dirToString`
+    fileName=${file##*/}
+    pathName=`echo ${file%/*} | sed -e 's%^\.%%' -e 's%^/%%' | $dirToString`
 
     if [ -n "$pathName" ]
     then
diff --git a/wmake/wmake b/wmake/wmake
index 0e42e7719624ab4ddaecda3a482e2c3969c32709..ebf50cd4ba40543cbfa19a35c75d7698cd9304df 100755
--- a/wmake/wmake
+++ b/wmake/wmake
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #------------------------------------------------------------------------------
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
@@ -335,13 +335,13 @@ if [ "$all" = "queue" ]
 then
     [ -n "$update" ] || wmakeLnIncludeAll $parOpt
 
-    (                                                                          \
-        WM_COLLECT_DIR=$WM_PROJECT_DIR/platforms/${WM_OPTIONS}/${PWD////_}     \
-        WM_SCHEDULER=wmakeCollect                                              \
-        trap '$WM_SCHEDULER -kill' TERM INT;                                   \
+    (
+        export WM_COLLECT_DIR=$WM_PROJECT_DIR/platforms/${WM_OPTIONS}/${PWD////_}
+        export WM_SCHEDULER=wmakeCollect
+        trap '$WM_SCHEDULER -kill' TERM INT
         $WM_SCHEDULER -clean                                                   \
      && wmake -all objects                                                     \
-     && $WM_SCHEDULER                                                          \
+     && $WM_SCHEDULER
     ) && wmake -all
     exit $?
 fi