diff --git a/src/OSspecific/Unix/fileStat.C b/src/OSspecific/Unix/fileStat.C
index 678ddcac87009b16b075f8ea2777d52c51495643..9cd3207de24d9d89e3f8bd10aaa6cf546acec8a6 100644
--- a/src/OSspecific/Unix/fileStat.C
+++ b/src/OSspecific/Unix/fileStat.C
@@ -22,9 +22,6 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-Description
-    Wrapper for stat() system call.
-
 \*---------------------------------------------------------------------------*/
 
 #include "fileStat.H"
@@ -35,33 +32,15 @@ Description
 #include <unistd.h>
 #include <sys/sysmacros.h>
 
-/*
-#undef major
-#undef minor
-#undef makedev
-
-# define major(dev) ((int)(((dev) >> 8) & 0xff))
-# define minor(dev) ((int)((dev) & 0xff))
-# define makedev(major, minor) ((((unsigned int) (major)) << 8) \
-				| ((unsigned int) (minor)))
-*/
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-// Construct null
-fileStat::fileStat()
+Foam::fileStat::fileStat()
 :
     isValid_(false)
 {}
 
 
-// Construct from components
-fileStat::fileStat(const fileName& fName, const unsigned int maxTime)
+Foam::fileStat::fileStat(const fileName& fName, const unsigned int maxTime)
 {
     // Work on volatile
     volatile bool locIsValid = false;
@@ -85,8 +64,7 @@ fileStat::fileStat(const fileName& fName, const unsigned int maxTime)
 }
 
 
-// Construct from Istream.
-fileStat::fileStat(Istream& is)
+Foam::fileStat::fileStat(Istream& is)
 {
     is >> *this;
 }
@@ -94,10 +72,9 @@ fileStat::fileStat(Istream& is)
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-// compare two fileStates for same device
-bool fileStat::sameDevice(const fileStat& stat2) const
+bool Foam::fileStat::sameDevice(const fileStat& stat2) const
 {
-    return 
+    return
         isValid_
      && (
             major(status_.st_dev) == major(stat2.status().st_dev)
@@ -105,14 +82,14 @@ bool fileStat::sameDevice(const fileStat& stat2) const
         );
 }
 
-// compare two fileStates for same Inode
-bool fileStat::sameINode(const fileStat& stat2) const
+
+bool Foam::fileStat::sameINode(const fileStat& stat2) const
 {
     return isValid_ && (status_.st_ino == stat2.status().st_ino);
 }
 
-// compare state against inode
-bool fileStat::sameINode(const label iNode) const
+
+bool Foam::fileStat::sameINode(const label iNode) const
 {
     return isValid_ && (status_.st_ino == ino_t(iNode));
 }
@@ -120,13 +97,12 @@ bool fileStat::sameINode(const label iNode) const
 
 // * * * * * * * * * * * * * * * Friend Operators  * * * * * * * * * * * * * //
 
-// Input in list syntax
-Istream& operator>>(Istream& is, fileStat& fStat)
+Foam::Istream& Foam::operator>>(Istream& is, fileStat& fStat)
 {
     // Read beginning of machine info list
     is.readBegin("fileStat");
 
-    label 
+    label
         devMaj, devMin,
         ino, mode, uid, gid,
         rdevMaj, rdevMin,
@@ -172,11 +148,10 @@ Istream& operator>>(Istream& is, fileStat& fStat)
 }
 
 
