diff --git a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
index 051f74968be19c6d09eae441f91bb55f696c22bb..c802049f83c7552f1aa4afcf111646b31e37a490 100644
--- a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
+++ b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
@@ -48,157 +48,6 @@ using namespace Foam;
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-void createBaffles
-(
-    const polyMesh& mesh,
-    const label faceI,
-    const label oldPatchI,
-    const labelList& newPatches,
-    PackedBoolList& doneFace,
-    polyTopoChange& meshMod
-)
-{
-    const polyBoundaryMesh& patches = mesh.boundaryMesh();
-    const faceZoneMesh& faceZones = mesh.faceZones();
-
-    const face& f = mesh.faces()[faceI];
-    label zoneID = faceZones.whichZone(faceI);
-    bool zoneFlip = false;
-    if (zoneID >= 0)
-    {
-        const faceZone& fZone = faceZones[zoneID];
-        zoneFlip = fZone.flipMap()[fZone.whichFace(faceI)];
-    }
-    label nei = -1;
-    if (oldPatchI == -1)
-    {
-        nei = mesh.faceNeighbour()[faceI];
-    }
-
-
-    face revFace(f.reverseFace());
-
-    forAll(newPatches, i)
-    {
-        if (oldPatchI == -1)
-        {
-            // Internal face
-            if (doneFace.set(faceI))
-            {
-                // First usage of face. Modify.
-                meshMod.setAction
-                (
-                    polyModifyFace
-                    (
-                        f,                          // modified face
-                        faceI,                      // label of face
-                        mesh.faceOwner()[faceI],    // owner
-                        -1,                         // neighbour
-                        false,                      // face flip
-                        newPatches[i],              // patch for face
-                        false,                      // remove from zone
-                        zoneID,                     // zone for face
-                        zoneFlip                    // face flip in zone
-                    )
-                );
-            }
-            else
-            {
-                // Second or more usage of face. Add.
-                meshMod.setAction
-                (
-                    polyAddFace
-                    (
-                        f,                          // modified face
-                        mesh.faceOwner()[faceI],    // owner
-                        -1,                         // neighbour
-                        -1,                         // master point
-                        -1,                         // master edge
-                        faceI,                      // master face
-                        false,                      // face flip
-                        newPatches[i],              // patch for face
-                        zoneID,                     // zone for face
-                        zoneFlip                    // face flip in zone
-                    )
-                );
-            }
-
-            meshMod.setAction
-            (
-                polyAddFace
-                (
-                    revFace,                    // modified face
-                    nei,                        // owner
-                    -1,                         // neighbour
-                    -1,                         // masterPointID
-                    -1,                         // masterEdgeID
-                    faceI,                      // masterFaceID,
-                    true,                       // face flip
-                    newPatches[i],              // patch for face
-                    zoneID,                     // zone for face
-                    zoneFlip                    // face flip in zone
-                )
-            );
-        }
-        else if
-        (
-            patches[oldPatchI].coupled()
-         && patches[newPatches[i]].coupled()
-        )
-        {
-            // Do not allow coupled patches to be moved to different coupled
-            // patches.
-            //WarningIn("createBaffles()")
-            //    << "Not moving face from coupled patch "
-            //    << patches[oldPatchI].name()
-            //    << " to another coupled patch " << patches[newPatches[i]]
-            //    << endl;
-        }
-        else
-        {
-            if (doneFace.set(faceI))
-            {
-                meshMod.setAction
-                (
-                    polyModifyFace
-                    (
-                        f,                          // modified face
-                        faceI,                      // label of face
-                        mesh.faceOwner()[faceI],    // owner
-                        -1,                         // neighbour
-                        false,                      // face flip
-                        newPatches[i],              // patch for face
-                        false,                      // remove from zone
-                        zoneID,                     // zone for face
-                        zoneFlip                    // face flip in zone
-                    )
-                );
-            }
-            else
-            {
-                meshMod.setAction
-                (
-                    polyAddFace
-                    (
-                        f,                          // modified face
-                        mesh.faceOwner()[faceI],    // owner
-                        -1,                         // neighbour
-                        -1,                         // master point
-                        -1,                         // master edge
-                        faceI,                      // master face
-                        false,                      // face flip
-                        newPatches[i],              // patch for face
-                        zoneID,                     // zone for face
-                        zoneFlip                    // face flip in zone
-                    )
-                );
-            }
-        }
-    }
-}
-
-
-
 // Main program:
 
 int main(int argc, char *argv[])
@@ -215,15 +64,16 @@ int main(int argc, char *argv[])
     const word oldInstance = mesh.pointsInstance();
 
     const polyBoundaryMesh& patches = mesh.boundaryMesh();
+    const faceZoneMesh& faceZones = mesh.faceZones();
 
     // Faces to baffle
     word setName(args.additionalArgs()[0]);
-    Pout<< "Reading faceSet from " << setName << nl << endl;
+    Info<< "Reading faceSet from " << setName << nl << endl;
     faceSet facesToSplit(mesh, setName);
     // Make sure set is synchronised across couples
     facesToSplit.sync(mesh);
-    Pout<< "Read " << facesToSplit.size() << " faces from " << setName
-        << nl << endl;
+    Info<< "Read " << returnReduce(facesToSplit.size(), sumOp<label>())
+        << " faces from " << setName << nl << endl;
 
 
     // Patches to put baffles into
@@ -231,7 +81,7 @@ int main(int argc, char *argv[])
 
     word patchName(args.additionalArgs()[1]);
     newPatches[0] = patches.findPatchID(patchName);
-    Pout<< "Using patch " << patchName
+    Info<< "Using patch " << patchName
         << " at index " << newPatches[0] << endl;
 
     if (newPatches[0] == -1)
@@ -316,48 +166,181 @@ int main(int argc, char *argv[])
 
 
     // Do the actual changes
+    // Note order in which faces are modified/added is so they end up correctly
+    // for cyclic patches (original faces first and then reversed faces)
+    // since otherwise it will have trouble matching baffles.
 
     label nBaffled = 0;
