diff --git a/applications/solvers/multiphase/cavitatingFoam/createFields.H b/applications/solvers/multiphase/cavitatingFoam/createFields.H
index 2c834dc51180128be9debf843ee2deb504ea5695..3c28de16c5c1fa214524ec5bd607a3be8855cf5b 100644
--- a/applications/solvers/multiphase/cavitatingFoam/createFields.H
+++ b/applications/solvers/multiphase/cavitatingFoam/createFields.H
@@ -57,12 +57,12 @@
 
     Info<< "Reading transportProperties\n" << endl;
 
-    incompressibleTwoPhaseMixture twoPhaseProperties(U, phi);
+    incompressibleTwoPhaseMixture mixture(U, phi);
 
-    volScalarField& alphav(twoPhaseProperties.alpha1());
+    volScalarField& alphav(mixture.alpha1());
     alphav.oldTime();
 
-    volScalarField& alphal(twoPhaseProperties.alpha2());
+    volScalarField& alphal(mixture.alpha2());
 
     Info<< "Creating compressibilityModel\n" << endl;
     autoPtr<barotropicCompressibilityModel> psiModel =
@@ -85,5 +85,5 @@
     // Create incompressible turbulence model
     autoPtr<incompressible::turbulenceModel> turbulence
     (
-        incompressible::turbulenceModel::New(U, phi, twoPhaseProperties)
+        incompressible::turbulenceModel::New(U, phi, mixture)
     );
diff --git a/applications/solvers/multiphase/compressibleInterFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/Make/options
index 035116d2d5723d4f0ef19facc19be5732966c612..54e9f74e4af7dbe9ba1978683edd8ed9316a95da 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/Make/options
@@ -1,5 +1,6 @@
 EXE_INC = \
     -ItwoPhaseMixtureThermo \
+    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
     -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/TEqn.H b/applications/solvers/multiphase/compressibleInterFoam/TEqn.H
index d97e8b2a3549db8ea23edc6c073a5bb160c6537c..a02b38a8d8c6ea06da447fc8613ede22316e4894 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/TEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/TEqn.H
@@ -3,19 +3,19 @@
     (
         fvm::ddt(rho, T)
       + fvm::div(rhoPhi, T)
-      - fvm::laplacian(twoPhaseProperties.alphaEff(turbulence->mut()), T)
+      - fvm::laplacian(mixture.alphaEff(turbulence->mut()), T)
       + (
             fvc::div(fvc::absolute(phi, U), p)
           + fvc::ddt(rho, K) + fvc::div(rhoPhi, K)
         )
        *(
-           alpha1/twoPhaseProperties.thermo1().Cv()
-         + alpha2/twoPhaseProperties.thermo2().Cv()
+           alpha1/mixture.thermo1().Cv()
+         + alpha2/mixture.thermo2().Cv()
         )
     );
 
     TEqn.relax();
     TEqn.solve();
 
-    twoPhaseProperties.correct();
+    mixture.correct();
 }
diff --git a/applications/solvers/multiphase/compressibleInterFoam/UEqn.H b/applications/solvers/multiphase/compressibleInterFoam/UEqn.H
index 8fc397e8020c8d6c0786192d39dc386d57c0af4f..44be32aac22f201585518420fd22577ad48bd76a 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/UEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/UEqn.H
@@ -16,7 +16,7 @@
             fvc::reconstruct
             (
                 (
-                    fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
+                    interface.surfaceTensionForce()
                   - ghf*fvc::snGrad(rho)
                   - fvc::snGrad(p_rgh)
                 ) * mesh.magSf()
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
index cf9a1d85ecfb9f3452ac945cdc49057a25b8f1be..123645b4c3616bf3f8a53f6e2c4926059ce0af79 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
@@ -1,6 +1,7 @@
 EXE_INC = \
     -I.. \
     -I../twoPhaseMixtureThermo \
+    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
     -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
index e7fd7241db93d9e82c1c2c06a289c8afda7d6c30..89089fe616f3a513449e661da797e19df58218ba 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
@@ -15,7 +15,7 @@
     surfaceScalarField phig
     (
         (
-            fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
+            interface.surfaceTensionForce()
           - ghf*fvc::snGrad(rho)
         )*rAUf*mesh.magSf()
     );
diff --git a/applications/solvers/multiphase/compressibleInterFoam/createFields.H b/applications/solvers/multiphase/compressibleInterFoam/createFields.H
index c4edc961d887231dfa7be0afe4f105f39379862c..5f7b4dddadf88dc0621b0c3e24567fad7327d1d6 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/createFields.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/createFields.H
@@ -29,19 +29,19 @@
     #include "createPhi.H"
 
     Info<< "Constructing twoPhaseMixtureThermo\n" << endl;
-    twoPhaseMixtureThermo twoPhaseProperties(mesh);
+    twoPhaseMixtureThermo mixture(mesh);
 
-    volScalarField& alpha1(twoPhaseProperties.alpha1());
-    volScalarField& alpha2(twoPhaseProperties.alpha2());
+    volScalarField& alpha1(mixture.alpha1());
+    volScalarField& alpha2(mixture.alpha2());
 
     Info<< "Reading thermophysical properties\n" << endl;
 
-    volScalarField& p = twoPhaseProperties.p();
-    volScalarField& T = twoPhaseProperties.T();
-    volScalarField& rho1 = twoPhaseProperties.thermo1().rho();
-    const volScalarField& psi1 = twoPhaseProperties.thermo1().psi();
-    volScalarField& rho2 = twoPhaseProperties.thermo2().rho();
-    const volScalarField& psi2 = twoPhaseProperties.thermo2().psi();
+    volScalarField& p = mixture.p();
+    volScalarField& T = mixture.T();
+    volScalarField& rho1 = mixture.thermo1().rho();
+    const volScalarField& psi1 = mixture.thermo1().psi();
+    volScalarField& rho2 = mixture.thermo2().rho();
+    const volScalarField& psi2 = mixture.thermo2().psi();
 
     volScalarField rho
     (
@@ -57,7 +57,7 @@
     );
 
 
-    dimensionedScalar pMin(twoPhaseProperties.lookup("pMin"));
+    dimensionedScalar pMin(mixture.lookup("pMin"));
 
     Info<< "Calculating field g.h\n" << endl;
     volScalarField gh("gh", g & mesh.C());
@@ -85,12 +85,12 @@
     );
 
     // Construct interface from alpha1 distribution
-    interfaceProperties interface(alpha1, U, twoPhaseProperties);
+    interfaceProperties interface(alpha1, U, mixture);
 
     // Construct compressible turbulence model
     autoPtr<compressible::turbulenceModel> turbulence
     (
-        compressible::turbulenceModel::New(rho, U, rhoPhi, twoPhaseProperties)
+        compressible::turbulenceModel::New(rho, U, rhoPhi, mixture)
     );
 
     Info<< "Creating field kinetic energy K\n" << endl;
diff --git a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
index dbd859b954b7da6f4ed8fb154a39f852e449f47c..673f1c827101b537b0d72433d8f1a3afbc59d4c3 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
@@ -15,7 +15,7 @@
     surfaceScalarField phig
     (
         (
-            fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
+            interface.surfaceTensionForce()
           - ghf*fvc::snGrad(rho)
         )*rAUf*mesh.magSf()
     );
diff --git a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/Make/options b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/Make/options
index 8dbf02aa064f4b84035f1add8501ab51a817af5f..5c8c8df239b6510608705ebafbf55c843b7870f0 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/Make/options
@@ -1,4 +1,5 @@
 EXE_INC = \
+    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
index 0f47e6979edee7a5294823ff42e883991eb5279e..af7020f40f67acdba7bc2b56fc849692b59ba410 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
@@ -1,5 +1,7 @@
 EXE_INC = \
+    -I../interFoam \
     -ImultiphaseMixtureThermo/lnInclude \
+    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
     -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/TEqn.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/TEqn.H
index a7ee3a7bb4ba946d65f522cf716e0e1d66781e4b..66274441c3ee87385575f297d00c7d39baad53ff 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/TEqn.H
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/TEqn.H
@@ -2,16 +2,16 @@
     fvScalarMatrix TEqn
     (
         fvm::ddt(rho, T)
-      + fvm::div(multiphaseProperties.rhoPhi(), T)
-      - fvm::laplacian(multiphaseProperties.alphaEff(turbulence->mut()), T)
+      + fvm::div(mixture.rhoPhi(), T)
+      - fvm::laplacian(mixture.alphaEff(turbulence->mut()), T)
       + (
             fvc::div(fvc::absolute(phi, U), p)
-          + fvc::ddt(rho, K) + fvc::div(multiphaseProperties.rhoPhi(), K)
-        )*multiphaseProperties.rCv()
+          + fvc::ddt(rho, K) + fvc::div(mixture.rhoPhi(), K)
+        )*mixture.rCv()
     );
 
     TEqn.relax();
     TEqn.solve();
 
-    multiphaseProperties.correct();
+    mixture.correct();
 }
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/UEqn.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/UEqn.H
index 38cfebde6f3c8412ae037cd96f68907953a30850..436b74e84615b86fe01fd6b6b9a3f51956b8ebf1 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/UEqn.H
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/UEqn.H
@@ -1,7 +1,7 @@
     fvVectorMatrix UEqn
     (
         fvm::ddt(rho, U)
-      + fvm::div(multiphaseProperties.rhoPhi(), U)
+      + fvm::div(mixture.rhoPhi(), U)
       + turbulence->divDevRhoReff(U)
     );
 
@@ -16,7 +16,7 @@
             fvc::reconstruct
             (
                 (
-                    multiphaseProperties.surfaceTensionForce()
+                    mixture.surfaceTensionForce()
                   - ghf*fvc::snGrad(rho)
                   - fvc::snGrad(p_rgh)
                 ) * mesh.magSf()
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C
index 09018b603f0089b685ddcca2497877b1eb6db9d1..5648f2d3bd24831f9bc14c2a7405131421f2c767 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2013-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -76,9 +76,9 @@ int main(int argc, char *argv[])
         // --- Pressure-velocity PIMPLE corrector loop
         while (pimple.loop())
         {
-            multiphaseProperties.solve();
+            mixture.solve();
 
-            solve(fvm::ddt(rho) + fvc::div(multiphaseProperties.rhoPhi()));
+            solve(fvm::ddt(rho) + fvc::div(mixture.rhoPhi()));
 
             #include "UEqn.H"
             #include "TEqn.H"
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/createFields.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/createFields.H
index 5c7f723a875a0ef6fe8d93b8679f01b3cc5ee7f2..8ab0a9581a8f4b9be9e3a8355ef301adaf4ec76e 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/createFields.H
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/createFields.H
@@ -29,10 +29,10 @@
     #include "createPhi.H"
 
     Info<< "Constructing multiphaseMixtureThermo\n" << endl;
-    multiphaseMixtureThermo multiphaseProperties(U, phi);
+    multiphaseMixtureThermo mixture(U, phi);
 
-    volScalarField& p = multiphaseProperties.p();
-    volScalarField& T = multiphaseProperties.T();
+    volScalarField& p = mixture.p();
+    volScalarField& T = mixture.T();
 
     volScalarField rho
     (
@@ -43,12 +43,12 @@
             mesh,
             IOobject::READ_IF_PRESENT
         ),
-        multiphaseProperties.rho()
+        mixture.rho()
     );
 
     Info<< max(rho) << min(rho);
 
-    dimensionedScalar pMin(multiphaseProperties.lookup("pMin"));
+    dimensionedScalar pMin(mixture.lookup("pMin"));
 
 
     Info<< "Calculating field g.h\n" << endl;
@@ -62,8 +62,8 @@
         (
             rho,
             U,
-            multiphaseProperties.rhoPhi(),
-            multiphaseProperties
+            mixture.rhoPhi(),
+            mixture
         )
     );
 
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/Make/options b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/Make/options
index eab8cce15dde3c729b68afecb9510af3bb5967e1..3740cf38fe9ad904c10021aae3b108b85d3877fd 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/Make/options
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/multiphaseMixtureThermo/Make/options
@@ -1,4 +1,5 @@
 EXE_INC = \
+    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude
 
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H
index e42a54aabdac39c54c2db0468736bfda5052dc26..a8f4bcb9f2b8f9ba369c350b14ec8ee1d171fcdb 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H
@@ -15,7 +15,7 @@
     surfaceScalarField phig
     (
         (
-            multiphaseProperties.surfaceTensionForce()
+            mixture.surfaceTensionForce()
           - ghf*fvc::snGrad(rho)
         )*rAUf*mesh.magSf()
     );
@@ -32,13 +32,13 @@
         )/(mesh.magSf().boundaryField()*rAUf.boundaryField())
     );
 
-    PtrList<fvScalarMatrix> p_rghEqnComps(multiphaseProperties.phases().size());
+    PtrList<fvScalarMatrix> p_rghEqnComps(mixture.phases().size());
 
     label phasei = 0;
     forAllConstIter
     (
         PtrDictionary<phaseModel>,
-        multiphaseProperties.phases(),
+        mixture.phases(),
         phase
     )
     {
@@ -74,7 +74,7 @@
         forAllConstIter
         (
             PtrDictionary<phaseModel>,
-            multiphaseProperties.phases(),
+            mixture.phases(),
             phase
         )
         {
@@ -105,14 +105,14 @@
 
         if (pimple.finalNonOrthogonalIter())
         {
-            // p = max(p_rgh + multiphaseProperties.rho()*gh, pMin);
-            // p_rgh = p - multiphaseProperties.rho()*gh;
+            // p = max(p_rgh + mixture.rho()*gh, pMin);
+            // p_rgh = p - mixture.rho()*gh;
 
             phasei = 0;
             forAllIter
             (
                 PtrDictionary<phaseModel>,
-                multiphaseProperties.phases(),
+                mixture.phases(),
                 phase
             )
             {
@@ -129,11 +129,11 @@
         }
     }
 
-    p = max(p_rgh + multiphaseProperties.rho()*gh, pMin);
+    p = max(p_rgh + mixture.rho()*gh, pMin);
 
     // Update densities from change in p_rgh
-    multiphaseProperties.correctRho(p_rgh - p_rgh_0);
-    rho = multiphaseProperties.rho();
+    mixture.correctRho(p_rgh - p_rgh_0);
+    rho = mixture.rho();
 
     K = 0.5*magSqr(U);
 
diff --git a/applications/solvers/multiphase/interFoam/Allwclean b/applications/solvers/multiphase/interFoam/Allwclean
index 8b080006674b8874606ded342451a96c4de8ac26..d91472696f7451ef849f1521c5966d3b9361716b 100755
--- a/applications/solvers/multiphase/interFoam/Allwclean
+++ b/applications/solvers/multiphase/interFoam/Allwclean
@@ -4,7 +4,6 @@ set -x
 
 wclean
 wclean interDyMFoam
-wclean MRFInterFoam
 wclean porousInterFoam
 wclean LTSInterFoam
 wclean interMixingFoam
diff --git a/applications/solvers/multiphase/interFoam/Allwmake b/applications/solvers/multiphase/interFoam/Allwmake
index cc883614b895212e67e6456ef21ad024c99857ca..035b007934439fef464b58712fe797044ff84dad 100755
--- a/applications/solvers/multiphase/interFoam/Allwmake
+++ b/applications/solvers/multiphase/interFoam/Allwmake
@@ -4,7 +4,6 @@ set -x
 
 wmake
 wmake interDyMFoam
-wmake MRFInterFoam
 wmake porousInterFoam
 wmake LTSInterFoam
 wmake interMixingFoam
diff --git a/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C b/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C
index 33d83161ce04ce0d5b392aed7f71943fcae681e3..1e870c42a93fc7e631af1f98e48d9561ead9f36c 100644
--- a/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C
+++ b/applications/solvers/multiphase/interFoam/LTSInterFoam/LTSInterFoam.C
@@ -40,8 +40,7 @@ Description
 #include "fvCFD.H"
 #include "CMULES.H"
 #include "subCycle.H"
-#include "interfaceProperties.H"
-#include "incompressibleTwoPhaseMixture.H"
+#include "immiscibleIncompressibleTwoPhaseMixture.H"
 #include "turbulenceModel.H"
 #include "fvcSmooth.H"
 #include "pimpleControl.H"
@@ -82,12 +81,12 @@ int main(int argc, char *argv[])
         {
             #include "alphaControls.H"
 
-            twoPhaseProperties.correct();
-
             #define LTSSOLVE
             #include "alphaEqnSubCycle.H"
             #undef LTSSOLVE
 
+            mixture.correct();
+
             turbulence->correct();
 
             #include "UEqn.H"
diff --git a/applications/solvers/multiphase/interFoam/LTSInterFoam/Make/options b/applications/solvers/multiphase/interFoam/LTSInterFoam/Make/options
index 33560b54e64a17538ef23339bd195840edaff4a7..14861f2b880c44239c4e31ec8b719e9df4f4459c 100644
--- a/applications/solvers/multiphase/interFoam/LTSInterFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/LTSInterFoam/Make/options
@@ -5,16 +5,14 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/incompressible/lnInclude \
     -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
     -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
+    -I$(LIB_SRC)/transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fvOptions/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude
 
 EXE_LIBS = \
-    -linterfaceProperties \
-    -ltwoPhaseMixture \
-    -ltwoPhaseProperties \
-    -lincompressibleTransportModels \
+    -limmiscibleIncompressibleTwoPhaseMixture \
     -lincompressibleTurbulenceModel \
     -lincompressibleRASModels \
     -lincompressibleLESModels \
diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/Make/files b/applications/solvers/multiphase/interFoam/MRFInterFoam/Make/files
deleted file mode 100644
index 9610e63ee14feeaf4f2f1a9c84bcf731dc1ce8a7..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/interFoam/MRFInterFoam/Make/files
+++ /dev/null
@@ -1,3 +0,0 @@
-MRFInterFoam.C
-
-EXE = $(FOAM_APPBIN)/MRFInterFoam
diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/UEqn.H b/applications/solvers/multiphase/interFoam/MRFInterFoam/UEqn.H
deleted file mode 100644
index c0a9b615a0667b6455f9cd75c942ff2b1b493087..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/interFoam/MRFInterFoam/UEqn.H
+++ /dev/null
@@ -1,38 +0,0 @@
-    surfaceScalarField muEff
-    (
-        "muEff",
-        twoPhaseProperties.muf()
-      + fvc::interpolate(rho*turbulence->nut())
-    );
-
-    fvVectorMatrix UEqn
-    (
-        fvm::ddt(rho, U)
-      + fvm::div(rhoPhi, U)
-      - fvm::laplacian(muEff, U)
-      - (fvc::grad(U) & fvc::grad(muEff))
-    //- fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf()))
-     ==
-        fvOptions(rho, U)
-    );
-
-    mrfZones.addCoriolis(rho, UEqn);
-    UEqn.relax();
-    fvOptions.constrain(UEqn);
-
-    if (pimple.momentumPredictor())
-    {
-        solve
-        (
-            UEqn
-         ==
-            fvc::reconstruct
-            (
-                (
-                    fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
-                  - ghf*fvc::snGrad(rho)
-                  - fvc::snGrad(p_rgh)
-                ) * mesh.magSf()
-            )
-        );
-    }
diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/createMRFZones.H b/applications/solvers/multiphase/interFoam/MRFInterFoam/createMRFZones.H
deleted file mode 100644
index dba2f7ae6296444051df84a196d432e898d9d1f8..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/interFoam/MRFInterFoam/createMRFZones.H
+++ /dev/null
@@ -1,2 +0,0 @@
-    IOMRFZoneList mrfZones(mesh);
-    mrfZones.correctBoundaryVelocity(U);
diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/pEqn.H b/applications/solvers/multiphase/interFoam/MRFInterFoam/pEqn.H
deleted file mode 100644
index 6c315c8eb85421507cf8899fa7b6ca5e77225f73..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/interFoam/MRFInterFoam/pEqn.H
+++ /dev/null
@@ -1,72 +0,0 @@
-{
-    volScalarField rAU("rAU", 1.0/UEqn.A());
-    surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
-
-    volVectorField HbyA("HbyA", U);
-    HbyA = rAU*UEqn.H();
-
-    surfaceScalarField phiHbyA
-    (
-        "phiHbyA",
-        (fvc::interpolate(HbyA) & mesh.Sf())
-      + fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi)
-    );
-    adjustPhi(phiHbyA, U, p_rgh);
-    mrfZones.makeRelative(phiHbyA);
-
-    surfaceScalarField phig
-    (
-        (
-            fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
-          - ghf*fvc::snGrad(rho)
-        )*rAUf*mesh.magSf()
-    );
-
-    phiHbyA += phig;
-
-    // Update the fixedFluxPressure BCs to ensure flux consistency
-    setSnGrad<fixedFluxPressureFvPatchScalarField>
-    (
-        p_rgh.boundaryField(),
-        (
-            phiHbyA.boundaryField()
-          - mrfZones.relative(mesh.Sf().boundaryField() & U.boundaryField())
-        )/(mesh.magSf().boundaryField()*rAUf.boundaryField())
-    );
-
-    while (pimple.correctNonOrthogonal())
-    {
-        fvScalarMatrix p_rghEqn
-        (
-            fvm::laplacian(rAUf, p_rgh) == fvc::div(phiHbyA)
-        );
-
-        p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell));
-
-        p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
-
-        if (pimple.finalNonOrthogonalIter())
-        {
-            phi = phiHbyA - p_rghEqn.flux();
-
-            U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rAUf);
-            U.correctBoundaryConditions();
-            fvOptions.correct(U);
-        }
-    }
-
-    #include "continuityErrs.H"
-
-    p == p_rgh + rho*gh;
-
-    if (p_rgh.needReference())
-    {
-        p += dimensionedScalar
-        (
-            "p",
-            p.dimensions(),
-            pRefValue - getRefCellValue(p, pRefCell)
-        );
-        p_rgh = p - rho*gh;
-    }
-}
diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/zonePhaseVolumes.H b/applications/solvers/multiphase/interFoam/MRFInterFoam/zonePhaseVolumes.H
deleted file mode 100644
index e0355fe4b14c30c6fbf146f65f1fa36648359bee..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/interFoam/MRFInterFoam/zonePhaseVolumes.H
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-    const scalarField& V = mesh.V();
-
-    forAll(mesh.cellZones(), czi)
-    {
-        const labelList& cellLabels = mesh.cellZones()[czi];
-
-        scalar phaseVolume = 0;
-
-        forAll(cellLabels, cli)
-        {
-            label celli = cellLabels[cli];
-            phaseVolume += alpha1[celli]*V[celli];
-        }
-
-        reduce(phaseVolume, sumOp<scalar>());
-
-        Info<< "Phase volume in zone " << mesh.cellZones()[czi].name()
-            << " = " << phaseVolume*1e6 << " ml " << endl;
-    }
-}
diff --git a/applications/solvers/multiphase/interFoam/Make/options b/applications/solvers/multiphase/interFoam/Make/options
index 8811a53df650d1ae1646edae2769d78846fbe4fa..207a796b1dab6264d98ac2066ab2f50bb9f4c57f 100644
--- a/applications/solvers/multiphase/interFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/Make/options
@@ -1,23 +1,21 @@
-EXE_INC = -ggdb3 \
+EXE_INC = \
     -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
     -I$(LIB_SRC)/transportModels \
     -I$(LIB_SRC)/transportModels/incompressible/lnInclude \
     -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
     -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
