diff --git a/applications/test/parallel/Test-parallel.C b/applications/test/parallel/Test-parallel.C
index 62d6150ce4fdcfa57bb172bedcc7d51eeae1961f..9b10ae61070d2449c71a99dc6fb7c8b38e4dddb7 100644
--- a/applications/test/parallel/Test-parallel.C
+++ b/applications/test/parallel/Test-parallel.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.
@@ -42,154 +42,235 @@ Description
 
 using namespace Foam;
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-int main(int argc, char *argv[])
+void testMapDistribute()
 {
+    Random rndGen(43544*Pstream::myProcNo());
 
-    #include "setRootCase.H"
-    #include "createTime.H"
+    // Generate random data.
+    List<Tuple2<label, List<scalar>>> complexData(100);
+    forAll(complexData, i)
+    {
+        complexData[i].first() = rndGen.integer(0, Pstream::nProcs()-1);
+        complexData[i].second().setSize(3);
+        complexData[i].second()[0] = 1;
+        complexData[i].second()[1] = 2;
+        complexData[i].second()[2] = 3;
+    }
+
+    // Send all ones to processor indicated by .first()
+
+    // Count how many to send
+    labelList nSend(Pstream::nProcs(), 0);
+    forAll(complexData, i)
+    {
+        label procI = complexData[i].first();
+        nSend[procI]++;
+    }
 
+    // Collect items to be sent
+    labelListList sendMap(Pstream::nProcs());
+    forAll(sendMap, procI)
+    {
+        sendMap[procI].setSize(nSend[procI]);
+    }
+    nSend = 0;
+    forAll(complexData, i)
+    {
+        label procI = complexData[i].first();
+        sendMap[procI][nSend[procI]++] = i;
+    }
 
-    // Test mapDistribute
-    // ~~~~~~~~~~~~~~~~~~
+    // Sync how many to send
+    labelList nRecv;
+    Pstream::exchangeSizes(sendMap, nRecv);
 
-    if (true)
+    // Collect items to be received
+    labelListList recvMap(Pstream::nProcs());
+    forAll(recvMap, procI)
     {
-        Random rndGen(43544*Pstream::myProcNo());
+        recvMap[procI].setSize(nRecv[procI]);
+    }
 
-        // Generate random data.
-        List<Tuple2<label, List<scalar>>> complexData(100);
-        forAll(complexData, i)
+    label constructSize = 0;
+    // Construct with my own elements first
+    forAll(recvMap[Pstream::myProcNo()], i)
+    {
+        recvMap[Pstream::myProcNo()][i] = constructSize++;
+    }
+    // Construct from other processors
+    forAll(recvMap, procI)
+    {
+        if (procI != Pstream::myProcNo())
         {
-            complexData[i].first() = rndGen.integer(0, Pstream::nProcs()-1);
-            complexData[i].second().setSize(3);
-            complexData[i].second()[0] = 1;
-            complexData[i].second()[1] = 2;
-            complexData[i].second()[2] = 3;
+            forAll(recvMap[procI], i)
+            {
+                recvMap[procI][i] = constructSize++;
+            }
         }
+    }
+
+    // Construct distribute map (destructively)
+    mapDistribute map(constructSize, sendMap.xfer(), recvMap.xfer());
+
+    // Distribute complexData
+    map.distribute(complexData);
 
-        // Send all ones to processor indicated by .first()
+    Pout<< "complexData:" << complexData << endl;
+}
+
+
+template<class T>
+void testTransfer(const T& input)
+{
+    T data = input;
 
+    if (Pstream::master())
+    {
+        Perr<<"test transfer (" << (typeid(T).name()) << "): " << data << nl << endl;
+    }
 
-        // Count how many to send
-        labelList nSend(Pstream::nProcs(), 0);
-        forAll(complexData, i)
+    if (Pstream::myProcNo() != Pstream::masterNo())
+    {
         {
-            label procI = complexData[i].first();
-            nSend[procI]++;
+            Perr<< "slave sending to master " << Pstream::masterNo() << endl;
+            OPstream toMaster(Pstream::blocking, Pstream::masterNo());
+            toMaster << data;
         }
 
-        // Collect items to be sent
-        labelListList sendMap(Pstream::nProcs());
-        forAll(sendMap, procI)
+        Perr<< "slave receiving from master " << Pstream::masterNo() << endl;
+        IPstream fromMaster(Pstream::blocking, Pstream::masterNo());
+        fromMaster >> data;
+        Perr<< data << endl;
+    }
+    else
+    {
+        for
+        (
+            int slave = Pstream::firstSlave();
+            slave <= Pstream::lastSlave();
+            ++slave
+        )
         {
-            sendMap[procI].setSize(nSend[procI]);
+            Perr<< "master receiving from slave " << slave << endl;
+            IPstream fromSlave(Pstream::blocking, slave);
+            fromSlave >> data;
+            Perr<< data << endl;
         }
-        nSend = 0;
-        forAll(complexData, i)
+
+        for
+        (
+            int slave = Pstream::firstSlave();
+            slave <= Pstream::lastSlave();
+            ++slave
+        )
         {
-            label procI = complexData[i].first();
-            sendMap[procI][nSend[procI]++] = i;
+            Perr<< "master sending to slave " << slave << endl;
+            OPstream toSlave(Pstream::blocking, slave);
+            toSlave << data;
         }
+    }
+}
 
-        // Sync how many to send
-        labelList nRecv;
-        Pstream::exchangeSizes(sendMap, nRecv);
 
-        // Collect items to be received
-        labelListList recvMap(Pstream::nProcs());
-        forAll(recvMap, procI)
+template<class T>
+void testTokenized(const T& data)
+{
+    token tok;
+
+    if (Pstream::master())
+    {
+        Perr<<"test tokenized \"" << data << "\"" << nl << endl;
+    }
+
+    if (Pstream::myProcNo() != Pstream::masterNo())
+    {
         {
-            recvMap[procI].setSize(nRecv[procI]);
+            Perr<< "slave sending to master " << Pstream::masterNo() << endl;
+            OPstream toMaster(Pstream::blocking, Pstream::masterNo());
+            toMaster << data;
         }
 
-        label constructSize = 0;
-        // Construct with my own elements first
-        forAll(recvMap[Pstream::myProcNo()], i)
+        Perr<< "slave receiving from master " << Pstream::masterNo() << endl;
+        IPstream fromMaster(Pstream::blocking, Pstream::masterNo());
+
+        fromMaster >> tok;
+        Perr<< tok.info() << endl;
+    }
+    else
+    {
+        for
+        (
+            int slave = Pstream::firstSlave();
+            slave <= Pstream::lastSlave();
+            ++slave
+        )
         {
-            recvMap[Pstream::myProcNo()][i] = constructSize++;
+            Perr<< "master receiving from slave " << slave << endl;
+            IPstream fromSlave(Pstream::blocking, slave);
+            fromSlave >> tok;
+            Perr<< tok.info() << endl;
         }
-        // Construct from other processors
-        forAll(recvMap, procI)
+
+        for
+        (
+            int slave = Pstream::firstSlave();
+            slave <= Pstream::lastSlave();
+            ++slave
+        )
         {
-            if (procI != Pstream::myProcNo())
-            {
-                forAll(recvMap[procI], i)
-                {
-                    recvMap[procI][i] = constructSize++;
-                }
-            }
+            Perr<< "master sending to slave " << slave << endl;
+            OPstream toSlave(Pstream::blocking, slave);
+            toSlave << data;
         }
+    }
+}
 
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-        // Construct distribute map (destructively)
-        mapDistribute map(constructSize, sendMap.xfer(), recvMap.xfer());
+int main(int argc, char *argv[])
+{
+    #include "setRootCase.H"
+    #include "createTime.H"
 
-        // Distribute complexData
-        map.distribute(complexData);
+    testMapDistribute();
 
-        Pout<< "complexData:" << complexData << endl;
+    if (!Pstream::parRun())
+    {
+        Info<< "\nWarning: not parallel - skipping further tests\n" << endl;
+        return 0;
     }
 
+    Info<< "\nStarting transfers\n\n" << endl;
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+    testTransfer(vector(0, 1, 2));
+    testTransfer(label(1234));
+    testTransfer(scalar(3.14159));
+    testTransfer(string("test   string"));
+    testTransfer(string("  x "));
+    testTransfer(word("3.141 59"));  // bad word, but transfer doesn't care
 
-    Perr<< "\nStarting transfers\n" << endl;
+    testTokenized(label(1234));
+    testTokenized(scalar(3.14159));
+    testTokenized('a');
+    testTokenized('$');  // will not tokenize well
 
-    vector data(0, 1, 2);
+    testTokenized(string("test   string1"));
+    testTokenized("test   string1");
+    testTokenized(word("3.141 59"));  // bad word, but transfer doesn't care
 
-    if (Pstream::parRun())
-    {
-        if (Pstream::myProcNo() != Pstream::masterNo())
-        {
-            {
-                Perr<< "slave sending to master "
-                    << Pstream::masterNo() << endl;
-                OPstream toMaster(Pstream::blocking, Pstream::masterNo());
-                toMaster << data;
-            }
+    testTokenized(string("  a "));
+    testTokenized("  a ");
 
-            Perr<< "slave receiving from master "
-                << Pstream::masterNo() << endl;
-            IPstream fromMaster(Pstream::blocking, Pstream::masterNo());
-            fromMaster >> data;
-
-            Perr<< data << endl;
-        }
-        else
-        {
-            for
-            (
-                int slave=Pstream::firstSlave();
-                slave<=Pstream::lastSlave();
-                slave++
-            )
-            {
-                Perr << "master receiving from slave " << slave << endl;
-                IPstream fromSlave(Pstream::blocking, slave);
-                fromSlave >> data;
+    testTokenized(string("  $ "));
+    testTokenized("  $ ");  // reduces to 'char' and will not tokenize well
 
-                Perr<< data << endl;
-            }
+    testTokenized(string("  $$ "));
+    testTokenized("  $$ "); // reduces to 'word' and is tagged as such
 
-            for
-            (
-                int slave=Pstream::firstSlave();
-                slave<=Pstream::lastSlave();
-                slave++
-            )
-            {
-                Perr << "master sending to slave " << slave << endl;
-                OPstream toSlave(Pstream::blocking, slave);
-                toSlave << data;
-            }
-        }
-    }
 
     Info<< "End\n" << endl;
-
     return 0;
 }
 
diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict
index 8c744e7d84c4e0e28752aac59e522b9a9bf21c1f..b90dc64d657c81a85242050573ef3aab2932e4f9 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict
+++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict
@@ -285,14 +285,18 @@ castellatedMeshControls
     // after refinement.
     //
     // There are two different ways of specifying the regions to keep:
-    // 1. a single locationInMesh. All the 'zoned' surfaces are marked as such
+    // 1. a single locationInMesh. This is the unzoned part of the mesh.
+    //    All the 'zoned' surfaces are marked as such
     //    in the refinementSurfaces with the faceZone and cellZone keywords.
+    //    It is illegal to have the locationInMesh inside a surface for which
+    //    a cellZone is specified.
     //
     // or
     //
     // 2. multiple locationsInMesh, with per location the name of the cellZone.
     //    This uses walking to determine zones and automatically creates
-    //    faceZones on the outside of cellZones.
+    //    faceZones on the outside of cellZones. The special name 'none' is
+    //    used to indicate the unzoned/background part of the mesh.
 
 
         // Ad 1. Specify a single location and how to treat faces inbetween
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightBinaryStream.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightBinaryStream.H
index a85c911ebecbed4361187296319cb4d084d44c6c..d3435677228246e3da0fcc4074c4cfaf0488bd9c 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightBinaryStream.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightBinaryStream.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.
@@ -97,8 +97,8 @@ public:
 
         virtual void write(const char* val)
         {
-            char buffer[80] = {0};
-            strcpy(buffer, val);
+            char buffer[80];
+            strncpy(buffer, val, 80);
             str_().write(buffer, 80*sizeof(char));
         }
 
diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoam/vtkPVFoamVolFields.H b/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoam/vtkPVFoamVolFields.H
index ea4287beb0b974c1888834ce790f88ea6ae9d3b9..7a34bbca1ca2fe100bbb4e615ca6001cd9660e71 100644
--- a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoam/vtkPVFoamVolFields.H
+++ b/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoam/vtkPVFoamVolFields.H
@@ -2,11 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-<<<<<<< HEAD:applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamVolFields.H
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
-=======
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
->>>>>>> foundation:applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoam/vtkPVFoamVolFields.H
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,18 +44,10 @@ InClass
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 template<class Type>
-<<<<<<< HEAD:applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamVolFields.H
-void Foam::vtkPV4Foam::convertVolField
+void Foam::vtkPVFoam::convertVolField
 (
     const PtrList<PrimitivePatchInterpolation<primitivePatch>>& ppInterpList,
     const GeometricField<Type, fvPatchField, volMesh>& tf,
-=======
-void Foam::vtkPVFoam::convertVolFields
-(
-    const fvMesh& mesh,
-    const PtrList<PrimitivePatchInterpolation<primitivePatch>>& ppInterpList,
-    const IOobjectList& objects,
->>>>>>> foundation:applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoam/vtkPVFoamVolFields.H
     const bool interpFields,
     vtkMultiBlockDataSet* output
 )
@@ -81,27 +69,7 @@ void Foam::vtkPVFoam::convertVolFields
         (
             volPointInterpolation::New(mesh).interpolate(tf).ptr()
         );
-<<<<<<< HEAD:applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamVolFields.H
     }
-=======
-
-        // Interpolated field (demand driven)
-        autoPtr<GeometricField<Type, pointPatchField, pointMesh>> ptfPtr;
-        if (interpFields)
-        {
-            if (debug)
-            {
-                Info<< "convertVolFieldBlock interpolating:" << tf.name()
-                    << endl;
-            }
-
-            ptfPtr.reset
-            (
-                volPointInterpolation::New(tf.mesh()).interpolate(tf).ptr()
-            );
-        }
->>>>>>> foundation:applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoam/vtkPVFoamVolFields.H
-
 
     // Convert activated internalMesh regions
     convertVolFieldBlock
@@ -169,7 +137,6 @@ void Foam::vtkPVFoam::convertVolFields
 
             tmp<Field<Type>> tpptf
             (
-<<<<<<< HEAD:applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamVolFields.H
                 fvPatchField<Type>(p, tf).patchInternalField()
             );
 
@@ -181,22 +148,6 @@ void Foam::vtkPVFoam::convertVolFields
                 arrayRangePatches_,
                 datasetNo
             );
