diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/Allclean b/tutorials/mesh/snappyHexMesh/gap_detection/Allclean
new file mode 100644
index 0000000000000000000000000000000000000000..8bfe3dc5d7d65031e324d192b3fb1a3f8df9b0b3
--- /dev/null
+++ b/tutorials/mesh/snappyHexMesh/gap_detection/Allclean
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# Source tutorial clean functions
+. $WM_PROJECT_DIR/bin/tools/CleanFunctions
+
+\rm -f constant/polyMesh/boundary > /dev/null 2>&1
+cleanCase
diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/Allrun b/tutorials/mesh/snappyHexMesh/gap_detection/Allrun
new file mode 100644
index 0000000000000000000000000000000000000000..c2975fc5270b72b128646f990d11836780d8e805
--- /dev/null
+++ b/tutorials/mesh/snappyHexMesh/gap_detection/Allrun
@@ -0,0 +1,15 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+runApplication blockMesh
+
+runApplication decomposePar
+
+runParallel snappyHexMesh 8 -overwrite
+
+runApplication reconstructParMesh -constant
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/README.txt b/tutorials/mesh/snappyHexMesh/gap_detection/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..883972db8bd166864beff8fb0b6091c1291f3a25
--- /dev/null
+++ b/tutorials/mesh/snappyHexMesh/gap_detection/README.txt
@@ -0,0 +1,7 @@
+Testcase for automatic gap refinement. The geometry is two nested boxes
+with a single small pipe between them.
+
+- 1 cell initial mesh
+- consistent normal orientation of surface so
+  specify a 'gapMode' to limit refinement only to
+  gaps on the 'outside' of the surface
diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/constant/polyMesh/blockMeshDict b/tutorials/mesh/snappyHexMesh/gap_detection/constant/polyMesh/blockMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..94bddf09d387f1b8859f23b730522b9f02b8ec99
--- /dev/null
+++ b/tutorials/mesh/snappyHexMesh/gap_detection/constant/polyMesh/blockMeshDict
@@ -0,0 +1,102 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 1;
+
+vertices
+(
+    (-400 -100  -400)
+    ( 400 -100  -400)
+    ( 400  700  -400)
+    (-400  700  -400)
+    (-400 -100   400)
+    ( 400 -100   400)
+    ( 400  700   400)
+    (-400  700   400)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (1 1 1) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    maxY
+    {
+        type patch;
+        faces
+        (
+            (3 7 6 2)
+        );
+    }
+
+    minX
+    {
+        type patch;
+        faces
+        (
+            (0 4 7 3)
+        );
+    }
+
+    maxX
+    {
+        type patch;
+        faces
+        (
+            (2 6 5 1)
+        );
+    }
+
+    minY
+    {
+        type patch;
+        faces
+        (
+            (1 5 4 0)
+        );
+    }
+
+    ground
+    {
+        type patch;
+        faces
+        (
+            (0 3 2 1)
+        );
+    }
+
+    maxZ
+    {
+        type patch;
+        faces
+        (
+            (4 5 6 7)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/constant/triSurface/mech_test.obj b/tutorials/mesh/snappyHexMesh/gap_detection/constant/triSurface/mech_test.obj
new file mode 100644
index 0000000000000000000000000000000000000000..d078954dc0439efcb6123cbf11bfbdf0593c49d9
--- /dev/null
+++ b/tutorials/mesh/snappyHexMesh/gap_detection/constant/triSurface/mech_test.obj
@@ -0,0 +1,124 @@
+# Wavefront OBJ file
+# Regions:
+#     0    patch0
+#
+# points    : 40
+# triangles : 76
+#
+v 80 20 -20
+v -80 20 -20
+v 100 0 0
+v -100 0 0
+v 80 20 -280
+v -80 20 -280
+v 80 280 -100
+v -80 280 -100
+v 100 0 -300
+v -100 0 -300
+v 100 300 -120
+v -100 300 -120
+v 80 280 -280
+v -80 280 -280
+v 100 300 -300
+v -100 300 -300
+v 0 445 0
+v 0 445 -20
+v 3.53538 446.464 0
+v -3.53538 446.464 0
+v -3.53538 446.464 -20
+v 3.53538 446.464 -20
+v 5 450 0
+v -5 450 0
+v -5 450 -20
+v 5 450 -20
+v -3.53538 453.536 0
+v 3.53538 453.536 0
+v -3.53538 453.536 -20
+v 3.53538 453.536 -20
+v 0 455 0
+v 0 455 -20
+v 80 580 -20
+v -80 580 -20
+v 80 580 -100
+v -80 580 -100
+v 100 600 0
+v -100 600 0
+v 100 600 -120
+v -100 600 -120
+g patch0
+f 39 37 3
+f 4 3 37
+f 11 39 3
+f 15 11 3
+f 9 15 3
+f 10 9 3
+f 10 3 4
+f 40 37 39
+f 19 4 37
+f 38 37 40
+f 27 37 38
+f 23 19 37
+f 28 23 37
+f 31 28 37
+f 27 31 37
+f 40 39 11
+f 16 11 15
+f 12 11 16
+f 40 11 12
+f 16 15 9
+f 16 9 10
+f 12 10 4
+f 38 12 4
+f 24 38 4
+f 20 24 4
+f 17 20 4
+f 19 17 4
+f 12 16 10
+f 38 40 12
+f 27 38 24
+f 25 24 20
+f 29 27 24
+f 29 24 25
+f 21 20 17
+f 21 25 20
+f 18 17 19
+f 21 17 18
+f 22 19 23
+f 18 19 22
+f 26 23 28
+f 22 23 26
+f 30 28 31
+f 26 28 30
+f 32 31 27
+f 30 31 32
+f 32 27 29
+f 7 5 1
+f 2 1 5
+f 33 7 1
+f 26 33 1
+f 34 1 2
+f 21 1 34
+f 22 26 1
+f 18 22 1
+f 21 18 1
+f 7 13 5
+f 6 5 13
+f 6 2 5
+f 14 13 7
+f 6 13 14
+f 33 35 7
+f 8 7 35
+f 14 7 8
+f 34 35 33
+f 36 35 34
+f 8 35 36
+f 30 34 33
+f 26 30 33
+f 36 34 2
+f 8 36 2
+f 14 8 2
+f 6 14 2
+f 29 25 34
+f 21 34 25
+f 32 29 34
+f 30 32 34
diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/system/controlDict b/tutorials/mesh/snappyHexMesh/gap_detection/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..2d847ac651ef16113315aef54ade3b79749de02f
--- /dev/null
+++ b/tutorials/mesh/snappyHexMesh/gap_detection/system/controlDict
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev   s                               |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     snappyHexMesh;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         2000;
+
+deltaT          1;
+
+writeControl    timeStep;
+
+writeInterval   100;
+
+purgeWrite      0;
+
+writeFormat     binary;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable true;
+
+
+// ************************************************************************* //
diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/system/decomposeParDict b/tutorials/mesh/snappyHexMesh/gap_detection/system/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..773056e68be8026346ef6fcbd025711f16c6b7ae
--- /dev/null
+++ b/tutorials/mesh/snappyHexMesh/gap_detection/system/decomposeParDict
@@ -0,0 +1,41 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 8;
+
+method          hierarchical;
+
+simpleCoeffs
+{
+    n               ( 4 1 1 );
+    delta           0.001;
+}
+
+hierarchicalCoeffs
+{
+    n               ( 2 2 2 );
+    delta           0.001;
+    order           xyz;
+}
+
+manualCoeffs
+{
+    dataFile        "cellDecomposition";
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/system/fvSchemes b/tutorials/mesh/snappyHexMesh/gap_detection/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..bba4ac8e0c1ad1fc65b558695bd4fd9078df5447
--- /dev/null
+++ b/tutorials/mesh/snappyHexMesh/gap_detection/system/fvSchemes
@@ -0,0 +1,63 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         steadyState;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+
+    div(phi,U)      bounded Gauss upwind;
+    div(phi,T)      bounded Gauss upwind;
+    div(phi,k)      bounded Gauss upwind;
+    div(phi,epsilon) bounded Gauss upwind;
+    div(phi,R)      bounded Gauss upwind;
+    div(R)          Gauss linear;
+    div((nuEff*dev(T(grad(U))))) Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear limited corrected 0.333;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         limited corrected 0.333;
+}
+
+fluxRequired
+{
+    default         no;
+    p_rgh           ;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/system/fvSolution b/tutorials/mesh/snappyHexMesh/gap_detection/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..627615c534bed3dab1b2f02f3a01f3cbef507916
--- /dev/null
+++ b/tutorials/mesh/snappyHexMesh/gap_detection/system/fvSolution
@@ -0,0 +1,69 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    p_rgh
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-08;
+        relTol          0.01;
+    }
+
+    "(U|T|k|epsilon)"
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-07;
+        relTol          0.1;
+    }
+}
+
+SIMPLE
+{
+    nNonOrthogonalCorrectors 2;
+    pRefCell        0;
+    pRefValue       0;
+
+    residualControl
+    {
+        p_rgh           1e-2;
+        U               1e-4;
+        T               1e-3;
+
+        // possibly check turbulence fields
+        "(k|epsilon|omega)" 1e-3;
+    }
+}
+
+relaxationFactors
+{
+    fields
+    {
+        p_rgh           0.7;
+    }
+    equations
+    {
+        U               0.2;
+        T               0.5;
+        "(k|epsilon)"   0.7;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/system/meshQualityDict b/tutorials/mesh/snappyHexMesh/gap_detection/system/meshQualityDict
new file mode 100644
index 0000000000000000000000000000000000000000..fd0701a01c704bcee20a73b031ed27ce23023cf0
--- /dev/null
+++ b/tutorials/mesh/snappyHexMesh/gap_detection/system/meshQualityDict
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      meshQualityDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+// Include defaults parameters from master dictionary
+#include "$WM_PROJECT_DIR/etc/caseDicts/meshQualityDict"
+
+
+// ************************************************************************* //
diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/system/snappyHexMeshDict b/tutorials/mesh/snappyHexMesh/gap_detection/system/snappyHexMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..6da20c38ca1e449a98118c17a9f301d04b83967e
--- /dev/null
+++ b/tutorials/mesh/snappyHexMesh/gap_detection/system/snappyHexMeshDict
@@ -0,0 +1,297 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      snappyHexMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+// Which of the steps to run
+castellatedMesh true;
+snap            false;
+addLayers       false;
+
+
+// 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
+{
+    mech_test.obj
+    {
+        type triSurfaceMesh;
+    }
+    all
+    {
+        type searchableBox;
+        min (-1000 -1000 -1000);
+        max (1000 1000 1000);
+    }
+
+};
+
+
+
+// Settings for the castellatedMesh generation.
+castellatedMeshControls
+{
+
+    // Refinement parameters
+    // ~~~~~~~~~~~~~~~~~~~~~
+
+    // If local number of cells is >= maxLocalCells on any processor
+    // switches from from refinement followed by balancing
+    // (current method) to (weighted) balancing before refinement.
+    maxLocalCells 100000;
+
+    // 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
+    (
+    );
+
+
+
+    // 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
+    {
+        mech_test.obj
+        {
+            // Surface-wise min and max refinement level
+            level (0 0);
+        }
+    }
+
+    // Resolve sharp angles
+    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
+    {
+        all
+        {
+            mode        inside;
+
+            // Dummy base level
+            levels      ((10000 0));
+
+            // If cells
+            // - have level 0..9
+            // - and are in a gap < 3 cell sizes across
+            // - with the gap on the inside ('inside'), outside ('outside')
+            //   or both ('mixed') of the surface
+            // refine them
+            gapLevel    (4 0 10);
+            gapMode     outside;
+        }
+    }
+
+
+    // 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 (-100 -5 -300);
+
+
+    // Whether any faceZones (as specified in the refinementSurfaces)
+    // are only on the boundary of corresponding cellZones or also allow
+    // free-standing zone faces. Not used if there are no faceZones.
+    allowFreeStandingZoneFaces false;
+}
+
+
+
+// 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 2.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;
+
+
+    // Feature snapping
+
+        //- Number of feature edge snapping iterations.
+        //  Leave out altogether to disable.
+        nFeatureSnapIter 10;
+
+        //- Detect (geometric) features by sampling the surface (default=false)
+        implicitFeatureSnap true;
+
+        //- Use castellatedMeshControls::features (default = true)
+        explicitFeatureSnap false;
+}
+
+
+
+// Settings for the layer addition.
+addLayersControls
+{
+    // Are the thickness parameters below relative to the undistorted
+    // size of the refined cell outside layer (true) or absolute sizes (false).
+    relativeSizes true;
+
+    // Per final patch (so not geometry!) the layer information
+    layers
+    {
+    }
+
+    // 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.
+    // is the thickness of the layer furthest away from the wall.
+    // See relativeSizes parameter.
+    finalLayerThickness 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.
+    // See relativeSizes parameter.
+    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.
+    // Note: changed(corrected) w.r.t 17x! (didn't do anything in 17x)
+    nGrow 0;
+
+
+    // Advanced settings
+
+    // When not to extrude surface. 0 is flat surface, 90 is when two faces
+    // are perpendicular
+    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
+    // Note: changed(corrected) w.r.t 16x! 90 degrees corresponds to 130 in 16x.
+    minMedianAxisAngle 90;
+
+    // Create buffer region for new layer terminations
+    nBufferCellsNoExtrude 0;
+
+
+    // Overall max number of layer addition iterations. The mesher will exit
+    // if it reaches this number of iterations; possibly with an illegal
+    // mesh.
+    nLayerIter 50;
+}
+
+
+
+// Generic mesh quality settings. At any undoable phase these determine
+// where to undo.
+meshQualityControls
+{
+    #include "meshQualityDict"
+
+    // Advanced
+
+    //- Number of error distribution iterations
+    nSmoothScale 4;
+    //- amount to scale back displacement at error points
+    errorReduction 0.75;
+}
+
+
+// Advanced
+
+// Merge tolerance. Is fraction of overall bounding box of initial mesh.
+// Note: the write tolerance needs to be higher than this.
+mergeTolerance 1e-6;
+
+// ************************************************************************* //