-    PackedBoolList doneFace(mesh.nFaces());
-
-    for (label faceI = 0; faceI < mesh.nInternalFaces(); faceI++)
+ 
+    forAll(newPatches, i)
     {
-        if (facesToSplit.found(faceI))
+        label newPatchI = newPatches[i];
+
+        for (label faceI = 0; faceI < mesh.nInternalFaces(); faceI++)
         {
-            createBaffles
-            (
-                mesh,
-                faceI,
-                -1,                             // oldPatchI,
-                newPatches,
-                doneFace,
-                meshMod
-            );
-            nBaffled++;
+            if (facesToSplit.found(faceI))
+            {
+                const face& f = mesh.faces()[faceI];
+                label zoneID = faceZones.whichZone(faceI);
+                bool zoneFlip = false;
+                if (zoneID >= 0)
+                {
+                    const faceZone& fZone = faceZones[zoneID];
+                    zoneFlip = fZone.flipMap()[fZone.whichFace(faceI)];
+                }
+
+                if (i == 0)
+                {
+                    // First usage of face. Modify.
+                    meshMod.setAction
+                    (
+                        polyModifyFace
+                        (
+                            f,                          // modified face
+                            faceI,                      // label of face
+                            mesh.faceOwner()[faceI],    // owner
+                            -1,                         // neighbour
+                            false,                      // face flip
+                            newPatchI,                  // patch for face
+                            false,                      // remove from zone
+                            zoneID,                     // zone for face
+                            zoneFlip                    // face flip in zone
+                        )
+                    );
+                }
+                else
+                {
+                    // Second or more usage of face. Add.
+                    meshMod.setAction
+                    (
+                        polyAddFace
+                        (
+                            f,                          // modified face
+                            mesh.faceOwner()[faceI],    // owner
+                            -1,                         // neighbour
+                            -1,                         // master point
+                            -1,                         // master edge
+                            faceI,                      // master face
+                            false,                      // face flip
+                            newPatchI,                  // patch for face
+                            zoneID,                     // zone for face
+                            zoneFlip                    // face flip in zone
+                        )
+                    );
+                }
+
+                nBaffled++;
+            }
         }
-    }
-    forAll(patches, patchI)
-    {
-        const polyPatch& pp = patches[patchI];
 
-        forAll(pp, i)
+        // Add the reversed face.
+        for (label faceI = 0; faceI < mesh.nInternalFaces(); faceI++)
         {
-            label faceI = pp.start()+i;
-
             if (facesToSplit.found(faceI))
             {
-                createBaffles
+                const face& f = mesh.faces()[faceI];
+                label zoneID = faceZones.whichZone(faceI);
+                bool zoneFlip = false;
+                if (zoneID >= 0)
+                {
+                    const faceZone& fZone = faceZones[zoneID];
+                    zoneFlip = fZone.flipMap()[fZone.whichFace(faceI)];
+                }
+                label nei = mesh.faceNeighbour()[faceI];
+
+                meshMod.setAction
                 (
-                    mesh,
-                    faceI,
-                    patchI,                     // oldPatchI,
-                    newPatches,
-                    doneFace,
-                    meshMod
+                    polyAddFace
+                    (
+                        f.reverseFace(),            // modified face
+                        nei,                        // owner
+                        -1,                         // neighbour
+                        -1,                         // masterPointID
+                        -1,                         // masterEdgeID
+                        faceI,                      // masterFaceID,
+                        true,                       // face flip
+                        newPatchI,                  // patch for face
+                        zoneID,                     // zone for face
+                        zoneFlip                    // face flip in zone
+                    )
                 );
+
                 nBaffled++;
             }
         }
+
+        // Modify any boundary faces
+        forAll(patches, patchI)
+        {
+            const polyPatch& pp = patches[patchI];
+
+            if (patches[newPatchI].coupled() && pp.coupled())
+            {
+                // Do not allow coupled faces to be moved to different coupled
+                // patches.
+            }
+            else
+            {
+                forAll(pp, i)
+                {
+                    label faceI = pp.start()+i;
+
+                    if (facesToSplit.found(faceI))
+                    {
+                        const face& f = mesh.faces()[faceI];
+                        label zoneID = faceZones.whichZone(faceI);
+                        bool zoneFlip = false;
+                        if (zoneID >= 0)
+                        {
+                            const faceZone& fZone = faceZones[zoneID];
+                            zoneFlip = fZone.flipMap()[fZone.whichFace(faceI)];
+                        }
+
+                        if (i == 0)
+                        {
+                            // First usage of face. Modify.
+                            meshMod.setAction
+                            (
+                                polyModifyFace
+                                (
+                                    f,                      // modified face
+                                    faceI,                  // label of face
+                                    mesh.faceOwner()[faceI],// owner
+                                    -1,                     // neighbour
+                                    false,                  // face flip
+                                    newPatchI,              // patch for face
+                                    false,                  // remove from zone
+                                    zoneID,                 // zone for face
+                                    zoneFlip                // face flip in zone
+                                )
+                            );
+                        }
+                        else
+                        {
+                            // Second or more usage of face. Add.
+                            meshMod.setAction
+                            (
+                                polyAddFace
+                                (
+                                    f,                      // modified face
+                                    mesh.faceOwner()[faceI],// owner
+                                    -1,                     // neighbour
+                                    -1,                     // master point
+                                    -1,                     // master edge
+                                    faceI,                  // master face
+                                    false,                  // face flip
+                                    newPatchI,              // patch for face
+                                    zoneID,                 // zone for face
+                                    zoneFlip                // face flip in zone
+                                )
+                            );
+                        }
+
+                        nBaffled++;
+                    }
+                }
+            }
+        }
     }
 
 
diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
index 26ee3e062a4b1ae9087b6a37b73aa4bb2bd60c76..644511564e3a976b974806dc2374175530eac203 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
+++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
@@ -37,6 +37,9 @@ Usage
     Write the cell distribution as a labelList for use with 'manual'
     decomposition method and as a volScalarField for post-processing.
 
+    @param -region regionName \n
+    Decompose named region. Does not check for existence of processor*.
+
     @param -copyUniform \n
     Copy any @a uniform directories too.
 
diff --git a/bin/foamTags b/bin/foamTags
index f51e06a0623ad79122ef72b61f3f40a2cb3296c3..e00795d8e68ea29dfbdb2b8010d1c3884298216b 100755
--- a/bin/foamTags
+++ b/bin/foamTags
@@ -42,7 +42,7 @@ fi
 cd $WM_PROJECT_DIR
 mkdir .tags 2>/dev/null
 
-#etagsCmd="etags --declarations -l c++ -o .tags/etags -"
+etagsCmd="etags --declarations -l c++ -o .tags/etags -"
 #etagsDefCmd="etags -l c++ -o .tags/etagsDef -"
 #etagsDecCmd="etags --declarations -l c++ -o .tags/etagsDec -"
 
@@ -52,10 +52,10 @@ etagsDecCmd="ectags -e --extra=+fq --file-scope=no --c-kinds=+p -o .tags/etagsDe
 
 ectagsDecCmd="ectags -o .tags/ectagsDec --file-scope=no --c-kinds=+p --excmd=n --extra=+fq --fields=+afiKmnsSzt -L -"
 
-find -H . \( -name "*.[HC]" -o -name lnInclude -prune -o -name Doxygen -prune \) | $etagsCmd
-find -H . \( -name "*.[HC]" -o -name lnInclude -prune -o -name Doxygen -prune \) | $etagsDefCmd
-find -H . \( -name "*.H" -o -name lnInclude -prune -o -name Doxygen -prune \) | $etagsDecCmd
-find -H . \( -name "*.H" -o -name lnInclude -prune -o -name Doxygen -prune \) | $ectagsDecCmd
+find -H $WM_PROJECT_DIR \( -name "*.[HC]" -o -name lnInclude -prune -o -name Doxygen -prune \) | $etagsCmd
+find -H $WM_PROJECT_DIR \( -name "*.[HC]" -o -name lnInclude -prune -o -name Doxygen -prune \) | $etagsDefCmd
+find -H $WM_PROJECT_DIR \( -name "*.H" -o -name lnInclude -prune -o -name Doxygen -prune \) | $etagsDecCmd
+find -H $WM_PROJECT_DIR \( -name "*.H" -o -name lnInclude -prune -o -name Doxygen -prune \) | $ectagsDecCmd
 
 gtags -i --gtagsconf bin/tools/gtagsrc .tags
 
diff --git a/src/OSspecific/Unix/signals/sigFpe.C b/src/OSspecific/Unix/signals/sigFpe.C
index 5376aa8a8cf1e8c2bccd467b6676a16968088d46..813364d366779395a04efd49558e37cefd227ba0 100644
--- a/src/OSspecific/Unix/signals/sigFpe.C
+++ b/src/OSspecific/Unix/signals/sigFpe.C
@@ -46,6 +46,7 @@ License
 
 #endif
 
+#include <stdint.h>
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -69,7 +70,7 @@ void* Foam::sigFpe::my_malloc_hook(size_t size, const void *caller)
     // initialize to signalling nan
 #   ifdef SP
 
-    const uint32_t sNAN = 0x7ff7fffflu; 
+    const uint32_t sNAN = 0x7ff7fffflu;
 
     int nScalars = size / sizeof(scalar);
 
@@ -82,7 +83,7 @@ void* Foam::sigFpe::my_malloc_hook(size_t size, const void *caller)
 
 #   else
 
-    const uint64_t sNAN = 0x7ff7ffffffffffffllu; 
+    const uint64_t sNAN = 0x7ff7ffffffffffffllu;
 
     int nScalars = size/sizeof(scalar);
 
@@ -115,7 +116,7 @@ void Foam::sigFpe::sigFpeHandler(int)
         (
             "Foam::sigSegv::sigFpeHandler()"
         )   << "Cannot reset SIGFPE trapping"
-            << abort(FatalError);    
+            << abort(FatalError);
     }
 
     // Update jobInfo file
@@ -153,7 +154,7 @@ Foam::sigFpe::~sigFpe()
             (
                 "Foam::sigFpe::~sigFpe()"
             )   << "Cannot reset SIGFPE trapping"
-                << abort(FatalError);    
+                << abort(FatalError);
         }
 
 #       endif
@@ -208,7 +209,7 @@ void Foam::sigFpe::set()
             (
                 "Foam::sigFpe::set()"
             )   << "Cannot set SIGFPE trapping"
-                << abort(FatalError);    
+                << abort(FatalError);
         }
 
 
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/Pstream.C b/src/OpenFOAM/db/IOstreams/Pstreams/Pstream.C
index 531b15b8fcb0f479bac784281541bfcd34bda686..bdb31516bac60b06d5e0cf97c183f23b8b018374 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/Pstream.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/Pstream.C
@@ -230,7 +230,7 @@ Foam::List<Foam::Pstream::commsStruct> Foam::Pstream::treeCommunication_(0);
 // in accuracy
 bool Foam::Pstream::floatTransfer
 (
-    debug::optimisationSwitch("floatTransfer", 1)
+    debug::optimisationSwitch("floatTransfer", 0)
 );
 
 // Number of processors at which the reduce algorithm changes from linear to
