diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/Allwclean b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/Allwclean
index cc138bc068e6882e24eb995668e00a0fc18d3e58..8af1402435a2178688f40851c00f4059d8fe6ecd 100755
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/Allwclean
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/Allwclean
@@ -2,9 +2,9 @@
 cd ${0%/*} || exit 1    # run from this directory
 set -x
 
-wclean libso phaseModel
+wclean libso twoPhaseSystem
 wclean libso interfacialModels
-wclean libso kineticTheoryModels
+wclean libso phaseIncompressibleTurbulenceModels
 wclean
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/Allwmake b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/Allwmake
index 29294d166a947be8f5f391168d9e4f67faeb8718..4927c5509ab007d6ef148c536f5b2e3d1833287d 100755
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/Allwmake
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/Allwmake
@@ -2,7 +2,8 @@
 cd ${0%/*} || exit 1    # run from this directory
 set -x
 
-wmake libso phaseModel
+wmakeLnInclude interfacialModels
+wmake libso twoPhaseSystem
 wmake libso interfacialModels
 wmake libso kineticTheoryModels
 wmake
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/EEqns.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/EEqns.H
index 1810bdd4d9f07377f8f7cb42702f3bd4e4a19ef9..3127450f0090dbe406d994f192ceb674be5f5936 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/EEqns.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/EEqns.H
@@ -1,22 +1,12 @@
 {
-    volScalarField k1
-    (
-        "k1",
-        alpha1*(thermo1.alpha()/rho1 + sqr(Ct)*nut2*thermo1.CpByCpv()/Prt)
-    );
-
-    volScalarField k2
-    (
-        "k2",
-        alpha2*(thermo2.alpha()/rho2 + nut2*thermo2.CpByCpv()/Prt)
-    );
-
     volScalarField& he1 = thermo1.he();
     volScalarField& he2 = thermo2.he();
 
     volScalarField Cpv1(thermo1.Cpv());
     volScalarField Cpv2(thermo2.Cpv());
 
+    volScalarField heatTransferCoeff(fluid.heatTransferCoeff());
+
     fvScalarMatrix he1Eqn
     (
         fvm::ddt(alpha1, he1) + fvm::div(alphaPhi1, he1)
@@ -32,7 +22,8 @@
           : -alpha1*dpdt
         )/rho1
 
-      - fvm::laplacian(k1, he1)
+      //***HGW- fvm::laplacian(alpha1*turbulence1->alphaEff(), he1)
+      - fvm::laplacian(alpha1*turbulence1->nuEff(), he1)
      ==
         heatTransferCoeff*(thermo2.T() - thermo1.T())/rho1
       + heatTransferCoeff*he1/Cpv1/rho1
@@ -54,7 +45,8 @@
           : -alpha2*dpdt
         )/rho2
 
-      - fvm::laplacian(k2, he2)
+      //***HGW- fvm::laplacian(alpha2*turbulence2->alphaEff(), he2)
+      - fvm::laplacian(alpha2*turbulence2->nuEff(), he2)
      ==
         heatTransferCoeff*(thermo1.T() - thermo2.T())/rho2
       + heatTransferCoeff*he2/Cpv2/rho2
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/Make/options b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/Make/options
index d90ba7bbbdf308e0b43489c0e0efd851b5367e28..ac52ae02aebc843117cfdf2b6aebf22514d7ae73 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/Make/options
@@ -2,18 +2,22 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/transportModels/incompressible/lnInclude \
-    -IturbulenceModel \
-    -IkineticTheoryModels/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/turbulenceModel/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude \
+    -IphaseIncompressibleTurbulenceModels/lnInclude \
     -IinterfacialModels/lnInclude \
-    -IphaseModel/lnInclude \
+    -ItwoPhaseSystem/lnInclude \
     -Iaveraging
 
 EXE_LIBS = \
     -lfluidThermophysicalModels \
     -lspecie \
+    -lturbulenceModels \
+    -lincompressibleTurbulenceModels \
+    -lphaseIncompressibleTurbulenceModels \
     -lincompressibleTransportModels \
-    -lcompressiblePhaseModel \
+    -lcompressibleTwoPhaseSystem \
     -lcompressibleEulerianInterfacialModels \
-    -lcompressibleKineticTheoryModel \
     -lfiniteVolume \
     -lmeshTools
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/UEqns.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/UEqns.H
index ae22926c4e79f29ebf2ebdaccca548933218a9d1..dea48be335460a4e698b13fa867467eedb0af76c 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/UEqns.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/UEqns.H
@@ -5,31 +5,12 @@ mrfZones.correctBoundaryVelocity(U);
 fvVectorMatrix U1Eqn(U1, U1.dimensions()*dimVol/dimTime);
 fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime);
 
-{
-    {
-        volTensorField gradU1T(fvc::grad(U1)().T());
-
-        if (kineticTheory.on())
-        {
-            kineticTheory.solve(gradU1T);
-            nuEff1 = kineticTheory.mu1()/rho1;
-        }
-        else // If not using kinetic theory is using Ct model
-        {
-            nuEff1 = sqr(Ct)*nut2 + thermo1.mu()/rho1;
-        }
-
-        volTensorField Rc1
-        (
-            "Rc",
-            (((2.0/3.0)*I)*nuEff1)*tr(gradU1T) - nuEff1*gradU1T
-        );
+volScalarField dragCoeff(fluid.dragCoeff());
 
-        if (kineticTheory.on())
-        {
-            Rc1 -= ((kineticTheory.lambda()/rho1)*tr(gradU1T))*tensor(I);
-        }
+{
+    volVectorField liftForce(fluid.liftForce(U));
 
+    {
         U1Eqn =
         (
             fvm::ddt(alpha1, U1)
@@ -38,31 +19,23 @@ fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime);
             // Compressibity correction
           - fvm::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), U1)
 
-          + Cvm*rho2*alpha1*alpha2/rho1*
+          + fluid.Cvm()*rho2*alpha1*alpha2/rho1*
             (
                 fvm::ddt(U1)
               + fvm::div(phi1, U1)
               - fvm::Sp(fvc::div(phi1), U1)
             )
 
-          - fvm::laplacian(alpha1*nuEff1, U1)
-          + fvc::div(alpha1*Rc1)
+          + turbulence1->divDevReff(U1)
          ==
           - fvm::Sp(dragCoeff/rho1, U1)
-          - alpha1*alpha2/rho1*(liftForce - Cvm*rho2*DDtU2)
+          - alpha1*alpha2/rho1*(liftForce - fluid.Cvm()*rho2*DDtU2)
         );
-        mrfZones.addCoriolis(alpha1*(1 + Cvm*rho2*alpha2/rho1), U1Eqn);
+        mrfZones.addCoriolis(alpha1*(1 + fluid.Cvm()*rho2*alpha2/rho1), U1Eqn);
         U1Eqn.relax();
     }
 
     {
-        volTensorField gradU2T(fvc::grad(U2)().T());
-        volTensorField Rc2
-        (
-            "Rc",
-            (((2.0/3.0)*I)*nuEff2)*tr(gradU2T) - nuEff2*gradU2T
-        );
-
         U2Eqn =
         (
             fvm::ddt(alpha2, U2)
@@ -71,20 +44,18 @@ fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime);
             // Compressibity correction
           - fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), U2)
 
-          + Cvm*rho2*alpha1*alpha2/rho2*
+          + fluid.Cvm()*rho2*alpha1*alpha2/rho2*
             (
                 fvm::ddt(U2)
               + fvm::div(phi2, U2)
               - fvm::Sp(fvc::div(phi2), U2)
             )
-
-          - fvm::laplacian(alpha2*nuEff2, U2)
-          + fvc::div(alpha2*Rc2)
+          + turbulence2->divDevReff(U2)
          ==
           - fvm::Sp(dragCoeff/rho2, U2)
-          + alpha1*alpha2/rho2*(liftForce + Cvm*rho2*DDtU1)
+          + alpha1*alpha2/rho2*(liftForce + fluid.Cvm()*rho2*DDtU1)
         );
-        mrfZones.addCoriolis(alpha2*(1 + Cvm*rho2*alpha1/rho2), U2Eqn);
+        mrfZones.addCoriolis(alpha2*(1 + fluid.Cvm()*rho2*alpha1/rho2), U2Eqn);
         U2Eqn.relax();
     }
 }
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/alphaEqn.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/alphaEqn.H
index 601ff0e919a5b3537f01799ae3a425ede07dae43..2bd8277caabe0140e953b2df7222cbd30df32d7e 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/alphaEqn.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/alphaEqn.H
@@ -1,6 +1,3 @@
-surfaceScalarField alphaPhi1("alphaPhi" + phase1Name, phi1);
-surfaceScalarField alphaPhi2("alphaPhi" + phase2Name, phi2);
-
 {
     word alphaScheme("div(phi," + alpha1.name() + ')');
     word alpharScheme("div(phir," + alpha1.name() + ')');
@@ -8,12 +5,23 @@ surfaceScalarField alphaPhi2("alphaPhi" + phase2Name, phi2);
     surfaceScalarField phic("phic", phi);
     surfaceScalarField phir("phir", phi1 - phi2);
 
-    if (g0.value() > 0.0)
+    surfaceScalarField alpha1f(fvc::interpolate(max(alpha1, 0.0)));
+
+    tmp<surfaceScalarField> pPrimeByA;
+
+    if (implicitPhasePressure)
     {
-        surfaceScalarField alpha1f(fvc::interpolate(alpha1));
-        surfaceScalarField phipp(ppMagf*fvc::snGrad(alpha1)*mesh.magSf());
-        phir += phipp;
-        phic += alpha1f*phipp;
+        pPrimeByA =
+            fvc::interpolate((1.0/rho1)*rAU1*turbulence1().pPrime())
+          + fvc::interpolate((1.0/rho2)*rAU2*turbulence2().pPrime());
+
+        surfaceScalarField phiP
+        (
+            pPrimeByA()*fvc::snGrad(alpha1, "bounded")*mesh.magSf()
+        );
+
+        phic += alpha1f*phiP;
+        phir += phiP;
     }
 
     for (int acorr=0; acorr<nAlphaCorr; acorr++)
@@ -92,7 +100,7 @@ surfaceScalarField alphaPhi2("alphaPhi" + phase2Name, phi2);
                 alphaPhic1,
                 Sp,
                 Su,
-                (g0.value() > 0 ? alphaMax : 1),
+                1,
                 0
             );
 
@@ -104,61 +112,19 @@ surfaceScalarField alphaPhi2("alphaPhi" + phase2Name, phi2);
             {
                 alphaPhi1 = alphaPhic1;
             }
-
-            /*
-            // Legacy semi-implicit and potentially unbounded form
-            fvScalarMatrix alpha1Eqn
-            (
-                fvm::ddt(alpha1)
-              + fvm::div(phic, alpha1, alphaScheme)
-              + fvm::div
-                (
-                    -fvc::flux(-phir, alpha2, alpharScheme),
-                    alpha1,
-                    alpharScheme
-                )
-             ==
-               fvm::Sp(Sp, alpha1) + Su
-            );
-
-            alpha1Eqn.relax();
-            alpha1Eqn.solve();
-
-            if (nAlphaSubCycles > 1)
-            {
-                alphaPhi1 += (runTime.deltaT()/totalDeltaT)*alpha1Eqn.flux();
-            }
-            else
-            {
-                alphaPhi1 = alpha1Eqn.flux();
-            }
-            */
         }
 
-        if (g0.value() > 0.0)
+        if (implicitPhasePressure)
         {
-            surfaceScalarField alpha1f(fvc::interpolate(alpha1));
-
-            ppMagf =
-                fvc::interpolate((1.0/rho1)*rAU1)
-               *g0*min(exp(preAlphaExp*(alpha1f - alphaMax)), expMax);
-
             fvScalarMatrix alpha1Eqn
             (
                 fvm::ddt(alpha1) - fvc::ddt(alpha1)
-              - fvm::laplacian
-                (
-                    alpha1f*ppMagf,
-                    alpha1,
-                    "laplacian(alpha1PpMag,alpha1)"
-                )
+              - fvm::laplacian(alpha1f*pPrimeByA, alpha1, "bounded")
             );
 
             alpha1Eqn.relax();
             alpha1Eqn.solve();
 
-            #include "packingLimiter.H"
-
             alphaPhi1 += alpha1Eqn.flux();
         }
 
@@ -173,4 +139,4 @@ surfaceScalarField alphaPhi2("alphaPhi" + phase2Name, phi2);
     }
 }
 
-rho = alpha1*rho1 + alpha2*rho2;
+rho = fluid.rho();
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/compressibleTwoPhaseEulerFoam.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/compressibleTwoPhaseEulerFoam.C
index 50266a195e0277bdee6148d35ae14e43fbadbcb0..22018f9d8caf0f0fb85396a8cdb2406b3c6eb429 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/compressibleTwoPhaseEulerFoam.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/compressibleTwoPhaseEulerFoam.C
@@ -34,21 +34,11 @@ Description
 #include "MULES.H"
 #include "subCycle.H"
 #include "rhoThermo.H"
-#include "nearWallDist.H"
-#include "wallFvPatch.H"
-#include "fixedValueFvsPatchFields.H"
-#include "Switch.H"
-
-#include "IFstream.H"
-#include "OFstream.H"
-
-#include "phaseModel.H"
+#include "twoPhaseSystem.H"
 #include "dragModel.H"
 #include "heatTransferModel.H"
-#include "kineticTheoryModel.H"
-
+#include "PhaseIncompressibleTurbulenceModel.H"
 #include "pimpleControl.H"
-
 #include "IOMRFZoneList.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -62,7 +52,6 @@ int main(int argc, char *argv[])
     #include "readGravitationalAcceleration.H"
     #include "createFields.H"
     #include "createMRFZones.H"
-    #include "readPPProperties.H"
     #include "initContinuityErrs.H"
     #include "readTimeControls.H"
     #include "CourantNos.H"
@@ -87,8 +76,6 @@ int main(int argc, char *argv[])
         while (pimple.loop())
         {
             #include "alphaEqn.H"
-            #include "kEpsilon.H"
-            #include "interfacialCoeffs.H"
             #include "EEqns.H"
             #include "UEqns.H"
 
@@ -99,6 +86,12 @@ int main(int argc, char *argv[])
             }
 
             #include "DDtU.H"
+
+            if (pimple.turbCorr())
+            {
+                turbulence1->correct();
+                turbulence2->correct();
+            }
         }
 
         #include "write.H"
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createFields.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createFields.H
index 5b030b95ea64522589ec0583b07e58b51f61d73f..f279445cf639bc7992037f31a6f4b92ed487c714 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createFields.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createFields.H
@@ -1,64 +1,38 @@
-    Info<< "Reading transportProperties\n" << endl;
+    Info<< "Creating twoPhaseSystem\n" << endl;
 
-    IOdictionary transportProperties
-    (
-        IOobject
-        (
-            "transportProperties",
-            runTime.constant(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::NO_WRITE
-        )
-    );
+    twoPhaseSystem fluid(mesh);
 
-    word phase1Name
-    (
-        transportProperties.found("phases")
-      ? wordList(transportProperties.lookup("phases"))[0]
-      : "1"
-    );
+    phaseModel& phase1 = fluid.phase1();
+    phaseModel& phase2 = fluid.phase2();
 
-    word phase2Name
-    (
-        transportProperties.found("phases")
-      ? wordList(transportProperties.lookup("phases"))[1]
-      : "2"
-    );
+    volScalarField& alpha1 = phase1;
+    volScalarField& alpha2 = phase2;
 
-    autoPtr<phaseModel> phase1 = phaseModel::New
+    volVectorField& U1 = phase1.U();
+    surfaceScalarField& phi1 = phase1.phi();
+    surfaceScalarField alphaPhi1
     (
-        mesh,
-        transportProperties,
-        phase1Name
+        IOobject::groupName("alphaPhi", phase1.name()),
+        fvc::interpolate(alpha1)*phi1
     );
 
-    autoPtr<phaseModel> phase2 = phaseModel::New
+    volVectorField& U2 = phase2.U();
+    surfaceScalarField& phi2 = phase2.phi();
+    surfaceScalarField alphaPhi2
     (
-        mesh,
-        transportProperties,
-        phase2Name
+        IOobject::groupName("alphaPhi", phase2.name()),
+        fvc::interpolate(alpha2)*phi2
     );
 
-    volScalarField& alpha1 = phase1();
-    volScalarField& alpha2 = phase2();
-    alpha2 = scalar(1) - alpha1;
-
-    volVectorField& U1 = phase1->U();
-    surfaceScalarField& phi1 = phase1->phi();
-
-    volVectorField& U2 = phase2->U();
-    surfaceScalarField& phi2 = phase2->phi();
-
     dimensionedScalar pMin
     (
         "pMin",
         dimPressure,
-        transportProperties.lookup("pMin")
+        fluid.lookup("pMin")
     );
 
-    rhoThermo& thermo1 = phase1->thermo();
-    rhoThermo& thermo2 = phase2->thermo();
+    rhoThermo& thermo1 = phase1.thermo();
+    rhoThermo& thermo2 = phase2.thermo();
 
     volScalarField& p = thermo1.p();
 
@@ -78,7 +52,7 @@
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
-        alpha1*U1 + alpha2*U2
+        fluid.U()
     );
 
     surfaceScalarField phi
@@ -91,7 +65,7 @@
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
-        fvc::interpolate(alpha1)*phi1 + fvc::interpolate(alpha2)*phi2
+        fluid.phi()
     );
 
     volScalarField rho
@@ -104,7 +78,7 @@
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
-        alpha1*rho1 + alpha2*rho2
+        fluid.rho()
     );
 
     Info<< "Calculating field DDtU1 and DDtU2\n" << endl;
@@ -127,119 +101,11 @@
     Info<< "Calculating field g.h\n" << endl;
     volScalarField gh("gh", g & mesh.C());
 