-=======
-                isType<emptyFvPatchField<Type>>(ptf)
-             ||
-                (
-                    reader_->GetExtrapolatePatches()
-                && !polyPatch::constraintType(patches[patchId].type())
-                )
-            )
-            {
-                fvPatch p(ptf.patch().patch(), tf.mesh().boundary());
-
-                tmp<Field<Type>> tpptf
-                (
-                    fvPatchField<Type>(p, tf).patchInternalField()
-                );
->>>>>>> foundation:applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/vtkPVFoam/vtkPVFoamVolFields.H
 
             if (interpFields)
             {
@@ -310,7 +261,7 @@ void Foam::vtkPVFoam::convertVolFields
 
 
 template<class Type>
-void Foam::vtkPV4Foam::convertVolFields
+void Foam::vtkPVFoam::convertVolFields
 (
     const fvMesh& mesh,
     const PtrList<PrimitivePatchInterpolation<primitivePatch>>& ppInterpList,
@@ -345,7 +296,7 @@ void Foam::vtkPV4Foam::convertVolFields
 
 
 template<class Type>
-void Foam::vtkPV4Foam::convertDimFields
+void Foam::vtkPVFoam::convertDimFields
 (
     const fvMesh& mesh,
     const PtrList<PrimitivePatchInterpolation<primitivePatch>>& ppInterpList,
diff --git a/applications/utilities/postProcessing/sampling/sample/sampleDict b/applications/utilities/postProcessing/sampling/sample/sampleDict
index d23f8a380ffa3e13f2853e1dd42100b8524a305c..8e77428d6ac0d42bd551a0ab8751016704a53a45 100644
--- a/applications/utilities/postProcessing/sampling/sample/sampleDict
+++ b/applications/utilities/postProcessing/sampling/sample/sampleDict
@@ -74,6 +74,11 @@ formatOptions
         //collateTimes true;  // write single file containing multiple timesteps
                               // (only for static surfaces)
     }
+    vtk
+    {
+        // Non-default write precision for floating point numbers
+        writePrecision 10;
+    }
     nastran
     {
         // From OpenFOAM field name to Nastran field name
diff --git a/applications/utilities/surface/surfaceInflate/surfaceInflate.C b/applications/utilities/surface/surfaceInflate/surfaceInflate.C
index 2990c26a18816c137b4bccf8af3db164c47e1f66..e30ff5fc551b8e8396a71be5446cdb1602d047ac 100644
--- a/applications/utilities/surface/surfaceInflate/surfaceInflate.C
+++ b/applications/utilities/surface/surfaceInflate/surfaceInflate.C
@@ -88,7 +88,7 @@ tmp<vectorField> calcVertexNormals(const triSurface& surf)
     // Weight = fA / (mag(e0)^2 * mag(e1)^2);
     tmp<vectorField> tpointNormals
     (
-        new pointField(surf.nPoints(), vector::zero)
+        new pointField(surf.nPoints(), Zero)
     );
     vectorField& pointNormals = tpointNormals.ref();
 
@@ -151,7 +151,7 @@ tmp<vectorField> calcPointNormals
                 {
                     if (!isFeaturePoint[e[i]])
                     {
-                        pointNormals[e[i]] = vector::zero;
+                        pointNormals[e[i]] = Zero;
                     }
                 }
             }
@@ -164,7 +164,7 @@ tmp<vectorField> calcPointNormals
                 const labelList& eFaces = edgeFaces[edgeI];
 
                 // Get average edge normal
-                vector n = vector::zero;
+                vector n = Zero;
                 forAll(eFaces, i)
                 {
                     n += s.faceNormals()[eFaces[i]];
@@ -483,7 +483,7 @@ void lloydsSmoothing
             {
                 const labelList& pFaces = pointFaces[pointI];
 
-                point avg = point::zero;
+                point avg(Zero);
                 forAll(pFaces, pFaceI)
                 {
                     avg += faceCentres[pFaces[pFaceI]];
@@ -498,7 +498,7 @@ void lloydsSmoothing
 
         const pointField& points = s.points();
 
-        vectorField pointSum(s.nPoints(), vector::zero);
+        vectorField pointSum(s.nPoints(), Zero);
         labelList nPointSum(s.nPoints(), 0);
 
         forAll(edges, edgeI)
diff --git a/bin/tools/RunFunctions b/bin/tools/RunFunctions
old mode 100644
new mode 100755
index 6a73aa99b1101462325b3f6b776ec895aa8f5e8a..407800e791718f91d82157382a080c6162e29c59
--- a/bin/tools/RunFunctions
+++ b/bin/tools/RunFunctions
@@ -2,9 +2,8 @@
 # =========                 |
 # \\      /  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  | Copyright (C) 2015 OpenCFD Ltd.
+#    \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
@@ -42,8 +41,10 @@ isTest()
 
 getNumberOfProcessors()
 {
-    expandDictionary system/decomposeParDict \
-        | sed -ne 's/^numberOfSubdomains\s*\(.*\);/\1/p'
+    if [ -f $1 ]
+    then
+        expandDictionary $1 | sed -ne 's/^numberOfSubdomains\s*\(.*\);/\1/p'
+    fi
 }
 
 getApplication()
@@ -101,13 +102,16 @@ runParallel()
 {
     LOG_NAME=
     APP_RUN=
+    # Store any parsed additional arguments e.g. decomposeParDict
+    APP_PARARGS=
     LOG_IGNORE=false
     LOG_APPEND=false
     LOG_SUFFIX=
-    nProcs=$(getNumberOfProcessors)
+    # Check the default decomposeParDict if available
+    nProcs=$(getNumberOfProcessors "system/decomposeParDict")
 
     # Parse options and executable
-    while [ $# -gt 0 ] && [ -z "$APP_RUN" ]; do
+    while [ $# -gt 0 ] && [ -z "$APP_RUN" ] ; do
         key="$1"
         case "$key" in
             -append|-a)
@@ -125,6 +129,11 @@ runParallel()
                 nProcs="$2"
                 shift
                 ;;
+            -decomposeParDict)
+                nProcs=$(getNumberOfProcessors "$2")
+                APP_PARARGS="$APP_PARARGS -decomposeParDict $2"
+                shift
+                ;;
             *)
                 APP_RUN="$key"
                 APP_NAME="${key##*/}"
@@ -142,9 +151,9 @@ runParallel()
     else
         echo "Running $APP_RUN in parallel on $PWD using $nProcs processes"
         if [ "$LOG_APPEND" = "true" ]; then
-            ( mpirun -np $nProcs $APP_RUN -parallel "$@" < /dev/null >> log.$LOG_SUFFIX 2>&1 )
+            ( mpirun -np $nProcs $APP_RUN $APP_PARARGS -parallel "$@" < /dev/null >> log.$LOG_SUFFIX 2>&1 )
         else
-            ( mpirun -np $nProcs $APP_RUN -parallel "$@" < /dev/null > log.$LOG_SUFFIX 2>&1 )
+            ( mpirun -np $nProcs $APP_RUN $APP_PARARGS -parallel "$@" < /dev/null > log.$LOG_SUFFIX 2>&1 )
         fi
     fi
 }
diff --git a/etc/bashrc b/etc/bashrc
index 897f7e96ec68d8d36480ed84df30b539ce15ecd6..9a190e2548f49a53b8ade3a3b7ac569f5ceb03fe 100644
--- a/etc/bashrc
+++ b/etc/bashrc
@@ -179,6 +179,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`
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL`
+_foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch`
 
 
 # Clean environment paths again. Only remove duplicates
diff --git a/src/Allwmake b/src/Allwmake
index 750691e799c5a0bde80905bb92103c22c1540fb3..e07067fb6651de95cca646b2370beeb7267938be 100755
--- a/src/Allwmake
+++ b/src/Allwmake
@@ -21,7 +21,7 @@ wmakeCheckPwd "$WM_PROJECT_DIR/src" || {
 set -x
 
 # Update OpenFOAM version strings if required
-wmakePrintBuild -check || /bin/rm -f OpenFOAM/Make/*/global.? 2>/dev/null
+wmakePrintBuild -check || wrmo OpenFOAM/global/global.o
 
 wmakeLnInclude OpenFOAM
 wmakeLnInclude OSspecific/${WM_OSTYPE:-POSIX}
diff --git a/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.C b/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.C
index ab95c8c19f5a6789afff1e5480b53c18d4da2926..4131da7af459435835a59018b292d4834d6c0988 100644
--- a/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.C
+++ b/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.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.
@@ -40,7 +40,7 @@ void Foam::Ostream::decrIndent()
     }
     else
     {
-        indentLevel_--;
+        --indentLevel_;
     }
 }
 
@@ -79,4 +79,35 @@ Foam::Ostream& Foam::Ostream::writeKeyword(const keyType& kw)
 }
 
 
+Foam::Ostream& Foam::Ostream::beginBlock(const word& keyword)
+{
+    indent();
+    write(keyword);
+    endl();
+    beginBlock();
+
+    return *this;
+}
+
+
+Foam::Ostream& Foam::Ostream::beginBlock()
+{
+    indent();
+    write(char(token::BEGIN_BLOCK));
+    incrIndent();
+
+    return *this;
+}
+
+
+Foam::Ostream& Foam::Ostream::endBlock()
+{
+    decrIndent();
+    indent();
+    write(char(token::END_BLOCK));
+
+    return *this;
+}
+
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.H b/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.H
index aada0b4f9a1b5784c9428528a7ed19cda83fb363..0bd02a5b55363c2c47ce1c17f64a5e91fcd5e0a5 100644
--- a/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.H
+++ b/src/OpenFOAM/db/IOstreams/IOstreams/Ostream.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,8 +109,8 @@ public:
             virtual Ostream& write(const word&) = 0;
 
             //- Write keyType
-            //  write regular expression as quoted string
-            //  write plain word as word (unquoted)
+            //  A plain word is written unquoted.
+            //  A regular expression is written as a quoted string.
             virtual Ostream& write(const keyType&);
 
             //- Write string
@@ -157,14 +157,29 @@ public:
             //- Incrememt the indent level
             void incrIndent()
             {
-                indentLevel_++;
+                ++indentLevel_;
             }
 
             //- Decrememt the indent level
             void decrIndent();
 
             //- Write the keyword followed by an appropriate indentation
-            Ostream& writeKeyword(const keyType&);
+            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&);
+
+            //- Write begin block group without a name
+            //  Uses the appropriate indentation,
+            //  does not include a trailing newline.
+            virtual Ostream& beginBlock();
+
+            //- Write end block group
+            //  Uses the appropriate indentation,
+            //  does not include a trailing newline.
+            virtual Ostream& endBlock();
 
 
         // Stream state functions
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/UOPstream.C b/src/OpenFOAM/db/IOstreams/Pstreams/UOPstream.C
index 0671d69eca1c5d36b9ae2ef85e018202feb305d1..1b1738d1ad6068a83d5e060578160e7f43017a2c 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/UOPstream.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/UOPstream.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.
@@ -194,7 +194,7 @@ Foam::Ostream& Foam::UOPstream::write(const char* str)
 
     if (nonWhiteChars.size() == 1)
     {
-        return write(nonWhiteChars.c_str()[1]);
+        return write(nonWhiteChars[0]);
     }
     else if (nonWhiteChars.size())
     {
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/UPstream.C b/src/OpenFOAM/db/IOstreams/Pstreams/UPstream.C
index 657f0636bd0c7f21d3d13dd08dc0f67d147e8eb9..d8954cb1c9e8168ec79a121ac83da42508815bed 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/UPstream.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/UPstream.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.
@@ -95,157 +95,6 @@ void Foam::UPstream::setParRun(const label nProcs)
 }
 
 
-Foam::List<Foam::UPstream::commsStruct> Foam::UPstream::calcLinearComm
-(
-    const label nProcs
-)
-{
-    List<commsStruct> linearCommunication(nProcs);
-
-    // Master
-    labelList belowIDs(nProcs - 1);
-    forAll(belowIDs, i)
-    {
-        belowIDs[i] = i + 1;
-    }
-
-    linearCommunication[0] = commsStruct
-    (
-        nProcs,
-        0,
-        -1,
-        belowIDs,
-        labelList(0)
-    );
-
-    // Slaves. Have no below processors, only communicate up to master
-    for (label procID = 1; procID < nProcs; procID++)
-    {
-        linearCommunication[procID] = commsStruct
-        (
-            nProcs,
-            procID,
-            0,
-            labelList(0),
-            labelList(0)
-        );
-    }
-    return linearCommunication;
-}
-
-
-void Foam::UPstream::collectReceives
-(
-    const label procID,
-    const List<DynamicList<label>>& receives,
-    DynamicList<label>& allReceives
-)
-{
-    // Append my children (and my children children etc.) to allReceives.
-
-    const DynamicList<label>& myChildren = receives[procID];
-
-    forAll(myChildren, childI)
-    {
-        allReceives.append(myChildren[childI]);
-        collectReceives(myChildren[childI], receives, allReceives);
-    }
-}
-
-
-Foam::List<Foam::UPstream::commsStruct> Foam::UPstream::calcTreeComm
-(
-    label nProcs
-)
-{
-    // Tree like schedule. For 8 procs:
-    // (level 0)
-    //      0 receives from 1
-    //      2 receives from 3
-    //      4 receives from 5
-    //      6 receives from 7
-    // (level 1)
-    //      0 receives from 2
-    //      4 receives from 6
-    // (level 2)
-    //      0 receives from 4
-    //
-    // The sends/receives for all levels are collected per processor
-    //  (one send per processor; multiple receives possible) creating a table:
-    //
-    // So per processor:
-    // proc     receives from   sends to
-    // ----     -------------   --------
-    //  0       1,2,4           -
-    //  1       -               0
-    //  2       3               0
-    //  3       -               2
-    //  4       5               0
-    //  5       -               4
-    //  6       7               4
-    //  7       -               6
-
-    label nLevels = 1;
-    while ((1 << nLevels) < nProcs)
-    {
-        nLevels++;
-    }
-
-    List<DynamicList<label>> receives(nProcs);
-    labelList sends(nProcs, -1);
-
-    // Info<< "Using " << nLevels << " communication levels" << endl;
-
-    label offset = 2;
-    label childOffset = offset/2;
-
-    for (label level = 0; level < nLevels; level++)
-    {
-        label receiveID = 0;
-        while (receiveID < nProcs)
-        {
-            // Determine processor that sends and we receive from
-            label sendID = receiveID + childOffset;
-
-            if (sendID < nProcs)
-            {
-                receives[receiveID].append(sendID);
-                sends[sendID] = receiveID;
-            }
-
-            receiveID += offset;
-        }
-
-        offset <<= 1;
-        childOffset <<= 1;
-    }
-
-    // For all processors find the processors it receives data from
-    // (and the processors they receive data from etc.)
-    List<DynamicList<label>> allReceives(nProcs);
-    for (label procID = 0; procID < nProcs; procID++)
-    {
-        collectReceives(procID, receives, allReceives[procID]);
-    }
-
-
-    List<commsStruct> treeCommunication(nProcs);
-
-    for (label procID = 0; procID < nProcs; procID++)
-    {
-        treeCommunication[procID] = commsStruct
-        (
-            nProcs,
-            procID,
-            sends[procID],
-            receives[procID].shrink(),
-            allReceives[procID].shrink()
-        );
-    }
-    return treeCommunication;
-}
-
-
 Foam::label Foam::UPstream::allocateCommunicator
 (
     const label parentIndex,
@@ -299,9 +148,9 @@ Foam::label Foam::UPstream::allocateCommunicator
     }
     parentCommunicator_[index] = parentIndex;
 
-    linearCommunication_[index] = calcLinearComm(procIDs_[index].size());
-    treeCommunication_[index] = calcTreeComm(procIDs_[index].size());
-
+    // Size but do not fill structure - this is done on-the-fly
+    linearCommunication_[index] = List<commsStruct>(procIDs_[index].size());
+    treeCommunication_[index] = List<commsStruct>(procIDs_[index].size());
 
     if (doPstream && parRun())
     {
@@ -397,6 +246,115 @@ Foam::label Foam::UPstream::procNo
 }
 
 
+template<>
+Foam::UPstream::commsStruct&
+Foam::UList<Foam::UPstream::commsStruct>::operator[](const label procID)
+{
+    UPstream::commsStruct& t = v_[procID];
+
+    if (t.allBelow().size() + t.allNotBelow().size() + 1 != size())
+    {
+        // Not yet allocated
+
+        label above(-1);
+        labelList below(0);
+        labelList allBelow(0);
+
+        if (size() < UPstream::nProcsSimpleSum)
+        {
+            // Linear schedule
+
+            if (procID == 0)
+            {
+                below.setSize(size()-1);
+                for (label procI = 1; procI < size(); procI++)
+                {
+                    below[procI-1] = procI;
+                }
+            }
+            else
+            {
+                above = 0;
+            }
+        }
+        else
+        {
+            // Use tree like schedule. For 8 procs:
+            // (level 0)
+            //      0 receives from 1
+            //      2 receives from 3
+            //      4 receives from 5
+            //      6 receives from 7
+            // (level 1)
+            //      0 receives from 2
+            //      4 receives from 6
+            // (level 2)
+            //      0 receives from 4
+            //
+            // The sends/receives for all levels are collected per processor
+            // (one send per processor; multiple receives possible) creating
+            // a table:
+            //
+            // So per processor:
+            // proc     receives from   sends to
+            // ----     -------------   --------
+            //  0       1,2,4           -
+            //  1       -               0
+            //  2       3               0
+            //  3       -               2
+            //  4       5               0
+            //  5       -               4
+            //  6       7               4
+            //  7       -               6
+
+            label mod = 0;
+
+            for (label step = 1; step < size(); step = mod)
+            {
+                mod = step * 2;
+
+                if (procID % mod)
+                {
+                    above = procID - (procID % mod);
+                    break;
+                }
+                else
+                {
+                    for
+                    (
+                        label j = procID + step;
+                        j < size() && j < procID + mod;
+                        j += step
+                    )
+                    {
+                        below.append(j);
+                    }
+                    for
+                    (
+                        label j = procID + step;
+                        j < size() && j < procID + mod;
+                        j++
+                    )
+                    {
+                        allBelow.append(j);
+                    }
+                }
+            }
+        }
+        t = UPstream::commsStruct(size(), procID, above, below, allBelow);
+    }
+    return t;
+}
+
+
+template<>
+const Foam::UPstream::commsStruct&
+Foam::UList<Foam::UPstream::commsStruct>::operator[](const label procID) const
+{
+    return const_cast<UList<UPstream::commsStruct>& >(*this).operator[](procID);
+}
+
+
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 bool Foam::UPstream::parRun_(false);
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/UPstream.H b/src/OpenFOAM/db/IOstreams/Pstreams/UPstream.H
index 97821784f5e528eba670300b3e0b4a29a926b32f..c9cbb239097fda017963df05e01a8aaf635dcf1b 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/UPstream.H
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/UPstream.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 2015-2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -504,6 +504,14 @@ public:
 
 Ostream& operator<<(Ostream&, const UPstream::commsStruct&);
 
+// Template specialisation for access of commsStruct
+template<>
+UPstream::commsStruct&
+UList<UPstream::commsStruct>::operator[](const label);
+template<>
+const UPstream::commsStruct&
+UList<UPstream::commsStruct>::operator[](const label) const;
+
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/exchange.C b/src/OpenFOAM/db/IOstreams/Pstreams/exchange.C
index 57951ed6c7cc26a775a65fdd28f0217087f51b4a..3964c274040e53425be26416c8df63ea04819a94 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/exchange.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/exchange.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  |
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -61,8 +61,6 @@ void Foam::Pstream::exchange
 
     recvBufs.setSize(sendBufs.size());
 
-    recvBufs.setSize(sendBufs.size());
-
     if (UPstream::parRun() && UPstream::nProcs(comm) > 1)
     {
         label startOfRequests = Pstream::nRequests();
diff --git a/src/OpenFOAM/db/dictionary/dictionaryIO.C b/src/OpenFOAM/db/dictionary/dictionaryIO.C
index f27d326d8c6fb1ce4089d31a1bbdb7525d3d3ea9..3cef23692f12c14d8fc927a295ca74ab11679510 100644
--- a/src/OpenFOAM/db/dictionary/dictionaryIO.C
+++ b/src/OpenFOAM/db/dictionary/dictionaryIO.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.
@@ -174,7 +174,8 @@ void Foam::dictionary::write(Ostream& os, bool subDict) const
 {
     if (subDict)
     {
-        os  << nl << indent << token::BEGIN_BLOCK << incrIndent << nl;
+        os  << nl;
+        os.beginBlock() << nl;
     }
 
     forAllConstIter(IDLList<entry>, *this, iter)
@@ -202,7 +203,7 @@ void Foam::dictionary::write(Ostream& os, bool subDict) const
 
     if (subDict)
     {
-        os  << decrIndent << indent << token::END_BLOCK << endl;
+        os.endBlock() << endl;
     }
 }
 
diff --git a/src/OpenFOAM/db/functionObjects/functionObjectFile/functionObjectFile.C b/src/OpenFOAM/db/functionObjects/functionObjectFile/functionObjectFile.C
index b8d24fff8a8dec5c5a75e28ba78ca1a5e65031af..4154146074e06c38efed645015c72df8028b0183 100644
--- a/src/OpenFOAM/db/functionObjects/functionObjectFile/functionObjectFile.C
+++ b/src/OpenFOAM/db/functionObjects/functionObjectFile/functionObjectFile.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2012-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.
@@ -122,7 +122,7 @@ void Foam::functionObjectFile::resetFile(const word& fileName)
 
 Foam::Omanip<int> Foam::functionObjectFile::valueWidth(const label offset) const
 {
-    return setw(IOstream::defaultPrecision() + addChars + offset);
+    return setw(writePrecision_ + addChars + offset);
 }
 
 
@@ -211,7 +211,7 @@ bool Foam::functionObjectFile::writeToFile() const
 
 Foam::label Foam::functionObjectFile::charWidth() const
 {
-    return IOstream::defaultPrecision() + addChars;
+    return writePrecision_ + addChars;
 }
 
 
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C
index 717f7d609f3166b083cc2600e9fb2f32b5ff1ee7..de5ec76d2fc678a78e5fb6ff8b8239b60bcc276b 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C
@@ -569,17 +569,16 @@ template<class Type, template<class> class PatchField, class GeoMesh>
 void Foam::GeometricField<Type, PatchField, GeoMesh>::GeometricBoundaryField::
 writeEntry(const word& keyword, Ostream& os) const
 {
-    os  << keyword << nl << token::BEGIN_BLOCK << incrIndent << nl;
+    os.beginBlock(keyword) << nl;
 
     forAll(*this, patchi)
     {
-        os  << indent << this->operator[](patchi).patch().name() << nl
-            << indent << token::BEGIN_BLOCK << nl
-            << incrIndent << this->operator[](patchi) << decrIndent
-            << indent << token::END_BLOCK << endl;
+        os.beginBlock(this->operator[](patchi).patch().name()) << nl;
+        os  << this->operator[](patchi);
+        os.endBlock() << endl;
     }
 
-    os  << decrIndent << token::END_BLOCK << endl;
+    os.endBlock() << endl;
 
     // Check state of IOstream
     os.check
diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C
index b52a952b9a03fa20223601ef389fae35c0eecf6d..d679d11cd8ae7095f0678094681d0898b1059d8a 100644
--- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C
+++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C
@@ -584,61 +584,84 @@ void Foam::globalMeshData::calcPointConnectivity
             transforms.nullTransformIndex()
         );
     }
-    // Send over.
+    // Send to master
     globalPointSlavesMap().distribute(myData);
 
 
     // String of connected points with their transform
     allPointConnectivity.setSize(globalPointSlavesMap().constructSize());
+    allPointConnectivity = labelPairList(0);
+
+    // Pass1: do the master points since these also update local slaves
+    //        (e.g. from local cyclics)
     forAll(slaves, pointI)
     {
         // Reconstruct string of connected points
         const labelList& pSlaves = slaves[pointI];
         const labelList& pTransformSlaves = transformedSlaves[pointI];
-        labelPairList& pConnectivity = allPointConnectivity[pointI];
-        pConnectivity.setSize(1+pSlaves.size()+pTransformSlaves.size());
-        label connI = 0;
 
-        // Add myself
-        pConnectivity[connI++] = myData[pointI];
-        // Add untransformed points
-        forAll(pSlaves, i)
-        {
-            pConnectivity[connI++] = myData[pSlaves[i]];
-        }
-        // Add transformed points.
-        forAll(pTransformSlaves, i)
+        if (pSlaves.size()+pTransformSlaves.size())
         {
-            // Get transform from index
-            label transformI = globalPointSlavesMap().whichTransform
-            (
-                pTransformSlaves[i]
-            );
-            // Add transform to connectivity
-            const labelPair& n = myData[pTransformSlaves[i]];
-            label procI = globalIndexAndTransform::processor(n);
-            label index = globalIndexAndTransform::index(n);
-            pConnectivity[connI++] = globalIndexAndTransform::encode
-            (
-                procI,
-                index,
-                transformI
-            );
-        }
+            labelPairList& pConnectivity = allPointConnectivity[pointI];
 
-        // Put back in slots
-        forAll(pSlaves, i)
-        {
-            allPointConnectivity[pSlaves[i]] = pConnectivity;
+            pConnectivity.setSize(1+pSlaves.size()+pTransformSlaves.size());
+            label connI = 0;
+
+            // Add myself
+            pConnectivity[connI++] = myData[pointI];
+            // Add untransformed points
+            forAll(pSlaves, i)
+            {
+                pConnectivity[connI++] = myData[pSlaves[i]];
+            }
+            // Add transformed points.
+            forAll(pTransformSlaves, i)
+            {
+                // Get transform from index
+                label transformI = globalPointSlavesMap().whichTransform
+                (
+                    pTransformSlaves[i]
+                );
+                // Add transform to connectivity
+                const labelPair& n = myData[pTransformSlaves[i]];
+                label proci = globalIndexAndTransform::processor(n);
+                label index = globalIndexAndTransform::index(n);
+                pConnectivity[connI++] = globalIndexAndTransform::encode
+                (
+                    proci,
+                    index,
+                    transformI
+                );
+            }
+
+            // Put back in slots
+            forAll(pSlaves, i)
+            {
+                allPointConnectivity[pSlaves[i]] = pConnectivity;
+            }
+            forAll(pTransformSlaves, i)
+            {
+                allPointConnectivity[pTransformSlaves[i]] = pConnectivity;
+            }
         }
-        forAll(pTransformSlaves, i)
+    }
+
+
+    // Pass2: see if anything is still unset (should not be the case)
+    forAll(slaves, pointI)
+    {
+        labelPairList& pConnectivity = allPointConnectivity[pointI];
+
+        if (pConnectivity.size() == 0)
         {
-            allPointConnectivity[pTransformSlaves[i]] = pConnectivity;
+            pConnectivity.setSize(1, myData[pointI]);
         }
     }
+
+
     globalPointSlavesMap().reverseDistribute
     (
-        allPointConnectivity.size(),
+        slaves.size(),
         allPointConnectivity
     );
 }
@@ -792,13 +815,13 @@ void Foam::globalMeshData::calcGlobalPointEdges
     // Push back
     globalPointSlavesMap().reverseDistribute
     (
-        globalPointEdges.size(),
+        slaves.size(),
         globalPointEdges
     );
     // Push back
     globalPointSlavesMap().reverseDistribute
     (
-        globalPointPoints.size(),
+        slaves.size(),
         globalPointPoints
     );
 }
@@ -880,7 +903,7 @@ void Foam::globalMeshData::calcGlobalEdgeSlaves() const
 
 
     // 1. collect point connectivity - basically recreating globalPoints output.
-    // All points will now have a string of points. The transforms are
+    // All points will now have a string of coupled points. The transforms are
     // in respect to the master.
     List<labelPairList> allPointConnectivity;
     calcPointConnectivity(allPointConnectivity);
diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
index e15618b552cd1a0066c1caf95f32da876606c655..6b8403a454b180eee7bce9d7c1132eb0ce4ed16e 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
@@ -1116,10 +1116,9 @@ bool Foam::polyBoundaryMesh::writeData(Ostream& os) const
 
     forAll(patches, patchI)
     {
-        os  << indent << patches[patchI].name() << nl
-            << indent << token::BEGIN_BLOCK << nl
-            << incrIndent << patches[patchI] << decrIndent
-            << indent << token::END_BLOCK << endl;
+        os.beginBlock(patches[patchI].name()) << nl;
+        os  << patches[patchI];
+        os.endBlock() << endl;
     }
 
     os  << decrIndent << token::END_LIST;
diff --git a/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C b/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C
index 482142bb2aeab91582225aa0d739583ae1f9e2b7..a6d05b7f7368157f076e3ed3140a97359c30be44 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C
+++ b/src/OpenFOAM/meshes/primitiveShapes/plane/plane.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.
@@ -437,12 +437,15 @@ void Foam::plane::writeDict(Ostream& os) const
 {
     os.writeKeyword("planeType") << "pointAndNormal"
         << token::END_STATEMENT << nl;
-    os  << indent << "pointAndNormalDict" << nl
-        << indent << token::BEGIN_BLOCK << incrIndent << nl;
-    os.writeKeyword("basePoint") << basePoint_ << token::END_STATEMENT << nl;
-    os.writeKeyword("normalVector") << unitVector_ << token::END_STATEMENT
-        << nl;
-    os << decrIndent << indent << token::END_BLOCK << endl;
+
+    os.beginBlock("pointAndNormalDict") << nl;
+
+    os.writeKeyword("basePoint") << basePoint_
+        << token::END_STATEMENT << nl;
+    os.writeKeyword("normalVector") << unitVector_
+        << token::END_STATEMENT << nl;
+
+    os.endBlock() << endl;
 }
 
 
diff --git a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H
index de477d20e05277b6c1f85660643e43d6ecac312a..299ea326619b3ca49af3bcb44ae1ce257b95374f 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H
+++ b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H
@@ -230,7 +230,7 @@ public:
             //  point and density specification
             inline tensor inertia
             (
-                PointRef refPt = vector::zero,
+                PointRef refPt = Zero,
                 scalar density = 1.0
             ) const;
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
index 513298f8c76ece673226b0a403129ab5070ef74f..a929f868ee562ed0cf03f63ad3c8cee6cddf9736 100644
--- a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
+++ b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.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.
@@ -264,16 +264,17 @@ void Foam::Function1Types::CSV<Type>::writeData(Ostream& os) const
 {
     Function1<Type>::writeData(os);
     os  << token::END_STATEMENT << nl;
-    os  << indent << word(this->name() + "Coeffs") << nl;
-    os  << indent << token::BEGIN_BLOCK << incrIndent << nl;
+
+    os.beginBlock(word(this->name() + "Coeffs")) << nl;
 
     // 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.writeKeyword("nHeaderLine") << nHeaderLine_
+        << token::END_STATEMENT << nl;
+    os.writeKeyword("refColumn") << refColumn_
+        << token::END_STATEMENT << nl;
 
     // Force writing labelList in ascii
     os.writeKeyword("componentColumns");
@@ -293,8 +294,10 @@ void Foam::Function1Types::CSV<Type>::writeData(Ostream& os) const
         << token::END_STATEMENT << nl;
     os.writeKeyword("mergeSeparators") << mergeSeparators_
         << token::END_STATEMENT << nl;
-    os.writeKeyword("fileName") << fName_ << token::END_STATEMENT << nl;
-    os  << decrIndent << indent << token::END_BLOCK << endl;
+    os.writeKeyword("fileName") << fName_
+        << token::END_STATEMENT << nl;
+
+    os.endBlock() << endl;
 }
 
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C b/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C
index 603109664386b4aeea573d5df08ae7c8362ddc16..85a7aefe04261d1eee76d753877e8c73de3f61c9 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.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.
@@ -90,14 +90,16 @@ void Foam::Function1Types::Sine<Type>::writeData(Ostream& os) const
 {
     Function1<Type>::writeData(os);
     os  << token::END_STATEMENT << nl;
-    os  << indent << word(this->name() + "Coeffs") << nl;
-    os  << indent << token::BEGIN_BLOCK << incrIndent << nl;
+
+    os.beginBlock(word(this->name() + "Coeffs")) << nl;
+
     os.writeKeyword("t0") << t0_ << token::END_STATEMENT << nl;
     amplitude_->writeData(os);
     frequency_->writeData(os);
     scale_->writeData(os);
     level_->writeData(os);
-    os  << decrIndent << indent << token::END_BLOCK << endl;
+
+    os.endBlock() << endl;
 }
 
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Square/Square.C b/src/OpenFOAM/primitives/functions/Function1/Square/Square.C
index 213e76832131e07f25085fe8237ee691e56d6623..9c55e8800e6fe7a7a43bbce37b3f0f27c228cec7 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Square/Square.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Square/Square.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.
@@ -103,15 +103,17 @@ void Foam::Function1Types::Square<Type>::writeData(Ostream& os) const
 {
     Function1<Type>::writeData(os);
     os  << token::END_STATEMENT << nl;
-    os  << indent << word(this->name() + "Coeffs") << nl;
-    os  << indent << token::BEGIN_BLOCK << incrIndent << nl;
+
+    os.beginBlock(word(this->name() + "Coeffs")) << nl;
+
     os.writeKeyword("t0") << t0_ << token::END_STATEMENT << nl;
     os.writeKeyword("markSpace") << markSpace_ << token::END_STATEMENT << nl;
     amplitude_->writeData(os);
     frequency_->writeData(os);
     scale_->writeData(os);
     level_->writeData(os);
-    os  << decrIndent << indent << token::END_BLOCK << endl;
+
+    os.endBlock() << endl;
 }
 
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C
index 8551d1a84a6e57324ade0e1421c7209e0a5060a8..414e6160772df7b07ef2a610c2c47f9d54288dc7 100644
--- a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C
+++ b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.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.
@@ -78,17 +78,16 @@ template<class Type>
 void Foam::Function1Types::TableFile<Type>::writeData(Ostream& os) const
 {
     Function1<Type>::writeData(os);
+    os  << token::END_STATEMENT << nl;
 
-    os  << token::END_STATEMENT << nl
-        << indent << word(this->name() + "Coeffs") << nl
-        << indent << token::BEGIN_BLOCK << nl << incrIndent;
+    os.beginBlock(word(this->name() + "Coeffs")) << nl;
 
     // 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  << decrIndent << indent << token::END_BLOCK << endl;
+
+    os.endBlock() << endl;
 }
 
 
diff --git a/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C b/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C
index 520a0c7726c564a34155732d96ded4e60368f7d3..8e9cc672800730b210db7fefa47be6a8e21d7622 100644
--- a/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C
+++ b/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C
@@ -195,9 +195,9 @@ void dynamicLagrangian<BasicTurbulenceModel>::correct()
         fvm::ddt(alpha, rho, flm_)
       + fvm::div(alphaRhoPhi, flm_)
      ==
-        rho*invT*LM
-      - fvm::Sp(rho*invT, flm_)
-      + fvOptions(flm_)
+        alpha*rho*invT*LM
+      - fvm::Sp(alpha*rho*invT, flm_)
+      + fvOptions(alpha, rho, flm_)
     );
 
     flmEqn.relax();
@@ -213,9 +213,9 @@ void dynamicLagrangian<BasicTurbulenceModel>::correct()
         fvm::ddt(alpha, rho, fmm_)
       + fvm::div(alphaRhoPhi, fmm_)
      ==
-        rho*invT*MM
-      - fvm::Sp(rho*invT, fmm_)
-      + fvOptions(fmm_)
+        alpha*rho*invT*MM
+      - fvm::Sp(alpha*rho*invT, fmm_)
+      + fvOptions(alpha, rho, fmm_)
     );
 
     fmmEqn.relax();
diff --git a/src/dynamicMesh/motionSmoother/motionSmootherAlgo.C b/src/dynamicMesh/motionSmoother/motionSmootherAlgo.C
index 860fa12489da42de11a3e79a30a7d5cedb6970f5..6cd22195e59ad568172d266e27982007133e2e45 100644
--- a/src/dynamicMesh/motionSmoother/motionSmootherAlgo.C
+++ b/src/dynamicMesh/motionSmoother/motionSmootherAlgo.C
@@ -525,7 +525,7 @@ void Foam::motionSmootherAlgo::setDisplacement
             label pointI = cppMeshPoints[i];
             if (isPatchPoint[pointI])
             {
-                displacement[pointI] = vector::zero;
+                displacement[pointI] = Zero;
             }
         }
     }
diff --git a/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C b/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C
index 54169aaa1e10aed49aaf57fcc9f0ef865a9b53dd..c90a197ce70ee88a603973e1935cf89f171a16cc 100644
--- a/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C
+++ b/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C
@@ -118,7 +118,7 @@ void Foam::polyMeshGeometry::updateCellCentresAndVols
         const labelList& cFaces(cells[cellI]);
 
         // Estimate the cell centre and bounding box using the face centres
-        vector cEst = vector::zero;
+        vector cEst(Zero);
         boundBox bb(boundBox::invertedBox);
 
         forAll(cFaces, cFaceI)
diff --git a/src/finiteVolume/interpolation/interpolation/interpolationPointMVC/pointMVCWeight.C b/src/finiteVolume/interpolation/interpolation/interpolationPointMVC/pointMVCWeight.C
index d77af00d4efb3d27e8ca395153f2066870b462c7..66604147168fcae637abdb89d949e56882b37403 100644
--- a/src/finiteVolume/interpolation/interpolation/interpolationPointMVC/pointMVCWeight.C
+++ b/src/finiteVolume/interpolation/interpolation/interpolationPointMVC/pointMVCWeight.C
@@ -112,7 +112,7 @@ void Foam::pointMVCWeight::calcWeights
             u(j) = uVec[toLocal[f[j]]];
         }
 
-        vector v(point::zero);
+        vector v(Zero);
         forAll(f, j)
         {
             label jPlus1 = f.fcIndex(j);
diff --git a/src/fvMotionSolver/fvMotionSolvers/displacement/SBRStress/displacementSBRStressFvMotionSolver.C b/src/fvMotionSolver/fvMotionSolvers/displacement/SBRStress/displacementSBRStressFvMotionSolver.C
index 5ffef6acabc3700b24893b90082ae89dcf7c0d9a..2b26d8d58a908741ab0361e9d89ba6162045741c 100644
--- a/src/fvMotionSolver/fvMotionSolvers/displacement/SBRStress/displacementSBRStressFvMotionSolver.C
+++ b/src/fvMotionSolver/fvMotionSolvers/displacement/SBRStress/displacementSBRStressFvMotionSolver.C
@@ -124,7 +124,7 @@ displacementSBRStressFvMotionSolver
         (
             "cellDisplacement",
             displacementMotionSolver::pointDisplacement().dimensions(),
-            vector::zero
+            Zero
         ),
         cellMotionBoundaryTypes<vector>
         (
diff --git a/src/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.C b/src/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.C
index 3021e096752b30d92d83329b090a5760639ccdc5..3d5f22d09d91e0ad0f1d51e7b74745e8c2d05482 100644
--- a/src/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.C
+++ b/src/fvMotionSolver/fvMotionSolvers/displacement/laplacian/displacementLaplacianFvMotionSolver.C
@@ -169,7 +169,7 @@ displacementLaplacianFvMotionSolver
         (
             "cellDisplacement",
             pointDisplacement_.dimensions(),
-            vector::zero
+            Zero
         ),
         cellMotionBoundaryTypes<vector>(pointDisplacement_.boundaryField())
     ),
diff --git a/src/fvMotionSolver/fvMotionSolvers/displacement/surfaceAlignedSBRStress/surfaceAlignedSBRStressFvMotionSolver.C b/src/fvMotionSolver/fvMotionSolvers/displacement/surfaceAlignedSBRStress/surfaceAlignedSBRStressFvMotionSolver.C
index 165ba536b8f9f2151259c5b14037ee20540af1b1..7a342f19984b1b89288ae86ee0453e32259f9ffc 100644
--- a/src/fvMotionSolver/fvMotionSolvers/displacement/surfaceAlignedSBRStress/surfaceAlignedSBRStressFvMotionSolver.C
+++ b/src/fvMotionSolver/fvMotionSolvers/displacement/surfaceAlignedSBRStress/surfaceAlignedSBRStressFvMotionSolver.C
@@ -74,7 +74,7 @@ surfaceAlignedSBRStressFvMotionSolver
             IOobject::NO_WRITE
         ),
         fvMesh_,
-        dimensionedVector("zero", dimless, vector::zero)
+        dimensionedVector("zero", dimless, Zero)
     ),
     maxAng_(coeffDict().lookupOrDefault<scalar>("maxAng", 80.0)),
     minAng_(coeffDict().lookupOrDefault<scalar>("minAng", 20.0)),
@@ -93,7 +93,7 @@ surfaceAlignedSBRStressFvMotionSolver
             IOobject::NO_WRITE
         ),
         fvMesh_,
-        dimensionedSymmTensor("zero", dimless, symmTensor::zero)
+        dimensionedSymmTensor("zero", dimless, Zero)
     ),
     minSigmaDiff_(coeffDict().lookupOrDefault<scalar>("minSigmaDiff", 1e-4))
 {
@@ -131,8 +131,8 @@ Foam::surfaceAlignedSBRStressFvMotionSolver::
 
 void Foam::surfaceAlignedSBRStressFvMotionSolver::calculateCellRot()
 {
-    cellRot_.internalField() = vector::zero;
-    pointDisplacement_.internalField() = vector::zero;
+    cellRot_.internalField() = Zero;
+    pointDisplacement_.internalField() = Zero;
 
     // Find intersections
     pointField start(fvMesh_.nInternalFaces());
@@ -316,7 +316,7 @@ void Foam::surfaceAlignedSBRStressFvMotionSolver::solve()
                 IOobject::NO_WRITE
             ),
             fvMesh_,
-            dimensionedVector("zero", dimLength, vector::zero),
+            dimensionedVector("zero", dimLength, Zero),
             cellMotionBoundaryTypes<vector>
             (
                 pointDisplacement().boundaryField()
diff --git a/src/fvMotionSolver/motionInterpolation/patchTransformed/patchTransformedInterpolation.C b/src/fvMotionSolver/motionInterpolation/patchTransformed/patchTransformedInterpolation.C
index 22c9d28c32e74c62dbdc100d141fb94ab91ef245..331c73c858886cfdb0de46fa743f0d14dee7b76b 100644
--- a/src/fvMotionSolver/motionInterpolation/patchTransformed/patchTransformedInterpolation.C
+++ b/src/fvMotionSolver/motionInterpolation/patchTransformed/patchTransformedInterpolation.C
@@ -123,11 +123,11 @@ void Foam::patchTransformedInterpolation::interpolate
 
     pointDisplacement.correctBoundaryConditions();
 
-    vectorField pointRotation(nPoints, vector::zero);
+    vectorField pointRotation(nPoints, Zero);
     scalarField pointExpansion(nPoints, scalar(0));
 
     labelList pointDisplacementNSum(nPoints, 0);
-    vectorField pointDisplacementSum(nPoints, vector::zero);
+    vectorField pointDisplacementSum(nPoints, Zero);
 
     forAll(patches_, patchI)
     {
diff --git a/src/fvOptions/Make/files b/src/fvOptions/Make/files
index e3778435f72998d6cd3763f4921185fcc375f191..6e74683868e4d575219757c8034002aaff62a8ce 100644
--- a/src/fvOptions/Make/files
+++ b/src/fvOptions/Make/files
@@ -13,6 +13,12 @@ $(generalSources)/semiImplicitSource/semiImplicitSource.C
 
 derivedSources=sources/derived
 $(derivedSources)/actuationDiskSource/actuationDiskSource.C
+$(derivedSources)/buoyancyForce/buoyancyForce.C
+$(derivedSources)/buoyancyForce/buoyancyForceIO.C
+$(derivedSources)/buoyancyEnergy/buoyancyEnergy.C
+$(derivedSources)/buoyancyEnergy/buoyancyEnergyIO.C
+$(derivedSources)/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
+$(derivedSources)/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSourceIO.C
 $(derivedSources)/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.C
 $(derivedSources)/explicitPorositySource/explicitPorositySource.C
 $(derivedSources)/meanVelocityForce/meanVelocityForce.C
@@ -33,14 +39,6 @@ $(derivedSources)/solidificationMeltingSource/solidificationMeltingSource.C
 $(derivedSources)/solidificationMeltingSource/solidificationMeltingSourceIO.C
 $(derivedSources)/tabulatedAccelerationSource/tabulatedAccelerationSource.C
 $(derivedSources)/tabulatedAccelerationSource/tabulated6DoFAcceleration/tabulated6DoFAcceleration.C
-/*
-$(derivedSources)/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
-$(derivedSources)/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSourceIO.C
-*/
-$(derivedSources)/buoyancyForce/buoyancyForce.C
-$(derivedSources)/buoyancyForce/buoyancyForceIO.C
-$(derivedSources)/buoyancyEnergy/buoyancyEnergy.C
-$(derivedSources)/buoyancyEnergy/buoyancyEnergyIO.C
 
 interRegion = sources/interRegion
 $(interRegion)/interRegionHeatTransfer/interRegionHeatTransferModel/interRegionHeatTransferModel.C
diff --git a/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C b/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
index fec009d7f8525a092a66d09cb7cfd7ab761b046e..2c170d976bf4b32a989b8c35c5ca8fa16143388f 100644
--- a/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
+++ b/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C
@@ -179,9 +179,9 @@ directionalPressureGradientExplicitSource
 :
     cellSetOption(sourceName, modelType, dict, mesh),
     model_(PressureDropModelNames_.read(coeffs_.lookup("model"))),
-    gradP0_(cells_.size(), vector::zero),
-    dGradP_(cells_.size(), vector::zero),
-    gradPporous_(cells_.size(), vector::zero),
+    gradP0_(cells_.size(), Zero),
+    dGradP_(cells_.size(), Zero),
+    gradPporous_(cells_.size(), Zero),
     flowDir_(coeffs_.lookup("flowDir")),
     invAPtr_(NULL),
     D_(0),
@@ -386,7 +386,7 @@ void Foam::fv::directionalPressureGradientExplicitSource::correct
     }
 
     // Accumulate 'upstream' velocity into cells
-    vectorField UfCells(cells_.size(), vector::zero);
+    vectorField UfCells(cells_.size(), Zero);
     scalarField UfCellWeights(cells_.size(), 0.0);
 
     const polyBoundaryMesh& pbm = mesh_.boundaryMesh();
@@ -486,7 +486,7 @@ void Foam::fv::directionalPressureGradientExplicitSource::addSup
             IOobject::NO_WRITE
         ),
         mesh_,
-        dimensionedVector("zero", eqn.dimensions()/dimVolume, vector::zero)
+        dimensionedVector("zero", eqn.dimensions()/dimVolume, Zero)
     );
 
     UIndirectList<vector>(Su, cells_) = gradP0_ + dGradP_ + gradPporous_;
@@ -536,7 +536,7 @@ void Foam::fv::directionalPressureGradientExplicitSource::constrain
     }
 
     gradP0_ += dGradP_;
-    dGradP_ = vector::zero;
+    dGradP_ = Zero;
 }
 
 
diff --git a/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcel.H b/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcel.H
index fc540a3d122a7413c9198b557b0c6af12da41ac5..a1dc5e3f310388f8841e68811b68eada0931b7e2 100644
--- a/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcel.H
+++ b/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcel.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.
@@ -69,13 +69,11 @@ class DSMCParcel
 :
     public ParcelType
 {
-    // Private member data
-
-        //- Size in bytes of the fields
-        static const std::size_t sizeofFields_;
+public:
 
+    //- Size in bytes of the fields
+    static const std::size_t sizeofFields;
 
-public:
 
     //- Class to hold DSMC particle constant properties
     class constantProperties
diff --git a/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C b/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C
index c47e7bff39feb55fa5300669c3f496b42ce5829d..292f445f9328aeff6ad7fcc37fa42bb2dab6b343 100644
--- a/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C
+++ b/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.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.
@@ -31,7 +31,7 @@ License
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 template<class ParcelType>
-const std::size_t Foam::DSMCParcel<ParcelType>::sizeofFields_
+const std::size_t Foam::DSMCParcel<ParcelType>::sizeofFields
 (
     sizeof(DSMCParcel<ParcelType>) - sizeof(ParcelType)
 );
@@ -62,7 +62,7 @@ Foam::DSMCParcel<ParcelType>::DSMCParcel
         }
         else
         {
-            is.read(reinterpret_cast<char*>(&U_), sizeofFields_);
+            is.read(reinterpret_cast<char*>(&U_), sizeofFields);
         }
     }
 
@@ -160,7 +160,7 @@ Foam::Ostream& Foam::operator<<
         os.write
         (
             reinterpret_cast<const char*>(&p.U_),
-            DSMCParcel<ParcelType>::sizeofFields_
+            DSMCParcel<ParcelType>::sizeofFields
         );
     }
 
diff --git a/src/lagrangian/basic/particle/particle.H b/src/lagrangian/basic/particle/particle.H
index 4bbd17bcc4716ed903627c4f2a9da7a22b1e539d..ea0cc38a364133b7c8e4a689dcc9385085390a29 100644
--- a/src/lagrangian/basic/particle/particle.H
+++ b/src/lagrangian/basic/particle/particle.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.
@@ -85,11 +85,11 @@ class particle
         //- Size in bytes of the position data
         static const std::size_t sizeofPosition_;
 
-        //- Size in bytes of the fields
-        static const std::size_t sizeofFields_;
+public:
 
+    //- Size in bytes of the fields
+    static const std::size_t sizeofFields;
 
-public:
 
     template<class CloudType>
     class TrackingData
@@ -319,6 +319,12 @@ public:
             "tetFaceI tetPtI origProc origId"
         );
 
+        //- String representation of property types
+        DefinePropertyTypes
+        (
+            "vector label label scalar label label label label"
+        );
+
         //- Cumulative particle counter - used to provode unique ID
         static label particleCount_;
 
diff --git a/src/lagrangian/basic/particle/particleIO.C b/src/lagrangian/basic/particle/particleIO.C
index 7d617175cf783a238197648799e6acf9f8af6526..081a5060499a8fbd9ab4e1bf62c41a1aa35788e5 100644
--- a/src/lagrangian/basic/particle/particleIO.C
+++ b/src/lagrangian/basic/particle/particleIO.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.
@@ -28,14 +28,15 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-Foam::string Foam::particle::propertyList_ = Foam::particle::propertyList();
+Foam::string Foam::particle::propertyList_  = Foam::particle::propertyList();
+Foam::string Foam::particle::propertyTypes_ = Foam::particle::propertyTypes();
 
 const std::size_t Foam::particle::sizeofPosition_
 (
     offsetof(particle, faceI_) - offsetof(particle, position_)
 );
 
-const std::size_t Foam::particle::sizeofFields_
+const std::size_t Foam::particle::sizeofFields
 (
     sizeof(particle) - offsetof(particle, position_)
 );
@@ -73,7 +74,7 @@ Foam::particle::particle(const polyMesh& mesh, Istream& is, bool readFields)
     {
         if (readFields)
         {
-            is.read(reinterpret_cast<char*>(&position_), sizeofFields_);
+            is.read(reinterpret_cast<char*>(&position_), sizeofFields);
         }
         else
         {
@@ -120,7 +121,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const particle& p)
         os.write
         (
             reinterpret_cast<const char*>(&p.position_),
-            particle::sizeofFields_
+            particle::sizeofFields
         );
     }
 
diff --git a/src/lagrangian/basic/particle/particleMacros.H b/src/lagrangian/basic/particle/particleMacros.H
index 3d95f1fbcbf6d88a334907fad5ccb725a0078d0b..8bb09dd1338c6ac983defc434fe4a6a17537f127 100644
--- a/src/lagrangian/basic/particle/particleMacros.H
+++ b/src/lagrangian/basic/particle/particleMacros.H
@@ -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.
@@ -39,6 +39,9 @@ namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+//- Define a static 'propertyList' for particle properties
+//  The property list is space-delimited with brackets for vector groupings
+// \sa AddToPropertyList
 #define DefinePropertyList(str)                                                \
                                                                                \
     static string propertyList_;                                               \
@@ -49,6 +52,9 @@ namespace Foam
     }
 
 
+//- Add to existing static 'propertyList' for particle properties
+//  The property list is space-delimited with brackets for vector groupings
+// \sa DefinePropertyList
 #define AddToPropertyList(ParcelType, str)                                     \
                                                                                \
     static string propertyList_;                                               \
@@ -59,6 +65,30 @@ namespace Foam
     }
 
 
+//- Define a static 'propertyTypes' for the types of particle properties
+// \sa AddToPropertyTypes
+#define DefinePropertyTypes(str)                                               \
+                                                                               \
+    static string propertyTypes_;                                              \
+                                                                               \
+    static string propertyTypes()                                              \
+    {                                                                          \
+        return str;                                                            \
+    }
+
+
+//- Add to existing static 'propertyTypes' for the types of particle properties
+// \sa AddToPropertyTypes
+#define AddToPropertyTypes(ParcelType, str)                                    \
+                                                                               \
+    static string propertyTypes_;                                              \
+                                                                               \
+    static string propertyTypes()                                              \
+    {                                                                          \
+        return ParcelType::propertyTypes() + str;                              \
+    }
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcel.H b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcel.H
index 5bc6051ccc09c96d692379661f2232f86d144701..bac35769f440e95aad55628b8abbd22d1998701b 100644
--- a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcel.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.
@@ -72,13 +72,11 @@ class CollidingParcel
 :
     public ParcelType
 {
-    // Private member data
-
-        //- Size in bytes of the fields
-        static const std::size_t sizeofFields_;
+public:
 
+    //- Size in bytes of the fields
+    static const std::size_t sizeofFields;
 
-public:
 
     //- Class to hold thermo particle constant properties
     class constantProperties
@@ -160,6 +158,14 @@ public:
           + " (collisionRecordsWallData)"
         );
 
+        //- String representation of property types
+        static string propertyTypes()
+        {
+            // TODO: collision information types
+            NotImplemented;
+            return string::null;
+        }
+
 
     // Constructors
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C
index f0c2007e481455e4785b31f816f993dab8cfac89..8f0c8b6b468eb27991a40cb9c1144bf8ed14cd1d 100644
--- a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C
@@ -34,7 +34,7 @@ Foam::string Foam::CollidingParcel<ParcelType>::propertyList_ =
     Foam::CollidingParcel<ParcelType>::propertyList();
 
 template<class ParcelType>
-const std::size_t Foam::CollidingParcel<ParcelType>::sizeofFields_
+const std::size_t Foam::CollidingParcel<ParcelType>::sizeofFields
 (
     offsetof(CollidingParcel<ParcelType>, collisionRecords_)
   - offsetof(CollidingParcel<ParcelType>, f_)
@@ -67,7 +67,7 @@ Foam::CollidingParcel<ParcelType>::CollidingParcel
         }
         else
         {
-            is.read(reinterpret_cast<char*>(&f_), sizeofFields_);
+            is.read(reinterpret_cast<char*>(&f_), sizeofFields);
         }
 
         is >> collisionRecords_;
@@ -297,7 +297,7 @@ Foam::Ostream& Foam::operator<<
         os.write
         (
             reinterpret_cast<const char*>(&p.f_),
-            CollidingParcel<ParcelType>::sizeofFields_
+            CollidingParcel<ParcelType>::sizeofFields
         );
         os  << p.collisionRecords();
     }
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
index 864bbb1bbd2b18de9f4ba86212bb6e68579c1d2b..f4e57dde49f3a7ac5f618001447c1a0c3ff1d0ae 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.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.
@@ -80,15 +80,15 @@ class KinematicParcel
 {
     // Private data
 
-        //- Size in bytes of the fields
-        static const std::size_t sizeofFields_;
-
         //- Number of particle tracking attempts before we assume that it stalls
         static label maxTrackAttempts;
 
-
 public:
 
+    //- Size in bytes of the fields
+    static const std::size_t sizeofFields;
+
+
     //- Class to hold kinematic particle constant properties
     class constantProperties
     {
@@ -234,7 +234,8 @@ protected:
         // Parcel properties
 
             //- Active flag - tracking inactive when active = false
-            bool active_;
+            //  Store as label for data alignment, but only has bool states
+            label active_;
 
             //- Parcel type id
             label typeId_;
@@ -309,7 +310,7 @@ public:
           + " typeId"
           + " nParticle"
           + " d"
-          + " dTarget "
+          + " dTarget"
           + " (Ux Uy Uz)"
           + " rho"
           + " age"
@@ -317,6 +318,22 @@ public:
           + " (UTurbx UTurby UTurbz)"
         );
 
+        //- String representation of property types
+        AddToPropertyTypes
+        (
+            ParcelType,
+            " label"
+          + " label"
+          + " scalar"
+          + " scalar"
+          + " scalar"
+          + " vector"
+          + " scalar"
+          + " scalar"
+          + " scalar"
+          + " vector"
+        );
+
 
     // Constructors
 
@@ -442,8 +459,8 @@ public:
 
         // Edit
 
-            //- Return const access to active flag
-            inline bool& active();
+            //- Set active flag to the specified state
+            inline void active(const bool state);
 
             //- Return access to type id
             inline label& typeId();
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H
index ca445b3f647c422ddd2553d22175b0c4a80ec13c..0c4aa607664d5e4b3427e4b312efb311c70a604d 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.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.
@@ -265,9 +265,9 @@ inline Foam::scalar Foam::KinematicParcel<ParcelType>::muc() const
 
 
 template<class ParcelType>
-inline bool& Foam::KinematicParcel<ParcelType>::active()
+inline void Foam::KinematicParcel<ParcelType>::active(const bool state)
 {
-    return active_;
+    active_ = state;
 }
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C
index 9015582842965a531f7a9a96043ca8866bcdae37..22da248dd60be8e30b70ce59d531091d89851ec0 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.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.
@@ -35,7 +35,11 @@ Foam::string Foam::KinematicParcel<ParcelType>::propertyList_ =
     Foam::KinematicParcel<ParcelType>::propertyList();
 
 template<class ParcelType>
-const std::size_t Foam::KinematicParcel<ParcelType>::sizeofFields_
+Foam::string Foam::KinematicParcel<ParcelType>::propertyTypes_ =
+    Foam::KinematicParcel<ParcelType>::propertyTypes();
+
+template<class ParcelType>
+const std::size_t Foam::KinematicParcel<ParcelType>::sizeofFields
 (
     offsetof(KinematicParcel<ParcelType>, rhoc_)
   - offsetof(KinematicParcel<ParcelType>, active_)
@@ -84,7 +88,7 @@ Foam::KinematicParcel<ParcelType>::KinematicParcel
         }
         else
         {
-            is.read(reinterpret_cast<char*>(&active_), sizeofFields_);
+            is.read(reinterpret_cast<char*>(&active_), sizeofFields);
         }
     }
 
@@ -229,7 +233,7 @@ Foam::Ostream& Foam::operator<<
     if (os.format() == IOstream::ASCII)
     {
         os  << static_cast<const ParcelType&>(p)
-            << token::SPACE << p.active()
+            << token::SPACE << bool(p.active())
             << token::SPACE << p.typeId()
             << token::SPACE << p.nParticle()
             << token::SPACE << p.d()
@@ -246,7 +250,7 @@ Foam::Ostream& Foam::operator<<
         os.write
         (
             reinterpret_cast<const char*>(&p.active_),
-            KinematicParcel<ParcelType>::sizeofFields_
+            KinematicParcel<ParcelType>::sizeofFields
         );
     }
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcel.H b/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcel.H
index 38c2ceb4e41bed7f65a2c1ca18094d9313bbdb12..0f2d4043a09a486b99684debb8f87a850dfecde5 100644
--- a/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcel.H
@@ -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.
@@ -73,14 +73,13 @@ class MPPICParcel
 :
     public ParcelType
 {
-    // Private data
-
-        //- Size in bytes of the fields
-        static const std::size_t sizeofFields_;
+public:
 
+    //- Size in bytes of the fields
+    static const std::size_t sizeofFields;
 
-public:
 
+    //- Tracking data
     template<class CloudType>
     class TrackingData
     :
@@ -175,7 +174,14 @@ public:
         AddToPropertyList
         (
             ParcelType,
-            "(UCorrectx UCorrecty UCorrectz)"
+            " (UCorrectx UCorrecty UCorrectz)"
+        );
+
+        //- String representation of property types
+        AddToPropertyTypes
+        (
+            ParcelType,
+            " vector"
         );
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C
index ab4eb3e0c90c9bad0ef9105d1b7c58171d1fedbe..28af8d627e1f79eaa75f013ad1cd69e29bbc1c4a 100644
--- a/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.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.
@@ -34,7 +34,11 @@ Foam::string Foam::MPPICParcel<ParcelType>::propertyList_ =
     Foam::MPPICParcel<ParcelType>::propertyList();
 
 template<class ParcelType>
-const std::size_t Foam::MPPICParcel<ParcelType>::sizeofFields_
+Foam::string Foam::MPPICParcel<ParcelType>::propertyTypes_ =
+    Foam::MPPICParcel<ParcelType>::propertyTypes();
+
+template<class ParcelType>
+const std::size_t Foam::MPPICParcel<ParcelType>::sizeofFields
 (
     sizeof(MPPICParcel<ParcelType>) - sizeof(ParcelType)
 );
@@ -61,7 +65,7 @@ Foam::MPPICParcel<ParcelType>::MPPICParcel
         }
         else
         {
-            is.read(reinterpret_cast<char*>(&UCorrect_), sizeofFields_);
+            is.read(reinterpret_cast<char*>(&UCorrect_), sizeofFields);
         }
     }
 
@@ -146,7 +150,7 @@ Foam::Ostream& Foam::operator<<
         os.write
         (
             reinterpret_cast<const char*>(&p.UCorrect_),
-            MPPICParcel<ParcelType>::sizeofFields_
+            MPPICParcel<ParcelType>::sizeofFields
         );
     }
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H
index b431e368662e87d9d535ec707a92db635c4b8dd8..bc8d2780a6e4d973a083fdd070d63654a6783fdb 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.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.
@@ -66,13 +66,11 @@ class ReactingMultiphaseParcel
 :
     public ParcelType
 {
-    // Private data
-
-        //- Size in bytes of the fields
-        static const std::size_t sizeofFields_;
+public:
 
+    //- Size in bytes of the fields
+    static const std::size_t sizeofFields;
 
-public:
 
     // IDs of phases in ReacingParcel phase list (Y)
 
@@ -267,6 +265,15 @@ public:
           + " nSolid(Y1..YN)"
         );
 
+        //- String representation of property types
+        AddToPropertyTypes
+        (
+            ParcelType,
+            " List<scalar>"
+          + " List<scalar>"
+          + " List<Scalar>"
+        );
+
 
     // Constructors
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelIO.C
index e219f5ee95953f704fb204b370ea9c3aaa737f34..2a776383ae1db1ecf824a0c78360e4fdba744919 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelIO.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.
@@ -33,7 +33,11 @@ Foam::string Foam::ReactingMultiphaseParcel<ParcelType>::propertyList_ =
     Foam::ReactingMultiphaseParcel<ParcelType>::propertyList();
 
 template<class ParcelType>
-const std::size_t Foam::ReactingMultiphaseParcel<ParcelType>::sizeofFields_
+Foam::string Foam::ReactingMultiphaseParcel<ParcelType>::propertyTypes_ =
+    Foam::ReactingMultiphaseParcel<ParcelType>::propertyTypes();
+
+template<class ParcelType>
+const std::size_t Foam::ReactingMultiphaseParcel<ParcelType>::sizeofFields
 (
     0
 );
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
index a89bc9c4cf7dd193b5d4248821e383227e1e879b..0e84c7828f08a858db271c41ddefcf91541ea614 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.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.
@@ -67,13 +67,11 @@ class ReactingParcel
 :
     public ParcelType
 {
-    // Private data
-
-        //- Size in bytes of the fields
-        static const std::size_t sizeofFields_;
+public:
 
+    //- Size in bytes of the fields
+    static const std::size_t sizeofFields;
 
-public:
 
     //- Class to hold reacting parcel constant properties
     class constantProperties
@@ -221,6 +219,14 @@ public:
           + " nPhases(Y1..YN)"
         );
 
+        //- String representation of property types
+        AddToPropertyTypes
+        (
+            ParcelType,
+            " scalar"
+          + " List<scalar>"
+        );
+
 
     // Constructors
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C
index f0254656cfbe6c491285542220daccbdc5f6ca6b..3eb02e4e2a6b37eb2a04c49836c06d1e2be045e9 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.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.
@@ -33,7 +33,11 @@ Foam::string Foam::ReactingParcel<ParcelType>::propertyList_ =
     Foam::ReactingParcel<ParcelType>::propertyList();
 
 template<class ParcelType>
-const std::size_t Foam::ReactingParcel<ParcelType>::sizeofFields_
+Foam::string Foam::ReactingParcel<ParcelType>::propertyTypes_ =
+    Foam::ReactingParcel<ParcelType>::propertyTypes();
+
+template<class ParcelType>
+const std::size_t Foam::ReactingParcel<ParcelType>::sizeofFields
 (
     sizeof(scalar)
 );
@@ -64,7 +68,7 @@ Foam::ReactingParcel<ParcelType>::ReactingParcel
         }
         else
         {
-            is.read(reinterpret_cast<char*>(&mass0_), sizeofFields_);
+            is.read(reinterpret_cast<char*>(&mass0_), sizeofFields);
             is >> Ymix;
         }
 
@@ -251,7 +255,7 @@ Foam::Ostream& Foam::operator<<
         os.write
         (
             reinterpret_cast<const char*>(&p.mass0_),
-            ReactingParcel<ParcelType>::sizeofFields_
+            ReactingParcel<ParcelType>::sizeofFields
         );
         os  << p.Y();
     }
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
index 3ea797ff8d8eeb7451a42103268c77b38b15ca54..ac0e96877113b7e55c6cc6ac76e1a57b3ebd5b83 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.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.
@@ -67,13 +67,11 @@ class ThermoParcel
 :
     public ParcelType
 {
-    // Private data
-
-        //- Size in bytes of the fields
-        static const std::size_t sizeofFields_;
+public:
 
+    //- Size in bytes of the fields
+    static const std::size_t sizeofFields;
 
-public:
 
     //- Class to hold thermo particle constant properties
     class constantProperties
@@ -277,6 +275,14 @@ public:
           + " Cp"
         );
 
+        //- String representation of property types
+        AddToPropertyTypes
+        (
+            ParcelType,
+            " scalar"
+          + " scalar"
+        );
+
 
     // Constructors
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C
index 93e60505b81ff7e4df92aea2ef72483ac2f417c2..da0b6bd5ae1b46cb09b6e1629dd092cc0748e9b3 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.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.
@@ -33,7 +33,11 @@ Foam::string Foam::ThermoParcel<ParcelType>::propertyList_ =
     Foam::ThermoParcel<ParcelType>::propertyList();
 
 template<class ParcelType>
-const std::size_t Foam::ThermoParcel<ParcelType>::sizeofFields_
+Foam::string Foam::ThermoParcel<ParcelType>::propertyTypes_ =
+    Foam::ThermoParcel<ParcelType>::propertyTypes();
+
+template<class ParcelType>
+const std::size_t Foam::ThermoParcel<ParcelType>::sizeofFields
 (
     offsetof(ThermoParcel<ParcelType>, Tc_)
   - offsetof(ThermoParcel<ParcelType>, T_)
@@ -65,7 +69,7 @@ Foam::ThermoParcel<ParcelType>::ThermoParcel
         }
         else
         {
-            is.read(reinterpret_cast<char*>(&T_), sizeofFields_);
+            is.read(reinterpret_cast<char*>(&T_), sizeofFields);
         }
     }
 
@@ -154,7 +158,7 @@ Foam::Ostream& Foam::operator<<
         os.write
         (
             reinterpret_cast<const char*>(&p.T_),
-            ThermoParcel<ParcelType>::sizeofFields_
+            ThermoParcel<ParcelType>::sizeofFields
         );
     }
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/kinematicParcelInjectionData.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/kinematicParcelInjectionData.C
index 12364b9dfe710af8f672b2a812ef3fc448b786a3..a831d77283e244b51ebb70a8bf9698276d27a4e9 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/kinematicParcelInjectionData.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/kinematicParcelInjectionData.C
@@ -36,7 +36,7 @@ namespace Foam
 
 Foam::kinematicParcelInjectionData::kinematicParcelInjectionData()
 :
-    x_(point::zero),
+    x_(Zero),
     U_(Zero),
     d_(0.0),
     rho_(0.0),
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C
index 37982290910c16971a5c189ed7e2b8f9c9caa3fc..f7ee9e88aa3f3c89150bf701b459fbf942dc7704 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/LocalInteraction/LocalInteraction.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.
@@ -181,7 +181,6 @@ bool Foam::LocalInteraction<CloudType>::correct
     if (patchI >= 0)
     {
         vector& U = p.U();
-        bool& active = p.active();
 
         typename PatchInteractionModel<CloudType>::interactionType it =
             this->wordToInteractionType
@@ -196,7 +195,7 @@ bool Foam::LocalInteraction<CloudType>::correct
                 scalar dm = p.mass()*p.nParticle();
 
                 keepParticle = false;
-                active = false;
+                p.active(false);
                 U = Zero;
                 nEscape_[patchI]++;
                 massEscape_[patchI] += dm;
@@ -213,7 +212,7 @@ bool Foam::LocalInteraction<CloudType>::correct
                 scalar dm = p.mass()*p.nParticle();
 
                 keepParticle = true;
-                active = false;
+                p.active(false);
                 U = Zero;
                 nStick_[patchI]++;
                 massStick_[patchI] += dm;
@@ -228,7 +227,7 @@ bool Foam::LocalInteraction<CloudType>::correct
             case PatchInteractionModel<CloudType>::itRebound:
             {
                 keepParticle = true;
-                active = true;
+                p.active(true);
 
                 vector nw;
                 vector Up;
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/Rebound/Rebound.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/Rebound/Rebound.C
index f6c1fda460c528353d81ad31929038a28f24e443..5eb43b55f39e8b2a3ee964f8c2c0d983b81559d2 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/Rebound/Rebound.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/Rebound/Rebound.C
@@ -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.
@@ -69,7 +69,7 @@ bool Foam::Rebound<CloudType>::correct
     vector& U = p.U();
 
     keepParticle = true;
-    p.active() = true;
+    p.active(true);
 
     vector nw;
     vector Up;
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C
index 38b57a272147e47d4247b487fe6785344fb9db93..61c5829281d01114d0a48dd63554a731a304c21d 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/StandardWallInteraction/StandardWallInteraction.C
@@ -112,8 +112,6 @@ bool Foam::StandardWallInteraction<CloudType>::correct
 {
     vector& U = p.U();
 
-    bool& active = p.active();
-
     if (isA<wallPolyPatch>(pp))
     {
         switch (interactionType_)
@@ -121,7 +119,7 @@ bool Foam::StandardWallInteraction<CloudType>::correct
             case PatchInteractionModel<CloudType>::itEscape:
             {
                 keepParticle = false;
-                active = false;
+                p.active(false);
                 U = Zero;
                 nEscape_++;
                 massEscape_ += p.nParticle()*p.mass();
@@ -130,7 +128,7 @@ bool Foam::StandardWallInteraction<CloudType>::correct
             case PatchInteractionModel<CloudType>::itStick:
             {
                 keepParticle = true;
-                active = false;
+                p.active(false);
                 U = Zero;
                 nStick_++;
                 massStick_ += p.nParticle()*p.mass();
@@ -139,7 +137,7 @@ bool Foam::StandardWallInteraction<CloudType>::correct
             case PatchInteractionModel<CloudType>::itRebound:
             {
                 keepParticle = true;
-                active = true;
+                p.active(true);
 
                 vector nw;
                 vector Up;
diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H b/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H
index a3d0682c9d5feed7ff5a6dfde73db2e4ae0c469a..a47550becc266ce64426cfc2de2180d827193eb2 100644
--- a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H
+++ b/src/lagrangian/molecularDynamics/molecule/molecule/molecule.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.
@@ -58,17 +58,15 @@ class molecule
 :
     public particle
 {
-    // Private data
+public:
 
-        //- Size in bytes of the fields
-        static const std::size_t sizeofFields_;
+    //- Size in bytes of the fields
+    static const std::size_t sizeofFields;
 
 
-public:
-
     // Values of special that are less than zero are for built-in functionality.
-    // Values greater than zero are user specifiable/expandable (i.e. test
-    // special_ >= SPECIAL_USER)
+    // Values greater than zero are user specifiable/expandable
+    // (i.e. test special_ >= SPECIAL_USER)
 
     enum specialTypes
     {
@@ -78,6 +76,7 @@ public:
         SPECIAL_USER     = 1
     };
 
+
     //- Class to hold molecule constant properties
     class constantProperties
     {
diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C b/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C
index d6fd3cbd29e73270ac920ecc7f4dd7470447211a..9b15c28c189b673567fe7fdd5a6455cdbed14ef0 100644
--- a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C
+++ b/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.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.
@@ -29,7 +29,7 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-const std::size_t Foam::molecule::sizeofFields_
+const std::size_t Foam::molecule::sizeofFields
 (
     offsetof(molecule, siteForces_) - offsetof(molecule, Q_)
 );
@@ -77,7 +77,7 @@ Foam::molecule::molecule
         }
         else
         {
-            is.read(reinterpret_cast<char*>(&Q_), sizeofFields_);
+            is.read(reinterpret_cast<char*>(&Q_), sizeofFields);
             is  >> siteForces_ >> sitePositions_;
         }
     }
@@ -276,7 +276,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const molecule& mol)
         os.write
         (
             reinterpret_cast<const char*>(&mol.Q_),
-            molecule::sizeofFields_
+            molecule::sizeofFields
         );
         os  << mol.siteForces_ << mol.sitePositions_;
     }
diff --git a/src/lagrangian/solidParticle/solidParticle.H b/src/lagrangian/solidParticle/solidParticle.H
index 7bbd2dc330898a77381a61c1065afa2a6cb4318a..f476e03d54c33511e3ae2cb4159379b36db076df 100644
--- a/src/lagrangian/solidParticle/solidParticle.H
+++ b/src/lagrangian/solidParticle/solidParticle.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.
@@ -61,9 +61,6 @@ class solidParticle
 {
     // Private data
 
-        //- Size in bytes of the fields
-        static const std::size_t sizeofFields_;
-
         //- Diameter
         scalar d_;
 
@@ -116,6 +113,12 @@ public:
     };
 
 
+    // Static data members
+
+        //- Size in bytes of the fields
+        static const std::size_t sizeofFields;
+
+
     // Constructors
 
         //- Construct from components
diff --git a/src/lagrangian/solidParticle/solidParticleIO.C b/src/lagrangian/solidParticle/solidParticleIO.C
index fe50df977f1b71fff538690ba094fd14405efbc7..c27cdbb94d311bbe208b8699e86a179f5439feb8 100644
--- a/src/lagrangian/solidParticle/solidParticleIO.C
+++ b/src/lagrangian/solidParticle/solidParticleIO.C
@@ -28,7 +28,7 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-const std::size_t Foam::solidParticle::sizeofFields_
+const std::size_t Foam::solidParticle::sizeofFields
 (
     sizeof(solidParticle) - sizeof(particle)
 );
@@ -54,7 +54,7 @@ Foam::solidParticle::solidParticle
         }
         else
         {
-            is.read(reinterpret_cast<char*>(&d_), sizeofFields_);
+            is.read(reinterpret_cast<char*>(&d_), sizeofFields);
         }
     }
 
@@ -130,7 +130,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const solidParticle& p)
         os.write
         (
             reinterpret_cast<const char*>(&p.d_),
-            solidParticle::sizeofFields_
+            solidParticle::sizeofFields
         );
     }
 
diff --git a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcel.H b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcel.H
index 1acbc4a849732204679604214f334230ac2b12ea..76210b20c0b4476a1d51ae82dfd4e11dcda37b67 100644
--- a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcel.H
+++ b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcel.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.
@@ -25,7 +25,7 @@ Class
     Foam::SprayParcel
 
 Description
-    Reacing spray parcel, with added functionality for atomization and breakup
+    Reacting spray parcel, with added functionality for atomization and breakup
 
 \*---------------------------------------------------------------------------*/
 
@@ -59,12 +59,6 @@ class SprayParcel
 :
     public ParcelType
 {
-    // Private data
-
-        //- Size in bytes of the fields
-        static const std::size_t sizeofFields_;
-
-
 public:
 
     //- Class to hold reacting particle constant properties
@@ -178,6 +172,9 @@ public:
 
     // Static data members
 
+        //- Size in bytes of the fields
+        static const std::size_t sizeofFields;
+
         //- Runtime type information
         TypeName("SprayParcel");
 
@@ -185,7 +182,7 @@ public:
         AddToPropertyList
         (
             ParcelType,
-          + " d0"
+            " d0"
           + " position0"
           + " sigma"
           + " mu"
@@ -200,6 +197,25 @@ public:
           + " user"
         );
 
+        //- String representation of property types
+        AddToPropertyTypes
+        (
+            ParcelType,
+            " scalar"
+          + " vector"
+          + " scalar"
+          + " scalar"
+          + " scalar"
+          + " scalar"
+          + " scalar"
+          + " scalar"
+          + " scalar"
+          + " scalar"
+          + " scalar"
+          + " scalar"
+          + " scalar"
+        );
+
 
     // Constructors
 
diff --git a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C
index f5510d10a77897f3d2becba33013733541cc7165..482bb4e42bd17d52da030b96756b305d68d3df0d 100644
--- a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C
+++ b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.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,9 +32,13 @@ template<class ParcelType>
 Foam::string Foam::SprayParcel<ParcelType>::propertyList_ =
     Foam::SprayParcel<ParcelType>::propertyList();
 
+template<class ParcelType>
+Foam::string Foam::SprayParcel<ParcelType>::propertyTypes_ =
+    Foam::SprayParcel<ParcelType>::propertyTypes();
+
 
 template<class ParcelType>
-const std::size_t Foam::SprayParcel<ParcelType>::sizeofFields_
+const std::size_t Foam::SprayParcel<ParcelType>::sizeofFields
 (
     sizeof(SprayParcel<ParcelType>) - sizeof(ParcelType)
 );
@@ -85,7 +89,7 @@ Foam::SprayParcel<ParcelType>::SprayParcel
         }
         else
         {
-            is.read(reinterpret_cast<char*>(&d0_), sizeofFields_);
+            is.read(reinterpret_cast<char*>(&d0_), sizeofFields);
         }
     }
 
@@ -311,7 +315,7 @@ Foam::Ostream& Foam::operator<<
         os.write
         (
             reinterpret_cast<const char*>(&p.d0_),
-            SprayParcel<ParcelType>::sizeofFields_
+            SprayParcel<ParcelType>::sizeofFields
         );
     }
 
diff --git a/src/mesh/snappyHexMesh/externalDisplacementMeshMover/medialAxisMeshMover.C b/src/mesh/snappyHexMesh/externalDisplacementMeshMover/medialAxisMeshMover.C
index 46ae5f4686f8cd9912ec7d4f56e1076f169cd2c4..f68aa1d09af67ccb47d3ee1006291df47c984266 100644
--- a/src/mesh/snappyHexMesh/externalDisplacementMeshMover/medialAxisMeshMover.C
+++ b/src/mesh/snappyHexMesh/externalDisplacementMeshMover/medialAxisMeshMover.C
@@ -630,13 +630,13 @@ bool Foam::medialAxisMeshMover::unmarkExtrusion
     if (extrudeStatus[patchPointI] == snappyLayerDriver::EXTRUDE)
     {
         extrudeStatus[patchPointI] = snappyLayerDriver::NOEXTRUDE;
-        patchDisp[patchPointI] = vector::zero;
+        patchDisp[patchPointI] = Zero;
         return true;
     }
     else if (extrudeStatus[patchPointI] == snappyLayerDriver::EXTRUDEREMOVE)
     {
         extrudeStatus[patchPointI] = snappyLayerDriver::NOEXTRUDE;
-        patchDisp[patchPointI] = vector::zero;
+        patchDisp[patchPointI] = Zero;
         return true;
     }
     else
@@ -1224,7 +1224,7 @@ Foam::medialAxisMeshMover::medialAxisMeshMover
             false
         ),
         pMesh(),
-        dimensionedVector("dispVec", dimLength, vector::zero)
+        dimensionedVector("dispVec", dimLength, Zero)
     ),
     medialRatio_
     (
@@ -1266,7 +1266,7 @@ Foam::medialAxisMeshMover::medialAxisMeshMover
             false
         ),
         pMesh(),
-        dimensionedVector("medialVec", dimLength, vector::zero)
+        dimensionedVector("medialVec", dimLength, Zero)
     )
 {
     update(dict);
@@ -1594,7 +1594,7 @@ void Foam::medialAxisMeshMover::calculateDisplacement
     {
         if (!pointWallDist[pointI].valid(dummyTrackData))
         {
-            displacement[pointI] = vector::zero;
+            displacement[pointI] = Zero;
         }
         else
         {
diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C
index 749989e44f479c21cce7a9f8f20d43b4eb83746a..db59fd4fc39ae7b0b100bb9f290d664b8a7f9b5e 100644
--- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C
+++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C
@@ -1737,7 +1737,7 @@ Foam::tmp<Foam::pointVectorField> Foam::meshRefinement::makeDisplacementField
                 IOobject::AUTO_WRITE
             ),
             pMesh,
-            dimensionedVector("displacement", dimLength, vector::zero),
+            dimensionedVector("displacement", dimLength, Zero),
             patchFieldTypes
         )
     );
diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.H b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.H
index f95f5fd6e0135b0d053dfa44091550478778d84a..c0b2724da1d11e67dae850b20a2e4916b1ce5482 100644
--- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.H
+++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.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  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -669,6 +669,7 @@ private:
             //- Determines cell zone from cell region information.
             bool calcRegionToZone
             (
+                const label backgroundZoneID,
                 const label surfZoneI,
                 const label ownRegion,
                 const label neiRegion,
@@ -680,6 +681,7 @@ private:
             //  marked in namedSurfaceIndex regarded as blocked.
             void findCellZoneTopo
             (
+                const label backgroundZoneID,
                 const pointField& locationsInMesh,
                 const labelList& allSurfaceIndex,
                 const labelList& namedSurfaceIndex,
@@ -700,6 +702,7 @@ private:
             void zonify
             (
                 const bool allowFreeStandingZoneFaces,
+                const label backgroundZoneID,
                 const pointField& locationsInMesh,
                 const wordList& zonesInMesh,
 
diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C
index 7584b874c3059a7f47b1a3c99a8afb4aac7328ae..9af9efa7d817b4a0c4d77bdfbde6a37a1d763956 100644
--- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C
+++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.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  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -311,6 +311,7 @@ void Foam::meshRefinement::getBafflePatches
         zonify
         (
             true,               // allowFreeStandingZoneFaces
+            -2,                 // zone to put unreached cells into
             locationsInMesh,
             zonesInMesh,
 
@@ -1812,6 +1813,7 @@ void Foam::meshRefinement::findCellZoneInsideWalk
 
 bool Foam::meshRefinement::calcRegionToZone
 (
+    const label backgroundZoneID,
     const label surfZoneI,
     const label ownRegion,
     const label neiRegion,
@@ -1835,8 +1837,12 @@ bool Foam::meshRefinement::calcRegionToZone
             {
                 // Face between unset and my region. Put unset
                 // region into keepRegion
-                regionToCellZone[ownRegion] = -1;
-                changed = true;
+                //MEJ: see comment in findCellZoneTopo
+                if (backgroundZoneID != -2)
+                {
+                    regionToCellZone[ownRegion] = backgroundZoneID;
+                    changed = true;
+                }
             }
             else if (regionToCellZone[neiRegion] != -2)
             {
@@ -1852,8 +1858,11 @@ bool Foam::meshRefinement::calcRegionToZone
             {
                 // Face between unset and my region. Put unset
                 // region into keepRegion
-                regionToCellZone[neiRegion] = -1;
-                changed = true;
+                if (backgroundZoneID != -2)
+                {
+                    regionToCellZone[neiRegion] = backgroundZoneID;
+                    changed = true;
+                }
             }
             else if (regionToCellZone[ownRegion] != -2)
             {
@@ -1870,6 +1879,7 @@ bool Foam::meshRefinement::calcRegionToZone
 
 void Foam::meshRefinement::findCellZoneTopo
 (
+    const label backgroundZoneID,
     const pointField& locationsInMesh,
     const labelList& allSurfaceIndex,
     const labelList& namedSurfaceIndex,
@@ -1877,6 +1887,25 @@ void Foam::meshRefinement::findCellZoneTopo
     labelList& cellToZone
 ) const
 {
+    // This routine splits the mesh into regions, based on the intersection
+    // with a surface. The problem is that we know the surface which
+    // (intersected) face belongs to (in namedSurfaceIndex) but we don't
+    // know which side of the face it relates to. So all we are doing here
+    // is get the correspondence between surface/cellZone and regionSplit
+    // region.
+    // See the logic in calcRegionToZone. The problem is what to do
+    // with unreachable parts of the mesh (cellToZone = -2).
+    // In 23x this routine was only called for actually zoneing an existing
+    // mesh so we had to do something with these cells and they
+    // would get set to -1 (background). However in this version this routine
+    // also gets used much earlier on when after the surface refinement it
+    // removes unreachable cells ('Removing mesh beyond surface intersections')
+    // and this is when we keep -2 so it gets removed.
+    // So the zone to set these unmarked cells to is provided as argument:
+    // - backgroundZoneID = -2 : do not change so remove cells
+    // - backgroundZoneID = -1 : put into background
+
+
     // Assumes:
     // - region containing keepPoint does not go into a cellZone
     // - all other regions can be found by crossing faces marked in
@@ -1995,6 +2024,7 @@ void Foam::meshRefinement::findCellZoneTopo
                 // of internal face.
                 bool changedCell = calcRegionToZone
                 (
+                    backgroundZoneID,
                     surfaceToCellZone[surfI],
                     cellRegion[mesh_.faceOwner()[faceI]],
                     cellRegion[mesh_.faceNeighbour()[faceI]],
@@ -2032,6 +2062,7 @@ void Foam::meshRefinement::findCellZoneTopo
                     {
                         bool changedCell = calcRegionToZone
                         (
+                            backgroundZoneID,
                             surfaceToCellZone[surfI],
                             cellRegion[mesh_.faceOwner()[faceI]],
                             neiCellRegion[faceI-mesh_.nInternalFaces()],
@@ -2309,6 +2340,7 @@ void Foam::meshRefinement::getIntersections
 void Foam::meshRefinement::zonify
 (
     const bool allowFreeStandingZoneFaces,
+    const label backgroundZoneID,
     const pointField& locationsInMesh,
     const wordList& zonesInMesh,
 
@@ -2513,6 +2545,7 @@ void Foam::meshRefinement::zonify
 
         findCellZoneTopo
         (
+            backgroundZoneID,
             pointField(0),
             globalRegion1,      // To split up cells
             namedSurfaceIndex,  // Step across named surfaces to propagate
@@ -4271,7 +4304,7 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::zonify
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
     // Zone per cell:
-    // -2 : unset
+    // -2 : unset : not allowed!
     // -1 : not in any zone (zone 'none')
     // >=0: zoneID
     // namedSurfaceIndex:
@@ -4283,6 +4316,7 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::zonify
     zonify
     (
         allowFreeStandingZoneFaces,
+        -1,                 // Set all cells with cellToZone -2 to -1
         locationsInMesh,
         zonesInMesh,
 
diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementRefine.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementRefine.C
index 4ffa1248f8e509d01551962475f990dcf8222479..c9dba90ec094ae0bbdd49209a30caceff50065b2 100644
--- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementRefine.C
+++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementRefine.C
@@ -1558,7 +1558,7 @@ bool Foam::meshRefinement::isGap
     {
         scalar cosAngle = (normal0 & normal1);
 
-        vector avg = vector::zero;
+        vector avg = Zero;
         if (cosAngle < (-1+planarCos))
         {
             // Opposite normals
@@ -1615,7 +1615,7 @@ bool Foam::meshRefinement::isNormalGap
     {
         scalar cosAngle = (normal0 & normal1);
 
-        vector avg = vector::zero;
+        vector avg = Zero;
         if (cosAngle < (-1+planarCos))
         {
             // Opposite normals
@@ -1782,8 +1782,8 @@ Foam::label Foam::meshRefinement::markProximityRefinement
     // minLevel) and cache per cell the max surface level and the local normal
     // on that surface.
     labelList cellMaxLevel(mesh_.nCells(), -1);
-    vectorField cellMaxNormal(mesh_.nCells(), vector::zero);
-    pointField cellMaxLocation(mesh_.nCells(), vector::zero);
+    vectorField cellMaxNormal(mesh_.nCells(), Zero);
+    pointField cellMaxLocation(mesh_.nCells(), Zero);
 
     {
         // Per segment the normals of the surfaces
diff --git a/src/mesh/snappyHexMesh/refinementFeatures/refinementFeatures.C b/src/mesh/snappyHexMesh/refinementFeatures/refinementFeatures.C
index c9532641bd97c7feceae63afceb427b260661561..514b1e3b06e9ad921e7a1c4265c0702952026255 100644
--- a/src/mesh/snappyHexMesh/refinementFeatures/refinementFeatures.C
+++ b/src/mesh/snappyHexMesh/refinementFeatures/refinementFeatures.C
@@ -536,7 +536,7 @@ void Foam::refinementFeatures::findNearestEdge
     nearInfo.setSize(samples.size());
     nearInfo = pointIndexHit();
     nearNormal.setSize(samples.size());
-    nearNormal = vector::zero;
+    nearNormal = Zero;
 
     forAll(edgeTrees_, featI)
     {
@@ -595,7 +595,7 @@ void Foam::refinementFeatures::findNearestRegionEdge
     nearInfo.setSize(samples.size());
     nearInfo = pointIndexHit();
     nearNormal.setSize(samples.size());
-    nearNormal = vector::zero;
+    nearNormal = Zero;
 
 
     const PtrList<indexedOctree<treeDataEdge>>& regionTrees =
diff --git a/src/mesh/snappyHexMesh/refinementSurfaces/refinementSurfaces.C b/src/mesh/snappyHexMesh/refinementSurfaces/refinementSurfaces.C
index f37714e561bdf26883f6ad7adf0b42e453e7d1d4..b3f56f621a735483bbb0bf03e83b1135ac9ac72d 100644
--- a/src/mesh/snappyHexMesh/refinementSurfaces/refinementSurfaces.C
+++ b/src/mesh/snappyHexMesh/refinementSurfaces/refinementSurfaces.C
@@ -1216,7 +1216,7 @@ void Foam::refinementSurfaces::findNearestIntersection
     region1.setSize(start.size());
     region1 = -1;
     normal1.setSize(start.size());
-    normal1 = vector::zero;
+    normal1 = Zero;
 
     // Current end of segment to test.
     pointField nearest(end);
@@ -1325,7 +1325,7 @@ void Foam::refinementSurfaces::findNearestIntersection
     surface1.setSize(start.size());
     surface1 = -1;
     normal1.setSize(start.size());
-    normal1 = vector::zero;
+    normal1 = Zero;
 
     // Current end of segment to test.
     pointField nearest(end);
@@ -1374,7 +1374,7 @@ void Foam::refinementSurfaces::findNearestIntersection
     hitInfo1.setSize(start.size());
     hitInfo1 = pointIndexHit();
     normal1.setSize(start.size());
-    normal1 = vector::zero;
+    normal1 = Zero;
 
     // Current end of segment to test.
     pointField nearest(end);
@@ -1559,7 +1559,7 @@ void Foam::refinementSurfaces::findNearestRegion
     hitRegion.setSize(hitSurface.size());
     hitRegion = -1;
     hitNormal.setSize(hitSurface.size());
-    hitNormal = vector::zero;
+    hitNormal = Zero;
 
     forAll(surfacesToTest, i)
     {
@@ -1784,7 +1784,7 @@ void Foam::refinementSurfaces::findNearestRegion
     hitRegion.setSize(hitSurface.size());
     hitRegion = -1;
     hitNormal.setSize(hitSurface.size());
-    hitNormal = vector::zero;
+    hitNormal = Zero;
 
     forAll(surfacesToTest, i)
     {
diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C
index 2d5d3621a2a301c90c626b5749c2144724059e13..cfbb7c3de8dc4dfe06af4657bb3ccff7981610b8 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C
@@ -223,14 +223,14 @@ bool Foam::snappyLayerDriver::unmarkExtrusion
     {
         extrudeStatus[patchPointI] = NOEXTRUDE;
         patchNLayers[patchPointI] = 0;
-        patchDisp[patchPointI] = vector::zero;
+        patchDisp[patchPointI] = Zero;
         return true;
     }
     else if (extrudeStatus[patchPointI] == EXTRUDEREMOVE)
     {
         extrudeStatus[patchPointI] = NOEXTRUDE;
         patchNLayers[patchPointI] = 0;
-        patchDisp[patchPointI] = vector::zero;
+        patchDisp[patchPointI] = Zero;
         return true;
     }
     else
@@ -866,7 +866,7 @@ Foam::snappyLayerDriver::makeLayerDisplacementField
                 IOobject::AUTO_WRITE
             ),
             pMesh,
-            dimensionedVector("displacement", dimLength, vector::zero),
+            dimensionedVector("displacement", dimLength, Zero),
             patchFieldTypes,
             actualPatchTypes
         )
@@ -953,7 +953,7 @@ void Foam::snappyLayerDriver::growNoExtrusion
     {
         if (extrudeStatus[patchPointI] == NOEXTRUDE)
         {
-            patchDisp[patchPointI] = vector::zero;
+            patchDisp[patchPointI] = Zero;
             patchNLayers[patchPointI] = 0;
         }
     }
@@ -1532,7 +1532,7 @@ void Foam::snappyLayerDriver::getPatchDisplacement
         {
             // Do not use unmarkExtrusion; forcibly set to zero extrusion.
             patchNLayers[patchPointI] = 0;
-            patchDisp[patchPointI] = vector::zero;
+            patchDisp[patchPointI] = Zero;
         }
         else
         {
@@ -1561,7 +1561,7 @@ void Foam::snappyLayerDriver::getPatchDisplacement
     {
         if (extrudeStatus[patchPointI] == EXTRUDEREMOVE)
         {
-            point avg(vector::zero);
+            point avg(Zero);
             label nPoints = 0;
 
             const labelList& pEdges = pp.pointEdges()[patchPointI];
@@ -1798,7 +1798,7 @@ Foam::label Foam::snappyLayerDriver::truncateDisplacement
         else if (extrudeStatus[patchPointI] == NOEXTRUDE)
         {
             // Make sure displacement is 0. Should already be so but ...
-            patchDisp[patchPointI] = vector::zero;
+            patchDisp[patchPointI] = Zero;
             patchNLayers[patchPointI] = 0;
         }
     }
@@ -3681,7 +3681,7 @@ void Foam::snappyLayerDriver::addLayers
 
             // Calculate displacement for final layer for addPatchLayer.
             // (layer of cells next to the original mesh)
-            vectorField finalDisp(patchNLayers.size(), vector::zero);
+            vectorField finalDisp(patchNLayers.size(), Zero);
 
             forAll(nPatchPointLayers, i)
             {
diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyRefineDriver.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyRefineDriver.C
index 99957c9fa492fe3fc436c5c506cc0f9845b45ea4..484229bf93a1dd074e392cc206d5905f1b26c866 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyRefineDriver.C
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyRefineDriver.C
@@ -1025,7 +1025,7 @@ Foam::label Foam::snappyRefineDriver::refinementInterfaceRefine
                 //    const scalar rCVol = pow(cellVolumes[cellI], -5.0/3.0);
                 //
                 //    // Determine principal axes of cell
-                //    symmTensor R(symmTensor::zero);
+                //    symmTensor R(Zero);
                 //
                 //    forAll(cFaces, i)
                 //    {
diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriver.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriver.C
index 0af06a6e754e26e710be6159428615847b635983..95178d2881b785508c839a92c42a8ba1e4d8a641 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriver.C
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriver.C
@@ -250,7 +250,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothInternalDisplacement
 
     // Calculate average of connected cells
     labelList nCells(mesh.nPoints(), 0);
-    pointField sumLocation(mesh.nPoints(), vector::zero);
+    pointField sumLocation(mesh.nPoints(), Zero);
 
     forAll(isMovingPoint, pointI)
     {
@@ -276,7 +276,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothInternalDisplacement
         vector::zero
     );
 
-    tmp<pointField> tdisplacement(new pointField(mesh.nPoints(), vector::zero));
+    tmp<pointField> tdisplacement(new pointField(mesh.nPoints(), Zero));
     pointField& displacement = tdisplacement.ref();
 
     label nAdapted = 0;
@@ -370,7 +370,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
     // Get average position of boundary face centres
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    vectorField avgBoundary(pointFaces.size(), vector::zero);
+    vectorField avgBoundary(pointFaces.size(), Zero);
     labelList nBoundary(pointFaces.size(), 0);
 
     forAll(pointFaces, patchPointI)
@@ -418,7 +418,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
     vectorField avgInternal;
     labelList nInternal;
     {
-        vectorField globalSum(mesh.nPoints(), vector::zero);
+        vectorField globalSum(mesh.nPoints(), Zero);
         labelList globalNum(mesh.nPoints(), 0);
 
         // Note: no use of pointFaces
@@ -521,7 +521,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
 
 
     // Displacement to calculate.
-    tmp<pointField> tpatchDisp(new pointField(meshPoints.size(), vector::zero));
+    tmp<pointField> tpatchDisp(new pointField(meshPoints.size(), Zero));
     pointField& patchDisp = tpatchDisp.ref();
 
     forAll(pointFaces, i)
@@ -597,7 +597,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::smoothPatchDisplacement
 //    const labelListList& pointEdges = pp.pointEdges();
 //    const edgeList& edges = pp.edges();
 //
-//    tmp<pointField> tavg(new pointField(pointEdges.size(), vector::zero));
+//    tmp<pointField> tavg(new pointField(pointEdges.size(), Zero));
 //    pointField& avg = tavg();
 //
 //    forAll(pointEdges, vertI)
@@ -997,7 +997,7 @@ Foam::tmp<Foam::pointField> Foam::snappySnapDriver::avgCellCentres
 
     tmp<pointField> tavgBoundary
     (
-        new pointField(pointFaces.size(), vector::zero)
+        new pointField(pointFaces.size(), Zero)
     );
     pointField& avgBoundary = tavgBoundary.ref();
     labelList nBoundary(pointFaces.size(), 0);
@@ -1805,7 +1805,7 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurface
     const fvMesh& mesh = meshRefiner.mesh();
 
     // Displacement per patch point
-    vectorField patchDisp(localPoints.size(), vector::zero);
+    vectorField patchDisp(localPoints.size(), Zero);
 
     if (returnReduce(localPoints.size(), sumOp<label>()) > 0)
     {
@@ -2754,7 +2754,7 @@ void Foam::snappySnapDriver::doSnap
             if (snapParams.detectNearSurfacesSnap())
             {
                 nearestPoint.setSize(pp.nPoints(), vector::max);
-                nearestNormal.setSize(pp.nPoints(), vector::zero);
+                nearestNormal.setSize(pp.nPoints(), Zero);
             }
 
             vectorField disp = calcNearestSurface
diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverFeature.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverFeature.C
index 80bc890eb2353137b9751a22239c3a67850d6d3e..45535a7f1949e1494c0be9a26196bb3a1c238353 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverFeature.C
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriverFeature.C
@@ -152,7 +152,7 @@ void Foam::snappySnapDriver::smoothAndConstrain
         // - same for feature points. They are already attracted to the
         //   nearest feature point.
 
-        vectorField dispSum(pp.nPoints(), vector::zero);
+        vectorField dispSum(pp.nPoints(), Zero);
         labelList dispCount(pp.nPoints(), 0);
 
         const labelListList& pointEdges = pp.pointEdges();
@@ -233,9 +233,9 @@ void Foam::snappySnapDriver::calcNearestFace
 
     // Displacement and orientation per pp face.
     faceDisp.setSize(pp.size());
-    faceDisp = vector::zero;
+    faceDisp = Zero;
     faceSurfaceNormal.setSize(pp.size());
-    faceSurfaceNormal = vector::zero;
+    faceSurfaceNormal = Zero;
     faceSurfaceGlobalRegion.setSize(pp.size());
     faceSurfaceGlobalRegion = -1;
 
@@ -408,7 +408,7 @@ void Foam::snappySnapDriver::calcNearestFace
     //
     //// Determine rotation axis
     //faceRotation.setSize(pp.size());
-    //faceRotation = vector::zero;
+    //faceRotation = Zero;
     //
     //forAll(faceRotation, faceI)
     //{
@@ -745,7 +745,7 @@ Foam::pointIndexHit Foam::snappySnapDriver::findMultiPatchPoint
             }
         }
     }
-    return pointIndexHit(false, vector::zero, labelMax);
+    return pointIndexHit(false, Zero, labelMax);
 }
 
 
@@ -933,7 +933,7 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
     pointConstraint& patchConstraint
 ) const
 {
-    patchAttraction = vector::zero;
+    patchAttraction = Zero;
     patchConstraint = pointConstraint();
 
     const List<point>& pfSurfNormals = pointFaceSurfNormals[pointI];
@@ -1155,7 +1155,7 @@ void Foam::snappySnapDriver::featureAttractionUsingReconstruction
 
     forAll(pp.localPoints(), pointI)
     {
-        vector attraction = vector::zero;
+        vector attraction = Zero;
         pointConstraint constraint;
 
         featureAttractionUsingReconstruction
@@ -1510,7 +1510,7 @@ void Foam::snappySnapDriver::releasePointsNextToMultiPatch
                     //Pout<< "Knocking out constraint"
                     //    << " on non-multiPatchPoint:"
                     //    << pp.localPoints()[pointI] << endl;
-                    patchAttraction[pointI] = vector::zero;
+                    patchAttraction[pointI] = Zero;
                     patchConstraints[pointI] = pointConstraint();
                     nChanged++;
 
@@ -2193,14 +2193,14 @@ Foam::snappySnapDriver::findNearFeaturePoint
                 // Current pointI nearer.
                 pointAttractor[featI][featPointI] = pointI;
                 pointConstraints[featI][featPointI].first() = 3;
-                pointConstraints[featI][featPointI].second() = vector::zero;
+                pointConstraints[featI][featPointI].second() = Zero;
 
                 // Store for later use
                 patchAttraction[pointI] = featPt-pt;
                 patchConstraints[pointI] = pointConstraints[featI][featPointI];
 
                 // Reset oldPointI to nearest on feature edge
-                patchAttraction[oldPointI] = vector::zero;
+                patchAttraction[oldPointI] = Zero;
                 patchConstraints[oldPointI] = pointConstraint();
 
                 findNearFeatureEdge
@@ -2224,7 +2224,7 @@ Foam::snappySnapDriver::findNearFeaturePoint
             // Current pointI nearer.
             pointAttractor[featI][featPointI] = pointI;
             pointConstraints[featI][featPointI].first() = 3;
-            pointConstraints[featI][featPointI].second() = vector::zero;
+            pointConstraints[featI][featPointI].second() = Zero;
 
             // Store for later use
             patchAttraction[pointI] = featPt-pt;
@@ -2346,7 +2346,7 @@ void Foam::snappySnapDriver::determineFeatures
         //    2: attract to feature line, constraint is feature line direction
         //    3: attract to feature point, constraint is zero)
 
-        vector attraction = vector::zero;
+        vector attraction = Zero;
         pointConstraint constraint;
 
         featureAttractionUsingReconstruction
@@ -3029,8 +3029,7 @@ void Foam::snappySnapDriver::determineBaffleFeatures
                 {
                     pointAttractor[featI][featPointI] = pointI;
                     pointConstraints[featI][featPointI].first() = 3;
-                    pointConstraints[featI][featPointI].second() =
-                        vector::zero;
+                    pointConstraints[featI][featPointI].second() = Zero;
 
                     // Store for later use
                     patchAttraction[pointI] = featPt-pt;
@@ -3245,7 +3244,7 @@ void Foam::snappySnapDriver::reverseAttractMeshPoints
 
     // Per mesh point the point on nearest feature edge.
     patchAttraction.setSize(pp.nPoints());
-    patchAttraction = vector::zero;
+    patchAttraction = Zero;
     patchConstraints.setSize(pp.nPoints());
     patchConstraints = pointConstraint();
 
@@ -3440,7 +3439,7 @@ void Foam::snappySnapDriver::featureAttractionUsingFeatureEdges
     }
 
     // Reverse: from pp point to nearest feature
-    vectorField rawPatchAttraction(pp.nPoints(), vector::zero);
+    vectorField rawPatchAttraction(pp.nPoints(), Zero);
     List<pointConstraint> rawPatchConstraints(pp.nPoints());
 
     determineFeatures
@@ -3875,11 +3874,11 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurfaceFeature
         // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
         // vector from point on surface back to face centre
-        vectorField faceDisp(pp.size(), vector::zero);
+        vectorField faceDisp(pp.size(), Zero);
         // normal of surface at point on surface
-        vectorField faceSurfaceNormal(pp.size(), vector::zero);
+        vectorField faceSurfaceNormal(pp.size(), Zero);
         labelList faceSurfaceGlobalRegion(pp.size(), -1);
-        //vectorField faceRotation(pp.size(), vector::zero);
+        //vectorField faceRotation(pp.size(), Zero);
 
         calcNearestFace
         (
@@ -3927,7 +3926,7 @@ Foam::vectorField Foam::snappySnapDriver::calcNearestSurfaceFeature
 
     // Nearest feature
     patchAttraction.setSize(localPoints.size());
-    patchAttraction = vector::zero;
+    patchAttraction = Zero;
     // Constraints at feature
     patchConstraints.setSize(localPoints.size());
     patchConstraints = pointConstraint();
diff --git a/src/meshTools/AMIInterpolation/patches/cyclicAMI/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C b/src/meshTools/AMIInterpolation/patches/cyclicAMI/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C
index c9db04a27675e2ee0b00fbb333dc7a18c9fc7f16..71773ffc531946af6edb314eaab1d9f4a8ed577c 100644
--- a/src/meshTools/AMIInterpolation/patches/cyclicAMI/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C
+++ b/src/meshTools/AMIInterpolation/patches/cyclicAMI/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C
@@ -490,7 +490,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
     nbrPatchName_(word::null),
     nbrPatchID_(-1),
     rotationAxis_(Zero),
-    rotationCentre_(point::zero),
+    rotationCentre_(Zero),
     rotationAngleDefined_(false),
     rotationAngle_(0.0),
     separationVector_(Zero),
@@ -521,7 +521,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
     coupleGroup_(dict),
     nbrPatchID_(-1),
     rotationAxis_(Zero),
-    rotationCentre_(point::zero),
+    rotationCentre_(Zero),
     rotationAngleDefined_(false),
     rotationAngle_(0.0),
     separationVector_(Zero),
diff --git a/src/meshTools/AMIInterpolation/patches/cyclicPeriodicAMI/cyclicPeriodicAMIPolyPatch/cyclicPeriodicAMIPolyPatch.C b/src/meshTools/AMIInterpolation/patches/cyclicPeriodicAMI/cyclicPeriodicAMIPolyPatch/cyclicPeriodicAMIPolyPatch.C
index 15a23a608c10182d6d99d2086ba58db2e2f5a476..fcbf9dd6ab0cd3ec299da377ed0bb9c0d1e4c972 100644
--- a/src/meshTools/AMIInterpolation/patches/cyclicPeriodicAMI/cyclicPeriodicAMIPolyPatch/cyclicPeriodicAMIPolyPatch.C
+++ b/src/meshTools/AMIInterpolation/patches/cyclicPeriodicAMI/cyclicPeriodicAMIPolyPatch/cyclicPeriodicAMIPolyPatch.C
@@ -284,7 +284,8 @@ void Foam::cyclicPeriodicAMIPolyPatch::resetAMI
             ownStr.reset(new OBJstream(dir/name() + postfix));
             neiStr.reset(new OBJstream(dir/neighbPatch().name() + postfix));
 
-            Info<< "cyclicPeriodicAMIPolyPatch::resetAMI : patch:" << name()
+            InfoInFunction
+                << "patch:" << name()
                 << " writing accumulated AMI to " << ownStr().name()
                 << " and " << neiStr().name() << endl;
         }
@@ -368,7 +369,8 @@ void Foam::cyclicPeriodicAMIPolyPatch::resetAMI
 
         if (debug)
         {
-            Info<< "cyclicPeriodicAMIPolyPatch::resetAMI : patch:" << name()
+            InfoInFunction
+                << "patch:" << name()
                 << " srcSum:" << srcSum
                 << " tgtSum:" << tgtSum
                 << " direction:" << direction
@@ -391,8 +393,8 @@ void Foam::cyclicPeriodicAMIPolyPatch::resetAMI
 
                 if (debug)
                 {
-                    Info<< "cyclicPeriodicAMIPolyPatch::resetAMI : patch:"
-                        << name()
+                    InfoInFunction
+                        << "patch:" << name()
                         << " moving this side from:"
                         << gAverage(thisPatch.points())
                         << " to:" << gAverage(thisPoints) << endl;
@@ -402,8 +404,8 @@ void Foam::cyclicPeriodicAMIPolyPatch::resetAMI
 
                 if (debug)
                 {
-                    Info<< "cyclicPeriodicAMIPolyPatch::resetAMI : patch:"
-                        << name()
+                    InfoInFunction
+                        << "patch:" << name()
                         << " appending weights with untransformed slave side"
                         << endl;
                 }
@@ -421,8 +423,8 @@ void Foam::cyclicPeriodicAMIPolyPatch::resetAMI
 
                 if (debug)
                 {
-                    Info<< "cyclicPeriodicAMIPolyPatch::resetAMI : patch:"
-                        << name()
+                    InfoInFunction
+                        << "patch:" << name()
                         << " moving neighbour side from:"
                         << gAverage(nbrPatch.points())
                         << " to:" << gAverage(nbrPoints) << endl;
@@ -453,11 +455,12 @@ void Foam::cyclicPeriodicAMIPolyPatch::resetAMI
 
             nTransforms_ += direction ? +1 : -1;
 
-            ++ iter;
+            ++iter;
 
             if (debug)
             {
-                Info<< "cyclicPeriodicAMIPolyPatch::resetAMI : patch:" << name()
+                InfoInFunction
+                    << "patch:" << name()
                     << " iteration:" << iter
                     << " srcSum:" << srcSum
                     << " tgtSum:" << tgtSum
diff --git a/src/meshTools/coordinateSystems/coordinateRotation/cylindrical.C b/src/meshTools/coordinateSystems/coordinateRotation/cylindrical.C
index b5e03a3896a411b29fb2c2cf1d4a3da6a31ed501..4bccbfed5f496b3141cdcb5f829c7def3a4fdf67 100644
--- a/src/meshTools/coordinateSystems/coordinateRotation/cylindrical.C
+++ b/src/meshTools/coordinateSystems/coordinateRotation/cylindrical.C
@@ -99,7 +99,7 @@ Foam::cylindrical::cylindrical
 )
 :
     Rptr_(),
-    origin_(point::zero),
+    origin_(Zero),
     e3_(Zero)
 {
     // If origin is specified in the coordinateSystem
diff --git a/src/meshTools/coordinateSystems/coordinateSystem.C b/src/meshTools/coordinateSystems/coordinateSystem.C
index 3abb25524bce57f3b66ff0372da8b29332c5ee52..e3150ff8f589195cdfab5b284db243ecfdc8215b 100644
--- a/src/meshTools/coordinateSystems/coordinateSystem.C
+++ b/src/meshTools/coordinateSystems/coordinateSystem.C
@@ -43,7 +43,7 @@ Foam::coordinateSystem::coordinateSystem()
 :
     name_(),
     note_(),
-    origin_(point::zero),
+    origin_(Zero),
     R_(new axesRotation(sphericalTensor::I))
 {}
 
@@ -98,7 +98,7 @@ Foam::coordinateSystem::coordinateSystem
 :
     name_(name),
     note_(),
-    origin_(point::zero),
+    origin_(Zero),
     R_()
 {
     init(dict);
@@ -109,7 +109,7 @@ Foam::coordinateSystem::coordinateSystem(const dictionary& dict)
 :
     name_(),
     note_(),
-    origin_(point::zero),
+    origin_(Zero),
     R_()
 {
     init(dict);
@@ -124,7 +124,7 @@ Foam::coordinateSystem::coordinateSystem
 :
     name_(),
     note_(),
-    origin_(point::zero),
+    origin_(Zero),
     R_()
 {
     const entry* entryPtr = dict.lookupEntryPtr(typeName_(), false, false);
@@ -168,7 +168,7 @@ Foam::coordinateSystem::coordinateSystem(Istream& is)
 :
     name_(is),
     note_(),
-    origin_(point::zero),
+    origin_(Zero),
     R_()
 {
     dictionary dict(is);
diff --git a/src/meshTools/searchableSurface/searchableCone.C b/src/meshTools/searchableSurface/searchableCone.C
index 9cbf6651d3f9191c7fb84e1820a43baaf7c1677e..02d0b1b16ccc910636cede3059f7fffccd16bc65 100644
--- a/src/meshTools/searchableSurface/searchableCone.C
+++ b/src/meshTools/searchableSurface/searchableCone.C
@@ -100,7 +100,7 @@ void Foam::searchableCone::findNearestAndNormal
     scalar magV = mag(v);
     if (magV < ROOTVSMALL)
     {
-       v = vector::zero;
+       v = Zero;
     }
     else
     {
@@ -1045,7 +1045,7 @@ void Foam::searchableCone::getNormal
 ) const
 {
     normal.setSize(info.size());
-    normal = vector::zero;
+    normal = Zero;
 
     forAll(info, i)
     {
diff --git a/src/meshTools/searchableSurface/searchableRotatedBox.C b/src/meshTools/searchableSurface/searchableRotatedBox.C
index dd4dd06227e78a56a348893497b1a51343f4d661..ffb8dc9c5dcda4a1b0a6bb3e7008463dfaff9e4e 100644
--- a/src/meshTools/searchableSurface/searchableRotatedBox.C
+++ b/src/meshTools/searchableSurface/searchableRotatedBox.C
@@ -57,7 +57,7 @@ Foam::searchableRotatedBox::searchableRotatedBox
             io.writeOpt(),
             false      //io.registerObject(),
         ),
-        treeBoundBox(point::zero, dict.lookup("span"))
+        treeBoundBox(Zero, dict.lookup("span"))
     ),
     transform_
     (
diff --git a/src/meshTools/tetOverlapVolume/tetOverlapVolume.H b/src/meshTools/tetOverlapVolume/tetOverlapVolume.H
index 879268a0095b783abdc33e1bc71247e9406647e4..b027599218c411be3993218e2ef8661d833289c0 100644
--- a/src/meshTools/tetOverlapVolume/tetOverlapVolume.H
+++ b/src/meshTools/tetOverlapVolume/tetOverlapVolume.H
@@ -70,7 +70,7 @@ class tetOverlapVolume
 
             inline sumMomentOp()
             :
-                vol_(0.0, vector::zero)
+                vol_(0.0, Zero)
             {}
 
             inline void operator()(const tetPoints& tet)
diff --git a/src/parallel/decompose/metisDecomp/metisDecomp.C b/src/parallel/decompose/metisDecomp/metisDecomp.C
index d87619bd1d76383be70180600a941e7fe35c09fb..11b75a0ea068c6aa31fd23eafdcca664d74e0efe 100644
--- a/src/parallel/decompose/metisDecomp/metisDecomp.C
+++ b/src/parallel/decompose/metisDecomp/metisDecomp.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.
@@ -67,7 +67,7 @@ Foam::label Foam::metisDecomp::decompose
 
     // processor weights initialised with no size, only used if specified in
     // a file
-    Field<scalar> processorWeights;
+    Field<floatScalar> processorWeights;
 
     // cell weights (so on the vertices of the dual)
     List<label> cellWeights;
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItemIO.C b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItemIO.C
index 7dfee8646d00b0a0f9517d9f59e1fc8b41152ede..dfe678daf58d57d692d2fe1a29d257bae40df74a 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItemIO.C
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItemIO.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.
@@ -107,7 +107,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const fieldAverageItem& faItem)
 
     os  << faItem.fieldName_ << nl << token::BEGIN_BLOCK << nl;
     os.writeKeyword("mean") << faItem.mean_ << token::END_STATEMENT << nl;
-    os.writeKeyword("prime2Mean") << faItem.mean_
+    os.writeKeyword("prime2Mean") << faItem.prime2Mean_
         << token::END_STATEMENT << nl;
     os.writeKeyword("base") << faItem.baseTypeNames_[faItem.base_]
         << token::END_STATEMENT << nl;
diff --git a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
index 93b9dff88eeed45a0ca4af259f41be2122c76e4a..5ec48460259f12faa5f0e9715876ff23c6ef815c 100644
--- a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
+++ b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
@@ -273,7 +273,7 @@ void Foam::forceCoeffs::read(const dictionary& dict)
                     IOobject::NO_WRITE
                 ),
                 mesh,
-                dimensionedVector("0", dimless, vector::zero)
+                dimensionedVector("0", dimless, Zero)
             )
         );
 
@@ -292,7 +292,7 @@ void Foam::forceCoeffs::read(const dictionary& dict)
                     IOobject::NO_WRITE
                 ),
                 mesh,
-                dimensionedVector("0", dimless, vector::zero)
+                dimensionedVector("0", dimless, Zero)
             )
         );
 
diff --git a/src/postProcessing/functionObjects/forces/forces/forces.C b/src/postProcessing/functionObjects/forces/forces/forces.C
index 5a3e1ca79680d37586197f0966cd8505440ff030..433cdbfcb956fd48a9d8e84294e53108a383d4b3 100644
--- a/src/postProcessing/functionObjects/forces/forces/forces.C
+++ b/src/postProcessing/functionObjects/forces/forces/forces.C
@@ -304,7 +304,7 @@ void Foam::forces::resetFields()
                 obr_.lookupObject<volVectorField>(fieldName("force"))
             );
 
-        force == dimensionedVector("0", force.dimensions(), vector::zero);
+        force == dimensionedVector("0", force.dimensions(), Zero);
 
         volVectorField& moment =
             const_cast<volVectorField&>
@@ -312,7 +312,7 @@ void Foam::forces::resetFields()
                 obr_.lookupObject<volVectorField>(fieldName("moment"))
             );
 
-        moment == dimensionedVector("0", moment.dimensions(), vector::zero);
+        moment == dimensionedVector("0", moment.dimensions(), Zero);
     }
 }
 
@@ -968,7 +968,7 @@ void Foam::forces::read(const dictionary& dict)
                     IOobject::NO_WRITE
                 ),
                 mesh,
-                dimensionedVector("0", dimForce, vector::zero)
+                dimensionedVector("0", dimForce, Zero)
             )
         );
 
@@ -987,7 +987,7 @@ void Foam::forces::read(const dictionary& dict)
                     IOobject::NO_WRITE
                 ),
                 mesh,
-                dimensionedVector("0", dimForce*dimLength, vector::zero)
+                dimensionedVector("0", dimForce*dimLength, Zero)
             )
         );
 
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/CMakeLists-Common.txt b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/CMakeLists-Common.txt
index d309a24fd56bb75d769e18f14b4d6e02410594fb..bb98b9c158e793c38dc4c7257847a800275bc44b 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/CMakeLists-Common.txt
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/CMakeLists-Common.txt
@@ -32,13 +32,13 @@ add_definitions(
 set(CMAKE_BUILD_TYPE Release)
 
 set(CMAKE_CXX_FLAGS_DEBUG
-    "-g -O0 -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wno-overloaded-virtual"
+    "-g -O0 -std=c++0x -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wno-overloaded-virtual"
 )
-set(CMAKE_C_FLAGS_DEBUG "-g -O0")
+set(CMAKE_C_FLAGS_DEBUG "-g -O0 -std=c++0x")
 
 set(CMAKE_CXX_FLAGS_RELEASE
-    "-O3 -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wno-overloaded-virtual")
-set(CMAKE_C_FLAGS_RELEASE "-O3")
+    "-O3 -std=c++0x -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wno-overloaded-virtual")
+set(CMAKE_C_FLAGS_RELEASE "-O3 -std=c++0x")
 
 # Set output library destination to plugin directory
 set(LIBRARY_OUTPUT_PATH $ENV{FOAM_LIBBIN}
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/fieldVisualisationBase.C b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/fieldVisualisationBase.C
index ed48eb60c0167bd9df5d5d3a72d6ed590cbce6c9..d70f3d77e1b2c02201f9fe859e2d9f60ea1273a5 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/fieldVisualisationBase.C
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/fieldVisualisationBase.C
@@ -437,7 +437,7 @@ Foam::fieldVisualisationBase::fieldVisualisationBase
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours
+    const HashPtrTable<Function1<vector>, word>& colours
 )
 :
     parent_(parent),
@@ -489,7 +489,7 @@ Foam::fieldVisualisationBase::~fieldVisualisationBase()
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
-const Foam::HashPtrTable<Foam::DataEntry<Foam::vector>, Foam::word>&
+const Foam::HashPtrTable<Foam::Function1<Foam::vector>, Foam::word>&
 Foam::fieldVisualisationBase::colours() const
 {
     return colours_;
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/fieldVisualisationBase.H b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/fieldVisualisationBase.H
index e365ddf59792c0fd4fb66ea5ac29715dcc1f5145..65fe8a36b0033d3be495b5028c6c57926fbf6c5a 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/fieldVisualisationBase.H
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/fieldVisualisationBase.H
@@ -39,7 +39,7 @@ SourceFiles
 #include "NamedEnum.H"
 #include "vector.H"
 #include "HashPtrTable.H"
-#include "DataEntry.H"
+#include "Function1.H"
 
 #include "vtkSmartPointer.h"
 
@@ -121,7 +121,7 @@ protected:
         };
 
         //- Colours
-        const HashPtrTable<DataEntry<vector>, word>& colours_;
+        const HashPtrTable<Function1<vector>, word>& colours_;
 
         //- Field name
         word fieldName_;
@@ -183,7 +183,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours
+            const HashPtrTable<Function1<vector>, word>& colours
         );
 
 
@@ -196,7 +196,7 @@ public:
         // Access
 
             //- Return the colours
-            const HashPtrTable<DataEntry<vector>, word>& colours() const;
+            const HashPtrTable<Function1<vector>, word>& colours() const;
 
             //- Return the field name
             const word& fieldName() const;
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectCloud.C b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectCloud.C
index 8c1f4e8535d664339ee35540e3e15774b2be3c9c..6150bd15ea4357e68a6d1e52e8ca8b843ba49950 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectCloud.C
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectCloud.C
@@ -51,7 +51,7 @@ Foam::functionObjectCloud::functionObjectCloud
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours
+    const HashPtrTable<Function1<vector>, word>& colours
 )
 :
     pointData(parent, dict, colours),
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectCloud.H b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectCloud.H
index 553bf96f3af287d5406118343b245cf14530a685..afc1c5262ff1b76e18bfd2d32f0cf8eb1ae13169 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectCloud.H
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectCloud.H
@@ -92,7 +92,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours
+            const HashPtrTable<Function1<vector>, word>& colours
         );
 
 
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectLine.C b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectLine.C
index d95099759865692cbbebab49fe1a67300863ceaa..1455eb619100a99d5420a748c59b5dbbee5cb11c 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectLine.C
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectLine.C
@@ -51,7 +51,7 @@ Foam::functionObjectLine::functionObjectLine
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours
+    const HashPtrTable<Function1<vector>, word>& colours
 )
 :
     pathline(parent, dict, colours),
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectLine.H b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectLine.H
index 9224d7246ade59a9ca07a9f78a156de2eca0dfa7..3749d24597642c9417aea87cb6abaa8407888752 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectLine.H
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectLine.H
@@ -86,7 +86,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours
+            const HashPtrTable<Function1<vector>, word>& colours
         );
 
 
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectSurface.C b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectSurface.C
index e7c6c691760427e1df81e04ac472bd2e086e564c..d9d59c2bb68a6f0ff22d490f97fef00a71f202e6 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectSurface.C
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectSurface.C
@@ -51,7 +51,7 @@ Foam::functionObjectSurface::functionObjectSurface
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours
+    const HashPtrTable<Function1<vector>, word>& colours
 )
 :
     geometrySurface(parent, dict, colours, List<fileName>()),
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectSurface.H b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectSurface.H
index 32f4a7572c63c666b60c782a4ae32cfe520f9439..b881611b6a375ad619c1d1850662c2149fadff64 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectSurface.H
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/functionObjectSurface.H
@@ -85,7 +85,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours
+            const HashPtrTable<Function1<vector>, word>& colours
         );
 
 
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometryBase.C b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometryBase.C
index a40bd6b9fe365d825b110ffece4f67379bac13a6..0d78faf14b287b5e3db919931fcb83a959f21876 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometryBase.C
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometryBase.C
@@ -81,7 +81,7 @@ Foam::geometryBase::geometryBase
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours
+    const HashPtrTable<Function1<vector>, word>& colours
 )
 :
     parent_(parent),
@@ -98,11 +98,11 @@ Foam::geometryBase::geometryBase
 
     if (dict.found("opacity"))
     {
-        opacity_.reset(DataEntry<scalar>::New("opacity", dict).ptr());
+        opacity_.reset(Function1<scalar>::New("opacity", dict).ptr());
     }
     else
     {
-        opacity_.reset(new Constant<scalar>("opacity", 1.0));
+        opacity_.reset(new Function1Types::Constant<scalar>("opacity", 1.0));
     }
 }
 
@@ -139,7 +139,7 @@ Foam::scalar Foam::geometryBase::opacity(const scalar position) const
 }
 
 
-const Foam::HashPtrTable<Foam::DataEntry<Foam::vector>, Foam::word>&
+const Foam::HashPtrTable<Foam::Function1<Foam::vector>, Foam::word>&
 Foam::geometryBase::colours() const
 {
     return colours_;
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometryBase.H b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometryBase.H
index cc19d943ef35fb0b48e02c212bd37f5763a9d717..49997d79ad200470debada914a04ea3fadebf69e 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometryBase.H
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometryBase.H
@@ -36,7 +36,7 @@ SourceFiles
 
 #include "dictionary.H"
 #include "vector.H"
-#include "DataEntry.H"
+#include "Function1.H"
 #include "HashPtrTable.H"
 #include "NamedEnum.H"
 
@@ -99,10 +99,10 @@ protected:
         renderModeType renderMode_;
 
         //- Opacity
-        autoPtr<DataEntry<scalar>> opacity_;
+        autoPtr<Function1<scalar>> opacity_;
 
         //- Reference to the colours
-        const HashPtrTable<DataEntry<vector>, word>& colours_;
+        const HashPtrTable<Function1<vector>, word>& colours_;
 
 
     // Protected functions
@@ -120,7 +120,7 @@ public:
         (
             const runTimePostProcessing& parent_,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours
+            const HashPtrTable<Function1<vector>, word>& colours
         );
 
 
@@ -145,7 +145,7 @@ public:
             scalar opacity(const scalar position) const;
 
             //- Return reference to the colours
-            const HashPtrTable<DataEntry<vector>, word>& colours() const;
+            const HashPtrTable<Function1<vector>, word>& colours() const;
 
 
         //- Add geometry to scene
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometrySurface.C b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometrySurface.C
index 535cdddc99cbbae862a8c0ccc4081396de3de093..9046189f593e149f2432eec6266b248cc2c1c7dd 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometrySurface.C
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometrySurface.C
@@ -136,7 +136,7 @@ Foam::geometrySurface::geometrySurface
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours
+    const HashPtrTable<Function1<vector>, word>& colours
 )
 :
     surface(parent, dict, colours),
@@ -148,7 +148,7 @@ Foam::geometrySurface::geometrySurface
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours,
+    const HashPtrTable<Function1<vector>, word>& colours,
     const List<fileName>& fileNames
 )
 :
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometrySurface.H b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometrySurface.H
index 5eec3ee8d67d79183053dee1b8e4b22f070edee1..3b35bc171b687a9c5e307c9926f8e91d7b6f0f89 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometrySurface.H
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/geometrySurface.H
@@ -94,7 +94,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours
+            const HashPtrTable<Function1<vector>, word>& colours
         );
 
         //- Construct from components
@@ -102,7 +102,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours,
+            const HashPtrTable<Function1<vector>, word>& colours,
             const List<fileName>& fileNames
         );
 
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pathline.C b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pathline.C
index 744c092cf8fc75356a2584493ddd63c2a6b0fec1..0b5a2da8be881c32d8368122beecf07657a70b70 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pathline.C
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pathline.C
@@ -118,7 +118,7 @@ Foam::pathline::pathline
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours
+    const HashPtrTable<Function1<vector>, word>& colours
 )
 :
     geometryBase(parent, dict, colours),
@@ -131,7 +131,7 @@ Foam::pathline::pathline
 {
     if (dict.found("lineColour"))
     {
-        lineColour_.reset(DataEntry<vector>::New("lineColour", dict).ptr());
+        lineColour_.reset(Function1<vector>::New("lineColour", dict).ptr());
     }
     else
     {
@@ -168,7 +168,7 @@ Foam::autoPtr<Foam::pathline> Foam::pathline::New
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours,
+    const HashPtrTable<Function1<vector>, word>& colours,
     const word& pathlineType
 )
 {
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pathline.H b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pathline.H
index 41d80dd757fc86cfe67567c53137776568d1b2c9..0686548269507ea4889b211055719803f92ccf24 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pathline.H
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pathline.H
@@ -92,7 +92,7 @@ protected:
         scalar tubeRadius_;
 
         //- Line colour
-        autoPtr<DataEntry<vector>> lineColour_;
+        autoPtr<Function1<vector>> lineColour_;
 
 
     // Protected Member Functions
@@ -122,7 +122,7 @@ public:
             (
                 const runTimePostProcessing& parent,
                 const dictionary& dict,
-                const HashPtrTable<DataEntry<vector>, word>& colours
+                const HashPtrTable<Function1<vector>, word>& colours
             ),
             (parent, dict, colours)
         );
@@ -135,7 +135,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours
+            const HashPtrTable<Function1<vector>, word>& colours
         );
 
 
@@ -146,7 +146,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours,
+            const HashPtrTable<Function1<vector>, word>& colours,
             const word& pathlineName
         );
 
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pointData.C b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pointData.C
index cae1853e657f807d481462db93582a956b421775..19838d4adc9b83baa4f315b628ab7869e29d5b0f 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pointData.C
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pointData.C
@@ -87,7 +87,7 @@ Foam::pointData::pointData
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours
+    const HashPtrTable<Function1<vector>, word>& colours
 )
 :
     geometryBase(parent, dict, colours),
@@ -100,7 +100,7 @@ Foam::pointData::pointData
 {
     if (dict.found("pointColour"))
     {
-        pointColour_.reset(DataEntry<vector>::New("pointColour", dict).ptr());
+        pointColour_.reset(Function1<vector>::New("pointColour", dict).ptr());
     }
     else
     {
@@ -128,7 +128,7 @@ Foam::autoPtr<Foam::pointData> Foam::pointData::New
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours,
+    const HashPtrTable<Function1<vector>, word>& colours,
     const word& pointDataType
 )
 {
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pointData.H b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pointData.H
index 1ec9f06b7ca9c6fb15a501fa082ee261c7714c41..f6521b6407160fa35c898319bd7a76d668cfc071 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pointData.H
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/pointData.H
@@ -90,7 +90,7 @@ protected:
         scalar maxGlyphLength_;
 
         //- Point colour
-        autoPtr<DataEntry<vector>> pointColour_;
+        autoPtr<Function1<vector>> pointColour_;
 
 
     // Protected Member Functions
@@ -121,7 +121,7 @@ public:
             (
                 const runTimePostProcessing& parent,
                 const dictionary& dict,
-                const HashPtrTable<DataEntry<vector>, word>& colours
+                const HashPtrTable<Function1<vector>, word>& colours
             ),
             (parent, dict, colours)
         );
@@ -134,7 +134,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours
+            const HashPtrTable<Function1<vector>, word>& colours
         );
 
 
@@ -145,7 +145,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours,
+            const HashPtrTable<Function1<vector>, word>& colours,
             const word& pointDataName
         );
 
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/scene.C b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/scene.C
index c96e36566c8a6aa0d63e77738d6e871743d0cd4e..3e8b29e85d04d51b8fed6f3eba3ae3169c974054 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/scene.C
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/scene.C
@@ -103,27 +103,30 @@ void Foam::scene::readCamera(const dictionary& dict)
         {
             clipBox_ = boundBox(coeffs.lookup("clipBox"));
             const vector lookDir(vector(coeffs.lookup("lookDir")));
-            cameraPosition_.reset(new Constant<point>("position", -lookDir));
+            cameraPosition_.reset
+            (
+                new Function1Types::Constant<point>("position", -lookDir)
+            );
             const vector focalPoint(coeffs.lookup("focalPoint"));
             cameraFocalPoint_.reset
             (
-                new Constant<point>("focalPoint", focalPoint)
+                new Function1Types::Constant<point>("focalPoint", focalPoint)
             );
             const vector up(coeffs.lookup("up"));
-            cameraUp_.reset(new Constant<point>("up", up));
+            cameraUp_.reset(new Function1Types::Constant<point>("up", up));
             break;
         }
         case mtFlightPath:
         {
             cameraPosition_.reset
             (
-                DataEntry<vector>::New("position", coeffs).ptr()
+                Function1<vector>::New("position", coeffs).ptr()
             );
             cameraFocalPoint_.reset
             (
-                DataEntry<point>::New("focalPoint", coeffs).ptr()
+                Function1<point>::New("focalPoint", coeffs).ptr()
             );
-            cameraUp_.reset(DataEntry<vector>::New("up", coeffs).ptr());
+            cameraUp_.reset(Function1<vector>::New("up", coeffs).ptr());
             break;
         }
         default:
@@ -136,20 +139,23 @@ void Foam::scene::readCamera(const dictionary& dict)
 
     if (dict.found("zoom"))
     {
-        cameraZoom_.reset(DataEntry<scalar>::New("zoom", dict).ptr());
+        cameraZoom_.reset(Function1<scalar>::New("zoom", dict).ptr());
     }
     else
     {
-        cameraZoom_.reset(new Constant<scalar>("zoom", 1.0));
+        cameraZoom_.reset(new Function1Types::Constant<scalar>("zoom", 1.0));
     }
 
     if (dict.found("viewAngle"))
     {
-        cameraViewAngle_.reset(DataEntry<scalar>::New("viewAngle", dict).ptr());
+        cameraViewAngle_.reset(Function1<scalar>::New("viewAngle", dict).ptr());
     }
     else
     {
-        cameraViewAngle_.reset(new Constant<scalar>("viewAngle", 35.0));
+        cameraViewAngle_.reset
+        (
+            new Function1Types::Constant<scalar>("viewAngle", 35.0)
+        );
     }
 }
 
@@ -160,7 +166,7 @@ void Foam::scene::readColours(const dictionary& dict)
     forAll(colours, i)
     {
         const word& c = colours[i];
-        colours_.insert(c, DataEntry<vector>::New(c, dict).ptr());
+        colours_.insert(c, Function1<vector>::New(c, dict).ptr());
     }
 }
 
@@ -305,7 +311,7 @@ Foam::scene::~scene()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-const Foam::HashPtrTable<Foam::DataEntry<Foam::vector>, Foam::word>&
+const Foam::HashPtrTable<Foam::Function1<Foam::vector>, Foam::word>&
 Foam::scene::colours() const
 {
     return colours_;
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/scene.H b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/scene.H
index 2372df4ece6ece636d7b197e589d8d322b9a9320..470780c33e0e0b380ced3129729872b2d0cbc2c4 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/scene.H
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/scene.H
@@ -36,7 +36,7 @@ SourceFiles
 
 // OpenFOAM includes
 #include "dictionary.H"
-#include "DataEntry.H"
+#include "Function1.H"
 #include "vector.H"
 #include "point.H"
 #include "boundBox.H"
@@ -99,7 +99,7 @@ protected:
     // Protected data
 
         //- Colours
-        HashPtrTable<DataEntry<vector>, word> colours_;
+        HashPtrTable<Function1<vector>, word> colours_;
 
 
         // Camera settings
@@ -108,19 +108,19 @@ protected:
             modeType mode_;
 
             //- Position
-            autoPtr<DataEntry<point>> cameraPosition_;
+            autoPtr<Function1<point>> cameraPosition_;
 
             //- Focal point
-            autoPtr<DataEntry<point>> cameraFocalPoint_;
+            autoPtr<Function1<point>> cameraFocalPoint_;
 
             //- Up direction
-            autoPtr<DataEntry<vector>> cameraUp_;
+            autoPtr<Function1<vector>> cameraUp_;
 
             //- Zoom level
-            autoPtr<DataEntry<scalar>> cameraZoom_;
+            autoPtr<Function1<scalar>> cameraZoom_;
 
             //- View angle
-            autoPtr<DataEntry<scalar>> cameraViewAngle_;
+            autoPtr<Function1<scalar>> cameraViewAngle_;
 
 
         // Scene management
@@ -171,7 +171,7 @@ public:
         // Access
 
             //- Return the colours
-            const HashPtrTable<DataEntry<vector>, word>& colours() const;
+            const HashPtrTable<Function1<vector>, word>& colours() const;
 
             //- Return the current frame index
             label frameIndex() const;
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/surface.C b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/surface.C
index 1cb877d9cb7242829b8d0bda37dc615f7cb52e75..45618af1a07b5326bfcec7153a2c4fc1585f4168 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/surface.C
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/surface.C
@@ -135,7 +135,7 @@ Foam::surface::surface
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours
+    const HashPtrTable<Function1<vector>, word>& colours
 )
 :
     geometryBase(parent, dict, colours),
@@ -157,7 +157,7 @@ Foam::surface::surface
     {
         surfaceColour_.reset
         (
-            DataEntry<vector>::New("surfaceColour", dict).ptr()
+            Function1<vector>::New("surfaceColour", dict).ptr()
         );
     }
     else
@@ -167,7 +167,7 @@ Foam::surface::surface
 
     if (dict.found("edgeColour"))
     {
-        edgeColour_.reset(DataEntry<vector>::New("edgeColour", dict).ptr());
+        edgeColour_.reset(Function1<vector>::New("edgeColour", dict).ptr());
     }
     else
     {
@@ -191,7 +191,7 @@ Foam::autoPtr<Foam::surface> Foam::surface::New
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours,
+    const HashPtrTable<Function1<vector>, word>& colours,
     const word& surfaceType
 )
 {
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/surface.H b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/surface.H
index 88b57d59d65df84b5a1b00ed6573c21dbbba705d..cd6f7fbbd2c71e0efb0fc639e3bae560524b7b29 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/surface.H
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/surface.H
@@ -95,10 +95,10 @@ protected:
         bool featureEdges_;
 
         //- Surface colour
-        autoPtr<DataEntry<vector>> surfaceColour_;
+        autoPtr<Function1<vector>> surfaceColour_;
 
         //- Edge colour
-        autoPtr<DataEntry<vector>> edgeColour_;
+        autoPtr<Function1<vector>> edgeColour_;
 
         //- Surface actor
         vtkSmartPointer<vtkActor> surfaceActor_;
@@ -139,7 +139,7 @@ public:
             (
                 const runTimePostProcessing& parent,
                 const dictionary& dict,
-                const HashPtrTable<DataEntry<vector>, word>& colours
+                const HashPtrTable<Function1<vector>, word>& colours
             ),
             (parent, dict, colours)
         );
@@ -152,7 +152,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours
+            const HashPtrTable<Function1<vector>, word>& colours
         );
 
 
@@ -163,7 +163,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours,
+            const HashPtrTable<Function1<vector>, word>& colours,
             const word& surfaceName
         );
 
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/text.C b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/text.C
index b4c1ff3f86c9d099704922e1c57fd6e41f3a89ed..879f2c7d069b0ed289f5cced73c92be7882e6b69 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/text.C
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/text.C
@@ -39,7 +39,7 @@ Foam::text::text
 (
     const runTimePostProcessing& parent,
     const dictionary& dict,
-    const HashPtrTable<DataEntry<vector>, word>& colours
+    const HashPtrTable<Function1<vector>, word>& colours
 )
 :
     geometryBase(parent, dict, colours),
@@ -51,7 +51,7 @@ Foam::text::text
 {
     if (dict.found("colour"))
     {
-        colour_.reset(DataEntry<vector>::New("colour", dict).ptr());
+        colour_.reset(Function1<vector>::New("colour", dict).ptr());
     }
     else
     {
diff --git a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/text.H b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/text.H
index e4928d54e7993d964cba0c7a12911b12031fe92c..891519ad3ea0364b4365b5cc3984dd86d0963ac5 100644
--- a/src/postProcessing/functionObjects/graphics/runTimePostProcessing/text.H
+++ b/src/postProcessing/functionObjects/graphics/runTimePostProcessing/text.H
@@ -77,7 +77,7 @@ protected:
         scalar size_;
 
         //- Colour
-        autoPtr<DataEntry<vector>> colour_;
+        autoPtr<Function1<vector>> colour_;
 
         //- Bold flag
         bool bold_;
@@ -92,7 +92,7 @@ public:
         (
             const runTimePostProcessing& parent,
             const dictionary& dict,
-            const HashPtrTable<DataEntry<vector>, word>& colours
+            const HashPtrTable<Function1<vector>, word>& colours
         );
 
 
diff --git a/src/postProcessing/functionObjects/utilities/Make/files b/src/postProcessing/functionObjects/utilities/Make/files
index 1cee77173dd0006c9d2c6ffb45e1dce376c256c0..e9b8fed1508246f1eedb619433ee712afe639551 100644
--- a/src/postProcessing/functionObjects/utilities/Make/files
+++ b/src/postProcessing/functionObjects/utilities/Make/files
@@ -50,4 +50,6 @@ yPlus/yPlusFunctionObject.C
 
 setTimeStep/setTimeStepFunctionObject.C
 
+reactionSensitivityAnalysis/reactionsSensitivityAnalysisFunctionObject.C
+
 LIB = $(FOAM_LIBBIN)/libutilityFunctionObjects
diff --git a/src/postProcessing/functionObjects/utilities/Make/options b/src/postProcessing/functionObjects/utilities/Make/options
index da63b33ea2ff4a1f75c429dc86ab5e975bdd8ee2..82ceb9db5f08b47a77ba0861728512dc01e3f2f8 100644
--- a/src/postProcessing/functionObjects/utilities/Make/options
+++ b/src/postProcessing/functionObjects/utilities/Make/options
@@ -8,6 +8,9 @@ EXE_INC = \
     -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude \
@@ -27,4 +30,6 @@ LIB_LIBS = \
     -lfiniteVolume \
     -lmeshTools \
     -lsampling \
-    -lsurfMesh
+    -lsurfMesh \
+    -lchemistryModel \
+    -lreactionThermophysicalModels
\ No newline at end of file
diff --git a/src/postProcessing/functionObjects/utilities/fluxSummary/fluxSummary.C b/src/postProcessing/functionObjects/utilities/fluxSummary/fluxSummary.C
index 60097f08af7f2ffd5aaa71d614da0959e1c3f451..0ac60ab3081a88b1353e025bad3ed16bed47942b 100644
--- a/src/postProcessing/functionObjects/utilities/fluxSummary/fluxSummary.C
+++ b/src/postProcessing/functionObjects/utilities/fluxSummary/fluxSummary.C
@@ -186,7 +186,7 @@ void Foam::fluxSummary::initialiseFaceZoneAndDirection
     const surfaceVectorField& Sf = mesh.Sf();
     const surfaceScalarField& magSf = mesh.magSf();
 
-    vector n = vector::zero;
+    vector n(Zero);
 
     forAll(fZone, i)
     {
diff --git a/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.C b/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.C
index 67677062a6d4727478fe9126fd444d568f062a5a..cd13ce8b37fd364e7ab023f613d26bab3a564549 100644
--- a/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.C
+++ b/src/postProcessing/functionObjects/utilities/pressureTools/pressureTools.C
@@ -148,20 +148,26 @@ Foam::tmp<Foam::volScalarField> Foam::pressureTools::convertToCoeff
     const volScalarField& p
 ) const
 {
-    tmp<volScalarField> tCoeff(p);
-
     if (calcCoeff_)
     {
-        tCoeff.ref() -= dimensionedScalar("pInf", dimPressure, pInf_);
+        tmp<volScalarField> tCoeff(new volScalarField("pCoeff", p));
+        volScalarField& coeff = tCoeff.ref();
+
+        coeff -= dimensionedScalar("pInf", dimPressure, pInf_);
 
         const dimensionedScalar p0("p0", dimPressure, SMALL);
         const dimensionedVector U("U", dimVelocity, UInf_);
         const dimensionedScalar rho("rho", dimDensity, rhoInf_);
 
-        tCoeff.ref() /= 0.5*rho*magSqr(U) + p0;
+        coeff /= 0.5*rho*magSqr(U) + p0;
+
+        return tCoeff;
+    }
+    else
+    {
+        return p;
     }
 
-    return tCoeff;
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/reactionsSensitivityAnalysis.C b/src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/reactionsSensitivityAnalysis.C
new file mode 100644
index 0000000000000000000000000000000000000000..14616b7225e9bb5d192373868fa0ddf38de7a531
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/reactionsSensitivityAnalysis.C
@@ -0,0 +1,321 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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 "reactionsSensitivityAnalysis.H"
+#include "dictionary.H"
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+template<class chemistryType>
+void Foam::reactionsSensitivityAnalysis<chemistryType>::createFileNames()
+{
+    if (writeToFile() && !prodFilePtr_.valid())
+    {
+        prodFilePtr_ = createFile("production");
+        writeHeader(prodFilePtr_(), "production");
+        writeFileHeader(prodFilePtr_());
+
+        consFilePtr_ = createFile("consumption");
+        writeHeader(consFilePtr_(), "consumption");
+        writeFileHeader(consFilePtr_());
+
+        prodIntFilePtr_ = createFile("productionInt");
+        writeHeader(prodIntFilePtr_(), "productionInt");
+        writeFileHeader(prodIntFilePtr_());
+
+        consIntFilePtr_ = createFile("consumptionInt");
+        writeHeader(consIntFilePtr_(), "consumptionInt");
+        writeFileHeader(consIntFilePtr_());
+    }
+}
+
+
+template<class chemistryType>
+void Foam::reactionsSensitivityAnalysis<chemistryType>::writeFileHeader
+(
+    OFstream& os
+)
+{
+    writeCommented(os, "Reaction");
+
+    forAll(speciesNames_, k)
+    {
+        os << tab << speciesNames_[k] << tab;
+    }
+
+    os << nl << endl;
+}
+
+
+template<class chemistryType>
+void Foam::reactionsSensitivityAnalysis<chemistryType>::calculateSpeciesRR
+(
+    const basicChemistryModel& basicChemistry
+)
+{
+
+    tmp<DimensionedField<scalar, volMesh> > RRt
+    (
+        new DimensionedField<scalar, volMesh>
+        (
+            IOobject
+            (
+                "RR",
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            mesh_,
+            dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0)
+        )
+    );
+
+    DimensionedField<scalar, volMesh>& RR = RRt.ref();
+
+    scalar dt = mesh_.time().deltaT().value();
+
+    endTime_ += dt;
+
+    forAll(production_, specieI)
+    {
+        forAll(production_[specieI], reactionI)
+        {
+            RR = basicChemistry.calculateRR(reactionI, specieI);
+
+            if (RR[0] > 0.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];
+            }
+            else
+            {
+                production_[specieI][reactionI] = 0.0;
+                consumption_[specieI][reactionI] = 0.0;
+            }
+        }
+    }
+}
+
+
+template<class chemistryType>
+void Foam::reactionsSensitivityAnalysis<chemistryType>::writeSpeciesRR()
+{
+
+    consFilePtr_() << "time : " << mesh_.time().value() << tab << nl;
+    consFilePtr_() << "delta T : "<< mesh_.time().deltaT().value() << nl << nl;
+    prodFilePtr_() << "time : " << mesh_.time().value() << tab << nl;
+    prodFilePtr_() << "delta T : "<< mesh_.time().deltaT().value() << nl << nl;
+
+    consIntFilePtr_() << "start time : " << startTime_ << tab
+            << "end time :" <<  endTime_ << nl;
+
+    prodIntFilePtr_() << "start time : " << startTime_ << tab
+            << "end time :" <<  endTime_ << nl;
+
+    for
+    (
+        label reactionI = 0; reactionI < nReactions_; reactionI++
+    )
+    {
+        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;
+        }
+        consFilePtr_() << nl;
+        consIntFilePtr_() << nl;
+        prodFilePtr_() << nl;
+        prodIntFilePtr_() << nl;
+    }
+    consFilePtr_() << nl << nl;
+    consIntFilePtr_() << nl << nl;
+    prodFilePtr_() << nl << nl;
+    prodIntFilePtr_() << nl << nl;
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class chemistryType>
+Foam::reactionsSensitivityAnalysis<chemistryType>::reactionsSensitivityAnalysis
+(
+    const word& name,
+    const objectRegistry& obr,
+    const dictionary& dict,
+    const bool loadFromFiles
+)
+:
+    functionObjectFile(obr, name),
+    name_(name),
+    mesh_(refCast<const fvMesh>(obr)),
+    active_(true),
+    production_(0),
+    consumption_(0),
+    productionInt_(0),
+    consumptionInt_(0),
+    startTime_(0),
+    endTime_(0),
+    speciesNames_(),
+    nReactions_(0),
+    prodFilePtr_(),
+    consFilePtr_(),
+    prodIntFilePtr_(),
+    consIntFilePtr_()
+{
+    read(dict);
+    if (mesh_.nCells() != 1)
+    {
+        FatalErrorInFunction
+            << "Function object only applicable to single cell cases "
+            << abort(FatalError);
+    }
+
+    if (mesh_.foundObject<basicChemistryModel>("chemistryProperties"))
+    {
+        const chemistryType& chemistry = refCast<const chemistryType>
+        (
+            mesh_.lookupObject<basicChemistryModel>("chemistryProperties")
+        );
+
+
+        speciesNames_.setSize
+        (
+            chemistry.thermo().composition().species().size()
+        );
+
+        forAll(speciesNames_, i)
+        {
+            speciesNames_[i] = chemistry.thermo().composition().species()[i];
+        }
+
+        nReactions_ = chemistry.nReaction();
+
+        if (production_.size() == 0)
+        {
+            production_.setSize(speciesNames_.size());
+            consumption_.setSize(production_.size());
+            productionInt_.setSize(production_.size());
+            consumptionInt_.setSize(production_.size());
+
+            forAll(production_, i)
+            {
+                production_[i].setSize(nReactions_, 0.0);
+                consumption_[i].setSize(nReactions_, 0.0);
+                productionInt_[i].setSize(nReactions_, 0.0);
+                consumptionInt_[i].setSize(nReactions_, 0.0);
+            }
+        }
+    }
+    else
+    {
+         FatalErrorInFunction
+            << " Not chemistry model found. "
+            << " Object available are : " << mesh_.names()
+            << exit(FatalError);
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+template<class chemistryType>
+Foam::reactionsSensitivityAnalysis<chemistryType>::
+~reactionsSensitivityAnalysis()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class chemistryType>
+void Foam::reactionsSensitivityAnalysis<chemistryType>::read
+(
+    const dictionary& dict
+)
+{}
+
+
+template<class chemistryType>
+void Foam::reactionsSensitivityAnalysis<chemistryType>::execute()
+{
+    createFileNames();
+
+    const basicChemistryModel& chemistry =
+        mesh_.lookupObject<basicChemistryModel>
+        (
+            "chemistryProperties"
+        );
+    calculateSpeciesRR(chemistry);
+}
+
+
+template<class chemistryType>
+void Foam::reactionsSensitivityAnalysis<chemistryType>::end()
+{
+    // Do nothing - only valid on write
+}
+
+
+template<class chemistryType>
+void Foam::reactionsSensitivityAnalysis<chemistryType>::timeSet()
+{
+    // Do nothing
+}
+
+
+template<class chemistryType>
+void Foam::reactionsSensitivityAnalysis<chemistryType>::write()
+{
+    if (!active_)
+    {
+        return;
+    }
+
+    if (Pstream::master())
+    {
+        //functionObjectFile::write();
+
+        writeSpeciesRR();
+
+        startTime_ = endTime_;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/reactionsSensitivityAnalysis.H b/src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/reactionsSensitivityAnalysis.H
new file mode 100644
index 0000000000000000000000000000000000000000..270d0f405659251d57cfcee7b9848b6c6c7fecb4
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/reactionsSensitivityAnalysis.H
@@ -0,0 +1,220 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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::reactionsSensitivityAnalysis
+
+Group
+    grpUtilitiesFunctionObjects
+
+Description
+    This function object creates four data files named:
+
+    "consumption"    :   consumption rate
+    "production"     :   destruction rate
+    "productionInt"  :   integral between dumps of the production rate
+    "consumptionInt" :   integral between dumps of the consumption rate
+
+    The function object indicates reaction rates of creation or destruction
+    of species in each reaction.
+
+
+SourceFiles
+    reactionsSensitivityAnalysis.C
+    IOreactionsSensitivityAnalysis.H
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef reactionsSensitivityAnalysis_H
+#define reactionsSensitivityAnalysis_H
+
+#include "functionObjectFile.H"
+#include "volFields.H"
+#include "basicChemistryModel.H"
+#include "autoPtr.H"
+#include "basicMultiComponentMixture.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of classes
+class objectRegistry;
+class dictionary;
+
+/*---------------------------------------------------------------------------*\
+                    Class reactionsSensitivityAnalysis Declaration
+\*---------------------------------------------------------------------------*/
+template<class chemistryType>
+class reactionsSensitivityAnalysis
+:
+    public functionObjectFile
+
+{
+    // Private data
+
+        //- Name of this set of reactionsSensitivityAnalysis objects
+        word name_;
+
+        //- Reference to the mesh database
+        const fvMesh& mesh_;
+
+        //- On/off switch
+        bool active_;
+
+        //- List list for species production
+        scalarListList production_;
+
+        //- List list for species consumption
+        scalarListList consumption_;
+
+        //- List list for species production integral
+        scalarListList productionInt_;
+
+        //- List list for species consumption integral
+        scalarListList consumptionInt_;
+
+        //- Start time of integration
+        scalar startTime_;
+
+        //- End time of integration
+        scalar endTime_;
+
+        //- Word list of species
+        wordList speciesNames_;
+
+        //-Number of reactions
+        label nReactions_;
+
+
+         // File streams
+
+            //- Integrated coefficients
+            autoPtr<OFstream> prodFilePtr_;
+
+            //- Moment coefficient
+            autoPtr<OFstream> consFilePtr_;
+
+            //- Drag coefficient
+            autoPtr<OFstream> prodIntFilePtr_;
+
+            //- Lift coefficient
+            autoPtr<OFstream> consIntFilePtr_;
+
+
+
+    // Private Member Functions
+
+
+        //- Create file names for forces and bins
+        void createFileNames();
+
+        //- Output file header information
+        void writeFileHeader(OFstream& os);
+
+        //- Calculate production and destruction of each species
+        void calculateSpeciesRR(const basicChemistryModel&);
+
+        //- Write species production/consumption rates
+        void writeSpeciesRR();
+
+
+        //- Disallow default bitwise copy construct
+        reactionsSensitivityAnalysis(const reactionsSensitivityAnalysis&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const reactionsSensitivityAnalysis&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("reactionsSensitivityAnalysis");
+
+
+    // Constructors
+
+        //- Construct for given objectRegistry and dictionary.
+        //  Allow the possibility to load fields from files
+        reactionsSensitivityAnalysis
+        (
+            const word& name,
+            const objectRegistry&,
+            const dictionary&,
+            const bool loadFromFiles = false
+        );
+
+
+    //- Destructor
+    virtual ~reactionsSensitivityAnalysis();
+
+
+    // Member Functions
+
+        //- Return name of the set of reactionsSensitivityAnalysis
+        virtual const word& name() const
+        {
+            return name_;
+        }
+
+        //- Read the reactionsSensitivityAnalysis data
+        virtual void read(const dictionary&);
+
+        //- Execute, currently does nothing
+        virtual void execute();
+
+        //- Execute at the final time-loop, currently does nothing
+        virtual void end();
+
+        //- Called when time was set at the end of the Time::operator++
+        virtual void timeSet();
+
+        //- Calculate the reactionsSensitivityAnalysis and write
+        virtual void write();
+
+        //- Update for changes of mesh
+        virtual void updateMesh(const mapPolyMesh&)
+        {}
+
+        //- Update for changes of mesh
+        virtual void movePoints(const polyMesh&)
+        {}
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+#   include "reactionsSensitivityAnalysis.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/reactionsSensitivityAnalysisFunctionObject.C b/src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/reactionsSensitivityAnalysisFunctionObject.C
new file mode 100644
index 0000000000000000000000000000000000000000..01110e17c8955c39dedde3f193f6902d44dc8bc2
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/reactionsSensitivityAnalysisFunctionObject.C
@@ -0,0 +1,75 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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 "reactionsSensitivityAnalysisFunctionObject.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineTemplateTypeNameAndDebugWithName
+    (
+        reactionsSensitivityAnalysis<rhoChemistryModel>,
+        "rhoReactionsSensitivityAnalysis",
+        0
+    );
+
+    defineTemplateTypeNameAndDebugWithName
+    (
+        rhoReactionsSensitivityAnalysisFunctionObject,
+        "rhoReactionsSensitivityAnalysis",
+        0
+    );
+
+    addToRunTimeSelectionTable
+    (
+        functionObject,
+        rhoReactionsSensitivityAnalysisFunctionObject,
+        dictionary
+    );
+
+    defineTemplateTypeNameAndDebugWithName
+    (
+        reactionsSensitivityAnalysis<psiChemistryModel>,
+        "psiReactionsSensitivityAnalysis",
+        0
+    );
+
+    defineTemplateTypeNameAndDebugWithName
+    (
+        psiReactionsSensitivityAnalysisFunctionObject,
+        "psiReactionsSensitivityAnalysis",
+        0
+    );
+
+    addToRunTimeSelectionTable
+    (
+        functionObject,
+        psiReactionsSensitivityAnalysisFunctionObject,
+        dictionary
+    );
+}
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/reactionsSensitivityAnalysisFunctionObject.H b/src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/reactionsSensitivityAnalysisFunctionObject.H
new file mode 100644
index 0000000000000000000000000000000000000000..7abeca2d78f7a14596c0c38cf4ce290e5c16b099
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/reactionsSensitivityAnalysisFunctionObject.H
@@ -0,0 +1,64 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+Typedef
+    Foam::reactionsSensitivityAnalysisFunctionObject
+
+Description
+    FunctionObject wrapper around reactionsSensitivityAnalysis to allow
+    it to be created via the functions entry within controlDict.
+
+SourceFiles
+    reactionsSensitivityAnalysisFunctionObject.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef reactionsSensitivityAnalysisFunctionObject_H
+#define reactionsSensitivityAnalysisFunctionObject_H
+
+#include "OutputFilterFunctionObject.H"
+#include "reactionsSensitivityAnalysis.H"
+#include "rhoChemistryModel.H"
+#include "psiChemistryModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    typedef OutputFilterFunctionObject
+    <
+        reactionsSensitivityAnalysis<rhoChemistryModel>
+    > rhoReactionsSensitivityAnalysisFunctionObject;
+
+
+    typedef OutputFilterFunctionObject
+    <
+        reactionsSensitivityAnalysis<psiChemistryModel>
+    > psiReactionsSensitivityAnalysisFunctionObject;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C
index 226597ecd20b17686a0104b11f5651e4d6432a42..cf1460066b17e569e0f5652a7c6ed76ea361bc48 100644
--- a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C
+++ b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C
@@ -95,10 +95,7 @@ void kinematicSingleLayer::resetPrimaryRegionSourceTerms()
 
 void kinematicSingleLayer::transferPrimaryRegionThermoFields()
 {
-    if (debug)
-    {
-        InfoInFunction << endl;
-    }
+    DebugInFunction << endl;
 
     // Update fields from primary region via direct mapped
     // (coupled) boundary conditions
@@ -928,7 +925,7 @@ void kinematicSingleLayer::postEvolveRegion()
 {
     if (debug)
     {
-        Info<< "kinematicSingleLayer::postEvolveRegion()" << endl;
+        InfoInFunction << endl;
     }
 
     // Reset source terms for next time integration
diff --git a/src/sampling/meshToMesh/calcMethod/meshToMeshMethod/meshToMeshMethod.C b/src/sampling/meshToMesh/calcMethod/meshToMeshMethod/meshToMeshMethod.C
index 53b13c6da9d089b8f1a2df5494242890c122d229..04afc2cef8c380976b0dbe806432707381dac63b 100644
--- a/src/sampling/meshToMesh/calcMethod/meshToMeshMethod/meshToMeshMethod.C
+++ b/src/sampling/meshToMesh/calcMethod/meshToMeshMethod/meshToMeshMethod.C
@@ -146,7 +146,7 @@ Foam::meshToMeshMethod::interVolAndCentroid
     if (volAndInertia.first() <= ROOTVSMALL)
     {
         volAndInertia.first() = 0.0;
-        volAndInertia.second() = vector::zero;
+        volAndInertia.second() = Zero;
     }
     else
     {
diff --git a/src/sampling/sampledSurface/writers/foamFile/foamFileSurfaceWriter.C b/src/sampling/sampledSurface/writers/foamFile/foamFileSurfaceWriter.C
index e351afd676aea2b2182c01bbfabc7bbc187a3283..1248f42c153b1251b7f3119e3aed296d9a302023 100644
--- a/src/sampling/sampledSurface/writers/foamFile/foamFileSurfaceWriter.C
+++ b/src/sampling/sampledSurface/writers/foamFile/foamFileSurfaceWriter.C
@@ -80,7 +80,7 @@ Foam::fileName Foam::foamFileSurfaceWriter::write
 
     // Face centers. Not really necessary but very handy when reusing as inputs
     // for e.g. timeVaryingMapped bc.
-    pointField faceCentres(faces.size(),point::zero);
+    pointField faceCentres(faces.size(), Zero);
 
     forAll(faces, faceI)
     {
diff --git a/src/sampling/sampledSurface/writers/vtk/vtkSurfaceWriter.C b/src/sampling/sampledSurface/writers/vtk/vtkSurfaceWriter.C
index 5ab19e05be36a608b5adb2e69a13ddb8c001dbb7..e4eef949ca146c3a6fb1426dc14a07fe34883417 100644
--- a/src/sampling/sampledSurface/writers/vtk/vtkSurfaceWriter.C
+++ b/src/sampling/sampledSurface/writers/vtk/vtkSurfaceWriter.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.
@@ -31,6 +31,7 @@ License
 namespace Foam
 {
     makeSurfaceWriterType(vtkSurfaceWriter);
+    addToRunTimeSelectionTable(surfaceWriter, vtkSurfaceWriter, wordDict);
 }
 
 
@@ -202,7 +203,22 @@ namespace Foam
 
 Foam::vtkSurfaceWriter::vtkSurfaceWriter()
 :
-    surfaceWriter()
+    surfaceWriter(),
+    writePrecision_(IOstream::defaultPrecision())
+{}
+
+
+Foam::vtkSurfaceWriter::vtkSurfaceWriter(const dictionary& dict)
+:
+    surfaceWriter(),
+    writePrecision_
+    (
+        dict.lookupOrDefault
+        (
+            "writePrecision",
+            IOstream::defaultPrecision()
+        )
+    )
 {}
 
 
@@ -229,6 +245,7 @@ Foam::fileName Foam::vtkSurfaceWriter::write
     }
 
     OFstream os(outputDir/surfaceName + ".vtk");
+    os.precision(writePrecision_);
 
     if (verbose)
     {
diff --git a/src/sampling/sampledSurface/writers/vtk/vtkSurfaceWriter.H b/src/sampling/sampledSurface/writers/vtk/vtkSurfaceWriter.H
index 03d00297270c1a2a311777c31e0cc1756f844602..f3d17fc2b9950fda4ec4196ee8f36339aaf54d74 100644
--- a/src/sampling/sampledSurface/writers/vtk/vtkSurfaceWriter.H
+++ b/src/sampling/sampledSurface/writers/vtk/vtkSurfaceWriter.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -50,6 +50,11 @@ class vtkSurfaceWriter
 :
     public surfaceWriter
 {
+    // Private data
+
+        const unsigned int writePrecision_;
+
+
     // Private Member Functions
 
         static void writeGeometry(Ostream&, const pointField&, const faceList&);
@@ -84,6 +89,9 @@ public:
         //- Construct null
         vtkSurfaceWriter();
 
+        //- Construct with some output options
+        vtkSurfaceWriter(const dictionary& options);
+
 
     //- Destructor
     virtual ~vtkSurfaceWriter();
diff --git a/src/sampling/sampledSurface/writers/vtk/vtkSurfaceWriterTemplates.C b/src/sampling/sampledSurface/writers/vtk/vtkSurfaceWriterTemplates.C
index aaf17bbfeb9c79ba3328f2686f92fbfc163da10e..6ceb45e464395ca1385c317033dfde79abe16c0e 100644
--- a/src/sampling/sampledSurface/writers/vtk/vtkSurfaceWriterTemplates.C
+++ b/src/sampling/sampledSurface/writers/vtk/vtkSurfaceWriterTemplates.C
@@ -63,6 +63,7 @@ Foam::fileName Foam::vtkSurfaceWriter::writeTemplate
     }
 
     OFstream os(outputDir/fieldName + '_' + surfaceName + ".vtk");
+    os.precision(writePrecision_);
 
     if (verbose)
     {
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H b/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H
index eb927e71b2871d6c5c31167753ea5c81fa324dc8..8f8c39dcab417d0c4e5e76ccb9cec8856c69969d 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H
@@ -175,6 +175,9 @@ public:
 
                 //- Return the heat release, i.e. enthalpy/sec [m2/s3]
                 virtual tmp<volScalarField> dQ() const = 0;
+
+                //- Return number of reactions
+                virtual label nReaction() const = 0;
 };
 
 
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C
index 1e3e1fe7ad6d534fef3167790a426c36c5b340b9..baad4756560627cb453a8b5926299bdecbef01c7 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C
@@ -323,7 +323,7 @@ Foam::radiation::fvDOM::fvDOM(const volScalarField& T)
     solarLoad_(),
     meshOrientation_
     (
-        coeffs_.lookupOrDefault<vector>("meshOrientation", vector::zero)
+        coeffs_.lookupOrDefault<vector>("meshOrientation", Zero)
     )
 {
     initialise();
@@ -418,7 +418,7 @@ Foam::radiation::fvDOM::fvDOM
     solarLoad_(),
     meshOrientation_
     (
-        coeffs_.lookupOrDefault<vector>("meshOrientation", vector::zero)
+        coeffs_.lookupOrDefault<vector>("meshOrientation", Zero)
     )
 {
     initialise();
diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
index d569d454f51205c30db566e71dcba438a38eaf61..cb6f8417a2c49aee184c24f5da1eae7597a0d216 100644
--- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
+++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
@@ -137,7 +137,7 @@ Foam::radiation::radiativeIntensityRay::radiativeIntensityRay
 
     if (mesh_.nSolutionD() == 2)
     {
-        vector meshDir(vector::zero);
+        vector meshDir(Zero);
         if (dom_.meshOrientation() != vector::zero)
         {
             meshDir = dom_.meshOrientation();
@@ -161,7 +161,7 @@ Foam::radiation::radiativeIntensityRay::radiativeIntensityRay
     }
     else if (mesh_.nSolutionD() == 1)
     {
-        vector meshDir(vector::zero);
+        vector meshDir(Zero);
         if (dom_.meshOrientation() != vector::zero)
         {
             meshDir = dom_.meshOrientation();
@@ -195,7 +195,7 @@ Foam::radiation::radiativeIntensityRay::radiativeIntensityRay
             IOobject::AUTO_WRITE
         );
 
-        // check if field exists and can be read
+        // Check if field exists and can be read
         if (IHeader.typeHeaderOk<volScalarField>(true))
         {
             ILambda_.set
diff --git a/src/thermophysicalModels/radiation/radiationModels/solarLoad/solarLoad.C b/src/thermophysicalModels/radiation/radiationModels/solarLoad/solarLoad.C
index 6a38bb86b4139de366accfd56965684ede69eb5f..a69cfbd0ebbeeb0f6b278817548aef86c08fe84a 100644
--- a/src/thermophysicalModels/radiation/radiationModels/solarLoad/solarLoad.C
+++ b/src/thermophysicalModels/radiation/radiationModels/solarLoad/solarLoad.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -44,8 +44,8 @@ namespace Foam
     }
 }
 
-const Foam::word Foam::radiation::solarLoad::viewFactorWalls
-    = "viewFactorWall";
+const Foam::word Foam::radiation::solarLoad::viewFactorWalls = "viewFactorWall";
+
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
@@ -126,9 +126,7 @@ void Foam::radiation::solarLoad::updateDirectHitRadiation
         label patchID = patches.whichPatch(faceI);
         const polyPatch& pp = patches[patchID];
         const label localFaceI = faceI - pp.start();
-        const vector qPrim =
-              solarCalc_.directSolarRad()
-            * solarCalc_.direction();
+        const vector qPrim = solarCalc_.directSolarRad()*solarCalc_.direction();
 
         if (includeMappedPatchBasePatches[patchID])
         {
@@ -220,9 +218,9 @@ void Foam::radiation::solarLoad::updateSkyDiffusiveRadiation
                         // Ground reflected
                         Er =
                             solarCalc_.directSolarRad()
-                         * (solarCalc_.C() + Foam::sin(solarCalc_.beta()))
-                         * solarCalc_.groundReflectivity()
-                         * (1.0 - cosEpsilon)/2.0;
+                          * (solarCalc_.C() + Foam::sin(solarCalc_.beta()))
+                          * solarCalc_.groundReflectivity()
+                          * (1.0 - cosEpsilon)/2.0;
                     }
 
                     const label cellI = cellIds[faceI];
@@ -241,10 +239,10 @@ void Foam::radiation::solarLoad::updateSkyDiffusiveRadiation
                         for (label bandI = 0; bandI < nBands_; bandI++)
                         {
                             Ru_[cellI] +=
-                                  (Ed + Er)
-                                * spectralDistribution_[bandI]
-                                * absorptivity_[patchID][bandI]()[faceI]
-                                * sf[faceI]/V[cellI];
+                                (Ed + Er)
+                              * spectralDistribution_[bandI]
+                              * absorptivity_[patchID][bandI]()[faceI]
+                              * sf[faceI]/V[cellI];
                         }
                     }
                 }
@@ -337,20 +335,9 @@ void Foam::radiation::solarLoad::initialise(const dictionary& coeffs)
         );
     }
 
-    if (coeffs.found("solidCoupled"))
-    {
-         coeffs.lookup("solidCoupled") >> solidCoupled_;
-    }
-
-    if (coeffs.found("wallCoupled"))
-    {
-         coeffs.lookup("wallCoupled") >> wallCoupled_;
-    }
-
-    if (coeffs.found("updateAbsorptivity"))
-    {
-        coeffs.lookup("updateAbsorptivity") >> updateAbsorptivity_;
-    }
+    coeffs.readIfPresent("solidCoupled", solidCoupled_);
+    coeffs.readIfPresent("wallCoupled", wallCoupled_);
+    coeffs.readIfPresent("updateAbsorptivity", updateAbsorptivity_);
 }
 
 
@@ -399,8 +386,7 @@ void Foam::radiation::solarLoad::calculateQdiff
     forAll(includePatches_, i)
     {
         const label patchI = includePatches_[i];
-        nLocalVFCoarseFaces +=
-            coarseMesh_->boundaryMesh()[patchI].size();
+        nLocalVFCoarseFaces += coarseMesh_->boundaryMesh()[patchI].size();
     }
 
     label totalFVNCoarseFaces = nLocalVFCoarseFaces;
@@ -413,7 +399,7 @@ void Foam::radiation::solarLoad::calculateQdiff
 
     scalarField compactCoarseRave(map_->constructSize(), 0.0);
     scalarField compactCoarsePartialArea(map_->constructSize(), 0.0);
-    vectorList compactCoarseNorm(map_->constructSize(), vector::zero);
+    vectorList compactCoarseNorm(map_->constructSize(), Zero);
 
     const boundaryRadiationProperties& boundaryRadiation =
         boundaryRadiationProperties::New(mesh_);
@@ -443,8 +429,8 @@ void Foam::radiation::solarLoad::calculateQdiff
         for (label bandI = 0; bandI < nBands_; bandI++)
         {
             const tmp<scalarField> tr =
-               spectralDistribution_[bandI]
-              *boundaryRadiation.reflectivity(patchID, bandI);
+                spectralDistribution_[bandI]
+               *boundaryRadiation.reflectivity(patchID, bandI);
             r += tr();
         }
 
@@ -459,14 +445,9 @@ void Foam::radiation::solarLoad::calculateQdiff
         forAll(cpp, coarseI)
         {
             const label coarseFaceID = coarsePatchFace[coarseI];
-            const labelList& fineFaces =
-                coarseToFine_[i][coarseFaceID];
+            const labelList& fineFaces = coarseToFine_[i][coarseFaceID];
 
-            UIndirectList<scalar> fineSf
-            (
-                sf,
-                fineFaces
-            );
+            UIndirectList<scalar> fineSf(sf, fineFaces);
             scalar fineArea = sum(fineSf());
 
             scalar fullArea = 0.0;
@@ -503,18 +484,18 @@ void Foam::radiation::solarLoad::calculateQdiff
     }
 
 
-     SubList<scalar>(compactCoarsePartialArea, nLocalVFCoarseFaces) =
-         localCoarsePartialArea;
+    SubList<scalar>(compactCoarsePartialArea, nLocalVFCoarseFaces) =
+        localCoarsePartialArea;
 
-     SubList<scalar>(compactCoarseRave, nLocalVFCoarseFaces) =
-         localCoarseRave;
+    SubList<scalar>(compactCoarseRave, nLocalVFCoarseFaces) =
+        localCoarseRave;
 
-     SubList<vector>(compactCoarseNorm, nLocalVFCoarseFaces) =
-         localCoarseNorm;
+    SubList<vector>(compactCoarseNorm, nLocalVFCoarseFaces) =
+        localCoarseNorm;
 
-     map_->distribute(compactCoarsePartialArea);
-     map_->distribute(compactCoarseRave);
-     map_->distribute(compactCoarseNorm);
+    map_->distribute(compactCoarsePartialArea);
+    map_->distribute(compactCoarseRave);
+    map_->distribute(compactCoarseNorm);
 
 
     // Calculate coarse hitFaces and Sun direct hit heat fluxes
@@ -527,8 +508,7 @@ void Foam::radiation::solarLoad::calculateQdiff
         const polyPatch& pp = coarseMesh_->boundaryMesh()[patchID];
         const polyPatch& ppf = mesh_.boundaryMesh()[patchID];
 
-        const labelList& coarsePatchFace =
-            coarseMesh_->patchFaceMap()[patchID];
+        const labelList& coarsePatchFace = coarseMesh_->patchFaceMap()[patchID];
         const scalarField& sf = mesh_.magSf().boundaryField()[patchID];
 
         scalarField a(ppf.size(), 0.0);
@@ -544,11 +524,7 @@ void Foam::radiation::solarLoad::calculateQdiff
         {
             const label coarseFaceID = coarsePatchFace[coarseI];
             const labelList& fineFaces = coarseToFine_[i][coarseFaceID];
-            UIndirectList<scalar> fineSf
-            (
-                sf,
-                fineFaces
-            );
+            UIndirectList<scalar> fineSf(sf, fineFaces);
             scalar fineArea = sum(fineSf());
 
             scalar aAve = 0.0;
@@ -568,12 +544,12 @@ void Foam::radiation::solarLoad::calculateQdiff
                 label compactI = compactFaces[j];
 
                 localqDiffusive[locaFaceI] +=
-                      compactCoarsePartialArea[compactI]
-                    * aAve
-                    * (solarCalc_.directSolarRad()*solarCalc_.direction())
-                    & compactCoarseNorm[compactI]
-                    * vf[j]
-                    * compactCoarseRave[compactI];
+                    compactCoarsePartialArea[compactI]
+                  * aAve
+                  * (solarCalc_.directSolarRad()*solarCalc_.direction())
+                  & compactCoarseNorm[compactI]
+                  * vf[j]
+                  * compactCoarseRave[compactI];
 
             }
             locaFaceI++;
@@ -693,7 +669,7 @@ Foam::radiation::solarLoad::solarLoad(const volScalarField& T)
         dimensionedScalar("Ru", dimMass/dimLength/pow3(dimTime), 0.0)
     ),
     solarCalc_(this->subDict(typeName + "Coeffs"), mesh_),
-    verticalDir_(vector::zero),
+    verticalDir_(Zero),
     useVFbeamToDiffuse_(false),
     includePatches_(mesh_.boundary().size(), -1),
     coarseToFine_(),
@@ -783,7 +759,7 @@ Foam::radiation::solarLoad::solarLoad
         dimensionedScalar("Ru", dimMass/dimLength/pow3(dimTime), 0.0)
     ),
     solarCalc_(coeffs_, mesh_),
-    verticalDir_(vector::zero),
+    verticalDir_(Zero),
     useVFbeamToDiffuse_(false),
     includePatches_(mesh_.boundary().size(), -1),
     coarseToFine_(),
@@ -875,7 +851,7 @@ Foam::radiation::solarLoad::solarLoad
         dimensionedScalar("Ru", dimMass/dimLength/pow3(dimTime), 0.0)
     ),
     solarCalc_(dict, mesh_),
-    verticalDir_(vector::zero),
+    verticalDir_(Zero),
     useVFbeamToDiffuse_(false),
     includePatches_(mesh_.boundary().size(), -1),
     coarseToFine_(),
@@ -1034,4 +1010,5 @@ Foam::radiation::solarLoad::Ru() const
     return Ru_;
 }
 
+
 // ************************************************************************* //
diff --git a/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.C b/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.C
index 76dd3b76b6ea0b5eb311ac21bc4083997139bc1e..2a1e1969454931eb9f3dafadfa8cd215e11c7002 100644
--- a/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.C
+++ b/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.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 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.H b/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.H
index e10622f6bbd71692340ed3ad16de30e93d808328..39a7f156f9b1ebd4813c84e8717dbdc76159183f 100644
--- a/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.H
+++ b/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenCFD Ltd
+    \\  /    A nd           | Copyright (C) 2015-2016 OpenCFD Ltd
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,7 +49,7 @@ namespace radiation
 {
 
 /*---------------------------------------------------------------------------*\
-                   Class boundaryRadiationProperties Declaration
+                 Class boundaryRadiationProperties Declaration
 \*---------------------------------------------------------------------------*/
 
 class boundaryRadiationProperties
@@ -61,7 +61,6 @@ class boundaryRadiationProperties
         boundaryRadiationProperties
     >
 {
-
     // Private data
 
         //- Ptr list of boundaryRadiationProperties
diff --git a/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationPropertiesPatch.C b/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationPropertiesPatch.C
index 12c6a4fbf4389bdaf931e619ea5e3359d6895430..52be72529c4b44fcf965f2d46892dc57e4fa1572 100644
--- a/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationPropertiesPatch.C
+++ b/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationPropertiesPatch.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2015 OpenCFD Ltd
+    \\  /    A nd           | Copyright (C) 2015-2016 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -74,6 +74,7 @@ Foam::radiation::boundaryRadiationPropertiesPatch::nbrRegion() const
      return (refCast<const fvMesh>(mpp.sampleMesh()));
 }
 
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 Foam::radiation::boundaryRadiationPropertiesPatch::
@@ -138,20 +139,19 @@ Foam::radiation::boundaryRadiationPropertiesPatch::
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 const Foam::radiation::absorptionEmissionModel&
-Foam::radiation::boundaryRadiationPropertiesPatch::
-absorptionEmission() const
+Foam::radiation::boundaryRadiationPropertiesPatch::absorptionEmission() const
 {
     return absorptionEmission_();
 }
 
 
 const Foam::radiation::transmissivityModel&
-Foam::radiation::boundaryRadiationPropertiesPatch::
-transmissiveModel() const
+Foam::radiation::boundaryRadiationPropertiesPatch::transmissiveModel() const
 {
     return transmissivity_();
 }
 
+
 Foam::tmp<Foam::scalarField>
 Foam::radiation::boundaryRadiationPropertiesPatch::emissivity
 (
@@ -392,7 +392,6 @@ Foam::radiation::boundaryRadiationPropertiesPatch::transmissivity
 }
 
 
-
 Foam::tmp<Foam::scalarField>
 Foam::radiation::boundaryRadiationPropertiesPatch::reflectivity
 (
@@ -414,8 +413,8 @@ void Foam::radiation::boundaryRadiationPropertiesPatch::write
     os.writeKeyword("mode") << methodTypeNames_[method_]
         << token::END_STATEMENT << nl;
 
-     switch (method_)
-     {
+    switch (method_)
+    {
         case MODEL:
         {
             word modelType
diff --git a/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C b/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C
index 08abcf2853a29b8b077694c9e9834f00d55ab1a0..cc712b4cb244449767e46ea3ba70a1e80d5fd033 100644
--- a/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C
+++ b/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C
@@ -123,7 +123,7 @@ void Foam::solarCalculator::calculateSunDirection()
 
     coord_.reset
     (
-        new coordinateSystem("grid", vector::zero, gridUp_, eastDir_)
+        new coordinateSystem("grid", Zero, gridUp_, eastDir_)
     );
 
     direction_.z() = -sin(beta_);
@@ -236,7 +236,7 @@ Foam::solarCalculator::solarCalculator
 :
     mesh_(mesh),
     dict_(dict),
-    direction_(vector::zero),
+    direction_(Zero),
     directSolarRad_(0.0),
     diffuseSolarRad_(0.0),
     groundReflectivity_(0.0),
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/Su b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/Su
index 8a985a8c93fdd5d20a068a20f05db953d22a2af9..05abdb1211bbe959cae384bae36f9f323a333265 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/Su
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/Su
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/T b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/T
index 808e946efc632d6abd26bac359b808c48f56b230..6632f3a00aa2890b3ba645abcd7aff81db0f5f07 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/T
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/T
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/Tu b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/Tu
index 91a582f9b2d01dfd35f076acfc2b2800416b83a6..53677df70178a7bde295c99527ad4034350d677f 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/Tu
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/Tu
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/U b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/U
index 030e7304256f739005cb38fd77df8ee6890683c0..5cece76bbce6bd98cdd779fff15623582ab96ac9 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/U
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/U
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/Xi b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/Xi
index 2c82712ead216e4a2cb1f2d3ab16e6b3163311c9..cd6b58ed7504d7ab9c9be0ef2da5c4d180805b9d 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/Xi
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/Xi
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/alphat b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/alphat
index 976101414961a55ce54284dc6d45fe02fb88a9d0..09f0b475a039bff2a8ad763632433b97d4b83a07 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/alphat
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/alphat
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -26,10 +26,12 @@ boundaryField
     inlet
     {
         type            calculated;
+        value           $internalField;
     }
     outlet
     {
         type            calculated;
+        value           $internalField;
     }
     wall
     {
@@ -38,6 +40,7 @@ boundaryField
         //value           $internalField;
 
         type            calculated;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/b b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/b
index 2be4bf9c2367f113e1713b51eddcbfe0ab269f09..fc2816f9c815291590dac1d8cc6325497bcb32c7 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/b
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/b
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/ft b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/ft
index 60d897a688a15e61c54dea84b776ccf415bf656a..9cc8bf0958cd62921e42529d1bca3f0faa627d49 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/ft
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/ft
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/k b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/k
index f1af4c8133dbee11a8268c078317007f51f0f0a7..61a91909ceafd20830fb8e03f78028ee0adb6421 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/k
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/k
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/nut b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/nut
index 59650fd3d9acd9ef8f443f60937b1aec0f60f6b0..1a2cadee45f8981b848b336d57e0616468cae416 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/nut
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/nut
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -26,10 +26,12 @@ boundaryField
     inlet
     {
         type            calculated;
+        value           $internalField;
     }
     outlet
     {
         type            calculated;
+        value           $internalField;
     }
     wall
     {
@@ -37,6 +39,7 @@ boundaryField
         //value           $internalField;
 
         type            calculated;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/p b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/p
index 23b4717001e73988b597b81ec8a69291a6feaab6..5efc7dc9bca0b943dfb1f70b43c64c3926953b90 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/p
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/p
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/pPotential b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/pPotential
index a23520366ef24cdaeec45d476699976b3f8b8a00..5a6e17f79f80beb5821fc34615a5341009ebe2a0 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/pPotential
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/0.org/pPotential
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/Allrun b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/Allrun
index 137b566fe22c4b7b75225cc715264b0046d12d1c..595770a6d1448cf428f609ff87b6bf002b9547de 100755
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/Allrun
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/Allrun
@@ -10,10 +10,8 @@ rm -rf 0 && cp -r 0.org 0
 
 runApplication decomposePar -force
 
-n=$(echo processor* | wc -w)
-
-runParallel potentialFoam $n -pName pPotential -initialiseUBCs
+runParallel potentialFoam -pName pPotential -initialiseUBCs
 
 rm -f processor*/0/phi
 
-runParallel XiDyMFoam $n
+runParallel XiDyMFoam
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/Allrun.mesh b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/Allrun.mesh
index 43192922b45810a921e260fb40b13c612c4535c0..27f296d69a3a392c3562ff8a138fc2f92fd792cd 100755
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/Allrun.mesh
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/Allrun.mesh
@@ -8,14 +8,14 @@ rm -f log.* constant/polyMesh/*Level
 
 runApplication blockMesh
 
-runApplication -log log.createPatch.cyclic \
+runApplication -s cyclic \
     createPatch -dict system/createPatchDict.cyclic -overwrite
 
 runApplication snappyHexMesh -overwrite
 
 rm -rf 0
 
-runApplication -log log.createPatch.ami \
+runApplication -s ami \
     createPatch -dict system/createPatchDict.ami -overwrite
 
 runApplication transformPoints -scale '(0.01 0.01 0.01)'
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/combustionProperties b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/combustionProperties
index c4b75887e4bbf2a9269d4c3ca845e065c543b6e2..eca613ad55a514636bec0010dfb14fc78baef199 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/combustionProperties
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/combustionProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/g b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/g
index a52376e2b365ab6bdf0edaf9ee6710d8e87d7df0..e81abf3e675d85218fb2ece42593d73d8315d68e 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/g
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/g
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/thermophysicalProperties b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/thermophysicalProperties
index 29a6fead534ee9128764179570c903b8e50d28d3..3b50e446c1660488a1998e5bb29f38257a25d690 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/thermophysicalProperties
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/thermophysicalProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/turbulenceProperties b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/turbulenceProperties
index 2e5e5b4480e2b6c27f36a185a2048b3b742f6024..a936c141be03e988f5757f12229078f1707c4e01 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/turbulenceProperties
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/constant/turbulenceProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/createPatchDict.ami b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/createPatchDict.ami
index 4d81900c79279f54e100bcffcbfad90dcdf77b57..7052463e7b41bc78da1a57083d7c7c80622ce30e 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/createPatchDict.ami
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/createPatchDict.ami
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.1.x                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/createPatchDict.cyclic b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/createPatchDict.cyclic
index a794302a476c56596069fc12f6d48e0d9f13c0f4..704ce7ef6310225458dbaf050dd24d1fed1dd125 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/createPatchDict.cyclic
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/createPatchDict.cyclic
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.1.x                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/decomposeParDict b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/decomposeParDict
index e2d4768fd47e9d99e3edee15982dd1cde4a440f6..3f544b2738469edd0f82fc37016d0e98b3e4fdb1 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/decomposeParDict
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/decomposeParDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/fvSchemes b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/fvSchemes
index b9f2b3d83c925c7d8c957aa697ebbd11d8287ed0..c035357a7de6821fbf61f316db4ddbb1f8a4f6ce 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/fvSchemes
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/fvSchemes
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/fvSolution b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/fvSolution
index 43248903df78c39dae72b196f99070d5b8c00657..79b943b73424732cdd93f0f96dbe8066ab4235e2 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/fvSolution
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/fvSolution
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/meshQualityDict b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/meshQualityDict
index a5416329609a2063e1424c3f5cfee2ef3353a66a..255ac9e47e8fd1391994d07f5e53375f8f242469 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/meshQualityDict
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/meshQualityDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/snappyHexMeshDict b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/snappyHexMeshDict
index 0960aa715213fa527f2c7051c6100730c91fd4a4..e71d78cbd0d4831efc1c4a4837abf4e8bf2f6483 100644
--- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/snappyHexMeshDict
+++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/snappyHexMeshDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/Su b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/Su
index f04602c76e6509d8aac2b8ceabd1f8d6cef96c29..6b3c0e7757ec4b3bb8355791139578cc1b654ac9 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/Su
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/Su
@@ -1,7 +1,7 @@
 /*---------------------------------------------------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/T b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/T
index 72e2eacd9c9d8c00d85d90dcdab70b19168a5409..7096374e9bfa1eed81e6c5c14d9d8bc52df7ac56 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/T
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/T
@@ -1,7 +1,7 @@
 /*---------------------------------------------------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/Tu b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/Tu
index a0f6c23416635235e6fd1971ee69895b08930662..90e186763306c2eabb25155f898bd31dfc116ed3 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/Tu
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/Tu
@@ -1,7 +1,7 @@
 /*---------------------------------------------------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/U b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/U
index d72e121f4b16e3684e82cce2a829a37c5c61e06c..6ddf1849a9b755e99f3d1dcf063db5d8d57a279a 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/U
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/U
@@ -1,7 +1,7 @@
 /*---------------------------------------------------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/Xi b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/Xi
index 2e3916db131f1f5221a07badf411c154594e03b4..59adfc3d62a28798de2fc094844fb1fbd950294d 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/Xi
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/Xi
@@ -1,7 +1,7 @@
 /*---------------------------------------------------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/alphat b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/alphat
index e1333cb73a7ea1727f6f657a0c96411ac241ada4..9477784ba3a8897ad419b4d5468adb607c16beb0 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/alphat
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/alphat
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/b b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/b
index a643a793209a427db796ffb90fbff66d2da8d37e..1b37814bb1299b202f2aac4f2c994ad174ae847f 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/b
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/b
@@ -1,7 +1,7 @@
 /*---------------------------------------------------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/epsilon b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/epsilon
index fddd53fa7edcf289103410ac569c34282482a25c..40308ce30a7cce67acfc0bb6d0afad3f3ebe84ca 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/epsilon
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/epsilon
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/ft b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/ft
index 2ec70b3e418917c297a22bac881c3fcbbcd2a814..76342f38788b4642d143730828663a67bc286199 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/ft
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/ft
@@ -1,7 +1,7 @@
 /*---------------------------------------------------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/k b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/k
index 8f3b312bb360d9cf7d4914abe164bdb8a2c4ed39..b9eff113bce72edaefe5f4c18bd5c649c7097cf5 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/k
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/k
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/nut b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/nut
index f9eef58ba875fc8f83d6c8bad2e41125205fdab1..d4e02be73400b09ee7e6a8c9d0f44e7fb2411a41 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/nut
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/nut
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/p b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/p
index a2597811d3371d08bbd358c167700f46ebcdf081..972fc3362ad123b7bc63fc3906b5ab96b5131ec8 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/p
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/p
@@ -1,7 +1,7 @@
 /*---------------------------------------------------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/pointDisplacementy b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/pointDisplacementy
index fd4c761252a63c0b8b2548792d58543293082b61..3f687d1b4b6d0b5df6b156d9339eda9aa20fec74 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/pointDisplacementy
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/0/pointDisplacementy
@@ -1,7 +1,7 @@
 /*---------------------------------------------------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/combustionProperties b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/combustionProperties
index 64315efb7b0bbf5d36da2a714db5d4dfa704ecaf..9d0175b575642324d4fe288042379117a70ea1f2 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/combustionProperties
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/combustionProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/g b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/g
index c5c44bde87b2e3574dd14a9e802d780091533d7b..e81abf3e675d85218fb2ece42593d73d8315d68e 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/g
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/g
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/polyMesh/blockMeshDict b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/polyMesh/blockMeshDict
index 08c9580ff035c33bdb55dd4cddd8d73408c94469..00a191e545782e3a096a2b93cda5003668e1403b 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/polyMesh/blockMeshDict
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/polyMesh/blockMeshDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/thermophysicalProperties b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/thermophysicalProperties
index aa818bc057ce9925ed800036bc4abb9016448cff..fed0a75edf171742a12072e7392c562332cb2639 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/thermophysicalProperties
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/thermophysicalProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/turbulenceProperties b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/turbulenceProperties
index ef08c4a188ed6b265a7c9bd0676bdb8995c6e778..8fe9b5ed38d3ed562c1cdf8fcc71b0a6ce10c8bc 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/turbulenceProperties
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/constant/turbulenceProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/controlDict b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/controlDict
index 9e126880eaf9bd4d0f8f771703949f445abf22d3..ee10c8c1608d7680b61161fdab0c58e3b1707f7f 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/controlDict
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.1                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/fvSchemes b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/fvSchemes
index 1eddf3cbfab456da5ecd5bdd8f8cc7cad7851a98..1b7f1ba8f3cc3fe597344628cfa5160e4f6d6d47 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/fvSchemes
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/fvSchemes
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/fvSolution b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/fvSolution
index 61366e52fce5b3c2c92d9ad60216163fdf17f76f..79770c0d3c80ccbed4f89ebda3f8439f69802416 100644
--- a/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/fvSolution
+++ b/tutorials/combustion/XiDyMFoam/oscillatingCylinder/system/fvSolution
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/combustion/chemFoam/gri/system/controlDict b/tutorials/combustion/chemFoam/gri/system/controlDict
index 9daf656f3c74de0623615d6f25d0d65cba25be3e..ff0400dd00ec546a690bad997bbe05a3d220632f 100644
--- a/tutorials/combustion/chemFoam/gri/system/controlDict
+++ b/tutorials/combustion/chemFoam/gri/system/controlDict
@@ -52,4 +52,14 @@ DebugSwitches
     SolverPerformance   0;
 }
 
+functions
+{
+    sensitivityAnalysis
+    {
+        functionObjectLibs  ( "libutilityFunctionObjects.so" );
+        type                psiReactionsSensitivityAnalysis;
+        outputControl       outputTime;
+        enabled             true;
+    }
+}
 // ************************************************************************* //
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/thermophysicalProperties.twoSteps b/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/thermophysicalProperties.twoSteps
index a45bf57fa17cadbc6d062c177729a57bdad4a66b..7e1c8dbc7c662ad50cc59594017f875cfeaccdac 100644
--- a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/thermophysicalProperties.twoSteps
+++ b/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/thermophysicalProperties.twoSteps
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/Allrun b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/Allrun
index bfb99ee4d13156c295080e7ab823d786351661c3..b2f87f4120d40a02d84330232dcab13861722129 100755
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/Allrun
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/Allrun
@@ -8,7 +8,7 @@ cd ${0%/*} || exit 1    # Run from this directory
 ./Allrun.pre
 
 #-- Run on single processor
-#runApplication `getApplication` &
+#runApplication $(getApplication) &
 # Simulated external solver
 #runApplication ./externalSolver
 
@@ -16,7 +16,7 @@ cd ${0%/*} || exit 1    # Run from this directory
 runApplication decomposePar -allRegions
 
 # Run OpenFOAM
-runParallel `getApplication` 4 &
+runParallel $(getApplication) &
 
 # Simulated external solver
 runApplication ./externalSolver
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/Allrun-parallel b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/Allrun-parallel
index b3628006eb02e21402e4c3eb39d9f858a1826f43..ba2fd3c6bb13e449cba1bd26389fe050283b9db3 100755
--- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/Allrun-parallel
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/Allrun-parallel
@@ -9,17 +9,14 @@ cd ${0%/*} || exit 1    # Run from this directory
 # Set application name
 application=$(getApplication)
 
-# Get number of processors to run on
-nProcs=4 #$(getNumberOfProcessors)
-
 # decompose
-runApplication -log log.decomposePar.cabin decomposePar -region cabin
-runApplication -log log.decomposePar.ice decomposePar -region ice
-runApplication -log log.decomposePar.exterior decomposePar -region exterior
+runApplication -s cabin decomposePar -region cabin
+runApplication -s ice decomposePar -region ice
+runApplication -s exterior decomposePar -region exterior
 
-runParallel $application $nProcs
+runParallel $application
 
-runApplication -log log.reconstructPar.cabin reconstructPar -region cabin
-runApplication -log log.reconstructPar.ice reconstructPar -region ice
-runApplication -log log.reconstructPar.exterior reconstructPar -region exterior
+runApplication -s cabin reconstructPar -region cabin
+runApplication -s ice reconstructPar -region ice
+runApplication -s exterior reconstructPar -region exterior
 
diff --git a/tutorials/mesh/parallel/cavity/Allrun b/tutorials/mesh/parallel/cavity/Allrun
index 22412ea2871c949d4307e6a6c163b3637baa8214..dc0492c1a7256e92db80fa1239e63c67cec3b365 100755
--- a/tutorials/mesh/parallel/cavity/Allrun
+++ b/tutorials/mesh/parallel/cavity/Allrun
@@ -10,27 +10,31 @@ runApplication blockMesh
 #runApplication decomposePar
 
 # redistributePar to do decomposition
-runParallel redistributePar 2 -decompose
+runParallel -s decompose redistributePar -decompose
 
 # Bit of renumbering and running
-runParallel -log log.renumberMesh-CuthillMcKee renumberMesh 2 -overwrite
-runParallel -log log.icoFoam-CuthillMcKee icoFoam 2
+runParallel -s CuthillMcKee renumberMesh -overwrite
+runParallel -s CuthillMcKee icoFoam
 
 # Bit of bad renumbering and running
-runParallel -log log.renumberMesh-parallel renumberMesh 2 -overwrite -dict system/renumberMeshDict-random
-runParallel -log log.icoFoam-random icoFoam 2
+runParallel -s random renumberMesh \
+    -overwrite -dict system/renumberMeshDict-random
+runParallel -s random icoFoam
 
 # Pick up last result
 cp system/controlDict-latestTime system/controlDict
 
 # Redistribute to 5 processors
-runParallel -log log.redistributePar-5 redistributePar 5 -decomposeParDict system/decomposeParDict-5 -cellDist
+runParallel -s 5 -np 5 redistributePar \
+    -decomposeParDict system/decomposeParDict-5 -cellDist
 
 # Run a bit more
-runParallel -log log.icoFoam-5 icoFoam 5 -decomposeParDict system/decomposeParDict-5
+runParallel -s 5 -np 5 icoFoam \
+    -decomposeParDict system/decomposeParDict-5
 
 # Reconstruct mesh and results
-runParallel -log log.redistributePar-1 redistributePar 5 -reconstruct -decomposeParDict system/decomposeParDict
+runParallel -s reconstruct redistributePar \
+    -reconstruct -decomposeParDict system/decomposeParDict
 
 
-# ----------------------------------------------------------------- end-of-file
+# -----------------------------------------------------------------------------
diff --git a/tutorials/mesh/parallel/cavity/system/fvSolution b/tutorials/mesh/parallel/cavity/system/fvSolution
index 8b7913e8159fa88fe5c57d54edf037636ee65df0..3be65f5ab562344fb13785933c69541e9b74ccba 100644
--- a/tutorials/mesh/parallel/cavity/system/fvSolution
+++ b/tutorials/mesh/parallel/cavity/system/fvSolution
@@ -17,7 +17,7 @@ FoamFile
 
 solvers
 {
-    p
+    "(p|pFinal)"
     {
         solver          PCG;
         preconditioner  DIC;
diff --git a/tutorials/mesh/parallel/filter/Allrun b/tutorials/mesh/parallel/filter/Allrun
index 8367f6c36fe2f0167c241b69602245165e18d50b..9dabedb155fce0535a3214c27dfa6fc4d3d1e938 100755
--- a/tutorials/mesh/parallel/filter/Allrun
+++ b/tutorials/mesh/parallel/filter/Allrun
@@ -4,30 +4,30 @@ cd ${0%/*} || exit 1    # Run from this directory
 # Source tutorial run functions
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
-application=`getApplication`
+application=$(getApplication)
 
-# create mesh
+# Create mesh
 runApplication blockMesh
 
-# copy 0.org to 0
+# Copy 0.org to 0
 cp -r 0.org 0
 
-# create sets
+# Create sets
 runApplication topoSet
 
-# create baffles and fields
+# Create baffles and fields
 runApplication createBaffles -overwrite
 
 runApplication $application
 
-#- redistributePar to do decomposition
-runParallel redistributePar 3 -decompose -cellDist
+#- RedistributePar to do decomposition
+runParallel redistributePar -decompose -cellDist
 
 #- Continue running for a bit more
-runParallel -log log.reactingParcelFoam-par $application 3
+runParallel -s parallel $application
 
 #- Reconstruct all times
-runParallel -log log.redistributePar-1 redistributePar 3 -reconstruct
+runParallel -s 1 redistributePar -reconstruct
 
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.range1 b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.range1
index d19b196e13b66a53b1d2fdfca7f789019ff14134..bfb756a0fbf1e67e76499f094be77a67c3fe1fc7 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.range1
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.range1
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.range2 b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.range2
index d19b196e13b66a53b1d2fdfca7f789019ff14134..bfb756a0fbf1e67e76499f094be77a67c3fe1fc7 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.range2
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.range2
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.range3 b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.range3
index d19b196e13b66a53b1d2fdfca7f789019ff14134..bfb756a0fbf1e67e76499f094be77a67c3fe1fc7 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.range3
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.range3
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier1 b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier1
index aadb016fd635206fbd8d7eda3a19ff6c72446886..7be29a0492a9929f59cc1417ae2ea6b53b964b0e 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier1
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier1
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier2 b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier2
index 1bfe380ecca9b8ac261a2b8bb33588758a171ebf..fdf671239f6f8d60295440727668d90c91c007bd 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier2
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier2
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier3 b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier3
index 676177cf0edcd9c7f87cb4ba3b891797b8faf54b..d75190c73355a702554076cca2d0f9b6af2a485e 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier3
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier3
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier4 b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier4
index 0b20f90844bd16715ef85c610c0369ad92308cbf..169a61864df419d0204dbcfd09e5f9c03fbd249d 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier4
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier4
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier5 b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier5
index 28e364b6b2bccaea6a0e2244f827f204a9000f55..d1cc375692e1617bf6bc9835ea1fb2257eb4ed3e 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier5
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier5
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier6 b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier6
index 6150c344ae217ea85a82ae555f845f8c86c91d46..7399354ae6d81de157354df5a6dfc14a1c69769e 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier6
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/refineMeshDict.tier6
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.range1 b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.range1
index 123b18ec3c49076cbdad410fddff2366b295ba39..88a7956777fe66fffe004111a3937bbd107c24cd 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.range1
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.range1
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.range2 b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.range2
index 698fbdfa9fb06fe2775b1cfde8f4af6d21ef9aa1..21e7b42a8f5f04a45f77f36b2443fb94fe27008c 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.range2
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.range2
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.range3 b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.range3
index 3551112bc434f4a501eff19f1cf464992053b5ec..672a540857c92ba066f0215f894fd626f4707b35 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.range3
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.range3
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier1 b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier1
index c21e978ee1c57a565b49a95a56f3a991a81d37b7..495a3ad91f947346270d3a38824125b43876fbcb 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier1
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier1
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier2 b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier2
index 0b34b19c85699ea3a78c6c7563f14d7f7a2799af..676e34183c26ec59c78322ee5495db6ec74bbe0e 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier2
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier2
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier3 b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier3
index c67b59f6e530d1d5bddcd6a84d5f20753d1ce6cd..587a64465fec1c9aa20eb25aa016e2f3a7d0a568 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier3
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier3
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier4 b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier4
index 39ae8055fb0c4321442ae583b8631382e28d4151..f82365d4d433d8b9a47d8104c8fcc173d171878b 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier4
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier4
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier5 b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier5
index 2f70226d3e00b5847a23f35f1aa16c1e8ac8297b..e7581de7371051e7e69f23153cc61f8da76a9dae 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier5
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier5
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier6 b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier6
index 5af9195aff35c77c4006b9687f4501794159fcfd..b3c903928fdf67586859e7f59a6518451d6ed103 100644
--- a/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier6
+++ b/tutorials/mesh/refineMesh/refineFieldDirs/system/topoSetDict.tier6
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/Allrun b/tutorials/mesh/snappyHexMesh/gap_detection/Allrun
index 12d5cdabdc5a51525c684dbeb2fc3b7fc0bb70f5..fb62f26883d416529919b7c306c5b57a04092236 100755
--- a/tutorials/mesh/snappyHexMesh/gap_detection/Allrun
+++ b/tutorials/mesh/snappyHexMesh/gap_detection/Allrun
@@ -8,7 +8,7 @@ runApplication blockMesh
 
 runApplication decomposePar
 
-runParallel snappyHexMesh 8 -overwrite
+runParallel snappyHexMesh -overwrite
 
 runApplication reconstructParMesh -constant
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/motorBike/Allrun b/tutorials/multiphase/interDyMFoam/ras/motorBike/Allrun
index e476b947cc7499c4a61885015e7379fc2f144a3a..776643da4d51a8c8abf1bd675f64e018fc865fb7 100755
--- a/tutorials/multiphase/interDyMFoam/ras/motorBike/Allrun
+++ b/tutorials/multiphase/interDyMFoam/ras/motorBike/Allrun
@@ -6,16 +6,15 @@ cd ${0%/*} || exit 1    # Run from this directory
 
 ./Allrun.pre
 
-#runApplication `getApplication`
-runParallel `getApplication` 5
+runParallel $(getApplication)
 
 unset FOAM_SIGFPE
-runParallel -log log.reconstruct redistributePar 5 -reconstruct
+runParallel -s reconstruct redistributePar -reconstruct
 
 # A bit more testing of decomposing
 \cp system/controlDict_nextWrite system/controlDict
-runParallel -log log.decompose redistributePar 5 -decompose -latestTime
-runParallel -log log.interDyMFoam_restart `getApplication` 5
+runParallel -s decompose redistributePar -decompose -latestTime
+runParallel -s restart $(getApplication)
 
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/multiphase/interDyMFoam/ras/motorBike/Allrun.pre b/tutorials/multiphase/interDyMFoam/ras/motorBike/Allrun.pre
index 01e18e2e5a4d07575b2a1ba41771dda6732958ae..2a010de9b4a2bc29be44414963548cbf4e9b3d25 100755
--- a/tutorials/multiphase/interDyMFoam/ras/motorBike/Allrun.pre
+++ b/tutorials/multiphase/interDyMFoam/ras/motorBike/Allrun.pre
@@ -18,10 +18,10 @@ runApplication blockMesh
 #runApplication setFields
 
 runApplication decomposePar -force
-runParallel snappyHexMesh 5 -overwrite
+runParallel snappyHexMesh -overwrite
 ls -d processor* | xargs -I {} rm -f ./{}/constant/polyMesh/refinementHistory
 
 # - set the initial fields
 ls -d processor* | xargs -I {} rm -rf ./{}/0
 ls -d processor* | xargs -I {} cp -r 0.org ./{}/0
-runParallel setFields 5
+runParallel setFields
diff --git a/tutorials/multiphase/interDyMFoam/ras/motorBike/system/controlDict b/tutorials/multiphase/interDyMFoam/ras/motorBike/system/controlDict
index caab84a9c0e4186935a20f1d8c0d3d1ae22d2b3e..fa46cc601da3182340a4a8a2e56c9fd7535f3491 100644
--- a/tutorials/multiphase/interDyMFoam/ras/motorBike/system/controlDict
+++ b/tutorials/multiphase/interDyMFoam/ras/motorBike/system/controlDict
@@ -22,11 +22,11 @@ FoamFile
 
 application     interDyMFoam;
 
-startFrom       startTime;
+startFrom       latestTime;
 
 startTime       0;
 
-stopAt          endTime;
+stopAt          nextWrite;
 
 endTime         2;
 
@@ -56,11 +56,5 @@ maxCo           0.5;
 maxAlphaCo      0.5;
 maxDeltaT       1;
 
-functions
-{
-    // Print stats
-    #include "minMax"
-}
-
 
 // ************************************************************************* //
diff --git a/tutorials/preProcessing/createZeroDirectory/cavity/constant/transportProperties b/tutorials/preProcessing/createZeroDirectory/cavity/constant/transportProperties
index 0b711144471c56f7de1218e1d720de69a3b6bfae..de00c3587cd9e0a677d63a6a6db42f7a47fa59a9 100644
--- a/tutorials/preProcessing/createZeroDirectory/cavity/constant/transportProperties
+++ b/tutorials/preProcessing/createZeroDirectory/cavity/constant/transportProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/cavity/system/blockMeshDict b/tutorials/preProcessing/createZeroDirectory/cavity/system/blockMeshDict
index dc0e26dfddb70cc45db66625e25b3326efbcb3a0..5f58428dd6957756f1e7d66e8d9a31e95ad07e8c 100644
--- a/tutorials/preProcessing/createZeroDirectory/cavity/system/blockMeshDict
+++ b/tutorials/preProcessing/createZeroDirectory/cavity/system/blockMeshDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/cavity/system/caseProperties b/tutorials/preProcessing/createZeroDirectory/cavity/system/caseProperties
index a216dc34a8159e0f530cfb3361106b0b2e301420..39d6b6396504454f51a4a01574ca098188671852 100644
--- a/tutorials/preProcessing/createZeroDirectory/cavity/system/caseProperties
+++ b/tutorials/preProcessing/createZeroDirectory/cavity/system/caseProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/cavity/system/controlDict b/tutorials/preProcessing/createZeroDirectory/cavity/system/controlDict
index f095103f7c43362aaf67f14fce3f956edffc885a..541d07f1741f0f05a81d8811c606b6e19d2d5da5 100644
--- a/tutorials/preProcessing/createZeroDirectory/cavity/system/controlDict
+++ b/tutorials/preProcessing/createZeroDirectory/cavity/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/cavity/system/fvSchemes b/tutorials/preProcessing/createZeroDirectory/cavity/system/fvSchemes
index 03029d2451e31e6ecbb9dd78b0d4c1d641e484ae..4dc97fefdbb494a8541ac505d33dc45a5fcb3b1e 100644
--- a/tutorials/preProcessing/createZeroDirectory/cavity/system/fvSchemes
+++ b/tutorials/preProcessing/createZeroDirectory/cavity/system/fvSchemes
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/cavity/system/fvSolution b/tutorials/preProcessing/createZeroDirectory/cavity/system/fvSolution
index bea5167a6f98ba6b752cc53eddcfa6939f6adcaf..fb6e8e4622bd61357b957200d65625fc51c67b5f 100644
--- a/tutorials/preProcessing/createZeroDirectory/cavity/system/fvSolution
+++ b/tutorials/preProcessing/createZeroDirectory/cavity/system/fvSolution
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -22,13 +22,19 @@ solvers
         solver          PCG;
         preconditioner  DIC;
         tolerance       1e-06;
+        relTol          0.05;
+    }
+
+    pFinal
+    {
+        $p;
         relTol          0;
     }
 
     U
     {
-        solver          PBiCG;
-        preconditioner  DILU;
+        solver          smoothSolver;
+        smoother        symGaussSeidel;
         tolerance       1e-05;
         relTol          0;
     }
diff --git a/tutorials/preProcessing/createZeroDirectory/motorBike/Allrun b/tutorials/preProcessing/createZeroDirectory/motorBike/Allrun
index 26b898a3e2c6313756cdd761a1288da08221ec7f..4ca1ac1c2970e1754e8a3816a0fdece054782150 100755
--- a/tutorials/preProcessing/createZeroDirectory/motorBike/Allrun
+++ b/tutorials/preProcessing/createZeroDirectory/motorBike/Allrun
@@ -11,13 +11,13 @@ runApplication surfaceFeatureExtract
 runApplication blockMesh
 
 runApplication decomposePar
-runParallel snappyHexMesh 6 -overwrite
+runParallel snappyHexMesh -overwrite
 
-runParallel createZeroDirectory 6
+runParallel createZeroDirectory
 
-runParallel patchSummary 6
-runParallel potentialFoam 6 -noFunctionObjects
-runParallel $(getApplication) 6
+runParallel patchSummary
+runParallel potentialFoam -noFunctionObjects
+runParallel $(getApplication)
 
 runApplication reconstructParMesh -constant
 runApplication reconstructPar -latestTime
diff --git a/tutorials/preProcessing/createZeroDirectory/motorBike/system/caseProperties b/tutorials/preProcessing/createZeroDirectory/motorBike/system/caseProperties
index 93ba59e2dc0bd3be35dbb480afa23fc544c81cf8..c105a4f4ad7d6b79348969d539250b485c8da1e6 100644
--- a/tutorials/preProcessing/createZeroDirectory/motorBike/system/caseProperties
+++ b/tutorials/preProcessing/createZeroDirectory/motorBike/system/caseProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/Allrun b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/Allrun
index 2682bf4df7b39f719e04e69e99d66df0e2041d4b..56e9b1ea90165eedfb9ad600c27f607890c7c7cb 100755
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/Allrun
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/Allrun
@@ -22,10 +22,10 @@ done
 
 runApplication decomposePar -allRegions
 
-runParallel createZeroDirectory 4
+runParallel createZeroDirectory
 
 #-- Run in parallel
-runParallel $(getApplication) 4
+runParallel $(getApplication)
 
 # Reconstruct
 runApplication reconstructPar -allRegions
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/g b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/g
index 389a4c9faa880d1a8f22d6501ac5e0857643fe97..0cbbdeb5c3b8b6cb79bf89aba9a3cfcbc9dd7b0e 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/g
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/g
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/radiationProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/radiationProperties
index d6b0e89e15568f9b1902e5ca3982b7889c83424c..bcd3190ac259e3876d30325843f22168fcb3d19a 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/radiationProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/radiationProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties
index b68737c6cad523180a8863fe98b31b24cedc7b00..a43f53866d1be5ab4767c4642aac85c643e5fff3 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/thermophysicalProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/turbulenceProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/turbulenceProperties
index c4416fdce2aea7ad1b7d6d3728a129f79726786f..e011578c36f3d257f1f59ac0726fd79ce34075e8 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/turbulenceProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/bottomAir/turbulenceProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/heater/radiationProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/heater/radiationProperties
index 60a537f62975883e0ba2b2fcf1d8b598295bb4c1..95b5a4ec903e7b3399e50ec03c35716923ecfe96 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/heater/radiationProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/heater/radiationProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/heater/thermophysicalProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/heater/thermophysicalProperties
index d455c7696a69a1aebda9671cc384c89267964e58..bf1bb55a72a9953a618bfe33e45bddb38b92a31d 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/heater/thermophysicalProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/heater/thermophysicalProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/leftSolid/radiationProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/leftSolid/radiationProperties
index 60a537f62975883e0ba2b2fcf1d8b598295bb4c1..95b5a4ec903e7b3399e50ec03c35716923ecfe96 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/leftSolid/radiationProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/leftSolid/radiationProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/regionProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/regionProperties
index e63897261f8a1e81497321af9165302092155148..d4f6927c14a4248320c29cc00b14e60123365744 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/regionProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/regionProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/rightSolid/radiationProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/rightSolid/radiationProperties
index 60a537f62975883e0ba2b2fcf1d8b598295bb4c1..95b5a4ec903e7b3399e50ec03c35716923ecfe96 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/rightSolid/radiationProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/rightSolid/radiationProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/g b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/g
index 389a4c9faa880d1a8f22d6501ac5e0857643fe97..0cbbdeb5c3b8b6cb79bf89aba9a3cfcbc9dd7b0e 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/g
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/g
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/radiationProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/radiationProperties
index d6b0e89e15568f9b1902e5ca3982b7889c83424c..bcd3190ac259e3876d30325843f22168fcb3d19a 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/radiationProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/radiationProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties
index 00ce1d437f708d270cda83c3cd847d284df060cc..c3bc97b0ae4e5376be1421676c32092336f670c3 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/thermophysicalProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/turbulenceProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/turbulenceProperties
index c4416fdce2aea7ad1b7d6d3728a129f79726786f..e011578c36f3d257f1f59ac0726fd79ce34075e8 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/turbulenceProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/constant/topAir/turbulenceProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/blockMeshDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/blockMeshDict
index ef1992cc0fe34607a7a04bec8531b0c78ce37e48..a0349cb81d2eca0501774b84c259945ad233b6c6 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/blockMeshDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/blockMeshDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/caseProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/caseProperties
index b98e0ce42602ad2d077b4fe0d2f4780e2f06eb6d..befa09e0ff461cd371f72e19ffd3f627def3c764 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/caseProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/caseProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/changeDictionaryDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/changeDictionaryDict
index cb3202ef1193f4dd5e2a807f12a3e04ba2e65d3a..31743f9f522a60330f2621deb4f7a899b270d279 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/changeDictionaryDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/changeDictionaryDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/decomposeParDict
index 4f3d3fb667f20d1d85bcfa94503648afa6f79675..1a49f7a69bed1efebdb77131e1ec3ecd9c743fb0 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/decomposeParDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/decomposeParDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/fvSchemes b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/fvSchemes
index 439194c8ca9989d10d718a9918a1a32af85d6b02..79d552de1fde0973f0743d68a2cd8901650b9c9d 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/fvSchemes
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/fvSchemes
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/fvSolution b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/fvSolution
index 44a0147233d9c08d0734fd0fabcd63fb536af4f5..319f67166a49afa816fccff9aca3d07c7ec04d72 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/fvSolution
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/fvSolution
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/controlDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/controlDict
index cac4409581612c4584eff3ef3c0897ce385695e1..e5ef873ca8f27613a894105b1eda409c2d6048f8 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/controlDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/decomposeParDict
index 1594b7133bd87cc2a4ed2474b51a699af1c5f71e..742a2495dfc905d4656c9dcbfdae184dd421e8de 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/decomposeParDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/decomposeParDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/fvSchemes b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/fvSchemes
index 402b38b2cdb0508a38efebf8fc3bee1e64c63255..9288e0ae16b2f8a504719494e3b36aa7225a66bf 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/fvSchemes
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/fvSchemes
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/fvSolution b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/fvSolution
index 3e44345cba539395f3a08ca9119fb274bb3142d4..929708be88c90c17468dfe9e8b538d2fec98b724 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/fvSolution
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/fvSolution
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/caseProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/caseProperties
index 30d7dd6a6340700aceeb4da9aa1772220e8ce3df..1ccfa4ccc462009e600b7ef3d151ddee068b94ab 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/caseProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/caseProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/changeDictionaryDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/changeDictionaryDict
index d2f0f853f77a1f5558b67bbec5495ef1626d7349..9e5df429dfc54b525e3acbfc6cb6c9d24da4118e 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/changeDictionaryDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/changeDictionaryDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/decomposeParDict
index 4f3d3fb667f20d1d85bcfa94503648afa6f79675..1a49f7a69bed1efebdb77131e1ec3ecd9c743fb0 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/decomposeParDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/decomposeParDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/fvSchemes b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/fvSchemes
index 07e39bf4e14f05a56bc38a30962491418ea3ae92..80776526d0b42c7bc1f372a2db76377b8ea238f6 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/fvSchemes
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/fvSchemes
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/fvSolution b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/fvSolution
index 9e6034aab5939e49b4bb5a940e489791aeef5d85..e44236657a985751f2bb420389e016cfc0e66470 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/fvSolution
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/fvSolution
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/caseProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/caseProperties
index a7c5de1834ff5f19da8f56022f8708bbfdbf62b9..6705ee89cd8c32473572b3448c6c8b422026eac3 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/caseProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/caseProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/changeDictionaryDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/changeDictionaryDict
index 94340ad1b3528f10c2b1777fab0d60d2a4f57f52..5f51cce2e62fcd9d02119bcf53a3042b6a01149e 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/changeDictionaryDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/changeDictionaryDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/decomposeParDict
index 4f3d3fb667f20d1d85bcfa94503648afa6f79675..1a49f7a69bed1efebdb77131e1ec3ecd9c743fb0 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/decomposeParDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/decomposeParDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/fvSchemes b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/fvSchemes
index 07e39bf4e14f05a56bc38a30962491418ea3ae92..80776526d0b42c7bc1f372a2db76377b8ea238f6 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/fvSchemes
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/fvSchemes
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/caseProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/caseProperties
index 7b71b22f1a8582a96ba7cb24f0c2c89badfcabdf..990037266c3061df114e4d63303913797e53246e 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/caseProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/caseProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/changeDictionaryDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/changeDictionaryDict
index 94340ad1b3528f10c2b1777fab0d60d2a4f57f52..5f51cce2e62fcd9d02119bcf53a3042b6a01149e 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/changeDictionaryDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/changeDictionaryDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/decomposeParDict
index 4f3d3fb667f20d1d85bcfa94503648afa6f79675..1a49f7a69bed1efebdb77131e1ec3ecd9c743fb0 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/decomposeParDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/decomposeParDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/fvSchemes b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/fvSchemes
index 07e39bf4e14f05a56bc38a30962491418ea3ae92..80776526d0b42c7bc1f372a2db76377b8ea238f6 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/fvSchemes
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/fvSchemes
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/snappyHexMeshDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/snappyHexMeshDict
index cbc02614faa908dd39e0534d907c2f7ed277c972..fdf967b5d76e079b3234b77141d5a854709d2efe 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/snappyHexMeshDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/snappyHexMeshDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/surfaceFeatureExtractDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/surfaceFeatureExtractDict
index befe329465dce63e088554ab513a0e3b5ab3e13b..ffeafc363fb361c27158b0ab36e3d20e07fbbad3 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/surfaceFeatureExtractDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/surfaceFeatureExtractDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/caseProperties b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/caseProperties
index c1aeadba39463d35baa9a5b425c7aa25180663ca..d2822b41151325d6002f4ebdb89548fc0f4f7c07 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/caseProperties
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/caseProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.0                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/changeDictionaryDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/changeDictionaryDict
index a8a40b7bcf425740c25dad417dfed97c7eac9a0f..cf568ed0a9c8155be56bd72849440c22339e89aa 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/changeDictionaryDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/changeDictionaryDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/decomposeParDict
index 4f3d3fb667f20d1d85bcfa94503648afa6f79675..1a49f7a69bed1efebdb77131e1ec3ecd9c743fb0 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/decomposeParDict
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/decomposeParDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/fvSchemes b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/fvSchemes
index 439194c8ca9989d10d718a9918a1a32af85d6b02..79d552de1fde0973f0743d68a2cd8901650b9c9d 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/fvSchemes
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/fvSchemes
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/fvSolution b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/fvSolution
index 3fc4f95ec64c7adb0bdc00836a970b482758d49c..9ff9227ca5c05b712cd0529b7a9b859a4c9b4974 100644
--- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/fvSolution
+++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/fvSolution
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.2.2                                 |
+|  \\    /   O peration     | Version:  plus                                  |
 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/