diff --git a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C
index 13d5f52e9e0eb0fc2bd72cc3c47c5945393f62e6..3534519ca7187dca572c9efd8eee8a7fc293370b 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C
@@ -790,7 +790,7 @@ bool Foam::primitiveMesh::checkPoints
     {
         if (debug || report)
         {
-            Info<< " ***Unsed points found in the mesh, "
+            Info<< " ***Unused points found in the mesh, "
                    "number unused by faces: " << nFaceErrors
                 << " number unused by cells: " << nCellErrors
                 << endl;
diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C
index ee6cea3e121be5c1a516d7424d82107fa9c0bbee..01ab952c165a5997df49085828e556fb41d6d209 100644
--- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C
+++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C
@@ -2804,6 +2804,22 @@ void Foam::autoLayerDriver::addLayers
             << "Layer addition iteration " << iteration << nl
             << "--------------------------" << endl;
 
+
+        // Unset the extrusion at the pp.
+        const dictionary& meshQualityDict =
+        (
+            iteration < layerParams.nRelaxedIter()
+          ? motionDict
+          : motionDict.subDict("relaxed")
+        );
+
+        if (iteration >= layerParams.nRelaxedIter())
+        {
+            Info<< "Switched to relaxed meshQuality constraints." << endl;
+        }
+
+
+
         // Make sure displacement is equal on both sides of coupled patches.
         syncPatchDisplacement
         (
@@ -2845,6 +2861,7 @@ void Foam::autoLayerDriver::addLayers
             shrinkMeshMedialDistance
             (
                 meshMover,
+                meshQualityDict,
 
                 layerParams.nSmoothThickness(),
                 layerParams.maxThicknessToMedialRatio(),
@@ -3044,19 +3061,6 @@ void Foam::autoLayerDriver::addLayers
             layerFacesSet.write();
         }
 
-        // Unset the extrusion at the pp.
-        const dictionary& meshQualityDict =
-        (
-            iteration < layerParams.nRelaxedIter()
-          ? motionDict
-          : motionDict.subDict("relaxed")
-        );
-
-        if (iteration >= layerParams.nRelaxedIter())
-        {
-            Info<< "Switched to relaxed meshQuality constraints." << endl;
-        }
-
 
         label nTotChanged = checkAndUnmark
         (
diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H
index 6cdec2004b68cbe8206b3e71c0dabc7387f0cd1d..164fd88ce04e5b06c33ef1c48d8745ea34a8dcc0 100644
--- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H
+++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H
@@ -473,6 +473,7 @@ class autoLayerDriver
                 void shrinkMeshMedialDistance
                 (
                     motionSmoother& meshMover,
+                    const dictionary& meshQualityDict,
                     const label nSmoothThickness,
                     const scalar maxThicknessToMedialRatio,
                     const label nAllowableErrors,
diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C
index 615978a308a973f611bf8455a822a81c57cbc392..cc88231b745637041d677b73ae6b6c1d92167b63 100644
--- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C
+++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C
@@ -792,7 +792,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo
             wallInfo,
             pointWallDist,
             edgeWallDist,
-            mesh.nPoints()  // max iterations
+            mesh.globalData().nTotalPoints()    // max iterations
         );
     }
 
@@ -897,7 +897,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo
 
             pointMedialDist,
             edgeMedialDist,
-            mesh.nPoints()  // max iterations
+            mesh.globalData().nTotalPoints()    // max iterations
         );
 
         // Extract medial axis distance as pointScalarField
@@ -953,6 +953,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo
 void Foam::autoLayerDriver::shrinkMeshMedialDistance
 (
     motionSmoother& meshMover,
+    const dictionary& meshQualityDict,
     const label nSmoothThickness,
     const scalar maxThicknessToMedialRatio,
     const label nAllowableErrors,
@@ -1103,7 +1104,7 @@ void Foam::autoLayerDriver::shrinkMeshMedialDistance
             wallInfo,
             pointWallDist,
             edgeWallDist,
-            mesh.nPoints()  // max iterations
+            mesh.globalData().nTotalPoints()    // max iterations
         );
     }
 
@@ -1138,7 +1139,18 @@ void Foam::autoLayerDriver::shrinkMeshMedialDistance
             oldErrorReduction = meshMover.setErrorReduction(0.0);
         }
 
