From 34bc9cadb0167f35be1cd1b656dc86b850dfc005 Mon Sep 17 00:00:00 2001
From: Henry <Henry>
Date: Sat, 1 Feb 2014 17:14:35 +0000
Subject: [PATCH] DTCHull: new interDyMFoam tutorial

---
 .../interDyMFoam/ras/DTCHull/0.org/U          |  58 ++++
 .../ras/DTCHull/0.org/alpha.water             |  54 ++++
 .../interDyMFoam/ras/DTCHull/0.org/k          |  54 ++++
 .../interDyMFoam/ras/DTCHull/0.org/nut        |  53 ++++
 .../interDyMFoam/ras/DTCHull/0.org/omega      |  56 ++++
 .../interDyMFoam/ras/DTCHull/0.org/p_rgh      |  57 ++++
 .../ras/DTCHull/0.org/pointDisplacement       |  52 ++++
 .../interDyMFoam/ras/DTCHull/Allclean         |  17 ++
 .../interDyMFoam/ras/DTCHull/Allrun           |  48 +++
 .../ras/DTCHull/constant/RASProperties        |  25 ++
 .../ras/DTCHull/constant/dynamicMeshDict      |  67 +++++
 .../interDyMFoam/ras/DTCHull/constant/g       |  21 ++
 .../DTCHull/constant/polyMesh/blockMeshDict   | 147 +++++++++
 .../ras/DTCHull/constant/transportProperties  |  36 +++
 .../ras/DTCHull/constant/triSurface/README    |   4 +
 .../ras/DTCHull/constant/turbulenceProperties |  21 ++
 .../ras/DTCHull/system/controlDict            |  72 +++++
 .../ras/DTCHull/system/decomposeParDict       |  58 ++++
 .../interDyMFoam/ras/DTCHull/system/fvSchemes |  63 ++++
 .../ras/DTCHull/system/fvSolution             | 117 ++++++++
 .../ras/DTCHull/system/meshQualityDict        |  86 ++++++
 .../ras/DTCHull/system/refineMeshDict         |  43 +++
 .../ras/DTCHull/system/setFieldsDict          |  49 +++
 .../ras/DTCHull/system/snappyHexMeshDict      | 284 ++++++++++++++++++
 .../DTCHull/system/surfaceFeatureExtractDict  |  48 +++
 .../ras/DTCHull/system/topoSetDict.1          |  32 ++
 .../ras/DTCHull/system/topoSetDict.2          |  32 ++
 .../ras/DTCHull/system/topoSetDict.3          |  32 ++
 .../ras/DTCHull/system/topoSetDict.4          |  32 ++
 .../ras/DTCHull/system/topoSetDict.5          |  32 ++
 .../ras/DTCHull/system/topoSetDict.6          |  32 ++
 31 files changed, 1782 insertions(+)
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/U
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/alpha.water
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/k
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/nut
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/omega
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/p_rgh
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/pointDisplacement
 create mode 100755 tutorials/multiphase/interDyMFoam/ras/DTCHull/Allclean
 create mode 100755 tutorials/multiphase/interDyMFoam/ras/DTCHull/Allrun
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/RASProperties
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/dynamicMeshDict
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/g
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/polyMesh/blockMeshDict
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/transportProperties
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/triSurface/README
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/turbulenceProperties
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/controlDict
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/decomposeParDict
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/fvSchemes
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/fvSolution
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/meshQualityDict
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/refineMeshDict
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/setFieldsDict
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/snappyHexMeshDict
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/surfaceFeatureExtractDict
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.1
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.2
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.3
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.4
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.5
 create mode 100644 tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.6

diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/U b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/U
new file mode 100644
index 00000000000..507cfa947df
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/U
@@ -0,0 +1,58 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    location    "0";
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Umean 1.668;
+mUmean -1.668;
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform ($mUmean 0 0);
+
+boundaryField
+{
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
+    inlet
+    {
+        type            fixedValue;
+        value           $internalField;
+    }
+
+    outlet
+    {
+        type            outletPhaseMeanVelocity;
+        alpha           alpha.water;
+        Umean           $Umean;
+        value           $internalField;
+    }
+
+    atmosphere
+    {
+        type            pressureInletOutletVelocity;
+        value           uniform (0 0 0);
+    }
+
+    hull
+    {
+        type            movingWallVelocity;
+        value           uniform (0 0 0);
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/alpha.water b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/alpha.water
new file mode 100644
index 00000000000..06ee368c9c4
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/alpha.water
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      alpha;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
+    inlet
+    {
+        type            fixedValue;
+        value           $internalField;
+    }
+
+    outlet
+    {
+        type            variableHeightFlowRate;
+        lowerBound      0;
+        upperBound      1;
+        value           $internalField;
+    }
+
+    atmosphere
+    {
+        type            inletOutlet;
+        inletValue      $internalField;
+        value           $internalField;
+    }
+
+    hull
+    {
+        type            zeroGradient;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/k b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/k
new file mode 100644
index 00000000000..392241cd6fa
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/k
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      k;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0.00015;
+
+boundaryField
+{
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
+    inlet
+    {
+        type            fixedValue;
+        value           $internalField;
+    }
+
+    outlet
+    {
+       type            inletOutlet;
+       inletValue      $internalField;
+       value           $internalField;
+    }
+
+    atmosphere
+    {
+        type            inletOutlet;
+        inletValue      $internalField;
+        value           $internalField;
+    }
+
+    hull
+    {
+        type            kqRWallFunction;
+        value           $internalField;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/nut b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/nut
new file mode 100644
index 00000000000..4abe529d46d
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/nut
@@ -0,0 +1,53 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      nut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -1 0 0 0 0];
+
+internalField   uniform 5e-07;
+
+boundaryField
+{
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
+    inlet
+    {
+        type            fixedValue;
+        value           $internalField;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    atmosphere
+    {
+        type            zeroGradient;
+    }
+
+    hull
+    {
+        type            nutkRoughWallFunction;
+        Ks              uniform 100e-6;
+        Cs              uniform 0.5;
+        value           $internalField;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/omega b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/omega
new file mode 100644
index 00000000000..0dde05c3ac1
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/omega
@@ -0,0 +1,56 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      omega;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 -1 0 0 0 0];
+
+internalField   uniform 2;
+
+boundaryField
+{
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
+    inlet
+    {
+        type            fixedValue;
+        value           $internalField;
+    }
+
+    outlet
+    {
+       type            inletOutlet;
+       inletValue      $internalField;
+       value           $internalField;
+    }
+
+    atmosphere
+    {
+        type            inletOutlet;
+        inletValue      $internalField;
+        value           $internalField;
+    }
+
+    hull
+    {
+        type            omegaWallFunction;
+        value           $internalField;
+    }
+}
+
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/p_rgh b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/p_rgh
new file mode 100644
index 00000000000..0c0eda7c6fa
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/p_rgh
@@ -0,0 +1,57 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
+    inlet
+    {
+        type            fixedFluxPressure;
+        value           $internalField;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    atmosphere
+    {
+        type            totalPressure;
+        p0              uniform 0;
+        U               U;
+        phi             phi;
+        rho             rho;
+        psi             none;
+        gamma           1;
+        value           $internalField;
+    }
+
+    hull
+    {
+        type            fixedFluxPressure;
+        value           $internalField;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/pointDisplacement b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/pointDisplacement
new file mode 100644
index 00000000000..350676e605b
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/0.org/pointDisplacement
@@ -0,0 +1,52 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       pointVectorField;
+    location    "0";
+    object      pointDisplacement;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 0 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    //- Set patchGroups for constraint patches
+    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
+
+    inlet
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+
+    outlet
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+
+    atmosphere
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+
+    hull
+    {
+        type            calculated;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/Allclean b/tutorials/multiphase/interDyMFoam/ras/DTCHull/Allclean
new file mode 100755
index 00000000000..7ae6e656d7b
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/Allclean
@@ -0,0 +1,17 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+
+# Source tutorial clean functions
+. $WM_PROJECT_DIR/bin/tools/CleanFunctions
+
+# remove surface
+\rm -f constant/triSurface/DTC-scaled.stl.gz > /dev/null 2>&1
+\rm -rf constant/extendedFeatureEdgeMesh > /dev/null 2>&1
+\rm -f constant/triSurface/DTC-scaled.eMesh > /dev/null 2>&1
+
+cleanCase
+\rm constant/polyMesh/boundary > /dev/null 2>&1
+\rm -rf 0 > /dev/null 2>&1
+\rm system/topoSetDict > /dev/null 2>&1
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/Allrun b/tutorials/multiphase/interDyMFoam/ras/DTCHull/Allrun
new file mode 100755
index 00000000000..b4f55601745
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/Allrun
@@ -0,0 +1,48 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+runRefineMesh ()
+{
+    echo "Running refineMesh on $PWD"
+    refineMesh -dict system/refineMeshDict -overwrite > log.refineMesh 2>&1
+}
+
+# copy DTC hull surface from resources folder
+cp $FOAM_TUTORIALS/resources/geometry/DTC-scaled.stl.gz constant/triSurface/
+
+runApplication surfaceFeatureExtract
+
+runApplication blockMesh
+
+i=1
+if [ -f log.topoSet.6 ] ; then
+   i=7
+fi
+while [ "$i" -lt 7 ] ; do
+    cp system/topoSetDict.${i} system/topoSetDict
+    runApplication topoSet
+    runRefineMesh
+    mv log.topoSet log.topoSet.$i
+    mv log.refineMesh log.refineMesh.$i
+    i=$(expr $i + 1)
+done
+
+runApplication snappyHexMesh -overwrite
+
+\rm -rf 0
+\cp -r 0.org 0
+
+runApplication setFields
+
+runApplication decomposePar
+
+runParallel renumberMesh 8 -overwrite
+
+runParallel $(getApplication) 8
+
+runApplication reconstructPar
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/RASProperties b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/RASProperties
new file mode 100644
index 00000000000..e0e6b776a27
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/RASProperties
@@ -0,0 +1,25 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      RASProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+RASModel        kOmegaSST;
+
+turbulence      on;
+
+printCoeffs     on;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/dynamicMeshDict
new file mode 100644
index 00000000000..7e7f4969af5
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/dynamicMeshDict
@@ -0,0 +1,67 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      dynamicMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dynamicFvMesh       dynamicMotionSolverFvMesh;
+
+motionSolverLibs    ("libsixDoFRigidBodyMotion.so");
+
+solver              sixDoFRigidBodyMotion;
+
+sixDoFRigidBodyMotionCoeffs
+{
+    patches         (hull);
+    innerDistance   0.3;
+    outerDistance   1;
+
+    centreOfMass    (2.929541 0 0.2);
+    mass            412.73;
+    momentOfInertia (40 921 921);
+    rhoInf          1;
+    report          on;
+    accelerationRelaxation 0.3;
+    value           uniform (0 0 0);
+
+    constraints
+    {
+        zAxis
+        {
+            sixDoFRigidBodyMotionConstraint line;
+            direction     (0 0 1);
+        }
+        yPlane
+        {
+            sixDoFRigidBodyMotionConstraint axis;
+            axis          (0 1 0);
+        }
+    }
+
+    restraints
+    {
+        translationDamper
+        {
+            sixDoFRigidBodyMotionRestraint linearDamper;
+            coeff         8596;
+        }
+        rotationDamper
+        {
+            sixDoFRigidBodyMotionRestraint sphericalAngularDamper;
+            coeff         11586;
+        }
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/g b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/g
new file mode 100644
index 00000000000..a0d7102656f
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/g
@@ -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       uniformDimensionedVectorField;
+    location    "constant";
+    object      g;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -2 0 0 0 0];
+value           (0 0 -9.81);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/polyMesh/blockMeshDict b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/polyMesh/blockMeshDict
new file mode 100644
index 00000000000..4abd94d9818
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/polyMesh/blockMeshDict
@@ -0,0 +1,147 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.2.2                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 1;
+
+vertices
+(
+    (-26 -19 -16)
+    (16 -19 -16)
+    (16 0 -16)
+    (-26 0 -16)
+
+    (-26 -19 -1)
+    (16 -19 -1)
+    (16 0 -1)
+    (-26 0 -1)
+
+    (-26 -19 0.185)
+    (16 -19 0.185)
+    (16 0 0.185)
+    (-26 0 0.185)
+
+    (-26 -19 0.244)
+    (16 -19 0.244)
+    (16 0 0.244)
+    (-26 0 0.244)
+
+    (-26 -19 0.3)
+    (16 -19 0.3)
+    (16 0 0.3)
+    (-26 0 0.3)
+
+    (-26 -19 1.6)
+    (16 -19 1.6)
+    (16 0 1.6)
+    (-26 0 1.6)
+
+    (-26 -19 4)
+    (16 -19 4)
+    (16 0 4)
+    (-26 0 4)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (42 19 50) simpleGrading (1 1 0.05)
+    hex (4 5 6 7 8 9 10 11) (42 19 50) simpleGrading (1 1 1)
+    hex (8 9 10 11 12 13 14 15) (42 19 4) simpleGrading (1 1 1)
+    hex (12 13 14 15 16 17 18 19) (42 19 4) simpleGrading (1 1 1)
+    hex (16 17 18 19 20 21 22 23) (42 19 40) simpleGrading (1 1 1)
+    hex (20 21 22 23 24 25 26 27) (42 19 20) simpleGrading (1 1 5)
+);
+
+edges
+(
+);
+
+boundary
+(
+    atmosphere
+    {
+        type patch;
+        faces
+        (
+            (24 25 26 27)
+        );
+    }
+    inlet
+    {
+        type patch;
+        faces
+        (
+            (1 2 6 5)
+            (5 6 10 9)
+            (9 10 14 13)
+            (13 14 18 17)
+            (17 18 22 21)
+            (21 22 26 25)
+        );
+    }
+    outlet
+    {
+        type patch;
+        faces
+        (
+            (0 4 7 3)
+            (4 8 11 7)
+            (8 12 15 11)
+            (12 16 19 15)
+            (16 20 23 19)
+            (20 24 27 23)
+        );
+    }
+    bottom
+    {
+        type symmetryPlane;
+        faces
+        (
+            (0 3 2 1)
+        );
+    }
+    side
+    {
+        type symmetryPlane;
+        faces
+        (
+            (0 1 5 4)
+            (4 5 9 8)
+            (8 9 13 12)
+            (12 13 17 16)
+            (16 17 21 20)
+            (20 21 25 24)
+        );
+    }
+    midPlane
+    {
+        type symmetryPlane;
+        faces
+        (
+            (3 7 6 2)
+            (7 11 10 6)
+            (11 15 14 10)
+            (15 19 18 14)
+            (19 23 22 18)
+            (23 27 26 22)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/transportProperties b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/transportProperties
new file mode 100644
index 00000000000..0bfa2f19b96
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/transportProperties
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+phases (water air);
+
+water
+{
+    transportModel  Newtonian;
+    nu              nu [ 0 2 -1 0 0 0 0 ]  1.09e-06;
+    rho             rho [ 1 -3 0 0 0 0 0 ] 998.8;
+}
+
+air
+{
+    transportModel  Newtonian;
+    nu              nu [ 0 2 -1 0 0 0 0 ]  1.48e-05;
+    rho             rho [ 1 -3 0 0 0 0 0 ] 1;
+}
+
+sigma           sigma [ 1 0 -2 0 0 0 0 ] 0;
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/triSurface/README b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/triSurface/README
new file mode 100644
index 00000000000..dbf3b73d5fc
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/triSurface/README
@@ -0,0 +1,4 @@
+Folder to house tri-surfaces
+
+The Allrun script copies the surface from the $FOAM_TUTORIALS/resources/geometry
+folder
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/turbulenceProperties b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/turbulenceProperties
new file mode 100644
index 00000000000..3721a46a2ea
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  RASModel;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/controlDict b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/controlDict
new file mode 100644
index 00000000000..0af365257e4
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/controlDict
@@ -0,0 +1,72 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     interDyMFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         50;
+
+deltaT          0.0001;
+
+writeControl    adjustableRunTime;
+
+writeInterval   5;
+
+purgeWrite      0;
+
+writeFormat     binary;
+
+writePrecision  6;
+
+writeCompression uncompressed;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+adjustTimeStep  yes;
+
+maxCo           25;
+maxAlphaCo      15;
+maxDeltaT       0.01;
+
+functions
+{
+    forces
+    {
+        type forces;
+        functionObjectLibs ( "libforces.so" );
+        patches (hull);
+        rhoInf  998.8;
+        rhoName rho;
+        UName   U;
+        log     on;
+        outputControl   timeStep;
+        outputInterval  1;
+        CofR (2.929541 0 0.2);
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/decomposeParDict
new file mode 100644
index 00000000000..2f4ac2cb1a1
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/decomposeParDict
@@ -0,0 +1,58 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          decomposeParDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 8;
+
+method          scotch;
+
+simpleCoeffs
+{
+    n               (2 1 1);
+    delta           0.001;
+}
+
+hierarchicalCoeffs
+{
+    n               (1 1 1);
+    delta           0.001;
+    order           xyz;
+}
+
+metisCoeffs
+{
+}
+
+manualCoeffs
+{
+    dataFile        "";
+}
+
+distributed     no;
+
+roots
+(
+);
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/fvSchemes b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/fvSchemes
new file mode 100644
index 00000000000..4bca38f8ba9
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/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         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+    limitedGrad     cellLimited Gauss linear 1;
+}
+
+divSchemes
+{
+    div(rhoPhi,U)   Gauss linearUpwind grad(U);
+    div(phi,alpha)  Gauss vanLeer;
+    div(phirb,alpha) Gauss linear;
+    div(phi,k)      Gauss linearUpwind limitedGrad;
+    div(phi,omega)  Gauss linearUpwind limitedGrad;
+    div((muEff*dev(T(grad(U))))) Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear corrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         corrected;
+}
+
+fluxRequired
+{
+    default         no;
+    p_rgh;
+    pcorr;
+    alpha.water;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/fvSolution
new file mode 100644
index 00000000000..208497384fb
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/fvSolution
@@ -0,0 +1,117 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    "alpha.water.*"
+    {
+        nAlphaCorr      3;
+        nAlphaSubCycles 1;
+        cAlpha          1;
+        icAlpha         0;
+
+        alphaOuterCorrectors  yes;
+
+        MULESCorr       yes;
+        nLimiterIter    10;
+        alphaApplyPrevCorr  yes;
+
+        solver          smoothSolver;
+        smoother        symGaussSeidel;
+        tolerance       1e-10;
+        relTol          0;
+        minIter         1;
+    }
+
+    "pcorr.*"
+    {
+        solver          GAMG;
+
+        smoother        DIC;
+        agglomerator    faceAreaPair;
+        mergeLevels     1;
+        nCellsInCoarsestLevel 10;
+        cacheAgglomeration true;
+
+        tolerance       0.1;
+        relTol          0;
+    };
+
+    p_rgh
+    {
+        solver          GAMG;
+
+        smoother        DIC;
+        agglomerator    faceAreaPair;
+        mergeLevels     1;
+        nCellsInCoarsestLevel 10;
+        cacheAgglomeration true;
+
+        tolerance       5e-8;
+        relTol          0.001;
+    };
+
+    p_rghFinal
+    {
+        $p_rgh;
+        relTol          0;
+    }
+
+    "(U|k|omega).*"
+    {
+        solver          smoothSolver;
+
+        smoother        symGaussSeidel;
+        nSweeps         1;
+
+        tolerance       1e-7;
+        relTol          0;
+        minIter         1;
+    };
+}
+
+PIMPLE
+{
+    momentumPredictor no;
+
+    nOuterCorrectors 1;
+    nCorrectors      3;
+    nNonOrthogonalCorrectors 0;
+
+    correctPhi      yes;
+    moveMeshOuterCorrectors yes;
+    turbOnFinalIterOnly yes;
+}
+
+relaxationFactors
+{
+    fields
+    {
+    }
+    equations
+    {
+        ".*" 1;
+    }
+}
+
+cache
+{
+    grad(U);
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/meshQualityDict b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/meshQualityDict
new file mode 100644
index 00000000000..465d20f1c51
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/meshQualityDict
@@ -0,0 +1,86 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.2.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      meshQualityDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+//- Maximum non-orthogonality allowed. Set to 180 to disable.
+maxNonOrtho 70;
+
+//- 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 pyramid volume. Is absolute volume of cell pyramid.
+//  Set to a sensible fraction of the smallest cell volume expected.
+//  Set to very negative number (e.g. -1E30) to disable.
+minVol 1e-13;
+
+//- Minimum quality of the tet formed by the face-centre
+//  and variable base point minimum decomposition triangles and
+//  the cell centre.  Set to very negative number (e.g. -1E30) to
+//  disable.
+//     <0 = inside out tet,
+//      0 = flat tet
+//      1 = regular tet
+minTetQuality 1e-30;
+
+//- 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;
+
+//- if >0 : preserve single cells with all points on the surface if the
+//  resulting volume after snapping (by approximation) is larger than
+//  minVolCollapseRatio times old volume (i.e. not collapsed to flat cell).
+//  If <0 : delete always.
+//minVolCollapseRatio 0.5;
+
+
+// Advanced
+
+//- Number of error distribution iterations
+nSmoothScale 4;
+//- amount to scale back displacement at error points
+errorReduction 0.75;
+
+
+
+// Optional : some meshing phases allow usage of relaxed rules.
+// See e.g. addLayersControls::nRelaxedIter.
+relaxed
+{
+    //- Maximum non-orthogonality allowed. Set to 180 to disable.
+    maxNonOrtho 75;
+}
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/refineMeshDict b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/refineMeshDict
new file mode 100644
index 00000000000..9516d1cf6a6
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/refineMeshDict
@@ -0,0 +1,43 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.2.2                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      refineMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+set             c0;
+
+coordinateSystem global;
+
+globalCoeffs
+{
+    tan1            ( 1 0 0 );
+    tan2            ( 0 1 0 );
+}
+
+patchLocalCoeffs
+{
+    patch           outside;
+    tan1            ( 1 0 0 );
+}
+
+directions      ( tan1 tan2 );
+
+useHexTopology  no;
+
+geometricCut    yes;
+
+writeMesh       no;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/setFieldsDict b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/setFieldsDict
new file mode 100644
index 00000000000..c19c3b991d1
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/setFieldsDict
@@ -0,0 +1,49 @@
+/*--------------------------------*- 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      setFieldsDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+defaultFieldValues
+(
+    volScalarFieldValue alpha.water 0
+);
+
+regions
+(
+    // Set cell values
+    // (does zerogradient on boundaries)
+    boxToCell
+    {
+        box (-999 -999 -999) (999 999 0.244);
+
+        fieldValues
+        (
+            volScalarFieldValue alpha.water 1
+        );
+    }
+
+    // Set patch values (using ==)
+    boxToFace
+    {
+        box (-999 -999 -999) (999 999 0.244);
+
+        fieldValues
+        (
+            volScalarFieldValue alpha.water 1
+        );
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/snappyHexMeshDict b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/snappyHexMeshDict
new file mode 100644
index 00000000000..fbb5e12522a
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/snappyHexMeshDict
@@ -0,0 +1,284 @@
+/*--------------------------------*- 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            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
+{
+    DTC-scaled.stl
+    {
+        type triSurfaceMesh;
+        name hull;
+
+        patchInfo
+        {
+            type wall;
+        }
+    }
+};
+
+
+
+// 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 3;
+
+
+
+    // 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 "DTC-scaled.eMesh";
+             level 0;
+         }
+    );
+
+
+
+    // 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
+    {
+        hull
+        {
+            // Surface-wise min and max refinement level
+            level (0 0);
+        }
+    }
+
+    resolveFeatureAngle 45;
+
+
+    // 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 (-0.7 0 0);
+
+
+    // 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 true;
+}
+
+
+
+// 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;
+    tolerance 1.0;
+
+    //- Number of mesh displacement relaxation iterations.
+    nSolveIter 100;
+
+    //- Maximum number of snapping relaxation iterations. Should stop
+    //  before upon reaching a correct mesh.
+    nRelaxIter 5;
+
+    nFeatureSnapIter 10;
+}
+
+
+
+// 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
+    {
+        hull
+        {
+            nSurfaceLayers 3;
+
+        }
+    }
+
+    // Expansion factor for layer mesh
+    expansionRatio 1.5;
+
+
+    // Wanted thickness of final added cell layer. If multiple layers
+    // is the thickness of the layer furthest away from the wall.
+    // See relativeSizes parameter.
+    finalLayerThickness 0.7;
+
+    // Minimum thickness of cell layer. If for any reason layer
+    // cannot be above minThickness do not add 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 17x! 90 degrees corresponds to 130 in 17x.
+    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;
+
+    // Max number of iterations after which relaxed meshQuality controls
+    // get used. Up to nRelaxIter it uses the settings in meshQualityControls,
+    // after nRelaxIter it uses the values in meshQualityControls::relaxed.
+    nRelaxedIter 20;
+}
+
+
+
+// Generic mesh quality settings. At any undoable phase these determine
+// where to undo.
+meshQualityControls
+{
+    #include "meshQualityDict"
+}
+
+
+// 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/multiphase/interDyMFoam/ras/DTCHull/system/surfaceFeatureExtractDict b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/surfaceFeatureExtractDict
new file mode 100644
index 00000000000..bba292f5768
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/surfaceFeatureExtractDict
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.2.2                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      surfaceFeatureExtractDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+DTC-scaled.stl
+{
+    // How to obtain raw features (extractFromFile || extractFromSurface)
+    extractionMethod    extractFromSurface;
+
+    extractFromSurfaceCoeffs
+    {
+        // Mark edges whose adjacent surface normals are at an angle less
+        // than includedAngle as features
+        // - 0  : selects no edges
+        // - 180: selects all edges
+        includedAngle   150;
+    }
+
+    subsetFeatures
+    {
+        // Keep nonManifold edges (edges with >2 connected faces)
+        nonManifoldEdges       yes;
+
+        // Keep open edges (edges with 1 connected face)
+        openEdges       yes;
+    }
+
+
+    // Write options
+
+        // Write features to obj format for postprocessing
+        writeObj                yes;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.1 b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.1
new file mode 100644
index 00000000000..ec5de6422dc
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.1
@@ -0,0 +1,32 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.2.2                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      topoSetDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    {
+        name    c0;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-10 -6 -3) (10 0 3);
+        }
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.2 b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.2
new file mode 100644
index 00000000000..902dd3ba3c9
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.2
@@ -0,0 +1,32 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.2.2                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      topoSetDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    {
+        name    c0;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-5 -3 -2.5) (9 0 2);
+        }
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.3 b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.3
new file mode 100644
index 00000000000..74843219116
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.3
@@ -0,0 +1,32 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.2.2                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      topoSetDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    {
+        name    c0;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-3 -1.5 -1) (8 0 1.5);
+        }
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.4 b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.4
new file mode 100644
index 00000000000..7b6fb9f99f4
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.4
@@ -0,0 +1,32 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.2.2                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      topoSetDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    {
+        name    c0;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-2 -1 -0.6) (7 0 1);
+        }
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.5 b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.5
new file mode 100644
index 00000000000..410c7b036c5
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.5
@@ -0,0 +1,32 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.2.2                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      topoSetDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    {
+        name    c0;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-1 -0.6 -0.3) (6.5 0 0.8);
+        }
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.6 b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.6
new file mode 100644
index 00000000000..81547b62340
--- /dev/null
+++ b/tutorials/multiphase/interDyMFoam/ras/DTCHull/system/topoSetDict.6
@@ -0,0 +1,32 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.2.2                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      topoSetDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    {
+        name    c0;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-0.5 -0.55 -0.15) (6.25 0 0.65);
+        }
+    }
+);
+
+// ************************************************************************* //
-- 
GitLab