+    -I$(LIB_SRC)/transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/fvOptions/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude
 
 EXE_LIBS = \
-    -ltwoPhaseMixture \
-    -linterfaceProperties \
-    -ltwoPhaseProperties \
-    -lincompressibleTransportModels \
+    -limmiscibleIncompressibleTwoPhaseMixture \
     -lincompressibleTurbulenceModel \
     -lincompressibleRASModels \
     -lincompressibleLESModels \
     -lfiniteVolume \
-    -lmeshTools \
     -lfvOptions \
+    -lmeshTools \
     -lsampling
diff --git a/applications/solvers/multiphase/interFoam/UEqn.H b/applications/solvers/multiphase/interFoam/UEqn.H
index 7cc250a66a2ab15a22680ab352f321e731b17c17..10bc0fac6f5147eb22e37edc49a46e600e58a36d 100644
--- a/applications/solvers/multiphase/interFoam/UEqn.H
+++ b/applications/solvers/multiphase/interFoam/UEqn.H
@@ -3,10 +3,14 @@
         fvm::ddt(rho, U)
       + fvm::div(rhoPhi, U)
       + turbulence->divDevRhoReff(rho, U)
+     ==
+        fvOptions(rho, U)
     );
 
     UEqn.relax();
 
+    fvOptions.constrain(UEqn);
+
     if (pimple.momentumPredictor())
     {
         solve
@@ -16,10 +20,12 @@
             fvc::reconstruct
             (
                 (
-                    fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
+                    mixture.surfaceTensionForce()
                   - ghf*fvc::snGrad(rho)
                   - fvc::snGrad(p_rgh)
                 ) * mesh.magSf()
             )
         );
+
+        fvOptions.correct(U);
     }
diff --git a/applications/solvers/multiphase/interFoam/alphaCourantNo.H b/applications/solvers/multiphase/interFoam/alphaCourantNo.H
index c1f69ab802a982d497e8fb6c61d6d5226ed30de0..95ad609a510785d579a60c5746b4abbfb0036eb2 100644
--- a/applications/solvers/multiphase/interFoam/alphaCourantNo.H
+++ b/applications/solvers/multiphase/interFoam/alphaCourantNo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,7 +41,7 @@ if (mesh.nInternalFaces())
 {
     scalarField sumPhi
     (
-        pos(alpha1 - 0.01)*pos(0.99 - alpha1)
+        mixture.nearInterface()().internalField()
        *fvc::surfaceSum(mag(phi))().internalField()
     );
 
diff --git a/applications/solvers/multiphase/interFoam/alphaEqn.H b/applications/solvers/multiphase/interFoam/alphaEqn.H
index 764d2aee56d39c24be3415d55e0de5fa88b49c67..b25d12511c404ef8995f3089fe9b8e8d8560aa00 100644
--- a/applications/solvers/multiphase/interFoam/alphaEqn.H
+++ b/applications/solvers/multiphase/interFoam/alphaEqn.H
@@ -3,13 +3,13 @@
     word alpharScheme("div(phirb,alpha)");
 
     // Standard face-flux compression coefficient
-    surfaceScalarField phic(interface.cAlpha()*mag(phi/mesh.magSf()));
+    surfaceScalarField phic(mixture.cAlpha()*mag(phi/mesh.magSf()));
 
     // Add the optional isotropic compression contribution
     if (icAlpha > 0)
     {
         phic *= (1.0 - icAlpha);
-        phic += (interface.cAlpha()*icAlpha)*fvc::interpolate(mag(U));
+        phic += (mixture.cAlpha()*icAlpha)*fvc::interpolate(mag(U));
     }
 
     // Do not compress interface at non-coupled boundary faces
@@ -74,12 +74,12 @@
 
         alpha2 = 1.0 - alpha1;
 
-        interface.correct();
+        mixture.correct();
     }
 
     for (int aCorr=0; aCorr<nAlphaCorr; aCorr++)
     {
-        surfaceScalarField phir(phic*interface.nHatf());
+        surfaceScalarField phir(phic*mixture.nHatf());
 
         tmp<surfaceScalarField> tphiAlphaUn
         (
@@ -132,7 +132,7 @@
 
         alpha2 = 1.0 - alpha1;
 
-        interface.correct();
+        mixture.correct();
     }
 
     rhoPhi = tphiAlpha()*(rho1 - rho2) + phi*rho2;
diff --git a/applications/solvers/multiphase/interFoam/createFields.H b/applications/solvers/multiphase/interFoam/createFields.H
index 1c91f280bc7ee25611959953f903f834cc40c59a..a87673b0f70121d99334b5bc7944c10916f1c47a 100644
--- a/applications/solvers/multiphase/interFoam/createFields.H
+++ b/applications/solvers/multiphase/interFoam/createFields.H
@@ -30,13 +30,13 @@
 
 
     Info<< "Reading transportProperties\n" << endl;
-    incompressibleTwoPhaseMixture twoPhaseProperties(U, phi);
+    immiscibleIncompressibleTwoPhaseMixture mixture(U, phi);
 
-    volScalarField& alpha1(twoPhaseProperties.alpha1());
-    volScalarField& alpha2(twoPhaseProperties.alpha2());
+    volScalarField& alpha1(mixture.alpha1());
+    volScalarField& alpha2(mixture.alpha2());
 
-    const dimensionedScalar& rho1 = twoPhaseProperties.rho1();
-    const dimensionedScalar& rho2 = twoPhaseProperties.rho2();
+    const dimensionedScalar& rho1 = mixture.rho1();
+    const dimensionedScalar& rho2 = mixture.rho2();
 
 
     // Need to store rho for ddt(rho, U)
@@ -70,14 +70,10 @@
     );
 
 
-    // Construct interface from alpha1 distribution
-    interfaceProperties interface(alpha1, U, twoPhaseProperties);
-
-
     // Construct incompressible turbulence model
     autoPtr<incompressible::turbulenceModel> turbulence
     (
-        incompressible::turbulenceModel::New(U, phi, twoPhaseProperties)
+        incompressible::turbulenceModel::New(U, phi, mixture)
     );
 
     #include "readGravitationalAcceleration.H"
@@ -131,7 +127,9 @@
         p_rgh = p - rho*gh;
     }
 
+
     fv::IOoptionList fvOptions(mesh);
 
 
+    // MULES Correction
     tmp<surfaceScalarField> tphiAlphaCorr0;
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options b/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options
index 2a5429f7a8a944497ef0d1a06da89c3dbb090948..b9638e612bee301aad0a5a00796c9b60169195be 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/Make/options
@@ -5,6 +5,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/incompressible/lnInclude \
     -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
     -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
+    -I$(LIB_SRC)/transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
@@ -13,10 +14,7 @@ EXE_INC = \
     -I$(LIB_SRC)/sampling/lnInclude
 
 EXE_LIBS = \
-    -ltwoPhaseMixture \
-    -linterfaceProperties \
-    -ltwoPhaseProperties \
-    -lincompressibleTransportModels \
+    -limmiscibleIncompressibleTwoPhaseMixture \
     -lincompressibleTurbulenceModel \
     -lincompressibleRASModels \
     -lincompressibleLESModels \
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
index 32ee5aee06f9b298a7f56d95db03b428704e995b..58d74a625507d5ac712fedcc1ff0522fc87427fa 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
@@ -36,8 +36,7 @@ Description
 #include "dynamicFvMesh.H"
 #include "CMULES.H"
 #include "subCycle.H"
-#include "interfaceProperties.H"
-#include "incompressibleTwoPhaseMixture.H"
+#include "immiscibleIncompressibleTwoPhaseMixture.H"
 #include "turbulenceModel.H"
 #include "pimpleControl.H"
 #include "fvIOoptionList.H"
@@ -121,7 +120,7 @@ int main(int argc, char *argv[])
                     // Make the flux relative to the mesh motion
                     fvc::makeRelative(phi, U);
 
-                    interface.correct();
+                    mixture.correct();
                 }
 
                 if (mesh.changing() && checkMeshCourantNo)
@@ -131,11 +130,9 @@ int main(int argc, char *argv[])
             }
 
             #include "alphaControls.H"
-
-            twoPhaseProperties.correct();
-
             #include "alphaEqnSubCycle.H"
-            interface.correct();
+
+            mixture.correct();
 
             #include "UEqn.H"
 
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H b/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H
index ec99a6388388b68f7ca55eccafdbc096e04d5f6c..2ef484b18e612ae8d19ee22ad4641b01d614efa5 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H
@@ -22,7 +22,7 @@
     surfaceScalarField phig
     (
         (
-            fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
+            mixture.surfaceTensionForce()
           - ghf*fvc::snGrad(rho)
         )*rAUf*mesh.magSf()
     );
diff --git a/applications/solvers/multiphase/interFoam/interFoam.C b/applications/solvers/multiphase/interFoam/interFoam.C
index 8c59d0f9d4e89d462783e2ffea6ad07c5939e623..6b6168bf0e75b0d92903fc1a12b249ab9cc4b01a 100644
--- a/applications/solvers/multiphase/interFoam/interFoam.C
+++ b/applications/solvers/multiphase/interFoam/interFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,8 +40,7 @@ Description
 #include "fvCFD.H"
 #include "CMULES.H"
 #include "subCycle.H"
-#include "interfaceProperties.H"
-#include "incompressibleTwoPhaseMixture.H"
+#include "immiscibleIncompressibleTwoPhaseMixture.H"
 #include "turbulenceModel.H"
 #include "pimpleControl.H"
 #include "fvIOoptionList.H"
@@ -84,11 +83,9 @@ int main(int argc, char *argv[])
         while (pimple.loop())
         {
             #include "alphaControls.H"
-
-            twoPhaseProperties.correct();
-
             #include "alphaEqnSubCycle.H"
-            interface.correct();
+
+            mixture.correct();
 
             #include "UEqn.H"
 
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/files b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/files
index f179f42761fe59e4e586a450e565080c1bb43d53..92e2916a74b67391c1b47ac904ae98e4c06a9f5d 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/files
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/files
@@ -1,5 +1,6 @@
-incompressibleThreePhaseMixture/threePhaseMixture.C
+incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.C
 threePhaseInterfaceProperties/threePhaseInterfaceProperties.C
+immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.C
 interMixingFoam.C
 
 EXE = $(FOAM_APPBIN)/interMixingFoam
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options
index cc09aeb2f35740e5b384a56d387317ac8859693b..43456c90472b61e73e03fb6b28b110f50fb8ece6 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/Make/options
@@ -1,6 +1,7 @@
 EXE_INC = \
     -I.. \
     -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
+    -IimmiscibleIncompressibleThreePhaseMixture \
     -IincompressibleThreePhaseMixture \
     -IthreePhaseInterfaceProperties \
     -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H
index 970da9fc925c8c15ef0e3aa54f7fde4a2197502f..a3278090207d02ba65bf44a714c5903191c2280f 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaEqns.H
@@ -12,7 +12,7 @@
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
-        interface.cAlpha()*mag(phi/mesh.magSf())*interface.nHatf()
+        mixture.cAlpha()*mag(phi/mesh.magSf())*mixture.nHatf()
     );
 
     for (int gCorr=0; gCorr<nAlphaCorr; gCorr++)
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
index 3fd5874d5b479efc9288e9bf143970c2227a481e..16f3a21362752d90bee92216661faf15caf10037 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
@@ -28,17 +28,17 @@
 
     #include "createPhi.H"
 
-    threePhaseMixture threePhaseProperties(U, phi);
+    immiscibleIncompressibleThreePhaseMixture mixture(U, phi);
 
-    volScalarField& alpha1(threePhaseProperties.alpha1());
-    volScalarField& alpha2(threePhaseProperties.alpha2());
-    volScalarField& alpha3(threePhaseProperties.alpha3());
+    volScalarField& alpha1(mixture.alpha1());
+    volScalarField& alpha2(mixture.alpha2());
+    volScalarField& alpha3(mixture.alpha3());
 
-    const dimensionedScalar& rho1 = threePhaseProperties.rho1();
-    const dimensionedScalar& rho2 = threePhaseProperties.rho2();
-    const dimensionedScalar& rho3 = threePhaseProperties.rho3();
+    const dimensionedScalar& rho1 = mixture.rho1();
+    const dimensionedScalar& rho2 = mixture.rho2();
+    const dimensionedScalar& rho3 = mixture.rho3();
 
-    dimensionedScalar D23(threePhaseProperties.lookup("D23"));
+    dimensionedScalar D23(mixture.lookup("D23"));
 
     // Need to store rho for ddt(rho, U)
     volScalarField rho
@@ -73,14 +73,10 @@
     );
 
 
-    // Construct interface from alpha distribution
-    threePhaseInterfaceProperties interface(threePhaseProperties);
-
-
     // Construct incompressible turbulence model
     autoPtr<incompressible::turbulenceModel> turbulence
     (
-        incompressible::turbulenceModel::New(U, phi, threePhaseProperties)
+        incompressible::turbulenceModel::New(U, phi, mixture)
     );
 
 
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/alphaCourantNo.H b/applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.C
similarity index 61%
rename from applications/solvers/multiphase/compressibleMultiphaseInterFoam/alphaCourantNo.H
rename to applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.C
index 1fd68ffb790d4bccb99e870e10f9f10577bc0d00..2dcc2a09eca35583fd5d4a60b1ea19788037f0f2 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/alphaCourantNo.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -21,37 +21,26 @@ License
     You should have received a copy of the GNU General Public License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
-Global
-    CourantNo
-
-Description
-    Calculates and outputs the mean and maximum Courant Numbers.
-
 \*---------------------------------------------------------------------------*/
 
-scalar maxAlphaCo
-(
-    readScalar(runTime.controlDict().lookup("maxAlphaCo"))
-);
+#include "immiscibleIncompressibleThreePhaseMixture.H"
 
-scalar alphaCoNum = 0.0;
-scalar meanAlphaCoNum = 0.0;
 
-if (mesh.nInternalFaces())
-{
-    scalarField sumPhi
-    (
-        multiphaseProperties.nearInterface()().internalField()
-      * fvc::surfaceSum(mag(phi))().internalField()
-    );
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-    alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
-
-    meanAlphaCoNum =
-        0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue();
-}
+Foam::immiscibleIncompressibleThreePhaseMixture::
+immiscibleIncompressibleThreePhaseMixture
+(
+    const volVectorField& U,
+    const surfaceScalarField& phi
+)
+:
+    incompressibleThreePhaseMixture(U, phi),
+    threePhaseInterfaceProperties
+    (
+        static_cast<incompressibleThreePhaseMixture&>(*this)
+    )
+{}
 