-        if (meshMover.scaleMesh(checkFaces, true, nAllowableErrors))
+        if
+        (
+            meshMover.scaleMesh
+            (
+                checkFaces,
+                List<labelPair>(0),
+                meshMover.paramDict(),
+                meshQualityDict,
+                true,
+                nAllowableErrors
+            )
+        )
         {
             Info<< "shrinkMeshMedialDistance : Successfully moved mesh" << endl;
             break;
diff --git a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C
index e154576ad947a3368df3adbeb7945a43d76b08d4..3904f960737a3e9a84b8e4366ca71b49bfa31f4c 100644
--- a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C
+++ b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C
@@ -1522,30 +1522,6 @@ void Foam::meshRefinement::baffleAndSplitMesh
 
         if (debug)
         {
-            //- Note: commented out since not properly parallel yet.
-            //// Dump all these faces to a faceSet.
-            //faceSet problemGeom(mesh_, "problemFacesGeom", 100);
-            //
-            //const labelList facePatchGeom
-            //(
-            //    markFacesOnProblemCellsGeometric
-            //    (
-            //        motionDict,
-            //        globalToPatch
-            //    )
-            //);
-            //forAll(facePatchGeom, faceI)
-            //{
-            //    if (facePatchGeom[faceI] != -1)
-            //    {
-            //        problemGeom.insert(faceI);
-            //    }
-            //}
-            //Pout<< "Dumping " << problemGeom.size()
-            //    << " problem faces to " << problemGeom.objectPath() << endl;
-            //problemGeom.write();
-
-
             faceSet problemTopo(mesh_, "problemFacesTopo", 100);
 
             const labelList facePatchTopo
diff --git a/src/decompositionMethods/decompositionMethods/scotchDecomp/scotchDecomp.C b/src/decompositionMethods/decompositionMethods/scotchDecomp/scotchDecomp.C
index 2746d8f4e9b86b3fb17bb178dfe6c61436f2cdad..854172d5e15c96702f471d1c85f9ec9cba1d6e91 100644
--- a/src/decompositionMethods/decompositionMethods/scotchDecomp/scotchDecomp.C
+++ b/src/decompositionMethods/decompositionMethods/scotchDecomp/scotchDecomp.C
@@ -22,7 +22,40 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-S       Strat=b{job=t,map=t,poli=S,sep=(m{asc=b{bnd=d{pass=40,dif=1,rem=1}f{move=80,pass=-1,bal=0.005},org=f{move=80,pass=-1,bal=0.005},width=3},low=h{pass=10}f{move=80,pass=-1,bal=0.0005},type=h,vert=80,rat=0.8}|m{asc=b{bnd=d{pass=40,dif=1,rem=1}f{move=80,pass=-1,bal=0.005},org=f{move=80,pass=-1,bal=0.005},width=3},low=h{pass=10}f{move=80,pass=-1,bal=0.0005},type=h,vert=80,rat=0.8})}
+    Default strategy:
+        Strat=b
+        {
+            job=t,
+            map=t,
+            poli=S,
+            sep=
+            (
+                m
+                {
+                    asc=b
+                    {
+                        bnd=d{pass=40,dif=1,rem=1}f{move=80,pass=-1,bal=0.005},
+                        org=f{move=80,pass=-1,bal=0.005},width=3
+                    },
+                    low=h{pass=10}f{move=80,pass=-1,bal=0.0005},
+                    type=h,
+                    vert=80,
+                    rat=0.8
+                }
+              | m
+                {
+                    asc=b
+                    {
+                        bnd=d{pass=40,dif=1,rem=1}f{move=80,pass=-1,bal=0.005},
+                        org=f{move=80,pass=-1,bal=0.005},
+                        width=3},
+                        low=h{pass=10}f{move=80,pass=-1,bal=0.0005},
+                        type=h,
+                        vert=80,
+                        rat=0.8
+                }
+            )
+        }
 \*---------------------------------------------------------------------------*/
 
 #include "scotchDecomp.H"
@@ -31,6 +64,7 @@ S       Strat=b{job=t,map=t,poli=S,sep=(m{asc=b{bnd=d{pass=40,dif=1,rem=1}f{move
 #include "IFstream.H"
 #include "Time.H"
 #include "cyclicPolyPatch.H"
+#include "OFstream.H"
 
 extern "C"
 {
@@ -113,46 +147,102 @@ Foam::label Foam::scotchDecomp::decompose
     check(SCOTCH_graphCheck(&grafdat), "SCOTCH_graphCheck");
 
 
+    // Dump graph
+    if (decompositionDict_.found("scotchCoeffs"))
+    {
+        const dictionary& scotchCoeffs =
+            decompositionDict_.subDict("scotchCoeffs");
 
-    //// Architecture
-    //// ~~~~~~~~~~~~
-    //// (fully connected network topology since using switch)
-    //
-    //SCOTCH_Arch archdat;
-    //check(SCOTCH_archInit(&archdat), "SCOTCH_archInit");
-    //check
-    //(
-    //    // SCOTCH_archCmpltw for weighted.
-    //    SCOTCH_archCmplt(&archdat, nProcessors_),
-    //    "SCOTCH_archCmplt"
-    //);
+        Switch writeGraph(scotchCoeffs.lookup("writeGraph"));
 
+        if (writeGraph)
+        {
+            OFstream str(mesh_.time().path() / mesh_.name() + ".grf");
+
+            Info<< "Dumping Scotch graph file to " << str.name() << endl
+                << "Use this in combination with gpart." << endl;
+
+            label version = 0;
+            str << version << nl;
+            // Numer of vertices
+            str << xadj.size()-1 << ' ' << adjncy.size() << nl;
+            // Numbering starts from 0
+            label baseval = 0;
+            // Has weights?
+            label hasEdgeWeights = 0;
+            label hasVertexWeights = 0;
+            label numericflag = 10*hasEdgeWeights+hasVertexWeights;
+            str << baseval << ' ' << numericflag << nl;
+            for (label cellI = 0; cellI < xadj.size()-1; cellI++)
+            {
+                label start = xadj[cellI];
+                label end = xadj[cellI+1];
+                str << end-start;
+
+                for (label i = start; i < end; i++)
+                {
+                    str << ' ' << adjncy[i];
+                }
+                str << nl;
+            }
+        }
+    }
 
 
+    // Architecture
+    // ~~~~~~~~~~~~
+    // (fully connected network topology since using switch)
+
+    SCOTCH_Arch archdat;
+    check(SCOTCH_archInit(&archdat), "SCOTCH_archInit");
+    check
+    (
+        // SCOTCH_archCmpltw for weighted.
+        SCOTCH_archCmplt(&archdat, nProcessors_),
+        "SCOTCH_archCmplt"
+    );
+
 
     //SCOTCH_Mapping mapdat;
     //SCOTCH_graphMapInit(&grafdat, &mapdat, &archdat, NULL);
     //SCOTCH_graphMapCompute(&grafdat, &mapdat, &stradat); /* Perform mapping */
+    //SCOTCH_graphMapExit(&grafdat, &mapdat);
 
-
+    
     finalDecomp.setSize(xadj.size()-1);
+    finalDecomp = 0;
     check
     (
-        SCOTCH_graphPart
+        SCOTCH_graphMap
         (
             &grafdat,
-            nProcessors_,       // partnbr
+            &archdat,
             &stradat,           // const SCOTCH_Strat * 
             finalDecomp.begin() // parttab
         ),
-        "SCOTCH_graphPart"
+        "SCOTCH_graphMap"
     );
 
+
+    //finalDecomp.setSize(xadj.size()-1);
+    //check
+    //(
+    //    SCOTCH_graphPart
+    //    (
+    //        &grafdat,
+    //        nProcessors_,       // partnbr
+    //        &stradat,           // const SCOTCH_Strat * 
+    //        finalDecomp.begin() // parttab
+    //    ),
+    //    "SCOTCH_graphPart"
+    //);
+
     // Release storage for graph
     SCOTCH_graphExit(&grafdat);
+    // Release storage for strategy
     SCOTCH_stratExit(&stradat);
-    //// Release storage for network topology
-    //SCOTCH_archExit(&archdat);
+    // Release storage for network topology
+    SCOTCH_archExit(&archdat);
 
     return 0;
 }
diff --git a/src/dynamicMesh/motionSmoother/motionSmoother.C b/src/dynamicMesh/motionSmoother/motionSmoother.C
index 4f40827f4b3a8030217e79098e6716f8db96e018..d780ec79dde3dc9d33c007b0a3ddc73271d72b69 100644
--- a/src/dynamicMesh/motionSmoother/motionSmoother.C
+++ b/src/dynamicMesh/motionSmoother/motionSmoother.C
@@ -502,6 +502,12 @@ const Foam::labelList& Foam::motionSmoother::adaptPatchIDs() const
 }
 
 
+const Foam::dictionary& Foam::motionSmoother::paramDict() const
+{
+    return paramDict_;
+}
+
+
 Foam::pointVectorField& Foam::motionSmoother::displacement()
 {
     return displacement_;
diff --git a/src/dynamicMesh/motionSmoother/motionSmoother.H b/src/dynamicMesh/motionSmoother/motionSmoother.H
index e4aeac6f50756ec9a5f27da2602aa80ddad26036..3d853e476d3df0f757339ef8de1e3fee44c1ca66 100644
--- a/src/dynamicMesh/motionSmoother/motionSmoother.H
+++ b/src/dynamicMesh/motionSmoother/motionSmoother.H
@@ -327,6 +327,8 @@ public:
             //- Patch labels that are being adapted
             const labelList& adaptPatchIDs() const;
 
+            const dictionary& paramDict() const;
+
             //- Reference to displacement field
             pointVectorField& displacement();
 
diff --git a/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C b/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C
index 192688995530847e59e1c2084eae7405dd200b15..d815b809a3d316eb170e2f388616a4ffff69aec3 100644
--- a/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C
+++ b/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C
@@ -90,10 +90,10 @@ void Foam::setRefCell
                      "    bool\n"
                      ")",
                     dict
-                )
-                  << "Unable to set reference cell for field " << field.name()
-                  << nl << "    Reference point " << refPointName
-                  << " found on multiple domains" << nl << exit(FatalIOError);
+                )   << "Unable to set reference cell for field " << field.name()
+                    << nl << "    Reference point " << refPointName
+                    << " found on " << sumHasRef << " domains (should be one)"
+                    << nl << exit(FatalIOError);
             }
         }
         else
@@ -108,10 +108,10 @@ void Foam::setRefCell
                  "    bool\n"
                  ")",
                 dict
-            )
-              << "Unable to set reference cell for field" << field.name() << nl
-              << "    Please supply either " << refCellName
-              << " or " << refPointName << nl << exit(FatalIOError);
+            )   << "Unable to set reference cell for field" << field.name()
+                << nl
+                << "    Please supply either " << refCellName
+                << " or " << refPointName << nl << exit(FatalIOError);
         }
 
         refValue = readScalar(dict.lookup(refValueName));
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C
index 28a3c41e64d68edde533776ab6cb4317eacef0b0..c1ea44c1e8947da96daa1af136fbd2f32054426d 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C
@@ -56,7 +56,7 @@ Foam::FitData<Form, extendedStencil, Polynomial>::FitData
     // Check input
     if (linearLimitFactor <= SMALL || linearLimitFactor > 3)
     {
-        FatalErrorIn("FitData<Polynomial>::FitData")
+        FatalErrorIn("FitData<Polynomial>::FitData(..)")
             << "linearLimitFactor requested = " << linearLimitFactor
             << " should be between zero and 3"
             << exit(FatalError);
@@ -264,8 +264,7 @@ void Foam::FitData<FitDataType, ExtendedStencil, Polynomial>::calcFit
         // {
             WarningIn
             (
-                "FitData<Polynomial>::calcFit"
-                "(const List<point>& C, const label facei"
+                "FitData<Polynomial>::calcFit(..)"
             )   << "Could not fit face " << facei
                 << "    Weights = " << coeffsi
                 << ", reverting to linear." << nl
diff --git a/src/finiteVolume/interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C b/src/finiteVolume/interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C
index f9ebc6b8ce52a38e34370eea7724e60b06790a6f..16cd028f726392e5723ec62abf75f2903f18ce50 100644
--- a/src/finiteVolume/interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C
+++ b/src/finiteVolume/interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C
@@ -213,13 +213,12 @@ void pointPatchInterpolation::makePatchPatchWeights()
 
                 if (!isA<emptyFvPatch>(bm[patchi]) && !bm[patchi].coupled())
                 {
-                    pw[nFacesAroundPoint] =
-                        1.0/mag
-                        (
-                            pointLoc
-                          - centres.boundaryField()[patchi]
-                                [bm[patchi].patch().whichFace(curFaces[facei])]
-                        );
+                    vector d =
+                        pointLoc
+                      - centres.boundaryField()[patchi]
+                            [bm[patchi].patch().whichFace(curFaces[facei])];
+
+                    pw[nFacesAroundPoint] = 1.0/(mag(d)+VSMALL);
 
                     nFacesAroundPoint++;
                 }
diff --git a/src/lagrangian/dieselSpray/spraySubModels/collisionModel/trajectoryModel/trajectoryCM.H b/src/lagrangian/dieselSpray/spraySubModels/collisionModel/trajectoryModel/trajectoryCM.H
index fd01d4390d9deada238edd3995992afd599e4640..a7cca2b7e36c99ceff987257c4c3eb1c4e8faccf 100644
--- a/src/lagrangian/dieselSpray/spraySubModels/collisionModel/trajectoryModel/trajectoryCM.H
+++ b/src/lagrangian/dieselSpray/spraySubModels/collisionModel/trajectoryModel/trajectoryCM.H
@@ -8,7 +8,7 @@ scalar magVRel = mag(vRel);
 vector p = p2().position() - p1().position();
 scalar dist = mag(p);
 
-scalar vAlign = vRel & (p/dist);
+scalar vAlign = vRel & (p/(dist+SMALL));
 
 if (vAlign > 0)
 {
diff --git a/src/lagrangian/dsmc/submodels/InflowBoundaryModel/FreeStream/FreeStream.C b/src/lagrangian/dsmc/submodels/InflowBoundaryModel/FreeStream/FreeStream.C
index cd18d9064d3dfbe6d5126f6621c96d8af32a5df7..9d791a1ed3421049f77fd6d4fa6fcc4cf29be9c8 100644
--- a/src/lagrangian/dsmc/submodels/InflowBoundaryModel/FreeStream/FreeStream.C
+++ b/src/lagrangian/dsmc/submodels/InflowBoundaryModel/FreeStream/FreeStream.C
@@ -367,6 +367,8 @@ void Foam::FreeStream<CloudType>::inflow()
                             rndGen.GaussNormal()*t1
                           + rndGen.GaussNormal()*t2
                         )
+                      + (t1 & faceVelocity)*t1
+                      + (t2 & faceVelocity)*t2
                       + mostProbableSpeed*uNormal*n;
 
                     scalar Ei = cloud.equipartitionInternalEnergy
diff --git a/src/meshTools/cellClassification/cellClassification.C b/src/meshTools/cellClassification/cellClassification.C
index 9adf4c6526e9929bcbfdf27ed79a158715e0bb92..f54876c9c5071e2319e4168272b66081f0021d8e 100644
--- a/src/meshTools/cellClassification/cellClassification.C
+++ b/src/meshTools/cellClassification/cellClassification.C
@@ -323,10 +323,10 @@ void Foam::cellClassification::markCells
     MeshWave<cellInfo> cellInfoCalc
     (
         mesh_,
-        changedFaces,       // Labels of changed faces
-        changedFacesInfo,   // Information on changed faces
-        cellInfoList,       // Information on all cells
-        mesh_.nCells()      // max iterations
+        changedFaces,                       // Labels of changed faces
+        changedFacesInfo,                   // Information on changed faces
+        cellInfoList,                       // Information on all cells
+        mesh_.globalData().nTotalCells()    // max iterations
     );
 
     // Get information out of cellInfoList
diff --git a/src/meshTools/cellDist/patchWave/patchDataWave.C b/src/meshTools/cellDist/patchWave/patchDataWave.C
index 4bd42721ba521a88730f7d31c0ab0613636b838c..b22a110be625c0a644a7cb0390cd2bbe44c62887 100644
--- a/src/meshTools/cellDist/patchWave/patchDataWave.C
+++ b/src/meshTools/cellDist/patchWave/patchDataWave.C
@@ -226,7 +226,7 @@ void Foam::patchDataWave<TransferType>::correct()
         mesh(),
         changedFaces,
         faceDist,
-        mesh().nCells() // max iterations
+        mesh().globalData().nTotalCells() // max iterations
     );
 
 