-    dimensionedScalar Cvm
-    (
-        "Cvm",
-        dimless,
-        transportProperties.lookup("Cvm")
-    );
-
-    dimensionedScalar Cl
-    (
-        "Cl",
-        dimless,
-        transportProperties.lookup("Cl")
-    );
-
-    dimensionedScalar Ct
-    (
-        "Ct",
-        dimless,
-        transportProperties.lookup("Ct")
-    );
-
-    #include "createRASTurbulence.H"
-
-    IOdictionary interfacialProperties
-    (
-        IOobject
-        (
-            "interfacialProperties",
-            runTime.constant(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::NO_WRITE
-        )
-    );
-
-    autoPtr<dragModel> drag1 = dragModel::New
-    (
-        interfacialProperties,
-        alpha1,
-        phase1,
-        phase2
-    );
-
-    autoPtr<dragModel> drag2 = dragModel::New
-    (
-        interfacialProperties,
-        alpha2,
-        phase2,
-        phase1
-    );
-
-    autoPtr<heatTransferModel> heatTransfer1 = heatTransferModel::New
-    (
-        interfacialProperties,
-        alpha1,
-        phase1,
-        phase2
-    );
-
-    autoPtr<heatTransferModel> heatTransfer2 = heatTransferModel::New
-    (
-        interfacialProperties,
-        alpha2,
-        phase2,
-        phase1
-    );
-
-    word dispersedPhase(interfacialProperties.lookup("dispersedPhase"));
-
-    if
-    (
-        !(
-            dispersedPhase == phase1Name
-         || dispersedPhase == phase2Name
-         || dispersedPhase == "both"
-        )
-    )
-    {
-        FatalErrorIn(args.executable())
-            << "invalid dispersedPhase " << dispersedPhase
-            << exit(FatalError);
-    }
-
-    Info << "dispersedPhase is " << dispersedPhase << endl;
-
-    scalar residualPhaseFraction
-    (
-        readScalar
-        (
-            interfacialProperties.lookup("residualPhaseFraction")
-        )
-    );
-
-    dimensionedScalar residualSlip
-    (
-        "residualSlip",
-        dimVelocity,
-        interfacialProperties.lookup("residualSlip")
-    );
-
-    kineticTheoryModel kineticTheory
-    (
-        phase1,
-        U2,
-        alpha1,
-        drag1
-    );
-
     volScalarField rAU1
     (
         IOobject
         (
-            "rAU" + phase1Name,
+            IOobject::groupName("rAU", phase1.name()),
             runTime.timeName(),
             mesh,
             IOobject::NO_READ,
@@ -249,21 +115,20 @@
         dimensionedScalar("zero", dimensionSet(0, 0, 1, 0, 0), 0.0)
     );
 
-    surfaceScalarField ppMagf
+    volScalarField rAU2
     (
         IOobject
         (
-            "ppMagf",
+            IOobject::groupName("rAU", phase2.name()),
             runTime.timeName(),
             mesh,
             IOobject::NO_READ,
             IOobject::NO_WRITE
         ),
         mesh,
-        dimensionedScalar("zero", dimensionSet(0, 2, -1, 0, 0), 0.0)
+        dimensionedScalar("zero", dimensionSet(0, 0, 1, 0, 0), 0.0)
     );
 
-
     label pRefCell = 0;
     scalar pRefValue = 0.0;
     setRefCell(p, mesh.solutionDict().subDict("PIMPLE"), pRefCell, pRefValue);
@@ -290,5 +155,31 @@
 
 
     Info<< "Creating field kinetic energy K\n" << endl;
-    volScalarField K1("K" + phase1Name, 0.5*magSqr(U1));
-    volScalarField K2("K" + phase2Name, 0.5*magSqr(U2));
+    volScalarField K1(IOobject::groupName("K", phase1.name()), 0.5*magSqr(U1));
+    volScalarField K2(IOobject::groupName("K", phase2.name()), 0.5*magSqr(U2));
+
+    autoPtr<PhaseIncompressibleTurbulenceModel<phaseModel> >
+    turbulence1
+    (
+        PhaseIncompressibleTurbulenceModel<phaseModel>::New
+        (
+            alpha1,
+            U1,
+            alphaPhi1,
+            phi1,
+            phase1
+        )
+    );
+
+    autoPtr<PhaseIncompressibleTurbulenceModel<phaseModel> >
+    turbulence2
+    (
+        PhaseIncompressibleTurbulenceModel<phaseModel>::New
+        (
+            alpha2,
+            U2,
+            alphaPhi2,
+            phi2,
+            phase2
+        )
+    );
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createRASTurbulence.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createRASTurbulence.H
deleted file mode 100644
index 0a782ef51edf99f32eaf986325fd926db596e410..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/createRASTurbulence.H
+++ /dev/null
@@ -1,189 +0,0 @@
-    IOdictionary RASProperties
-    (
-        IOobject
-        (
-            "RASProperties",
-            runTime.constant(),
-            mesh,
-            //IOobject::MUST_READ_IF_MODIFIED,
-            IOobject::MUST_READ,
-            IOobject::NO_WRITE
-        )
-    );
-
-
-    Switch turbulence
-    (
-        RASProperties.lookup("turbulence")
-    );
-
-    dictionary kEpsilonDict
-    (
-        RASProperties.subDictPtr("kEpsilonCoeffs")
-    );
-
-    dimensionedScalar Cmu
-    (
-        dimensionedScalar::lookupOrAddToDict
-        (
-            "Cmu",
-            kEpsilonDict,
-            0.09
-        )
-    );
-
-    dimensionedScalar C1
-    (
-        dimensionedScalar::lookupOrAddToDict
-        (
-            "C1",
-            kEpsilonDict,
-            1.44
-        )
-    );
-
-    dimensionedScalar C2
-    (
-        dimensionedScalar::lookupOrAddToDict
-        (
-            "C2",
-            kEpsilonDict,
-            1.92
-        )
-    );
-
-    dimensionedScalar alpha1k
-    (
-        dimensionedScalar::lookupOrAddToDict
-        (
-            "alpha1k",
-            kEpsilonDict,
-            1.0
-        )
-    );
-
-    dimensionedScalar alpha1Eps
-    (
-        dimensionedScalar::lookupOrAddToDict
-        (
-            "alpha1Eps",
-            kEpsilonDict,
-            0.76923
-        )
-    );
-
-    dimensionedScalar Prt
-    (
-        dimensioned<scalar>::lookupOrAddToDict
-        (
-            "Prt",
-            kEpsilonDict,
-            1.0
-        )
-    );
-
-    dictionary wallFunctionDict
-    (
-        RASProperties.subDictPtr("wallFunctionCoeffs")
-    );
-
-    dimensionedScalar kappa
-    (
-        dimensionedScalar::lookupOrAddToDict
-        (
-            "kappa",
-            wallFunctionDict,
-            0.41
-        )
-    );
-
-    dimensionedScalar E
-    (
-        dimensionedScalar::lookupOrAddToDict
-        (
-            "E",
-            wallFunctionDict,
-            9.8
-        )
-    );
-
-    if (RASProperties.lookupOrDefault("printCoeffs", false))
-    {
-        Info<< "kEpsilonCoeffs" << kEpsilonDict << nl
-            << "wallFunctionCoeffs" << wallFunctionDict << endl;
-    }
-
-
-    nearWallDist y(mesh);
-
-
-    Info<< "Reading field k\n" << endl;
-    volScalarField k
-    (
-        IOobject
-        (
-            "k",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
-
-    Info<< "Reading field epsilon\n" << endl;
-    volScalarField epsilon
-    (
-        IOobject
-        (
-            "epsilon",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
-
-
-    Info<< "Calculating field nut2\n" << endl;
-    volScalarField nut2
-    (
-        IOobject
-        (
-            "nut" + phase2Name,
-            runTime.timeName(),
-            mesh,
-            IOobject::NO_READ,
-            IOobject::AUTO_WRITE
-        ),
-        Cmu*sqr(k)/epsilon
-    );
-
-    Info<< "Calculating field nuEff1\n" << endl;
-    volScalarField nuEff1
-    (
-        IOobject
-        (
-            "nuEff" + phase1Name,
-            runTime.timeName(),
-            mesh,
-            IOobject::NO_READ,
-            IOobject::NO_WRITE
-        ),
-        sqr(Ct)*nut2 + thermo1.mu()/rho1
-    );
-
-    Info<< "Calculating field nuEff2\n" << endl;
-    volScalarField nuEff2
-    (
-        IOobject
-        (
-            "nuEff" + phase2Name,
-            runTime.timeName(),
-            mesh,
-            IOobject::NO_READ,
-            IOobject::NO_WRITE
-        ),
-        nut2 + thermo2.mu()/rho2
-    );
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialCoeffs.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialCoeffs.H
deleted file mode 100644
index d53bec5ea4f5ed2dc8393425bb4c4ddfa816c39d..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialCoeffs.H
+++ /dev/null
@@ -1,88 +0,0 @@
-volScalarField dragCoeff
-(
-    IOobject
-    (
-        "dragCoeff",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dragCoeff", dimensionSet(1, -3, -1, 0, 0), 0)
-);
-
-volVectorField liftForce
-(
-    IOobject
-    (
-        "liftForce",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedVector("liftForce", dimensionSet(1, -2, -2, 0, 0), vector::zero)
-);
-
-volScalarField heatTransferCoeff
-(
-    IOobject
-    (
-        "heatTransferCoeff",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("heatTransferCoeff", dimensionSet(1, -1, -3, -1, 0), 0)
-);
-
-{
-    volVectorField Ur(U1 - U2);
-    volScalarField magUr(mag(Ur) + residualSlip);
-
-    if (dispersedPhase == phase1Name)
-    {
-        dragCoeff = drag1->K(magUr);
-        heatTransferCoeff = heatTransfer1->K(magUr);
-    }
-    else if (dispersedPhase == phase2Name)
-    {
-        dragCoeff = drag2->K(magUr);
-        heatTransferCoeff = heatTransfer2->K(magUr);
-    }
-    else if (dispersedPhase == "both")
-    {
-        dragCoeff =
-        (
-            alpha2*drag1->K(magUr)
-          + alpha1*drag2->K(magUr)
-        );
-
-        heatTransferCoeff =
-        (
-            alpha2*heatTransfer1->K(magUr)
-          + alpha1*heatTransfer2->K(magUr)
-        );
-    }
-    else
-    {
-        FatalErrorIn(args.executable())
-            << "dispersedPhase: " << dispersedPhase << " is incorrect"
-            << exit(FatalError);
-    }
-
-    volScalarField alphaCoeff(max(alpha1*alpha2, residualPhaseFraction));
-    dragCoeff *= alphaCoeff;
-    heatTransferCoeff *= alphaCoeff;
-
-    liftForce = Cl*(alpha1*rho1 + alpha2*rho2)*(Ur ^ fvc::curl(U));
-
-    // Remove lift, drag and phase heat-transfer at fixed-flux boundaries
-    forAll(phi1.boundaryField(), patchi)
-    {
-        if (isA<fixedValueFvsPatchScalarField>(phi1.boundaryField()[patchi]))
-        {
-            dragCoeff.boundaryField()[patchi] = 0.0;
-            heatTransferCoeff.boundaryField()[patchi] = 0.0;
-            liftForce.boundaryField()[patchi] = vector::zero;
-        }
-    }
-}
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/Make/options b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/Make/options
index f031e058986a9c4ac3c37c83fafeaf2f592f28df..e7e60696ec115958097f3014006ebf9c93889980 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/Make/options
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/Make/options
@@ -1,9 +1,10 @@
 EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+    -I$(LIB_SRC)/transportModels/incompressible/transportModel \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I../phaseModel/lnInclude
+    -I../twoPhaseSystem/lnInclude
 
 LIB_LIBS = \
-    -lcompressiblePhaseModel \
+    -lcompressibleTwoPhaseSystem \
     -lfluidThermophysicalModels \
     -lspecie
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C
index 00be8a338ffa3db3b10a1b2043105ff598e0314f..9159b287849963cdd03963567beccf66753b32a6 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C
@@ -37,7 +37,7 @@ Foam::autoPtr<Foam::dragModel> Foam::dragModel::New
 {
     word dragModelType
     (
-        interfaceDict.lookup("dragModel" + phase1.name())
+        interfaceDict.lookup(phase1.name())
     );
 
     Info << "Selecting dragModel for phase "
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C
index aaa972032d071d9ee1945e3bb141cff24cb16c36..cf3ae9741236ef8942a4ecd88eb4fb8539714d17 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C
@@ -37,7 +37,7 @@ Foam::autoPtr<Foam::heatTransferModel> Foam::heatTransferModel::New
 {
     word heatTransferModelType
     (
-        interfaceDict.lookup("heatTransferModel" + phase1.name())
+        interfaceDict.lookup(phase1.name())
     );
 
     Info<< "Selecting heatTransferModel for phase "
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/Make/files b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/Make/files
deleted file mode 100644
index 2b36d0bc319b5a3b3541a93c316a671d508a4285..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/Make/files
+++ /dev/null
@@ -1,32 +0,0 @@
-kineticTheoryModel/kineticTheoryModel.C
-
-viscosityModel/viscosityModel/viscosityModel.C
-viscosityModel/viscosityModel/newViscosityModel.C
-viscosityModel/Gidaspow/GidaspowViscosity.C
-viscosityModel/Syamlal/SyamlalViscosity.C
-viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
-viscosityModel/none/noneViscosity.C
-
-conductivityModel/conductivityModel/conductivityModel.C
-conductivityModel/conductivityModel/newConductivityModel.C
-conductivityModel/Gidaspow/GidaspowConductivity.C
-conductivityModel/Syamlal/SyamlalConductivity.C
-conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
-
-radialModel/radialModel/radialModel.C
-radialModel/radialModel/newRadialModel.C
-radialModel/CarnahanStarling/CarnahanStarlingRadial.C
-radialModel/LunSavage/LunSavageRadial.C
-radialModel/SinclairJackson/SinclairJacksonRadial.C
-
-granularPressureModel/granularPressureModel/granularPressureModel.C
-granularPressureModel/granularPressureModel/newGranularPressureModel.C
-granularPressureModel/Lun/LunPressure.C
-granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C
-
-frictionalStressModel/frictionalStressModel/frictionalStressModel.C
-frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C
-frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
-frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
-
-LIB = $(FOAM_LIBBIN)/libcompressibleKineticTheoryModel
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/Make/options b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/Make/options
deleted file mode 100644
index 7fdabf573092bd4219e75fa41044236e02b7d50e..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/Make/options
+++ /dev/null
@@ -1,6 +0,0 @@
-EXE_INC = \
-    -I$(LIB_SRC)/foam/lnInclude \
-    -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I../phaseModel/lnInclude \
-    -I../interfacialModels/lnInclude
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C
deleted file mode 100644
index 81393568200bd0b7b97cf54e8e0c0bf3a8ae1d7b..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C
+++ /dev/null
@@ -1,389 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 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 "kineticTheoryModel.H"
-#include "surfaceInterpolate.H"
-#include "mathematicalConstants.H"
-#include "fvCFD.H"
-
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-Foam::kineticTheoryModel::kineticTheoryModel
-(
-    const Foam::phaseModel& phase1,
-    const Foam::volVectorField& U2,
-    const Foam::volScalarField& alpha1,
-    const Foam::dragModel& draga
-)
-:
-    phase1_(phase1),
-    U1_(phase1.U()),
-    U2_(U2),
-    alpha1_(alpha1),
-    phi1_(phase1.phi()),
-    draga_(draga),
-
-    rho1_(phase1.rho()),
-
-    kineticTheoryProperties_
-    (
-        IOobject
-        (
-            "kineticTheoryProperties",
-            U1_.time().constant(),
-            U1_.mesh(),
-            IOobject::MUST_READ,
-            IOobject::NO_WRITE
-        )
-    ),
-    kineticTheory_(kineticTheoryProperties_.lookup("kineticTheory")),
-    equilibrium_(kineticTheoryProperties_.lookup("equilibrium")),
-
-    viscosityModel_
-    (
-        kineticTheoryModels::viscosityModel::New
-        (
-            kineticTheoryProperties_
-        )
-    ),
-    conductivityModel_
-    (
-        kineticTheoryModels::conductivityModel::New
-        (
-            kineticTheoryProperties_
-        )
-    ),
-    radialModel_
-    (
-        kineticTheoryModels::radialModel::New
-        (
-            kineticTheoryProperties_
-        )
-    ),
-    granularPressureModel_
-    (
-        kineticTheoryModels::granularPressureModel::New
-        (
-            kineticTheoryProperties_
-        )
-    ),
-    frictionalStressModel_
-    (
-        kineticTheoryModels::frictionalStressModel::New
-        (
-            kineticTheoryProperties_
-        )
-    ),
-    e_(kineticTheoryProperties_.lookup("e")),
-    alphaMax_(kineticTheoryProperties_.lookup("alphaMax")),
-    alphaMinFriction_(kineticTheoryProperties_.lookup("alphaMinFriction")),
-    Fr_(kineticTheoryProperties_.lookup("Fr")),
-    eta_(kineticTheoryProperties_.lookup("eta")),
-    p_(kineticTheoryProperties_.lookup("p")),
-    phi_(dimensionedScalar(kineticTheoryProperties_.lookup("phi"))*M_PI/180.0),
-    Theta_
-    (
-        IOobject
-        (
-            "Theta",
-            U1_.time().timeName(),
-            U1_.mesh(),
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        U1_.mesh()
-    ),
-    mu1_
-    (
-        IOobject
-        (
-            "mu" + phase1.name(),
-            U1_.time().timeName(),
-            U1_.mesh(),
-            IOobject::NO_READ,
-            IOobject::AUTO_WRITE
-        ),
-        U1_.mesh(),
-        dimensionedScalar("zero", dimensionSet(1, -1, -1, 0, 0), 0.0)
-    ),
-    lambda_
-    (
-        IOobject
-        (
-            "lambda",
-            U1_.time().timeName(),
-            U1_.mesh(),
-            IOobject::NO_READ,
-            IOobject::NO_WRITE
-        ),
-        U1_.mesh(),
-        dimensionedScalar("zero", dimensionSet(1, -1, -1, 0, 0), 0.0)
-    ),
-    pa_
-    (
-        IOobject
-        (
-            "pa",
-            U1_.time().timeName(),
-            U1_.mesh(),
-            IOobject::NO_READ,
-            IOobject::AUTO_WRITE
-        ),
-        U1_.mesh(),
-        dimensionedScalar("zero", dimensionSet(1, -1, -2, 0, 0), 0.0)
-    ),
-    kappa_
-    (
-        IOobject
-        (
-            "kappa",
-            U1_.time().timeName(),
-            U1_.mesh(),
-            IOobject::NO_READ,
-            IOobject::NO_WRITE
-        ),
-        U1_.mesh(),
-        dimensionedScalar("zero", dimensionSet(1, -1, -1, 0, 0), 0.0)
-    ),
-    gs0_
-    (
-        IOobject
-        (
-            "gs0",
-            U1_.time().timeName(),
-            U1_.mesh(),
-            IOobject::NO_READ,
-            IOobject::NO_WRITE
-        ),
-        U1_.mesh(),
-        dimensionedScalar("zero", dimensionSet(0, 0, 0, 0, 0), 1.0)
-    )
-{}
-
-
-// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
-
-Foam::kineticTheoryModel::~kineticTheoryModel()
-{}
-
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-void Foam::kineticTheoryModel::solve(const volTensorField& gradU1t)
-{
-    if (!kineticTheory_)
-    {
-        return;
-    }
-
-    const scalar sqrtPi = sqrt(constant::mathematical::pi);
-
-    volScalarField da_(phase1_.d());
-
-    surfaceScalarField phi(1.5*phi1_*fvc::interpolate(rho1_*alpha1_));
-
-    volTensorField dU(gradU1t.T());
-    volSymmTensorField D(symm(dU));
-
-    // NB, drag = K*alpha1*alpha2,
-    // (the alpha1 and alpha2 has been extracted from the drag function for
-    // numerical reasons)
-    volScalarField Ur(mag(U1_ - U2_));
-    volScalarField alpha2Prim(alpha1_*(1.0 - alpha1_)*draga_.K(Ur));
-
-    // Calculating the radial distribution function (solid volume fraction is
-    //  limited close to the packing limit, but this needs improvements)
-    //  The solution is higly unstable close to the packing limit.
-    gs0_ = radialModel_->g0
-    (
-        min(max(alpha1_, scalar(1e-6)), alphaMax_ - 0.01),
-        alphaMax_
-    );
-
-    // particle pressure - coefficient in front of Theta (Eq. 3.22, p. 45)
-    volScalarField PsCoeff
-    (
-        granularPressureModel_->granularPressureCoeff
-        (
-            alpha1_,
-            gs0_,
-            rho1_,
-            e_
-        )
-    );
-
-    // 'thermal' conductivity (Table 3.3, p. 49)
-    kappa_ = conductivityModel_->kappa(alpha1_, Theta_, gs0_, rho1_, da_, e_);
-
-    // particle viscosity (Table 3.2, p.47)
-    mu1_ = viscosityModel_->mu1(alpha1_, Theta_, gs0_, rho1_, da_, e_);
-
-    dimensionedScalar Tsmall
-    (
-        "small",
-        dimensionSet(0 , 2 ,-2 ,0 , 0, 0, 0),
-        1.0e-6
-    );
-
-    dimensionedScalar TsmallSqrt = sqrt(Tsmall);
-    volScalarField ThetaSqrt(sqrt(Theta_));
-
-    // dissipation (Eq. 3.24, p.50)
-    volScalarField gammaCoeff
-    (
-        12.0*(1.0 - sqr(e_))*sqr(alpha1_)*rho1_*gs0_*(1.0/da_)*ThetaSqrt/sqrtPi
-    );
-
-    // Eq. 3.25, p. 50 Js = J1 - J2
-    volScalarField J1(3.0*alpha2Prim);
-    volScalarField J2
-    (
-        0.25*sqr(alpha2Prim)*da_*sqr(Ur)
-       /(max(alpha1_, scalar(1e-6))*rho1_*sqrtPi*(ThetaSqrt + TsmallSqrt))
-    );
-
-    // bulk viscosity  p. 45 (Lun et al. 1984).
-    lambda_ = (4.0/3.0)*sqr(alpha1_)*rho1_*da_*gs0_*(1.0+e_)*ThetaSqrt/sqrtPi;
-
-    // stress tensor, Definitions, Table 3.1, p. 43
-    volSymmTensorField tau(2.0*mu1_*D + (lambda_ - (2.0/3.0)*mu1_)*tr(D)*I);
-
-    if (!equilibrium_)
-    {
-        // construct the granular temperature equation (Eq. 3.20, p. 44)
-        // NB. note that there are two typos in Eq. 3.20
-        // no grad infront of Ps
-        // wrong sign infront of laplacian
-        fvScalarMatrix ThetaEqn
-        (
-            fvm::ddt(1.5*alpha1_*rho1_, Theta_)
-          + fvm::div(phi, Theta_, "div(phi,Theta)")
-         ==
-            fvm::SuSp(-((PsCoeff*I) && dU), Theta_)
-          + (tau && dU)
-          + fvm::laplacian(kappa_, Theta_, "laplacian(kappa,Theta)")
-          + fvm::Sp(-gammaCoeff, Theta_)
-          + fvm::Sp(-J1, Theta_)
-          + fvm::Sp(J2/(Theta_ + Tsmall), Theta_)
-        );
-
-        ThetaEqn.relax();
-        ThetaEqn.solve();
-    }
-    else
-    {
-        // equilibrium => dissipation == production
-        // Eq. 4.14, p.82
-        volScalarField K1(2.0*(1.0 + e_)*rho1_*gs0_);
-        volScalarField K3
-        (
-            0.5*da_*rho1_*
-            (
-                (sqrtPi/(3.0*(3.0-e_)))
-               *(1.0 + 0.4*(1.0 + e_)*(3.0*e_ - 1.0)*alpha1_*gs0_)
-               +1.6*alpha1_*gs0_*(1.0 + e_)/sqrtPi
-            )
-        );
-
-        volScalarField K2
-        (
-            4.0*da_*rho1_*(1.0 + e_)*alpha1_*gs0_/(3.0*sqrtPi) - 2.0*K3/3.0
-        );
-
-        volScalarField K4(12.0*(1.0 - sqr(e_))*rho1_*gs0_/(da_*sqrtPi));
-
-        volScalarField trD(tr(D));
-        volScalarField tr2D(sqr(trD));
-        volScalarField trD2(tr(D & D));
-
-        volScalarField t1(K1*alpha1_ + rho1_);
-        volScalarField l1(-t1*trD);
-        volScalarField l2(sqr(t1)*tr2D);
-        volScalarField l3
-        (
-            4.0
-           *K4
-           *max(alpha1_, scalar(1e-6))
-           *(2.0*K3*trD2 + K2*tr2D)
-        );
-
-        Theta_ = sqr((l1 + sqrt(l2 + l3))/(2.0*(alpha1_ + 1.0e-4)*K4));
-    }
-
-    Theta_.max(1.0e-15);
-    Theta_.min(1.0e+3);
-
-    volScalarField pf
-    (
-        frictionalStressModel_->frictionalPressure
-        (
-            alpha1_,
-            alphaMinFriction_,
-            alphaMax_,
-            Fr_,
-            eta_,
-            p_
-        )
-    );
-
-    PsCoeff += pf/(Theta_+Tsmall);
-
-    PsCoeff.min(1.0e+10);
-    PsCoeff.max(-1.0e+10);
-
-    // update particle pressure
-    pa_ = PsCoeff*Theta_;
-
-    // frictional shear stress, Eq. 3.30, p. 52
-    volScalarField muf
-    (
-        frictionalStressModel_->muf
-        (
-            alpha1_,
-            alphaMax_,
-            pf,
-            D,
-            phi_
-        )
-    );
-
-    // add frictional stress
-    mu1_ += muf;
-    mu1_.min(1.0e+2);
-    mu1_.max(0.0);
-
-    Info<< "kinTheory: max(Theta) = " << max(Theta_).value() << endl;
-
-    volScalarField ktn(mu1_/rho1_);
-
-    Info<< "kinTheory: min(nu1) = " << min(ktn).value()
-        << ", max(nu1) = " << max(ktn).value() << endl;
-
-    Info<< "kinTheory: min(pa) = " << min(pa_).value()
-        << ", max(pa) = " << max(pa_).value() << endl;
-}
-
-
-// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H
deleted file mode 100644
index a5861ae12967f45a048475b792b7e9dd5a8fcdfb..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H
+++ /dev/null
@@ -1,196 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 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::kineticTheoryModel
-
-Description
-
-SourceFiles
-    kineticTheoryModel.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef kineticTheoryModel_H
-#define kineticTheoryModel_H
-
-#include "dragModel.H"
-#include "phaseModel.H"
-#include "autoPtr.H"
-#include "viscosityModel.H"
-#include "conductivityModel.H"
-#include "radialModel.H"
-#include "granularPressureModel.H"
-#include "frictionalStressModel.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-/*---------------------------------------------------------------------------*\
-                           Class kineticTheoryModel Declaration
-\*---------------------------------------------------------------------------*/
-
-class kineticTheoryModel
-{
-    // Private data
-
-        const phaseModel& phase1_;
-        const volVectorField& U1_;
-        const volVectorField& U2_;
-        const volScalarField& alpha1_;
-        const surfaceScalarField& phi1_;
-
-        const dragModel& draga_;
-
-        const volScalarField& rho1_;
-
-        //- dictionary holding the modeling info
-        IOdictionary kineticTheoryProperties_;
-
-        //- use kinetic theory or not.
-        Switch kineticTheory_;
-
-        //- use generation == dissipation
-        Switch equilibrium_;
-
-        autoPtr<kineticTheoryModels::viscosityModel> viscosityModel_;
-
-        autoPtr<kineticTheoryModels::conductivityModel> conductivityModel_;
-
-        autoPtr<kineticTheoryModels::radialModel> radialModel_;
-
-        autoPtr<kineticTheoryModels::granularPressureModel>
-            granularPressureModel_;
-
-        autoPtr<kineticTheoryModels::frictionalStressModel>
-            frictionalStressModel_;
-
-        //- coefficient of restitution
-        const dimensionedScalar e_;
-
-        //- maximum packing
-        const dimensionedScalar alphaMax_;
-
-        //- min value for which the frictional stresses are zero
-        const dimensionedScalar alphaMinFriction_;
-
-        //- material constant for frictional normal stress
-        const dimensionedScalar Fr_;
-
-        //- material constant for frictional normal stress
-        const dimensionedScalar eta_;
-
-        //- material constant for frictional normal stress
-        const dimensionedScalar p_;
-
-        //- angle of internal friction
-        const dimensionedScalar phi_;
-
-        //- The granular energy/temperature
-        volScalarField Theta_;
-
-        //- The granular viscosity
-        volScalarField mu1_;
-
-        //- The granular bulk viscosity
-        volScalarField lambda_;
-
-        //- The granular pressure
-        volScalarField pa_;
-
-        //- The granular temperature conductivity
-        volScalarField kappa_;
-
-        //- The radial distribution function
-        volScalarField gs0_;
-
-
-    // Private Member Functions
-
-        //- Disallow default bitwise copy construct
-        kineticTheoryModel(const kineticTheoryModel&);
-
-        //- Disallow default bitwise assignment
-        void operator=(const kineticTheoryModel&);
-
-
-public:
-
-    // Constructors
-
-        //- Construct from components
-        kineticTheoryModel
-        (
-            const phaseModel& phase1,
-            const volVectorField& U2,
-            const volScalarField& alpha1,
-            const dragModel& draga
-        );
-
-
-    //- Destructor
-    virtual ~kineticTheoryModel();
-
-
-    // Member Functions
-
-        void solve(const volTensorField& gradU1t);
-
-        bool on() const
-        {
-            return kineticTheory_;
-        }
-
-        const volScalarField& mu1() const
-        {
-            return mu1_;
-        }
-
-        const volScalarField& pa() const
-        {
-            return pa_;
-        }
-
-        const volScalarField& lambda() const
-        {
-            return lambda_;
-        }
-
-        const volScalarField& kappa() const
-        {
-            return kappa_;
-        }
-};
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/pEqn.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/pEqn.H
index 756a231fc2f589ad5bb35bc021d44737260d38b5..e9211def7f4054b279e3cf16f5c4f1bd938f0dc3 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/pEqn.H
@@ -3,15 +3,23 @@
     surfaceScalarField alpha2f(scalar(1) - alpha1f);
 
     rAU1 = 1.0/U1Eqn.A();
-    volScalarField rAU2(1.0/U2Eqn.A());
+    rAU2 = 1.0/U2Eqn.A();
 
     surfaceScalarField rAlphaAU1f(fvc::interpolate(alpha1*rAU1));
     surfaceScalarField rAlphaAU2f(fvc::interpolate(alpha2*rAU2));
 
-    volVectorField HbyA1("HbyA" + phase1Name, U1);
+    volVectorField HbyA1
+    (
+        IOobject::groupName("HbyA", phase1.name()),
+        U1
+    );
     HbyA1 = rAU1*U1Eqn.H();
 
-    volVectorField HbyA2("HbyA" + phase2Name, U2);
+    volVectorField HbyA2
+    (
+        IOobject::groupName("HbyA", phase2.name()),
+        U2
+    );
     HbyA2 = rAU2*U2Eqn.H();
 
     mrfZones.absoluteFlux(phi1.oldTime());
@@ -19,30 +27,32 @@
     mrfZones.absoluteFlux(phi2.oldTime());
     mrfZones.absoluteFlux(phi2);
 
-    surfaceScalarField ppDrag("ppDrag", 0.0*phi1);
-
-    if (g0.value() > 0.0)
-    {
-        ppDrag -= ppMagf*fvc::snGrad(alpha1)*mesh.magSf();
-    }
+    // Phase-1 pressure flux (e.g. due to particle-particle pressure)
+    surfaceScalarField phiP1
+    (
+        "phiP1",
+        fvc::interpolate((1.0/rho1)*rAU1*turbulence1().pPrime())
+       *fvc::snGrad(alpha1)*mesh.magSf()
+    );
 
-    if (kineticTheory.on())
-    {
-        ppDrag -=
-            fvc::interpolate(1.0/rho1)*rAlphaAU1f
-           *fvc::snGrad(kineticTheory.pa())*mesh.magSf();
-    }
+    // Phase-2 pressure flux (e.g. due to particle-particle pressure)
+    surfaceScalarField phiP2
+    (
+        "phiP2",
+        fvc::interpolate((1.0/rho2)*rAU2*turbulence2().pPrime())
+       *fvc::snGrad(alpha2)*mesh.magSf()
+    );
 
     surfaceScalarField phiHbyA1
     (
-        "phiHbyA" + phase1Name,
+        IOobject::groupName("phiHbyA", phase1.name()),
         (fvc::interpolate(HbyA1) & mesh.Sf())
       + fvc::ddtPhiCorr(rAU1, alpha1, U1, phi1)
     );
 
     surfaceScalarField phiHbyA2
     (
-        "phiHbyA" + phase2Name,
+        IOobject::groupName("phiHbyA", phase2.name()),
         (fvc::interpolate(HbyA2) & mesh.Sf())
       + fvc::ddtPhiCorr(rAU2, alpha2, U2, phi2)
     );
@@ -53,7 +63,7 @@
     phiHbyA1 +=
     (
         fvc::interpolate((1.0/rho1)*rAU1*dragCoeff)*phi2
-      + ppDrag
+      - phiP1
       + rAlphaAU1f*(g & mesh.Sf())
     );
     mrfZones.relativeFlux(phiHbyA1);
@@ -61,6 +71,7 @@
     phiHbyA2 +=
     (
         fvc::interpolate((1.0/rho2)*rAU2*dragCoeff)*phi1
+      - phiP2
       + rAlphaAU2f*(g & mesh.Sf())
     );
     mrfZones.relativeFlux(phiHbyA2);
@@ -92,12 +103,12 @@
     {
         surfaceScalarField phid1
         (
-            "phid" + phase1Name,
+            IOobject::groupName("phid", phase1.name()),
             fvc::interpolate(psi1)*phi1
         );
         surfaceScalarField phid2
         (
-            "phid" + phase2Name,
+            IOobject::groupName("phid", phase2.name()),
             fvc::interpolate(psi2)*phi2
         );
 
@@ -173,29 +184,30 @@
             mSfGradp = pEqnIncomp.flux()/Dp;
 
             U1 = HbyA1
-               + fvc::reconstruct
-                 (
-                     ppDrag
-                   + rAlphaAU1f
-                    *(
-                         (g & mesh.Sf())
-                       + mSfGradp/fvc::interpolate(rho1)
-                     )
-                 );
+              + fvc::reconstruct
+                (
+                    rAlphaAU1f
+                   *(
+                        (g & mesh.Sf())
+                      + mSfGradp/fvc::interpolate(rho1)
+                    )
+                  - phiP1
+                );
             U1.correctBoundaryConditions();
 
             U2 = HbyA2
-               + fvc::reconstruct
-                 (
-                     rAlphaAU2f
-                    *(
+              + fvc::reconstruct
+                (
+                    rAlphaAU2f
+                   *(
                         (g & mesh.Sf())
                       + mSfGradp/fvc::interpolate(rho2)
                     )
-                 );
+                  - phiP2
+                );
             U2.correctBoundaryConditions();
 
-            U = alpha1*U1 + alpha2*U2;
+            U = fluid.U();
         }
     }
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/packingLimiter.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/packingLimiter.H
deleted file mode 100644
index 249f1035a19fffe95efe6b378c96bfb275858a2d..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/packingLimiter.H
+++ /dev/null
@@ -1,36 +0,0 @@
-    if (packingLimiter)
-    {
-        // Calculating exceeding volume fractions
-        volScalarField alpha1Ex(max(alpha1 - alphaMax, scalar(0)));
-
-        // Finding neighbouring cells of the whole domain
-        labelListList neighbour = mesh.cellCells();
-        scalarField cellVolumes(mesh.cellVolumes());
-
-        forAll (alpha1Ex, celli)
-        {
-            // Finding the labels of the neighbouring cells
-            labelList neighbourCell = neighbour[celli];
-
-            // Initializing neighbouring cells contribution
-            scalar neighboursEx = 0.0;
-
-            forAll (neighbourCell, cellj)
-            {
-                labelList neighboursNeighbour = neighbour[neighbourCell[cellj]];
-                scalar neighboursNeighbourCellVolumes = 0.0;
-
-                forAll (neighboursNeighbour, cellk)
-                {
-                    neighboursNeighbourCellVolumes +=
-                        cellVolumes[neighboursNeighbour[cellk]];
-                }
-
-                neighboursEx +=
-                    alpha1Ex[neighbourCell[cellj]]*cellVolumes[celli]
-                   /neighboursNeighbourCellVolumes;
-            }
-
-            alpha1[celli] += neighboursEx - alpha1Ex[celli];
-        }
-    }
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/Make/files b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..96f9c63e4a872a15dc04d48ed0c5be265b410888
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/Make/files
@@ -0,0 +1,35 @@
+phaseIncompressibleTurbulenceModels.C
+phasePressureModel/phasePressureModel.C
+
+kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C
+
+kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C
+kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C
+kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C
+kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C
+kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
+kineticTheoryModels/viscosityModel/none/noneViscosity.C
+
+kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C
+kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C
+kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C
+kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C
+kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
+
+kineticTheoryModels/radialModel/radialModel/radialModel.C
+kineticTheoryModels/radialModel/radialModel/newRadialModel.C
+kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C
+kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C
+kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C
+
+kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C
+kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C
+kineticTheoryModels/granularPressureModel/Lun/LunPressure.C
+kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C
+
+kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C
+kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C
+kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
+kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
+
+LIB = $(FOAM_LIBBIN)/libphaseIncompressibleTurbulenceModels
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/Make/options b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..8608cd8610cde43bf90a3aca9da2068137d553f0
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/Make/options
@@ -0,0 +1,10 @@
+EXE_INC = \
+    -I$(LIB_SRC)/foam/lnInclude \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+    -I$(LIB_SRC)/transportModels/incompressible/transportModel \
+    -I$(LIB_SRC)/TurbulenceModels/turbulenceModel/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude \
+    -I../twoPhaseSystem/lnInclude \
+    -I../interfacialModels/lnInclude
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C
similarity index 98%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C
index ced65bf823635d5c73f36a3ea44dc9ba35ef8cfc..8f9289293eb9aefc4061f56c54f0fdc7c233559f 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.C
@@ -80,7 +80,7 @@ Foam::kineticTheoryModels::conductivityModels::Gidaspow::kappa
 {
     const scalar sqrtPi = sqrt(constant::mathematical::pi);
 
-    return rho1*da*sqrt(Theta)*
+    return da*sqrt(Theta)*
     (
         2.0*sqr(alpha1)*g0*(1.0 + e)/sqrtPi
       + (9.0/8.0)*sqrtPi*g0*0.5*(1.0 + e)*sqr(alpha1)
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.H
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Gidaspow/GidaspowConductivity.H
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
similarity index 90%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
index b103a1afe22a86ad13ce37f9b0dd880d97f0c06c..2d2e1f65512dcce562369d1abffcbe4f3f41a389 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.C
@@ -56,8 +56,8 @@ Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::HrenyaSinclair
 )
 :
     conductivityModel(dict),
-    coeffsDict_(dict.subDict(typeName + "Coeffs")),
-    L_(coeffsDict_.lookup("L"))
+    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    L_("L", dimensionSet(0, 1, 0, 0, 0), coeffDict_.lookup("L"))
 {}
 
 
@@ -88,7 +88,7 @@ Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::kappa
         scalar(1) + da/(6.0*sqrt(2.0)*(alpha1 + scalar(1.0e-5)))/L_
     );
 
-    return rho1*da*sqrt(Theta)*
+    return da*sqrt(Theta)*
     (
         2.0*sqr(alpha1)*g0*(1.0 + e)/sqrtPi
       + (9.0/8.0)*sqrtPi*0.25*sqr(1.0 + e)*(2.0*e - 1.0)*sqr(alpha1)
@@ -101,4 +101,14 @@ Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::kappa
 }
 
 
+bool Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::read()
+{
+    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+
+    L_.readIfPresent(coeffDict_);
+
+    return true;
+}
+
+
 // ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.H
similarity index 97%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.H
index e2ab8b8cca4a3fc6b417c63cf4f6bfba49a00953..0280a2359655a0d953e5d4d267ef86fb3c7429d3 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/HrenyaSinclair/HrenyaSinclairConductivity.H
@@ -53,12 +53,12 @@ class HrenyaSinclair
 :
     public conductivityModel
 {
-
-        dictionary coeffsDict_;
+        dictionary coeffDict_;
 
         //- characteristic length of geometry
         dimensionedScalar L_;
 
+
 public:
 
         //- Runtime type information
@@ -86,6 +86,8 @@ public:
             const volScalarField& da,
             const dimensionedScalar& e
         ) const;
+
+        virtual bool read();
 };
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C
similarity index 98%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C
index a50c6ceec4107c8e8ba735d6833ffbefeeabef24..d7dac43706749b971d5d9ef25a3aa99889c60624 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.C
@@ -80,7 +80,7 @@ Foam::kineticTheoryModels::conductivityModels::Syamlal::kappa
 {
     const scalar sqrtPi = sqrt(constant::mathematical::pi);
 
-    return rho1*da*sqrt(Theta)*
+    return da*sqrt(Theta)*
     (
         2.0*sqr(alpha1)*g0*(1.0 + e)/sqrtPi
       + (9.0/8.0)*sqrtPi*g0*0.25*sqr(1.0 + e)*(2.0*e - 1.0)*sqr(alpha1)
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.H
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/Syamlal/SyamlalConductivity.H
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H
similarity index 97%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H
index 7981a2b141823699b832815c3577805f54a6d07c..f4a8a2566e6858259fab03d4fba8f7d8127a58f0 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/conductivityModel.H
@@ -113,6 +113,11 @@ public:
             const volScalarField& da,
             const dimensionedScalar& e
         ) const = 0;
+
+        virtual bool read()
+        {
+            return true;
+        }
 };
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/conductivityModel/conductivityModel/newConductivityModel.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
similarity index 68%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
index eb7d0292949bfcd3bc6ee1013f6ca9ef83719c12..b05277dbb191d3aa9b627842bc501aea0df7ce85 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.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) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,6 +25,7 @@ License
 
 #include "JohnsonJacksonFrictionalStress.H"
 #include "addToRunTimeSelectionTable.H"
+#include "mathematicalConstants.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -55,8 +56,15 @@ JohnsonJackson
     const dictionary& dict
 )
 :
-    frictionalStressModel(dict)
-{}
+    frictionalStressModel(dict),
+    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    Fr_("Fr", dimensionSet(1, -1, -2, 0, 0), coeffDict_.lookup("Fr")),
+    eta_("eta", dimless, coeffDict_.lookup("eta")),
+    p_("p", dimless, coeffDict_.lookup("p")),
+    phi_("phi", dimless, coeffDict_.lookup("phi"))
+{
+    phi_ *= constant::mathematical::pi/180.0;
+}
 
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
@@ -74,16 +82,13 @@ frictionalPressure
 (
     const volScalarField& alpha1,
     const dimensionedScalar& alphaMinFriction,
-    const dimensionedScalar& alphaMax,
-    const dimensionedScalar& Fr,
-    const dimensionedScalar& eta,
-    const dimensionedScalar& p
+    const dimensionedScalar& alphaMax
 ) const
 {
 
     return
-        Fr*pow(max(alpha1 - alphaMinFriction, scalar(0)), eta)
-       /pow(max(alphaMax - alpha1, scalar(5.0e-2)), p);
+        Fr_*pow(max(alpha1 - alphaMinFriction, scalar(0)), eta_)
+       /pow(max(alphaMax - alpha1, scalar(5.0e-2)), p_);
 }
 
 
@@ -93,32 +98,41 @@ frictionalPressurePrime
 (
     const volScalarField& alpha1,
     const dimensionedScalar& alphaMinFriction,
-    const dimensionedScalar& alphaMax,
-    const dimensionedScalar& Fr,
-    const dimensionedScalar& eta,
-    const dimensionedScalar& p
+    const dimensionedScalar& alphaMax
 ) const
 {
-    return Fr*
+    return Fr_*
     (
-        eta*pow(max(alpha1 - alphaMinFriction, scalar(0)), eta - 1.0)
+        eta_*pow(max(alpha1 - alphaMinFriction, scalar(0)), eta_ - 1.0)
        *(alphaMax-alpha1)
-      + p*pow(max(alpha1 - alphaMinFriction, scalar(0)), eta)
-    )/pow(max(alphaMax - alpha1, scalar(5.0e-2)), p + 1.0);
+      + p_*pow(max(alpha1 - alphaMinFriction, scalar(0)), eta_)
+    )/pow(max(alphaMax - alpha1, scalar(5.0e-2)), p_ + 1.0);
 }
 
 
 Foam::tmp<Foam::volScalarField>
-Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::muf
+Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::nu
 (
     const volScalarField& alpha1,
     const dimensionedScalar& alphaMax,
     const volScalarField& pf,
-    const volSymmTensorField& D,
-    const dimensionedScalar& phi
+    const volSymmTensorField& D
 ) const
 {
-    return dimensionedScalar("0.5", dimTime, 0.5)*pf*sin(phi);
+    return dimensionedScalar("0.5", dimTime, 0.5)*pf*sin(phi_);
+}
+
+
+bool Foam::kineticTheoryModels::frictionalStressModels::JohnsonJackson::read()
+{
+    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+
+    Fr_.readIfPresent(coeffDict_);
+    eta_.readIfPresent(coeffDict_);
+    p_.readIfPresent(coeffDict_);
+    phi_.readIfPresent(coeffDict_);
+
+    return true;
 }
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H
similarity index 81%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H
index 985338b741b953f8c846cf7f9b92a29e3689fe5a..2b59c0a043f0266a8483481b9b72b739a8a4a587 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/JohnsonJackson/JohnsonJacksonFrictionalStress.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-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,6 +53,22 @@ class JohnsonJackson
 :
     public frictionalStressModel
 {
+    // Private data
+
+        dictionary coeffDict_;
+
+        //- Material constant for frictional normal stress
+        dimensionedScalar Fr_;
+
+        //- Material constant for frictional normal stress
+        dimensionedScalar eta_;
+
+        //- Material constant for frictional normal stress
+        dimensionedScalar p_;
+
+        //- Angle of internal friction
+        dimensionedScalar phi_;
+
 
 public:
 
@@ -76,30 +92,25 @@ public:
         (
             const volScalarField& alpha1,
             const dimensionedScalar& alphaMinFriction,
-            const dimensionedScalar& alphaMax,
-            const dimensionedScalar& Fr,
-            const dimensionedScalar& eta,
-            const dimensionedScalar& p
+            const dimensionedScalar& alphaMax
         ) const;
 
         virtual tmp<volScalarField> frictionalPressurePrime
         (
             const volScalarField& alpha1,
             const dimensionedScalar& alphaMinFriction,
-            const dimensionedScalar& alphaMax,
-            const dimensionedScalar& Fr,
-            const dimensionedScalar& eta,
-            const dimensionedScalar& p
+            const dimensionedScalar& alphaMax
         ) const;
 
-        virtual tmp<volScalarField> muf
+        virtual tmp<volScalarField> nu
         (
             const volScalarField& alpha1,
             const dimensionedScalar& alphaMax,
             const volScalarField& pf,
-            const volSymmTensorField& D,
-            const dimensionedScalar& phi
+            const volSymmTensorField& D
         ) const;
+
+        virtual bool read();
 };
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
similarity index 76%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
index ec6f55ab65d74039b183f233550c9ef920f8aaa7..537a76fecd785083b965f8aa7854cea58258edd5 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.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) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,7 +54,9 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::Schaeffer
     const dictionary& dict
 )
 :
-    frictionalStressModel(dict)
+    frictionalStressModel(dict),
+    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    phi_("phi", dimless, coeffDict_.lookup("phi"))
 {}
 
 
@@ -72,10 +74,7 @@ frictionalPressure
 (
     const volScalarField& alpha1,
     const dimensionedScalar& alphaMinFriction,
-    const dimensionedScalar& alphaMax,
-    const dimensionedScalar& Fr,
-    const dimensionedScalar& eta,
-    const dimensionedScalar& p
+    const dimensionedScalar& alphaMax
 ) const
 {
     return
@@ -90,10 +89,7 @@ frictionalPressurePrime
 (
     const volScalarField& alpha1,
     const dimensionedScalar& alphaMinFriction,
-    const dimensionedScalar& alphaMax,
-    const dimensionedScalar& Fr,
-    const dimensionedScalar& eta,
-    const dimensionedScalar& p
+    const dimensionedScalar& alphaMax
 ) const
 {
     return
@@ -103,42 +99,44 @@ frictionalPressurePrime
 
 
 Foam::tmp<Foam::volScalarField>
-Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::muf
+Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::nu
 (
     const volScalarField& alpha1,
     const dimensionedScalar& alphaMax,
     const volScalarField& pf,
-    const volSymmTensorField& D,
-    const dimensionedScalar& phi
+    const volSymmTensorField& D
 ) const
 {
     const scalar I2Dsmall = 1.0e-15;
 
-    // Creating muf assuming it should be 0 on the boundary which may not be
+    // Creating nu assuming it should be 0 on the boundary which may not be
     // true
-    tmp<volScalarField> tmuf
+    tmp<volScalarField> tnu
     (
         new volScalarField
         (
             IOobject
             (
-                "muf",
+                "Schaeffer:nu",
                 alpha1.mesh().time().timeName(),
-                alpha1.mesh()
+                alpha1.mesh(),
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
             ),
             alpha1.mesh(),
-            dimensionedScalar("muf", dimensionSet(1, -1, -1, 0, 0), 0.0)
+            dimensionedScalar("nu", dimensionSet(0, 2, -1, 0, 0), 0.0)
         )
     );
 
-    volScalarField& muff = tmuf();
+    volScalarField& nuf = tnu();
 
     forAll (D, celli)
     {
         if (alpha1[celli] > alphaMax.value() - 5e-2)
         {
-            muff[celli] =
-                0.5*pf[celli]*sin(phi.value())
+            nuf[celli] =
+                0.5*pf[celli]*sin(phi_.value())
                /(
                     sqrt(1.0/6.0*(sqr(D[celli].xx() - D[celli].yy())
                   + sqr(D[celli].yy() - D[celli].zz())
@@ -149,9 +147,20 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::muf
         }
     }
 
-    muff.correctBoundaryConditions();
+    // Correct coupled BCs
+    nuf.correctBoundaryConditions();
+
+    return tnu;
+}
+
+
+bool Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::read()
+{
+    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+
+    phi_.readIfPresent(coeffDict_);
 
-    return tmuf;
+    return true;
 }
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H
similarity index 84%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H
index d99da3a32d1ab44772710f9d1f0da4923ab4e47f..1de4d5042ff6c779966b47207580b7283dd06976 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.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-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -53,6 +53,13 @@ class Schaeffer
 :
     public frictionalStressModel
 {
+    // Private data
+
+        dictionary coeffDict_;
+
+        //- Angle of internal friction
+        dimensionedScalar phi_;
+
 
 public:
 
@@ -76,30 +83,25 @@ public:
         (
             const volScalarField& alpha1,
             const dimensionedScalar& alphaMinFriction,
-            const dimensionedScalar& alphaMax,
-            const dimensionedScalar& Fr,
-            const dimensionedScalar& eta,
-            const dimensionedScalar& p
+            const dimensionedScalar& alphaMax
         ) const;
 
         virtual tmp<volScalarField> frictionalPressurePrime
         (
             const volScalarField& alpha1,
             const dimensionedScalar& alphaMinFriction,
-            const dimensionedScalar& alphaMax,
-            const dimensionedScalar& Fr,
-            const dimensionedScalar& n,
-            const dimensionedScalar& p
+            const dimensionedScalar& alphaMax
         ) const;
 
-        virtual tmp<volScalarField> muf
+        virtual tmp<volScalarField> nu
         (
             const volScalarField& alpha1,
             const dimensionedScalar& alphaMax,
             const volScalarField& pf,
-            const volSymmTensorField& D,
-            const dimensionedScalar& phi
+            const volSymmTensorField& D
         ) const;
+
+        virtual bool read();
 };
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C
similarity index 96%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C
index 3b59e3615f86050567ecea083641bcd4f5f30541..02e1dc702fbb0d7847973064b45e20461952410f 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.C
@@ -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-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H
similarity index 87%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H
index 913b2ad105caab94c7ddcbe0d05ce1b6dc131154..0da14115cf84c4889a1ef2197c8155a16109ce63 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/frictionalStressModel.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-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -63,6 +63,7 @@ protected:
 
     // Protected data
 
+        //- Reference to higher-level dictionary for re-read
         const dictionary& dict_;
 
 
@@ -108,30 +109,25 @@ public:
         (
             const volScalarField& alpha1,
             const dimensionedScalar& alphaMinFriction,
-            const dimensionedScalar& alphaMax,
-            const dimensionedScalar& Fr,
-            const dimensionedScalar& eta,
-            const dimensionedScalar& p
+            const dimensionedScalar& alphaMax
         ) const = 0;
 
         virtual tmp<volScalarField> frictionalPressurePrime
         (
             const volScalarField& alpha1f,
             const dimensionedScalar& alphaMinFriction,
-            const dimensionedScalar& alphaMax,
-            const dimensionedScalar& Fr,
-            const dimensionedScalar& eta,
-            const dimensionedScalar& p
+            const dimensionedScalar& alphaMax
         ) const = 0;
 
-        virtual tmp<volScalarField> muf
+        virtual tmp<volScalarField> nu
         (
             const volScalarField& alpha1,
             const dimensionedScalar& alphaMax,
             const volScalarField& pf,
-            const volSymmTensorField& D,
-            const dimensionedScalar& phi
+            const volSymmTensorField& D
         ) const = 0;
+
+        virtual bool read() = 0;
 };
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/frictionalStressModel/frictionalStressModel/newFrictionalStressModel.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/Lun/LunPressure.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/Lun/LunPressure.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/Lun/LunPressure.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.H
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/Lun/LunPressure.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/Lun/LunPressure.H
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.H
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/SyamlalRogersOBrien/SyamlalRogersOBrienPressure.H
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H
similarity index 98%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H
index df3ef7e8c155f99fedd67d1495f552540db64514..d30373ac2cc35efa91a074b4739f1f8d56c7ba66 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/granularPressureModel.H
@@ -122,6 +122,11 @@ public:
             const volScalarField& rho1,
             const dimensionedScalar& e
         ) const = 0;
+
+        virtual bool read()
+        {
+            return true;
+        }
 };
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/granularPressureModel/granularPressureModel/newGranularPressureModel.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C
new file mode 100644
index 0000000000000000000000000000000000000000..c143dba2d1f5fd3ab1cb43abf908bb83d4836f26
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C
@@ -0,0 +1,545 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011-2013 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 "kineticTheoryModel.H"
+#include "surfaceInterpolate.H"
+#include "mathematicalConstants.H"
+#include "twoPhaseSystem.H"
+#include "fvcDiv.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::kineticTheoryModel::kineticTheoryModel
+(
+    const volScalarField& alpha,
+    const geometricOneField& rho,
+    const volVectorField& U,
+    const surfaceScalarField& alphaPhi,
+    const surfaceScalarField& phi,
+    const transportModel& phase,
+    const word& propertiesName,
+    const word& type
+)
+:
+    RASModels::eddyViscosity<PhaseIncompressibleTurbulenceModel<phaseModel> >
+    (
+        type,
+        alpha,
+        rho,
+        U,
+        alphaPhi,
+        phi,
+        phase,
+        propertiesName
+    ),
+
+    phase_(phase),
+
+    draga_(phase.fluid().drag1()),
+
+    viscosityModel_
+    (
+        kineticTheoryModels::viscosityModel::New
+        (
+            this->coeffDict_
+        )
+    ),
+    conductivityModel_
+    (
+        kineticTheoryModels::conductivityModel::New
+        (
+            this->coeffDict_
+        )
+    ),
+    radialModel_
+    (
+        kineticTheoryModels::radialModel::New
+        (
+            this->coeffDict_
+        )
+    ),
+    granularPressureModel_
+    (
+        kineticTheoryModels::granularPressureModel::New
+        (
+            this->coeffDict_
+        )
+    ),
+    frictionalStressModel_
+    (
+        kineticTheoryModels::frictionalStressModel::New
+        (
+            this->coeffDict_
+        )
+    ),
+
+    equilibrium_(this->coeffDict_.lookup("equilibrium")),
+    e_("e", dimless, this->coeffDict_.lookup("e")),
+    alphaMax_("alphaMax", dimless, this->coeffDict_.lookup("alphaMax")),
+    alphaMinFriction_
+    (
+        "alphaMinFriction",
+        dimless,
+        this->coeffDict_.lookup("alphaMinFriction")
+    ),
+
+    Theta_
+    (
+        IOobject
+        (
+            IOobject::groupName("Theta", phase.name()),
+            U.time().timeName(),
+            U.mesh(),
+            IOobject::MUST_READ,
+            IOobject::AUTO_WRITE
+        ),
+        U.mesh()
+    ),
+
+    lambda_
+    (
+        IOobject
+        (
+            IOobject::groupName("lambda", phase.name()),
+            U.time().timeName(),
+            U.mesh(),
+            IOobject::NO_READ,
+            IOobject::NO_WRITE
+        ),
+        U.mesh(),
+        dimensionedScalar("zero", dimensionSet(0, 2, -1, 0, 0), 0.0)
+    )
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::kineticTheoryModel::~kineticTheoryModel()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::kineticTheoryModel::correct()
+{
+    // Local references
+    volScalarField alpha(max(this->alpha_, 0.0));
+    const volScalarField& rho = phase_.rho();
+    const surfaceScalarField& alphaPhi = this->alphaPhi_;
+    const volVectorField& U = this->U_;
+    const volVectorField& Uc_ = phase_.fluid().otherPhase(phase_).U();
+
+    const scalar sqrtPi = sqrt(constant::mathematical::pi);
+    dimensionedScalar ThetaSmall("ThetaSmall", Theta_.dimensions(), 1.0e-6);
+    dimensionedScalar ThetaSmallSqrt(sqrt(ThetaSmall));
+
+    tmp<volScalarField> tda(phase_.d());
+    const volScalarField& da = tda();
+
+    tmp<volTensorField> tgradU(fvc::grad(this->U_));
+    const volTensorField& gradU(tgradU());
+    volSymmTensorField D(symm(gradU));
+
+    // Calculating the radial distribution function
+    volScalarField gs0(radialModel_->g0(alpha, alphaMinFriction_, alphaMax_));
+
+    if (!equilibrium_)
+    {
+        // particle viscosity (Table 3.2, p.47)
+        nut_ = viscosityModel_->nu(alpha, Theta_, gs0, rho, da, e_);
+
+        volScalarField ThetaSqrt(sqrt(Theta_));
+
+        // Bulk viscosity  p. 45 (Lun et al. 1984).
+        lambda_ = (4.0/3.0)*sqr(alpha)*da*gs0*(1.0 + e_)*ThetaSqrt/sqrtPi;
+
+        // Stress tensor, Definitions, Table 3.1, p. 43
+        volSymmTensorField tau(2.0*nut_*D + (lambda_ - (2.0/3.0)*nut_)*tr(D)*I);
+
+        // Dissipation (Eq. 3.24, p.50)
+        volScalarField gammaCoeff
+        (
+            12.0*(1.0 - sqr(e_))
+           *max(sqr(alpha), phase_.fluid().residualPhaseFraction())
+           *gs0*(1.0/da)*ThetaSqrt/sqrtPi
+        );
+
+        // NB, drag = K*alpha*alpha2,
+        // (the alpha and alpha2 has been extracted from the drag function for
+        // numerical reasons)
+        volScalarField magUr(mag(U - Uc_));
+
+        volScalarField alpha2Prim
+        (
+            max
+            (
+                alpha*(1.0 - alpha),
+                phase_.fluid().residualPhaseFraction()
+            )*draga_.K(magUr + phase_.fluid().residualSlip())/rho
+        );
+
+        // Eq. 3.25, p. 50 Js = J1 - J2
+        volScalarField J1(3.0*alpha2Prim);
+        volScalarField J2
+        (
+            0.25*sqr(alpha2Prim)*da*sqr(magUr)
+           /(
+               max(alpha, phase_.fluid().residualPhaseFraction())
+              *sqrtPi*(ThetaSqrt + ThetaSmallSqrt)
+            )
+        );
+
+        // particle pressure - coefficient in front of Theta (Eq. 3.22, p. 45)
+        volScalarField PsCoeff
+        (
+            granularPressureModel_->granularPressureCoeff
+            (
+                alpha,
+                gs0,
+                rho,
+                e_
+            )/rho
+        );
+
+        // 'thermal' conductivity (Table 3.3, p. 49)
+        volScalarField kappa
+        (
+            conductivityModel_->kappa(alpha, Theta_, gs0, rho, da, e_)
+        );
+
+        // Construct the granular temperature equation (Eq. 3.20, p. 44)
+        // NB. note that there are two typos in Eq. 3.20:
+        //     Ps should be without grad
+        //     the laplacian has the wrong sign
+        fvScalarMatrix ThetaEqn
+        (
+            1.5*
+            (
+                fvm::ddt(alpha, Theta_)
+              + fvm::div(alphaPhi, Theta_)
+              - fvc::Sp(fvc::ddt(alpha) + fvc::div(alphaPhi), Theta_)
+            )
+          - fvm::laplacian(kappa, Theta_, "laplacian(kappa, Theta)")
+         ==
+            fvm::SuSp(-((PsCoeff*I) && gradU), Theta_)
+          + (tau && gradU)
+          + fvm::Sp(-gammaCoeff, Theta_)
+          + fvm::Sp(-J1, Theta_)
+          + fvm::Sp(J2/(Theta_ + ThetaSmall), Theta_)
+        );
+
+        ThetaEqn.relax();
+        ThetaEqn.solve();
+    }
+    else
+    {
+        // Equilibrium => dissipation == production
+        // Eq. 4.14, p.82
+        volScalarField K1(2.0*(1.0 + e_)*rho*gs0);
+        volScalarField K3
+        (
+            0.5*da*rho*
+            (
+                (sqrtPi/(3.0*(3.0-e_)))
+               *(1.0 + 0.4*(1.0 + e_)*(3.0*e_ - 1.0)*alpha*gs0)
+               +1.6*alpha*gs0*(1.0 + e_)/sqrtPi
+            )
+        );
+
+        volScalarField K2
+        (
+            4.0*da*rho*(1.0 + e_)*alpha*gs0/(3.0*sqrtPi) - 2.0*K3/3.0
+        );
+
+        volScalarField K4(12.0*(1.0 - sqr(e_))*rho*gs0/(da*sqrtPi));
+
+        volScalarField trD
+        (
+            alpha/(alpha + phase_.fluid().residualPhaseFraction())
+           *fvc::div(this->phi_)
+        );
+        volScalarField tr2D(sqr(trD));
+        volScalarField trD2(tr(D & D));
+
+        volScalarField t1(K1*alpha + rho);
+        volScalarField l1(-t1*trD);
+        volScalarField l2(sqr(t1)*tr2D);
+        volScalarField l3
+        (
+            4.0
+           *K4
+           *alpha
+           *(2.0*K3*trD2 + K2*tr2D)
+        );
+
+        Theta_ = sqr
+        (
+            (l1 + sqrt(l2 + l3))
+           /(2.0*max(alpha, phase_.fluid().residualPhaseFraction())*K4)
+        );
+    }
+
+    Theta_.max(0);
+    Theta_.min(100);
+
+    {
+        // particle viscosity (Table 3.2, p.47)
+        nut_ = viscosityModel_->nu(alpha, Theta_, gs0, rho, da, e_);
+
+        volScalarField ThetaSqrt(sqrt(Theta_));
+
+        // Bulk viscosity  p. 45 (Lun et al. 1984).
+        lambda_ = (4.0/3.0)*sqr(alpha)*da*gs0*(1.0 + e_)*ThetaSqrt/sqrtPi;
+
+        // Frictional pressure
+        volScalarField pf
+        (
+            frictionalStressModel_->frictionalPressure
+            (
+                alpha,
+                alphaMinFriction_,
+                alphaMax_
+            )
+        );
+
+        // Add frictional shear viscosity, Eq. 3.30, p. 52
+        nut_ += frictionalStressModel_->nu
+        (
+            alpha,
+            alphaMax_,
+            pf/rho,
+            D
+        );
+
+        // Limit viscosity
+        nut_.min(100);
+    }
+
+    if (debug)
+    {
+        Info<< typeName << ':' << nl
+            << "    max(Theta) = " << max(Theta_).value() << nl
+            << "    max(nut) = " << max(nut_).value() << endl;
+    }
+}
+
+
+/*
+Foam::tmp<Foam::volScalarField> Foam::kineticTheoryModel::pp() const
+{
+
+    // Particle pressure coefficient
+    // Coefficient in front of Theta (Eq. 3.22, p. 45)
+    volScalarField PsCoeff
+    (
+        granularPressureModel_->granularPressureCoeff
+        (
+            alpha,
+            gs0,
+            rho,
+            e_
+        )
+    );
+
+    // Frictional pressure
+    volScalarField pf
+    (
+        frictionalStressModel_->frictionalPressure
+        (
+            alpha,
+            alphaMinFriction_,
+            alphaMax_
+        )
+    );
+
+    // Return total particle pressure
+    return PsCoeff*Theta_ + pf;
+}
+*/
+
+
+Foam::tmp<Foam::volScalarField> Foam::kineticTheoryModel::pPrime() const
+{
+    // Local references
+    const volScalarField& alpha = this->alpha_;
+    const volScalarField& rho = phase_.rho();
+
+    return
+    (
+        Theta_
+       *granularPressureModel_->granularPressureCoeffPrime
+        (
+            alpha,
+            radialModel_->g0(alpha, alphaMinFriction_, alphaMax_),
+            radialModel_->g0prime(alpha, alphaMinFriction_, alphaMax_),
+            rho,
+            e_
+        )
+     +  frictionalStressModel_->frictionalPressurePrime
+        (
+            alpha,
+            alphaMinFriction_,
+            alphaMax_
+        )
+    );
+}
+
+
+Foam::tmp<Foam::surfaceScalarField> Foam::kineticTheoryModel::pPrimef() const
+{
+    // Local references
+    const volScalarField& alpha = this->alpha_;
+    const volScalarField& rho = phase_.rho();
+
+    return fvc::interpolate
+    (
+        Theta_
+       *granularPressureModel_->granularPressureCoeffPrime
+        (
+            alpha,
+            radialModel_->g0(alpha, alphaMinFriction_, alphaMax_),
+            radialModel_->g0prime(alpha, alphaMinFriction_, alphaMax_),
+            rho,
+            e_
+        )
+     +  frictionalStressModel_->frictionalPressurePrime
+        (
+            alpha,
+            alphaMinFriction_,
+            alphaMax_
+        )
+    );
+}
+
+
+void Foam::kineticTheoryModel::correctNut()
+{}
+
+
+Foam::tmp<Foam::volScalarField> Foam::kineticTheoryModel::k() const
+{
+    notImplemented("kineticTheoryModel::k()");
+    return nut_;
+}
+
+
+Foam::tmp<Foam::volScalarField> Foam::kineticTheoryModel::epsilon() const
+{
+    notImplemented("kineticTheoryModel::epsilon()");
+    return nut_;
+}
+
+
+Foam::tmp<Foam::volSymmTensorField> Foam::kineticTheoryModel::R() const
+{
+    return tmp<volSymmTensorField>
+    (
+        new volSymmTensorField
+        (
+            IOobject
+            (
+                IOobject::groupName("R", this->U_.group()),
+                this->runTime_.timeName(),
+                this->mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+          - (this->nut_)*dev(twoSymm(fvc::grad(this->U_)))
+          - (lambda_*fvc::div(this->phi_))*symmTensor::I
+        )
+    );
+}
+
+
+Foam::tmp<Foam::volSymmTensorField> Foam::kineticTheoryModel::devRhoReff() const
+{
+    return tmp<volSymmTensorField>
+    (
+        new volSymmTensorField
+        (
+            IOobject
+            (
+                IOobject::groupName("devRhoReff", this->U_.group()),
+                this->runTime_.timeName(),
+                this->mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+          - (this->rho_*this->nut_)
+           *dev(twoSymm(fvc::grad(this->U_)))
+          - ((this->rho_*lambda_)*fvc::div(this->phi_))*symmTensor::I
+        )
+    );
+}
+
+
+Foam::tmp<Foam::fvVectorMatrix> Foam::kineticTheoryModel::divDevRhoReff
+(
+    volVectorField& U
+) const
+{
+    return
+    (
+      - fvm::laplacian(this->rho_*this->nut_, U)
+      - fvc::div
+        (
+            (this->rho_*this->nut_)*dev2(T(fvc::grad(U)))
+          + ((this->rho_*lambda_)*fvc::div(this->phi_))*symmTensor::I
+        )
+    );
+}
+
+
+bool Foam::kineticTheoryModel::read()
+{
+    if
+    (
+        RASModels::eddyViscosity
+        <
+            PhaseIncompressibleTurbulenceModel<phaseModel>
+        >::read()
+    )
+    {
+        this->coeffDict().lookup("equilibrium") >> equilibrium_;
+        e_.readIfPresent(this->coeffDict());
+        alphaMax_.readIfPresent(this->coeffDict());
+        alphaMinFriction_.readIfPresent(this->coeffDict());
+
+        viscosityModel_->read();
+        conductivityModel_->read();
+        radialModel_->read();
+        granularPressureModel_->read();
+        frictionalStressModel_->read();
+
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H
new file mode 100644
index 0000000000000000000000000000000000000000..e7146f8e62cedb7a49840a392419fd27b9e6c658
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H
@@ -0,0 +1,214 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011-2013 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::kineticTheoryModel
+
+Description
+
+SourceFiles
+    kineticTheoryModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef kineticTheoryModel_H
+#define kineticTheoryModel_H
+
+#include "eddyViscosity.H"
+#include "PhaseIncompressibleTurbulenceModel.H"
+#include "dragModel.H"
+#include "phaseModel.H"
+#include "autoPtr.H"
+#include "viscosityModel.H"
+#include "conductivityModel.H"
+#include "radialModel.H"
+#include "granularPressureModel.H"
+#include "frictionalStressModel.H"
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class kineticTheoryModel Declaration
+\*---------------------------------------------------------------------------*/
+
+class kineticTheoryModel
+:
+    public RASModels::eddyViscosity
+    <
+        PhaseIncompressibleTurbulenceModel<phaseModel>
+    >
+{
+    // Private data
+
+        // Input Fields
+
+            const phaseModel& phase_;
+
+
+        //- Drag model
+        const dragModel& draga_;
+
+        // Sub-models
+
+            //- Run-time selected viscosity model
+            autoPtr<kineticTheoryModels::viscosityModel> viscosityModel_;
+
+            //- Run-time selected conductivity model
+            autoPtr<kineticTheoryModels::conductivityModel> conductivityModel_;
+
+            //- Run-time selected radial distribution model
+            autoPtr<kineticTheoryModels::radialModel> radialModel_;
+
+            //- Run-time selected granular pressure model
+            autoPtr<kineticTheoryModels::granularPressureModel>
+                granularPressureModel_;
+
+            //- Run-time selected frictional stress model
+            autoPtr<kineticTheoryModels::frictionalStressModel>
+                frictionalStressModel_;
+
+
+        // Kinetic Theory Model coefficients
+
+            //- Use equilibrium approximation: generation == dissipation
+            Switch equilibrium_;
+
+            //- Coefficient of restitution
+            dimensionedScalar e_;
+
+            //- Maximum packing phase-fraction
+            dimensionedScalar alphaMax_;
+
+            //- Min value for which the frictional stresses are zero
+            dimensionedScalar alphaMinFriction_;
+
+
+        // Kinetic Theory Model Fields
+
+            //- The granular energy/temperature
+            volScalarField Theta_;
+
+            //- The granular bulk viscosity
+            volScalarField lambda_;
+
+
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        kineticTheoryModel(const kineticTheoryModel&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const kineticTheoryModel&);
+
+
+protected:
+
+    // Protected member functions
+
+        virtual void correctNut();
+
+
+public:
+
+    //- Runtime type information
+    TypeName("kineticTheory");
+
+
+    // Constructors
+
+        //- Construct from components
+        kineticTheoryModel
+        (
+            const volScalarField& alpha,
+            const geometricOneField& rho,
+            const volVectorField& U,
+            const surfaceScalarField& alphaPhi,
+            const surfaceScalarField& phi,
+            const phaseModel& transport,
+            const word& propertiesName = turbulenceModel::propertiesName,
+            const word& type = typeName
+        );
+
+
+    //- Destructor
+    virtual ~kineticTheoryModel();
+
+
+    // Member Functions
+
+        //- Return the effective viscosity
+        virtual tmp<volScalarField> nuEff() const
+        {
+            return this->nut();
+        }
+
+        //- Return the effective viscosity on patch
+        virtual tmp<scalarField> nuEff(const label patchi) const
+        {
+            return this->nut(patchi);
+        }
+
+        //- Return the turbulence kinetic energy
+        virtual tmp<volScalarField> k() const;
+
+        //- Return the turbulence kinetic energy dissipation rate
+        virtual tmp<volScalarField> epsilon() const;
+
+        //- Return the Reynolds stress tensor
+        virtual tmp<volSymmTensorField> R() const;
+
+        //- Return the phase-pressure'
+        // (derivative of phase-pressure w.r.t. phase-fraction)
+        virtual tmp<volScalarField> pPrime() const;
+
+        //- Return the face-phase-pressure'
+        // (derivative of phase-pressure w.r.t. phase-fraction)
+        virtual tmp<surfaceScalarField> pPrimef() const;
+
+        //- Return the effective stress tensor
+        virtual tmp<volSymmTensorField> devRhoReff() const;
+
+        //- Return the source term for the momentum equation
+        virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const;
+
+        //- Solve the kinetic theory equations and correct the viscosity
+        virtual void correct();
+
+        //- Re-read model coefficients if they have changed
+        virtual bool read();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C
similarity index 90%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C
index cfe74982a8878a8dfd0ce25a2c8f64058b10b00b..bedc30350001bcf221dfade2df1a2fa3b35da5de 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.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) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,6 +70,7 @@ Foam::tmp<Foam::volScalarField>
 Foam::kineticTheoryModels::radialModels::CarnahanStarling::g0
 (
     const volScalarField& alpha,
+    const dimensionedScalar& alphaMinFriction,
     const dimensionedScalar& alphaMax
 ) const
 {
@@ -77,7 +78,7 @@ Foam::kineticTheoryModels::radialModels::CarnahanStarling::g0
     return
         1.0/(1.0 - alpha)
       + 3.0*alpha/(2.0*sqr(1.0 - alpha))
-      + sqr(alpha)/(2.0*pow(1.0 - alpha, 3));
+      + sqr(alpha)/(2.0*pow3(1.0 - alpha));
 }
 
 
@@ -85,13 +86,14 @@ Foam::tmp<Foam::volScalarField>
 Foam::kineticTheoryModels::radialModels::CarnahanStarling::g0prime
 (
     const volScalarField& alpha,
+    const dimensionedScalar& alphaMinFriction,
     const dimensionedScalar& alphaMax
 ) const
 {
     return
         2.5/sqr(1.0 - alpha)
-      + 4.0*alpha/pow(1.0 - alpha, 3.0)
-      + 1.5*sqr(alpha)/pow(1.0 - alpha, 4.0);
+      + 4.0*alpha/pow3(1.0 - alpha)
+      + 1.5*sqr(alpha)/pow4(1.0 - alpha);
 }
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H
similarity index 93%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H
index ee61b1809911d29051501b6c5367046eceafa449..77396863eadb5af260174dfb09d3cfeed83954fa 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/CarnahanStarling/CarnahanStarlingRadial.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-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -76,12 +76,14 @@ public:
         tmp<volScalarField> g0
         (
             const volScalarField& alpha,
+            const dimensionedScalar& alphaMinFriction,
             const dimensionedScalar& alphaMax
         ) const;
 
         tmp<volScalarField> g0prime
         (
             const volScalarField& alpha,
+            const dimensionedScalar& alphaMinFriction,
             const dimensionedScalar& alphaMax
         ) const;
 };
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C
similarity index 91%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C
index 9f029288dd86f5bb37716308ceeefa74afbaf0ac..e9a4cfb522c38ef746853bdb5166e8e511d265ca 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.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) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,6 +70,7 @@ Foam::tmp<Foam::volScalarField>
 Foam::kineticTheoryModels::radialModels::LunSavage::g0
 (
     const volScalarField& alpha,
+    const dimensionedScalar& alphaMinFriction,
     const dimensionedScalar& alphaMax
 ) const
 {
@@ -82,10 +83,11 @@ Foam::tmp<Foam::volScalarField>
 Foam::kineticTheoryModels::radialModels::LunSavage::g0prime
 (
     const volScalarField& alpha,
+    const dimensionedScalar& alphaMinFriction,
     const dimensionedScalar& alphaMax
 ) const
 {
-    return 2.5*pow(1.0 - alpha/alphaMax, -1.0 - 2.5*alphaMax);
+    return 2.5*pow(1.0 - alpha/alphaMax, -2.5*alphaMax - 1);
 }
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H
similarity index 93%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H
index 81333790fdd41e31d348a867e5f6b5d9109981a3..53492c9c659f09e636e08148d6922666ca2d7d61 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/LunSavage/LunSavageRadial.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-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -75,12 +75,14 @@ public:
         tmp<volScalarField> g0
         (
             const volScalarField& alpha,
+            const dimensionedScalar& alphaMinFriction,
             const dimensionedScalar& alphaMax
         ) const;
 
         tmp<volScalarField> g0prime
         (
             const volScalarField& alpha,
+            const dimensionedScalar& alphaMinFriction,
             const dimensionedScalar& alphaMax
         ) const;
 };
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C
similarity index 86%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C
index 0109f756b5a95786128c23c68450d1743157ff86..da1d658f5d38d5472629a44cf9112df16ca92747 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.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) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -70,10 +70,11 @@ Foam::tmp<Foam::volScalarField>
 Foam::kineticTheoryModels::radialModels::SinclairJackson::g0
 (
     const volScalarField& alpha,
+    const dimensionedScalar& alphaMinFriction,
     const dimensionedScalar& alphaMax
 ) const
 {
-    return 1.0/(1.0 - pow(alpha/alphaMax, 1.0/3.0));
+    return 1.0/(1.0 - cbrt(min(alpha, alphaMinFriction)/alphaMax));
 }
 
 
@@ -81,12 +82,16 @@ Foam::tmp<Foam::volScalarField>
 Foam::kineticTheoryModels::radialModels::SinclairJackson::g0prime
 (
     const volScalarField& alpha,
+    const dimensionedScalar& alphaMinFriction,
     const dimensionedScalar& alphaMax
 ) const
 {
-    return
-       (1.0/3.0)*pow(max(alpha, scalar(1.0e-6))/alphaMax, -2.0/3.0)
-      /(alphaMax*sqr(1.0 - pow(alpha/alphaMax, 1.0/3.0)));
+    volScalarField aByaMax
+    (
+        cbrt(min(max(alpha, 1e-3), alphaMinFriction)/alphaMax)
+    );
+
+    return (1.0/(3*alphaMax))/sqr(aByaMax - sqr(aByaMax));
 }
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H
similarity index 93%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H
index 56931e9f01b04eced20644f9fd29407d148698de..bc8f44be792354d9d88825cdc2209f3a856cd462 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/SinclairJackson/SinclairJacksonRadial.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-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -75,12 +75,14 @@ public:
         tmp<volScalarField> g0
         (
             const volScalarField& alpha,
+            const dimensionedScalar& alphaMinFriction,
             const dimensionedScalar& alphaMax
         ) const;
 
         tmp<volScalarField> g0prime
         (
             const volScalarField& alpha,
+            const dimensionedScalar& alphaMinFriction,
             const dimensionedScalar& alphaMax
         ) const;
 };
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/radialModel/newRadialModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/newRadialModel.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/radialModel/newRadialModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/newRadialModel.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/radialModel/radialModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.C
similarity index 95%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/radialModel/radialModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.C
index 7caf81d366f8241ca8df1c79e57a2d39ee8d9839..893117a8116116a8005f51d34101a484153deee4 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/radialModel/radialModel.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.C
@@ -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-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/radialModel/radialModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.H
similarity index 93%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/radialModel/radialModel.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.H
index e67a02c5c633f080c28b72ce03dd5873c7c984a7..fc0a583c44e59d832d94d91894740f7b17f8ac64 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/radialModel/radialModel/radialModel.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/radialModel/radialModel/radialModel.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-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -108,6 +108,7 @@ public:
         virtual tmp<volScalarField> g0
         (
             const volScalarField& alpha,
+            const dimensionedScalar& alphaMinFriction,
             const dimensionedScalar& alphaMax
         ) const = 0;
 
@@ -115,8 +116,14 @@ public:
         virtual tmp<volScalarField> g0prime
         (
             const volScalarField& alpha,
+            const dimensionedScalar& alphaMinFriction,
             const dimensionedScalar& alphaMax
         ) const = 0;
+
+        virtual bool read()
+        {
+            return true;
+        }
 };
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C
similarity index 96%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C
index e3bf99518c648c847728b0cdd6c083423644436f..22e57614362d7131cb2c4d16a52e2dcc3ef4f1e0 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.C
@@ -62,7 +62,7 @@ Foam::kineticTheoryModels::viscosityModels::Gidaspow::~Gidaspow()
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 Foam::tmp<Foam::volScalarField>
-Foam::kineticTheoryModels::viscosityModels::Gidaspow::mu1
+Foam::kineticTheoryModels::viscosityModels::Gidaspow::nu
 (
     const volScalarField& alpha1,
     const volScalarField& Theta,
@@ -74,7 +74,7 @@ Foam::kineticTheoryModels::viscosityModels::Gidaspow::mu1
 {
     const scalar sqrtPi = sqrt(constant::mathematical::pi);
 
-    return rho1*da*sqrt(Theta)*
+    return da*sqrt(Theta)*
     (
         (4.0/5.0)*sqr(alpha1)*g0*(1.0 + e)/sqrtPi
       + (1.0/15.0)*sqrtPi*g0*(1.0 + e)*sqr(alpha1)
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H
similarity index 98%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H
index 0e3631ac0bf5e5b84a47166d31e8a1145d9ddbd8..325f4f06c03f8a60ce4e2e187f0e04689d573480 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Gidaspow/GidaspowViscosity.H
@@ -71,7 +71,7 @@ public:
 
     // Member functions
 
-        tmp<volScalarField> mu1
+        tmp<volScalarField> nu
         (
             const volScalarField& alpha1,
             const volScalarField& Theta,
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
similarity index 87%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
index 9f7fdd22ccb2e20143e98ee25a6bcd0af5aebb15..e1bcc67e92d07d9b667875b8620d3b4f4b4f7e46 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.C
@@ -56,8 +56,8 @@ Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::HrenyaSinclair
 )
 :
     viscosityModel(dict),
-    coeffsDict_(dict.subDict(typeName + "Coeffs")),
-    L_(coeffsDict_.lookup("L"))
+    coeffDict_(dict.subDict(typeName + "Coeffs")),
+    L_("L", dimensionSet(0, 1, 0, 0, 0), coeffDict_.lookup("L"))
 {}
 
 
@@ -70,7 +70,7 @@ Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::~HrenyaSinclair()
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 Foam::tmp<Foam::volScalarField>
-Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::mu1
+Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::nu
 (
     const volScalarField& alpha1,
     const volScalarField& Theta,
@@ -87,7 +87,7 @@ Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::mu1
         scalar(1) + da/(6.0*sqrt(2.0)*(alpha1 + scalar(1.0e-5)))/L_
     );
 
-    return rho1*da*sqrt(Theta)*
+    return da*sqrt(Theta)*
     (
         (4.0/5.0)*sqr(alpha1)*g0*(1.0 + e)/sqrtPi
       + (1.0/15.0)*sqrtPi*g0*(1.0 + e)*(3.0*e - 1)*sqr(alpha1)/(3.0-e)
@@ -98,4 +98,14 @@ Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::mu1
 }
 
 
+bool Foam::kineticTheoryModels::viscosityModels::HrenyaSinclair::read()
+{
+    coeffDict_ <<= dict_.subDict(typeName + "Coeffs");
+
+    L_.readIfPresent(coeffDict_);
+
+    return true;
+}
+
+
 // ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H
similarity index 95%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H
index 80b0e863ae98347be1c6040d66cabb7ba279fbf5..90fe892f8681714089af5b66be8f2778c22edd44 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/HrenyaSinclair/HrenyaSinclairViscosity.H
@@ -55,9 +55,9 @@ class HrenyaSinclair
 {
     // Private data
 
-        dictionary coeffsDict_;
+        dictionary coeffDict_;
 
-        //- characteristic length of geometry
+        //- Characteristic length of geometry
         dimensionedScalar L_;
 
 
@@ -79,7 +79,7 @@ public:
 
     // Member functions
 
-        tmp<volScalarField> mu1
+        tmp<volScalarField> nu
         (
             const volScalarField& alpha1,
             const volScalarField& Theta,
@@ -88,6 +88,8 @@ public:
             const volScalarField& da,
             const dimensionedScalar& e
         ) const;
+
+        virtual bool read();
 };
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C
similarity index 96%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C
index fa7ba802d2f25a70f3ac59078a357a129e617e78..ed5df62c86d9e28a4b9eb8bb08b487749b792d8e 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.C
@@ -62,7 +62,7 @@ Foam::kineticTheoryModels::viscosityModels::Syamlal::~Syamlal()
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 Foam::tmp<Foam::volScalarField>
-Foam::kineticTheoryModels::viscosityModels::Syamlal::mu1
+Foam::kineticTheoryModels::viscosityModels::Syamlal::nu
 (
     const volScalarField& alpha1,
     const volScalarField& Theta,
@@ -74,7 +74,7 @@ Foam::kineticTheoryModels::viscosityModels::Syamlal::mu1
 {
     const scalar sqrtPi = sqrt(constant::mathematical::pi);
 
-    return rho1*da*sqrt(Theta)*
+    return da*sqrt(Theta)*
     (
         (4.0/5.0)*sqr(alpha1)*g0*(1.0 + e)/sqrtPi
       + (1.0/15.0)*sqrtPi*g0*(1.0 + e)*(3.0*e - 1.0)*sqr(alpha1)/(3.0 - e)
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H
similarity index 98%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H
index f82ef8af0666488c2bb6049c2b32047083d5b732..7d2583e5616a2f74ad4396bc35af27597a8b6023 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/Syamlal/SyamlalViscosity.H
@@ -72,7 +72,7 @@ public:
 
     // Member functions
 
-        tmp<volScalarField> mu1
+        tmp<volScalarField> nu
         (
             const volScalarField& alpha1,
             const volScalarField& Theta,
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/none/noneViscosity.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.C
similarity index 97%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/none/noneViscosity.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.C
index 85f495cca5d137022866105a4d7975110b13e4cb..44c54a5168148a1400fa9205ed56792982866702 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/none/noneViscosity.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.C
@@ -53,7 +53,7 @@ Foam::kineticTheoryModels::noneViscosity::~noneViscosity()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::kineticTheoryModels::noneViscosity::mu1
+Foam::tmp<Foam::volScalarField> Foam::kineticTheoryModels::noneViscosity::nu
 (
     const volScalarField& alpha1,
     const volScalarField& Theta,
@@ -66,7 +66,7 @@ Foam::tmp<Foam::volScalarField> Foam::kineticTheoryModels::noneViscosity::mu1
     return dimensionedScalar
     (
         "0",
-        dimensionSet(1, -1, -1, 0, 0, 0, 0),
+        dimensionSet(0, 2, -1, 0, 0, 0, 0),
         0.0
     )*alpha1;
 }
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/none/noneViscosity.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.H
similarity index 98%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/none/noneViscosity.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.H
index 641ebe30eb27d582391d82d5841faec6d08dabf7..25fe4ce7b8da8c1d0f0c632e6e9c3a5b3fc3be3b 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/none/noneViscosity.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/none/noneViscosity.H
@@ -70,7 +70,7 @@ public:
 
     // Member functions
 
-        tmp<volScalarField> mu1
+        tmp<volScalarField> nu
         (
             const volScalarField& alpha1,
             const volScalarField& Theta,
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/newViscosityModel.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H
similarity index 96%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H
index 91007f05381029b00f87587b20178510d78a6d9f..bfd021a4b1f4ac60c009b5ab497fcfe3fd94e8d5 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/viscosityModel/viscosityModel/viscosityModel.H
@@ -106,7 +106,7 @@ public:
 
     // Member Functions
 
-        virtual tmp<volScalarField> mu1
+        virtual tmp<volScalarField> nu
         (
             const volScalarField& alpha1,
             const volScalarField& Theta,
@@ -115,6 +115,11 @@ public:
             const volScalarField& da,
             const dimensionedScalar& e
         ) const = 0;
+
+        virtual bool read()
+        {
+            return true;
+        }
 };
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/phaseIncompressibleTurbulenceModels.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/phaseIncompressibleTurbulenceModels.C
new file mode 100644
index 0000000000000000000000000000000000000000..f47e3943a198d0fc48513ffe5bfb1a5da92bf02b
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/phaseIncompressibleTurbulenceModels.C
@@ -0,0 +1,172 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2013 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 "PhaseIncompressibleTurbulenceModel.H"
+#include "laminar.H"
+#include "RASModel.H"
+#include "kEpsilon.H"
+#include "LaheyKEpsilon.H"
+#include "continuousGasKEpsilon.H"
+#include "kineticTheoryModel.H"
+#include "phasePressureModel.H"
+#include "phaseModel.H"
+#include "addToRunTimeSelectionTable.H"
+
+namespace Foam
+{
+    typedef TurbulenceModel
+    <
+        volScalarField,
+        geometricOneField,
+        incompressibleTurbulenceModel,
+        phaseModel
+    > basePhaseIncompressibleTransportTurbulenceModel;
+
+    defineTemplateRunTimeSelectionTable
+    (
+        basePhaseIncompressibleTransportTurbulenceModel,
+        dictionary
+    );
+
+    typedef PhaseIncompressibleTurbulenceModel<phaseModel>
+        incompressibleTransportTurbulenceModel;
+
+    typedef laminar<incompressibleTransportTurbulenceModel>
+        incompressibleLaminar;
+
+    defineNamedTemplateTypeNameAndDebug(incompressibleLaminar, 0);
+
+    addToRunTimeSelectionTable
+    (
+        basePhaseIncompressibleTransportTurbulenceModel,
+        incompressibleLaminar,
+        dictionary
+    );
+
+
+    typedef RASModel<incompressibleTransportTurbulenceModel>
+        incompressibleRASModel;
+
+    defineNamedTemplateTypeNameAndDebug(incompressibleRASModel, 0);
+
+    defineTemplateRunTimeSelectionTable(incompressibleRASModel, dictionary);
+
+    addToRunTimeSelectionTable
+    (
+        basePhaseIncompressibleTransportTurbulenceModel,
+        incompressibleRASModel,
+        dictionary
+    );
+
+    namespace RASModels
+    {
+        typedef kEpsilon<incompressibleTransportTurbulenceModel>
+            incompressiblekEpsilon;
+
+        defineNamedTemplateTypeNameAndDebug(incompressiblekEpsilon, 0);
+
+        addToRunTimeSelectionTable
+        (
+            incompressibleRASModel,
+            incompressiblekEpsilon,
+            dictionary
+        );
+    }
+
+    namespace RASModels
+    {
+        typedef LaheyKEpsilon<incompressibleTransportTurbulenceModel>
+            incompressibleLaheyKEpsilon;
+
+        defineNamedTemplateTypeNameAndDebug(incompressibleLaheyKEpsilon, 0);
+
+        addToRunTimeSelectionTable
+        (
+            incompressibleRASModel,
+            incompressibleLaheyKEpsilon,
+            dictionary
+        );
+    }
+
+    namespace RASModels
+    {
+        typedef continuousGasKEpsilon<incompressibleTransportTurbulenceModel>
+            incompressiblecontinuousGasKEpsilon;
+
+        defineNamedTemplateTypeNameAndDebug
+        (
+            incompressiblecontinuousGasKEpsilon,
+            0
+        );
+
+        addToRunTimeSelectionTable
+        (
+            incompressibleRASModel,
+            incompressiblecontinuousGasKEpsilon,
+            dictionary
+        );
+    }
+}
+
+
+namespace Foam
+{
+    typedef PhaseIncompressibleTurbulenceModel<phaseModel>
+        incompressibleTransportTurbulenceModel;
+
+    typedef RASModel<incompressibleTransportTurbulenceModel>
+        incompressibleRASModel;
+
+    defineTypeNameAndDebug(kineticTheoryModel, 0);
+
+    addToRunTimeSelectionTable
+    (
+        incompressibleRASModel,
+        kineticTheoryModel,
+        dictionary
+    );
+}
+
+
+namespace Foam
+{
+    typedef PhaseIncompressibleTurbulenceModel<phaseModel>
+        incompressibleTransportTurbulenceModel;
+
+    typedef RASModel<incompressibleTransportTurbulenceModel>
+        incompressibleRASModel;
+
+    defineTypeNameAndDebug(phasePressureModel, 0);
+
+    addToRunTimeSelectionTable
+    (
+        incompressibleRASModel,
+        phasePressureModel,
+        dictionary
+    );
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C
new file mode 100644
index 0000000000000000000000000000000000000000..99cc91994c0003d493225f435b8ebabdd109d3a0
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C
@@ -0,0 +1,219 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2013 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 "phasePressureModel.H"
+#include "surfaceInterpolate.H"
+#include "twoPhaseSystem.H"
+#include "dimensionedType.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::phasePressureModel::phasePressureModel
+(
+    const volScalarField& alpha,
+    const geometricOneField& rho,
+    const volVectorField& U,
+    const surfaceScalarField& alphaPhi,
+    const surfaceScalarField& phi,
+    const transportModel& phase,
+    const word& propertiesName,
+    const word& type
+)
+:
+    RASModels::eddyViscosity<PhaseIncompressibleTurbulenceModel<phaseModel> >
+    (
+        type,
+        alpha,
+        rho,
+        U,
+        alphaPhi,
+        phi,
+        phase,
+        propertiesName
+    ),
+
+    phase_(phase),
+
+    alphaMax_(readScalar(this->coeffDict_.lookup("alphaMax"))),
+    preAlphaExp_(readScalar(this->coeffDict_.lookup("preAlphaExp"))),
+    expMax_(readScalar(this->coeffDict_.lookup("expMax"))),
+    g0_
+    (
+        "g0",
+        dimensionSet(1, -1, -2, 0, 0),
+        this->coeffDict_.lookup("g0")
+    )
+{
+    this->nut_ == dimensionedScalar("zero", this->nut_.dimensions(), 0.0);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::phasePressureModel::~phasePressureModel()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::phasePressureModel::correct()
+{}
+
+
+void Foam::phasePressureModel::correctNut()
+{}
+
+
+Foam::tmp<Foam::volScalarField> Foam::phasePressureModel::pPrime() const
+{
+    return
+        g0_
+       *min
+        (
+            exp(preAlphaExp_*(this->alpha_ - alphaMax_)),
+            expMax_
+        );
+}
+
+
+Foam::tmp<Foam::surfaceScalarField> Foam::phasePressureModel::pPrimef() const
+{
+    return
+        g0_
+       *min
+        (
+            exp(preAlphaExp_*(fvc::interpolate(this->alpha_) - alphaMax_)),
+            expMax_
+        );
+}
+
+
+Foam::tmp<Foam::volScalarField> Foam::phasePressureModel::k() const
+{
+    notImplemented("phasePressureModel::k()");
+    return nut_;
+}
+
+
+Foam::tmp<Foam::volScalarField> Foam::phasePressureModel::epsilon() const
+{
+    notImplemented("phasePressureModel::epsilon()");
+    return nut_;
+}
+
+
+Foam::tmp<Foam::volSymmTensorField> Foam::phasePressureModel::R() const
+{
+    return tmp<volSymmTensorField>
+    (
+        new volSymmTensorField
+        (
+            IOobject
+            (
+                IOobject::groupName("R", this->U_.group()),
+                this->runTime_.timeName(),
+                this->mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            this->mesh_,
+            dimensioned<symmTensor>
+            (
+                "R",
+                dimensionSet(0, 2, -2, 0, 0),
+                symmTensor::zero
+            )
+        )
+    );
+}
+
+
+Foam::tmp<Foam::volSymmTensorField> Foam::phasePressureModel::devRhoReff() const
+{
+    return tmp<volSymmTensorField>
+    (
+        new volSymmTensorField
+        (
+            IOobject
+            (
+                IOobject::groupName("devRhoReff", this->U_.group()),
+                this->runTime_.timeName(),
+                this->mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            this->mesh_,
+            dimensioned<symmTensor>
+            (
+                "R",
+                this->rho_.dimensions()*dimensionSet(0, 2, -2, 0, 0),
+                symmTensor::zero
+            )
+        )
+    );
+}
+
+
+Foam::tmp<Foam::fvVectorMatrix> Foam::phasePressureModel::divDevRhoReff
+(
+    volVectorField& U
+) const
+{
+    return tmp<fvVectorMatrix>
+    (
+        new fvVectorMatrix
+        (
+            U,
+            this->rho_.dimensions()*dimensionSet(0, 4, -2, 0, 0)
+        )
+    );
+}
+
+
+bool Foam::phasePressureModel::read()
+{
+    if
+    (
+        RASModels::eddyViscosity
+        <
+            PhaseIncompressibleTurbulenceModel<phaseModel>
+        >::read()
+    )
+    {
+        this->coeffDict().lookup("alphaMax") >> alphaMax_;
+        this->coeffDict().lookup("preAlphaExp") >> preAlphaExp_;
+        this->coeffDict().lookup("expMax") >> expMax_;
+        g0_.readIfPresent(this->coeffDict());
+
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H
new file mode 100644
index 0000000000000000000000000000000000000000..1c4028f16a94e885da707699e02984c7522c9fc7
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H
@@ -0,0 +1,182 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2013 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::phasePressureModel
+
+Description
+
+SourceFiles
+    phasePressureModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef phasePressureModel_H
+#define phasePressureModel_H
+
+#include "eddyViscosity.H"
+#include "PhaseIncompressibleTurbulenceModel.H"
+#include "dragModel.H"
+#include "phaseModel.H"
+#include "autoPtr.H"
+#include "viscosityModel.H"
+#include "conductivityModel.H"
+#include "radialModel.H"
+#include "granularPressureModel.H"
+#include "frictionalStressModel.H"
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class phasePressureModel Declaration
+\*---------------------------------------------------------------------------*/
+
+class phasePressureModel
+:
+    public RASModels::eddyViscosity
+    <
+        PhaseIncompressibleTurbulenceModel<phaseModel>
+    >
+{
+    // Private data
+
+        // Input Fields
+
+            const phaseModel& phase_;
+
+
+        // Kinetic Theory Model coefficients
+
+            //- Maximum packing phase-fraction
+            scalar alphaMax_;
+
+            //- Pre-exponential factor
+            scalar preAlphaExp_;
+
+            //- Maximum limit of the exponential
+            scalar expMax_;
+
+            //- g0
+            dimensionedScalar g0_;
+
+
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        phasePressureModel(const phasePressureModel&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const phasePressureModel&);
+
+
+protected:
+
+    // Protected member functions
+
+        virtual void correctNut();
+
+
+public:
+
+    //- Runtime type information
+    TypeName("phasePressure");
+
+
+    // Constructors
+
+        //- Construct from components
+        phasePressureModel
+        (
+            const volScalarField& alpha,
+            const geometricOneField& rho,
+            const volVectorField& U,
+            const surfaceScalarField& alphaPhi,
+            const surfaceScalarField& phi,
+            const phaseModel& transport,
+            const word& propertiesName = turbulenceModel::propertiesName,
+            const word& type = typeName
+        );
+
+
+    //- Destructor
+    virtual ~phasePressureModel();
+
+
+    // Member Functions
+
+        //- Return the effective viscosity
+        virtual tmp<volScalarField> nuEff() const
+        {
+            return this->nut();
+        }
+
+        //- Return the effective viscosity on patch
+        virtual tmp<scalarField> nuEff(const label patchi) const
+        {
+            return this->nut(patchi);
+        }
+
+        //- Return the turbulence kinetic energy
+        virtual tmp<volScalarField> k() const;
+
+        //- Return the turbulence kinetic energy dissipation rate
+        virtual tmp<volScalarField> epsilon() const;
+
+        //- Return the Reynolds stress tensor
+        virtual tmp<volSymmTensorField> R() const;
+
+        //- Return the phase-pressure'
+        // (derivative of phase-pressure w.r.t. phase-fraction)
+        virtual tmp<volScalarField> pPrime() const;
+
+        //- Return the face-phase-pressure'
+        // (derivative of phase-pressure w.r.t. phase-fraction)
+        virtual tmp<surfaceScalarField> pPrimef() const;
+
+        //- Return the effective stress tensor
+        virtual tmp<volSymmTensorField> devRhoReff() const;
+
+        //- Return the source term for the momentum equation
+        virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const;
+
+        //- Solve the kinetic theory equations and correct the viscosity
+        virtual void correct();
+
+        //- Re-read model coefficients if they have changed
+        virtual bool read();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/readPPProperties.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/readPPProperties.H
index 3acbf758d04105e7d3ec4f6aad60035c7398d082..4f32564a482f0ae76245dcb76b256aefb1ad0c3b 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/readPPProperties.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/readPPProperties.H
@@ -29,8 +29,3 @@
     (
         ppProperties.lookup("g0")
     );
-
-    Switch packingLimiter
-    (
-        ppProperties.lookup("packingLimiter")
-    );
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/readTwoPhaseEulerFoamControls.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/readTwoPhaseEulerFoamControls.H
index 9913595cf296cb67ab33cc3e503ef111cd610475..29353a8fa1deea189e0fa017c28ba5685013245c 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/readTwoPhaseEulerFoamControls.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/readTwoPhaseEulerFoamControls.H
@@ -1,2 +1,7 @@
     #include "readTimeControls.H"
     #include "alphaControls.H"
+
+    Switch implicitPhasePressure
+    (
+        alphaControls.lookupOrDefault<Switch>("implicitPhasePressure", false)
+    );
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/kEpsilon.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/kEpsilon.H
deleted file mode 100644
index b74e1b18d79c4dac7b21cf3edc8bd56fb3ddb04d..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/kEpsilon.H
+++ /dev/null
@@ -1,72 +0,0 @@
-if (turbulence)
-{
-    if (mesh.changing())
-    {
-        y.correct();
-    }
-
-    tmp<volTensorField> tgradU2(fvc::grad(U2));
-    volScalarField G(2*nut2*(tgradU2() && dev(symm(tgradU2()))));
-    tgradU2.clear();
-
-    #include "wallFunctions.H"
-
-    // Dissipation equation
-    fvScalarMatrix epsEqn
-    (
-        fvm::ddt(alpha2, epsilon)
-      + fvm::div(alphaPhi2, epsilon)
-
-        // Compressibity correction
-      - fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), epsilon)
-
-      - fvm::laplacian
-        (
-            alpha1Eps*nuEff2, epsilon,
-            "laplacian(DepsilonEff,epsilon)"
-        )
-      ==
-         C1*alpha2*G*epsilon/k
-       - fvm::Sp(C2*alpha2*epsilon/k, epsilon)
-    );
-
-    #include "wallDissipation.H"
-
-
-
-    epsEqn.relax();
-    epsEqn.solve();
-
-    epsilon.max(dimensionedScalar("zero", epsilon.dimensions(), 1.0e-15));
-
-
-    // Turbulent kinetic energy equation
-    fvScalarMatrix kEqn
-    (
-        fvm::ddt(alpha2, k)
-      + fvm::div(alphaPhi2, k)
-
-        // Compressibity correction
-      - fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), k)
-
-      - fvm::laplacian
-        (
-            alpha1k*nuEff2, k,
-            "laplacian(DkEff,k)"
-        )
-      ==
-        alpha2*G
-      - fvm::Sp(alpha2*epsilon/k, k)
-    );
-    kEqn.relax();
-    kEqn.solve();
-
-    k.max(dimensionedScalar("zero", k.dimensions(), 1.0e-8));
-
-    //- Re-calculate turbulence viscosity
-    nut2 = Cmu*sqr(k)/epsilon;
-
-    #include "wallViscosity.H"
-}
-
-nuEff2 = nut2 + thermo2.mu()/rho2;
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/wallDissipation.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/wallDissipation.H
deleted file mode 100644
index 14224fd646a3ec4ab00de7ffb2eb05035893bdf9..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/wallDissipation.H
+++ /dev/null
@@ -1,50 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 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/>.
-
-Global
-    wallDissipation
-
-Description
-    Set wall dissipation in the epsilon matrix
-
-\*---------------------------------------------------------------------------*/
-
-{
-    const fvPatchList& patches = mesh.boundary();
-
-    forAll(patches, patchi)
-    {
-        const fvPatch& p = patches[patchi];
-
-        if (isA<wallFvPatch>(p))
-        {
-            epsEqn.setValues
-            (
-                p.faceCells(),
-                epsilon.boundaryField()[patchi].patchInternalField()
-            );
-        }
-    }
-}
-
-// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/wallFunctions.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/wallFunctions.H
deleted file mode 100644
index d85181cba2e020e57fb2063d09d4af4f14b01807..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/wallFunctions.H
+++ /dev/null
@@ -1,83 +0,0 @@
-{
-    labelList cellBoundaryFaceCount(epsilon.size(), 0);
-
-    scalar Cmu25 = ::pow(Cmu.value(), 0.25);
-    scalar Cmu75 = ::pow(Cmu.value(), 0.75);
-    scalar kappa_ = kappa.value();
-
-    const fvPatchList& patches = mesh.boundary();
-
-    //- Initialise the near-wall P field to zero
-    forAll(patches, patchi)
-    {
-        const fvPatch& currPatch = patches[patchi];
-
-        if (isA<wallFvPatch>(currPatch))
-        {
-            forAll(currPatch, facei)
-            {
-                label faceCelli = currPatch.faceCells()[facei];
-
-                epsilon[faceCelli] = 0.0;
-                G[faceCelli] = 0.0;
-            }
-        }
-    }
-
-    //- Accumulate the wall face contributions to epsilon and G
-    //  Increment cellBoundaryFaceCount for each face for averaging
-    forAll(patches, patchi)
-    {
-        const fvPatch& currPatch = patches[patchi];
-        const scalarField& mu2_ = thermo2.mu().boundaryField()[patchi];
-        const scalarField& rho2_ = rho2.boundaryField()[patchi];
-
-        if (isA<wallFvPatch>(currPatch))
-        {
-            const scalarField& nut2w = nut2.boundaryField()[patchi];
-
-            scalarField magFaceGradU(mag(U2.boundaryField()[patchi].snGrad()));
-
-            forAll(currPatch, facei)
-            {
-                label faceCelli = currPatch.faceCells()[facei];
-
-                // For corner cells (with two boundary or more faces),
-                // epsilon and G in the near-wall cell are calculated
-                // as an average
-
-                cellBoundaryFaceCount[faceCelli]++;
-
-                epsilon[faceCelli] +=
-                     Cmu75*::pow(k[faceCelli], 1.5)
-                    /(kappa_*y[patchi][facei]);
-
-                G[faceCelli] +=
-                    (nut2w[facei] + mu2_[facei]/rho2_[facei])
-                   *magFaceGradU[facei]
-                   *Cmu25*::sqrt(k[faceCelli])
-                   /(kappa_*y[patchi][facei]);
-            }
-        }
-    }
-
-
-    // perform the averaging
-
-    forAll(patches, patchi)
-    {
-        const fvPatch& curPatch = patches[patchi];
-
-        if (isA<wallFvPatch>(curPatch))
-        {
-            forAll(curPatch, facei)
-            {
-                label faceCelli = curPatch.faceCells()[facei];
-
-                epsilon[faceCelli] /= cellBoundaryFaceCount[faceCelli];
-                G[faceCelli] /= cellBoundaryFaceCount[faceCelli];
-                cellBoundaryFaceCount[faceCelli] = 1;
-            }
-        }
-    }
-}
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/wallViscosity.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/wallViscosity.H
deleted file mode 100644
index 9aa032149ca51f65d51d412c4dc13b7d61b9c46c..0000000000000000000000000000000000000000
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/wallViscosity.H
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-    scalar Cmu25 = ::pow(Cmu.value(), 0.25);
-    scalar kappa_ = kappa.value();
-    scalar E_ = E.value();
-
-    const fvPatchList& patches = mesh.boundary();
-
-    forAll(patches, patchi)
-    {
-        const fvPatch& currPatch = patches[patchi];
-        const scalarField& mu2_ = thermo2.mu().boundaryField()[patchi];
-        const scalarField& rho2_ = rho2.boundaryField()[patchi];
-
-        if (isA<wallFvPatch>(currPatch))
-        {
-            scalarField& nutw = nut2.boundaryField()[patchi];
-
-            forAll(currPatch, facei)
-            {
-                label faceCelli = currPatch.faceCells()[facei];
-
-                // calculate yPlus
-                scalar yPlus =
-                    Cmu25*y[patchi][facei]*::sqrt(k[faceCelli])
-                   /(mu2_[facei]/rho2_[facei]);
-
-                if (yPlus > 11.6)
-                {
-                    nutw[facei] =
-                        (mu2_[facei]/rho2_[facei])
-                       *(yPlus*kappa_/::log(E_*yPlus) - 1);
-                }
-                else
-                {
-                    nutw[facei] = 0.0;
-                }
-            }
-        }
-    }
-}
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/Make/files b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/Make/files
similarity index 76%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/Make/files
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/Make/files
index c465aaa45490c24c1d02030adef6fd4c4f6df65d..fb49c3cef761ab0d94d4b702a807f0378cd0cc74 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/Make/files
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/Make/files
@@ -4,4 +4,6 @@ diameterModels/diameterModel/newDiameterModel.C
 diameterModels/constantDiameter/constantDiameter.C
 diameterModels/isothermalDiameter/isothermalDiameter.C
 
-LIB = $(FOAM_LIBBIN)/libcompressiblePhaseModel
+twoPhaseSystem.C
+
+LIB = $(FOAM_LIBBIN)/libcompressibleTwoPhaseSystem
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/Make/options b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/Make/options
similarity index 80%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/Make/options
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/Make/options
index e441b0417bb82b021ee7e0ae470e030900e43a71..ab3c396f5796ea50f8afd47eeb3a4c6d5c950316 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/Make/options
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/Make/options
@@ -1,4 +1,6 @@
 EXE_INC = \
+    -I../twoPhaseSystem \
+    -I../interfacialModels/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/transportModels/incompressible/lnInclude
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/constantDiameter/constantDiameter.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/constantDiameter/constantDiameter.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/constantDiameter/constantDiameter.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/constantDiameter/constantDiameter.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/constantDiameter/constantDiameter.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/constantDiameter/constantDiameter.H
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/constantDiameter/constantDiameter.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/constantDiameter/constantDiameter.H
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/diameterModel/diameterModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/diameterModel.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/diameterModel/diameterModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/diameterModel.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/diameterModel/diameterModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/diameterModel.H
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/diameterModel/diameterModel.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/diameterModel.H
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/diameterModel/newDiameterModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/newDiameterModel.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/diameterModel/newDiameterModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/diameterModel/newDiameterModel.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/isothermalDiameter/isothermalDiameter.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.C
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/isothermalDiameter/isothermalDiameter.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.C
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/isothermalDiameter/isothermalDiameter.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.H
similarity index 100%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/diameterModels/isothermalDiameter/isothermalDiameter.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.H
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/phaseModel/phaseModel.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C
similarity index 76%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/phaseModel/phaseModel.C
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C
index 112a30218896b55c184c7d8740956f602a8b9474..e0275a6238217ba8f88cb5f3ece5495fd14a8b7e 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/phaseModel/phaseModel.C
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.C
@@ -24,7 +24,10 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "phaseModel.H"
+#include "twoPhaseSystem.H"
 #include "diameterModel.H"
+#include "dragModel.H"
+#include "heatTransferModel.H"
 #include "fixedValueFvPatchFields.H"
 #include "slipFvPatchFields.H"
 #include "surfaceInterpolate.H"
@@ -33,8 +36,8 @@ License
 
 Foam::phaseModel::phaseModel
 (
-    const fvMesh& mesh,
-    const dictionary& transportProperties,
+    const twoPhaseSystem& fluid,
+    const dictionary& phaseProperties,
     const word& phaseName
 )
 :
@@ -42,48 +45,44 @@ Foam::phaseModel::phaseModel
     (
         IOobject
         (
-            "alpha" + phaseName,
-            mesh.time().timeName(),
-            mesh,
+            IOobject::groupName("alpha", phaseName),
+            fluid.mesh().time().timeName(),
+            fluid.mesh(),
             IOobject::READ_IF_PRESENT,
             IOobject::AUTO_WRITE
         ),
-        mesh,
+        fluid.mesh(),
         dimensionedScalar("alpha", dimless, 0)
     ),
+    fluid_(fluid),
     name_(phaseName),
     phaseDict_
     (
-        transportProperties.subDict
-        (
-            phaseName == "1" || phaseName == "2"
-          ? "phase" + phaseName
-          : word(phaseName)
-        )
+        phaseProperties.subDict(name_)
     ),
-    thermo_(rhoThermo::New(mesh, phaseName)),
+    thermo_(rhoThermo::New(fluid.mesh(), name_)),
     U_
     (
         IOobject
         (
-            "U" + phaseName,
-            mesh.time().timeName(),
-            mesh,
+            IOobject::groupName("U", name_),
+            fluid.mesh().time().timeName(),
+            fluid.mesh(),
             IOobject::MUST_READ,
             IOobject::AUTO_WRITE
         ),
-        mesh
+        fluid.mesh()
     )
 {
-    thermo_->validate("phaseModel " + phaseName, "h", "e");
+    thermo_->validate("phaseModel " + name_, "h", "e");
 
-    const word phiName = "phi" + phaseName;
+    const word phiName = IOobject::groupName("phi", name_);
 
     IOobject phiHeader
     (
         phiName,
-        mesh.time().timeName(),
-        mesh,
+        fluid_.mesh().time().timeName(),
+        fluid_.mesh(),
         IOobject::NO_READ
     );
 
@@ -98,12 +97,12 @@ Foam::phaseModel::phaseModel
                 IOobject
                 (
                     phiName,
-                    mesh.time().timeName(),
-                    mesh,
+                    fluid_.mesh().time().timeName(),
+                    fluid_.mesh(),
                     IOobject::MUST_READ,
                     IOobject::AUTO_WRITE
                 ),
-                mesh
+                fluid_.mesh()
             )
         );
     }
@@ -136,12 +135,12 @@ Foam::phaseModel::phaseModel
                 IOobject
                 (
                     phiName,
-                    mesh.time().timeName(),
-                    mesh,
+                    fluid_.mesh().time().timeName(),
+                    fluid_.mesh(),
                     IOobject::NO_READ,
                     IOobject::AUTO_WRITE
                 ),
-                fvc::interpolate(U_) & mesh.Sf(),
+                fvc::interpolate(U_) & fluid_.mesh().Sf(),
                 phiTypes
             )
         );
@@ -155,20 +154,6 @@ Foam::phaseModel::phaseModel
 }
 
 
-Foam::autoPtr<Foam::phaseModel> Foam::phaseModel::New
-(
-    const fvMesh& mesh,
-    const dictionary& transportProperties,
-    const word& phaseName
-)
-{
-    return autoPtr<phaseModel>
-    (
-        new phaseModel(mesh, transportProperties, phaseName)
-    );
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::phaseModel::~phaseModel()
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/phaseModel/phaseModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.H
similarity index 86%
rename from applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/phaseModel/phaseModel.H
rename to applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.H
index 87c6f0b562946864dd76683f4a8a50fb634ca612..ed2a6115462185851dc9f52857231cd65dfa8c46 100644
--- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/phaseModel/phaseModel.H
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/phaseModel/phaseModel.H
@@ -36,6 +36,7 @@ SourceFiles
 #include "dimensionedScalar.H"
 #include "volFields.H"
 #include "surfaceFields.H"
+#include "transportModel.H"
 #include "rhoThermo.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -44,18 +45,24 @@ namespace Foam
 {
 
 // Forward declarations
+class twoPhaseSystem;
 class diameterModel;
 
+
 /*---------------------------------------------------------------------------*\
                            Class phaseModel Declaration
 \*---------------------------------------------------------------------------*/
 
 class phaseModel
 :
-    public volScalarField
+    public volScalarField,
+    public transportModel
 {
     // Private data
 
+        //- Reference to the twoPhaseSystem to which this phase belongs
+        const twoPhaseSystem& fluid_;
+
         //- Name of phase
         word name_;
 
@@ -80,19 +87,8 @@ public:
 
         phaseModel
         (
-            const fvMesh& mesh,
-            const dictionary& transportProperties,
-            const word& phaseName
-        );
-
-
-    // Selectors
-
-        //- Return a reference to the selected turbulence model
-        static autoPtr<phaseModel> New
-        (
-            const fvMesh& mesh,
-            const dictionary& transportProperties,
+            const twoPhaseSystem& fluid,
+            const dictionary& phaseProperties,
             const word& phaseName
         );
 
@@ -103,6 +99,12 @@ public:
 
     // Member Functions
 
+        //- Return the twoPhaseSystem to which this phase belongs
+        const twoPhaseSystem& fluid() const
+        {
+            return fluid_;
+        }
+
         const word& name() const
         {
             return name_;
@@ -165,6 +167,16 @@ public:
         {
             return phiPtr_();
         }
+
+        //- Dummy correct
+        void correct()
+        {}
+
+        //- Dummy read
+        bool read()
+        {
+            return true;
+        }
 };
 
 
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C
new file mode 100644
index 0000000000000000000000000000000000000000..83902a7b7d7385b1c5619d769e11287a05ca8c0f
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C
@@ -0,0 +1,390 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2013 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 "twoPhaseSystem.H"
+#include "surfaceInterpolate.H"
+#include "fixedValueFvsPatchFields.H"
+#include "fvcCurl.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::twoPhaseSystem::twoPhaseSystem
+(
+    const fvMesh& mesh
+)
+:
+    IOdictionary
+    (
+        IOobject
+        (
+            "phaseProperties",
+            mesh.time().constant(),
+            mesh,
+            IOobject::MUST_READ_IF_MODIFIED,
+            IOobject::NO_WRITE
+        )
+    ),
+
+    mesh_(mesh),
+
+    phase1_
+    (
+        *this,
+        *this,
+        wordList(lookup("phases"))[0]
+    ),
+
+    phase2_
+    (
+        *this,
+        *this,
+        wordList(lookup("phases"))[1]
+    ),
+
+    Cvm_
+    (
+        "Cvm",
+        dimless,
+        lookup("Cvm")
+    ),
+
+    Cl_
+    (
+        "Cl",
+        dimless,
+        lookup("Cl")
+    ),
+
+    drag1_
+    (
+        dragModel::New
+        (
+            subDict("drag"),
+            phase1_,
+            phase1_,
+            phase2_
+        )
+    ),
+
+    drag2_
+    (
+        dragModel::New
+        (
+            subDict("drag"),
+            phase2_,
+            phase2_,
+            phase1_
+        )
+    ),
+
+    heatTransfer1_
+    (
+        heatTransferModel::New
+        (
+            subDict("heatTransfer"),
+            phase1_,
+            phase1_,
+            phase2_
+        )
+    ),
+
+    heatTransfer2_
+    (
+        heatTransferModel::New
+        (
+            subDict("heatTransfer"),
+            phase2_,
+            phase2_,
+            phase1_
+        )
+    ),
+
+    dispersedPhase_(lookup("dispersedPhase")),
+
+    residualPhaseFraction_
+    (
+        readScalar(lookup("residualPhaseFraction"))
+    ),
+
+    residualSlip_
+    (
+        "residualSlip",
+        dimVelocity,
+        lookup("residualSlip")
+    )
+{
+    if
+    (
+        !(
+            dispersedPhase_ == phase1_.name()
+         || dispersedPhase_ == phase2_.name()
+         || dispersedPhase_ == "both"
+        )
+    )
+    {
+        FatalErrorIn("twoPhaseSystem::twoPhaseSystem(const fvMesh& mesh)")
+            << "invalid dispersedPhase " << dispersedPhase_
+            << exit(FatalError);
+    }
+
+    Info << "dispersedPhase is " << dispersedPhase_ << endl;
+
+    // Ensure the phase-fractions sum to 1
+    phase2_.volScalarField::operator=(scalar(1) - phase1_);
+}
+
+
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::volScalarField> Foam::twoPhaseSystem::rho() const
+{
+    return phase1_*phase1_.thermo().rho() + phase2_*phase2_.thermo().rho();
+}
+
+
+Foam::tmp<Foam::volVectorField> Foam::twoPhaseSystem::U() const
+{
+    return phase1_*phase1_.U() + phase2_*phase2_.U();
+}
+
+
+Foam::tmp<Foam::surfaceScalarField> Foam::twoPhaseSystem::phi() const
+{
+    return
+        fvc::interpolate(phase1_)*phase1_.phi()
+      + fvc::interpolate(phase2_)*phase2_.phi();
+}
+
+
+Foam::tmp<Foam::volScalarField> Foam::twoPhaseSystem::dragCoeff() const
+{
+    tmp<volScalarField> tdragCoeff
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                "dragCoeff",
+                mesh_.time().timeName(),
+                mesh_
+            ),
+            mesh_,
+            dimensionedScalar("dragCoeff", dimensionSet(1, -3, -1, 0, 0), 0)
+        )
+    );
+    volScalarField& dragCoeff = tdragCoeff();
+
+    volVectorField Ur(phase1_.U() - phase2_.U());
+    volScalarField magUr(mag(Ur) + residualSlip_);
+
+    if (dispersedPhase_ == phase1_.name())
+    {
+        dragCoeff = drag1().K(magUr);
+    }
+    else if (dispersedPhase_ == phase2_.name())
+    {
+        dragCoeff = drag2().K(magUr);
+    }
+    else if (dispersedPhase_ == "both")
+    {
+        dragCoeff =
+        (
+            phase2_*drag1().K(magUr)
+          + phase1_*drag2().K(magUr)
+        );
+    }
+    else
+    {
+        FatalErrorIn("twoPhaseSystem::dragCoeff()")
+            << "dispersedPhase: " << dispersedPhase_ << " is incorrect"
+            << exit(FatalError);
+    }
+
+    volScalarField alphaCoeff(max(phase1_*phase2_, residualPhaseFraction_));
+    dragCoeff *= alphaCoeff;
+
+    // Remove drag at fixed-flux boundaries
+    forAll(phase1_.phi().boundaryField(), patchi)
+    {
+        if
+        (
+            isA<fixedValueFvsPatchScalarField>
+            (
+                phase1_.phi().boundaryField()[patchi]
+            )
+        )
+        {
+            dragCoeff.boundaryField()[patchi] = 0.0;
+        }
+    }
+
+    return tdragCoeff;
+}
+
+
+Foam::tmp<Foam::volVectorField> Foam::twoPhaseSystem::liftForce
+(
+    const volVectorField& U
+) const
+{
+    tmp<volVectorField> tliftForce
+    (
+        new volVectorField
+        (
+            IOobject
+            (
+                "liftForce",
+                mesh_.time().timeName(),
+                mesh_
+            ),
+            mesh_,
+            dimensionedVector
+            (
+                "liftForce",
+                dimensionSet(1, -2, -2, 0, 0),
+                vector::zero
+            )
+        )
+    );
+    volVectorField& liftForce = tliftForce();
+
+    volVectorField Ur(phase1_.U() - phase2_.U());
+
+    liftForce =
+        Cl_*(phase1_*phase1_.rho() + phase2_*phase2_.rho())
+       *(Ur ^ fvc::curl(U));
+
+    // Remove lift at fixed-flux boundaries
+    forAll(phase1_.phi().boundaryField(), patchi)
+    {
+        if
+        (
+            isA<fixedValueFvsPatchScalarField>
+            (
+                phase1_.phi().boundaryField()[patchi]
+            )
+        )
+        {
+            liftForce.boundaryField()[patchi] = vector::zero;
+        }
+    }
+
+    return tliftForce;
+}
+
+
+Foam::tmp<Foam::volScalarField> Foam::twoPhaseSystem::heatTransferCoeff() const
+{
+    tmp<volScalarField> theatTransferCoeff
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                "heatTransferCoeff",
+                mesh_.time().timeName(),
+                mesh_
+            ),
+            mesh_,
+            dimensionedScalar
+            (
+                "heatTransferCoeff",
+                dimensionSet(1, -1, -3, -1, 0),
+                0
+            )
+        )
+    );
+    volScalarField& heatTransferCoeff = theatTransferCoeff();
+
+    volVectorField Ur(phase1_.U() - phase2_.U());
+    volScalarField magUr(mag(Ur) + residualSlip_);
+
+    if (dispersedPhase_ == phase1_.name())
+    {
+        heatTransferCoeff = heatTransfer1().K(magUr);
+    }
+    else if (dispersedPhase_ == phase2_.name())
+    {
+        heatTransferCoeff = heatTransfer2().K(magUr);
+    }
+    else if (dispersedPhase_ == "both")
+    {
+        heatTransferCoeff =
+        (
+            phase2_*heatTransfer1().K(magUr)
+          + phase1_*heatTransfer2().K(magUr)
+        );
+    }
+    else
+    {
+        FatalErrorIn("twoPhaseSystem::heatTransferCoeff()")
+            << "dispersedPhase: " << dispersedPhase_ << " is incorrect"
+            << exit(FatalError);
+    }
+
+    volScalarField alphaCoeff(max(phase1_*phase2_, residualPhaseFraction_));
+    heatTransferCoeff *= alphaCoeff;
+
+    // Remove heatTransfer at fixed-flux boundaries
+    forAll(phase1_.phi().boundaryField(), patchi)
+    {
+        if
+        (
+            isA<fixedValueFvsPatchScalarField>
+            (
+                phase1_.phi().boundaryField()[patchi]
+            )
+        )
+        {
+            heatTransferCoeff.boundaryField()[patchi] = 0.0;
+        }
+    }
+
+    return theatTransferCoeff;
+}
+
+
+bool Foam::twoPhaseSystem::read()
+{
+    if (regIOobject::read())
+    {
+        bool readOK = true;
+
+        readOK &= phase1_.read();
+        readOK &= phase2_.read();
+
+        lookup("Cvm") >> Cvm_;
+        lookup("Cl") >> Cl_;
+
+        return readOK;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.H
new file mode 100644
index 0000000000000000000000000000000000000000..3a7896ea02b13a5e41563b6ee6bc29b39b508687
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.H
@@ -0,0 +1,228 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2013 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::twoPhaseSystem
+
+Description
+    Incompressible multi-phase mixture with built in solution for the
+    phase fractions with interface compression for interface-capturing.
+
+    Derived from transportModel so that it can be unsed in conjunction with
+    the incompressible turbulence models.
+
+    Surface tension and contact-angle is handled for the interface
+    between each phase-pair.
+
+SourceFiles
+    twoPhaseSystem.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef twoPhaseSystem_H
+#define twoPhaseSystem_H
+
+#include "IOdictionary.H"
+#include "phaseModel.H"
+#include "dragModel.H"
+#include "heatTransferModel.H"
+#include "volFields.H"
+#include "surfaceFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declarations
+class dragModel;
+class heatTransferModel;
+
+
+/*---------------------------------------------------------------------------*\
+                      Class twoPhaseSystem Declaration
+\*---------------------------------------------------------------------------*/
+
+class twoPhaseSystem
+:
+    public IOdictionary
+{
+    // Private data
+
+        const fvMesh& mesh_;
+
+        phaseModel phase1_;
+        phaseModel phase2_;
+
+        dimensionedScalar Cvm_;
+        dimensionedScalar Cl_;
+
+        autoPtr<dragModel> drag1_;
+        autoPtr<dragModel> drag2_;
+
+        autoPtr<heatTransferModel> heatTransfer1_;
+        autoPtr<heatTransferModel> heatTransfer2_;
+
+        word dispersedPhase_;
+        scalar residualPhaseFraction_;
+        dimensionedScalar residualSlip_;
+
+
+public:
+
+    // Constructors
+
+        //- Construct from fvMesh
+        twoPhaseSystem(const fvMesh&);
+
+
+    //- Destructor
+    virtual ~twoPhaseSystem()
+    {}
+
+
+    // Member Functions
+
+        const fvMesh& mesh() const
+        {
+            return mesh_;
+        }
+
+        const phaseModel& phase1() const
+        {
+            return phase1_;
+        }
+
+        const phaseModel& phase2() const
+        {
+            return phase2_;
+        }
+
+        const phaseModel& otherPhase(const phaseModel& phase) const
+        {
+            if (&phase == &phase1_)
+            {
+                return phase2_;
+            }
+            else
+            {
+                return phase1_;
+            }
+        }
+
+        phaseModel& phase1()
+        {
+            return phase1_;
+        }
+
+        phaseModel& phase2()
+        {
+            return phase2_;
+        }
+
+        const dragModel& drag1() const
+        {
+            return drag1_();
+        }
+
+        const dragModel& drag2() const
+        {
+            return drag2_();
+        }
+
+        const dragModel& drag(const phaseModel& phase) const
+        {
+            if (&phase == &phase1_)
+            {
+                return drag1_();
+            }
+            else
+            {
+                return drag2_();
+            }
+        }
+
+        scalar residualPhaseFraction() const
+        {
+            return residualPhaseFraction_;
+        }
+
+        const dimensionedScalar& residualSlip() const
+        {
+            return residualSlip_;
+        }
+
+        tmp<volScalarField> dragCoeff() const;
+        tmp<volVectorField> liftForce(const volVectorField& U) const;
+
+        const heatTransferModel& heatTransfer1() const
+        {
+            return heatTransfer1_();
+        }
+
+        const heatTransferModel& heatTransfer2() const
+        {
+            return heatTransfer2_();
+        }
+
+        tmp<volScalarField> heatTransferCoeff() const;
+
+        //- Return the mixture density
+        tmp<volScalarField> rho() const;
+
+        //- Return the mixture velocity
+        tmp<volVectorField> U() const;
+
+        //- Return the mixture flux
+        tmp<surfaceScalarField> phi() const;
+
+        //- Return the virtual-mass coefficient
+        dimensionedScalar Cvm() const
+        {
+            return Cvm_;
+        }
+
+        //- Return the lift coefficient
+        dimensionedScalar Cl() const
+        {
+            return Cl_;
+        }
+
+        //- Dummy correct
+        void correct()
+        {}
+
+        //- Read base phaseProperties dictionary
+        bool read();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/kineticTheoryProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/kineticTheoryProperties
deleted file mode 100644
index dd434c837468e4c3719d0f21153fa9edc5fd4ab9..0000000000000000000000000000000000000000
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/kineticTheoryProperties
+++ /dev/null
@@ -1,52 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    location    "constant";
-    object      kineticTheoryProperties;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-kineticTheory   off;
-
-equilibrium     on;
-
-e               e [ 0 0 0 0 0 0 0 ] 0.9;
-
-alphaMax       alphaMax [ 0 0 0 0 0 0 0 ] 0.6;
-
-alphaMinFriction alphaMinFriction [ 0 0 0 0 0 0 0 ] 0.5;
-
-Fr              Fr [ 1 -1 -2 0 0 0 0 ] 0.05;
-
-eta             eta [ 0 0 0 0 0 0 0 ] 2;
-
-p               p [ 0 0 0 0 0 0 0 ] 5;
-
-phi             phi [ 0 0 0 0 0 0 0 ] 25;
-
-viscosityModel  Syamlal;
-
-conductivityModel HrenyaSinclair;
-
-granularPressureModel Lun;
-
-frictionalStressModel JohnsonJackson;
-
-radialModel     SinclairJackson;
-
-HrenyaSinclairCoeffs
-{
-    L               L [ 0 1 0 0 0 0 0 ] 0.0005;
-}
-
-
-// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/epsilon b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/epsilon
deleted file mode 100644
index 69b3e74c838b2f693281b70c870742448faeb9b8..0000000000000000000000000000000000000000
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/epsilon
+++ /dev/null
@@ -1,50 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       volScalarField;
-    object      epsilon;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-dimensions          [ 0 2 -3 0 0 0 0 ];
-
-internalField       uniform 10.0;
-
-referenceLevel      0;
-
-boundaryField
-{
-    inlet
-    {
-        type               fixedValue;
-        value              uniform 10.0;
-    }
-
-    outlet
-    {
-        type               inletOutlet;
-        phi                phi2;
-        inletValue         uniform 10.0;
-        value              uniform 10.0;
-    }
-
-    walls
-    {
-        type               zeroGradient;
-    }
-
-    frontAndBackPlanes
-    {
-        type               empty;
-    }
-}
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/filterProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/filterProperties
deleted file mode 100644
index 19c054ea8c0818836cff1abca6d55e2af619b76c..0000000000000000000000000000000000000000
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/filterProperties
+++ /dev/null
@@ -1,27 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    location    "constant";
-    object      filterProperties;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-filter          off;
-
-filterNormal    ( 0 0 1 );
-
-filterPosition  filterPosition [ 0 1 0 0 0 ] ( 0 0 0.02 );
-
-filterThickness filterThickness [ 0 1 0 0 0 ] 1e-06;
-
-
-// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/interfacialProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/interfacialProperties
deleted file mode 100644
index 63efa66a33df1344b571e8b25a15fc48880dd097..0000000000000000000000000000000000000000
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/interfacialProperties
+++ /dev/null
@@ -1,29 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    location    "constant";
-    object      interfacialProperties;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-dragModel1          GidaspowErgunWenYu;
-dragModel2          GidaspowErgunWenYu;
-
-heatTransferModel1  RanzMarshall;
-heatTransferModel2  RanzMarshall;
-
-dispersedPhase      "1";
-
-residualPhaseFraction   1e-3;
-residualSlip            1e-2;
-
-// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/kineticTheoryProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/kineticTheoryProperties
deleted file mode 100644
index 84660d86278e0440cba0defddad073cfa34caf66..0000000000000000000000000000000000000000
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/kineticTheoryProperties
+++ /dev/null
@@ -1,52 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    location    "constant";
-    object      kineticTheoryProperties;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-kineticTheory   on;
-
-equilibrium     on;
-
-e               e [ 0 0 0 0 0 0 0 ] 0.8;
-
-alphaMax        alphaMax [ 0 0 0 0 0 0 0 ] 0.62;
-
-alphaMinFriction alphaMinFriction [ 0 0 0 0 0 0 0 ] 0.65;
-
-Fr              Fr [ 1 -1 -2 0 0 0 0 ] 0.05;
-
-eta             eta [ 0 0 0 0 0 0 0 ] 2;
-
-p               p [ 0 0 0 0 0 0 0 ] 5;
-
-phi             phi [ 0 0 0 0 0 0 0 ] 0;
-
-viscosityModel  Gidaspow;
-
-conductivityModel Gidaspow;
-
-granularPressureModel Lun;
-
-frictionalStressModel JohnsonJackson;
-
-radialModel     SinclairJackson;
-
-HrenyaSinclairCoeffs
-{
-    L               L [ 0 1 0 0 0 0 0 ] 0.0005;
-}
-
-
-// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Tair b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/T.air
similarity index 97%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Tair
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/T.air
index 25bc08d671014e05362550e22ecd36921d254728..9c0fd4206c19f34a05d8c05da28254b22882ebcf 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Tair
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/T.air
@@ -27,7 +27,7 @@ boundaryField
     outlet
     {
         type               inletOutlet;
-        phi                phiair;
+        phi                phi.air;
         inletValue         $internalField;
         value              $internalField;
     }
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Twater b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/T.water
similarity index 97%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Twater
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/T.water
index f0f366c7dc27735b261b92c9eb7e2570dcaff136..1cfd38f926516878085292090cf2e55699fef0cb 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Twater
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/T.water
@@ -27,7 +27,7 @@ boundaryField
     outlet
     {
         type               inletOutlet;
-        phi                phiwater;
+        phi                phi.water;
         inletValue         uniform 300;
         value              $internalField;
     }
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Theta b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/Theta
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Theta
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/Theta
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Uair b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/U.air
similarity index 95%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Uair
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/U.air
index ac6020947e16d1537f7ed05c0878183567bac15c..e81fffac0612e0a20d26f1cb9be4211ba4be9a16 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Uair
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/U.air
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      binary;
     class       volVectorField;
-    object      Uair;
+    object      U.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -28,7 +28,7 @@ boundaryField
     outlet
     {
         type               pressureInletOutletVelocity;
-        phi                phiair;
+        phi                phi.air;
         value              $internalField;
     }
     walls
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Uwater b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/U.water
similarity index 95%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Uwater
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/U.water
index 22ed59a0ef3e78143b36a455a5c2d9f41f09df3a..aab00fd78bb2a097604737fb5b1b77d2ae159967 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/Uwater
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/U.water
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      binary;
     class       volVectorField;
-    object      Uwater;
+    object      U.water;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -28,7 +28,7 @@ boundaryField
     outlet
     {
         type               pressureInletOutletVelocity;
-        phi                phiwater;
+        phi                phi.water;
         value              $internalField;
     }
     walls
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/alphaair b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/alpha.air
similarity index 98%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/alphaair
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/alpha.air
index a2224f95c3c32f38ce0e3e0dd361b3fabc5bf60f..b59d4482b471c29d89a5c8186b5793446cb7a1a5 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/alphaair
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/alpha.air
@@ -11,13 +11,13 @@ FoamFile
     format      ascii;
     class       volScalarField;
     location    "0";
-    object      alpha1;
+    object      alpha.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 dimensions      [0 0 0 0 0 0 0];
 
-internalField   nonuniform List<scalar>
+internalField   nonuniform List<scalar> 
 1875
 (
 0
@@ -1908,7 +1908,7 @@ boundaryField
     outlet
     {
         type            inletOutlet;
-        phi             phiair;
+        phi             phi.air;
         inletValue      uniform 1;
         value           uniform 1;
     }
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/alphaair.org b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/alpha.air.org
similarity index 93%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/alphaair.org
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/alpha.air.org
index 62088eca2323cb4b66162a3131679877f60bb945..4472b0c63598b7f95acf8d79fac10b3e9a08ebf7 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/alphaair.org
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/alpha.air.org
@@ -10,7 +10,8 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      alphaair;
+    location    "0";
+    object      alpha.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -28,7 +29,7 @@ boundaryField
     outlet
     {
         type            inletOutlet;
-        phi             phiair;
+        phi             phi.air;
         inletValue      uniform 1;
         value           uniform 1;
     }
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/p b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/p
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/p
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/0/p
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/g b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/g
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/g
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/g
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/phaseProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/phaseProperties
new file mode 100644
index 0000000000000000000000000000000000000000..8e7701bf4cbb55811305ff6b022674cfd2bc6e95
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/phaseProperties
@@ -0,0 +1,67 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      phaseProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+phases (air water);
+
+air
+{
+    diameterModel   isothermal;
+    isothermalCoeffs
+    {
+        d0              3e-3;
+        p0              1e5;
+    }
+}
+
+water
+{
+    diameterModel constant;
+    constantCoeffs
+    {
+        d               1e-4;
+    }
+}
+
+drag
+{
+    air     SchillerNaumann;
+    water   SchillerNaumann;
+}
+
+heatTransfer
+{
+    air     RanzMarshall;
+    water   RanzMarshall;
+}
+
+dispersedPhase          both;
+
+residualPhaseFraction   1e-3;
+residualSlip            1e-2;
+
+// Virtual-mass ceofficient
+Cvm             0.5;
+
+// Lift coefficient
+Cl              0;
+
+// Minimum allowable pressure
+pMin            10000;
+
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/polyMesh/blockMeshDict b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/polyMesh/boundary b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/polyMesh/boundary
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/thermophysicalPropertiesair b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air
similarity index 96%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/thermophysicalPropertiesair
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air
index 11c033af59bbfbf08d2b11244e50f0fd00c1542f..3cac781ab1bf649afe060310f5ea7c898123efd9 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/thermophysicalPropertiesair
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.air
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      thermophysicalProperties;
+    object      thermophysicalProperties.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/thermophysicalProperties2 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water
similarity index 95%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/thermophysicalProperties2
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water
index 789f0427d7c9bd5d4d833f44b0f39359e8ab8bbf..394eb31679cf250cd4f43a40924f257c503e52c1 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/thermophysicalProperties2
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/thermophysicalProperties.water
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      thermophysicalProperties;
+    object      thermophysicalProperties.water;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -31,7 +31,7 @@ mixture
     specie
     {
         nMoles      1;
-        molWeight   28.9;
+        molWeight   18;
     }
     equationOfState
     {
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/MRFProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/turbulenceProperties.air
similarity index 92%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/MRFProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/turbulenceProperties.air
index fd749d03963870c76ab4a9d85ad86bd95c33a71f..1296429b72a21953def920b08774aa75e1d048b1 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/MRFProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/turbulenceProperties.air
@@ -11,10 +11,10 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      MRFProperties;
+    object      turbulenceProperties.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-// none
+simulationType  laminar;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/RASProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/turbulenceProperties.water
similarity index 91%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/RASProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/turbulenceProperties.water
index bd099a7e258af8451964c7746334da298510e1f0..7f0d75a82fcdc99677fa0be8a4111cfe91e4a82c 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/RASProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/constant/turbulenceProperties.water
@@ -11,13 +11,10 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      RASProperties;
+    object      turbulenceProperties.water;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-turbulence      on;
-
-printCoeffs     on;
-
+simulationType  laminar;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/controlDict b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/system/controlDict
similarity index 97%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/controlDict
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/system/controlDict
index 24d66f91c7d44dfeb7b24b508c2593511edb6ed9..18bd2e06daecdad9cfcfe4aa17a643d49df8d145 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/controlDict
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/system/controlDict
@@ -60,21 +60,21 @@ functions
         outputControl   outputTime;
         fields
         (
-            Uair
+            U.air
             {
                  mean        on;
                  prime2Mean  off;
                  base        time;
             }
 
-            Uwater
+            U.water
             {
                  mean        on;
                  prime2Mean  off;
                  base        time;
             }
 
-            alphaair
+            alpha.air
             {
                  mean        on;
                  prime2Mean  off;
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/fvSchemes b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/system/fvSchemes
similarity index 90%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/fvSchemes
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/system/fvSchemes
index c0ea375341437d614a1cad16c12827f45ec79cdd..ef63a5dd4cab38262b0f54c7f73a8a7184197784 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/fvSchemes
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/system/fvSchemes
@@ -29,8 +29,8 @@ divSchemes
 {
     default                 none;
 
-    div(phi,alphaair)       Gauss vanLeer;
-    div(phir,alphaair)      Gauss vanLeer;
+    div(phi,alpha.air)      Gauss vanLeer;
+    div(phir,alpha.air)     Gauss vanLeer;
 
     "div\(alphaPhi.*,U.*\)" Gauss limitedLinearV 1;
     "div\(phi.*,U.*\)"      Gauss limitedLinearV 1;
@@ -40,7 +40,7 @@ divSchemes
     "div\(alphaPhi.*,h.*\)" Gauss limitedLinear 1;
     "div\(alphaPhi.*,K.*\)" Gauss limitedLinear 1;
 
-    "div\(alphaPhi.*,(k|epsilon)\)"  Gauss limitedLinear 1;
+    "div\(\(\(alpha.*nuEff.*\)*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
 }
 
 laplacianSchemes
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/system/fvSolution b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..a25ccff8c62a0d6c8289dc37ad95385ffaaaf771
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/system/fvSolution
@@ -0,0 +1,84 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    alpha.air
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 2;
+    }
+
+    p
+    {
+        solver          GAMG;
+        smoother        DIC;
+        nPreSweeps      0;
+        nPostSweeps     2;
+        nFinestSweeps   2;
+        cacheAgglomeration true;
+        nCellsInCoarsestLevel 10;
+        agglomerator    faceAreaPair;
+        mergeLevels     1;
+        tolerance       1e-08;
+        relTol          0.01;
+    }
+
+    pFinal
+    {
+        $p;
+        tolerance       1e-08;
+        relTol          0;
+    }
+
+    "U.*"
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-05;
+        relTol          0;
+    }
+
+    "h.*"
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-8;
+        relTol          0;
+    }
+}
+
+PIMPLE
+{
+    nOuterCorrectors 1;
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 0;
+}
+
+relaxationFactors
+{
+    fields
+    {
+    }
+    equations
+    {
+        ".*"            1;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/setFieldsDict b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/system/setFieldsDict
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/setFieldsDict
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/bubbleColumn/system/setFieldsDict
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/T.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/T.air
new file mode 100644
index 0000000000000000000000000000000000000000..5e2332c34b0949d669c8c0309ff964318c1151ce
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/T.air
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      T.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 0 0 1 0 0 0];
+
+internalField       uniform 300;
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedValue;
+        value              $internalField;
+    }
+
+    outlet
+    {
+        type               inletOutlet;
+        phi                phi.air;
+        inletValue         $internalField;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               zeroGradient;
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/T1 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/T.particles
similarity index 94%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/T1
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/T.particles
index 92073f40861cd9e06527253a2f6e9f41379b5477..155187199907bcc1ea0a526baea46812b3b29d63 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/T1
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/T.particles
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      T1;
+    object      T.particles;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -29,7 +29,7 @@ boundaryField
     outlet
     {
         type               inletOutlet;
-        phi                phi1;
+        phi                phi.particles;
         inletValue         $internalField;
         value              $internalField;
     }
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/Theta b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/Theta.particles
similarity index 89%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/Theta
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/Theta.particles
index 549cece590651e084bfff8997b390bfaad694720..c9b385ccd8b7ceba80aa3332b0c25b85d8328566 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/Theta
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/Theta.particles
@@ -10,22 +10,22 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      Theta;
+    object      Theta.particles;
 }
 // ************************************************************************* //
 
 dimensions          [ 0 2 -2 0 0 0 0 ];
 
-internalField       uniform 1.0e-4;
+internalField       uniform 0;
 
-referenceLevel      0;
+referenceLevel      1e-4;
 
 boundaryField
 {
     inlet
     {
         type               fixedValue;
-        value              uniform 1.0e-4;
+        value              uniform 1e-4;
     }
 
     outlet
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/U2 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/U.air
similarity index 93%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/U2
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/U.air
index cacb4e22301f822a04031ca3c8cef99da533ddb1..4896cfb962a47eebb1ef639ae307045472f49060 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/U2
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/U.air
@@ -8,9 +8,9 @@
 FoamFile
 {
     version     2.0;
-    format      binary;
+    format      ascii;
     class       volVectorField;
-    object      U2;
+    object      U.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -29,7 +29,7 @@ boundaryField
     outlet
     {
         type               pressureInletOutletVelocity;
-        phi                phi2;
+        phi                phi.air;
         value              $internalField;
     }
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/U1 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/U.particles
similarity index 93%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/U1
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/U.particles
index 0543b7e78ff70c020c8651d5f413610c0020e04d..95abcf62b37fe1a1613711e17040560e5d1d4ed9 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/U1
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/U.particles
@@ -8,9 +8,9 @@
 FoamFile
 {
     version     2.0;
-    format      binary;
+    format      ascii;
     class       volVectorField;
-    object      U1;
+    object      U.particles;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -29,7 +29,7 @@ boundaryField
     outlet
     {
         type               pressureInletOutletVelocity;
-        phi                phi1;
+        phi                phi.particles;
         value              $internalField;
     }
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/alpha.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/alpha.air
new file mode 100644
index 0000000000000000000000000000000000000000..b75ea3d3e03df9d73afb17585bda6169698da32b
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/alpha.air
@@ -0,0 +1,6048 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      alpha.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   nonuniform List<scalar> 
+6000
+(
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+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
+{
+    inlet
+    {
+        type            fixedValue;
+        value           uniform 1;
+    }
+    outlet
+    {
+        type            zeroGradient;
+    }
+    walls
+    {
+        type            zeroGradient;
+    }
+    frontAndBackPlanes
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/epsilon b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/alpha.air.org
similarity index 79%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/epsilon
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/alpha.air.org
index 3f507afed8ea6ba738e2fc7772a1fe96b57609de..29db06c78367cb29c5f8b9b9bdc7ca58ee1db9c6 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/epsilon
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/alpha.air.org
@@ -10,39 +10,36 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    location    "0";
-    object      epsilon;
+    object      alpha.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [ 0 2 -3 0 0 0 0 ];
+dimensions      [0 0 0 0 0 0 0];
 
-internalField   uniform 20;
+internalField   uniform 0;
 
 boundaryField
 {
-    rotor
+    inlet
     {
-        type            zeroGradient;
-        value           uniform 20;
+        type            fixedValue;
+        value           uniform 1;
     }
 
-    stator
+    outlet
     {
         type            zeroGradient;
-        value           uniform 20;
     }
 
-    front
+    walls
     {
-        type            empty;
+        type            zeroGradient;
     }
 
-    back
+    frontAndBackPlanes
     {
         type            empty;
     }
 }
 
-
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/alpha1 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/alpha.particles
similarity index 99%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/alpha1
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/alpha.particles
index a50f9c1e24fd1412c50b3c6f90fa0bdd17024633..54696662f7dd9c369fbe0270605298b659c2d100 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/alpha1
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/alpha.particles
@@ -11,13 +11,13 @@ FoamFile
     format      ascii;
     class       volScalarField;
     location    "0";
-    object      alpha1;
+    object      alpha.particles;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 dimensions      [0 0 0 0 0 0 0];
 
-internalField   nonuniform List<scalar>
+internalField   nonuniform List<scalar> 
 6000
 (
 0.55
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/alpha1.org b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/alpha.particles.org
similarity index 97%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/alpha1.org
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/alpha.particles.org
index fdb7e4b86f2155e85eb861ed696f8861302e6fa3..69666444bc1beb16275c2ac20a69f6c41cd4252e 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/alpha1.org
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/alpha.particles.org
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      alpha1;
+    object      alpha.particles;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/epsilon.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/epsilon.air
new file mode 100644
index 0000000000000000000000000000000000000000..0b5f62a356b3f5a9ce5db5401e0b4f29bc1e4fc9
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/epsilon.air
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      epsilon.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 2 -3 0 0 0 0];
+
+internalField       uniform 10;
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedValue;
+        value              $internalField;
+    }
+
+    outlet
+    {
+        type               inletOutlet;
+        phi                phi.air;
+        inletValue         $internalField;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               epsilonWallFunction;
+        value              $internalField;
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/k.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/k.air
new file mode 100644
index 0000000000000000000000000000000000000000..6d823d53288103b382da9a843830d5b1df37a263
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/k.air
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      k.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 2 -2 0 0 0 0];
+
+internalField       uniform 1;
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedValue;
+        value              $internalField;
+    }
+
+    outlet
+    {
+        type               inletOutlet;
+        phi                phi.air;
+        inletValue         $internalField;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               kqRWallFunction;
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/nut.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/nut.air
new file mode 100644
index 0000000000000000000000000000000000000000..dcb65148ae4e0675d7368e0bea77ff0db7f72e60
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/nut.air
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      nut.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 2 -1 0 0 0 0];
+
+internalField       uniform 0;
+
+boundaryField
+{
+    inlet
+    {
+        type               calculated;
+        value              $internalField;
+    }
+
+    outlet
+    {
+        type               calculated;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               nutkWallFunction;
+        value              $internalField;
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/nut.particles b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/nut.particles
new file mode 100644
index 0000000000000000000000000000000000000000..6264a273f79124da66e26f9f2edf102259ac0874
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/nut.particles
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      nut.particles;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 2 -1 0 0 0 0];
+
+internalField       uniform 0;
+
+boundaryField
+{
+    inlet
+    {
+        type               calculated;
+        value              $internalField;
+    }
+
+    outlet
+    {
+        type               calculated;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               calculated;
+        value              $internalField;
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/p b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/p
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/p
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/0/p
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/g b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/g
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/g
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/g
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/transportProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/phaseProperties
similarity index 78%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/transportProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/phaseProperties
index 22cb823b5e8467166888bc825e56fec8967e53e5..7d994cb3fd15234bf6cd8674e841b546b691b1c1 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/transportProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/phaseProperties
@@ -11,11 +11,13 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      transportProperties;
+    object      phaseProperties;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-phase1
+phases (particles air);
+
+particles
 {
     diameterModel constant;
     constantCoeffs
@@ -24,7 +26,7 @@ phase1
     }
 }
 
-phase2
+air
 {
     diameterModel constant;
     constantCoeffs
@@ -33,15 +35,29 @@ phase2
     }
 }
 
+drag
+{
+    particles   GidaspowErgunWenYu;
+    air         GidaspowErgunWenYu;
+}
+
+heatTransfer
+{
+    particles   RanzMarshall;
+    air         RanzMarshall;
+}
+
+dispersedPhase     particles;
+
+residualPhaseFraction   1e-3;
+residualSlip            1e-2;
+
 // Virtual-mass ceofficient
 Cvm             0;
 
 // Lift coefficient
 Cl              0;
 
-// Dispersed-phase turbulence coefficient
-Ct              0;
-
 // Minimum allowable pressure
 pMin            10000;
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/polyMesh/blockMeshDict b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/polyMesh/blockMeshDict
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/polyMesh/blockMeshDict
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/polyMesh/blockMeshDict
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/polyMesh/boundary b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/polyMesh/boundary
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/thermophysicalProperties2 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.air
similarity index 96%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/thermophysicalProperties2
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.air
index e61009c10be927d2af1b6981cc75ad368e85d5c3..befc0aeae449cccc50a24e955083b88b914aba67 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/thermophysicalProperties2
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.air
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      thermophysicalProperties;
+    object      thermophysicalProperties.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/thermophysicalProperties1 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.particles
similarity index 93%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/thermophysicalProperties1
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.particles
index 0ac5f83a42bcfee041ee23060a2d9ba85d476fab..7508b70aa3194312b37a36e71753f74b9cf76166 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/thermophysicalProperties1
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/thermophysicalProperties.particles
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      thermophysicalProperties;
+    object      thermophysicalProperties.particles;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -44,8 +44,8 @@ mixture
     }
     transport
     {
-        mu          2.5e-03;
-        Pr          24.47;
+        mu          0;
+        Pr          1;
     }
 }
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/MRFProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/turbulenceProperties.air
similarity index 92%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/MRFProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/turbulenceProperties.air
index fd749d03963870c76ab4a9d85ad86bd95c33a71f..1296429b72a21953def920b08774aa75e1d048b1 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/MRFProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/turbulenceProperties.air
@@ -11,10 +11,10 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      MRFProperties;
+    object      turbulenceProperties.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-// none
+simulationType  laminar;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/turbulenceProperties.particles b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/turbulenceProperties.particles
new file mode 100644
index 0000000000000000000000000000000000000000..a4b21800313acddd15e33eeb1d0461357e26706b
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/constant/turbulenceProperties.particles
@@ -0,0 +1,59 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties.particles;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  RAS;
+
+RAS
+{
+    RASModel phasePressure;
+
+    turbulence on;
+
+    kineticTheoryCoeffs
+    {
+        equilibrium             on;
+
+        e                       0.8;
+        alphaMax                0.62;
+        alphaMinFriction        0.5;
+
+        viscosityModel          Gidaspow;
+        conductivityModel       Gidaspow;
+        granularPressureModel   Lun;
+        frictionalStressModel   JohnsonJackson;
+        radialModel             SinclairJackson;
+
+        JohnsonJacksonCoeffs
+        {
+            Fr                      0.05;
+            eta                     2;
+            p                       5;
+            phi                     28.5;
+        }
+    }
+
+    phasePressureCoeffs
+    {
+        preAlphaExp     500;
+        expMax          1000;
+        alphaMax        0.62;
+        g0              1000;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/system/controlDict b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/system/controlDict
similarity index 96%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/system/controlDict
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/system/controlDict
index e07be01b0e42f97d8bd948d5362b833c4b35c713..103ff2a9794a349e2a2939e9afb239fcbe9ceae2 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/system/controlDict
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/system/controlDict
@@ -60,21 +60,21 @@ functions
         outputControl   outputTime;
         fields
         (
-            U1
+            U.particles
             {
                  mean        on;
                  prime2Mean  off;
                  base        time;
             }
 
-            U2
+            U.air
             {
                  mean        on;
                  prime2Mean  off;
                  base        time;
             }
 
-            alpha1
+            alpha.particles
             {
                  mean        on;
                  prime2Mean  off;
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/system/fvSchemes b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..93e6cddd228f756399f32ab3ef4d57a9ab9611a7
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/system/fvSchemes
@@ -0,0 +1,76 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default             Euler;
+}
+
+gradSchemes
+{
+    default     Gauss linear;
+}
+
+divSchemes
+{
+    default                 none;
+
+    "div\(phi,alpha.*\)"    Gauss vanLeer;
+    "div\(phir,alpha.*\)"   Gauss vanLeer;
+
+    "div\(alphaPhi.*,U.*\)"     Gauss limitedLinearV 1;
+    "div\(phi.*,U.*\)"          Gauss limitedLinearV 1;
+    "div\(\(alpha.*Rc\)\)"      Gauss linear;
+    "div\(phi.*,.*rho.*\)"      Gauss linear;
+    div(alphaPhi.particles,Theta.particles) Gauss limitedLinear 1;
+    div(alphaPhi.air,k.air)     Gauss limitedLinear 1;
+    div(alphaPhi.air,epsilon.air)     Gauss limitedLinear 1;
+
+    "div\(alphaPhi.*,(h|e).*\)" Gauss limitedLinear 1;
+    "div\(alphaPhi.*,(K.*|p)\)" Gauss limitedLinear 1;
+
+    "div\(\(\(alpha.*nuEff.*\)*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
+
+    div(((nut.particles*dev2(T(grad(U.particles))))+((lambda.particles*div(phi.particles))*(1,0,0,1,0,1))))  Gauss linear;
+}
+
+laplacianSchemes
+{
+    default     Gauss linear uncorrected;
+    bounded     Gauss linear uncorrected;
+}
+
+interpolationSchemes
+{
+    default     linear;
+}
+
+snGradSchemes
+{
+    default     uncorrected;
+    bounded     uncorrected;
+}
+
+fluxRequired
+{
+    default     no;
+    p           ;
+    alpha.particles;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/system/fvSolution b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/system/fvSolution
similarity index 80%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/system/fvSolution
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/system/fvSolution
index e0cc208e4ef5f8e59ae5a5ce3a4871e631eb1303..03aa48fd9aed26a22ed284a2a0c263191d2d4545 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/system/fvSolution
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/system/fvSolution
@@ -17,10 +17,16 @@ FoamFile
 
 solvers
 {
-    alpha1
+    "alpha.*"
     {
         nAlphaCorr      1;
         nAlphaSubCycles 2;
+        implicitPhasePressure yes;
+
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-6;
+        relTol          0;
     }
 
     p
@@ -57,15 +63,7 @@ solvers
     {
         solver          PBiCG;
         preconditioner  DILU;
-        tolerance       1e-8;
-        relTol          0;
-    }
-
-    "alpha.*"
-    {
-        solver          PBiCG;
-        preconditioner  DILU;
-        tolerance       1e-10;
+        tolerance       1e-6;
         relTol          0;
     }
 
@@ -73,19 +71,11 @@ solvers
     {
         solver          PBiCG;
         preconditioner  DILU;
-        tolerance       1e-05;
-        relTol          0;
-    }
-
-    "k.*"
-    {
-        solver          PBiCG;
-        preconditioner  DILU;
-        tolerance       1e-05;
+        tolerance       1e-6;
         relTol          0;
     }
 
-    "epsilon.*"
+    "(k|epsilon).*"
     {
         solver          PBiCG;
         preconditioner  DILU;
@@ -108,12 +98,7 @@ relaxationFactors
     }
     equations
     {
-        "U.*"           1;
-        "h.*"           1;
-        "alpha.*"       1;
-        "Theta.*"       1;
-        "k.*"           1;
-        "epsilon.*"     1;
+        ".*"            1;
     }
 }
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/interfacialProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/system/setFieldsDict
similarity index 67%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/interfacialProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/system/setFieldsDict
index 5964adcedc85ce4cfb8757b6dd2f652ba6cd9b88..da4c6ee6f2b05ccee47aa322a096b2cacad742a0 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/interfacialProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/fluidisedBed/system/setFieldsDict
@@ -10,20 +10,29 @@ FoamFile
     version     2.0;
     format      ascii;
     class       dictionary;
-    location    "constant";
-    object      interfacialProperties;
+    location    "system";
+    object      setFieldsDict;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dragModelair            SchillerNaumann;
-dragModelwater          SchillerNaumann;
+defaultFieldValues
+(
+    volScalarFieldValue alpha.air 1
+    volScalarFieldValue alpha.particles 0
+);
 
-heatTransferModelair    RanzMarshall;
-heatTransferModelwater  RanzMarshall;
+regions
+(
+    boxToCell
+    {
+        box ( 0 0 -0.1 ) ( 0.15 0.5 0.1 );
+        fieldValues
+        (
+            volScalarFieldValue alpha.air 0.45
+            volScalarFieldValue alpha.particles 0.55
+        );
+    }
+);
 
-dispersedPhase          both;
-
-residualPhaseFraction   1e-3;
-residualSlip            1e-2;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/T1 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/T.air
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/T1
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/T.air
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/T2 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/T.water
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/T2
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/T.water
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/Theta b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/Theta
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/Theta
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/Theta
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/U1 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/U.air
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/U1
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/U.air
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/U2 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/U.water
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/U2
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/U.water
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/alpha1 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/alpha.air
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/alpha1
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/alpha.air
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/p b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/p
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/p
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/0/p
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/Allrun b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/Allrun
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/Allrun
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/Allrun
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/MRFProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/MRFProperties
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/MRFProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/MRFProperties
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/g b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/g
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/g
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/g
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/transportProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/phaseProperties
similarity index 80%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/transportProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/phaseProperties
index 071be244440b0a9f281d63867e87687763209d5f..0046495f912257f66dc73da800577ee976f73f42 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/transportProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/phaseProperties
@@ -11,11 +11,13 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      transportProperties;
+    object      phaseProperties;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-phase1
+phases (air water);
+
+air
 {
     diameterModel   isothermal;
     isothermalCoeffs
@@ -25,7 +27,7 @@ phase1
     }
 }
 
-phase2
+water
 {
     diameterModel constant;
     constantCoeffs
@@ -34,15 +36,29 @@ phase2
     }
 }
 
+drag
+{
+    air     SchillerNaumann;
+    water   SchillerNaumann;
+}
+
+heatTransfer
+{
+    air     RanzMarshall;
+    water   RanzMarshall;
+}
+
+dispersedPhase          both;
+
+residualPhaseFraction   1e-3;
+residualSlip            1e-2;
+
 // Virtual-mass ceofficient
 Cvm             0.5;
 
 // Lift coefficient
 Cl              0;
 
-// Dispersed-phase turbulence coefficient
-Ct              1;
-
 // Minimum allowable pressure
 pMin            10000;
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/polyMesh/blockMeshDict.m4
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/polyMesh/blockMeshDict.m4
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/polyMesh/boundary b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/polyMesh/boundary
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/polyMesh/boundary
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/polyMesh/boundary
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/thermophysicalProperties1 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air
similarity index 96%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/thermophysicalProperties1
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air
index 11c033af59bbfbf08d2b11244e50f0fd00c1542f..3cac781ab1bf649afe060310f5ea7c898123efd9 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/thermophysicalProperties1
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.air
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      thermophysicalProperties;
+    object      thermophysicalProperties.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water
new file mode 100644
index 0000000000000000000000000000000000000000..394eb31679cf250cd4f43a40924f257c503e52c1
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/thermophysicalProperties.water
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      thermophysicalProperties.water;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       const;
+    thermo          hConst;
+    equationOfState perfectFluid;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
+
+mixture
+{
+    specie
+    {
+        nMoles      1;
+        molWeight   18;
+    }
+    equationOfState
+    {
+        R           3000;
+        rho0        1027;
+    }
+    thermodynamics
+    {
+        Cp          4195;
+        Hf          0;
+    }
+    transport
+    {
+        mu          3.645e-4;
+        Pr          2.289;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/RASProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.air
similarity index 89%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/RASProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.air
index 552ecb32c7b2430e061322808c20842dc3e354b8..1296429b72a21953def920b08774aa75e1d048b1 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/RASProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.air
@@ -11,15 +11,10 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      RASProperties;
+    object      turbulenceProperties.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-RASModel        laminar;
-
-turbulence      off;
-
-printCoeffs     off;
-
+simulationType  laminar;
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.water b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.water
new file mode 100644
index 0000000000000000000000000000000000000000..7f0d75a82fcdc99677fa0be8a4111cfe91e4a82c
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/constant/turbulenceProperties.water
@@ -0,0 +1,20 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties.water;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/makeMesh b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/makeMesh
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/makeMesh
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/makeMesh
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/controlDict b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/system/controlDict
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/controlDict
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/system/controlDict
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/fvSchemes b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/system/fvSchemes
similarity index 78%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/fvSchemes
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/system/fvSchemes
index 275907488b4c204290759f85a7003bb66f553902..faed9fcacb65e8c45c9e0fd693ffcbd571b48868 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/fvSchemes
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/system/fvSchemes
@@ -29,18 +29,18 @@ divSchemes
 {
     default             none;
 
-    div(phi,alpha1)         Gauss vanLeer;
-    div(phir,alpha1)        Gauss vanLeer;
+    div(phi,alpha.air)      Gauss vanLeer;
+    div(phir,alpha.air)     Gauss vanLeer;
 
-    "div\(alphaPhi.,U.\)"   Gauss limitedLinearV 1;
-    "div\(phi.,U.\)"        Gauss limitedLinearV 1;
+    "div\(alphaPhi.*,U.*\)" Gauss limitedLinearV 1;
+    "div\(phi.*,U.*\)"      Gauss limitedLinearV 1;
     "div\(\(alpha.*Rc\)\)"  Gauss linear;
     "div\(phi.*,.*rho.*\)"  Gauss linear;
 
-    "div\(alphaPhi.,h.\)"   Gauss limitedLinear 1;
-    "div\(alphaPhi.,K.\)"   Gauss limitedLinear 1;
+    "div\(alphaPhi.*,h.*\)" Gauss limitedLinear 1;
+    "div\(alphaPhi.*,K.*\)" Gauss limitedLinear 1;
 
-    "div\(alphaPhi.,(k|epsilon)\)"  Gauss limitedLinear 1;
+    "div\(\(\(alpha.*nuEff.*\)*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
 }
 
 laplacianSchemes
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/fvSolution b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/system/fvSolution
similarity index 85%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/fvSolution
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/system/fvSolution
index 5e6a4b0b21269cbbd6cbde062c090325a1bf1e5e..1646b9187f5ab0b3fea14a9744035c7f1f3cd820 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/fvSolution
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/system/fvSolution
@@ -17,7 +17,7 @@ FoamFile
 
 solvers
 {
-    alpha1
+    alpha.air
     {
         nAlphaCorr      1;
         nAlphaSubCycles 2;
@@ -51,14 +51,6 @@ solvers
         relTol          0.1;
     }
 
-    "alpha.*"
-    {
-        solver          PBiCG;
-        preconditioner  DILU;
-        tolerance       1e-10;
-        relTol          0;
-    }
-
     "(k|epsilon|Theta|h).*"
     {
         solver          PBiCG;
@@ -85,12 +77,7 @@ relaxationFactors
     }
     equations
     {
-        "U.*"            1;
-        "h.*"            1;
-        "alpha.*"        1;
-        "Theta.*"        1;
-        "k.*"            1;
-        "epsilon.*"      1;
+        ".*"             1;
     }
 }
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/topoSetDict b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/system/topoSetDict
similarity index 100%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/topoSetDict
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/laminar/mixerVessel2D/system/topoSetDict
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/interfacialProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/interfacialProperties
deleted file mode 100644
index 06b13a7b3c68ae7a87a4c2f40e232fef99502c7d..0000000000000000000000000000000000000000
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/interfacialProperties
+++ /dev/null
@@ -1,30 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    location    "constant";
-    object      interfacialProperties;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-dragModel1          SchillerNaumann;
-dragModel2          SchillerNaumann;
-
-heatTransferModel1  RanzMarshall;
-heatTransferModel2  RanzMarshall;
-
-dispersedPhase      both;
-dragPhase           blended;
-
-residualPhaseFraction   1e-3;
-residualSlip            1e-2;
-
-// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/kineticTheoryProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/kineticTheoryProperties
deleted file mode 100644
index 2df50542e555669990b2caa032cf9aee7f92b8ad..0000000000000000000000000000000000000000
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/kineticTheoryProperties
+++ /dev/null
@@ -1,52 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  dev                                   |
-|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    location    "constant";
-    object      kineticTheoryProperties;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-kineticTheory   off;
-
-equilibrium     on;
-
-e               e [ 0 0 0 0 0 0 0 ] 0.9;
-
-alphaMax        alphaMax [ 0 0 0 0 0 0 0 ] 0.6;
-
-alphaMinFriction alphaMinFriction [ 0 0 0 0 0 0 0 ] 0.5;
-
-Fr              Fr [ 1 -1 -2 0 0 0 0 ] 0.05;
-
-eta             eta [ 0 0 0 0 0 0 0 ] 2;
-
-p               p [ 0 0 0 0 0 0 0 ] 5;
-
-phi             phi [ 0 0 0 0 0 0 0 ] 25;
-
-viscosityModel  Syamlal;
-
-conductivityModel HrenyaSinclair;
-
-granularPressureModel Lun;
-
-frictionalStressModel JohnsonJackson;
-
-radialModel     SinclairJackson;
-
-HrenyaSinclairCoeffs
-{
-    L               L [ 0 1 0 0 0 0 0 ] 0.0005;
-}
-
-
-// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/T2 b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/T.air
similarity index 95%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/T2
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/T.air
index fc6ae7931a5ba41cf54ac1e03856622d22855d4d..9c0fd4206c19f34a05d8c05da28254b22882ebcf 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/T2
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/T.air
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      T2;
+    object      Tair;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -20,25 +20,22 @@ internalField       uniform 300;
 
 boundaryField
 {
-    inlet
+    walls
     {
-        type               fixedValue;
-        value              $internalField;
+        type               zeroGradient;
     }
-
     outlet
     {
         type               inletOutlet;
-        phi                phi2;
+        phi                phi.air;
         inletValue         $internalField;
         value              $internalField;
     }
-
-    walls
+    inlet
     {
-        type               zeroGradient;
+        type               fixedValue;
+        value              $internalField;
     }
-
     frontAndBackPlanes
     {
         type               empty;
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/T.water b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/T.water
new file mode 100644
index 0000000000000000000000000000000000000000..1cfd38f926516878085292090cf2e55699fef0cb
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/T.water
@@ -0,0 +1,45 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      Twater;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 0 0 1 0 0 0];
+
+internalField       uniform 350;
+
+boundaryField
+{
+    walls
+    {
+        type               zeroGradient;
+    }
+    outlet
+    {
+        type               inletOutlet;
+        phi                phi.water;
+        inletValue         uniform 300;
+        value              $internalField;
+    }
+    inlet
+    {
+        type               fixedValue;
+        value              $internalField;
+    }
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/k b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/Theta
similarity index 82%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/k
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/Theta
index 9701bd625c5d07a6522baa8bdfbbc7b42ba0db3c..e45304b83464ea6a9568531b35b570abae0d768f 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/k
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/Theta
@@ -10,28 +10,27 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      k;
+    object      Theta;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [0 2 -2 0 0 0 0];
+dimensions          [ 0 2 -2 0 0 0 0 ];
 
-internalField   uniform 1e-8;
+internalField   uniform 0.0;
 
 boundaryField
 {
     inlet
     {
         type            fixedValue;
-        value           uniform 1e-8;
+        value           uniform 1.0e-7;
     }
 
     outlet
     {
         type            inletOutlet;
-        phi             phiwater;
-        inletValue      uniform 1e-8;
-        value           uniform 1e-8;
+        inletValue      uniform 1.0e-7;
+        value           uniform 1.0e-7;
     }
 
     walls
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/U.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/U.air
new file mode 100644
index 0000000000000000000000000000000000000000..e81fffac0612e0a20d26f1cb9be4211ba4be9a16
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/U.air
@@ -0,0 +1,41 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      binary;
+    class       volVectorField;
+    object      U.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0.1 0);
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedValue;
+        value              $internalField;
+    }
+    outlet
+    {
+        type               pressureInletOutletVelocity;
+        phi                phi.air;
+        value              $internalField;
+    }
+    walls
+    {
+        type               fixedValue;
+        value              uniform (0 0 0);
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/U.water b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/U.water
new file mode 100644
index 0000000000000000000000000000000000000000..aab00fd78bb2a097604737fb5b1b77d2ae159967
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/U.water
@@ -0,0 +1,41 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      binary;
+    class       volVectorField;
+    object      U.water;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedValue;
+        value              $internalField;
+    }
+    outlet
+    {
+        type               pressureInletOutletVelocity;
+        phi                phi.water;
+        value              $internalField;
+    }
+    walls
+    {
+        type               fixedValue;
+        value              uniform (0 0 0);
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/alpha.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/alpha.air
new file mode 100644
index 0000000000000000000000000000000000000000..b59d4482b471c29d89a5c8186b5793446cb7a1a5
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/alpha.air
@@ -0,0 +1,1926 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      alpha.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   nonuniform List<scalar> 
+1875
+(
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+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
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+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
+{
+    inlet
+    {
+        type            fixedValue;
+        value           uniform 0.5;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        phi             phi.air;
+        inletValue      uniform 1;
+        value           uniform 1;
+    }
+    walls
+    {
+        type            zeroGradient;
+    }
+    defaultFaces
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/alpha.air.org b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/alpha.air.org
new file mode 100644
index 0000000000000000000000000000000000000000..4472b0c63598b7f95acf8d79fac10b3e9a08ebf7
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/alpha.air.org
@@ -0,0 +1,42 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      alpha.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    inlet
+    {
+        type            fixedValue;
+        value           uniform 0.5;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        phi             phi.air;
+        inletValue      uniform 1;
+        value           uniform 1;
+    }
+    walls
+    {
+        type            zeroGradient;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/epsilon b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/epsilon.air
similarity index 80%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/epsilon
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/epsilon.air
index bb5b3e0a73f083f93109b40e0d3659f5f1466b6d..ed94c59d53a9495e41cc6911c3618799ad0daff1 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/0/epsilon
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/epsilon.air
@@ -16,27 +16,28 @@ FoamFile
 
 dimensions      [0 2 -3 0 0 0 0];
 
-internalField   uniform 0.1;
+internalField   uniform 1.5e-4;
 
 boundaryField
 {
     inlet
     {
         type            fixedValue;
-        value           uniform 0.1;
+        value           $internalField;
     }
 
     outlet
     {
         type            inletOutlet;
-        phi             phiwater;
-        inletValue      uniform 0.1;
-        value           uniform 0.1;
+        phi             phi.air;
+        inletValue      $internalField;
+        value           $internalField;
     }
 
     walls
     {
-        type            zeroGradient;
+        type            epsilonWallFunction;
+        value           $internalField;
     }
 
     defaultFaces
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/epsilon.water b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/epsilon.water
new file mode 100644
index 0000000000000000000000000000000000000000..1cd27e448b42cb846648d2fb9e609e6d44c25b78
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/epsilon.water
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      epsilon;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -3 0 0 0 0];
+
+internalField   uniform 1.5e-4;
+
+boundaryField
+{
+    inlet
+    {
+        type            fixedValue;
+        value           $internalField;
+    }
+
+    outlet
+    {
+        type            inletOutlet;
+        phi             phi.water;
+        inletValue      $internalField;
+        value           $internalField;
+    }
+
+    walls
+    {
+        type            epsilonWallFunction;
+        value           $internalField;
+    }
+
+    defaultFaces
+    {
+        type            empty;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/k.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/k.air
new file mode 100644
index 0000000000000000000000000000000000000000..b4dd7631087bbf4acdc15b118acf9d03ac9ae048
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/k.air
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      k;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 3.75e-5;
+
+boundaryField
+{
+    inlet
+    {
+        type            fixedValue;
+        value           $internalField;
+    }
+
+    outlet
+    {
+        type            inletOutlet;
+        phi             phi.air;
+        inletValue      $internalField;
+        value           $internalField;
+    }
+
+    walls
+    {
+        type            kqRWallFunction;
+        value           $internalField;
+    }
+
+    defaultFaces
+    {
+        type            empty;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/k.water b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/k.water
new file mode 100644
index 0000000000000000000000000000000000000000..3381282f9ca36cd142af029eacdd2189886c1b52
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/k.water
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      k;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 3.75e-5;
+
+boundaryField
+{
+    inlet
+    {
+        type            fixedValue;
+        value           $internalField;
+    }
+
+    outlet
+    {
+        type            inletOutlet;
+        phi             phi.water;
+        inletValue      $internalField;
+        value           $internalField;
+    }
+
+    walls
+    {
+        type            kqRWallFunction;
+        value           $internalField;
+    }
+
+    defaultFaces
+    {
+        type            empty;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/nut.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/nut.air
new file mode 100644
index 0000000000000000000000000000000000000000..475091edaa9d00eaef74cb5e5f0031b7381d4a56
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/nut.air
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      k;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -1 0 0 0 0];
+
+internalField   uniform 1e-8;
+
+boundaryField
+{
+    inlet
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    outlet
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    walls
+    {
+        type            nutkWallFunction;
+        value           $internalField;
+    }
+
+    defaultFaces
+    {
+        type            empty;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/nut.water b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/nut.water
new file mode 100644
index 0000000000000000000000000000000000000000..475091edaa9d00eaef74cb5e5f0031b7381d4a56
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/nut.water
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      k;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -1 0 0 0 0];
+
+internalField   uniform 1e-8;
+
+boundaryField
+{
+    inlet
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    outlet
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    walls
+    {
+        type            nutkWallFunction;
+        value           $internalField;
+    }
+
+    defaultFaces
+    {
+        type            empty;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/p b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/p
new file mode 100644
index 0000000000000000000000000000000000000000..ae2c14b7460e91d82d3717d540b6a9d33dc087e8
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/0/p
@@ -0,0 +1,40 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [ 1 -1 -2 0 0 0 0 ];
+
+internalField       uniform 1e5;
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedFluxPressure;
+        value              $internalField;
+    }
+    outlet
+    {
+        type               fixedValue;
+        value              $internalField;
+    }
+    walls
+    {
+        type               fixedFluxPressure;
+        value              $internalField;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/g b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/g
new file mode 100644
index 0000000000000000000000000000000000000000..0cc222ca3457ed24bf9753d0926fbee84359e624
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/g
@@ -0,0 +1,22 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       uniformDimensionedVectorField;
+    location    "constant";
+    object      g;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -2 0 0 0 0];
+value           (0 -9.81 0);
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/transportProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/phaseProperties
similarity index 83%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/transportProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/phaseProperties
index 4109b97fba732b43a9d34b6c3d5b3e6f150495ee..445b31ed27b4c066e571fb74975243250710e8f6 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/transportProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/phaseProperties
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      transportProperties;
+    object      phaseProperties;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -36,6 +36,23 @@ water
     }
 }
 
+drag
+{
+    air     SchillerNaumann;
+    water   SchillerNaumann;
+}
+
+heatTransfer
+{
+    air     RanzMarshall;
+    water   RanzMarshall;
+}
+
+dispersedPhase          both;
+
+residualPhaseFraction   1e-3;
+residualSlip            1e-2;
+
 // Virtual-mass ceofficient
 Cvm             0.5;
 
@@ -49,4 +66,5 @@ Ct              1;
 pMin            10000;
 
 
+
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/ppProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/polyMesh/blockMeshDict
similarity index 64%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/ppProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/polyMesh/blockMeshDict
index eddbfd7ad7910a8a85af9c310b1424eb18d3eb1e..d03967afdc2ccf7afbecdf32d50159c309a475e3 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/ppProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/polyMesh/blockMeshDict
@@ -10,20 +10,52 @@ FoamFile
     version     2.0;
     format      ascii;
     class       dictionary;
-    location    "constant";
-    object      ppProperties;
+    object      blockMeshDict;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-preAlphaExp     300;
+convertToMeters 1;
 
-expMax          10;
+vertices
+(
+    (0 0 0)
+    (0.15 0 0)
+    (0.15 1 0)
+    (0 1 0)
+    (0 0 0.1)
+    (0.15 0 0.1)
+    (0.15 1 0.1)
+    (0 1 0.1)
+);
 
-alphaMax        0.6;
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (25 75 1) simpleGrading (1 1 1)
+);
 
-g0              g0 [ 1 -1 -2 0 0 0 0 ] 0;
+edges
+(
+);
 
-packingLimiter  off;
+patches
+(
+    patch inlet
+    (
+        (1 5 4 0)
+    )
+    patch outlet
+    (
+        (3 7 6 2)
+    )
+    wall walls
+    (
+        (0 4 7 3)
+        (2 6 5 1)
+    )
+);
 
+mergePatchPairs
+(
+);
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/polyMesh/boundary b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/polyMesh/boundary
new file mode 100644
index 0000000000000000000000000000000000000000..bf47f69643c9925d3a1ef19c6b4ddc67cf604e0a
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/polyMesh/boundary
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       polyBoundaryMesh;
+    location    "constant/polyMesh";
+    object      boundary;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+4
+(
+    inlet
+    {
+        type            patch;
+        nFaces          25;
+        startFace       3650;
+    }
+    outlet
+    {
+        type            patch;
+        nFaces          25;
+        startFace       3675;
+    }
+    walls
+    {
+        type            wall;
+        nFaces          150;
+        startFace       3700;
+    }
+    defaultFaces
+    {
+        type            empty;
+        inGroups        1(empty);
+        nFaces          3750;
+        startFace       3850;
+    }
+)
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/thermophysicalProperties.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/thermophysicalProperties.air
new file mode 100644
index 0000000000000000000000000000000000000000..3cac781ab1bf649afe060310f5ea7c898123efd9
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/thermophysicalProperties.air
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      thermophysicalProperties.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       const;
+    thermo          hConst;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
+
+mixture
+{
+    specie
+    {
+        nMoles      1;
+        molWeight   28.9;
+    }
+    thermodynamics
+    {
+        Cp          1007;
+        Hf          0;
+    }
+    transport
+    {
+        mu          1.84e-05;
+        Pr          0.7;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/thermophysicalPropertieswater b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/thermophysicalProperties.water
similarity index 96%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/thermophysicalPropertieswater
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/thermophysicalProperties.water
index 789f0427d7c9bd5d4d833f44b0f39359e8ab8bbf..935e0715ef3cf71e6fd0cbe435f89c3edce89c87 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/thermophysicalPropertieswater
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/thermophysicalProperties.water
@@ -11,7 +11,7 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      thermophysicalProperties;
+    object      thermophysicalProperties.water;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/ppProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/turbulenceProperties.air
similarity index 84%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/ppProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/turbulenceProperties.air
index eddbfd7ad7910a8a85af9c310b1424eb18d3eb1e..6deff0f5921aabff4e42de76f78754a54622b8ca 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/constant/ppProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/turbulenceProperties.air
@@ -11,19 +11,19 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      ppProperties;
+    object      turbulenceProperties.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-preAlphaExp     300;
+simulationType  RAS;
 
-expMax          10;
-
-alphaMax        0.6;
-
-g0              g0 [ 1 -1 -2 0 0 0 0 ] 0;
+RAS
+{
+    RASModel continuousGasKEpsilon;
 
-packingLimiter  off;
+    turbulence      on;
 
+    printCoeffs     on;
+}
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/ppProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/turbulenceProperties.water
similarity index 80%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/ppProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/turbulenceProperties.water
index f6416561c0ae471b7d9191871e2c6bcd33667bda..357bfd4bfa5f7974058e2832f9fec5c93ef60a89 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/constant/ppProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/constant/turbulenceProperties.water
@@ -11,19 +11,24 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      ppProperties;
+    object      turbulenceProperties.water;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-preAlphaExp     500;
+simulationType  RAS;
 
-expMax          1000;
-
-alphaMax        0.62;
+RAS
+{
+    RASModel LaheyKEpsilon;
 
-g0              g0 [ 1 -1 -2 0 0 0 0 ] 0;
+    turbulence      on;
 
-packingLimiter  no;
+    printCoeffs     on;
 
+    LaheyKEpsilonCoeffs
+    {
+        //Cmub 0;
+    }
+}
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/system/controlDict b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..18bd2e06daecdad9cfcfe4aa17a643d49df8d145
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/system/controlDict
@@ -0,0 +1,95 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     compressibleTwoPhaseEulerFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         100;
+
+deltaT          0.005;
+
+writeControl    runTime;
+
+writeInterval   1;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression uncompressed;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+adjustTimeStep  no;
+
+maxCo           0.5;
+
+maxDeltaT       1;
+
+functions
+{
+    fieldAverage1
+    {
+        type            fieldAverage;
+        functionObjectLibs ( "libfieldFunctionObjects.so" );
+        outputControl   outputTime;
+        fields
+        (
+            U.air
+            {
+                 mean        on;
+                 prime2Mean  off;
+                 base        time;
+            }
+
+            U.water
+            {
+                 mean        on;
+                 prime2Mean  off;
+                 base        time;
+            }
+
+            alpha.air
+            {
+                 mean        on;
+                 prime2Mean  off;
+                 base        time;
+            }
+
+            p
+            {
+                 mean        on;
+                 prime2Mean  off;
+                 base        time;
+            }
+        );
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/system/fvSchemes b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/system/fvSchemes
similarity index 63%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/system/fvSchemes
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/system/fvSchemes
index 6cbee38f7871c73a58663948be4905135d9e649e..9393e5c97eebcfa75718194cba3bc6ff794421ee 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/system/fvSchemes
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/system/fvSchemes
@@ -17,52 +17,53 @@ FoamFile
 
 ddtSchemes
 {
-    default             Euler;
+    default         Euler;
 }
 
 gradSchemes
 {
-    default     Gauss linear;
+    default         Gauss linear;
 }
 
 divSchemes
 {
     default                 none;
 
-    div(phi,alpha1)         Gauss vanLeer;
-    div(phir,alpha1)        Gauss vanLeer;
+    div(phi,alpha.air)      Gauss vanLeer;
+    div(phir,alpha.air)     Gauss vanLeer;
 
-    "div\(alphaPhi.,U.\)"   Gauss limitedLinearV 1;
-    "div\(phi.,U.\)"        Gauss limitedLinearV 1;
+    "div\(alphaPhi.*,U.*\)" Gauss limitedLinearV 1;
+    "div\(phi.*,U.*\)"      Gauss limitedLinearV 1;
     "div\(\(alpha.*Rc\)\)"  Gauss linear;
     "div\(phi.*,.*rho.*\)"  Gauss linear;
 
-    "div\(alphaPhi.,(h|e).\)"   Gauss limitedLinear 1;
-    "div\(alphaPhi.,(K.|p)\)"   Gauss limitedLinear 1;
+    "div\(alphaPhi.*,h.*\)" Gauss limitedLinear 1;
+    "div\(alphaPhi.*,K.*\)" Gauss limitedLinear 1;
 
-    div(alphaPhi2,k)        Gauss limitedLinear 1;
-    div(alphaPhi2,epsilon)  Gauss limitedLinear 1;
+    "div\(alphaPhi.*,(k|epsilon).*\)"  Gauss limitedLinear 1;
+
+    "div\(\(\(alpha.*nuEff.*\)*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
 }
 
 laplacianSchemes
 {
-    default     Gauss linear uncorrected;
+    default         Gauss linear uncorrected;
 }
 
 interpolationSchemes
 {
-    default     linear;
+    default         linear;
 }
 
 snGradSchemes
 {
-    default     uncorrected;
+    default         uncorrected;
 }
 
 fluxRequired
 {
-    default     no;
-    p           ;
+    default         no;
+    p               ;
 }
 
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/fvSolution b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/system/fvSolution
similarity index 87%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/fvSolution
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/system/fvSolution
index 1689fc3519883a0af17454b6842bfb264a5690a3..31c23479937af718dd1eb38c7bd6698d9b987645 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/fvSolution
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/system/fvSolution
@@ -17,7 +17,7 @@ FoamFile
 
 solvers
 {
-    alphaair
+    alpha.air
     {
         nAlphaCorr      1;
         nAlphaSubCycles 2;
@@ -49,7 +49,7 @@ solvers
     {
         solver          PBiCG;
         preconditioner  DILU;
-        tolerance       1e-05;
+        tolerance       1e-7;
         relTol          0;
     }
 
@@ -57,7 +57,7 @@ solvers
     {
         solver          PBiCG;
         preconditioner  DILU;
-        tolerance       1e-8;
+        tolerance       1e-7;
         relTol          0;
     }
 
@@ -65,7 +65,7 @@ solvers
     {
         solver          PBiCG;
         preconditioner  DILU;
-        tolerance       1e-05;
+        tolerance       1e-7;
         relTol          0;
     }
 }
@@ -84,12 +84,7 @@ relaxationFactors
     }
     equations
     {
-        "U.*"           1;
-        "h.*"           1;
-        "alpha.*"       1;
-        "Theta.*"       1;
-        "k.*"           1;
-        "epsilon.*"     1;
+        ".*"            1;
     }
 }
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/system/setFieldsDict b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/system/setFieldsDict
similarity index 79%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/system/setFieldsDict
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/system/setFieldsDict
index 8347405ba76b4e99de866bf32c536313cec19d29..93d742ba74a2424f861b51d1c5d2d8211a625715 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/system/setFieldsDict
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/bubbleColumn/system/setFieldsDict
@@ -15,9 +15,22 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-defaultFieldValues ( volScalarFieldValue alpha1 0 );
+defaultFieldValues
+(
+    volScalarFieldValue alpha.air 1
+);
 
-regions         ( boxToCell { box ( 0 0 -0.1 ) ( 0.15 0.5 0.1 ) ; fieldValues ( volScalarFieldValue alpha1 0.55 ) ; } );
+regions
+(
+    boxToCell
+    {
+        box (0 0 -0.1) (0.15 0.701 0.1);
+        fieldValues
+        (
+            volScalarFieldValue alpha.air 0
+        );
+    }
+);
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/T.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/T.air
new file mode 100644
index 0000000000000000000000000000000000000000..5e2332c34b0949d669c8c0309ff964318c1151ce
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/T.air
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      T.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 0 0 1 0 0 0];
+
+internalField       uniform 300;
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedValue;
+        value              $internalField;
+    }
+
+    outlet
+    {
+        type               inletOutlet;
+        phi                phi.air;
+        inletValue         $internalField;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               zeroGradient;
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/T.particles b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/T.particles
new file mode 100644
index 0000000000000000000000000000000000000000..155187199907bcc1ea0a526baea46812b3b29d63
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/T.particles
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      T.particles;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 0 0 1 0 0 0];
+
+internalField       uniform 600;
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedValue;
+        value              $internalField;
+    }
+
+    outlet
+    {
+        type               inletOutlet;
+        phi                phi.particles;
+        inletValue         $internalField;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               zeroGradient;
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/k b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/Theta.particles
similarity index 68%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/k
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/Theta.particles
index 1ae05e468e21b3ba28c4aecccfafa12962e30bce..c9b385ccd8b7ceba80aa3332b0c25b85d8328566 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/fluidisedBed/0/k
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/Theta.particles
@@ -10,30 +10,27 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      k;
+    object      Theta.particles;
 }
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// ************************************************************************* //
 
 dimensions          [ 0 2 -2 0 0 0 0 ];
 
-internalField       uniform 1.0;
+internalField       uniform 0;
 
-referenceLevel      0;
+referenceLevel      1e-4;
 
 boundaryField
 {
     inlet
     {
         type               fixedValue;
-        value              uniform 1.0;
+        value              uniform 1e-4;
     }
 
     outlet
     {
-        type               inletOutlet;
-        phi                phi2;
-        inletValue         uniform 1.0;
-        value              uniform 1.0;
+        type               zeroGradient;
     }
 
     walls
@@ -47,4 +44,4 @@ boundaryField
     }
 }
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/U.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/U.air
new file mode 100644
index 0000000000000000000000000000000000000000..4896cfb962a47eebb1ef639ae307045472f49060
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/U.air
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0.25 0);
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedValue;
+        value              uniform (0 0.25 0);
+    }
+
+    outlet
+    {
+        type               pressureInletOutletVelocity;
+        phi                phi.air;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/U.particles b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/U.particles
new file mode 100644
index 0000000000000000000000000000000000000000..95abcf62b37fe1a1613711e17040560e5d1d4ed9
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/U.particles
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U.particles;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedValue;
+        value              uniform (0 0 0);
+    }
+
+    outlet
+    {
+        type               pressureInletOutletVelocity;
+        phi                phi.particles;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               fixedValue;
+        value              uniform (0 0 0);
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/alpha.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/alpha.air
new file mode 100644
index 0000000000000000000000000000000000000000..b75ea3d3e03df9d73afb17585bda6169698da32b
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/alpha.air
@@ -0,0 +1,6048 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      alpha.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   nonuniform List<scalar> 
+6000
+(
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+0.45
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+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
+{
+    inlet
+    {
+        type            fixedValue;
+        value           uniform 1;
+    }
+    outlet
+    {
+        type            zeroGradient;
+    }
+    walls
+    {
+        type            zeroGradient;
+    }
+    frontAndBackPlanes
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/alpha.air.org b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/alpha.air.org
new file mode 100644
index 0000000000000000000000000000000000000000..29db06c78367cb29c5f8b9b9bdc7ca58ee1db9c6
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/alpha.air.org
@@ -0,0 +1,45 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alpha.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    inlet
+    {
+        type            fixedValue;
+        value           uniform 1;
+    }
+
+    outlet
+    {
+        type            zeroGradient;
+    }
+
+    walls
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBackPlanes
+    {
+        type            empty;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/alpha.particles b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/alpha.particles
new file mode 100644
index 0000000000000000000000000000000000000000..54696662f7dd9c369fbe0270605298b659c2d100
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/alpha.particles
@@ -0,0 +1,6048 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      alpha.particles;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   nonuniform List<scalar> 
+6000
+(
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0.55
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+)
+;
+
+boundaryField
+{
+    inlet
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+    outlet
+    {
+        type            zeroGradient;
+    }
+    walls
+    {
+        type            zeroGradient;
+    }
+    frontAndBackPlanes
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/k b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/alpha.particles.org
similarity index 85%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/k
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/alpha.particles.org
index 4704b49c838eb9f1f6c32dad5d2440ad7e7989f6..69666444bc1beb16275c2ac20a69f6c41cd4252e 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/0/k
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/alpha.particles.org
@@ -10,39 +10,36 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    location    "0";
-    object      k;
+    object      alpha.particles;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-dimensions      [ 0 2 -2 0 0 0 0 ];
+dimensions      [0 0 0 0 0 0 0];
 
 internalField   uniform 0;
 
 boundaryField
 {
-    rotor
+    inlet
     {
-        type            zeroGradient;
+        type            fixedValue;
         value           uniform 0;
     }
 
-    stator
+    outlet
     {
         type            zeroGradient;
-        value           uniform 0;
     }
 
-    front
+    walls
     {
-        type            empty;
+        type            zeroGradient;
     }
 
-    back
+    frontAndBackPlanes
     {
         type            empty;
     }
 }
 
-
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/epsilon.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/epsilon.air
new file mode 100644
index 0000000000000000000000000000000000000000..0b5f62a356b3f5a9ce5db5401e0b4f29bc1e4fc9
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/epsilon.air
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      epsilon.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 2 -3 0 0 0 0];
+
+internalField       uniform 10;
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedValue;
+        value              $internalField;
+    }
+
+    outlet
+    {
+        type               inletOutlet;
+        phi                phi.air;
+        inletValue         $internalField;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               epsilonWallFunction;
+        value              $internalField;
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/k.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/k.air
new file mode 100644
index 0000000000000000000000000000000000000000..6d823d53288103b382da9a843830d5b1df37a263
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/k.air
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      k.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 2 -2 0 0 0 0];
+
+internalField       uniform 1;
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedValue;
+        value              $internalField;
+    }
+
+    outlet
+    {
+        type               inletOutlet;
+        phi                phi.air;
+        inletValue         $internalField;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               kqRWallFunction;
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/nut.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/nut.air
new file mode 100644
index 0000000000000000000000000000000000000000..dcb65148ae4e0675d7368e0bea77ff0db7f72e60
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/nut.air
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      nut.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 2 -1 0 0 0 0];
+
+internalField       uniform 0;
+
+boundaryField
+{
+    inlet
+    {
+        type               calculated;
+        value              $internalField;
+    }
+
+    outlet
+    {
+        type               calculated;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               nutkWallFunction;
+        value              $internalField;
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/nut.particles b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/nut.particles
new file mode 100644
index 0000000000000000000000000000000000000000..6264a273f79124da66e26f9f2edf102259ac0874
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/nut.particles
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      nut.particles;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 2 -1 0 0 0 0];
+
+internalField       uniform 0;
+
+boundaryField
+{
+    inlet
+    {
+        type               calculated;
+        value              $internalField;
+    }
+
+    outlet
+    {
+        type               calculated;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               calculated;
+        value              $internalField;
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/p b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/p
new file mode 100644
index 0000000000000000000000000000000000000000..08560053d57ba942a2a9776708fdbf73c01af651
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/0/p
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [ 1 -1 -2 0 0 0 0 ];
+
+internalField       uniform 1e5;
+
+boundaryField
+{
+    inlet
+    {
+        type               fixedFluxPressure;
+        value              $internalField;
+    }
+
+    outlet
+    {
+        type               fixedValue;
+        value              $internalField;
+    }
+
+    walls
+    {
+        type               fixedFluxPressure;
+        value              $internalField;
+    }
+
+    frontAndBackPlanes
+    {
+        type               empty;
+    }
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/g b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/g
new file mode 100644
index 0000000000000000000000000000000000000000..e0ac2653b5b370ad62f6770588121d30cac51627
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/g
@@ -0,0 +1,22 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       uniformDimensionedVectorField;
+    location    "constant";
+    object      g;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -2 0 0 0 0];
+value           ( 0 -9.81 0 );
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/phaseProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/phaseProperties
new file mode 100644
index 0000000000000000000000000000000000000000..7d994cb3fd15234bf6cd8674e841b546b691b1c1
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/phaseProperties
@@ -0,0 +1,65 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      phaseProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+phases (particles air);
+
+particles
+{
+    diameterModel constant;
+    constantCoeffs
+    {
+        d               3e-4;
+    }
+}
+
+air
+{
+    diameterModel constant;
+    constantCoeffs
+    {
+        d               1;
+    }
+}
+
+drag
+{
+    particles   GidaspowErgunWenYu;
+    air         GidaspowErgunWenYu;
+}
+
+heatTransfer
+{
+    particles   RanzMarshall;
+    air         RanzMarshall;
+}
+
+dispersedPhase     particles;
+
+residualPhaseFraction   1e-3;
+residualSlip            1e-2;
+
+// Virtual-mass ceofficient
+Cvm             0;
+
+// Lift coefficient
+Cl              0;
+
+// Minimum allowable pressure
+pMin            10000;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/polyMesh/blockMeshDict b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/polyMesh/blockMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..900f5a585b8a3abd2fd564c7b949035e390640ea
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/polyMesh/blockMeshDict
@@ -0,0 +1,66 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+convertToMeters 1;
+
+vertices
+(
+    (0 0 -0.01)
+    (0.15 0 -0.01)
+    (0.15 1 -0.01)
+    (0 1 -0.01)
+    (0 0 0.01)
+    (0.15 0 0.01)
+    (0.15 1 0.01)
+    (0 1 0.01)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (30 200 1) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+patches
+(
+    patch inlet
+    (
+        (1 5 4 0)
+    )
+    patch outlet
+    (
+        (3 7 6 2)
+    )
+    wall walls
+    (
+        (0 4 7 3)
+        (2 6 5 1)
+    )
+    empty frontAndBackPlanes
+    (
+        (0 3 2 1)
+        (4 5 6 7)
+    )
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/polyMesh/boundary b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/polyMesh/boundary
new file mode 100644
index 0000000000000000000000000000000000000000..a9ee4ff2e652ee07eb4f455a9e47c2de57453c61
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/polyMesh/boundary
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       polyBoundaryMesh;
+    location    "constant/polyMesh";
+    object      boundary;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+4
+(
+    inlet
+    {
+        type            patch;
+        nFaces          30;
+        startFace       11770;
+    }
+    outlet
+    {
+        type            patch;
+        nFaces          30;
+        startFace       11800;
+    }
+    walls
+    {
+        type            wall;
+        nFaces          400;
+        startFace       11830;
+    }
+    frontAndBackPlanes
+    {
+        type            empty;
+        inGroups        1(empty);
+        nFaces          12000;
+        startFace       12230;
+    }
+)
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/thermophysicalProperties.air b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/thermophysicalProperties.air
new file mode 100644
index 0000000000000000000000000000000000000000..befc0aeae449cccc50a24e955083b88b914aba67
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/thermophysicalProperties.air
@@ -0,0 +1,49 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      thermophysicalProperties.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       const;
+    thermo          hConst;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleInternalEnergy;
+}
+
+mixture
+{
+    specie
+    {
+        nMoles      1;
+        molWeight   28.9;
+    }
+    thermodynamics
+    {
+        Cp          1007;
+        Hf          0;
+    }
+    transport
+    {
+        mu          1.84e-05;
+        Pr          0.7;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/thermophysicalProperties.particles b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/thermophysicalProperties.particles
new file mode 100644
index 0000000000000000000000000000000000000000..7508b70aa3194312b37a36e71753f74b9cf76166
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/thermophysicalProperties.particles
@@ -0,0 +1,53 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      thermophysicalProperties.particles;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       const;
+    thermo          hConst;
+    equationOfState rhoConst;
+    specie          specie;
+    energy          sensibleInternalEnergy;
+}
+
+mixture
+{
+    specie
+    {
+        nMoles      1;
+        molWeight   100;
+    }
+    equationOfState
+    {
+        rho         2500;
+    }
+    thermodynamics
+    {
+        Cp          6000;
+        Hf          0;
+    }
+    transport
+    {
+        mu          0;
+        Pr          1;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/RASProperties b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/turbulenceProperties.air
similarity index 88%
rename from tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/RASProperties
rename to tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/turbulenceProperties.air
index 41b54318fe41ab6593fd868ca5c080769a1988c1..673e6f8d344ed3f2cec5580af31a02b32ee064f4 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/constant/RASProperties
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/turbulenceProperties.air
@@ -11,15 +11,18 @@ FoamFile
     format      ascii;
     class       dictionary;
     location    "constant";
-    object      RASProperties;
+    object      turbulenceProperties.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-RASModel        kEpsilon;
+simulationType  RAS;
 
-turbulence      off;
+RAS
+{
+    RASModel kEpsilon;
 
-printCoeffs     on;
+    turbulence on;
+}
 
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/turbulenceProperties.particles b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/turbulenceProperties.particles
new file mode 100644
index 0000000000000000000000000000000000000000..d41e1058279efa8cdfd53f1d6354c7bc2e07e6e5
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/constant/turbulenceProperties.particles
@@ -0,0 +1,59 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties.particles;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  RAS;
+
+RAS
+{
+    RASModel kineticTheory;
+
+    turbulence on;
+
+    kineticTheoryCoeffs
+    {
+        equilibrium             on;
+
+        e                       0.8;
+        alphaMax                0.62;
+        alphaMinFriction        0.5;
+
+        viscosityModel          Gidaspow;
+        conductivityModel       Gidaspow;
+        granularPressureModel   Lun;
+        frictionalStressModel   JohnsonJackson;
+        radialModel             SinclairJackson;
+
+        JohnsonJacksonCoeffs
+        {
+            Fr                      0.05;
+            eta                     2;
+            p                       5;
+            phi                     28.5;
+        }
+    }
+
+    phasePressureCoeffs
+    {
+        preAlphaExp     500;
+        expMax          1000;
+        alphaMax        0.62;
+        g0              1000;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/system/controlDict b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..103ff2a9794a349e2a2939e9afb239fcbe9ceae2
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/system/controlDict
@@ -0,0 +1,95 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     compressibleTwoPhaseEulerFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         2;
+
+deltaT          0.0002;
+
+writeControl    runTime;
+
+writeInterval   0.01;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression uncompressed;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable on;
+
+adjustTimeStep  no;
+
+maxCo           0.9;
+
+maxDeltaT       1e-05;
+
+functions
+{
+    fieldAverage1
+    {
+        type            fieldAverage;
+        functionObjectLibs ( "libfieldFunctionObjects.so" );
+        outputControl   outputTime;
+        fields
+        (
+            U.particles
+            {
+                 mean        on;
+                 prime2Mean  off;
+                 base        time;
+            }
+
+            U.air
+            {
+                 mean        on;
+                 prime2Mean  off;
+                 base        time;
+            }
+
+            alpha.particles
+            {
+                 mean        on;
+                 prime2Mean  off;
+                 base        time;
+            }
+
+            p
+            {
+                 mean        on;
+                 prime2Mean  off;
+                 base        time;
+            }
+        );
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/system/fvSchemes b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..93e6cddd228f756399f32ab3ef4d57a9ab9611a7
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/system/fvSchemes
@@ -0,0 +1,76 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default             Euler;
+}
+
+gradSchemes
+{
+    default     Gauss linear;
+}
+
+divSchemes
+{
+    default                 none;
+
+    "div\(phi,alpha.*\)"    Gauss vanLeer;
+    "div\(phir,alpha.*\)"   Gauss vanLeer;
+
+    "div\(alphaPhi.*,U.*\)"     Gauss limitedLinearV 1;
+    "div\(phi.*,U.*\)"          Gauss limitedLinearV 1;
+    "div\(\(alpha.*Rc\)\)"      Gauss linear;
+    "div\(phi.*,.*rho.*\)"      Gauss linear;
+    div(alphaPhi.particles,Theta.particles) Gauss limitedLinear 1;
+    div(alphaPhi.air,k.air)     Gauss limitedLinear 1;
+    div(alphaPhi.air,epsilon.air)     Gauss limitedLinear 1;
+
+    "div\(alphaPhi.*,(h|e).*\)" Gauss limitedLinear 1;
+    "div\(alphaPhi.*,(K.*|p)\)" Gauss limitedLinear 1;
+
+    "div\(\(\(alpha.*nuEff.*\)*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
+
+    div(((nut.particles*dev2(T(grad(U.particles))))+((lambda.particles*div(phi.particles))*(1,0,0,1,0,1))))  Gauss linear;
+}
+
+laplacianSchemes
+{
+    default     Gauss linear uncorrected;
+    bounded     Gauss linear uncorrected;
+}
+
+interpolationSchemes
+{
+    default     linear;
+}
+
+snGradSchemes
+{
+    default     uncorrected;
+    bounded     uncorrected;
+}
+
+fluxRequired
+{
+    default     no;
+    p           ;
+    alpha.particles;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/system/fvSolution b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..03aa48fd9aed26a22ed284a2a0c263191d2d4545
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/system/fvSolution
@@ -0,0 +1,106 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    "alpha.*"
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 2;
+        implicitPhasePressure yes;
+
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-6;
+        relTol          0;
+    }
+
+    p
+    {
+        solver          GAMG;
+        smoother        DIC;
+        nPreSweeps      0;
+        nPostSweeps     2;
+        nFinestSweeps   2;
+        cacheAgglomeration true;
+        nCellsInCoarsestLevel 10;
+        agglomerator    faceAreaPair;
+        mergeLevels     1;
+        tolerance       1e-08;
+        relTol          0.01;
+    }
+
+    pFinal
+    {
+        $p;
+        tolerance       1e-08;
+        relTol          0;
+    }
+
+    "U.*"
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-05;
+        relTol          0;
+    }
+
+    "(h|e).*"
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-6;
+        relTol          0;
+    }
+
+    "Theta.*"
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-6;
+        relTol          0;
+    }
+
+    "(k|epsilon).*"
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-05;
+        relTol          0;
+    }
+}
+
+PIMPLE
+{
+    nOuterCorrectors 1;
+    nCorrectors     3;
+    nNonOrthogonalCorrectors 0;
+}
+
+relaxationFactors
+{
+    fields
+    {
+    }
+    equations
+    {
+        ".*"            1;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/system/setFieldsDict b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/system/setFieldsDict
new file mode 100644
index 0000000000000000000000000000000000000000..da4c6ee6f2b05ccee47aa322a096b2cacad742a0
--- /dev/null
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/ras/fluidisedBed/system/setFieldsDict
@@ -0,0 +1,38 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      setFieldsDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+defaultFieldValues
+(
+    volScalarFieldValue alpha.air 1
+    volScalarFieldValue alpha.particles 0
+);
+
+regions
+(
+    boxToCell
+    {
+        box ( 0 0 -0.1 ) ( 0.15 0.5 0.1 );
+        fieldValues
+        (
+            volScalarFieldValue alpha.air 0.45
+            volScalarFieldValue alpha.particles 0.55
+        );
+    }
+);
+
+
+// ************************************************************************* //