-Info<< "Interface Courant Number mean: " << meanAlphaCoNum
-    << " max: " << alphaCoNum << endl;
 
 // ************************************************************************* //
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.H b/applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.H
new file mode 100644
index 0000000000000000000000000000000000000000..43352753acab21a430298fb0a57c5c3a0a047dc8
--- /dev/null
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/immiscibleIncompressibleThreePhaseMixture/immiscibleIncompressibleThreePhaseMixture.H
@@ -0,0 +1,92 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::immiscibleIncompressibleThreePhaseMixture
+
+Description
+    An immiscible incompressible two-phase mixture transport model
+
+SourceFiles
+    immiscibleIncompressibleThreePhaseMixture.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef immiscibleIncompressibleThreePhaseMixture_H
+#define immiscibleIncompressibleThreePhaseMixture_H
+
+#include "incompressibleThreePhaseMixture.H"
+#include "threePhaseInterfaceProperties.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+          Class immiscibleIncompressibleThreePhaseMixture Declaration
+\*---------------------------------------------------------------------------*/
+
+class immiscibleIncompressibleThreePhaseMixture
+:
+    public incompressibleThreePhaseMixture,
+    public threePhaseInterfaceProperties
+{
+
+public:
+
+    // Constructors
+
+        //- Construct from components
+        immiscibleIncompressibleThreePhaseMixture
+        (
+            const volVectorField& U,
+            const surfaceScalarField& phi
+        );
+
+
+    //- Destructor
+    virtual ~immiscibleIncompressibleThreePhaseMixture()
+    {}
+
+
+    // Member Functions
+
+        //- Correct the transport and interface properties
+        virtual void correct()
+        {
+            incompressibleThreePhaseMixture::correct();
+            threePhaseInterfaceProperties::correct();
+        }
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.C
similarity index 91%
rename from applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C
rename to applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.C
index 50494062d5ca547b1c3037e4f39990775728c96b..0894f3c6f36cad642f7fd5abac6e7911151f15e8 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -23,7 +23,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "threePhaseMixture.H"
+#include "incompressibleThreePhaseMixture.H"
 #include "addToRunTimeSelectionTable.H"
 #include "surfaceFields.H"
 #include "fvc.H"
@@ -31,7 +31,7 @@ License
 // * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * * //
 
 //- Calculate and return the laminar viscosity
-void Foam::threePhaseMixture::calcNu()
+void Foam::incompressibleThreePhaseMixture::calcNu()
 {
     nuModel1_->correct();
     nuModel2_->correct();
@@ -44,7 +44,7 @@ void Foam::threePhaseMixture::calcNu()
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::threePhaseMixture::threePhaseMixture
+Foam::incompressibleThreePhaseMixture::incompressibleThreePhaseMixture
 (
     const volVectorField& U,
     const surfaceScalarField& phi
@@ -163,7 +163,8 @@ Foam::threePhaseMixture::threePhaseMixture
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::threePhaseMixture::mu() const
+Foam::tmp<Foam::volScalarField>
+Foam::incompressibleThreePhaseMixture::mu() const
 {
     return tmp<volScalarField>
     (
@@ -178,7 +179,8 @@ Foam::tmp<Foam::volScalarField> Foam::threePhaseMixture::mu() const
 }
 
 
-Foam::tmp<Foam::surfaceScalarField> Foam::threePhaseMixture::muf() const
+Foam::tmp<Foam::surfaceScalarField>
+Foam::incompressibleThreePhaseMixture::muf() const
 {
     surfaceScalarField alpha1f(fvc::interpolate(alpha1_));
     surfaceScalarField alpha2f(fvc::interpolate(alpha2_));
@@ -197,7 +199,8 @@ Foam::tmp<Foam::surfaceScalarField> Foam::threePhaseMixture::muf() const
 }
 
 
-Foam::tmp<Foam::surfaceScalarField> Foam::threePhaseMixture::nuf() const
+Foam::tmp<Foam::surfaceScalarField>
+Foam::incompressibleThreePhaseMixture::nuf() const
 {
     surfaceScalarField alpha1f(fvc::interpolate(alpha1_));
     surfaceScalarField alpha2f(fvc::interpolate(alpha2_));
@@ -218,7 +221,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::threePhaseMixture::nuf() const
 }
 
 
-bool Foam::threePhaseMixture::read()
+bool Foam::incompressibleThreePhaseMixture::read()
 {
     if (transportModel::read())
     {
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.H
similarity index 93%
rename from applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H
rename to applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.H
index 16337521d3bbd86c5b9e6a0368bfb80af15e2063..766e06215ef0a2dc185b05158094d177d59418e0 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/incompressibleThreePhaseMixture.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,17 +22,17 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    threePhaseMixture
+    incompressibleThreePhaseMixture
 
 Description
 
 SourceFiles
-    threePhaseMixture.C
+    incompressibleThreePhaseMixture.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef threePhaseMixture_H
-#define threePhaseMixture_H
+#ifndef incompressibleThreePhaseMixture_H
+#define incompressibleThreePhaseMixture_H
 
 #include "incompressible/transportModel/transportModel.H"
 #include "IOdictionary.H"
@@ -46,10 +46,10 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class threePhaseMixture Declaration
+                           Class incompressibleThreePhaseMixture Declaration
 \*---------------------------------------------------------------------------*/
 
-class threePhaseMixture
+class incompressibleThreePhaseMixture
 :
     public IOdictionary,
     public transportModel
@@ -89,7 +89,7 @@ public:
     // Constructors
 
         //- Construct from components
-        threePhaseMixture
+        incompressibleThreePhaseMixture
         (
             const volVectorField& U,
             const surfaceScalarField& phi
@@ -97,7 +97,7 @@ public:
 
 
     //- Destructor
-    ~threePhaseMixture()
+    ~incompressibleThreePhaseMixture()
     {}
 
 
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C b/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
index edeab9ac703687044804a91a905f09d3228bac3d..09cb7f1c7eb2b3faec8208e4a832c49910abe790 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
@@ -33,8 +33,7 @@ Description
 #include "fvCFD.H"
 #include "CMULES.H"
 #include "subCycle.H"
-#include "threePhaseMixture.H"
-#include "threePhaseInterfaceProperties.H"
+#include "immiscibleIncompressibleThreePhaseMixture.H"
 #include "turbulenceModel.H"
 #include "pimpleControl.H"
 #include "fvIOoptionList.H"
@@ -78,13 +77,9 @@ int main(int argc, char *argv[])
         while (pimple.loop())
         {
             #include "alphaControls.H"
-
-            threePhaseProperties.correct();
-
             #include "alphaEqnsSubCycle.H"
-            interface.correct();
 
-            #define twoPhaseProperties threePhaseProperties
+            mixture.correct();
 
             #include "UEqn.H"
 
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C b/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C
index f812b472e0873fea65145819ca645c87bfe494ea..486e442982d5b077f7d8d398380296f651f17f56 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -37,6 +37,7 @@ Description
 #include "surfaceInterpolate.H"
 #include "fvcDiv.H"
 #include "fvcGrad.H"
+#include "fvcSnGrad.H"
 
 // * * * * * * * * * * * * * * * Static Member Data  * * * * * * * * * * * * //
 
@@ -166,7 +167,7 @@ void Foam::threePhaseInterfaceProperties::calculateK()
 
 Foam::threePhaseInterfaceProperties::threePhaseInterfaceProperties
 (
-    const threePhaseMixture& mixture
+    const incompressibleThreePhaseMixture& mixture
 )
 :
     mixture_(mixture),
@@ -212,4 +213,25 @@ Foam::threePhaseInterfaceProperties::threePhaseInterfaceProperties
 }
 
 
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::surfaceScalarField>
+Foam::threePhaseInterfaceProperties::surfaceTensionForce() const
+{
+    return fvc::interpolate(sigmaK())*fvc::snGrad(mixture_.alpha1());
+}
+
+
+Foam::tmp<Foam::volScalarField>
+Foam::threePhaseInterfaceProperties::nearInterface() const
+{
+    return max
+    (
+        pos(mixture_.alpha1() - 0.01)*pos(0.99 - mixture_.alpha1()),
+        pos(mixture_.alpha2() - 0.01)*pos(0.99 - mixture_.alpha2())
+    );
+}
+
+
+
 // ************************************************************************* //
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.H b/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.H
index 0653ab0a2065be1d98b1d32fa53bd4b8aedf8cf9..266bedb470aa06535777385293900bd8c6e16ed0 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/threePhaseInterfaceProperties/threePhaseInterfaceProperties.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -37,7 +37,7 @@ SourceFiles
 #ifndef threePhaseInterfaceProperties_H
 #define threePhaseInterfaceProperties_H
 
-#include "threePhaseMixture.H"
+#include "incompressibleThreePhaseMixture.H"
 #include "surfaceFields.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -53,7 +53,7 @@ class threePhaseInterfaceProperties
 {
     // Private data
 
-        const threePhaseMixture& mixture_;
+        const incompressibleThreePhaseMixture& mixture_;
 
         //- Compression coefficient
         scalar cAlpha_;
@@ -98,7 +98,10 @@ public:
     // Constructors
 
         //- Construct from volume fraction field alpha and IOdictionary
-        threePhaseInterfaceProperties(const threePhaseMixture& mixture);
+        threePhaseInterfaceProperties
+        (
+            const incompressibleThreePhaseMixture& mixture
+        );
 
 
     // Member Functions
@@ -138,6 +141,12 @@ public:
             return sigma()*K_;
         }
 
+        tmp<surfaceScalarField> surfaceTensionForce() const;
+
+        //- Indicator of the proximity of the interface
+        //  Field values are 1 near and 0 away for the interface.
+        tmp<volScalarField> nearInterface() const;
+
         void correct()
         {
             calculateK();
diff --git a/applications/solvers/multiphase/interFoam/pEqn.H b/applications/solvers/multiphase/interFoam/pEqn.H
index 227c075fa273cecd129fbdfb29469e20f4a03acf..81a0391d6deb1cdc1f0b48e44204d46f5c961fb9 100644
--- a/applications/solvers/multiphase/interFoam/pEqn.H
+++ b/applications/solvers/multiphase/interFoam/pEqn.H
@@ -11,13 +11,13 @@
         (fvc::interpolate(HbyA) & mesh.Sf())
       + fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi)
     );
-
     adjustPhi(phiHbyA, U, p_rgh);
+    fvOptions.makeRelative(phiHbyA);
 
     surfaceScalarField phig
     (
         (
-            fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
+            mixture.surfaceTensionForce()
           - ghf*fvc::snGrad(rho)
         )*rAUf*mesh.magSf()
     );
@@ -30,7 +30,7 @@
         p_rgh.boundaryField(),
         (
             phiHbyA.boundaryField()
-          - (mesh.Sf().boundaryField() & U.boundaryField())
+          - fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField())
         )/(mesh.magSf().boundaryField()*rAUf.boundaryField())
     );
 
diff --git a/applications/solvers/multiphase/interFoam/porousInterFoam/Make/options b/applications/solvers/multiphase/interFoam/porousInterFoam/Make/options
index db2e1736ee2101bfe80abb1e725574d36c3c320a..fffa41da94c813a8a5044f5560345ccf12fb7988 100644
--- a/applications/solvers/multiphase/interFoam/porousInterFoam/Make/options
+++ b/applications/solvers/multiphase/interFoam/porousInterFoam/Make/options
@@ -4,6 +4,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels \
     -I$(LIB_SRC)/transportModels/incompressible/lnInclude \
     -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
+    -I$(LIB_SRC)/transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \
     -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
@@ -11,9 +12,7 @@ EXE_INC = \
     -I$(LIB_SRC)/sampling/lnInclude
 
 EXE_LIBS = \
-    -ltwoPhaseMixture \
-    -linterfaceProperties \
-    -ltwoPhaseProperties \
+    -limmiscibleIncompressibleTwoPhaseMixture \
     -lincompressibleTransportModels \
     -lincompressibleTurbulenceModel \
     -lincompressibleRASModels \
diff --git a/applications/solvers/multiphase/interFoam/porousInterFoam/UEqn.H b/applications/solvers/multiphase/interFoam/porousInterFoam/UEqn.H
index f8dcecf6acfc5d02c575781734799b9357893b05..e175dcb92c458e54da504df04767e1dd6a92e127 100644
--- a/applications/solvers/multiphase/interFoam/porousInterFoam/UEqn.H
+++ b/applications/solvers/multiphase/interFoam/porousInterFoam/UEqn.H
@@ -1,12 +1,12 @@
     surfaceScalarField muEff
     (
         "muEff",
-        twoPhaseProperties.muf()
+        mixture.muf()
       + fvc::interpolate(rho*turbulence->nut())
     );
 
     // Calculate and cache mu for the porous media
-    volScalarField mu(twoPhaseProperties.mu());
+    volScalarField mu(mixture.mu());
 
     fvVectorMatrix UEqn
     (
@@ -33,7 +33,7 @@
             fvc::reconstruct
             (
                 (
-                    fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
+                    mixture.surfaceTensionForce()
                   - ghf*fvc::snGrad(rho)
                   - fvc::snGrad(p_rgh)
                 ) * mesh.magSf()
diff --git a/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C b/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C
index c30188784418303ee074e5f36ead2e4de87633ce..c17847bd3da1c6240550b551421f64379f70a200 100644
--- a/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C
+++ b/applications/solvers/multiphase/interFoam/porousInterFoam/porousInterFoam.C
@@ -41,8 +41,7 @@ Description
 #include "fvCFD.H"
 #include "CMULES.H"
 #include "subCycle.H"
-#include "interfaceProperties.H"
-#include "incompressibleTwoPhaseMixture.H"
+#include "immiscibleIncompressibleTwoPhaseMixture.H"
 #include "turbulenceModel.H"
 #include "IOporosityModelList.H"
 #include "pimpleControl.H"
@@ -87,11 +86,9 @@ int main(int argc, char *argv[])
         while (pimple.loop())
         {
             #include "alphaControls.H"
-
-            twoPhaseProperties.correct();
-
             #include "alphaEqnSubCycle.H"
-            interface.correct();
+
+            mixture.correct();
 
             #include "UEqn.H"
 
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H
index 062c5523c9d4c94a469e49e202b65e25ad1b285d..1e27597292e480808167b5a14fa0b15a5043ab29 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H
@@ -17,7 +17,7 @@
             fvc::reconstruct
             (
                 (
-                    fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
+                    interface.surfaceTensionForce()
                   - ghf*fvc::snGrad(rho)
                   - fvc::snGrad(p_rgh)
                 ) * mesh.magSf()
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H
index 1172cf07071c83c3fe1bd802202158c278d997f5..5d915ecc14a34b77035a9a4e78d9d7716d640248 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H
@@ -5,7 +5,7 @@
     surfaceScalarField phir("phir", phic*interface.nHatf());
 
     Pair<tmp<volScalarField> > vDotAlphal =
-        twoPhaseProperties->vDotAlphal();
+        mixture->vDotAlphal();
     const volScalarField& vDotcAlphal = vDotAlphal[0]();
     const volScalarField& vDotvAlphal = vDotAlphal[1]();
     const volScalarField vDotvmcAlphal(vDotvAlphal - vDotcAlphal);
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H b/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H
index 0e45fa495e8aa5b1cfcbb6c06c51899c82488e5f..79fc0a1405dde18bb3693b54be04fc5a8d33ae31 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H
@@ -30,15 +30,15 @@
 
 
     Info<< "Creating phaseChangeTwoPhaseMixture\n" << endl;
-    autoPtr<phaseChangeTwoPhaseMixture> twoPhaseProperties =
+    autoPtr<phaseChangeTwoPhaseMixture> mixture =
         phaseChangeTwoPhaseMixture::New(U, phi);
 
-    volScalarField& alpha1(twoPhaseProperties->alpha1());
-    volScalarField& alpha2(twoPhaseProperties->alpha2());
+    volScalarField& alpha1(mixture->alpha1());
+    volScalarField& alpha2(mixture->alpha2());
 
-    const dimensionedScalar& rho1 = twoPhaseProperties->rho1();
-    const dimensionedScalar& rho2 = twoPhaseProperties->rho2();
-    const dimensionedScalar& pSat = twoPhaseProperties->pSat();
+    const dimensionedScalar& rho1 = mixture->rho1();
+    const dimensionedScalar& rho2 = mixture->rho2();
+    const dimensionedScalar& pSat = mixture->pSat();
 
 
     // Need to store rho for ddt(rho, U)
@@ -58,12 +58,12 @@
 
 
     // Construct interface from alpha1 distribution
-    interfaceProperties interface(alpha1, U, twoPhaseProperties());
+    interfaceProperties interface(alpha1, U, mixture());
 
     // Construct incompressible turbulence model
     autoPtr<incompressible::turbulenceModel> turbulence
     (
-        incompressible::turbulenceModel::New(U, phi, twoPhaseProperties())
+        incompressible::turbulenceModel::New(U, phi, mixture())
     );
 
 
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
index 86b19912cfff0992026970c571ccc8ba991c03eb..e336e4a0c3d42eaf4ea1e09f9a125596541999ea 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
@@ -154,7 +154,7 @@ int main(int argc, char *argv[])
                 dimensionedScalar("0", dimMass/dimTime, 0)
             );
 
-            twoPhaseProperties->correct();
+            mixture->correct();
 
             #include "alphaEqnSubCycle.H"
             interface.correct();
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H
index 5915b6803596f256e36c119b1a27d9a8c968d785..b759081eeae02721ab6ce6a3d4e36263273af693 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H
@@ -22,7 +22,7 @@
     surfaceScalarField phig
     (
         (
-            fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
+            interface.surfaceTensionForce()
           - ghf*fvc::snGrad(rho)
         )*rAUf*mesh.magSf()
     );
@@ -39,7 +39,7 @@
         )/(mesh.magSf().boundaryField()*rAUf.boundaryField())
     );
 
-    Pair<tmp<volScalarField> > vDotP = twoPhaseProperties->vDotP();
+    Pair<tmp<volScalarField> > vDotP = mixture->vDotP();
     const volScalarField& vDotcP = vDotP[0]();
     const volScalarField& vDotvP = vDotP[1]();
 
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
index bea114da8040e6b9a01dcd656dd3d0beddfe673f..3296d0f0fb11f12fa7db9a20e16c2c0b6c0081ce 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
@@ -100,7 +100,7 @@ int main(int argc, char *argv[])
                 dimensionedScalar("0", dimMass/dimTime, 0)
             );
 
-            twoPhaseProperties->correct();
+            mixture->correct();
 
             #include "alphaEqnSubCycle.H"
             interface.correct();
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H
index 6714fce91c18c54c453c0ad43b636255278d3a79..4a174eb980fe3243fb6ea039e5bd2a63f313c165 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H
@@ -16,7 +16,7 @@
     surfaceScalarField phig
     (
         (
-            fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
+            interface.surfaceTensionForce()
           - ghf*fvc::snGrad(rho)
         )*rAUf*mesh.magSf()
     );
@@ -33,7 +33,7 @@
         )/(mesh.magSf().boundaryField()*rAUf.boundaryField())
     );
 
-    Pair<tmp<volScalarField> > vDotP = twoPhaseProperties->vDotP();
+    Pair<tmp<volScalarField> > vDotP = mixture->vDotP();
     const volScalarField& vDotcP = vDotP[0]();
     const volScalarField& vDotvP = vDotP[1]();
 
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/Allwclean b/applications/solvers/multiphase/multiphaseInterFoam/Allwclean
index 6b5dc2e5c65086adaceccd89880eb13770eb92c1..7edca3f5d1cf0b8a2fb9feb49388b1e8c120a973 100755
--- a/applications/solvers/multiphase/multiphaseInterFoam/Allwclean
+++ b/applications/solvers/multiphase/multiphaseInterFoam/Allwclean
@@ -4,5 +4,6 @@ set -x
 
 wclean libso multiphaseMixture
 wclean
+wclean multiphaseInterDyMFoam
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/Allwmake b/applications/solvers/multiphase/multiphaseInterFoam/Allwmake
index 6ceded9c1a94ccaf143640a65b5cd89bdfb67a7d..2a03ac9b6cbb89dc3f1c6c3b712166dfdfe41051 100755
--- a/applications/solvers/multiphase/multiphaseInterFoam/Allwmake
+++ b/applications/solvers/multiphase/multiphaseInterFoam/Allwmake
@@ -4,5 +4,6 @@ set -x
 
 wmake libso multiphaseMixture
 wmake
+wmake multiphaseInterDyMFoam
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H b/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H
deleted file mode 100644
index 5dd13a4ecf5acc74371ee6695be0be1202ae1dd0..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H
+++ /dev/null
@@ -1,31 +0,0 @@
-    fvVectorMatrix UEqn
-    (
-        fvm::ddt(rho, U)
-      + fvm::div(mixture.rhoPhi(), U)
-      + turbulence->divDevRhoReff(rho, U)
-     ==
-        fvOptions(rho, U)
-    );
-
-    UEqn.relax();
-
-    fvOptions.constrain(UEqn);
-
-    if (pimple.momentumPredictor())
-    {
-        solve
-        (
-            UEqn
-         ==
-            fvc::reconstruct
-            (
-                (
-                    mixture.surfaceTensionForce()
-                  - ghf*fvc::snGrad(rho)
-                  - fvc::snGrad(p_rgh)
-                ) * mesh.magSf()
-            )
-        );
-
-        fvOptions.correct(U);
-    }
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/createFields.H b/applications/solvers/multiphase/multiphaseInterFoam/createFields.H
index c19f9ea9e3effaca5c09d2c4f9b044039007f252..a3550dbdb7a4c54c417f66979c0feb572ce10aa0 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/createFields.H
+++ b/applications/solvers/multiphase/multiphaseInterFoam/createFields.H
@@ -44,6 +44,7 @@
     );
     rho.oldTime();
 
+    const surfaceScalarField& rhoPhi(mixture.rhoPhi());
 
     // Construct incompressible turbulence model
     autoPtr<incompressible::turbulenceModel> turbulence
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/files b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..3fb8d0245ff1f576b034360b31b90d0abec036ba
--- /dev/null
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/files
@@ -0,0 +1,3 @@
+multiphaseInterDyMFoam.C
+
+EXE = $(FOAM_APPBIN)/multiphaseInterDyMFoam
diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/Make/options b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options
similarity index 70%
rename from applications/solvers/multiphase/interFoam/MRFInterFoam/Make/options
rename to applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options
index db2e1736ee2101bfe80abb1e725574d36c3c320a..83653482210db89fcffe74b1c4ba1a84af2f2ae0 100644
--- a/applications/solvers/multiphase/interFoam/MRFInterFoam/Make/options
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/Make/options
@@ -1,24 +1,30 @@
 EXE_INC = \
     -I.. \
-    -I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
+    -I../../interFoam/interDyMFoam \
+    -I../../interFoam \
+    -I../multiphaseMixture/lnInclude \
     -I$(LIB_SRC)/transportModels \
     -I$(LIB_SRC)/transportModels/incompressible/lnInclude \
     -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
     -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/dynamicMesh/lnInclude \
+    -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
     -I$(LIB_SRC)/fvOptions/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/sampling/lnInclude
 
 EXE_LIBS = \
-    -ltwoPhaseMixture \
+    -lmultiphaseInterFoam \
     -linterfaceProperties \
-    -ltwoPhaseProperties \
     -lincompressibleTransportModels \
     -lincompressibleTurbulenceModel \
     -lincompressibleRASModels \
     -lincompressibleLESModels \
     -lfiniteVolume \
-    -lmeshTools \
+    -ldynamicMesh \
+    -ldynamicFvMesh \
+    -ltopoChangerFvMesh \
     -lfvOptions \
+    -lmeshTools \
     -lsampling
diff --git a/applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C
similarity index 62%
rename from applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C
rename to applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C
index f6386bde4851f4f833533a055cb277d816b45c6f..acfa7eb3eea5194669528acd6016d1e56e6d4b1c 100644
--- a/applications/solvers/multiphase/interFoam/MRFInterFoam/MRFInterFoam.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C
@@ -22,27 +22,20 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Application
-    MRFInterFoam
+    multiphaseInterFoam
 
 Description
-    Solver for 2 incompressible, isothermal immiscible fluids using a VOF
-    (volume of fluid) phase-fraction based interface capturing approach.
-    The momentum and other fluid properties are of the "mixture" and a single
-    momentum equation is solved.
+    Solver for n incompressible fluids which captures the interfaces and
+    includes surface-tension and contact-angle effects for each phase.
 
     Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected.
 
-    For a two-fluid approach see twoPhaseEulerFoam.
-
 \*---------------------------------------------------------------------------*/
 
 #include "fvCFD.H"
-#include "CMULES.H"
-#include "subCycle.H"
-#include "interfaceProperties.H"
-#include "incompressibleTwoPhaseMixture.H"
+#include "dynamicFvMesh.H"
+#include "multiphaseMixture.H"
 #include "turbulenceModel.H"
-#include "IOMRFZoneList.H"
 #include "pimpleControl.H"
 #include "fvIOoptionList.H"
 #include "fixedFluxPressureFvPatchScalarField.H"
@@ -53,16 +46,31 @@ int main(int argc, char *argv[])
 {
     #include "setRootCase.H"
     #include "createTime.H"
-    #include "createMesh.H"
+    #include "createDynamicFvMesh.H"
     #include "initContinuityErrs.H"
-    #include "createFields.H"
-    #include "createMRFZones.H"
-    #include "readTimeControls.H"
 
     pimpleControl pimple(mesh);
 
+    #include "createFields.H"
+    #include "readTimeControls.H"
     #include "createPrghCorrTypes.H"
+
+    volScalarField rAU
+    (
+        IOobject
+        (
+            "rAU",
+            runTime.timeName(),
+            mesh,
+            IOobject::READ_IF_PRESENT,
+            IOobject::AUTO_WRITE
+        ),
+        mesh,
+        dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1.0)
+    );
+
     #include "correctPhi.H"
+    #include "createUf.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
 
@@ -72,9 +80,10 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "readControls.H"
         #include "CourantNo.H"
         #include "alphaCourantNo.H"
+
         #include "setDeltaT.H"
 
         runTime++;
@@ -84,13 +93,43 @@ int main(int argc, char *argv[])
         // --- Pressure-velocity PIMPLE corrector loop
         while (pimple.loop())
         {
-            #include "alphaControls.H"
+            if (pimple.firstIter() || moveMeshOuterCorrectors)
+            {
+                scalar timeBeforeMeshUpdate = runTime.elapsedCpuTime();
 
-            twoPhaseProperties.correct();
+                mesh.update();
+
+                if (mesh.changing())
+                {
+                    Info<< "Execution time for mesh.update() = "
+                        << runTime.elapsedCpuTime() - timeBeforeMeshUpdate
+                        << " s" << endl;
+
+                    gh = g & mesh.C();
+                    ghf = g & mesh.Cf();
+                }
+
+                if (mesh.changing() && correctPhi)
+                {
+                    // Calculate absolute flux from the mapped surface velocity
+                    phi = mesh.Sf() & Uf;
+
+                    #include "correctPhi.H"
+
+                    // Make the flux relative to the mesh motion
+                    fvc::makeRelative(phi, U);
+
+                    mixture.correct();
+                }
+
+                if (mesh.changing() && checkMeshCourantNo)
+                {
+                    #include "meshCourantNo.H"
+                }
+            }
 
-            #include "alphaEqnSubCycle.H"
-            interface.correct();
-            #include "zonePhaseVolumes.H"
+            mixture.solve();
+            rho = mixture.rho();
 
             #include "UEqn.H"
 
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
index b7ba2bc9c92c94f17d8e6b77215035994df606b8..9edc7a78b305367c74e72dfe76062d5312fc5a6e 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
@@ -298,10 +298,7 @@ Foam::multiphaseMixture::surfaceTensionForce() const
 
 void Foam::multiphaseMixture::solve()
 {
-    forAllIter(PtrDictionary<phase>, phases_, iter)
-    {
-        iter().correct();
-    }
+    correct();
 
     const Time& runTime = mesh_.time();
 
@@ -347,7 +344,12 @@ void Foam::multiphaseMixture::solve()
 
 
 void Foam::multiphaseMixture::correct()
-{}
+{
+    forAllIter(PtrDictionary<phase>, phases_, iter)
+    {
+        iter().correct();
+    }
+}
 
 
 Foam::tmp<Foam::surfaceVectorField> Foam::multiphaseMixture::nHatfv
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H b/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H
deleted file mode 100644
index 8ce663528d16962db57247c1d6453fd3726f4f4d..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H
+++ /dev/null
@@ -1,72 +0,0 @@
-{
-    volScalarField rAU("rAU", 1.0/UEqn.A());
-    surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
-
-    volVectorField HbyA("HbyA", U);
-    HbyA = rAU*UEqn.H();
-
-    surfaceScalarField phiHbyA
-    (
-        "phiHbyA",
-        (fvc::interpolate(HbyA) & mesh.Sf())
-      + fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi)
-    );
-    adjustPhi(phiHbyA, U, p_rgh);
-    fvOptions.makeRelative(phiHbyA);
-
-    surfaceScalarField phig
-    (
-        (
-            mixture.surfaceTensionForce()
-          - ghf*fvc::snGrad(rho)
-        )*rAUf*mesh.magSf()
-    );
-
-    phiHbyA += phig;
-
-    // Update the fixedFluxPressure BCs to ensure flux consistency
-    setSnGrad<fixedFluxPressureFvPatchScalarField>
-    (
-        p_rgh.boundaryField(),
-        (
-            phiHbyA.boundaryField()
-          - fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField())
-        )/(mesh.magSf().boundaryField()*rAUf.boundaryField())
-    );
-
-    while (pimple.correctNonOrthogonal())
-    {
-        fvScalarMatrix p_rghEqn
-        (
-            fvm::laplacian(rAUf, p_rgh) == fvc::div(phiHbyA)
-        );
-
-        p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell));
-
-        p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
-
-        if (pimple.finalNonOrthogonalIter())
-        {
-            phi = phiHbyA - p_rghEqn.flux();
-
-            U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rAUf);
-            U.correctBoundaryConditions();
-            fvOptions.correct(U);
-        }
-    }
-
-    #include "continuityErrs.H"
-
-    p == p_rgh + rho*gh;
-
-    if (p_rgh.needReference())
-    {
-        p += dimensionedScalar
-        (
-            "p",
-            p.dimensions(),
-            pRefValue - getRefCellValue(p, pRefCell)
-        );
-        p_rgh = p - rho*gh;
-    }
-}
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaCourantNo.H
similarity index 90%
rename from applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H
rename to applications/solvers/multiphase/twoLiquidMixingFoam/alphaCourantNo.H
index 98444a065f6c3679ea63833ffc6f319f4b3d493a..6ea204b00b157f95b676f8c9b068548d9d5b2daa 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaCourantNo.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Global
-    CourantNo
+    alphaCourantNo
 
 Description
     Calculates and outputs the mean and maximum Courant Numbers.