diff --git a/src/meshTools/cellDist/patchWave/patchWave.C b/src/meshTools/cellDist/patchWave/patchWave.C
index 7cb37059258ec7b7ad8ff489c9b471225a644932..f48d3835598b730a0b441d8a0a040602c1d19b9e 100644
--- a/src/meshTools/cellDist/patchWave/patchWave.C
+++ b/src/meshTools/cellDist/patchWave/patchWave.C
@@ -28,7 +28,7 @@ License
 #include "polyMesh.H"
 #include "wallPoint.H"
 #include "MeshWave.H"
-
+#include "globalMeshData.H"
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
@@ -187,7 +187,7 @@ void Foam::patchWave::correct()
         mesh(),
         changedFaces,
         faceDist,
-        mesh().nCells() // max iterations
+        mesh().globalData().nTotalCells()   // max iterations
     );
 
 
diff --git a/src/meshTools/triSurface/triangleFuncs/triangleFuncs.C b/src/meshTools/triSurface/triangleFuncs/triangleFuncs.C
index 1bef529b0325f6242c8ce98574eafe9b4b4c398b..dab51b47148cb3f83a7aac2bbffd8009800f53b6 100644
--- a/src/meshTools/triSurface/triangleFuncs/triangleFuncs.C
+++ b/src/meshTools/triSurface/triangleFuncs/triangleFuncs.C
@@ -132,7 +132,7 @@ bool Foam::triangleFuncs::intersectAxesBundle
         scalar beta = 0;
         bool inter = false;
 
-        if (Foam::mag(u1) < SMALL)
+        if (Foam::mag(u1) < ROOTVSMALL)
         {
             beta = u0/u2;
             if ((beta >= 0) && (beta <= 1))
diff --git a/src/thermophysicalModels/radiation/Make/options b/src/thermophysicalModels/radiation/Make/options
index 98956f2b6dbcf83ff7d0dcd2b20a2c9783c225af..2e150f2bf995816237915d12a8ce6b0cf4633fc2 100644
--- a/src/thermophysicalModels/radiation/Make/options
+++ b/src/thermophysicalModels/radiation/Make/options
@@ -1,9 +1,8 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
-    -I$(LIB_SRC)/OpenFOAM/lnInclude \
-    -I radiationModel/fvDOM/interpolationLookUpTable
+    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude
 
 LIB_LIBS = \
-    -lfiniteVolume
+    -lfiniteVolume \
+    -lbasicThermophysicalModels \
+    -lspecie
diff --git a/src/thermophysicalModels/radiation/radiationModel/fvDOM/fvDOM/fvDOM.C b/src/thermophysicalModels/radiation/radiationModel/fvDOM/fvDOM/fvDOM.C
index f548d0046a4c113f47fa1c069bd6fb3bbe3c4b9a..296b99ff9e93c1faab2f43c463a1d4219f503663 100644
--- a/src/thermophysicalModels/radiation/radiationModel/fvDOM/fvDOM/fvDOM.C
+++ b/src/thermophysicalModels/radiation/radiationModel/fvDOM/fvDOM/fvDOM.C
@@ -250,6 +250,15 @@ Foam::radiation::fvDOM::fvDOM(const volScalarField& T)
             )
         );
     }
+
+    Info<< "fvDOM : Allocated " << IRay_.size()
+        << " rays with average orientation:" << nl;
+    forAll (IRay_, i)
+    {
+        Info<< '\t' << IRay_[i].I().name()
+            << '\t' << IRay_[i].dAve() << nl;
+    }
+    Info<< endl;
 }
 
 
@@ -359,7 +368,8 @@ void Foam::radiation::fvDOM::updateG()
     {
         IRay_[rayI].addIntensity();
         G_ += IRay_[rayI].I()*IRay_[rayI].omega();
-        Qr_ += IRay_[rayI].Qr();
+        //Qr_ += IRay_[rayI].Qr();
+        Qr_.boundaryField() += IRay_[rayI].Qr().boundaryField();
     }
 }
 
diff --git a/src/thermophysicalModels/radiation/radiationModel/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C b/src/thermophysicalModels/radiation/radiationModel/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
index 6af99c86a46957cbf4e7bd7c7c9c886dec90a4c7..7441b900d695a91f3c6e81617d3d8f342ce53c83 100644
--- a/src/thermophysicalModels/radiation/radiationModel/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
+++ b/src/thermophysicalModels/radiation/radiationModel/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
@@ -187,7 +187,8 @@ Foam::radiation::radiativeIntensityRay::~radiativeIntensityRay()
 Foam::scalar Foam::radiation::radiativeIntensityRay::correct()
 {
     // reset boundary heat flux to zero
-    Qr_ = dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0);
+    //Qr_ = dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0);
+    Qr_.boundaryField() = 0.0;
 
     scalar maxResidual = -GREAT;
 