-// Output in list syntax
-Ostream& operator<<(Ostream& os, const fileStat& fStat)
+Foam::Ostream& Foam::operator<<(Ostream& os, const fileStat& fStat)
 {
-    //Set precision so 32bit unsigned int can be printed
-//    int oldPrecision = os.precision();
+    // Set precision so 32bit unsigned int can be printed
+    // int oldPrecision = os.precision();
     int oldPrecision = 0;
     os.precision(10);
 
@@ -200,8 +175,4 @@ Ostream& operator<<(Ostream& os, const fileStat& fStat)
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C
index d99e56209dcb23db76a5654c4c0b7c1130f041c5..1b3bf6e19b4f4c6d5190775867b697ebd060e989 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C
@@ -474,7 +474,7 @@ Foam::scalar Foam::hexRef8::getLevel0EdgeLength() const
 
     forAll(typEdgeLenSqr, levelI)
     {
-        if (typEdgeLenSqr[levelI] == GREAT2)
+        if (typEdgeLenSqr[levelI] == GREAT2 && maxEdgeLenSqr[levelI] >= 0)
         {
             typEdgeLenSqr[levelI] = maxEdgeLenSqr[levelI];
         }
@@ -496,13 +496,14 @@ Foam::scalar Foam::hexRef8::getLevel0EdgeLength() const
 
         if (lenSqr < GREAT2)
         {
-            level0Size = Foam::sqrt(lenSqr)/(1<<levelI);
+            level0Size = Foam::sqrt(lenSqr)*(1<<levelI);
 
             if (debug)
             {
                 Pout<< "hexRef8::getLevel0EdgeLength() :"
                     << " For level:" << levelI
-                    << " found edgeLen:" << level0Size
+                    << " have edgeLen:" << Foam::sqrt(lenSqr)
+                    << " with equivalent level0 len:" << level0Size
                     << endl;
             }
             break;
diff --git a/tutorials/snappyHexMesh/iglooWithFridges/constant/dynamicMeshDict b/tutorials/snappyHexMesh/iglooWithFridges/constant/dynamicMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..20e80e0c878de827737a74b73efe6b54b2997e09
--- /dev/null
+++ b/tutorials/snappyHexMesh/iglooWithFridges/constant/dynamicMeshDict
@@ -0,0 +1,52 @@
+// The FOAM Project // File: motionProperties
+/*
+
+-------------------------------------------------------------------------------
+ =========         | dictionary
+ \\      /         |
+  \\    /          | Name:   motionProperties
+   \\  /           | Family: FoamX configuration file
+    \\/            |
+    F ield         | FOAM version: 2.1
+    O peration     | Product of Nabla Ltd.
+    A and          |
+    M anipulation  | Email: Enquiries@Nabla.co.uk
+-------------------------------------------------------------------------------
+*/
+// FoamX Case Dictionary.
+
+version             1.0;
+format              ascii;
+
+root                "/home/warhol/chris/foam/chris2.1/run/Test";
+case                "movingCone";
+instance            "constant";
+local               "";
+
+class               dictionary;
+form                dictionary;
+object              motionProperties;
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+//motionSolverLibs ("libfvMotionSolvers.so");
+solver laplacian;
+//solver componentLaplacian x;
+
+twoDMotion          no;
+
+diffusivity  uniform;
+
+//motionPlaneNormal   (0 0 1);
+//
+//movingSurface       yes;
+//
+//twoFluids           no;
+//
+//normalMotionDir     no;
+//
+//motionURF           1.0;
+//
+//boundaryCorrection  yes;
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/iglooWithFridges/constant/polyMesh/blockMeshDict b/tutorials/snappyHexMesh/iglooWithFridges/constant/polyMesh/blockMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..f842cbb8fd29fd29913aae1120473ae99b977a35
--- /dev/null
+++ b/tutorials/snappyHexMesh/iglooWithFridges/constant/polyMesh/blockMeshDict
@@ -0,0 +1,82 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          blockMeshDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+convertToMeters 1;
+
+vertices        
+(
+    (-2.03 -2.0  0)
+    ( 8.03 -2.0  0)
+    ( 8.03  8.0  0)
+    (-2.03  8.0  0)
+    (-2.03 -2.0  5)
+    ( 8.03 -2.0  5)
+    ( 8.03  8.0  5)
+    (-2.03  8.0  5)
+);
+
+blocks          
+(
+    hex (0 1 2 3 4 5 6 7) (20 20 20) simpleGrading (1 1 1)
+);
+
+edges           
+(
+);
+
+patches         
+(
+    patch maxY 
+    (
+        (3 7 6 2)
+    )
+    patch minX
+    (
+        (0 4 7 3)
+    )
+    patch maxX
+    (
+        (2 6 5 1)
+    )
+    patch minY
+    (
+        (1 5 4 0)
+    )
+    patch minZ
+    (
+        (0 3 2 1)
+    )
+    patch maxZ
+    (
+        (4 5 6 7)
+    )
+);
+
+mergePatchPairs 
+(
+);
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/iglooWithFridges/constant/transportProperties b/tutorials/snappyHexMesh/iglooWithFridges/constant/transportProperties
new file mode 100644
index 0000000000000000000000000000000000000000..285cbf44dec66cfb171fb6d49ef207c07c9c171c
--- /dev/null
+++ b/tutorials/snappyHexMesh/iglooWithFridges/constant/transportProperties
@@ -0,0 +1,28 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          transportProperties;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+nu              nu [0 2 -1 0 0 0 0] 0.01;
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/iglooWithFridges/system/controlDict b/tutorials/snappyHexMesh/iglooWithFridges/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..3303982fb7c5012c5ff147639b9f5ef100ff65b8
--- /dev/null
+++ b/tutorials/snappyHexMesh/iglooWithFridges/system/controlDict
@@ -0,0 +1,57 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          controlDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application icoFoam;
+
+startFrom       latestTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         100;
+
+deltaT          1;
+
+writeControl    timeStep;
+
+writeInterval   1;
+
+purgeWrite      0;
+
+//writeFormat     binary;
+writeFormat     ascii;
+
+writePrecision  7;
+
+writeCompression uncompressed;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/iglooWithFridges/system/decomposeParDict b/tutorials/snappyHexMesh/iglooWithFridges/system/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..3b4a5b205deffab12666ad54723790dae3388298
--- /dev/null
+++ b/tutorials/snappyHexMesh/iglooWithFridges/system/decomposeParDict
@@ -0,0 +1,66 @@
+// The FOAM Project // File: decomposeParDict
+/*
+-------------------------------------------------------------------------------
+ =========         | dictionary
+ \\      /         | 
+  \\    /          | Name:   decomposeParDict
+   \\  /           | Family: FoamX configuration file
+    \\/            | 
+    F ield         | FOAM version: 2.1
+    O peration     | Product of Nabla Ltd.
+    A and          | 
+    M anipulation  | Email: Enquiries@Nabla.co.uk
+-------------------------------------------------------------------------------
+*/
+// FoamX Case Dictionary.
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "/home/penfold/mattijs/foam/mattijs2.1/run/icoFoam";
+    case            "cavity";
+    instance        "system";
+    local           "";
+
+    class           dictionary;
+    object          decomposeParDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+arguments       "/home/penfold/mattijs/foam/mattijs2.1/run/icoFoam" "cavity";
+
+numberOfSubdomains 6;
+
+method          hierarchical;
+//method          metis;
+//method          parMetis;
+
+simpleCoeffs
+{
+    n               (4 1 1);
+    delta           0.001;
+}
+
+hierarchicalCoeffs
+{
+    n               (3 2 1);
+    delta           0.001;
+    order           xyz;
+}
+
+manualCoeffs
+{
+    dataFile        "cellDecomposition";
+}
+
+metisCoeffs
+{
+    //n                   (5 1 1);
+    //cellWeightsFile     "constant/cellWeightsFile";
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/iglooWithFridges/system/fvSchemes b/tutorials/snappyHexMesh/iglooWithFridges/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..b89a35be1338774431bb3d182528a0a97c25cfb3
--- /dev/null
+++ b/tutorials/snappyHexMesh/iglooWithFridges/system/fvSchemes
@@ -0,0 +1,71 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          fvSchemes;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+    grad(p)         Gauss linear;
+
+    //snGradCorr(cellMotionU) Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+    div(phi,U)      Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         none;
+    laplacian(nu,U) Gauss linear corrected;
+    laplacian(1|A(U),p) Gauss linear corrected;
+
+    laplacian(diffusivity,cellMotionU) Gauss linear uncorrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+    interpolate(HbyA) linear;
+}
+
+snGradSchemes
+{
+    default         corrected;
+}
+
+fluxRequired
+{
+    default         no;
+    p;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/iglooWithFridges/system/fvSolution b/tutorials/snappyHexMesh/iglooWithFridges/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..da311c99cdeb045c606d68d29bbbd1b30844fee8
--- /dev/null
+++ b/tutorials/snappyHexMesh/iglooWithFridges/system/fvSolution
@@ -0,0 +1,45 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          fvSolution;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    //p               ICCG 1e-06 0;
+    p               AMG 1e-06 0 10;
+    U               BICCG 1e-05 0;
+
+    // Meshmotion
+    cellMotionU ICCG 1e-6 0.0;
+    cellMotionUx ICCG 1e-6 0.0;
+}
+
+PISO
+{
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 0;
+    pRefCell        0;
+    pRefValue       0;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/iglooWithFridges/system/snappyHexMeshDict b/tutorials/snappyHexMesh/iglooWithFridges/system/snappyHexMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..3286958275ba390ebf05c410a66003cc6d3a7a64
--- /dev/null
+++ b/tutorials/snappyHexMesh/iglooWithFridges/system/snappyHexMeshDict
@@ -0,0 +1,338 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "/home/penfold/mattijs/foam/mattijs2.1/run/icoFoam";
+    case            "cavity";
+    instance        "system";
+    local           "";
+
+    class           dictionary;
+    object          autoHexMeshDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+// Which of the steps to run
+castellatedMesh true;
+snap            true;
+addLayers       true;
+
+
+// Geometry. Definition of all surfaces. All surfaces are of class
+// searchableSurface.
+// Surfaces are used
+// - to specify refinement for any mesh cell intersecting it
+// - to specify refinement for any mesh cell inside/outside/near
+// - to 'snap' the mesh boundary to the surface
+geometry
+{
+    fridgeA
+    {
+        type searchableBox;
+        min (2 2 0);
+        max (3 3 2);
+    }
+
+    fridgeB
+    {
+        type searchableBox;
+        min (3.5 3 0);
+        max (4.3 3.8 1.8);
+    }
+
+    igloo
+    {
+        type searchableSphere;
+        centre (3 3 0);
+        radius 4;
+    }
+};
+
+
+
+// Settings for the castellatedMesh generation.
+castellatedMeshControls
+{
+
+    // Refinement parameters
+    // ~~~~~~~~~~~~~~~~~~~~~
+
+    // While refining maximum number of cells per processor. This is basically
+    // the number of cells that fit on a processor. If you choose this too small
+    // it will do just more refinement iterations to obtain a similar mesh.
+    maxLocalCells 1000000;
+
+    // Overall cell limit (approximately). Refinement will stop immediately
+    // upon reaching this number so a refinement level might not complete.
+    // Note that this is the number of cells before removing the part which
+    // is not 'visible' from the keepPoint. The final number of cells might
+    // actually be a lot less.
+    maxGlobalCells 2000000;
+
+    // The surface refinement loop might spend lots of iterations refining just a
+    // few cells. This setting will cause refinement to stop if <= minimumRefine
+    // are selected for refinement. Note: it will at least do one iteration
+    // (unless the number of cells to refine is 0)
+    minRefinementCells 0;
+
+    // Number of buffer layers between different levels.
+    // 1 means normal 2:1 refinement restriction, larger means slower
+    // refinement.
+    nCellsBetweenLevels 1;
+
+
+
+    // Explicit feature edge refinement
+    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    // Specifies a level for any cell intersected by its edges.
+    // This is a featureEdgeMesh, read from constant/triSurface for now.
+    features
+    (
+        //{
+        //    file "someLine.eMesh";
+        //    level 2;
+        //}
+    );
+
+
+
+    // Surface based refinement
+    // ~~~~~~~~~~~~~~~~~~~~~~~~
+
+    // Specifies two levels for every surface. The first is the minimum level,
+    // every cell intersecting a surface gets refined up to the minimum level.
+    // The second level is the maximum level. Cells that 'see' multiple
+    // intersections where the intersections make an
+    // angle > resolveFeatureAngle get refined up to the maximum level.
+
+    refinementSurfaces
+    {
+        fridgeA
+        {
+            // Surface-wise min and max refinement level
+            level (2 2);
+        }
+        fridgeB
+        {
+            // Surface-wise min and max refinement level
+            level (2 2);
+        }
+        igloo
+        {
+            // Surface-wise min and max refinement level
+            level (1 1);
+        }
+    }
+
+    // Resolve sharp angles on fridges
+    resolveFeatureAngle 60;
+
+
+    // Region-wise refinement
+    // ~~~~~~~~~~~~~~~~~~~~~~
+
+    // Specifies refinement level for cells in relation to a surface. One of
+    // three modes
+    // - distance. 'levels' specifies per distance to the surface the
+    //   wanted refinement level. The distances need to be specified in
+    //   descending order.
+    // - inside. 'levels' is only one entry and only the level is used. All
+    //   cells inside the surface get refined up to the level. The surface
+    //   needs to be closed for this to be possible.
+    // - outside. Same but cells outside.
+
+    refinementRegions
+    {
+    }
+
+
+    // Mesh selection
+    // ~~~~~~~~~~~~~~
+
+    // After refinement patches get added for all refinementSurfaces and
+    // all cells intersecting the surfaces get put into these patches. The
+    // section reachable from the locationInMesh is kept.
+    // NOTE: This point should never be on a face, always inside a cell, even
+    // after refinement.
+    locationInMesh (3 0.28 0.43);
+}
+
+
+
+// Settings for the snapping.
+snapControls
+{
+    //- Number of patch smoothing iterations before finding correspondence
+    //  to surface
+    nSmoothPatch 3;
+
+    //- Relative distance for points to be attracted by surface feature point
+    //  or edge. True distance is this factor times local
+    //  maximum edge length.
+    tolerance 4.0;
+
+    //- Number of mesh displacement relaxation iterations.
+    nSolveIter 30;
+
+    //- Maximum number of snapping relaxation iterations. Should stop
+    //  before upon reaching a correct mesh.
+    nRelaxIter 5;
+}
+
+
+
+// Settings for the layer addition.
+addLayersControls
+{
+    // Per final patch (so not geometry!) the layer information
+    layers
+    {
+        fridgeA_region0
+        {
+            nSurfaceLayers 1;
+        }
+        fridgeB_region0
+        {
+            nSurfaceLayers 1;
+        }
+        igloo_region0
+        {
+            nSurfaceLayers 1;
+        }
+    }
+
+    // Expansion factor for layer mesh
+    expansionRatio 1.0;
+
+    //- Wanted thickness of final added cell layer. If multiple layers
+    //  is the
+    //  thickness of the layer furthest away from the wall.
+    //  Relative to undistorted size of cell outside layer.
+    finalLayerRatio 0.5; 
+
+    //- Minimum thickness of cell layer. If for any reason layer
+    //  cannot be above minThickness do not add layer.
+    //  Relative to undistorted size of cell outside layer.
+    minThickness 0.25;
+
+    //- If points get not extruded do nGrow layers of connected faces that are
+    //  also not grown. This helps convergence of the layer addition process
+    //  close to features.
+    nGrow 0;
+
+
+    // Advanced settings
+
+    //- When not to extrude surface. 0 is flat surface, 90 is when two faces
+    //  make straight angle.
+    featureAngle 60;
+
+    //- Maximum number of snapping relaxation iterations. Should stop
+    //  before upon reaching a correct mesh.
+    nRelaxIter 5;
+
+    // Number of smoothing iterations of surface normals 
+    nSmoothSurfaceNormals 1;
+
+    // Number of smoothing iterations of interior mesh movement direction  
+    nSmoothNormals 3;
+
+    // Smooth layer thickness over surface patches
+    nSmoothThickness 10;
+
+    // Stop layer growth on highly warped cells 
+    maxFaceThicknessRatio 0.5;
+
+    // Reduce layer growth where ratio thickness to medial 
+    // distance is large 
+    maxThicknessToMedialRatio 0.3;
+
+    // Angle used to pick up medial axis points
+    minMedianAxisAngle 130;
+
+    // Create buffer region for new layer terminations
+    nBufferCellsNoExtrude 0;
+}
+
+
+
+// Generic mesh quality settings. At any undoable phase these determine
+// where to undo.
+meshQualityControls
+{
+    //- Maximum non-orthogonality allowed. Set to 180 to disable.
+    maxNonOrtho 65;
+
+    //- Max skewness allowed. Set to <0 to disable.
+    maxBoundarySkewness 20;
+    maxInternalSkewness 4;
+
+    //- Max concaveness allowed. Is angle (in degrees) below which concavity
+    //  is allowed. 0 is straight face, <0 would be convex face.
+    //  Set to 180 to disable.
+    maxConcave 80;
+
+    //- Minimum projected area v.s. actual area. Set to -1 to disable.
+    minFlatness 0.5;
+
+    //- Minimum pyramid volume. Is absolute volume of cell pyramid.
+    //  Set to very negative number (e.g. -1E30) to disable.
+    minVol 1e-13;
+
+    //- Minimum face area. Set to <0 to disable.
+    minArea -1;
+
+    //- Minimum face twist. Set to <-1 to disable. dot product of face normal
+    //- and face centre triangles normal
+    minTwist 0.05;
+
+    //- minimum normalised cell determinant
+    //- 1 = hex, <= 0 = folded or flattened illegal cell
+    minDeterminant 0.001;
+
+    //- minFaceWeight (0 -> 0.5) 
+    minFaceWeight 0.05;
+
+    //- minVolRatio (0 -> 1)
+    minVolRatio 0.01;
+
+    //must be >0 for Fluent compatibility
+    minTriangleTwist -1;
+
+
+    // Advanced
+
+    //- Number of error distribution iterations
+    nSmoothScale 4;
+    //- amount to scale back displacement at error points
+    errorReduction 0.75;
+}
+
+
+// Advanced
+
+// Flags for optional output
+// 0 : only write final meshes
+// 1 : write intermediate meshes
+// 2 : write volScalarField with cellLevel for postprocessing
+// 4 : write current intersections as .obj files
+debug 0;
+
+
+// Merge tolerance. Is fraction of overall bounding box of initial mesh.
+// Note: the write tolerance needs to be higher than this.
+mergeTolerance 1E-6;
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/motorBike/constant/dynamicMeshDict b/tutorials/snappyHexMesh/motorBike/constant/dynamicMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..20e80e0c878de827737a74b73efe6b54b2997e09
--- /dev/null
+++ b/tutorials/snappyHexMesh/motorBike/constant/dynamicMeshDict
@@ -0,0 +1,52 @@
+// The FOAM Project // File: motionProperties
+/*
+
+-------------------------------------------------------------------------------
+ =========         | dictionary
+ \\      /         |
+  \\    /          | Name:   motionProperties
+   \\  /           | Family: FoamX configuration file
+    \\/            |
+    F ield         | FOAM version: 2.1
+    O peration     | Product of Nabla Ltd.
+    A and          |
+    M anipulation  | Email: Enquiries@Nabla.co.uk
+-------------------------------------------------------------------------------
+*/
+// FoamX Case Dictionary.
+
+version             1.0;
+format              ascii;
+
+root                "/home/warhol/chris/foam/chris2.1/run/Test";
+case                "movingCone";
+instance            "constant";
+local               "";
+
+class               dictionary;
+form                dictionary;
+object              motionProperties;
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+//motionSolverLibs ("libfvMotionSolvers.so");
+solver laplacian;
+//solver componentLaplacian x;
+
+twoDMotion          no;
+
+diffusivity  uniform;
+
+//motionPlaneNormal   (0 0 1);
+//
+//movingSurface       yes;
+//
+//twoFluids           no;
+//
+//normalMotionDir     no;
+//
+//motionURF           1.0;
+//
+//boundaryCorrection  yes;
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/motorBike/constant/polyMesh/blockMeshDict b/tutorials/snappyHexMesh/motorBike/constant/polyMesh/blockMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..ec09ef5e88716142e00b669e4438a3a42f17e5f4
--- /dev/null
+++ b/tutorials/snappyHexMesh/motorBike/constant/polyMesh/blockMeshDict
@@ -0,0 +1,82 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          blockMeshDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+convertToMeters 1;
+
+vertices        
+(
+    (-20.29 -10  -4.232e-05)
+    ( 41.71 -10  -4.232e-05)
+    ( 41.71  10  -4.232e-05)
+    (-20.29  10  -4.232e-05)
+    (-20.29 -10   20)
+    ( 41.71 -10   20)
+    ( 41.71  10   20)
+    (-20.29  10   20)
+);
+
+blocks          
+(
+    hex (0 1 2 3 4 5 6 7) (60 20 20) simpleGrading (1 1 1)
+);
+
+edges           
+(
+);
+
+patches         
+(
+    patch maxY 
+    (
+        (3 7 6 2)
+    )
+    patch minX
+    (
+        (0 4 7 3)
+    )
+    patch maxX
+    (
+        (2 6 5 1)
+    )
+    patch minY
+    (
+        (1 5 4 0)
+    )
+    patch minZ
+    (
+        (0 3 2 1)
+    )
+    patch maxZ
+    (
+        (4 5 6 7)
+    )
+);
+
+mergePatchPairs 
+(
+);
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/motorBike/constant/transportProperties b/tutorials/snappyHexMesh/motorBike/constant/transportProperties
new file mode 100644
index 0000000000000000000000000000000000000000..285cbf44dec66cfb171fb6d49ef207c07c9c171c
--- /dev/null
+++ b/tutorials/snappyHexMesh/motorBike/constant/transportProperties
@@ -0,0 +1,28 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          transportProperties;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+nu              nu [0 2 -1 0 0 0 0] 0.01;
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/motorBike/constant/triSurface/motorBike.stl b/tutorials/snappyHexMesh/motorBike/constant/triSurface/motorBike.stl
new file mode 100644
index 0000000000000000000000000000000000000000..ea9666fcf2db9cb1f0237ee80849acabf6b67dcf
Binary files /dev/null and b/tutorials/snappyHexMesh/motorBike/constant/triSurface/motorBike.stl differ
diff --git a/tutorials/snappyHexMesh/motorBike/system/controlDict b/tutorials/snappyHexMesh/motorBike/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..3303982fb7c5012c5ff147639b9f5ef100ff65b8
--- /dev/null
+++ b/tutorials/snappyHexMesh/motorBike/system/controlDict
@@ -0,0 +1,57 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          controlDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application icoFoam;
+
+startFrom       latestTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         100;
+
+deltaT          1;
+
+writeControl    timeStep;
+
+writeInterval   1;
+
+purgeWrite      0;
+
+//writeFormat     binary;
+writeFormat     ascii;
+
+writePrecision  7;
+
+writeCompression uncompressed;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/motorBike/system/decomposeParDict b/tutorials/snappyHexMesh/motorBike/system/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..3b4a5b205deffab12666ad54723790dae3388298
--- /dev/null
+++ b/tutorials/snappyHexMesh/motorBike/system/decomposeParDict
@@ -0,0 +1,66 @@
+// The FOAM Project // File: decomposeParDict
+/*
+-------------------------------------------------------------------------------
+ =========         | dictionary
+ \\      /         | 
+  \\    /          | Name:   decomposeParDict
+   \\  /           | Family: FoamX configuration file
+    \\/            | 
+    F ield         | FOAM version: 2.1
+    O peration     | Product of Nabla Ltd.
+    A and          | 
+    M anipulation  | Email: Enquiries@Nabla.co.uk
+-------------------------------------------------------------------------------
+*/
+// FoamX Case Dictionary.
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "/home/penfold/mattijs/foam/mattijs2.1/run/icoFoam";
+    case            "cavity";
+    instance        "system";
+    local           "";
+
+    class           dictionary;
+    object          decomposeParDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+arguments       "/home/penfold/mattijs/foam/mattijs2.1/run/icoFoam" "cavity";
+
+numberOfSubdomains 6;
+
+method          hierarchical;
+//method          metis;
+//method          parMetis;
+
+simpleCoeffs
+{
+    n               (4 1 1);
+    delta           0.001;
+}
+
+hierarchicalCoeffs
+{
+    n               (3 2 1);
+    delta           0.001;
+    order           xyz;
+}
+
+manualCoeffs
+{
+    dataFile        "cellDecomposition";
+}
+
+metisCoeffs
+{
+    //n                   (5 1 1);
+    //cellWeightsFile     "constant/cellWeightsFile";
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/motorBike/system/fvSchemes b/tutorials/snappyHexMesh/motorBike/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..b89a35be1338774431bb3d182528a0a97c25cfb3
--- /dev/null
+++ b/tutorials/snappyHexMesh/motorBike/system/fvSchemes
@@ -0,0 +1,71 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          fvSchemes;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+    grad(p)         Gauss linear;
+
+    //snGradCorr(cellMotionU) Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+    div(phi,U)      Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         none;
+    laplacian(nu,U) Gauss linear corrected;
+    laplacian(1|A(U),p) Gauss linear corrected;
+
+    laplacian(diffusivity,cellMotionU) Gauss linear uncorrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+    interpolate(HbyA) linear;
+}
+
+snGradSchemes
+{
+    default         corrected;
+}
+
+fluxRequired
+{
+    default         no;
+    p;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/motorBike/system/fvSolution b/tutorials/snappyHexMesh/motorBike/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..da311c99cdeb045c606d68d29bbbd1b30844fee8
--- /dev/null
+++ b/tutorials/snappyHexMesh/motorBike/system/fvSolution
@@ -0,0 +1,45 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          fvSolution;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    //p               ICCG 1e-06 0;
+    p               AMG 1e-06 0 10;
+    U               BICCG 1e-05 0;
+
+    // Meshmotion
+    cellMotionU ICCG 1e-6 0.0;
+    cellMotionUx ICCG 1e-6 0.0;
+}
+
+PISO
+{
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 0;
+    pRefCell        0;
+    pRefValue       0;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/snappyHexMesh/motorBike/system/snappyHexMeshDict b/tutorials/snappyHexMesh/motorBike/system/snappyHexMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..5e206f019fbcf678879318406b14e14f58e5492a
--- /dev/null
+++ b/tutorials/snappyHexMesh/motorBike/system/snappyHexMeshDict
@@ -0,0 +1,585 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "/home/penfold/mattijs/foam/mattijs2.1/run/icoFoam";
+    case            "cavity";
+    instance        "system";
+    local           "";
+
+    class           dictionary;
+    object          autoHexMeshDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+// Which of the steps to run
+castellatedMesh true;
+snap            true;
+addLayers       true;
+
+
+// Geometry. Definition of all surfaces. All surfaces are of class
+// searchableSurface.
+// Surfaces are used
+// - to specify refinement for any mesh cell intersecting it
+// - to specify refinement for any mesh cell inside/outside/near
+// - to 'snap' the mesh boundary to the surface
+geometry
+{
+    motorBike.stl
+    {
+        type triSurfaceMesh;
+        name motorBike;
+    }
+
+    refinementBox
+    {
+        type searchableBox;
+        min (-0.3 -0.4 -0.1);
+        max ( 3.0  0.4  1.4);
+    }
+};
+
+
+
+// Settings for the castellatedMesh generation.
+castellatedMeshControls
+{
+
+    // Refinement parameters
+    // ~~~~~~~~~~~~~~~~~~~~~
+
+    // While refining maximum number of cells per processor. This is basically
+    // the number of cells that fit on a processor. If you choose this too small
+    // it will do just more refinement iterations to obtain a similar mesh.
+    maxLocalCells 1000000;
+
+    // Overall cell limit (approximately). Refinement will stop immediately
+    // upon reaching this number so a refinement level might not complete.
+    // Note that this is the number of cells before removing the part which
+    // is not 'visible' from the keepPoint. The final number of cells might
+    // actually be a lot less.
+    maxGlobalCells 2000000;
+
+    // The surface refinement loop might spend lots of iterations refining just a
+    // few cells. This setting will cause refinement to stop if <= minimumRefine
+    // are selected for refinement. Note: it will at least do one iteration
+    // (unless the number of cells to refine is 0)
+    minRefinementCells 10;
+
+    // Number of buffer layers between different levels.
+    // 1 means normal 2:1 refinement restriction, larger means slower
+    // refinement.
+    nCellsBetweenLevels 2;
+
+
+
+    // Explicit feature edge refinement
+    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    // Specifies a level for any cell intersected by its edges.
+    // This is a featureEdgeMesh, read from constant/triSurface for now.
+    features
+    (
+        //{
+        //    file "someLine.eMesh";
+        //    level 2;
+        //}
+    );
+
+
+
+    // Surface based refinement
+    // ~~~~~~~~~~~~~~~~~~~~~~~~
+
+    // Specifies two levels for every surface. The first is the minimum level,
+    // every cell intersecting a surface gets refined up to the minimum level.
+    // The second level is the maximum level. Cells that 'see' multiple
+    // intersections where the intersections make an
+    // angle > resolveFeatureAngle get refined up to the maximum level.
+
+    refinementSurfaces
+    {
+        motorBike
+        {
+            // Surface-wise min and max refinement level
+            level (5 6);
+        }
+    }
+
+    // Resolve sharp angles
+    resolveFeatureAngle 30;
+
+
+    // Region-wise refinement
+    // ~~~~~~~~~~~~~~~~~~~~~~
+
+    // Specifies refinement level for cells in relation to a surface. One of
+    // three modes
+    // - distance. 'levels' specifies per distance to the surface the
+    //   wanted refinement level. The distances need to be specified in
+    //   descending order.
+    // - inside. 'levels' is only one entry and only the level is used. All
+    //   cells inside the surface get refined up to the level. The surface
+    //   needs to be closed for this to be possible.
+    // - outside. Same but cells outside.
+
+    refinementRegions
+    {
+        refinementBox
+        {
+            mode inside;
+            levels ((1E15 4));
+        }
+    }
+
+
+    // Mesh selection
+    // ~~~~~~~~~~~~~~
+
+    // After refinement patches get added for all refinementSurfaces and
+    // all cells intersecting the surfaces get put into these patches. The
+    // section reachable from the locationInMesh is kept.
+    // NOTE: This point should never be on a face, always inside a cell, even
+    // after refinement.
+    locationInMesh (3 3 0.43);
+}
+
+
+
+// Settings for the snapping.
+snapControls
+{
+    //- Number of patch smoothing iterations before finding correspondence
+    //  to surface
+    nSmoothPatch 3;
+
+    //- Relative distance for points to be attracted by surface feature point
+    //  or edge. True distance is this factor times local
+    //  maximum edge length.
+    tolerance 4.0;
+
+    //- Number of mesh displacement relaxation iterations.
+    nSolveIter 30;
+
+    //- Maximum number of snapping relaxation iterations. Should stop
+    //  before upon reaching a correct mesh.
+    nRelaxIter 5;
+}
+
+
+
+// Settings for the layer addition.
+addLayersControls
+{
+    // Per final patch (so not geometry!) the layer information
+    layers
+    {
+        minZ
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_frt-fairing:001%1
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_windshield:002%2
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rr-wh-rim:005%5
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rr-wh-rim:010%10
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_fr-wh-rim:011%11
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_fr-wh-brake-disk:012%12
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_frame:016-shadow%13
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-susp:014%14
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-susp:014-shadow%15
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_frame:016%16
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rr-wh-rim:005-shadow%17
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rr-wh-chain-hub:022%22
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rearseat%24
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_frt-fairing%25
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_windshield%26
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_headlights%27
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_driversseat%28
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-body%29
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_fuel-tank%30
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_exhaust%31
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rr-wh-rim%32
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_fr-mud-guard%33
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_fr-wh-rim%34
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_fr-wh-brake-disk%35
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_fr-brake-caliper%36
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_fr-wh-tyre%37
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_hbars%38
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_fr-forks%39
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_chain%40
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rr-wh-tyre%41
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_square-dial%42
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_round-dial%43
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_dial-holder%44
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-susp%45
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-brake-lights%46
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-light-bracket%47
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_frame%48
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-mud-guard%49
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-susp-spring-damp%50
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_fairing-inner-plate%51
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_clutch-housing%52
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_radiator%53
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_water-pipe%54
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_water-pump%55
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_engine%56
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-shock-link%57
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-brake-fluid-pot-bracket%58
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-brake-fluid-pot%59
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_footpeg%60
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rr-wh-chain-hub%61
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-brake-caliper%62
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rider-helmet%65
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rider-visor%66
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rider-boots%67
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rider-gloves%68
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rider-body%69
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_frame:0%70
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_frt-fairing:001-shadow%74
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_windshield-shadow%75
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_fr-mud-guard-shadow%81
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_fr-wh-brake-disk-shadow%83
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-mud-guard-shadow%84
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-susp-spring-damp-shadow%85
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_radiator-shadow%86
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-shock-link-shadow%87
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rear-brake-fluid-pot-bracket-shadow%88
+        {
+            nSurfaceLayers 1;
+        }
+        motorBike_rr-wh-chain-hub-shadow%89
+        {
+            nSurfaceLayers 1;
+        }
+    }
+
+    // Expansion factor for layer mesh
+    expansionRatio 1.0;
+
+    //- Wanted thickness of final added cell layer. If multiple layers
+    //  is the
+    //  thickness of the layer furthest away from the wall.
+    //  Relative to undistorted size of cell outside layer.
+    finalLayerRatio 0.3; 
+
+    //- Minimum thickness of cell layer. If for any reason layer
+    //  cannot be above minThickness do not add layer.
+    //  Relative to undistorted size of cell outside layer.
+    minThickness 0.1;
+
+    //- If points get not extruded do nGrow layers of connected faces that are
+    //  also not grown. This helps convergence of the layer addition process
+    //  close to features.
+    nGrow 1;
+
+
+    // Advanced settings
+
+    //- When not to extrude surface. 0 is flat surface, 90 is when two faces
+    //  make straight angle.
+    featureAngle 30;
+
+    //- Maximum number of snapping relaxation iterations. Should stop
+    //  before upon reaching a correct mesh.
+    nRelaxIter 3;
+
+    // Number of smoothing iterations of surface normals 
+    nSmoothSurfaceNormals 1;
+
+    // Number of smoothing iterations of interior mesh movement direction  
+    nSmoothNormals 3;
+
+    // Smooth layer thickness over surface patches
+    nSmoothThickness 10;
+
+    // Stop layer growth on highly warped cells 
+    maxFaceThicknessRatio 0.5;
+
+    // Reduce layer growth where ratio thickness to medial 
+    // distance is large 
+    maxThicknessToMedialRatio 0.3;
+
+    // Angle used to pick up medial axis points
+    minMedianAxisAngle 130;
+
+    // Create buffer region for new layer terminations
+    nBufferCellsNoExtrude 0;
+}
+
+
+
+// Generic mesh quality settings. At any undoable phase these determine
+// where to undo.
+meshQualityControls
+{
+    //- Maximum non-orthogonality allowed. Set to 180 to disable.
+    maxNonOrtho 65;
+
+    //- Max skewness allowed. Set to <0 to disable.
+    maxBoundarySkewness 20;
+    maxInternalSkewness 4;
+
+    //- Max concaveness allowed. Is angle (in degrees) below which concavity
+    //  is allowed. 0 is straight face, <0 would be convex face.
+    //  Set to 180 to disable.
+    maxConcave 80;
+
+    //- Minimum projected area v.s. actual area. Set to -1 to disable.
+    minFlatness 0.5;
+
+    //- Minimum pyramid volume. Is absolute volume of cell pyramid.
+    //  Set to very negative number (e.g. -1E30) to disable.
+    minVol 1e-13;
+
+    //- Minimum face area. Set to <0 to disable.
+    minArea -1;
+
+    //- Minimum face twist. Set to <-1 to disable. dot product of face normal
+    //- and face centre triangles normal
+    minTwist 0.02;
+
+    //- minimum normalised cell determinant
+    //- 1 = hex, <= 0 = folded or flattened illegal cell
+    minDeterminant 0.001;
+
+    //- minFaceWeight (0 -> 0.5) 
+    minFaceWeight 0.02;
+
+    //- minVolRatio (0 -> 1)
+    minVolRatio 0.01;
+
+    //must be >0 for Fluent compatibility
+    minTriangleTwist -1;
+
+
+    // Advanced
+
+    //- Number of error distribution iterations
+    nSmoothScale 4;
+    //- amount to scale back displacement at error points
+    errorReduction 0.75;
+}
+
+
+// Advanced
+
+// Flags for optional output
+// 0 : only write final meshes
+// 1 : write intermediate meshes
+// 2 : write volScalarField with cellLevel for postprocessing
+// 4 : write current intersections as .obj files
+debug 0;
+
+
+// Merge tolerance. Is fraction of overall bounding box of initial mesh.
+// Note: the write tolerance needs to be higher than this.
+mergeTolerance 1E-6;
+
+
+// ************************************************************************* //