@@ -41,8 +41,8 @@ if (mesh.nInternalFaces())
 {
     scalarField sumPhi
     (
-        mixture.nearInterface()().internalField()
-      * fvc::surfaceSum(mag(phi))().internalField()
+        pos(alpha1 - 0.01)*pos(0.99 - alpha1)
+       *fvc::surfaceSum(mag(phi))().internalField()
     );
 
     alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H b/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H
index 31e1e61d5d3a6688952ee5b543c2efe96968c390..dc6325d0af67044d5336d5da1a1db229002c9b6c 100644
--- a/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H
@@ -29,18 +29,18 @@
     #include "createPhi.H"
 
     Info<< "Reading transportProperties\n" << endl;
-    incompressibleTwoPhaseMixture twoPhaseProperties(U, phi);
+    incompressibleTwoPhaseMixture mixture(U, phi);
 
-    volScalarField& alpha1(twoPhaseProperties.alpha1());
-    volScalarField& alpha2(twoPhaseProperties.alpha2());
+    volScalarField& alpha1(mixture.alpha1());
+    volScalarField& alpha2(mixture.alpha2());
 
-    const dimensionedScalar& rho1 = twoPhaseProperties.rho1();
-    const dimensionedScalar& rho2 = twoPhaseProperties.rho2();
+    const dimensionedScalar& rho1 = mixture.rho1();
+    const dimensionedScalar& rho2 = mixture.rho2();
 
-    dimensionedScalar Dab(twoPhaseProperties.lookup("Dab"));
+    dimensionedScalar Dab(mixture.lookup("Dab"));
 
     // Read the reciprocal of the turbulent Schmidt number
-    dimensionedScalar alphatab(twoPhaseProperties.lookup("alphatab"));
+    dimensionedScalar alphatab(mixture.lookup("alphatab"));
 
     // Need to store rho for ddt(rho, U)
     volScalarField rho("rho", alpha1*rho1 + alpha2*rho2);
@@ -66,7 +66,7 @@
     // Construct incompressible turbulence model
     autoPtr<incompressible::turbulenceModel> turbulence
     (
-        incompressible::turbulenceModel::New(U, phi, twoPhaseProperties)
+        incompressible::turbulenceModel::New(U, phi, mixture)
     );
 
     Info<< "Calculating field g.h\n" << endl;
diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C
index 247c12a8b508e14c431437da31851532c824ead2..7593aeab113c5349e6e8f5bedbb31feb27842986 100644
--- a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,7 +70,7 @@ int main(int argc, char *argv[])
 
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
-        twoPhaseProperties.correct();
+        mixture.correct();
 
         #include "alphaEqnSubCycle.H"
         #include "alphaDiffusionEqn.H"
diff --git a/src/transportModels/Allwmake b/src/transportModels/Allwmake
index 120dfae74a90cfd1f3e9e80a52b03c94f8d665e0..07272706a690bf1f4a5fa6e02d9ce8db01a01b6f 100755
--- a/src/transportModels/Allwmake
+++ b/src/transportModels/Allwmake
@@ -7,5 +7,7 @@ wmake $makeType twoPhaseMixture
 wmake $makeType interfaceProperties
 wmake $makeType twoPhaseProperties
 wmake $makeType incompressible
+wmake $makeType compressible
+wmake $makeType immiscibleIncompressibleTwoPhaseMixture
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/src/transportModels/compressible/Make/files b/src/transportModels/compressible/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..136b8b7a9393ffc069fa997846cd5467bc5ef59c
--- /dev/null
+++ b/src/transportModels/compressible/Make/files
@@ -0,0 +1,3 @@
+compressibleTransportModel/compressibleTransportModel.C
+
+LIB = $(FOAM_LIBBIN)/libcompressibleTransportModels
diff --git a/src/transportModels/compressible/Make/options b/src/transportModels/compressible/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..71b7873964d544eddf96d22aa40f4c3372c23c9c
--- /dev/null
+++ b/src/transportModels/compressible/Make/options
@@ -0,0 +1,5 @@
+EXE_INC = \
+    -I$(LIB_SRC)/finiteVolume/lnInclude
+
+LIB_LIBS = \
+    -lfiniteVolume
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaCourantNo.H b/src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.C
similarity index 59%
rename from applications/solvers/multiphase/interFoam/interMixingFoam/alphaCourantNo.H
rename to src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.C
index 06e1da1ae49004eb5a3c97ea0020d0a61755b383..f59261cc0cb6b6cd9979ebd0ad33e65f4f14b72f 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaCourantNo.H
+++ b/src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -21,40 +21,29 @@ License
     You should have received a copy of the GNU General Public License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
-Global
-    CourantNo
-
-Description
-    Calculates and outputs the mean and maximum Courant Numbers.
-
 \*---------------------------------------------------------------------------*/
 
-scalar maxAlphaCo
-(
-    readScalar(runTime.controlDict().lookup("maxAlphaCo"))
-);
+#include "compressibleTransportModel.H"
 
-scalar alphaCoNum = 0.0;
-scalar meanAlphaCoNum = 0.0;
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-if (mesh.nInternalFaces())
+namespace Foam
 {
-    scalarField sumPhi
-    (
-        max
-        (
-            pos(alpha1 - 0.01)*pos(0.99 - alpha1),
-            pos(alpha2 - 0.01)*pos(0.99 - alpha2)
-        )*fvc::surfaceSum(mag(phi))().internalField()
-    );
-
-    alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
-
-    meanAlphaCoNum =
-        0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue();
+    defineTypeNameAndDebug(compressibleTransportModel, 0);
 }
 
-Info<< "Interface Courant Number mean: " << meanAlphaCoNum
-    << " max: " << alphaCoNum << endl;
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::compressibleTransportModel::compressibleTransportModel
+()
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
+
+Foam::compressibleTransportModel::~compressibleTransportModel()
+{}
+
 
 // ************************************************************************* //
diff --git a/src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.H b/src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.H
new file mode 100644
index 0000000000000000000000000000000000000000..6b89ac6978c9b95b832d0332cc025310edd81128
--- /dev/null
+++ b/src/transportModels/compressible/compressibleTransportModel/compressibleTransportModel.H
@@ -0,0 +1,104 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::compressibleTransportModel
+
+Description
+    Base-class for all transport models used by the compressible turbulence
+    models.
+
+SourceFiles
+    compressibleTransportModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef compressibleTransportModel_H
+#define compressibleTransportModel_H
+
+#include "primitiveFieldsFwd.H"
+#include "volFieldsFwd.H"
+#include "surfaceFieldsFwd.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                Class compressibleTransportModel Declaration
+\*---------------------------------------------------------------------------*/
+
+class compressibleTransportModel
+{
+    // Private Member Functions
+
+        //- Disallow copy construct
+        compressibleTransportModel(const compressibleTransportModel&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const compressibleTransportModel&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("compressibleTransportModel");
+
+
+    // Constructors
+
+        //- Construct from components
+        compressibleTransportModel
+        ();
+
+
+    //- Destructor
+    virtual ~compressibleTransportModel();
+
+
+    // Member Functions
+
+        //- Return the dynamic laminar viscosity
+        virtual tmp<volScalarField> mu() const = 0;
+
+        //- Return the dynamic laminar viscosity for patch
+        virtual tmp<scalarField> mu(const label patchi) const = 0;
+
+        //- Return the laminar viscosity
+        virtual tmp<volScalarField> nu() const = 0;
+
+        //- Return the laminar viscosity for patch
+        virtual tmp<scalarField> nu(const label patchi) const = 0;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/files b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..1ad9d9111706aedf3477fab78f2e8e5916e11d20
--- /dev/null
+++ b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/files
@@ -0,0 +1,3 @@
+immiscibleIncompressibleTwoPhaseMixture.C
+
+LIB = $(FOAM_LIBBIN)/libimmiscibleIncompressibleTwoPhaseMixture
diff --git a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/options b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..4ae2fbf96644b3ac1443ae0bea87926356d158fd
--- /dev/null
+++ b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/Make/options
@@ -0,0 +1,13 @@
+EXE_INC = \
+    -I.. \
+    -I../incompressible/lnInclude \
+    -I../interfaceProperties/lnInclude \
+    -I../twoPhaseMixture/lnInclude \
+    -I$(LIB_SRC)/finiteVolume/lnInclude
+
+LIB_LIBS = \
+    -ltwoPhaseMixture \
+    -lincompressibleTransportModels \
+    -linterfaceProperties \
+    -ltwoPhaseProperties \
+    -lfiniteVolume
diff --git a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C
new file mode 100644
index 0000000000000000000000000000000000000000..532a9af34fbaf88c2996571a95108c5995257e7d
--- /dev/null
+++ b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.C
@@ -0,0 +1,43 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "immiscibleIncompressibleTwoPhaseMixture.H"
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::immiscibleIncompressibleTwoPhaseMixture::
+immiscibleIncompressibleTwoPhaseMixture
+(
+    const volVectorField& U,
+    const surfaceScalarField& phi
+)
+:
+    incompressibleTwoPhaseMixture(U, phi),
+    interfaceProperties(alpha1(), U, *this)
+{}
+
+
+// ************************************************************************* //
diff --git a/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H
new file mode 100644
index 0000000000000000000000000000000000000000..84140229f520b5b80ebaf249085a5f73de8f3b57
--- /dev/null
+++ b/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/immiscibleIncompressibleTwoPhaseMixture.H
@@ -0,0 +1,92 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::immiscibleIncompressibleTwoPhaseMixture
+
+Description
+    An immiscible incompressible two-phase mixture transport model
+
+SourceFiles
+    immiscibleIncompressibleTwoPhaseMixture.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef immiscibleIncompressibleTwoPhaseMixture_H
+#define immiscibleIncompressibleTwoPhaseMixture_H
+
+#include "incompressibleTwoPhaseMixture.H"
+#include "interfaceProperties.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                      Class immiscibleIncompressibleTwoPhaseMixture Declaration
+\*---------------------------------------------------------------------------*/
+
+class immiscibleIncompressibleTwoPhaseMixture
+:
+    public incompressibleTwoPhaseMixture,
+    public interfaceProperties
+{
+
+public:
+
+    // Constructors
+
+        //- Construct from components
+        immiscibleIncompressibleTwoPhaseMixture
+        (
+            const volVectorField& U,
+            const surfaceScalarField& phi
+        );
+
+
+    //- Destructor
+    virtual ~immiscibleIncompressibleTwoPhaseMixture()
+    {}
+
+
+    // Member Functions
+
+        //- Correct the transport and interface properties
+        virtual void correct()
+        {
+            incompressibleTwoPhaseMixture::correct();
+            interfaceProperties::correct();
+        }
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/interfaceProperties.C b/src/transportModels/interfaceProperties/interfaceProperties.C
index 9387769caeebe0e8ffa9023d0ca95041a886368a..1750a59df51c372bffb0acdd0b431604226965aa 100644
--- a/src/transportModels/interfaceProperties/interfaceProperties.C
+++ b/src/transportModels/interfaceProperties/interfaceProperties.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -206,4 +206,20 @@ Foam::interfaceProperties::interfaceProperties
 }
 
 
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::surfaceScalarField>
+Foam::interfaceProperties::surfaceTensionForce() const
+{
+    return fvc::interpolate(sigmaK())*fvc::snGrad(alpha1_);
+}
+
+
+Foam::tmp<Foam::volScalarField>
+Foam::interfaceProperties::nearInterface() const
+{
+    return pos(alpha1_ - 0.01)*pos(0.99 - alpha1_);
+}
+
+
 // ************************************************************************* //
diff --git a/src/transportModels/interfaceProperties/interfaceProperties.H b/src/transportModels/interfaceProperties/interfaceProperties.H
index fd296db689f8ef411f434bce3bc7902780d3f130..b14f118ac516aa803abd00db411a81223dd36398 100644
--- a/src/transportModels/interfaceProperties/interfaceProperties.H
+++ b/src/transportModels/interfaceProperties/interfaceProperties.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -142,6 +142,12 @@ public:
             return sigma_*K_;
         }
 
+        tmp<surfaceScalarField> surfaceTensionForce() const;
+
+        //- Indicator of the proximity of the interface
+        //  Field values are 1 near and 0 away for the interface.
+        tmp<volScalarField> nearInterface() const;
+
         void correct()
         {
             calculateK();
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water b/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water
deleted file mode 100644
index 10bf5279e5d323ca7160b8ff2704117efba105d0..0000000000000000000000000000000000000000
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water
+++ /dev/null
@@ -1,3119 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       volScalarField;
-    location    "0";
-    object      alpha.water;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-dimensions      [0 0 0 0 0 0 0];
-
-internalField   nonuniform List<scalar>
-3072
-(
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-)
-;
-
-boundaryField
-{
-    rotor
-    {
-        type            zeroGradient;
-    }
-    stator
-    {
-        type            zeroGradient;
-    }
-    front
-    {
-        type            empty;
-    }
-    back
-    {
-        type            empty;
-    }
-}
-
-
-// ************************************************************************* //
diff --git a/tutorials/multiphase/interFoam/laminar/Allclean b/tutorials/multiphase/interFoam/laminar/Allclean
index d5d1e50d10fd857db73859b2d4ac38a5792ddc2e..df028ca46d6a14b14fa135571022cd2449e2f37b 100755
--- a/tutorials/multiphase/interFoam/laminar/Allclean
+++ b/tutorials/multiphase/interFoam/laminar/Allclean
@@ -4,7 +4,7 @@ cd ${0%/*} || exit 1    # run from this directory
 # Source tutorial clean functions
 . $WM_PROJECT_DIR/bin/tools/CleanFunctions
 
-keepCases="damBreak capillaryRise"
+keepCases="damBreak capillaryRise mixerVessel2D"
 loseCases="damBreakFine"
 
 for case in $keepCases
diff --git a/tutorials/multiphase/interFoam/laminar/Allrun b/tutorials/multiphase/interFoam/laminar/Allrun
index c0e6661c4b4fbd87655d60811595ee2c6cf89b8b..909399dc9f4f0ba3d20d47a6211354e5d36802bd 100755
--- a/tutorials/multiphase/interFoam/laminar/Allrun
+++ b/tutorials/multiphase/interFoam/laminar/Allrun
@@ -52,13 +52,10 @@ cloneCase damBreak damBreakFine
 )
 
 # Do capillaryRise
-(
-    cd capillaryRise || exit
+(cd capillaryRise && foamRunTutorials)
+
+# Do mixerVessel2D
+(cd mixerVessel2D && foamRunTutorials)
 
-    runApplication blockMesh
-    cp 0/alpha.water.org 0/alpha.water
-    runApplication setFields
-    runApplication `getApplication`
-)
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/multiphase/interFoam/laminar/capillaryRise/Allrun b/tutorials/multiphase/interFoam/laminar/capillaryRise/Allrun
new file mode 100755
index 0000000000000000000000000000000000000000..664a02ae5e468ce04dfcb4aa5af71f4c77a26adc
--- /dev/null
+++ b/tutorials/multiphase/interFoam/laminar/capillaryRise/Allrun
@@ -0,0 +1,14 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+application=`getApplication`
+
+runApplication blockMesh
+cp 0/alpha.water.org 0/alpha.water
+runApplication setFields
+runApplication $application
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/polyMesh/boundary b/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/polyMesh/boundary
index 837f47df2a9a26bcd44ad5640eecbff3b614d2dc..a0a9db56d9c006a2a37852d081080dbcac62b3bf 100644
--- a/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/polyMesh/boundary
+++ b/tutorials/multiphase/interFoam/laminar/capillaryRise/constant/polyMesh/boundary
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -32,6 +32,7 @@ FoamFile
     walls
     {
         type            wall;
+        inGroups        1(wall);
         nFaces          800;
         startFace       15620;
     }
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/U b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/U
similarity index 94%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/U
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/U
index b2024d5b773409c0ff9c135f42cf79b8b96d8111..b13f9a2d8cba15ec76d481d1682aea55c02e654a 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/U
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/U
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water.org b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/alpha.water.org
similarity index 94%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water.org
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/alpha.water.org
index 613e7cf1e9009cd088cd84c61bc88526c95c8ea1..cfa5d44c55d7c08a8e49bf9b452f080c5c707bc4 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/alpha.water.org
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/alpha.water.org
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/p_rgh b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/p_rgh
similarity index 94%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/p_rgh
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/p_rgh
index 3ea5cd88c81a7b9f0626293c405cf5a46d30dfd2..7b7a6e046b268bb733b4a49ae7fbbec2b671fe3d 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/0/p_rgh
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/0/p_rgh
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/Allrun b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/Allrun
similarity index 83%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/Allrun
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/Allrun
index a718eaf7e662bad616179bd183caa9fd72de8b79..500455cc5155c163dda03fb1053b7a7fafc9fa84 100755
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/Allrun
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/Allrun
@@ -7,6 +7,8 @@ cd ${0%/*} || exit 1    # run from this directory
 application=`getApplication`
 
 runApplication ./makeMesh
+cp 0/alpha.water.org 0/alpha.water
+runApplication setFields
 runApplication $application
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/MRFProperties b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/MRFProperties
similarity index 94%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/MRFProperties
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/MRFProperties
index c9bc352a738b3fc246e66e410d5924d8c171622f..75bfead7573a509e6338074b5d263cc60fb3c545 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/MRFProperties
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/MRFProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/g b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/g
similarity index 93%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/g
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/g
index 36eafd9d27f4de5efbe8142b0e846e5a812d6360..099c2ee8a62844bf34ffe9a2ea32e432404ccf87 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/g
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/g
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/polyMesh/blockMeshDict.m4
similarity index 99%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/polyMesh/blockMeshDict.m4
index baeabd1414066827d3ef646a62627bfe042992f6..2b215888a71c4f049ce41ce41a9c6154f2946c2a 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/polyMesh/blockMeshDict.m4
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/polyMesh/boundary b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/polyMesh/boundary
similarity index 91%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/polyMesh/boundary
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/polyMesh/boundary
index 7ee4864d8bbaaf41eac0ae71fef2adeef519200b..e1125126de82d454ab3ac4da655292f87261882b 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/polyMesh/boundary
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/polyMesh/boundary
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -20,12 +20,14 @@ FoamFile
     rotor
     {
         type            wall;
+        inGroups        1(wall);
         nFaces          192;
         startFace       5952;
     }
     stator
     {
         type            wall;
+        inGroups        1(wall);
         nFaces          192;
         startFace       6144;
     }
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/transportProperties b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties
similarity index 94%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/transportProperties
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties
index c18d754f0be766d322e859793f9a1302477f3c36..f6088e3847593a59ac8095c9d1d7c861045cf73d 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/transportProperties
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/transportProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/turbulenceProperties b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/turbulenceProperties
similarity index 92%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/turbulenceProperties
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/turbulenceProperties
index b2fc0a43429976f47ac3533c8284c22d1f81909d..8e0954f71164cc422e17f963f55e7813f8e8c6a8 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/constant/turbulenceProperties
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/constant/turbulenceProperties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/makeMesh b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/makeMesh
similarity index 100%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/makeMesh
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/makeMesh
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/controlDict b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/controlDict
similarity index 92%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/controlDict
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/controlDict
index 5cba6c5db813619436505fbbb6638b29b40b06fd..01591d95542f6e60356b19eba3fead9b7ae2ba93 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/controlDict
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -15,7 +15,7 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-application     MRFInterFoam;
+application     interFoam;
 
 startFrom       startTime;
 
diff --git a/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvOptions b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvOptions
new file mode 100644
index 0000000000000000000000000000000000000000..6cc02ab9a77c8b61117b079fbbbcf6024859ff6d
--- /dev/null
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvOptions
@@ -0,0 +1,37 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvOptions;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+MRF1
+{
+    type            MRFSource;
+    active          yes;
+    selectionMode   cellZone;
+    cellZone        rotor;
+
+    MRFSourceCoeffs
+    {
+        // Fixed patches (by default they 'move' with the MRF zone)
+        nonRotatingPatches ();
+
+        origin    (0 0 0);
+        axis      (0 0 1);
+        omega     constant 6.2831853;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSchemes b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSchemes
similarity index 95%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSchemes
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSchemes
index 54c05f04fdb8e8dfcd5b355bde86045382bb33a9..46f7af5d2b269357a4947021bfa94f1d98e64828 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSchemes
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSchemes
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSolution b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSolution
similarity index 96%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSolution
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSolution
index a125dad16da62e97ac22c0106e0bed1913043d94..995f86cf48d4387a393caac22da5fab22ead8c1a 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSolution
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/fvSolution
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/setFieldsDict b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/setFieldsDict
similarity index 94%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/setFieldsDict
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/setFieldsDict
index 2163936c1dff43692cdf9374b3c546351f6fdf00..12179b3724097a560a45c45da201bf091f5dc936 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/setFieldsDict
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/setFieldsDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/topoSetDict b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/topoSetDict
similarity index 93%
rename from tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/topoSetDict
rename to tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/topoSetDict
index 439171e72f2aac910b45762f3788a7356153fb45..8aa466295f7f3e8f5019b4d3adb936147f7cc26f 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/topoSetDict
+++ b/tutorials/multiphase/interFoam/laminar/mixerVessel2D/system/topoSetDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  2.3.0                                 |
+|  \\    /   O peration     | Version:  2.3.x                                 |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water b/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water
index de2d1f50be4b9e3767ac1f2e49ef808e34c04db6..3baa5ab1b9c7c25acdb5dbd93299eefbba490105 100644
--- a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water
+++ b/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/0/alpha.water
@@ -11,2285 +11,13 @@ FoamFile
     format      ascii;
     class       volScalarField;
     location    "0";
-    object      alpha.water;
+    object      alpha.water.org;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 dimensions      [0 0 0 0 0 0 0];
 
-internalField   nonuniform List<scalar>
-2268
-(
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-)
-;
+internalField   uniform 0;
 
 boundaryField
 {
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/U b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/U
new file mode 100644
index 0000000000000000000000000000000000000000..74f1880f7c67b6ef2361c32eefd35ce217306d67
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/U
@@ -0,0 +1,60 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    location    "0";
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    rotor
+    {
+        type            movingWallVelocity;
+        value           uniform (0 0 0);
+    }
+
+    stator
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+
+    front
+    {
+        type            empty;
+    }
+
+    back
+    {
+        type            empty;
+    }
+
+    AMI1
+    {
+        type            cyclicAMI;
+        value           $internalField;
+    }
+
+    AMI2
+    {
+        type            cyclicAMI;
+        value           $internalField;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.air b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.air
new file mode 100644
index 0000000000000000000000000000000000000000..71c9e3523f076401b8f25676754261c6cb978e2d
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.air
@@ -0,0 +1,56 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alpha.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    rotor
+    {
+        type            zeroGradient;
+    }
+
+    stator
+    {
+        type            zeroGradient;
+    }
+
+    front
+    {
+        type            empty;
+    }
+
+    back
+    {
+        type            empty;
+    }
+
+    AMI1
+    {
+        type            cyclicAMI;
+        value           $internalField;
+    }
+
+    AMI2
+    {
+        type            cyclicAMI;
+        value           $internalField;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.mercury b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.mercury
new file mode 100644
index 0000000000000000000000000000000000000000..ac2bcc21b7650d203c12448af1ceffe757abdf3c
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.mercury
@@ -0,0 +1,56 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alpha.mercury;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    rotor
+    {
+        type            zeroGradient;
+    }
+
+    stator
+    {
+        type            zeroGradient;
+    }
+
+    front
+    {
+        type            empty;
+    }
+
+    back
+    {
+        type            empty;
+    }
+
+    AMI1
+    {
+        type            cyclicAMI;
+        value           $internalField;
+    }
+
+    AMI2
+    {
+        type            cyclicAMI;
+        value           $internalField;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.oil b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.oil
new file mode 100644
index 0000000000000000000000000000000000000000..ce5a044db20041bdb65251a689c090312da53246
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.oil
@@ -0,0 +1,56 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alpha.oil;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    rotor
+    {
+        type            zeroGradient;
+    }
+
+    stator
+    {
+        type            zeroGradient;
+    }
+
+    front
+    {
+        type            empty;
+    }
+
+    back
+    {
+        type            empty;
+    }
+
+    AMI1
+    {
+        type            cyclicAMI;
+        value           $internalField;
+    }
+
+    AMI2
+    {
+        type            cyclicAMI;
+        value           $internalField;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.water b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.water
new file mode 100644
index 0000000000000000000000000000000000000000..87dd05c4bd397bf3774f01c2dbb4c0e466f128f5
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/alpha.water
@@ -0,0 +1,56 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alpha.water;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    rotor
+    {
+        type            zeroGradient;
+    }
+
+    stator
+    {
+        type            zeroGradient;
+    }
+
+    front
+    {
+        type            empty;
+    }
+
+    back
+    {
+        type            empty;
+    }
+
+    AMI1
+    {
+        type            cyclicAMI;
+        value           $internalField;
+    }
+
+    AMI2
+    {
+        type            cyclicAMI;
+        value           $internalField;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/p_rgh b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/p_rgh
new file mode 100644
index 0000000000000000000000000000000000000000..b3f5f4df9ca5b3668e91d56c74f2deb6e3c7abb8
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/0.org/p_rgh
@@ -0,0 +1,56 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    rotor
+    {
+        type            fixedFluxPressure;
+    }
+
+    stator
+    {
+        type            fixedFluxPressure;
+    }
+
+    front
+    {
+        type            empty;
+    }
+
+    back
+    {
+        type            empty;
+    }
+
+    AMI1
+    {
+        type            cyclicAMI;
+        value           $internalField;
+    }
+
+    AMI2
+    {
+        type            cyclicAMI;
+        value           $internalField;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/Allrun b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/Allrun
new file mode 100755
index 0000000000000000000000000000000000000000..98d1164778a305e6cdce049ae7ee892b9fa4430c
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/Allrun
@@ -0,0 +1,20 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+application=`getApplication`
+
+./makeMesh
+
+rm -rf 0
+cp -r 0.org 0
+setFields
+
+#runApplication $application
+#runApplication decomposePar
+#runParallel $application 4
+#runApplication reconstructPar
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/RASProperties b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/RASProperties
new file mode 100644
index 0000000000000000000000000000000000000000..d964d3c86279abddc56f08cb6dd09ff387094fa7
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/RASProperties
@@ -0,0 +1,25 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      RASProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+RASModel        kEpsilon;
+
+turbulence      on;
+
+printCoeffs     on;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..daa58cd741bd0e865754eedaca153ecc0e552ca7
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/dynamicMeshDict
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      dynamicMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dynamicFvMesh   solidBodyMotionFvMesh;
+
+motionSolverLibs ( "libfvMotionSolvers.so" );
+
+solidBodyMotionFvMeshCoeffs
+{
+    cellZone        rotor;
+
+    solidBodyMotionFunction  rotatingMotion;
+    rotatingMotionCoeffs
+    {
+        origin        (0 0 0);
+        axis          (0 0 1);
+        omega         6.2832; // rad/s
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/g b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/g
new file mode 100644
index 0000000000000000000000000000000000000000..099c2ee8a62844bf34ffe9a2ea32e432404ccf87
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/g
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    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 0);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/blockMeshDict.m4 b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/blockMeshDict.m4
new file mode 100644
index 0000000000000000000000000000000000000000..1095ba9a19349a9a6ec676ff4aa515bdf9da8adc
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/blockMeshDict.m4
@@ -0,0 +1,924 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    `format'      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// General macros to create 2D/extruded-2D meshes
+
+changecom(//)changequote([,])
+define(calc, [esyscmd(perl -e 'print ($1)')])
+define(VCOUNT, 0)
+define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))])
+define(pi, 3.14159265)
+
+define(hex2D, hex ($1b $2b $3b $4b $1t $2t $3t $4t))
+define(quad2D, ($1b $2b $2t $1t))
+define(frontQuad, ($1t $2t $3t $4t))
+define(backQuad, ($1b $4b $3b $2b))
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 0.1;
+
+// Hub radius
+define(r, 0.2)
+
+// Impeller-tip radius
+define(rb, 0.5)
+
+// Baffle-tip radius
+define(Rb, 0.7)
+
+// Tank radius
+define(R, 1)
+
+// MRF region radius
+define(ri, calc(0.5*(rb + Rb)))
+
+// Thickness of 2D slab
+define(z, 0.1)
+
+// Base z
+define(Zb, 0)
+
+// Top z
+define(Zt, calc(Zb + z))
+
+// Number of cells radially between hub and impeller tip
+define(Nr, 12)
+
+// Number of cells radially in each of the two regions between
+// impeller and baffle tips
+define(Ni, 4)
+
+// Number of cells radially between baffle tip and tank
+define(NR, 12)
+
+// Number of cells azimuthally in each of the 8 blocks
+define(Na, 12)
+
+// Number of cells in the thickness of the slab
+define(Nz, 1)
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+define(vert, (x$1$2 y$1$2 $3))
+define(evert, (ex$1$2 ey$1$2 $3))
+
+define(a0, 0)
+define(a1, -45)
+define(a2, -90)
+define(a3, -135)
+define(a4, 180)
+define(a5, 135)
+define(a6, 90)
+define(a7, 45)
+
+define(ea0, -22.5)
+define(ea1, -67.5)
+define(ea2, -112.5)
+define(ea3, -157.5)
+define(ea4, 157.5)
+define(ea5, 112.5)
+define(ea6, 67.5)
+define(ea7, 22.5)
+
+define(ca0, calc(cos((pi/180)*a0)))
+define(ca1, calc(cos((pi/180)*a1)))
+define(ca2, calc(cos((pi/180)*a2)))
+define(ca3, calc(cos((pi/180)*a3)))
+define(ca4, calc(cos((pi/180)*a4)))
+define(ca5, calc(cos((pi/180)*a5)))
+define(ca6, calc(cos((pi/180)*a6)))
+define(ca7, calc(cos((pi/180)*a7)))
+
+define(sa0, calc(sin((pi/180)*a0)))
+define(sa1, calc(sin((pi/180)*a1)))
+define(sa2, calc(sin((pi/180)*a2)))
+define(sa3, calc(sin((pi/180)*a3)))
+define(sa4, calc(sin((pi/180)*a4)))
+define(sa5, calc(sin((pi/180)*a5)))
+define(sa6, calc(sin((pi/180)*a6)))
+define(sa7, calc(sin((pi/180)*a7)))
+
+define(cea0, calc(cos((pi/180)*ea0)))
+define(cea1, calc(cos((pi/180)*ea1)))
+define(cea2, calc(cos((pi/180)*ea2)))
+define(cea3, calc(cos((pi/180)*ea3)))
+define(cea4, calc(cos((pi/180)*ea4)))
+define(cea5, calc(cos((pi/180)*ea5)))
+define(cea6, calc(cos((pi/180)*ea6)))
+define(cea7, calc(cos((pi/180)*ea7)))
+
+define(sea0, calc(sin((pi/180)*ea0)))
+define(sea1, calc(sin((pi/180)*ea1)))
+define(sea2, calc(sin((pi/180)*ea2)))
+define(sea3, calc(sin((pi/180)*ea3)))
+define(sea4, calc(sin((pi/180)*ea4)))
+define(sea5, calc(sin((pi/180)*ea5)))
+define(sea6, calc(sin((pi/180)*ea6)))
+define(sea7, calc(sin((pi/180)*ea7)))
+
+define(x00, calc(r*ca0))
+define(x01, calc(r*ca1))
+define(x02, calc(r*ca2))
+define(x03, calc(r*ca3))
+define(x04, calc(r*ca4))
+define(x05, calc(r*ca5))
+define(x06, calc(r*ca6))
+define(x07, calc(r*ca7))
+
+define(x10, calc(rb*ca0))
+define(x11, calc(rb*ca1))
+define(x12, calc(rb*ca2))
+define(x13, calc(rb*ca3))
+define(x14, calc(rb*ca4))
+define(x15, calc(rb*ca5))
+define(x16, calc(rb*ca6))
+define(x17, calc(rb*ca7))
+
+define(x20, calc(ri*ca0))
+define(x21, calc(ri*ca1))
+define(x22, calc(ri*ca2))
+define(x23, calc(ri*ca3))
+define(x24, calc(ri*ca4))
+define(x25, calc(ri*ca5))
+define(x26, calc(ri*ca6))
+define(x27, calc(ri*ca7))
+
+define(x30, calc(Rb*ca0))
+define(x31, calc(Rb*ca1))
+define(x32, calc(Rb*ca2))
+define(x33, calc(Rb*ca3))
+define(x34, calc(Rb*ca4))
+define(x35, calc(Rb*ca5))
+define(x36, calc(Rb*ca6))
+define(x37, calc(Rb*ca7))
+
+define(x40, calc(R*ca0))
+define(x41, calc(R*ca1))
+define(x42, calc(R*ca2))
+define(x43, calc(R*ca3))
+define(x44, calc(R*ca4))
+define(x45, calc(R*ca5))
+define(x46, calc(R*ca6))
+define(x47, calc(R*ca7))
+
+define(y00, calc(r*sa0))
+define(y01, calc(r*sa1))
+define(y02, calc(r*sa2))
+define(y03, calc(r*sa3))
+define(y04, calc(r*sa4))
+define(y05, calc(r*sa5))
+define(y06, calc(r*sa6))
+define(y07, calc(r*sa7))
+
+define(y10, calc(rb*sa0))
+define(y11, calc(rb*sa1))
+define(y12, calc(rb*sa2))
+define(y13, calc(rb*sa3))
+define(y14, calc(rb*sa4))
+define(y15, calc(rb*sa5))
+define(y16, calc(rb*sa6))
+define(y17, calc(rb*sa7))
+
+define(y20, calc(ri*sa0))
+define(y21, calc(ri*sa1))
+define(y22, calc(ri*sa2))
+define(y23, calc(ri*sa3))
+define(y24, calc(ri*sa4))
+define(y25, calc(ri*sa5))
+define(y26, calc(ri*sa6))
+define(y27, calc(ri*sa7))
+
+define(y30, calc(Rb*sa0))
+define(y31, calc(Rb*sa1))
+define(y32, calc(Rb*sa2))
+define(y33, calc(Rb*sa3))
+define(y34, calc(Rb*sa4))
+define(y35, calc(Rb*sa5))
+define(y36, calc(Rb*sa6))
+define(y37, calc(Rb*sa7))
+
+define(y40, calc(R*sa0))
+define(y41, calc(R*sa1))
+define(y42, calc(R*sa2))
+define(y43, calc(R*sa3))
+define(y44, calc(R*sa4))
+define(y45, calc(R*sa5))
+define(y46, calc(R*sa6))
+define(y47, calc(R*sa7))
+
+define(ex00, calc(r*cea0))
+define(ex01, calc(r*cea1))
+define(ex02, calc(r*cea2))
+define(ex03, calc(r*cea3))
+define(ex04, calc(r*cea4))
+define(ex05, calc(r*cea5))
+define(ex06, calc(r*cea6))
+define(ex07, calc(r*cea7))
+
+define(ex10, calc(rb*cea0))
+define(ex11, calc(rb*cea1))
+define(ex12, calc(rb*cea2))
+define(ex13, calc(rb*cea3))
+define(ex14, calc(rb*cea4))
+define(ex15, calc(rb*cea5))
+define(ex16, calc(rb*cea6))
+define(ex17, calc(rb*cea7))
+
+define(ex20, calc(ri*cea0))
+define(ex21, calc(ri*cea1))
+define(ex22, calc(ri*cea2))
+define(ex23, calc(ri*cea3))
+define(ex24, calc(ri*cea4))
+define(ex25, calc(ri*cea5))
+define(ex26, calc(ri*cea6))
+define(ex27, calc(ri*cea7))
+
+define(ex30, calc(Rb*cea0))
+define(ex31, calc(Rb*cea1))
+define(ex32, calc(Rb*cea2))
+define(ex33, calc(Rb*cea3))
+define(ex34, calc(Rb*cea4))
+define(ex35, calc(Rb*cea5))
+define(ex36, calc(Rb*cea6))
+define(ex37, calc(Rb*cea7))
+
+define(ex40, calc(R*cea0))
+define(ex41, calc(R*cea1))
+define(ex42, calc(R*cea2))
+define(ex43, calc(R*cea3))
+define(ex44, calc(R*cea4))
+define(ex45, calc(R*cea5))
+define(ex46, calc(R*cea6))
+define(ex47, calc(R*cea7))
+
+define(ey00, calc(r*sea0))
+define(ey01, calc(r*sea1))
+define(ey02, calc(r*sea2))
+define(ey03, calc(r*sea3))
+define(ey04, calc(r*sea4))
+define(ey05, calc(r*sea5))
+define(ey06, calc(r*sea6))
+define(ey07, calc(r*sea7))
+
+define(ey10, calc(rb*sea0))
+define(ey11, calc(rb*sea1))
+define(ey12, calc(rb*sea2))
+define(ey13, calc(rb*sea3))
+define(ey14, calc(rb*sea4))
+define(ey15, calc(rb*sea5))
+define(ey16, calc(rb*sea6))
+define(ey17, calc(rb*sea7))
+
+define(ey20, calc(ri*sea0))
+define(ey21, calc(ri*sea1))
+define(ey22, calc(ri*sea2))
+define(ey23, calc(ri*sea3))
+define(ey24, calc(ri*sea4))
+define(ey25, calc(ri*sea5))
+define(ey26, calc(ri*sea6))
+define(ey27, calc(ri*sea7))
+
+define(ey30, calc(Rb*sea0))
+define(ey31, calc(Rb*sea1))
+define(ey32, calc(Rb*sea2))
+define(ey33, calc(Rb*sea3))
+define(ey34, calc(Rb*sea4))
+define(ey35, calc(Rb*sea5))
+define(ey36, calc(Rb*sea6))
+define(ey37, calc(Rb*sea7))
+
+define(ey40, calc(R*sea0))
+define(ey41, calc(R*sea1))
+define(ey42, calc(R*sea2))
+define(ey43, calc(R*sea3))
+define(ey44, calc(R*sea4))
+define(ey45, calc(R*sea5))
+define(ey46, calc(R*sea6))
+define(ey47, calc(R*sea7))
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+vertices
+(
+    vert(0, 0, Zb) vlabel(r0b)
+    vert(0, 0, Zb) vlabel(r0sb)
+    vert(0, 1, Zb) vlabel(r1b)
+    vert(0, 2, Zb) vlabel(r2b)
+    vert(0, 2, Zb) vlabel(r2sb)
+    vert(0, 3, Zb) vlabel(r3b)
+    vert(0, 4, Zb) vlabel(r4b)
+    vert(0, 4, Zb) vlabel(r4sb)
+    vert(0, 5, Zb) vlabel(r5b)
+    vert(0, 6, Zb) vlabel(r6b)
+    vert(0, 6, Zb) vlabel(r6sb)
+    vert(0, 7, Zb) vlabel(r7b)
+
+    vert(1, 0, Zb) vlabel(rb0b)
+    vert(1, 1, Zb) vlabel(rb1b)
+    vert(1, 2, Zb) vlabel(rb2b)
+    vert(1, 3, Zb) vlabel(rb3b)
+    vert(1, 4, Zb) vlabel(rb4b)
+    vert(1, 5, Zb) vlabel(rb5b)
+    vert(1, 6, Zb) vlabel(rb6b)
+    vert(1, 7, Zb) vlabel(rb7b)
+
+    vert(2, 0, Zb) vlabel(ri0b)
+    vert(2, 1, Zb) vlabel(ri1b)
+    vert(2, 2, Zb) vlabel(ri2b)
+    vert(2, 3, Zb) vlabel(ri3b)
+    vert(2, 4, Zb) vlabel(ri4b)
+    vert(2, 5, Zb) vlabel(ri5b)
+    vert(2, 6, Zb) vlabel(ri6b)
+    vert(2, 7, Zb) vlabel(ri7b)
+
+    vert(2, 0, Zb) vlabel(ris0b)
+    vert(2, 1, Zb) vlabel(ris1b)
+    vert(2, 2, Zb) vlabel(ris2b)
+    vert(2, 3, Zb) vlabel(ris3b)
+    vert(2, 4, Zb) vlabel(ris4b)
+    vert(2, 5, Zb) vlabel(ris5b)
+    vert(2, 6, Zb) vlabel(ris6b)
+    vert(2, 7, Zb) vlabel(ris7b)
+
+    vert(3, 0, Zb) vlabel(Rb0b)
+    vert(3, 1, Zb) vlabel(Rb1b)
+    vert(3, 2, Zb) vlabel(Rb2b)
+    vert(3, 3, Zb) vlabel(Rb3b)
+    vert(3, 4, Zb) vlabel(Rb4b)
+    vert(3, 5, Zb) vlabel(Rb5b)
+    vert(3, 6, Zb) vlabel(Rb6b)
+    vert(3, 7, Zb) vlabel(Rb7b)
+
+    vert(4, 0, Zb) vlabel(R0b)
+    vert(4, 1, Zb) vlabel(R1b)
+    vert(4, 1, Zb) vlabel(R1sb)
+    vert(4, 2, Zb) vlabel(R2b)
+    vert(4, 3, Zb) vlabel(R3b)
+    vert(4, 3, Zb) vlabel(R3sb)
+    vert(4, 4, Zb) vlabel(R4b)
+    vert(4, 5, Zb) vlabel(R5b)
+    vert(4, 5, Zb) vlabel(R5sb)
+    vert(4, 6, Zb) vlabel(R6b)
+    vert(4, 7, Zb) vlabel(R7b)
+    vert(4, 7, Zb) vlabel(R7sb)
+
+    vert(0, 0, Zt) vlabel(r0t)
+    vert(0, 0, Zt) vlabel(r0st)
+    vert(0, 1, Zt) vlabel(r1t)
+    vert(0, 2, Zt) vlabel(r2t)
+    vert(0, 2, Zt) vlabel(r2st)
+    vert(0, 3, Zt) vlabel(r3t)
+    vert(0, 4, Zt) vlabel(r4t)
+    vert(0, 4, Zt) vlabel(r4st)
+    vert(0, 5, Zt) vlabel(r5t)
+    vert(0, 6, Zt) vlabel(r6t)
+    vert(0, 6, Zt) vlabel(r6st)
+    vert(0, 7, Zt) vlabel(r7t)
+
+    vert(1, 0, Zt) vlabel(rb0t)
+    vert(1, 1, Zt) vlabel(rb1t)
+    vert(1, 2, Zt) vlabel(rb2t)
+    vert(1, 3, Zt) vlabel(rb3t)
+    vert(1, 4, Zt) vlabel(rb4t)
+    vert(1, 5, Zt) vlabel(rb5t)
+    vert(1, 6, Zt) vlabel(rb6t)
+    vert(1, 7, Zt) vlabel(rb7t)
+
+    vert(2, 0, Zt) vlabel(ri0t)
+    vert(2, 1, Zt) vlabel(ri1t)
+    vert(2, 2, Zt) vlabel(ri2t)
+    vert(2, 3, Zt) vlabel(ri3t)
+    vert(2, 4, Zt) vlabel(ri4t)
+    vert(2, 5, Zt) vlabel(ri5t)
+    vert(2, 6, Zt) vlabel(ri6t)
+    vert(2, 7, Zt) vlabel(ri7t)
+
+    vert(2, 0, Zt) vlabel(ris0t)
+    vert(2, 1, Zt) vlabel(ris1t)
+    vert(2, 2, Zt) vlabel(ris2t)
+    vert(2, 3, Zt) vlabel(ris3t)
+    vert(2, 4, Zt) vlabel(ris4t)
+    vert(2, 5, Zt) vlabel(ris5t)
+    vert(2, 6, Zt) vlabel(ris6t)
+    vert(2, 7, Zt) vlabel(ris7t)
+
+    vert(3, 0, Zt) vlabel(Rb0t)
+    vert(3, 1, Zt) vlabel(Rb1t)
+    vert(3, 2, Zt) vlabel(Rb2t)
+    vert(3, 3, Zt) vlabel(Rb3t)
+    vert(3, 4, Zt) vlabel(Rb4t)
+    vert(3, 5, Zt) vlabel(Rb5t)
+    vert(3, 6, Zt) vlabel(Rb6t)
+    vert(3, 7, Zt) vlabel(Rb7t)
+
+    vert(4, 0, Zt) vlabel(R0t)
+    vert(4, 1, Zt) vlabel(R1t)
+    vert(4, 1, Zt) vlabel(R1st)
+    vert(4, 2, Zt) vlabel(R2t)
+    vert(4, 3, Zt) vlabel(R3t)
+    vert(4, 3, Zt) vlabel(R3st)
+    vert(4, 4, Zt) vlabel(R4t)
+    vert(4, 5, Zt) vlabel(R5t)
+    vert(4, 5, Zt) vlabel(R5st)
+    vert(4, 6, Zt) vlabel(R6t)
+    vert(4, 7, Zt) vlabel(R7t)
+    vert(4, 7, Zt) vlabel(R7st)
+);
+
+blocks
+(
+    // block0
+    hex2D(r0, r1, rb1, rb0)
+    rotor
+    (Na Nr Nz)
+    simpleGrading (1 1 1)
+
+    // block1
+    hex2D(r1, r2s, rb2, rb1)
+    rotor
+    (Na Nr Nz)
+    simpleGrading (1 1 1)
+
+    // block2
+    hex2D(r2, r3, rb3, rb2)
+    rotor
+    (Na Nr Nz)
+    simpleGrading (1 1 1)
+
+    // block3
+    hex2D(r3, r4s, rb4, rb3)
+    rotor
+    (Na Nr Nz)
+    simpleGrading (1 1 1)
+
+    // block4
+    hex2D(r4, r5, rb5, rb4)
+    rotor
+    (Na Nr Nz)
+    simpleGrading (1 1 1)
+
+    // block5
+    hex2D(r5, r6s, rb6, rb5)
+    rotor
+    (Na Nr Nz)
+    simpleGrading (1 1 1)
+
+    // block6
+    hex2D(r6, r7, rb7, rb6)
+    rotor
+    (Na Nr Nz)
+    simpleGrading (1 1 1)
+
+    // block7
+    hex2D(r7, r0s, rb0, rb7)
+    rotor
+    (Na Nr Nz)
+    simpleGrading (1 1 1)
+
+    // block0
+    hex2D(rb0, rb1, ri1, ri0)
+    rotor
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block1
+    hex2D(rb1, rb2, ri2, ri1)
+    rotor
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block2
+    hex2D(rb2, rb3, ri3, ri2)
+    rotor
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block3
+    hex2D(rb3, rb4, ri4, ri3)
+    rotor
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block4
+    hex2D(rb4, rb5, ri5, ri4)
+    rotor
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block5
+    hex2D(rb5, rb6, ri6, ri5)
+    rotor
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block6
+    hex2D(rb6, rb7, ri7, ri6)
+    rotor
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block7
+    hex2D(rb7, rb0, ri0, ri7)
+    rotor
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block0
+    hex2D(ris0, ris1, Rb1, Rb0)
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block1
+    hex2D(ris1, ris2, Rb2, Rb1)
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block2
+    hex2D(ris2, ris3, Rb3, Rb2)
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block3
+    hex2D(ris3, ris4, Rb4, Rb3)
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block4
+    hex2D(ris4, ris5, Rb5, Rb4)
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block5
+    hex2D(ris5, ris6, Rb6, Rb5)
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block6
+    hex2D(ris6, ris7, Rb7, Rb6)
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block7
+    hex2D(ris7, ris0, Rb0, Rb7)
+    (Na Ni Nz)
+    simpleGrading (1 1 1)
+
+    // block0
+    hex2D(Rb0, Rb1, R1s, R0)
+    (Na NR Nz)
+    simpleGrading (1 1 1)
+
+    // block1
+    hex2D(Rb1, Rb2, R2, R1)
+    (Na NR Nz)
+    simpleGrading (1 1 1)
+
+    // block2
+    hex2D(Rb2, Rb3, R3s, R2)
+    (Na NR Nz)
+    simpleGrading (1 1 1)
+
+    // block3
+    hex2D(Rb3, Rb4, R4, R3)
+    (Na NR Nz)
+    simpleGrading (1 1 1)
+
+    // block4
+    hex2D(Rb4, Rb5, R5s, R4)
+    (Na NR Nz)
+    simpleGrading (1 1 1)
+
+    // block5
+    hex2D(Rb5, Rb6, R6, R5)
+    (Na NR Nz)
+    simpleGrading (1 1 1)
+
+    // block6
+    hex2D(Rb6, Rb7, R7s, R6)
+    (Na NR Nz)
+    simpleGrading (1 1 1)
+
+    // block7
+    hex2D(Rb7, Rb0, R0, R7)
+    (Na NR Nz)
+    simpleGrading (1 1 1)
+);
+
+edges
+(
+    arc r0b r1b evert(0, 0, Zb)
+    arc r1b r2sb evert(0, 1, Zb)
+    arc r2b r3b evert(0, 2, Zb)
+    arc r3b r4sb evert(0, 3, Zb)
+    arc r4b r5b evert(0, 4, Zb)
+    arc r5b r6sb evert(0, 5, Zb)
+    arc r6b r7b evert(0, 6, Zb)
+    arc r7b r0sb evert(0, 7, Zb)
+
+    arc rb0b rb1b evert(1, 0, Zb)
+    arc rb1b rb2b evert(1, 1, Zb)
+    arc rb2b rb3b evert(1, 2, Zb)
+    arc rb3b rb4b evert(1, 3, Zb)
+    arc rb4b rb5b evert(1, 4, Zb)
+    arc rb5b rb6b evert(1, 5, Zb)
+    arc rb6b rb7b evert(1, 6, Zb)
+    arc rb7b rb0b evert(1, 7, Zb)
+
+    arc ri0b ri1b evert(2, 0, Zb)
+    arc ri1b ri2b evert(2, 1, Zb)
+    arc ri2b ri3b evert(2, 2, Zb)
+    arc ri3b ri4b evert(2, 3, Zb)
+    arc ri4b ri5b evert(2, 4, Zb)
+    arc ri5b ri6b evert(2, 5, Zb)
+    arc ri6b ri7b evert(2, 6, Zb)
+    arc ri7b ri0b evert(2, 7, Zb)
+
+    arc ris0b ris1b evert(2, 0, Zb)
+    arc ris1b ris2b evert(2, 1, Zb)
+    arc ris2b ris3b evert(2, 2, Zb)
+    arc ris3b ris4b evert(2, 3, Zb)
+    arc ris4b ris5b evert(2, 4, Zb)
+    arc ris5b ris6b evert(2, 5, Zb)
+    arc ris6b ris7b evert(2, 6, Zb)
+    arc ris7b ris0b evert(2, 7, Zb)
+
+    arc Rb0b Rb1b evert(3, 0, Zb)
+    arc Rb1b Rb2b evert(3, 1, Zb)
+    arc Rb2b Rb3b evert(3, 2, Zb)
+    arc Rb3b Rb4b evert(3, 3, Zb)
+    arc Rb4b Rb5b evert(3, 4, Zb)
+    arc Rb5b Rb6b evert(3, 5, Zb)
+    arc Rb6b Rb7b evert(3, 6, Zb)
+    arc Rb7b Rb0b evert(3, 7, Zb)
+
+    arc R0b R1sb evert(4, 0, Zb)
+    arc R1b R2b evert(4, 1, Zb)
+    arc R2b R3sb evert(4, 2, Zb)
+    arc R3b R4b evert(4, 3, Zb)
+    arc R4b R5sb evert(4, 4, Zb)
+    arc R5b R6b evert(4, 5, Zb)
+    arc R6b R7sb evert(4, 6, Zb)
+    arc R7b R0b evert(4, 7, Zb)
+
+    arc r0t r1t evert(0, 0, Zt)
+    arc r1t r2st evert(0, 1, Zt)
+    arc r2t r3t evert(0, 2, Zt)
+    arc r3t r4st evert(0, 3, Zt)
+    arc r4t r5t evert(0, 4, Zt)
+    arc r5t r6st evert(0, 5, Zt)
+    arc r6t r7t evert(0, 6, Zt)
+    arc r7t r0st evert(0, 7, Zt)
+
+    arc rb0t rb1t evert(1, 0, Zt)
+    arc rb1t rb2t evert(1, 1, Zt)
+    arc rb2t rb3t evert(1, 2, Zt)
+    arc rb3t rb4t evert(1, 3, Zt)
+    arc rb4t rb5t evert(1, 4, Zt)
+    arc rb5t rb6t evert(1, 5, Zt)
+    arc rb6t rb7t evert(1, 6, Zt)
+    arc rb7t rb0t evert(1, 7, Zt)
+
+    arc ri0t ri1t evert(2, 0, Zt)
+    arc ri1t ri2t evert(2, 1, Zt)
+    arc ri2t ri3t evert(2, 2, Zt)
+    arc ri3t ri4t evert(2, 3, Zt)
+    arc ri4t ri5t evert(2, 4, Zt)
+    arc ri5t ri6t evert(2, 5, Zt)
+    arc ri6t ri7t evert(2, 6, Zt)
+    arc ri7t ri0t evert(2, 7, Zt)
+
+    arc ris0t ris1t evert(2, 0, Zt)
+    arc ris1t ris2t evert(2, 1, Zt)
+    arc ris2t ris3t evert(2, 2, Zt)
+    arc ris3t ris4t evert(2, 3, Zt)
+    arc ris4t ris5t evert(2, 4, Zt)
+    arc ris5t ris6t evert(2, 5, Zt)
+    arc ris6t ris7t evert(2, 6, Zt)
+    arc ris7t ris0t evert(2, 7, Zt)
+
+    arc Rb0t Rb1t evert(3, 0, Zt)
+    arc Rb1t Rb2t evert(3, 1, Zt)
+    arc Rb2t Rb3t evert(3, 2, Zt)
+    arc Rb3t Rb4t evert(3, 3, Zt)
+    arc Rb4t Rb5t evert(3, 4, Zt)
+    arc Rb5t Rb6t evert(3, 5, Zt)
+    arc Rb6t Rb7t evert(3, 6, Zt)
+    arc Rb7t Rb0t evert(3, 7, Zt)
+
+    arc R0t R1st evert(4, 0, Zt)
+    arc R1t R2t evert(4, 1, Zt)
+    arc R2t R3st evert(4, 2, Zt)
+    arc R3t R4t evert(4, 3, Zt)
+    arc R4t R5st evert(4, 4, Zt)
+    arc R5t R6t evert(4, 5, Zt)
+    arc R6t R7st evert(4, 6, Zt)
+    arc R7t R0t evert(4, 7, Zt)
+);
+
+boundary
+(
+    rotor
+    {
+        type            wall;
+        faces
+        (
+            quad2D(r0, r1)
+            quad2D(r1, r2s)
+            quad2D(r2, r3)
+            quad2D(r3, r4s)
+            quad2D(r4, r5)
+            quad2D(r5, r6s)
+            quad2D(r6, r7)
+            quad2D(r7, r0s)
+
+            quad2D(r0, rb0)
+            quad2D(r0s, rb0)
+
+            quad2D(r2, rb2)
+            quad2D(r2s, rb2)
+
+            quad2D(r4, rb4)
+            quad2D(r4s, rb4)
+
+            quad2D(r6, rb6)
+            quad2D(r6s, rb6)
+        );
+    }
+
+    stator
+    {
+        type            wall;
+        faces
+        (
+            quad2D(R0, R1s)
+            quad2D(R1, R2)
+            quad2D(R2, R3s)
+            quad2D(R3, R4)
+            quad2D(R4, R5s)
+            quad2D(R5, R6)
+            quad2D(R6, R7s)
+            quad2D(R7, R0)
+
+            quad2D(R1, Rb1)
+            quad2D(R1s, Rb1)
+
+            quad2D(R3, Rb3)
+            quad2D(R3s, Rb3)
+
+            quad2D(R5, Rb5)
+            quad2D(R5s, Rb5)
+
+            quad2D(R7, Rb7)
+            quad2D(R7s, Rb7)
+        );
+    }
+
+    AMI1
+    {
+        type            cyclicAMI;
+        neighbourPatch  AMI2;
+        transform       noOrdering;
+/* optional
+        surface
+        {
+            type            searchableCylinder; // none
+            point1          (0 0 -1);
+            point2          (0 0 1);
+            radius          0.5;
+        }
+*/
+        faces
+        (
+            quad2D(ri1, ri0)
+            quad2D(ri2, ri1)
+            quad2D(ri3, ri2)
+            quad2D(ri4, ri3)
+            quad2D(ri5, ri4)
+            quad2D(ri6, ri5)
+            quad2D(ri7, ri6)
+            quad2D(ri0, ri7)
+        );
+    }
+
+    AMI2
+    {
+        type            cyclicAMI;
+        neighbourPatch  AMI1;
+        transform       noOrdering;
+/* optional
+        surface
+        {
+            type            searchableCylinder; // none
+            point1          (0 0 -1);
+            point2          (0 0 1);
+            radius          0.5;
+        }
+*/
+        faces
+        (
+            quad2D(ris1, ris0)
+            quad2D(ris2, ris1)
+            quad2D(ris3, ris2)
+            quad2D(ris4, ris3)
+            quad2D(ris5, ris4)
+            quad2D(ris6, ris5)
+            quad2D(ris7, ris6)
+            quad2D(ris0, ris7)
+        );
+    }
+
+    front
+    {
+        type            empty;
+        faces
+        (
+            frontQuad(r0, r1, rb1, rb0)
+            frontQuad(r1, r2s, rb2, rb1)
+            frontQuad(r2, r3, rb3, rb2)
+            frontQuad(r3, r4s, rb4, rb3)
+            frontQuad(r4, r5, rb5, rb4)
+            frontQuad(r5, r6s, rb6, rb5)
+            frontQuad(r6, r7, rb7, rb6)
+            frontQuad(r7, r0s, rb0, rb7)
+            frontQuad(rb0, rb1, ri1, ri0)
+            frontQuad(rb1, rb2, ri2, ri1)
+            frontQuad(rb2, rb3, ri3, ri2)
+            frontQuad(rb3, rb4, ri4, ri3)
+            frontQuad(rb4, rb5, ri5, ri4)
+            frontQuad(rb5, rb6, ri6, ri5)
+            frontQuad(rb6, rb7, ri7, ri6)
+            frontQuad(rb7, rb0, ri0, ri7)
+            frontQuad(ris0, ris1, Rb1, Rb0)
+            frontQuad(ris1, ris2, Rb2, Rb1)
+            frontQuad(ris2, ris3, Rb3, Rb2)
+            frontQuad(ris3, ris4, Rb4, Rb3)
+            frontQuad(ris4, ris5, Rb5, Rb4)
+            frontQuad(ris5, ris6, Rb6, Rb5)
+            frontQuad(ris6, ris7, Rb7, Rb6)
+            frontQuad(ris7, ris0, Rb0, Rb7)
+            frontQuad(Rb0, Rb1, R1s, R0)
+            frontQuad(Rb1, Rb2, R2, R1)
+            frontQuad(Rb2, Rb3, R3s, R2)
+            frontQuad(Rb3, Rb4, R4, R3)
+            frontQuad(Rb4, Rb5, R5s, R4)
+            frontQuad(Rb5, Rb6, R6, R5)
+            frontQuad(Rb6, Rb7, R7s, R6)
+            frontQuad(Rb7, Rb0, R0, R7)
+        );
+    }
+
+    back
+    {
+        type            empty;
+        faces
+        (
+            backQuad(r0, r1, rb1, rb0)
+            backQuad(r1, r2s, rb2, rb1)
+            backQuad(r2, r3, rb3, rb2)
+            backQuad(r3, r4s, rb4, rb3)
+            backQuad(r4, r5, rb5, rb4)
+            backQuad(r5, r6s, rb6, rb5)
+            backQuad(r6, r7, rb7, rb6)
+            backQuad(r7, r0s, rb0, rb7)
+            backQuad(rb0, rb1, ri1, ri0)
+            backQuad(rb1, rb2, ri2, ri1)
+            backQuad(rb2, rb3, ri3, ri2)
+            backQuad(rb3, rb4, ri4, ri3)
+            backQuad(rb4, rb5, ri5, ri4)
+            backQuad(rb5, rb6, ri6, ri5)
+            backQuad(rb6, rb7, ri7, ri6)
+            backQuad(rb7, rb0, ri0, ri7)
+            backQuad(ris0, ris1, Rb1, Rb0)
+            backQuad(ris1, ris2, Rb2, Rb1)
+            backQuad(ris2, ris3, Rb3, Rb2)
+            backQuad(ris3, ris4, Rb4, Rb3)
+            backQuad(ris4, ris5, Rb5, Rb4)
+            backQuad(ris5, ris6, Rb6, Rb5)
+            backQuad(ris6, ris7, Rb7, Rb6)
+            backQuad(ris7, ris0, Rb0, Rb7)
+            backQuad(Rb0, Rb1, R1s, R0)
+            backQuad(Rb1, Rb2, R2, R1)
+            backQuad(Rb2, Rb3, R3s, R2)
+            backQuad(Rb3, Rb4, R4, R3)
+            backQuad(Rb4, Rb5, R5s, R4)
+            backQuad(Rb5, Rb6, R6, R5)
+            backQuad(Rb6, Rb7, R7s, R6)
+            backQuad(Rb7, Rb0, R0, R7)
+        );
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/boundary b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/boundary
new file mode 100644
index 0000000000000000000000000000000000000000..baf50c92d09e9a049bffc9508476cd13c976a9a4
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/polyMesh/boundary
@@ -0,0 +1,70 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       polyBoundaryMesh;
+    location    "constant/polyMesh";
+    object      boundary;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+6
+(
+    rotor
+    {
+        type            wall;
+        inGroups        1(wall);
+        nFaces          192;
+        startFace       5856;
+    }
+    stator
+    {
+        type            wall;
+        inGroups        1(wall);
+        nFaces          192;
+        startFace       6048;
+    }
+    AMI1
+    {
+        type            cyclicAMI;
+        inGroups        1(cyclicAMI);
+        nFaces          96;
+        startFace       6240;
+        matchTolerance  0.0001;
+        transform       noOrdering;
+        neighbourPatch  AMI2;
+    }
+    AMI2
+    {
+        type            cyclicAMI;
+        inGroups        1(cyclicAMI);
+        nFaces          96;
+        startFace       6336;
+        matchTolerance  0.0001;
+        transform       noOrdering;
+        neighbourPatch  AMI1;
+    }
+    front
+    {
+        type            empty;
+        inGroups        1(empty);
+        nFaces          3072;
+        startFace       6432;
+    }
+    back
+    {
+        type            empty;
+        inGroups        1(empty);
+        nFaces          3072;
+        startFace       9504;
+    }
+)
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/transportProperties b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/transportProperties
new file mode 100644
index 0000000000000000000000000000000000000000..79b59a2cbbd6ec3083cf6bd6a7565b2881a2c3f3
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/transportProperties
@@ -0,0 +1,60 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+phases
+(
+     water
+     {
+         transportModel Newtonian;
+         nu nu [ 0 2 -1 0 0 0 0 ] 1e-06;
+         rho rho [ 1 -3 0 0 0 0 0 ] 1000;
+     }
+
+     oil
+     {
+         transportModel Newtonian;
+         nu nu [ 0 2 -1 0 0 0 0 ] 1e-06;
+         rho rho [ 1 -3 0 0 0 0 0 ] 500;
+     }
+
+     mercury
+     {
+         transportModel Newtonian;
+         nu nu [ 0 2 -1 0 0 0 0 ] 1.125e-07;
+         rho rho [ 1 -3 0 0 0 0 0 ] 13529;
+     }
+
+     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;
+     }
+);
+
+sigmas
+(
+    (air water) 0.07
+    (air oil) 0.07
+    (air mercury) 0.07
+    (water oil) 0.07
+    (water mercury) 0.07
+    (oil mercury) 0.07
+);
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/triSurface/projectionSurface.stl b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/triSurface/projectionSurface.stl
new file mode 100644
index 0000000000000000000000000000000000000000..94883275879023b9df36a37fd55359261b95f1fd
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/triSurface/projectionSurface.stl
@@ -0,0 +1,1346 @@
+solid AMI1
+  facet normal 0.999464 -0.0327281 0
+    outer loop
+       vertex 0.06 0 0
+       vertex 0.06 0 0.01
+       vertex 0.0598715 -0.00392419 0.01
+    endloop
+  endfacet
+  facet normal 0.999464 -0.0327281 0
+    outer loop
+       vertex 0.0598715 -0.00392419 0.01
+       vertex 0.0598715 -0.00392419 0
+       vertex 0.06 0 0
+    endloop
+  endfacet
+  facet normal 0.995186 -0.0980062 0
+    outer loop
+       vertex 0.0598715 -0.00392419 0
+       vertex 0.0598715 -0.00392419 0.01
+       vertex 0.0594867 -0.00783157 0.01
+    endloop
+  endfacet
+  facet normal 0.995186 -0.0980062 0
+    outer loop
+       vertex 0.0594867 -0.00783157 0.01
+       vertex 0.0594867 -0.00783157 0
+       vertex 0.0598715 -0.00392419 0
+    endloop
+  endfacet
+  facet normal 0.986642 -0.162902 0
+    outer loop
+       vertex 0.0594867 -0.00783157 0
+       vertex 0.0594867 -0.00783157 0.01
+       vertex 0.0588471 -0.0117054 0.01
+    endloop
+  endfacet
+  facet normal 0.986642 -0.162902 0
+    outer loop
+       vertex 0.0588471 -0.0117054 0.01
+       vertex 0.0588471 -0.0117054 0
+       vertex 0.0594867 -0.00783157 0
+    endloop
+  endfacet
+  facet normal 0.973875 -0.227085 0
+    outer loop
+       vertex 0.0588471 -0.0117054 0
+       vertex 0.0588471 -0.0117054 0.01
+       vertex 0.0579555 -0.0155291 0.01
+    endloop
+  endfacet
+  facet normal 0.973875 -0.227085 0
+    outer loop
+       vertex 0.0579555 -0.0155291 0.01
+       vertex 0.0579555 -0.0155291 0
+       vertex 0.0588471 -0.0117054 0
+    endloop
+  endfacet
+  facet normal 0.956945 -0.29027 0
+    outer loop
+       vertex 0.0579555 -0.0155291 0
+       vertex 0.0579555 -0.0155291 0.01
+       vertex 0.0568158 -0.0192864 0.01
+    endloop
+  endfacet
+  facet normal 0.956945 -0.29027 0
+    outer loop
+       vertex 0.0568158 -0.0192864 0.01
+       vertex 0.0568158 -0.0192864 0
+       vertex 0.0579555 -0.0155291 0
+    endloop
+  endfacet
+  facet normal 0.935908 -0.352245 0
+    outer loop
+       vertex 0.0568158 -0.0192864 0
+       vertex 0.0568158 -0.0192864 0.01
+       vertex 0.0554328 -0.022961 0.01
+    endloop
+  endfacet
+  facet normal 0.935908 -0.352245 0
+    outer loop
+       vertex 0.0554328 -0.022961 0.01
+       vertex 0.0554328 -0.022961 0
+       vertex 0.0568158 -0.0192864 0
+    endloop
+  endfacet
+  facet normal 0.910864 -0.412707 0
+    outer loop
+       vertex 0.0554328 -0.022961 0
+       vertex 0.0554328 -0.022961 0.01
+       vertex 0.0538124 -0.0265373 0.01
+    endloop
+  endfacet
+  facet normal 0.910864 -0.412707 0
+    outer loop
+       vertex 0.0538124 -0.0265373 0.01
+       vertex 0.0538124 -0.0265373 0
+       vertex 0.0554328 -0.022961 0
+    endloop
+  endfacet
+  facet normal 0.881916 -0.471406 0
+    outer loop
+       vertex 0.0538124 -0.0265373 0
+       vertex 0.0538124 -0.0265373 0.01
+       vertex 0.0519615 -0.03 0.01
+    endloop
+  endfacet
+  facet normal 0.881916 -0.471406 0
+    outer loop
+       vertex 0.0519615 -0.03 0.01
+       vertex 0.0519615 -0.03 0
+       vertex 0.0538124 -0.0265373 0
+    endloop
+  endfacet
+  facet normal 0.849207 -0.528061 0
+    outer loop
+       vertex 0.0519615 -0.03 0
+       vertex 0.0519615 -0.03 0.01
+       vertex 0.0498882 -0.0333342 0.01
+    endloop
+  endfacet
+  facet normal 0.849207 -0.528061 0
+    outer loop
+       vertex 0.0498882 -0.0333342 0.01
+       vertex 0.0498882 -0.0333342 0
+       vertex 0.0519615 -0.03 0
+    endloop
+  endfacet
+  facet normal 0.812846 -0.582478 0
+    outer loop
+       vertex 0.0498882 -0.0333342 0
+       vertex 0.0498882 -0.0333342 0.01
+       vertex 0.0476012 -0.0365257 0.01
+    endloop
+  endfacet
+  facet normal 0.812846 -0.582478 0
+    outer loop
+       vertex 0.0476012 -0.0365257 0.01
+       vertex 0.0476012 -0.0365257 0
+       vertex 0.0498882 -0.0333342 0
+    endloop
+  endfacet
+  facet normal 0.773005 -0.634399 0
+    outer loop
+       vertex 0.0476012 -0.0365257 0
+       vertex 0.0476012 -0.0365257 0.01
+       vertex 0.0451104 -0.0395607 0.01
+    endloop
+  endfacet
+  facet normal 0.773005 -0.634399 0
+    outer loop
+       vertex 0.0451104 -0.0395607 0.01
+       vertex 0.0451104 -0.0395607 0
+       vertex 0.0476012 -0.0365257 0
+    endloop
+  endfacet
+  facet normal 0.729867 -0.683589 0
+    outer loop
+       vertex 0.0451104 -0.0395607 0
+       vertex 0.0451104 -0.0395607 0.01
+       vertex 0.0424264 -0.0424264 0.01
+    endloop
+  endfacet
+  facet normal 0.729867 -0.683589 0
+    outer loop
+       vertex 0.0424264 -0.0424264 0.01
+       vertex 0.0424264 -0.0424264 0
+       vertex 0.0451104 -0.0395607 0
+    endloop
+  endfacet
+  facet normal 0.683589 -0.729867 0
+    outer loop
+       vertex 0.0424264 -0.0424264 0
+       vertex 0.0424264 -0.0424264 0.01
+       vertex 0.0395607 -0.0451104 0.01
+    endloop
+  endfacet
+  facet normal 0.683589 -0.729867 0
+    outer loop
+       vertex 0.0395607 -0.0451104 0.01
+       vertex 0.0395607 -0.0451104 0
+       vertex 0.0424264 -0.0424264 0
+    endloop
+  endfacet
+  facet normal 0.634399 -0.773005 0
+    outer loop
+       vertex 0.0395607 -0.0451104 0
+       vertex 0.0395607 -0.0451104 0.01
+       vertex 0.0365257 -0.0476012 0.01
+    endloop
+  endfacet
+  facet normal 0.634399 -0.773005 0
+    outer loop
+       vertex 0.0365257 -0.0476012 0.01
+       vertex 0.0365257 -0.0476012 0
+       vertex 0.0395607 -0.0451104 0
+    endloop
+  endfacet
+  facet normal 0.582478 -0.812846 0
+    outer loop
+       vertex 0.0365257 -0.0476012 0
+       vertex 0.0365257 -0.0476012 0.01
+       vertex 0.0333342 -0.0498882 0.01
+    endloop
+  endfacet
+  facet normal 0.582478 -0.812846 0
+    outer loop
+       vertex 0.0333342 -0.0498882 0.01
+       vertex 0.0333342 -0.0498882 0
+       vertex 0.0365257 -0.0476012 0
+    endloop
+  endfacet
+  facet normal 0.528061 -0.849207 0
+    outer loop
+       vertex 0.0333342 -0.0498882 0
+       vertex 0.0333342 -0.0498882 0.01
+       vertex 0.03 -0.0519615 0.01
+    endloop
+  endfacet
+  facet normal 0.528061 -0.849207 0
+    outer loop
+       vertex 0.03 -0.0519615 0.01
+       vertex 0.03 -0.0519615 0
+       vertex 0.0333342 -0.0498882 0
+    endloop
+  endfacet
+  facet normal 0.471406 -0.881916 0
+    outer loop
+       vertex 0.03 -0.0519615 0
+       vertex 0.03 -0.0519615 0.01
+       vertex 0.0265373 -0.0538124 0.01
+    endloop
+  endfacet
+  facet normal 0.471406 -0.881916 0
+    outer loop
+       vertex 0.0265373 -0.0538124 0.01
+       vertex 0.0265373 -0.0538124 0
+       vertex 0.03 -0.0519615 0
+    endloop
+  endfacet
+  facet normal 0.412707 -0.910864 0
+    outer loop
+       vertex 0.0265373 -0.0538124 0
+       vertex 0.0265373 -0.0538124 0.01
+       vertex 0.022961 -0.0554328 0.01
+    endloop
+  endfacet
+  facet normal 0.412707 -0.910864 0
+    outer loop
+       vertex 0.022961 -0.0554328 0.01
+       vertex 0.022961 -0.0554328 0
+       vertex 0.0265373 -0.0538124 0
+    endloop
+  endfacet
+  facet normal 0.352245 -0.935908 0
+    outer loop
+       vertex 0.022961 -0.0554328 0
+       vertex 0.022961 -0.0554328 0.01
+       vertex 0.0192864 -0.0568158 0.01
+    endloop
+  endfacet
+  facet normal 0.352245 -0.935908 0
+    outer loop
+       vertex 0.0192864 -0.0568158 0.01
+       vertex 0.0192864 -0.0568158 0
+       vertex 0.022961 -0.0554328 0
+    endloop
+  endfacet
+  facet normal 0.29027 -0.956945 0
+    outer loop
+       vertex 0.0192864 -0.0568158 0
+       vertex 0.0192864 -0.0568158 0.01
+       vertex 0.0155291 -0.0579555 0.01
+    endloop
+  endfacet
+  facet normal 0.29027 -0.956945 0
+    outer loop
+       vertex 0.0155291 -0.0579555 0.01
+       vertex 0.0155291 -0.0579555 0
+       vertex 0.0192864 -0.0568158 0
+    endloop
+  endfacet
+  facet normal 0.227085 -0.973875 0
+    outer loop
+       vertex 0.0155291 -0.0579555 0
+       vertex 0.0155291 -0.0579555 0.01
+       vertex 0.0117054 -0.0588471 0.01
+    endloop
+  endfacet
+  facet normal 0.227085 -0.973875 0
+    outer loop
+       vertex 0.0117054 -0.0588471 0.01
+       vertex 0.0117054 -0.0588471 0
+       vertex 0.0155291 -0.0579555 0
+    endloop
+  endfacet
+  facet normal 0.162902 -0.986642 0
+    outer loop
+       vertex 0.0117054 -0.0588471 0
+       vertex 0.0117054 -0.0588471 0.01
+       vertex 0.00783157 -0.0594867 0.01
+    endloop
+  endfacet
+  facet normal 0.162902 -0.986642 0
+    outer loop
+       vertex 0.00783157 -0.0594867 0.01
+       vertex 0.00783157 -0.0594867 0
+       vertex 0.0117054 -0.0588471 0
+    endloop
+  endfacet
+  facet normal 0.0980062 -0.995186 0
+    outer loop
+       vertex 0.00783157 -0.0594867 0
+       vertex 0.00783157 -0.0594867 0.01
+       vertex 0.00392419 -0.0598715 0.01
+    endloop
+  endfacet
+  facet normal 0.0980062 -0.995186 0
+    outer loop
+       vertex 0.00392419 -0.0598715 0.01
+       vertex 0.00392419 -0.0598715 0
+       vertex 0.00783157 -0.0594867 0
+    endloop
+  endfacet
+  facet normal 0.0327281 -0.999464 0
+    outer loop
+       vertex 0.00392419 -0.0598715 0
+       vertex 0.00392419 -0.0598715 0.01
+       vertex 1.07694e-10 -0.06 0.01
+    endloop
+  endfacet
+  facet normal 0.0327281 -0.999464 0
+    outer loop
+       vertex 1.07694e-10 -0.06 0.01
+       vertex 1.07694e-10 -0.06 0
+       vertex 0.00392419 -0.0598715 0
+    endloop
+  endfacet
+  facet normal -0.0327281 -0.999464 0
+    outer loop
+       vertex 1.07694e-10 -0.06 0
+       vertex 1.07694e-10 -0.06 0.01
+       vertex -0.00392419 -0.0598715 0.01
+    endloop
+  endfacet
+  facet normal -0.0327281 -0.999464 -0
+    outer loop
+       vertex -0.00392419 -0.0598715 0.01
+       vertex -0.00392419 -0.0598715 0
+       vertex 1.07694e-10 -0.06 0
+    endloop
+  endfacet
+  facet normal -0.0980062 -0.995186 0
+    outer loop
+       vertex -0.00392419 -0.0598715 0
+       vertex -0.00392419 -0.0598715 0.01
+       vertex -0.00783157 -0.0594867 0.01
+    endloop
+  endfacet
+  facet normal -0.0980062 -0.995186 -0
+    outer loop
+       vertex -0.00783157 -0.0594867 0.01
+       vertex -0.00783157 -0.0594867 0
+       vertex -0.00392419 -0.0598715 0
+    endloop
+  endfacet
+  facet normal -0.162902 -0.986642 0
+    outer loop
+       vertex -0.00783157 -0.0594867 0
+       vertex -0.00783157 -0.0594867 0.01
+       vertex -0.0117054 -0.0588471 0.01
+    endloop
+  endfacet
+  facet normal -0.162902 -0.986642 -0
+    outer loop
+       vertex -0.0117054 -0.0588471 0.01
+       vertex -0.0117054 -0.0588471 0
+       vertex -0.00783157 -0.0594867 0
+    endloop
+  endfacet
+  facet normal -0.227085 -0.973875 0
+    outer loop
+       vertex -0.0117054 -0.0588471 0
+       vertex -0.0117054 -0.0588471 0.01
+       vertex -0.0155291 -0.0579555 0.01
+    endloop
+  endfacet
+  facet normal -0.227085 -0.973875 -0
+    outer loop
+       vertex -0.0155291 -0.0579555 0.01
+       vertex -0.0155291 -0.0579555 0
+       vertex -0.0117054 -0.0588471 0
+    endloop
+  endfacet
+  facet normal -0.29027 -0.956945 0
+    outer loop
+       vertex -0.0155291 -0.0579555 0
+       vertex -0.0155291 -0.0579555 0.01
+       vertex -0.0192864 -0.0568158 0.01
+    endloop
+  endfacet
+  facet normal -0.29027 -0.956945 -0
+    outer loop
+       vertex -0.0192864 -0.0568158 0.01
+       vertex -0.0192864 -0.0568158 0
+       vertex -0.0155291 -0.0579555 0
+    endloop
+  endfacet
+  facet normal -0.352245 -0.935908 0
+    outer loop
+       vertex -0.0192864 -0.0568158 0
+       vertex -0.0192864 -0.0568158 0.01
+       vertex -0.022961 -0.0554328 0.01
+    endloop
+  endfacet
+  facet normal -0.352245 -0.935908 -0
+    outer loop
+       vertex -0.022961 -0.0554328 0.01
+       vertex -0.022961 -0.0554328 0
+       vertex -0.0192864 -0.0568158 0
+    endloop
+  endfacet
+  facet normal -0.412707 -0.910864 0
+    outer loop
+       vertex -0.022961 -0.0554328 0
+       vertex -0.022961 -0.0554328 0.01
+       vertex -0.0265373 -0.0538124 0.01
+    endloop
+  endfacet
+  facet normal -0.412707 -0.910864 -0
+    outer loop
+       vertex -0.0265373 -0.0538124 0.01
+       vertex -0.0265373 -0.0538124 0
+       vertex -0.022961 -0.0554328 0
+    endloop
+  endfacet
+  facet normal -0.471406 -0.881916 0
+    outer loop
+       vertex -0.0265373 -0.0538124 0
+       vertex -0.0265373 -0.0538124 0.01
+       vertex -0.03 -0.0519615 0.01
+    endloop
+  endfacet
+  facet normal -0.471406 -0.881916 -0
+    outer loop
+       vertex -0.03 -0.0519615 0.01
+       vertex -0.03 -0.0519615 0
+       vertex -0.0265373 -0.0538124 0
+    endloop
+  endfacet
+  facet normal -0.528061 -0.849207 0
+    outer loop
+       vertex -0.03 -0.0519615 0
+       vertex -0.03 -0.0519615 0.01
+       vertex -0.0333342 -0.0498882 0.01
+    endloop
+  endfacet
+  facet normal -0.528061 -0.849207 -0
+    outer loop
+       vertex -0.0333342 -0.0498882 0.01
+       vertex -0.0333342 -0.0498882 0
+       vertex -0.03 -0.0519615 0
+    endloop
+  endfacet
+  facet normal -0.582478 -0.812846 0
+    outer loop
+       vertex -0.0333342 -0.0498882 0
+       vertex -0.0333342 -0.0498882 0.01
+       vertex -0.0365257 -0.0476012 0.01
+    endloop
+  endfacet
+  facet normal -0.582478 -0.812846 -0
+    outer loop
+       vertex -0.0365257 -0.0476012 0.01
+       vertex -0.0365257 -0.0476012 0
+       vertex -0.0333342 -0.0498882 0
+    endloop
+  endfacet
+  facet normal -0.634399 -0.773005 0
+    outer loop
+       vertex -0.0365257 -0.0476012 0
+       vertex -0.0365257 -0.0476012 0.01
+       vertex -0.0395607 -0.0451104 0.01
+    endloop
+  endfacet
+  facet normal -0.634399 -0.773005 -0
+    outer loop
+       vertex -0.0395607 -0.0451104 0.01
+       vertex -0.0395607 -0.0451104 0
+       vertex -0.0365257 -0.0476012 0
+    endloop
+  endfacet
+  facet normal -0.683589 -0.729867 0
+    outer loop
+       vertex -0.0395607 -0.0451104 0
+       vertex -0.0395607 -0.0451104 0.01
+       vertex -0.0424264 -0.0424264 0.01
+    endloop
+  endfacet
+  facet normal -0.683589 -0.729867 -0
+    outer loop
+       vertex -0.0424264 -0.0424264 0.01
+       vertex -0.0424264 -0.0424264 0
+       vertex -0.0395607 -0.0451104 0
+    endloop
+  endfacet
+  facet normal -0.729867 -0.683589 0
+    outer loop
+       vertex -0.0424264 -0.0424264 0
+       vertex -0.0424264 -0.0424264 0.01
+       vertex -0.0451104 -0.0395607 0.01
+    endloop
+  endfacet
+  facet normal -0.729867 -0.683589 -0
+    outer loop
+       vertex -0.0451104 -0.0395607 0.01
+       vertex -0.0451104 -0.0395607 0
+       vertex -0.0424264 -0.0424264 0
+    endloop
+  endfacet
+  facet normal -0.773005 -0.634399 0
+    outer loop
+       vertex -0.0451104 -0.0395607 0
+       vertex -0.0451104 -0.0395607 0.01
+       vertex -0.0476012 -0.0365257 0.01
+    endloop
+  endfacet
+  facet normal -0.773005 -0.634399 -0
+    outer loop
+       vertex -0.0476012 -0.0365257 0.01
+       vertex -0.0476012 -0.0365257 0
+       vertex -0.0451104 -0.0395607 0
+    endloop
+  endfacet
+  facet normal -0.812846 -0.582478 0
+    outer loop
+       vertex -0.0476012 -0.0365257 0
+       vertex -0.0476012 -0.0365257 0.01
+       vertex -0.0498882 -0.0333342 0.01
+    endloop
+  endfacet
+  facet normal -0.812846 -0.582478 -0
+    outer loop
+       vertex -0.0498882 -0.0333342 0.01
+       vertex -0.0498882 -0.0333342 0
+       vertex -0.0476012 -0.0365257 0
+    endloop
+  endfacet
+  facet normal -0.849207 -0.528061 0
+    outer loop
+       vertex -0.0498882 -0.0333342 0
+       vertex -0.0498882 -0.0333342 0.01
+       vertex -0.0519615 -0.03 0.01
+    endloop
+  endfacet
+  facet normal -0.849207 -0.528061 -0
+    outer loop
+       vertex -0.0519615 -0.03 0.01
+       vertex -0.0519615 -0.03 0
+       vertex -0.0498882 -0.0333342 0
+    endloop
+  endfacet
+  facet normal -0.881916 -0.471406 0
+    outer loop
+       vertex -0.0519615 -0.03 0
+       vertex -0.0519615 -0.03 0.01
+       vertex -0.0538124 -0.0265373 0.01
+    endloop
+  endfacet
+  facet normal -0.881916 -0.471406 -0
+    outer loop
+       vertex -0.0538124 -0.0265373 0.01
+       vertex -0.0538124 -0.0265373 0
+       vertex -0.0519615 -0.03 0
+    endloop
+  endfacet
+  facet normal -0.910864 -0.412707 0
+    outer loop
+       vertex -0.0538124 -0.0265373 0
+       vertex -0.0538124 -0.0265373 0.01
+       vertex -0.0554328 -0.022961 0.01
+    endloop
+  endfacet
+  facet normal -0.910864 -0.412707 -0
+    outer loop
+       vertex -0.0554328 -0.022961 0.01
+       vertex -0.0554328 -0.022961 0
+       vertex -0.0538124 -0.0265373 0
+    endloop
+  endfacet
+  facet normal -0.935908 -0.352245 0
+    outer loop
+       vertex -0.0554328 -0.022961 0
+       vertex -0.0554328 -0.022961 0.01
+       vertex -0.0568158 -0.0192864 0.01
+    endloop
+  endfacet
+  facet normal -0.935908 -0.352245 -0
+    outer loop
+       vertex -0.0568158 -0.0192864 0.01
+       vertex -0.0568158 -0.0192864 0
+       vertex -0.0554328 -0.022961 0
+    endloop
+  endfacet
+  facet normal -0.956945 -0.29027 0
+    outer loop
+       vertex -0.0568158 -0.0192864 0
+       vertex -0.0568158 -0.0192864 0.01
+       vertex -0.0579555 -0.0155291 0.01
+    endloop
+  endfacet
+  facet normal -0.956945 -0.29027 -0
+    outer loop
+       vertex -0.0579555 -0.0155291 0.01
+       vertex -0.0579555 -0.0155291 0
+       vertex -0.0568158 -0.0192864 0
+    endloop
+  endfacet
+  facet normal -0.973875 -0.227085 0
+    outer loop
+       vertex -0.0579555 -0.0155291 0
+       vertex -0.0579555 -0.0155291 0.01
+       vertex -0.0588471 -0.0117054 0.01
+    endloop
+  endfacet
+  facet normal -0.973875 -0.227085 -0
+    outer loop
+       vertex -0.0588471 -0.0117054 0.01
+       vertex -0.0588471 -0.0117054 0
+       vertex -0.0579555 -0.0155291 0
+    endloop
+  endfacet
+  facet normal -0.986642 -0.162902 0
+    outer loop
+       vertex -0.0588471 -0.0117054 0
+       vertex -0.0588471 -0.0117054 0.01
+       vertex -0.0594867 -0.00783157 0.01
+    endloop
+  endfacet
+  facet normal -0.986642 -0.162902 -0
+    outer loop
+       vertex -0.0594867 -0.00783157 0.01
+       vertex -0.0594867 -0.00783157 0
+       vertex -0.0588471 -0.0117054 0
+    endloop
+  endfacet
+  facet normal -0.995186 -0.0980062 0
+    outer loop
+       vertex -0.0594867 -0.00783157 0
+       vertex -0.0594867 -0.00783157 0.01
+       vertex -0.0598715 -0.00392419 0.01
+    endloop
+  endfacet
+  facet normal -0.995186 -0.0980062 -0
+    outer loop
+       vertex -0.0598715 -0.00392419 0.01
+       vertex -0.0598715 -0.00392419 0
+       vertex -0.0594867 -0.00783157 0
+    endloop
+  endfacet
+  facet normal -0.999464 -0.0327281 0
+    outer loop
+       vertex -0.0598715 -0.00392419 0
+       vertex -0.0598715 -0.00392419 0.01
+       vertex -0.06 2.15388e-10 0.01
+    endloop
+  endfacet
+  facet normal -0.999464 -0.0327281 -0
+    outer loop
+       vertex -0.06 2.15388e-10 0.01
+       vertex -0.06 2.15388e-10 0
+       vertex -0.0598715 -0.00392419 0
+    endloop
+  endfacet
+  facet normal -0.999464 0.0327281 0
+    outer loop
+       vertex -0.06 2.15388e-10 0
+       vertex -0.06 2.15388e-10 0.01
+       vertex -0.0598715 0.00392419 0.01
+    endloop
+  endfacet
+  facet normal -0.999464 0.0327281 0
+    outer loop
+       vertex -0.0598715 0.00392419 0.01
+       vertex -0.0598715 0.00392419 0
+       vertex -0.06 2.15388e-10 0
+    endloop
+  endfacet
+  facet normal -0.995186 0.0980062 0
+    outer loop
+       vertex -0.0598715 0.00392419 0
+       vertex -0.0598715 0.00392419 0.01
+       vertex -0.0594867 0.00783157 0.01
+    endloop
+  endfacet
+  facet normal -0.995186 0.0980062 0
+    outer loop
+       vertex -0.0594867 0.00783157 0.01
+       vertex -0.0594867 0.00783157 0
+       vertex -0.0598715 0.00392419 0
+    endloop
+  endfacet
+  facet normal -0.986642 0.162902 0
+    outer loop
+       vertex -0.0594867 0.00783157 0
+       vertex -0.0594867 0.00783157 0.01
+       vertex -0.0588471 0.0117054 0.01
+    endloop
+  endfacet
+  facet normal -0.986642 0.162902 0
+    outer loop
+       vertex -0.0588471 0.0117054 0.01
+       vertex -0.0588471 0.0117054 0
+       vertex -0.0594867 0.00783157 0
+    endloop
+  endfacet
+  facet normal -0.973875 0.227085 0
+    outer loop
+       vertex -0.0588471 0.0117054 0
+       vertex -0.0588471 0.0117054 0.01
+       vertex -0.0579555 0.0155291 0.01
+    endloop
+  endfacet
+  facet normal -0.973875 0.227085 0
+    outer loop
+       vertex -0.0579555 0.0155291 0.01
+       vertex -0.0579555 0.0155291 0
+       vertex -0.0588471 0.0117054 0
+    endloop
+  endfacet
+  facet normal -0.956945 0.29027 0
+    outer loop
+       vertex -0.0579555 0.0155291 0
+       vertex -0.0579555 0.0155291 0.01
+       vertex -0.0568158 0.0192864 0.01
+    endloop
+  endfacet
+  facet normal -0.956945 0.29027 0
+    outer loop
+       vertex -0.0568158 0.0192864 0.01
+       vertex -0.0568158 0.0192864 0
+       vertex -0.0579555 0.0155291 0
+    endloop
+  endfacet
+  facet normal -0.935908 0.352245 0
+    outer loop
+       vertex -0.0568158 0.0192864 0
+       vertex -0.0568158 0.0192864 0.01
+       vertex -0.0554328 0.022961 0.01
+    endloop
+  endfacet
+  facet normal -0.935908 0.352245 0
+    outer loop
+       vertex -0.0554328 0.022961 0.01
+       vertex -0.0554328 0.022961 0
+       vertex -0.0568158 0.0192864 0
+    endloop
+  endfacet
+  facet normal -0.910864 0.412707 0
+    outer loop
+       vertex -0.0554328 0.022961 0
+       vertex -0.0554328 0.022961 0.01
+       vertex -0.0538124 0.0265373 0.01
+    endloop
+  endfacet
+  facet normal -0.910864 0.412707 0
+    outer loop
+       vertex -0.0538124 0.0265373 0.01
+       vertex -0.0538124 0.0265373 0
+       vertex -0.0554328 0.022961 0
+    endloop
+  endfacet
+  facet normal -0.881916 0.471406 0
+    outer loop
+       vertex -0.0538124 0.0265373 0
+       vertex -0.0538124 0.0265373 0.01
+       vertex -0.0519615 0.03 0.01
+    endloop
+  endfacet
+  facet normal -0.881916 0.471406 0
+    outer loop
+       vertex -0.0519615 0.03 0.01
+       vertex -0.0519615 0.03 0
+       vertex -0.0538124 0.0265373 0
+    endloop
+  endfacet
+  facet normal -0.849207 0.528061 0
+    outer loop
+       vertex -0.0519615 0.03 0
+       vertex -0.0519615 0.03 0.01
+       vertex -0.0498882 0.0333342 0.01
+    endloop
+  endfacet
+  facet normal -0.849207 0.528061 0
+    outer loop
+       vertex -0.0498882 0.0333342 0.01
+       vertex -0.0498882 0.0333342 0
+       vertex -0.0519615 0.03 0
+    endloop
+  endfacet
+  facet normal -0.812846 0.582478 0
+    outer loop
+       vertex -0.0498882 0.0333342 0
+       vertex -0.0498882 0.0333342 0.01
+       vertex -0.0476012 0.0365257 0.01
+    endloop
+  endfacet
+  facet normal -0.812846 0.582478 0
+    outer loop
+       vertex -0.0476012 0.0365257 0.01
+       vertex -0.0476012 0.0365257 0
+       vertex -0.0498882 0.0333342 0
+    endloop
+  endfacet
+  facet normal -0.773005 0.634399 0
+    outer loop
+       vertex -0.0476012 0.0365257 0
+       vertex -0.0476012 0.0365257 0.01
+       vertex -0.0451104 0.0395607 0.01
+    endloop
+  endfacet
+  facet normal -0.773005 0.634399 0
+    outer loop
+       vertex -0.0451104 0.0395607 0.01
+       vertex -0.0451104 0.0395607 0
+       vertex -0.0476012 0.0365257 0
+    endloop
+  endfacet
+  facet normal -0.729867 0.683589 0
+    outer loop
+       vertex -0.0451104 0.0395607 0
+       vertex -0.0451104 0.0395607 0.01
+       vertex -0.0424264 0.0424264 0.01
+    endloop
+  endfacet
+  facet normal -0.729867 0.683589 0
+    outer loop
+       vertex -0.0424264 0.0424264 0.01
+       vertex -0.0424264 0.0424264 0
+       vertex -0.0451104 0.0395607 0
+    endloop
+  endfacet
+  facet normal -0.683589 0.729867 0
+    outer loop
+       vertex -0.0424264 0.0424264 0
+       vertex -0.0424264 0.0424264 0.01
+       vertex -0.0395607 0.0451104 0.01
+    endloop
+  endfacet
+  facet normal -0.683589 0.729867 0
+    outer loop
+       vertex -0.0395607 0.0451104 0.01
+       vertex -0.0395607 0.0451104 0
+       vertex -0.0424264 0.0424264 0
+    endloop
+  endfacet
+  facet normal -0.634399 0.773005 0
+    outer loop
+       vertex -0.0395607 0.0451104 0
+       vertex -0.0395607 0.0451104 0.01
+       vertex -0.0365257 0.0476012 0.01
+    endloop
+  endfacet
+  facet normal -0.634399 0.773005 0
+    outer loop
+       vertex -0.0365257 0.0476012 0.01
+       vertex -0.0365257 0.0476012 0
+       vertex -0.0395607 0.0451104 0
+    endloop
+  endfacet
+  facet normal -0.582478 0.812846 0
+    outer loop
+       vertex -0.0365257 0.0476012 0
+       vertex -0.0365257 0.0476012 0.01
+       vertex -0.0333342 0.0498882 0.01
+    endloop
+  endfacet
+  facet normal -0.582478 0.812846 0
+    outer loop
+       vertex -0.0333342 0.0498882 0.01
+       vertex -0.0333342 0.0498882 0
+       vertex -0.0365257 0.0476012 0
+    endloop
+  endfacet
+  facet normal -0.528061 0.849207 0
+    outer loop
+       vertex -0.0333342 0.0498882 0
+       vertex -0.0333342 0.0498882 0.01
+       vertex -0.03 0.0519615 0.01
+    endloop
+  endfacet
+  facet normal -0.528061 0.849207 0
+    outer loop
+       vertex -0.03 0.0519615 0.01
+       vertex -0.03 0.0519615 0
+       vertex -0.0333342 0.0498882 0
+    endloop
+  endfacet
+  facet normal -0.471406 0.881916 0
+    outer loop
+       vertex -0.03 0.0519615 0
+       vertex -0.03 0.0519615 0.01
+       vertex -0.0265373 0.0538124 0.01
+    endloop
+  endfacet
+  facet normal -0.471406 0.881916 0
+    outer loop
+       vertex -0.0265373 0.0538124 0.01
+       vertex -0.0265373 0.0538124 0
+       vertex -0.03 0.0519615 0
+    endloop
+  endfacet
+  facet normal -0.412707 0.910864 0
+    outer loop
+       vertex -0.0265373 0.0538124 0
+       vertex -0.0265373 0.0538124 0.01
+       vertex -0.022961 0.0554328 0.01
+    endloop
+  endfacet
+  facet normal -0.412707 0.910864 0
+    outer loop
+       vertex -0.022961 0.0554328 0.01
+       vertex -0.022961 0.0554328 0
+       vertex -0.0265373 0.0538124 0
+    endloop
+  endfacet
+  facet normal -0.352245 0.935908 0
+    outer loop
+       vertex -0.022961 0.0554328 0
+       vertex -0.022961 0.0554328 0.01
+       vertex -0.0192864 0.0568158 0.01
+    endloop
+  endfacet
+  facet normal -0.352245 0.935908 0
+    outer loop
+       vertex -0.0192864 0.0568158 0.01
+       vertex -0.0192864 0.0568158 0
+       vertex -0.022961 0.0554328 0
+    endloop
+  endfacet
+  facet normal -0.29027 0.956945 0
+    outer loop
+       vertex -0.0192864 0.0568158 0
+       vertex -0.0192864 0.0568158 0.01
+       vertex -0.0155291 0.0579555 0.01
+    endloop
+  endfacet
+  facet normal -0.29027 0.956945 0
+    outer loop
+       vertex -0.0155291 0.0579555 0.01
+       vertex -0.0155291 0.0579555 0
+       vertex -0.0192864 0.0568158 0
+    endloop
+  endfacet
+  facet normal -0.227085 0.973875 0
+    outer loop
+       vertex -0.0155291 0.0579555 0
+       vertex -0.0155291 0.0579555 0.01
+       vertex -0.0117054 0.0588471 0.01
+    endloop
+  endfacet
+  facet normal -0.227085 0.973875 0
+    outer loop
+       vertex -0.0117054 0.0588471 0.01
+       vertex -0.0117054 0.0588471 0
+       vertex -0.0155291 0.0579555 0
+    endloop
+  endfacet
+  facet normal -0.162902 0.986642 0
+    outer loop
+       vertex -0.0117054 0.0588471 0
+       vertex -0.0117054 0.0588471 0.01
+       vertex -0.00783157 0.0594867 0.01
+    endloop
+  endfacet
+  facet normal -0.162902 0.986642 0
+    outer loop
+       vertex -0.00783157 0.0594867 0.01
+       vertex -0.00783157 0.0594867 0
+       vertex -0.0117054 0.0588471 0
+    endloop
+  endfacet
+  facet normal -0.0980062 0.995186 0
+    outer loop
+       vertex -0.00783157 0.0594867 0
+       vertex -0.00783157 0.0594867 0.01
+       vertex -0.00392419 0.0598715 0.01
+    endloop
+  endfacet
+  facet normal -0.0980062 0.995186 0
+    outer loop
+       vertex -0.00392419 0.0598715 0.01
+       vertex -0.00392419 0.0598715 0
+       vertex -0.00783157 0.0594867 0
+    endloop
+  endfacet
+  facet normal -0.0327281 0.999464 0
+    outer loop
+       vertex -0.00392419 0.0598715 0
+       vertex -0.00392419 0.0598715 0.01
+       vertex 1.07694e-10 0.06 0.01
+    endloop
+  endfacet
+  facet normal -0.0327281 0.999464 0
+    outer loop
+       vertex 1.07694e-10 0.06 0.01
+       vertex 1.07694e-10 0.06 0
+       vertex -0.00392419 0.0598715 0
+    endloop
+  endfacet
+  facet normal 0.0327281 0.999464 -0
+    outer loop
+       vertex 1.07694e-10 0.06 0
+       vertex 1.07694e-10 0.06 0.01
+       vertex 0.00392419 0.0598715 0.01
+    endloop
+  endfacet
+  facet normal 0.0327281 0.999464 0
+    outer loop
+       vertex 0.00392419 0.0598715 0.01
+       vertex 0.00392419 0.0598715 0
+       vertex 1.07694e-10 0.06 0
+    endloop
+  endfacet
+  facet normal 0.0980062 0.995186 -0
+    outer loop
+       vertex 0.00392419 0.0598715 0
+       vertex 0.00392419 0.0598715 0.01
+       vertex 0.00783157 0.0594867 0.01
+    endloop
+  endfacet
+  facet normal 0.0980062 0.995186 0
+    outer loop
+       vertex 0.00783157 0.0594867 0.01
+       vertex 0.00783157 0.0594867 0
+       vertex 0.00392419 0.0598715 0
+    endloop
+  endfacet
+  facet normal 0.162902 0.986642 -0
+    outer loop
+       vertex 0.00783157 0.0594867 0
+       vertex 0.00783157 0.0594867 0.01
+       vertex 0.0117054 0.0588471 0.01
+    endloop
+  endfacet
+  facet normal 0.162902 0.986642 0
+    outer loop
+       vertex 0.0117054 0.0588471 0.01
+       vertex 0.0117054 0.0588471 0
+       vertex 0.00783157 0.0594867 0
+    endloop
+  endfacet
+  facet normal 0.227085 0.973875 -0
+    outer loop
+       vertex 0.0117054 0.0588471 0
+       vertex 0.0117054 0.0588471 0.01
+       vertex 0.0155291 0.0579555 0.01
+    endloop
+  endfacet
+  facet normal 0.227085 0.973875 0
+    outer loop
+       vertex 0.0155291 0.0579555 0.01
+       vertex 0.0155291 0.0579555 0
+       vertex 0.0117054 0.0588471 0
+    endloop
+  endfacet
+  facet normal 0.29027 0.956945 -0
+    outer loop
+       vertex 0.0155291 0.0579555 0
+       vertex 0.0155291 0.0579555 0.01
+       vertex 0.0192864 0.0568158 0.01
+    endloop
+  endfacet
+  facet normal 0.29027 0.956945 0
+    outer loop
+       vertex 0.0192864 0.0568158 0.01
+       vertex 0.0192864 0.0568158 0
+       vertex 0.0155291 0.0579555 0
+    endloop
+  endfacet
+  facet normal 0.352245 0.935908 -0
+    outer loop
+       vertex 0.0192864 0.0568158 0
+       vertex 0.0192864 0.0568158 0.01
+       vertex 0.022961 0.0554328 0.01
+    endloop
+  endfacet
+  facet normal 0.352245 0.935908 0
+    outer loop
+       vertex 0.022961 0.0554328 0.01
+       vertex 0.022961 0.0554328 0
+       vertex 0.0192864 0.0568158 0
+    endloop
+  endfacet
+  facet normal 0.412707 0.910864 -0
+    outer loop
+       vertex 0.022961 0.0554328 0
+       vertex 0.022961 0.0554328 0.01
+       vertex 0.0265373 0.0538124 0.01
+    endloop
+  endfacet
+  facet normal 0.412707 0.910864 0
+    outer loop
+       vertex 0.0265373 0.0538124 0.01
+       vertex 0.0265373 0.0538124 0
+       vertex 0.022961 0.0554328 0
+    endloop
+  endfacet
+  facet normal 0.471406 0.881916 -0
+    outer loop
+       vertex 0.0265373 0.0538124 0
+       vertex 0.0265373 0.0538124 0.01
+       vertex 0.03 0.0519615 0.01
+    endloop
+  endfacet
+  facet normal 0.471406 0.881916 0
+    outer loop
+       vertex 0.03 0.0519615 0.01
+       vertex 0.03 0.0519615 0
+       vertex 0.0265373 0.0538124 0
+    endloop
+  endfacet
+  facet normal 0.528061 0.849207 -0
+    outer loop
+       vertex 0.03 0.0519615 0
+       vertex 0.03 0.0519615 0.01
+       vertex 0.0333342 0.0498882 0.01
+    endloop
+  endfacet
+  facet normal 0.528061 0.849207 0
+    outer loop
+       vertex 0.0333342 0.0498882 0.01
+       vertex 0.0333342 0.0498882 0
+       vertex 0.03 0.0519615 0
+    endloop
+  endfacet
+  facet normal 0.582478 0.812846 -0
+    outer loop
+       vertex 0.0333342 0.0498882 0
+       vertex 0.0333342 0.0498882 0.01
+       vertex 0.0365257 0.0476012 0.01
+    endloop
+  endfacet
+  facet normal 0.582478 0.812846 0
+    outer loop
+       vertex 0.0365257 0.0476012 0.01
+       vertex 0.0365257 0.0476012 0
+       vertex 0.0333342 0.0498882 0
+    endloop
+  endfacet
+  facet normal 0.634399 0.773005 -0
+    outer loop
+       vertex 0.0365257 0.0476012 0
+       vertex 0.0365257 0.0476012 0.01
+       vertex 0.0395607 0.0451104 0.01
+    endloop
+  endfacet
+  facet normal 0.634399 0.773005 0
+    outer loop
+       vertex 0.0395607 0.0451104 0.01
+       vertex 0.0395607 0.0451104 0
+       vertex 0.0365257 0.0476012 0
+    endloop
+  endfacet
+  facet normal 0.683589 0.729867 -0
+    outer loop
+       vertex 0.0395607 0.0451104 0
+       vertex 0.0395607 0.0451104 0.01
+       vertex 0.0424264 0.0424264 0.01
+    endloop
+  endfacet
+  facet normal 0.683589 0.729867 0
+    outer loop
+       vertex 0.0424264 0.0424264 0.01
+       vertex 0.0424264 0.0424264 0
+       vertex 0.0395607 0.0451104 0
+    endloop
+  endfacet
+  facet normal 0.729867 0.683589 -0
+    outer loop
+       vertex 0.0424264 0.0424264 0
+       vertex 0.0424264 0.0424264 0.01
+       vertex 0.0451104 0.0395607 0.01
+    endloop
+  endfacet
+  facet normal 0.729867 0.683589 0
+    outer loop
+       vertex 0.0451104 0.0395607 0.01
+       vertex 0.0451104 0.0395607 0
+       vertex 0.0424264 0.0424264 0
+    endloop
+  endfacet
+  facet normal 0.773005 0.634399 -0
+    outer loop
+       vertex 0.0451104 0.0395607 0
+       vertex 0.0451104 0.0395607 0.01
+       vertex 0.0476012 0.0365257 0.01
+    endloop
+  endfacet
+  facet normal 0.773005 0.634399 0
+    outer loop
+       vertex 0.0476012 0.0365257 0.01
+       vertex 0.0476012 0.0365257 0
+       vertex 0.0451104 0.0395607 0
+    endloop
+  endfacet
+  facet normal 0.812846 0.582478 -0
+    outer loop
+       vertex 0.0476012 0.0365257 0
+       vertex 0.0476012 0.0365257 0.01
+       vertex 0.0498882 0.0333342 0.01
+    endloop
+  endfacet
+  facet normal 0.812846 0.582478 0
+    outer loop
+       vertex 0.0498882 0.0333342 0.01
+       vertex 0.0498882 0.0333342 0
+       vertex 0.0476012 0.0365257 0
+    endloop
+  endfacet
+  facet normal 0.849207 0.528061 -0
+    outer loop
+       vertex 0.0498882 0.0333342 0
+       vertex 0.0498882 0.0333342 0.01
+       vertex 0.0519615 0.03 0.01
+    endloop
+  endfacet
+  facet normal 0.849207 0.528061 0
+    outer loop
+       vertex 0.0519615 0.03 0.01
+       vertex 0.0519615 0.03 0
+       vertex 0.0498882 0.0333342 0
+    endloop
+  endfacet
+  facet normal 0.881916 0.471406 -0
+    outer loop
+       vertex 0.0519615 0.03 0
+       vertex 0.0519615 0.03 0.01
+       vertex 0.0538124 0.0265373 0.01
+    endloop
+  endfacet
+  facet normal 0.881916 0.471406 0
+    outer loop
+       vertex 0.0538124 0.0265373 0.01
+       vertex 0.0538124 0.0265373 0
+       vertex 0.0519615 0.03 0
+    endloop
+  endfacet
+  facet normal 0.910864 0.412707 -0
+    outer loop
+       vertex 0.0538124 0.0265373 0
+       vertex 0.0538124 0.0265373 0.01
+       vertex 0.0554328 0.022961 0.01
+    endloop
+  endfacet
+  facet normal 0.910864 0.412707 0
+    outer loop
+       vertex 0.0554328 0.022961 0.01
+       vertex 0.0554328 0.022961 0
+       vertex 0.0538124 0.0265373 0
+    endloop
+  endfacet
+  facet normal 0.935908 0.352245 -0
+    outer loop
+       vertex 0.0554328 0.022961 0
+       vertex 0.0554328 0.022961 0.01
+       vertex 0.0568158 0.0192864 0.01
+    endloop
+  endfacet
+  facet normal 0.935908 0.352245 0
+    outer loop
+       vertex 0.0568158 0.0192864 0.01
+       vertex 0.0568158 0.0192864 0
+       vertex 0.0554328 0.022961 0
+    endloop
+  endfacet
+  facet normal 0.956945 0.29027 -0
+    outer loop
+       vertex 0.0568158 0.0192864 0
+       vertex 0.0568158 0.0192864 0.01
+       vertex 0.0579555 0.0155291 0.01
+    endloop
+  endfacet
+  facet normal 0.956945 0.29027 0
+    outer loop
+       vertex 0.0579555 0.0155291 0.01
+       vertex 0.0579555 0.0155291 0
+       vertex 0.0568158 0.0192864 0
+    endloop
+  endfacet
+  facet normal 0.973875 0.227085 -0
+    outer loop
+       vertex 0.0579555 0.0155291 0
+       vertex 0.0579555 0.0155291 0.01
+       vertex 0.0588471 0.0117054 0.01
+    endloop
+  endfacet
+  facet normal 0.973875 0.227085 0
+    outer loop
+       vertex 0.0588471 0.0117054 0.01
+       vertex 0.0588471 0.0117054 0
+       vertex 0.0579555 0.0155291 0
+    endloop
+  endfacet
+  facet normal 0.986642 0.162902 -0
+    outer loop
+       vertex 0.0588471 0.0117054 0
+       vertex 0.0588471 0.0117054 0.01
+       vertex 0.0594867 0.00783157 0.01
+    endloop
+  endfacet
+  facet normal 0.986642 0.162902 0
+    outer loop
+       vertex 0.0594867 0.00783157 0.01
+       vertex 0.0594867 0.00783157 0
+       vertex 0.0588471 0.0117054 0
+    endloop
+  endfacet
+  facet normal 0.995186 0.0980062 -0
+    outer loop
+       vertex 0.0594867 0.00783157 0
+       vertex 0.0594867 0.00783157 0.01
+       vertex 0.0598715 0.00392419 0.01
+    endloop
+  endfacet
+  facet normal 0.995186 0.0980062 0
+    outer loop
+       vertex 0.0598715 0.00392419 0.01
+       vertex 0.0598715 0.00392419 0
+       vertex 0.0594867 0.00783157 0
+    endloop
+  endfacet
+  facet normal 0.999464 0.0327281 -0
+    outer loop
+       vertex 0.0598715 0.00392419 0
+       vertex 0.0598715 0.00392419 0.01
+       vertex 0.06 0 0.01
+    endloop
+  endfacet
+  facet normal 0.999464 0.0327281 0
+    outer loop
+       vertex 0.06 0 0.01
+       vertex 0.06 0 0
+       vertex 0.0598715 0.00392419 0
+    endloop
+  endfacet
+endsolid AMI1
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/turbulenceProperties b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..8e0954f71164cc422e17f963f55e7813f8e8c6a8
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/makeMesh b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/makeMesh
new file mode 100755
index 0000000000000000000000000000000000000000..937765f7cb7b519acdc5f2be2b23d0cd13c59ed9
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/makeMesh
@@ -0,0 +1,13 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict
+
+runApplication blockMesh
+
+runApplication topoSet
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/controlDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..940e361d3636f53f3e91adf32fc617ad28d916bf
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/controlDict
@@ -0,0 +1,55 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     multiphaseInterDyMFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         5;
+
+deltaT          1e-6;
+
+writeControl    adjustableRunTime;
+
+writeInterval   0.05;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable true;
+
+adjustTimeStep  yes;
+
+maxCo           0.1;
+maxAlphaCo      0.1;
+
+maxDeltaT       1;
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/decomposeParDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..e043204bfb374e38754a467d053e6d790cf39921
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/decomposeParDict
@@ -0,0 +1,31 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+//- Force AMI to be on single processor. Can cause imbalance with some
+//  decomposers.
+//singleProcessorFaceSets ((AMI -1));
+
+numberOfSubdomains 4;
+
+method          scotch;
+
+distributed     no;
+
+roots           ( );
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSchemes b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..1d6bf9885578993c2e1f1d9c3121cce91e33012b
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSchemes
@@ -0,0 +1,60 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    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;
+}
+
+divSchemes
+{
+    div(rhoPhi,U)       Gauss limitedLinearV 1;
+    div(phi,alpha)      Gauss vanLeer;
+    div(phirb,alpha)    Gauss linear;
+    div((muEff*dev(T(grad(U))))) Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear corrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         corrected;
+}
+
+fluxRequired
+{
+    default         no;
+    pcorr;
+    p_rgh;
+    "alpha.*";
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSolution b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..454667421f20573bdbfff266241047adb3fafbbc
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/fvSolution
@@ -0,0 +1,82 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    alpha
+    {
+        nAlphaSubCycles 1;
+        cAlpha          1;
+    }
+
+    "pcorr.*"
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-3;
+        relTol          0;
+    }
+
+    p_rgh
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-07;
+        relTol          0.05;
+    }
+
+    p_rghFinal
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-07;
+        relTol          0;
+    }
+
+    "(U|alpha)"
+    {
+        solver          smoothSolver;
+        smoother        symGaussSeidel;
+        tolerance       1e-06;
+        relTol          0;
+    }
+}
+
+PIMPLE
+{
+    correctPhi          yes;
+    momentumPredictor   no;
+    nOuterCorrectors    1;
+    nCorrectors     4;
+    nNonOrthogonalCorrectors 0;
+
+    pRefCell        0;
+    pRefValue       0;
+}
+
+relaxationFactors
+{
+    fields
+    {
+    }
+    equations
+    {
+        "U.*"           1;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/setFieldsDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/setFieldsDict
new file mode 100644
index 0000000000000000000000000000000000000000..6e8f2f034c8ef44b05bd30e21e1d55c4a6aac48b
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/setFieldsDict
@@ -0,0 +1,64 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      setFieldsDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+defaultFieldValues
+(
+    volScalarFieldValue alpha.air 1
+    volScalarFieldValue alpha.water 0
+    volScalarFieldValue alpha.oil 0
+    volScalarFieldValue alpha.mercury 0
+);
+
+regions
+(
+    boxToCell
+    {
+        box (0 0 -1) (1 1 1);
+        fieldValues
+        (
+            volScalarFieldValue alpha.water 1
+            volScalarFieldValue alpha.oil 0
+            volScalarFieldValue alpha.mercury 0
+            volScalarFieldValue alpha.air 0
+        );
+    }
+    boxToCell
+    {
+        box (0 -1 -1) (1 0 1);
+        fieldValues
+        (
+            volScalarFieldValue alpha.water 0
+            volScalarFieldValue alpha.oil 1
+            volScalarFieldValue alpha.mercury 0
+            volScalarFieldValue alpha.air 0
+        );
+    }
+    boxToCell
+    {
+        box (-1 -1 -1) (0 0 1);
+        fieldValues
+        (
+            volScalarFieldValue alpha.water 0
+            volScalarFieldValue alpha.oil 0
+            volScalarFieldValue alpha.mercury 1
+            volScalarFieldValue alpha.air 0
+        );
+    }
+);
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/topoSetDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/topoSetDict
new file mode 100644
index 0000000000000000000000000000000000000000..07786ad6b03c42df1c7cf507ab8a479b3b73cc52
--- /dev/null
+++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/topoSetDict
@@ -0,0 +1,35 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  2.3.x                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      topoSetDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    // Get both sides of ami
+    // ~~~~~~~~~~~~~~~~~~~~~
+
+    // Get all faces in cellSet
+    {
+        name    AMI;
+        type    faceSet;
+        action  new;
+        source  patchToFace;
+        sourceInfo
+        {
+            name "AMI.*";
+        }
+    }
+);
+
+// ************************************************************************* //