diff --git a/src/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.C b/src/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.C
index 7b836c60ee76c303e4da826a1314e80ed37e3246..bea05e99733771e7afcdcd06217eb60192f0fec5 100644
--- a/src/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.C
+++ b/src/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.C
@@ -138,7 +138,7 @@ void smoothDelta::calcDelta()
         changedFacesInfo,
         faceDeltaData,
         cellDeltaData,
-        mesh_.nCells()  // max iterations
+        mesh_.globalData().nTotalCells()    // max iterations
     );
 
     forAll(delta_, cellI)
diff --git a/src/turbulenceModels/compressible/LES/Make/files b/src/turbulenceModels/compressible/LES/Make/files
index dc31f55cae3e86d6e502de718939006c26372208..06e7b76d4512f94bb16c8c2fca3ca50270fd4ebe 100644
--- a/src/turbulenceModels/compressible/LES/Make/files
+++ b/src/turbulenceModels/compressible/LES/Make/files
@@ -14,6 +14,6 @@ SpalartAllmaras/SpalartAllmaras.C
 wallFunctions=derivedFvPatchFields/wallFunctions
 
 muSgsWallFunctions=$(wallFunctions)/muSgsWallFunctions
-$(muSgsWallFunctions)/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.C
+$(muSgsWallFunctions)/muSgsWallFunction/muSgsWallFunctionFvPatchScalarField.C
 
 LIB = $(FOAM_LIBBIN)/libcompressibleLESModels
diff --git a/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsWallFunction/muSgsWallFunctionFvPatchScalarField.C
similarity index 82%
rename from src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.C
rename to src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsWallFunction/muSgsWallFunctionFvPatchScalarField.C
index bb489c309150386f7050e668ea119e9280674ae9..987cd21f29b684b0d86240bd513ca693599136ae 100644
--- a/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsWallFunction/muSgsWallFunctionFvPatchScalarField.C
@@ -24,7 +24,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "muSgsSpalartAllmarasWallFunctionFvPatchScalarField.H"
+#include "muSgsWallFunctionFvPatchScalarField.H"
 #include "LESModel.H"
 #include "fvPatchFieldMapper.H"
 #include "volFields.H"
@@ -41,8 +41,8 @@ namespace LESModels
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-muSgsSpalartAllmarasWallFunctionFvPatchScalarField::
-muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+muSgsWallFunctionFvPatchScalarField::
+muSgsWallFunctionFvPatchScalarField
 (
     const fvPatch& p,
     const DimensionedField<scalar, volMesh>& iF
@@ -52,10 +52,10 @@ muSgsSpalartAllmarasWallFunctionFvPatchScalarField
 {}
 
 
-muSgsSpalartAllmarasWallFunctionFvPatchScalarField::
-muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+muSgsWallFunctionFvPatchScalarField::
+muSgsWallFunctionFvPatchScalarField
 (
-    const muSgsSpalartAllmarasWallFunctionFvPatchScalarField& ptf,
+    const muSgsWallFunctionFvPatchScalarField& ptf,
     const fvPatch& p,
     const DimensionedField<scalar, volMesh>& iF,
     const fvPatchFieldMapper& mapper
@@ -65,8 +65,8 @@ muSgsSpalartAllmarasWallFunctionFvPatchScalarField
 {}
 
 
-muSgsSpalartAllmarasWallFunctionFvPatchScalarField::
-muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+muSgsWallFunctionFvPatchScalarField::
+muSgsWallFunctionFvPatchScalarField
 (
     const fvPatch& p,
     const DimensionedField<scalar, volMesh>& iF,
@@ -77,8 +77,8 @@ muSgsSpalartAllmarasWallFunctionFvPatchScalarField
 {}
 
 
-muSgsSpalartAllmarasWallFunctionFvPatchScalarField::
-muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+muSgsWallFunctionFvPatchScalarField::
+muSgsWallFunctionFvPatchScalarField
 (
     const fvPatch& p,
     const DimensionedField<scalar, volMesh>& iF,
@@ -89,20 +89,20 @@ muSgsSpalartAllmarasWallFunctionFvPatchScalarField
 {}
 
 
-muSgsSpalartAllmarasWallFunctionFvPatchScalarField::
-muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+muSgsWallFunctionFvPatchScalarField::
+muSgsWallFunctionFvPatchScalarField
 (
-    const muSgsSpalartAllmarasWallFunctionFvPatchScalarField& tppsf
+    const muSgsWallFunctionFvPatchScalarField& tppsf
 )
 :
     fixedValueFvPatchScalarField(tppsf)
 {}
 
 
-muSgsSpalartAllmarasWallFunctionFvPatchScalarField::
-muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+muSgsWallFunctionFvPatchScalarField::
+muSgsWallFunctionFvPatchScalarField
 (
-    const muSgsSpalartAllmarasWallFunctionFvPatchScalarField& tppsf,
+    const muSgsWallFunctionFvPatchScalarField& tppsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
@@ -112,7 +112,7 @@ muSgsSpalartAllmarasWallFunctionFvPatchScalarField
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-void muSgsSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
+void muSgsWallFunctionFvPatchScalarField::evaluate
 (
     const Pstream::commsTypes
 )
@@ -193,7 +193,7 @@ void muSgsSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
 makePatchTypeField
 (
     fvPatchScalarField,
-    muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+    muSgsWallFunctionFvPatchScalarField
 );
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsWallFunction/muSgsWallFunctionFvPatchScalarField.H
similarity index 76%
rename from src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.H
rename to src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsWallFunction/muSgsWallFunctionFvPatchScalarField.H
index f3c6e9ecc96989bce4902d6c363e62b602d154f6..916685fd7c315e212721bb130d6c76006cf1a224 100644
--- a/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsWallFunction/muSgsWallFunctionFvPatchScalarField.H
@@ -24,18 +24,18 @@ License
 
 Class
     Foam::compressible::LESModels::
-        muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        muSgsWallFunctionFvPatchScalarField
 
 Description
     Spalart Allmaas wall function boundary condition for compressible flows
 
 SourceFiles
-    muSgsSpalartAllmarasWallFunctionFvPatchScalarField.C
+    muSgsWallFunctionFvPatchScalarField.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef muSgsSpalartAllmarasWallFunctionFvPatchScalarField_H
-#define muSgsSpalartAllmarasWallFunctionFvPatchScalarField_H
+#ifndef muSgsWallFunctionFvPatchScalarField_H
+#define muSgsWallFunctionFvPatchScalarField_H
 
 #include "fixedValueFvPatchFields.H"
 
@@ -49,10 +49,10 @@ namespace LESModels
 {
 
 /*---------------------------------------------------------------------------*\
-     Class muSgsSpalartAllmarasWallFunctionFvPatchScalarField Declaration
+     Class muSgsWallFunctionFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
-class muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+class muSgsWallFunctionFvPatchScalarField
 :
     public fixedValueFvPatchScalarField
 {
@@ -62,20 +62,20 @@ class muSgsSpalartAllmarasWallFunctionFvPatchScalarField
 public:
 
     //- Runtime type information
-    TypeName("muSgsSpalartAllmarasWallFunction");
+    TypeName("muSgsWallFunction");
 
 
     // Constructors
 
         //- Construct from patch and internal field
-        muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        muSgsWallFunctionFvPatchScalarField
         (
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&
         );
 
         //- Construct from patch, internal field and Istream
-        muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        muSgsWallFunctionFvPatchScalarField
         (
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&,
@@ -83,7 +83,7 @@ public:
         );
 
         //- Construct from patch, internal field and dictionary
-        muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        muSgsWallFunctionFvPatchScalarField
         (
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&,
@@ -91,20 +91,20 @@ public:
         );
 
         //- Construct by mapping given
-        //  muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        //  muSgsWallFunctionFvPatchScalarField
         //  onto a new patch
-        muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        muSgsWallFunctionFvPatchScalarField
         (
-            const muSgsSpalartAllmarasWallFunctionFvPatchScalarField&,
+            const muSgsWallFunctionFvPatchScalarField&,
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&,
             const fvPatchFieldMapper&
         );
 
         //- Construct as copy
-        muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        muSgsWallFunctionFvPatchScalarField
         (
-            const muSgsSpalartAllmarasWallFunctionFvPatchScalarField&
+            const muSgsWallFunctionFvPatchScalarField&
         );
 
         //- Construct and return a clone
@@ -112,14 +112,14 @@ public:
         {
             return tmp<fvPatchScalarField>
             (
-                new muSgsSpalartAllmarasWallFunctionFvPatchScalarField(*this)
+                new muSgsWallFunctionFvPatchScalarField(*this)
             );
         }
 
         //- Construct as copy setting internal field reference
-        muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        muSgsWallFunctionFvPatchScalarField
         (
-            const muSgsSpalartAllmarasWallFunctionFvPatchScalarField&,
+            const muSgsWallFunctionFvPatchScalarField&,
             const DimensionedField<scalar, volMesh>&
         );
 
@@ -131,7 +131,7 @@ public:
         {
             return tmp<fvPatchScalarField>
             (
-                new muSgsSpalartAllmarasWallFunctionFvPatchScalarField
+                new muSgsWallFunctionFvPatchScalarField
                 (
                     *this,
                     iF
diff --git a/src/turbulenceModels/incompressible/LES/Make/files b/src/turbulenceModels/incompressible/LES/Make/files
index bd97e2c1ecd3b1cb1f07acb1451924dd2d46073e..186324fde3ea097a4014d5d7ebf06085fd88f199 100644
--- a/src/turbulenceModels/incompressible/LES/Make/files
+++ b/src/turbulenceModels/incompressible/LES/Make/files
@@ -32,7 +32,7 @@ kOmegaSSTSAS/kOmegaSSTSAS.C
 wallFunctions=derivedFvPatchFields/wallFunctions
 
 nuSgsWallFunctions=$(wallFunctions)/nuSgsWallFunctions
-$(nuSgsWallFunctions)/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C
+$(nuSgsWallFunctions)/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.C
 
 
 LIB = $(FOAM_LIBBIN)/libincompressibleLESModels
diff --git a/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.C
similarity index 82%
rename from src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C
rename to src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.C
index f42afb995dcbf9aecf7afd08b9250a0ee9c9917b..e70fd66bf93214f44c123ad6e2e9c52b8d8650b7 100644
--- a/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.C
@@ -24,7 +24,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.H"
+#include "nuSgsWallFunctionFvPatchScalarField.H"
 #include "LESModel.H"
 #include "fvPatchFieldMapper.H"
 #include "volFields.H"
@@ -41,8 +41,8 @@ namespace LESModels
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-nuSgsSpalartAllmarasWallFunctionFvPatchScalarField::
-nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+nuSgsWallFunctionFvPatchScalarField::
+nuSgsWallFunctionFvPatchScalarField
 (
     const fvPatch& p,
     const DimensionedField<scalar, volMesh>& iF
@@ -52,10 +52,10 @@ nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
 {}
 
 
-nuSgsSpalartAllmarasWallFunctionFvPatchScalarField::
-nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+nuSgsWallFunctionFvPatchScalarField::
+nuSgsWallFunctionFvPatchScalarField
 (
-    const nuSgsSpalartAllmarasWallFunctionFvPatchScalarField& ptf,
+    const nuSgsWallFunctionFvPatchScalarField& ptf,
     const fvPatch& p,
     const DimensionedField<scalar, volMesh>& iF,
     const fvPatchFieldMapper& mapper
@@ -65,8 +65,8 @@ nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
 {}
 
 
-nuSgsSpalartAllmarasWallFunctionFvPatchScalarField::
-nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+nuSgsWallFunctionFvPatchScalarField::
+nuSgsWallFunctionFvPatchScalarField
 (
     const fvPatch& p,
     const DimensionedField<scalar, volMesh>& iF,
@@ -77,20 +77,20 @@ nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
 {}
 
 
-nuSgsSpalartAllmarasWallFunctionFvPatchScalarField::
-nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+nuSgsWallFunctionFvPatchScalarField::
+nuSgsWallFunctionFvPatchScalarField
 (
-    const nuSgsSpalartAllmarasWallFunctionFvPatchScalarField& tppsf
+    const nuSgsWallFunctionFvPatchScalarField& tppsf
 )
 :
     fixedValueFvPatchScalarField(tppsf)
 {}
 
 
-nuSgsSpalartAllmarasWallFunctionFvPatchScalarField::
-nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+nuSgsWallFunctionFvPatchScalarField::
+nuSgsWallFunctionFvPatchScalarField
 (
-    const nuSgsSpalartAllmarasWallFunctionFvPatchScalarField& tppsf,
+    const nuSgsWallFunctionFvPatchScalarField& tppsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
@@ -100,7 +100,7 @@ nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-void nuSgsSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
+void nuSgsWallFunctionFvPatchScalarField::evaluate
 (
     const Pstream::commsTypes
 )
@@ -174,7 +174,7 @@ void nuSgsSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
 makePatchTypeField
 (
     fvPatchScalarField,
-    nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+    nuSgsWallFunctionFvPatchScalarField
 );
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.H
similarity index 76%
rename from src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.H
rename to src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.H
index 07dd19755477cf07e50d1922226165a7eed26465..d3f06ece81bb7f8d937a488b1dc9acbf64238b7c 100644
--- a/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.H
@@ -24,18 +24,18 @@ License
 
 Class
     Foam::incompressible::LESModels::
-        nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        nuSgsWallFunctionFvPatchScalarField
 
 Description
     Spalart Allmaras wall function boundary condition for incompressible flows
 
 SourceFiles
-    nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C
+    nuSgsWallFunctionFvPatchScalarField.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef nuSgsSpalartAllmarasWallFunctionFvPatchScalarField_H
-#define nuSgsSpalartAllmarasWallFunctionFvPatchScalarField_H
+#ifndef nuSgsWallFunctionFvPatchScalarField_H
+#define nuSgsWallFunctionFvPatchScalarField_H
 
 #include "fixedValueFvPatchFields.H"
 
@@ -49,10 +49,10 @@ namespace LESModels
 {
 
 /*---------------------------------------------------------------------------*\
-     Class nuSgsSpalartAllmarasWallFunctionFvPatchScalarField Declaration
+     Class nuSgsWallFunctionFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
-class nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+class nuSgsWallFunctionFvPatchScalarField
 :
     public fixedValueFvPatchScalarField
 {
@@ -62,20 +62,20 @@ class nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
 public:
 
     //- Runtime type information
-    TypeName("nuSgsSpalartAllmarasWallFunction");
+    TypeName("nuSgsWallFunction");
 
 
     // Constructors
 
         //- Construct from patch and internal field
-        nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        nuSgsWallFunctionFvPatchScalarField
         (
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&
         );
 
         //- Construct from patch, internal field and dictionary
-        nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        nuSgsWallFunctionFvPatchScalarField
         (
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&,
@@ -83,20 +83,20 @@ public:
         );
 
         //- Construct by mapping given
-        //  nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        //  nuSgsWallFunctionFvPatchScalarField
         //  onto a new patch
-        nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        nuSgsWallFunctionFvPatchScalarField
         (
-            const nuSgsSpalartAllmarasWallFunctionFvPatchScalarField&,
+            const nuSgsWallFunctionFvPatchScalarField&,
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&,
             const fvPatchFieldMapper&
         );
 
         //- Construct as copy
-        nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        nuSgsWallFunctionFvPatchScalarField
         (
-            const nuSgsSpalartAllmarasWallFunctionFvPatchScalarField&
+            const nuSgsWallFunctionFvPatchScalarField&
         );
 
         //- Construct and return a clone
@@ -104,14 +104,14 @@ public:
         {
             return tmp<fvPatchScalarField>
             (
-                new nuSgsSpalartAllmarasWallFunctionFvPatchScalarField(*this)
+                new nuSgsWallFunctionFvPatchScalarField(*this)
             );
         }
 
         //- Construct as copy setting internal field reference
-        nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+        nuSgsWallFunctionFvPatchScalarField
         (
-            const nuSgsSpalartAllmarasWallFunctionFvPatchScalarField&,
+            const nuSgsWallFunctionFvPatchScalarField&,
             const DimensionedField<scalar, volMesh>&
         );
 
@@ -123,7 +123,7 @@ public:
         {
             return tmp<fvPatchScalarField>
             (
-                new nuSgsSpalartAllmarasWallFunctionFvPatchScalarField
+                new nuSgsWallFunctionFvPatchScalarField
                 (
                     *this,
                     iF
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/epsilon b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/epsilon
index d9e8b1dc34ec630cae7baa8d5abde75ca596011b..d5e7b9cd0273d6d3e2024e42e6ec4aaac6be4986 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/epsilon
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/epsilon
@@ -23,25 +23,25 @@ boundaryField
 {
     floor
     {
-        type            epsilonWallFunction;
+        type            compressible::epsilonWallFunction;
         value           uniform 0;
     }
 
     ceiling
     {
-        type            epsilonWallFunction;
+        type            compressible::epsilonWallFunction;
         value           uniform 0;
     }
 
     fixedWalls
     {
-        type            epsilonWallFunction;
+        type            compressible::epsilonWallFunction;
         value           uniform 0;
     }
 
     box
     {
-        type            epsilonWallFunction;
+        type            compressible::epsilonWallFunction;
         value           uniform 0;
     }
 }
diff --git a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/k b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/k
index 0eb1a25c30942beaa043ec5811cde80ded559833..5b206f8e4e379cbc9d5a2764071140549649d354 100644
--- a/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/k
+++ b/tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom/0/k
@@ -23,25 +23,25 @@ boundaryField
 {
     floor
     {
-        type            kQRWallFunction;
+        type            compressible::kQRWallFunction;
         value           uniform 0;
     }
 
     ceiling
     {
-        type            kQRWallFunction;
+        type            compressible::kQRWallFunction;
         value           uniform 0;
     }
 
     fixedWalls
     {
-        type            kQRWallFunction;
+        type            compressible::kQRWallFunction;
         value           uniform 0;
     }
 
     box
     {
-        type            kQRWallFunction;
+        type            compressible::kQRWallFunction;
         value           uniform 0;
     }
 }
diff --git a/wmake/rules/SiCortex64Gcc/cOpt b/wmake/rules/SiCortex64Gcc/cOpt
index aaaebef3d3e351358499981b5d4ef1dd2caace7b..a8b0635478db6e5968733b2f5f8f341b4af61d18 100644
--- a/wmake/rules/SiCortex64Gcc/cOpt
+++ b/wmake/rules/SiCortex64Gcc/cOpt
@@ -1,2 +1,2 @@
 cDBUG       = 
-cOPT        = -O3 -fno-gcse
+cOPT        = -O3
diff --git a/wmake/rules/SunOS64Gcc/cOpt b/wmake/rules/SunOS64Gcc/cOpt
index aaaebef3d3e351358499981b5d4ef1dd2caace7b..a8b0635478db6e5968733b2f5f8f341b4af61d18 100644
--- a/wmake/rules/SunOS64Gcc/cOpt
+++ b/wmake/rules/SunOS64Gcc/cOpt
@@ -1,2 +1,2 @@
 cDBUG       = 
-cOPT        = -O3 -fno-gcse
+cOPT        = -O3
diff --git a/wmake/rules/linux64Gcc/c++Opt b/wmake/rules/linux64Gcc/c++Opt
index f19996b72da7dec07cabe27333dc4b083b5eff07..8ac07d2124e4b49b9bda82d3ea0c4380b9c6b8e6 100644
--- a/wmake/rules/linux64Gcc/c++Opt
+++ b/wmake/rules/linux64Gcc/c++Opt
@@ -1,4 +1,4 @@
 c++DBUG     = 
-c++OPT      = -march=opteron -O3
+c++OPT      = -O3
 #c++OPT      = -march=nocona -O3
 # -ftree-vectorize -ftree-vectorizer-verbose=3
diff --git a/wmake/rules/linux64Gcc/cOpt b/wmake/rules/linux64Gcc/cOpt
index 7285a9de969b5bec20a2c21b3289e7788edf1865..a8b0635478db6e5968733b2f5f8f341b4af61d18 100644
--- a/wmake/rules/linux64Gcc/cOpt
+++ b/wmake/rules/linux64Gcc/cOpt
@@ -1,2 +1,2 @@
 cDBUG       = 
-cOPT        = -march=opteron -O3 -fno-gcse
+cOPT        = -O3
diff --git a/wmake/rules/linux64Gcc/general b/wmake/rules/linux64Gcc/general
index 11b48acc3fc0c67c177b464c70de18248881c12d..3c2e4db2ee31ca84bfb6adcd135f9b3651195c0a 100644
--- a/wmake/rules/linux64Gcc/general
+++ b/wmake/rules/linux64Gcc/general
@@ -1,5 +1,5 @@
 CPP        = /lib/cpp $(GFLAGS)
-LD         = ld -A64
+LD         = ld
 
 PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl
 
diff --git a/wmake/rules/linux64Gcc42/c++Opt b/wmake/rules/linux64Gcc42/c++Opt
index f19996b72da7dec07cabe27333dc4b083b5eff07..8ac07d2124e4b49b9bda82d3ea0c4380b9c6b8e6 100644
--- a/wmake/rules/linux64Gcc42/c++Opt
+++ b/wmake/rules/linux64Gcc42/c++Opt
@@ -1,4 +1,4 @@
 c++DBUG     = 
-c++OPT      = -march=opteron -O3
+c++OPT      = -O3
 #c++OPT      = -march=nocona -O3
 # -ftree-vectorize -ftree-vectorizer-verbose=3
diff --git a/wmake/rules/linux64Gcc42/cOpt b/wmake/rules/linux64Gcc42/cOpt
index 7285a9de969b5bec20a2c21b3289e7788edf1865..a8b0635478db6e5968733b2f5f8f341b4af61d18 100644
--- a/wmake/rules/linux64Gcc42/cOpt
+++ b/wmake/rules/linux64Gcc42/cOpt
@@ -1,2 +1,2 @@
 cDBUG       = 
-cOPT        = -march=opteron -O3 -fno-gcse
+cOPT        = -O3
diff --git a/wmake/rules/linuxGcc/c++ b/wmake/rules/linuxGcc/c++
index ab2410d3d0a394662084078b46bd1c965913065d..64d6797573c2f703a7f16ef48ca2ee8f372b2216 100644
--- a/wmake/rules/linuxGcc/c++
+++ b/wmake/rules/linuxGcc/c++
@@ -8,7 +8,7 @@ include $(RULES)/c++$(WM_COMPILE_OPTION)
 
 ptFLAGS     = -DNoRepository -ftemplate-depth-40
 
-c++FLAGS    = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC -pthread
+c++FLAGS    = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC
 
 Ctoo        = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $$SOURCE -o $@
 cxxtoo      = $(Ctoo)
diff --git a/wmake/rules/linuxGcc/cDebug b/wmake/rules/linuxGcc/cDebug
index 6c71ed93e8a1720b7d9e7baef5255dd8981e09f8..72b638f458220e329d52b59e3566a3c807101f9d 100644
--- a/wmake/rules/linuxGcc/cDebug
+++ b/wmake/rules/linuxGcc/cDebug
@@ -1,2 +1,2 @@
 cDBUG       = -ggdb -DFULLDEBUG
-cOPT        = -O1 -finline-functions
+cOPT        = -O1 -fdefault-inline -finline-functions
diff --git a/wmake/rules/linuxGcc/general b/wmake/rules/linuxGcc/general
index c300368ee66bf38f939c97d8da0314da524619b7..d009001a6e3a18369eb608cede9eed6bdc600606 100644
--- a/wmake/rules/linuxGcc/general
+++ b/wmake/rules/linuxGcc/general
@@ -1,10 +1,11 @@
 CPP        = /lib/cpp $(GFLAGS)
 LD         = ld -melf_i386
 
-PROJECT_LIBS = -l$(WM_PROJECT) -ldl
+PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl
 
 include $(GENERAL_RULES)/standard
 
 include $(RULES)/X
 include $(RULES)/c
 include $(RULES)/c++
+include $(GENERAL_RULES)/cint
diff --git a/wmake/rules/linuxIA64Gcc/cOpt b/wmake/rules/linuxIA64Gcc/cOpt
index aaaebef3d3e351358499981b5d4ef1dd2caace7b..a8b0635478db6e5968733b2f5f8f341b4af61d18 100644
--- a/wmake/rules/linuxIA64Gcc/cOpt
+++ b/wmake/rules/linuxIA64Gcc/cOpt
@@ -1,2 +1,2 @@
 cDBUG       = 
-cOPT        = -O3 -fno-gcse
+cOPT        = -O3
diff --git a/wmake/rules/linuxPPC64Gcc/cOpt b/wmake/rules/linuxPPC64Gcc/cOpt
index e6512b7aab42b97fe9e77a1d60fe586e5c1dc104..17318709f1fa39e6bf89cbe87778bc6fa459de17 100644
--- a/wmake/rules/linuxPPC64Gcc/cOpt
+++ b/wmake/rules/linuxPPC64Gcc/cOpt
@@ -1,2 +1,2 @@
 cDBUG       =
-cOPT        = -O3 -fno-gcse
+cOPT        = -O3