diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/correctPhi.H b/applications/solvers/multiphase/interFoam/interDyMFoam/correctPhi.H
index 8d3e60da4044ce89d0a23c54e8a532d26067f143..75560b6337fbeb5870e60a496bf1d798a40de7d9 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/correctPhi.H
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/correctPhi.H
@@ -52,7 +52,6 @@
             phiAbs = phi;
             phiAbs.oldTime() = phi;
             fvc::makeRelative(phi, U);
-            phi.oldTime() = phi;
         }
     }
 }
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
index 3ccfa73fee62d91fb88baf889291d6c9af3950ac..0c22dd01b7527fa7fb4ba8e5a39d7e861e38d093 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
@@ -81,6 +81,9 @@ int main(int argc, char *argv[])
         scalar timeBeforeMeshUpdate = runTime.elapsedCpuTime();
 
         {
+            // Ensure old-time U exists for mapping
+            U.oldTime();
+
             // Calculate the relative velocity used to map the relative flux phi
             volVectorField Urel("Urel", U);
 
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
index a19b6a3d9b5f61d9d5fd0028438cf6712f9cd468..0e3527cfae0bbd81c9de6691895d9943d9461a02 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
@@ -812,7 +812,7 @@ void Foam::multiphaseSystem::solve()
 
     const Time& runTime = mesh_.time();
 
-    const dictionary& alphaControls = mesh_.solverDict(phases_.first().name());
+    const dictionary& alphaControls = mesh_.solverDict("alpha");
     label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
 
     if (nAlphaSubCycles > 1)
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H b/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H
index 5e71a2eeebf3fc0aafefd77baa2ffe543d47b1c6..7b5b83784da166fb003cb9f965321d1503e18384 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H
@@ -166,6 +166,9 @@
     {
         phaseModel& phase = iter();
 
+        phase.phi().boundaryField() ==
+            (mesh.Sf().boundaryField() & phase.U().boundaryField());
+
         mrfZones.relativeFlux(phase.phi().oldTime());
         mrfZones.relativeFlux(phase.phi());
 
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
index a1545657473523bdfea37a8c4ba3d5fe0aa7afff..7b1a0e027df758527fc2eafa9b629aec768d555d 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
@@ -246,7 +246,7 @@ void Foam::multiphaseMixture::solve()
 
     volScalarField& alpha = phases_.first();
 
-    const dictionary& alphaControls = mesh_.solverDict(alpha.name());
+    const dictionary& alphaControls = mesh_.solverDict("alpha");
     label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
     scalar cAlpha(readScalar(alphaControls.lookup("cAlpha")));
 
diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/automatic/automatic.C b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/automatic/automatic.C
index 411500e8c0c8c9ca531d6a5f7df683d27c75ec2d..0898ac44ada0abc34091b4d289d466ecd07d0b04 100644
--- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/automatic/automatic.C
+++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/cellSizeControlSurfaces/surfaceCellSizeFunction/cellSizeCalculationType/automatic/automatic.C
@@ -219,8 +219,10 @@ Foam::tmp<Foam::triSurfacePointScalarField> Foam::automatic::load()
             true
         );
 
-        scalarField internalClosenessPointField =
-            patchInterpolate.faceToPointInterpolate(internalCloseness);
+        scalarField internalClosenessPointField
+        (
+            patchInterpolate.faceToPointInterpolate(internalCloseness)
+        );
 
         forAll(pointCellSize, pI)
         {
@@ -254,8 +256,10 @@ Foam::tmp<Foam::triSurfacePointScalarField> Foam::automatic::load()
             true
         );
 
-        scalarField featureProximityPointField =
-            patchInterpolate.faceToPointInterpolate(featureProximity);
+        scalarField featureProximityPointField
+        (
+            patchInterpolate.faceToPointInterpolate(featureProximity)
+        );
 
         forAll(pointCellSize, pI)
         {
diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/searchableSurfaceFeatures/searchableBoxFeatures.C b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/searchableSurfaceFeatures/searchableBoxFeatures.C
index 5d7818683465554b6b607b37fcba34c2ae29bf31..78149fac1669328e7406e5cdfe888cd92f6d3e9a 100644
--- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/searchableSurfaceFeatures/searchableBoxFeatures.C
+++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/searchableSurfaceFeatures/searchableBoxFeatures.C
@@ -80,7 +80,8 @@ Foam::searchableBoxFeatures::features() const
 {
     autoPtr<extendedFeatureEdgeMesh> features;
 
-    vectorField faceNormals(List<vector>(treeBoundBox::faceNormals));
+    List<vector> faceNormalsList(treeBoundBox::faceNormals);
+    vectorField faceNormals(faceNormalsList);
 
     vectorField edgeDirections(12);
     labelListList normalDirections(12);
diff --git a/applications/utilities/surface/surfaceCheck/Make/options b/applications/utilities/surface/surfaceCheck/Make/options
index 9c7d9078880b6f603f3bc48831faa0ba0eda25d6..27e7740a942115faa91ed234a4925ac90dd1d955 100644
--- a/applications/utilities/surface/surfaceCheck/Make/options
+++ b/applications/utilities/surface/surfaceCheck/Make/options
@@ -1,7 +1,9 @@
 EXE_INC = \
     -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/surfMesh/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude
 
 EXE_LIBS = \
     -ltriSurface \
+    -lsurfMesh \
     -lmeshTools
diff --git a/applications/utilities/surface/surfaceCheck/surfaceCheck.C b/applications/utilities/surface/surfaceCheck/surfaceCheck.C
index 29707e303c585fad79c58c4e22faf047015fd62c..0e28f5c6c5b00a581556f4e0c14b546545de1553 100644
--- a/applications/utilities/surface/surfaceCheck/surfaceCheck.C
+++ b/applications/utilities/surface/surfaceCheck/surfaceCheck.C
@@ -35,6 +35,7 @@ Description
 #include "triSurfaceSearch.H"
 #include "argList.H"
 #include "OFstream.H"
+#include "OBJstream.H"
 #include "surfaceIntersection.H"
 #include "SortableList.H"
 #include "PatchTools.H"
@@ -615,8 +616,6 @@ int main(int argc, char *argv[])
 
             subSurf.write(subFileName);
         }
-
-        return 0;
     }
 
 
@@ -654,61 +653,75 @@ int main(int argc, char *argv[])
 
         triSurfaceSearch querySurf(surf);
 
-        //{
-        //    OBJstream intStream("selfInter2.obj");
-        //    const indexedOctree<treeDataTriSurface>& tree = querySurf.tree();
-        //    forAll(surf.edges(), edgeI)
-        //    {
-        //        const edge& e = surf.edges()[edgeI];
-        //
-        //        pointIndexHit hitInfo
-        //        (
-        //            tree.findLine
-        //            (
-        //                surf.points()[surf.meshPoints()[e[0]]],
-        //                surf.points()[surf.meshPoints()[e[1]]],
-        //                treeDataTriSurface::findSelfIntersectOp
-        //                (
-        //                    tree,
-        //                    edgeI
-        //                )
-        //            )
-        //        );
-        //
-        //        if (hitInfo.hit())
-        //        {
-        //            Pout<< "Found hit:" << hitInfo.hitPoint() << endl;
-        //            intStream.write(hitInfo.hitPoint());
-        //        }
-        //    }
-        //}
+        const indexedOctree<treeDataTriSurface>& tree = querySurf.tree();
 
-        surfaceIntersection inter(querySurf);
+        OBJstream intStream("selfInterPoints.obj");
 
-        if (inter.cutEdges().empty() && inter.cutPoints().empty())
-        {
-            Info<< "Surface is not self-intersecting" << endl;
-        }
-        else
+        label nInt = 0;
+
+        forAll(surf.edges(), edgeI)
         {
-            Info<< "Surface is self-intersecting" << endl;
-            Info<< "Writing edges of intersection to selfInter.obj" << endl;
+            const edge& e = surf.edges()[edgeI];
 
-            OFstream intStream("selfInter.obj");
-            forAll(inter.cutPoints(), cutPointI)
-            {
-                const point& pt = inter.cutPoints()[cutPointI];
+            pointIndexHit hitInfo
+            (
+                tree.findLine
+                (
+                    surf.points()[surf.meshPoints()[e[0]]],
+                    surf.points()[surf.meshPoints()[e[1]]],
+                    treeDataTriSurface::findSelfIntersectOp
+                    (
+                        tree,
+                        edgeI
+                    )
+                )
+            );
 
-                intStream << "v " << pt.x() << ' ' << pt.y() << ' ' << pt.z()
-                    << endl;
-            }
-            forAll(inter.cutEdges(), cutEdgeI)
+            if (hitInfo.hit())
             {
-                const edge& e = inter.cutEdges()[cutEdgeI];
-
-                intStream << "l " << e.start()+1 << ' ' << e.end()+1 << endl;
+                intStream.write(hitInfo.hitPoint());
+                nInt++;
             }
         }
+
+        if (nInt == 0)
+        {
+            Info<< "Surface is not self-intersecting" << endl;
+        }
+        else
+        {
+            Info<< "Surface is self-intersecting at " << nInt
+                << " locations." << endl;
+            Info<< "Writing intersection points to " << intStream.name()
+                << endl;
+        }
+
+        //surfaceIntersection inter(querySurf);
+        //
+        //if (inter.cutEdges().empty() && inter.cutPoints().empty())
+        //{
+        //    Info<< "Surface is not self-intersecting" << endl;
+        //}
+        //else
+        //{
+        //    Info<< "Surface is self-intersecting" << endl;
+        //    Info<< "Writing edges of intersection to selfInter.obj" << endl;
+        //
+        //    OFstream intStream("selfInter.obj");
+        //    forAll(inter.cutPoints(), cutPointI)
+        //    {
+        //        const point& pt = inter.cutPoints()[cutPointI];
+        //
+        //        intStream << "v " << pt.x() << ' ' << pt.y() << ' ' << pt.z()
+        //            << endl;
+        //    }
+        //    forAll(inter.cutEdges(), cutEdgeI)
+        //    {
+        //        const edge& e = inter.cutEdges()[cutEdgeI];
+        //
+        //        intStream << "l " << e.start()+1 << ' ' << e.end()+1 << endl;
+        //    }
+        //}
         Info<< endl;
     }
 
diff --git a/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointConstraint/pointConstraint.H b/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointConstraint/pointConstraint.H
index 7f4f667c30feddbe07d831ff7b65ab0bb34f6bfe..5b48463befa18f99aecf5859a2e67b5e4c2ad47d 100644
--- a/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointConstraint/pointConstraint.H
+++ b/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointConstraint/pointConstraint.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -41,10 +41,9 @@ SourceFiles
 #define pointConstraint_H
 
 #include "label.H"
-#include "uLabel.H"
 #include "vector.H"
-#include "tensor.H"
 #include "Tuple2.H"
+#include "transform.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -67,6 +66,9 @@ public:
         //- Construct null
         inline pointConstraint();
 
+        //- Construct from components
+        inline pointConstraint(const Tuple2<label, vector>&);
+
         //- Construct from Istream
         inline pointConstraint(Istream&);
 
@@ -84,6 +86,23 @@ public:
 };
 
 
+//- reduce operator
+class combineConstraintsEqOp
+{
+public:
+    inline void operator()(pointConstraint&, const pointConstraint&) const;
+};
+
+//- transformation function
+inline pointConstraint transform(const tensor& tt, const pointConstraint& v);
+
+//- contiguous
+template<class T> bool contiguous();
+template<>
+inline bool contiguous<pointConstraint>()                {return true;}
+
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointConstraint/pointConstraintI.H b/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointConstraint/pointConstraintI.H
index 698e62a94460ff4b3b24a51ab7e9bcc787d8e3f3..0915a301d4db98a8d20e3a9193c22482e7f2149c 100644
--- a/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointConstraint/pointConstraintI.H
+++ b/src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointConstraint/pointConstraintI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -31,6 +31,12 @@ inline Foam::pointConstraint::pointConstraint()
 {}
 
 
+inline Foam::pointConstraint::pointConstraint(const Tuple2<label, vector>& pc)
+:
+    Tuple2<label, vector>(pc)
+{}
+
+
 inline Foam::pointConstraint::pointConstraint(Istream& is)
 :
     Tuple2<label, vector>(is)
@@ -130,4 +136,27 @@ Foam::tensor Foam::pointConstraint::constraintTransformation() const
 }
 
 
+void Foam::combineConstraintsEqOp::operator()
+(
+    pointConstraint& x,
+    const pointConstraint& y
+) const
+{
+    x.combine(y);
+}
+
+
+Foam::pointConstraint Foam::transform
+(
+    const tensor& tt,
+    const pointConstraint& v
+)
+{
+    return pointConstraint
+    (
+        Tuple2<label, vector>(v.first(), transform(tt, v.second()))
+    );
+}
+
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C b/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C
index 7e3850891d248c4510607a386bd44f06ecf8bb5f..0013d193e302f3a839471f515eddf473be7234f5 100644
--- a/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C
+++ b/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C
@@ -174,14 +174,17 @@ void Foam::faceZone::checkAddressing() const
 
     const labelList& mf = *this;
 
+    // Note: nFaces, nCells might not be set yet on mesh so use owner size
+    const label nFaces = zoneMesh().mesh().faceOwner().size();
+
     bool hasWarned = false;
     forAll(mf, i)
     {
-        if (!hasWarned && (mf[i] < 0 || mf[i] >= zoneMesh().mesh().nFaces()))
+        if (!hasWarned && (mf[i] < 0 || mf[i] >= nFaces))
         {
             WarningIn("void Foam::faceZone::checkAddressing() const")
                 << "Illegal face index " << mf[i] << " outside range 0.."
-                << zoneMesh().mesh().nFaces()-1 << endl;
+                << nFaces-1 << endl;
             hasWarned = true;
         }
     }
diff --git a/src/finiteVolume/finiteVolume/fvc/fvcReconstruct.C b/src/finiteVolume/finiteVolume/fvc/fvcReconstruct.C
index 4254348b18ae2d236309bc0bee77e4b9c1f2cf80..5c886900e82f6e172f7a4329d32c1e50e92eb674 100644
--- a/src/finiteVolume/finiteVolume/fvc/fvcReconstruct.C
+++ b/src/finiteVolume/finiteVolume/fvc/fvcReconstruct.C
@@ -56,20 +56,7 @@ reconstruct
 
     const fvMesh& mesh = ssf.mesh();
 
-    surfaceVectorField faceVols
-    (
-        mesh.Sf()/(mesh.magSf()*mesh.nonOrthDeltaCoeffs())
-    );
-
-    faceVols.internalField() *= (1.0 -  mesh.weights().internalField());
-    forAll(faceVols.boundaryField(), patchi)
-    {
-        if (faceVols.boundaryField()[patchi].coupled())
-        {
-            faceVols.boundaryField()[patchi] *=
-                (1.0 -  mesh.weights().boundaryField()[patchi]);
-        }
-    }
+    surfaceVectorField SfHat(mesh.Sf()/mesh.magSf());
 
     tmp<GeometricField<GradType, fvPatchField, volMesh> > treconField
     (
@@ -83,7 +70,7 @@ reconstruct
                 IOobject::NO_READ,
                 IOobject::NO_WRITE
             ),
-            inv(surfaceSum(mesh.Sf()*faceVols))&surfaceSum(faceVols*ssf),
+            inv(surfaceSum(SfHat*mesh.Sf()))&surfaceSum(SfHat*ssf),
             zeroGradientFvPatchField<GradType>::typeName
         )
     );
diff --git a/src/thermophysicalModels/solidChemistryModel/solidChemistrySolver/makeSolidChemistrySolverType.H b/src/thermophysicalModels/solidChemistryModel/solidChemistrySolver/makeSolidChemistrySolverType.H
index 3f24e11e4a9cb4f8622dfb687c1e6eee6a50d840..b1e33933f6a793aecc6a79d47675e95fe3cb7475 100644
--- a/src/thermophysicalModels/solidChemistryModel/solidChemistrySolver/makeSolidChemistrySolverType.H
+++ b/src/thermophysicalModels/solidChemistryModel/solidChemistrySolver/makeSolidChemistrySolverType.H
@@ -47,8 +47,8 @@ namespace Foam
     defineTemplateTypeNameAndDebugWithName                                    \
     (                                                                         \
         SS##Schem##Comp##SThermo##GThermo,                                    \
-        (#SS"<"#Schem"<"#Comp"," + SThermo::typeName() + ","                  \
-      + GThermo::typeName() + ">>").c_str(),                                  \
+        (#SS"<" + word(Schem::typeName_()) + "<"#Comp"," + SThermo::typeName()\
+      + "," + GThermo::typeName() + ">>").c_str(),                            \
         0                                                                     \
     );                                                                        \
                                                                               \
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/0/epsilon b/tutorials/compressible/rhoPimpleFoam/ras/cavity/0/epsilon
index 698ff247d3588ecf485750ed392cd0745e137d2c..6f1ace6a16236d72811a5f268fcaad2d93db66a8 100644
--- a/tutorials/compressible/rhoPimpleFoam/ras/cavity/0/epsilon
+++ b/tutorials/compressible/rhoPimpleFoam/ras/cavity/0/epsilon
@@ -24,13 +24,13 @@ boundaryField
     movingWall
     {
         type            compressible::epsilonWallFunction;
-        value           uniform 0;
+        value           $internalField;
     }
 
     fixedWalls
     {
         type            compressible::epsilonWallFunction;
-        value           uniform 0;
+        value           $internalField;
     }
 
     frontAndBack
diff --git a/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/0/epsilon b/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/0/epsilon
index a07beadefa25bb5a71c6f19e2e71ed406657ed71..7413e6a02ecff85d2e947660a36f84fb5a0ba914 100644
--- a/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/0/epsilon
+++ b/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/0/epsilon
@@ -24,13 +24,13 @@ boundaryField
     rotor
     {
         type            epsilonWallFunction;
-        value           uniform 0;
+        value           $internalField;
     }
 
     stator
     {
         type            epsilonWallFunction;
-        value           uniform 0;
+        value           $internalField;
     }
 
     front
diff --git a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/polyMesh/boundary b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/polyMesh/boundary
deleted file mode 100644
index f6e6726c6bc2912dada27f59fca03ea17e1b68d8..0000000000000000000000000000000000000000
--- a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/constant/polyMesh/boundary
+++ /dev/null
@@ -1,81 +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       polyBoundaryMesh;
-    location    "constant/polyMesh";
-    object      boundary;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-8
-(
-    inlet
-    {
-        type            patch;
-        nFaces          40;
-        startFace       21464;
-    }
-    outlet
-    {
-        type            patch;
-        nFaces          96;
-        startFace       21504;
-    }
-    walls
-    {
-        type            wall;
-        nFaces          320;
-        startFace       21600;
-    }
-    defaultFaces
-    {
-        type            empty;
-        inGroups        1(empty);
-        nFaces          21760;
-        startFace       21920;
-    }
-    ACMI1_blockage
-    {
-        type            wall;
-        nFaces          40;
-        startFace       43680;
-    }
-    ACMI1_couple
-    {
-        type            cyclicACMI;
-        inGroups        1(cyclicACMI);
-        nFaces          40;
-        startFace       43720;
-        matchTolerance  0.0001;
-        transform       noOrdering;
-        neighbourPatch  ACMI2_couple;
-        nonOverlapPatch ACMI1_blockage;
-    }
-    ACMI2_blockage
-    {
-        type            wall;
-        nFaces          96;
-        startFace       43760;
-    }
-    ACMI2_couple
-    {
-        type            cyclicACMI;
-        inGroups        1(cyclicACMI);
-        nFaces          96;
-        startFace       43856;
-        matchTolerance  0.0001;
-        transform       noOrdering;
-        neighbourPatch  ACMI1_couple;
-        nonOverlapPatch ACMI2_blockage;
-    }
-)
-
-// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleFoam/TJunction/0/epsilon b/tutorials/incompressible/pimpleFoam/TJunction/0/epsilon
index a81220d8aa87f22bf9cf0dadf700576cba0b6df9..00cbd4d30bf13b699f9ca66861bb5b18359742b0 100644
--- a/tutorials/incompressible/pimpleFoam/TJunction/0/epsilon
+++ b/tutorials/incompressible/pimpleFoam/TJunction/0/epsilon
@@ -43,7 +43,7 @@ boundaryField
     defaultFaces
     {
         type            epsilonWallFunction;
-        value           uniform 0;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/incompressible/simpleFoam/mixerVessel2D/0/epsilon b/tutorials/incompressible/simpleFoam/mixerVessel2D/0/epsilon
index ddb0f60d60f37746da6c73e25569c0f6f3d823e9..84f822890eac7bc4374cbdf8ed0ab2a82bb34152 100644
--- a/tutorials/incompressible/simpleFoam/mixerVessel2D/0/epsilon
+++ b/tutorials/incompressible/simpleFoam/mixerVessel2D/0/epsilon
@@ -24,13 +24,13 @@ boundaryField
     rotor
     {
         type            epsilonWallFunction;
-        value           uniform 0;
+        value           $internalField;
     }
 
     stator
     {
         type            epsilonWallFunction;
-        value           uniform 0;
+        value           $internalField;
     }
 
     front
diff --git a/tutorials/lagrangian/LTSReactingParcelFoam/verticalChannel/0.org/omega b/tutorials/lagrangian/LTSReactingParcelFoam/verticalChannel/0.org/omega
index efd2924775d02edef8c912c48bed1fab405616a0..c1aa352a73f5adee542f1cfcee7ed95e842872e8 100644
--- a/tutorials/lagrangian/LTSReactingParcelFoam/verticalChannel/0.org/omega
+++ b/tutorials/lagrangian/LTSReactingParcelFoam/verticalChannel/0.org/omega
@@ -54,7 +54,7 @@ boundaryField
         Cmu             0.09;
         kappa           0.41;
         E               9.8;
-        value           uniform 0;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/lagrangian/LTSReactingParcelFoam/verticalChannel/0/omega b/tutorials/lagrangian/LTSReactingParcelFoam/verticalChannel/0/omega
index efd2924775d02edef8c912c48bed1fab405616a0..c1aa352a73f5adee542f1cfcee7ed95e842872e8 100644
--- a/tutorials/lagrangian/LTSReactingParcelFoam/verticalChannel/0/omega
+++ b/tutorials/lagrangian/LTSReactingParcelFoam/verticalChannel/0/omega
@@ -54,7 +54,7 @@ boundaryField
         Cmu             0.09;
         kappa           0.41;
         E               9.8;
-        value           uniform 0;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/0.org/omega b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/0.org/omega
index efd2924775d02edef8c912c48bed1fab405616a0..c1aa352a73f5adee542f1cfcee7ed95e842872e8 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/0.org/omega
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/0.org/omega
@@ -54,7 +54,7 @@ boundaryField
         Cmu             0.09;
         kappa           0.41;
         E               9.8;
-        value           uniform 0;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/0.org/omega b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/0.org/omega
index efd2924775d02edef8c912c48bed1fab405616a0..c1aa352a73f5adee542f1cfcee7ed95e842872e8 100644
--- a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/0.org/omega
+++ b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/0.org/omega
@@ -54,7 +54,7 @@ boundaryField
         Cmu             0.09;
         kappa           0.41;
         E               9.8;
-        value           uniform 0;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/0/omega b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/0/omega
index efd2924775d02edef8c912c48bed1fab405616a0..c1aa352a73f5adee542f1cfcee7ed95e842872e8 100644
--- a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/0/omega
+++ b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/0/omega
@@ -54,7 +54,7 @@ boundaryField
         Cmu             0.09;
         kappa           0.41;
         E               9.8;
-        value           uniform 0;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/multiphase/LTSInterFoam/wigleyHull/system/fvSolution b/tutorials/multiphase/LTSInterFoam/wigleyHull/system/fvSolution
index 7d940c54e8121d663fcee5eb723101d8d89a8e4f..76eaf8fd2a3d1ce01aa7564134a7737d9b5e6f28 100644
--- a/tutorials/multiphase/LTSInterFoam/wigleyHull/system/fvSolution
+++ b/tutorials/multiphase/LTSInterFoam/wigleyHull/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 1;
+        cAlpha          1;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -79,10 +86,6 @@ PIMPLE
     nCorrectors     1;
     nNonOrthogonalCorrectors 0;
 
-    nAlphaCorr      1;
-    nAlphaSubCycles 1;
-    cAlpha          1;
-
     maxCo           0.9;
     maxAlphaCo      0.2;
     nAlphaSweepIter 1;
diff --git a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSolution b/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSolution
index 190bdc4e1b9bbb5ab71a62d9a23cbc697358a63d..87856ee3ca139aff10b36730998d69bc6218bd33 100644
--- a/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSolution
+++ b/tutorials/multiphase/MRFInterFoam/mixerVessel2D/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 2;
+        cAlpha          1;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -55,9 +62,7 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     3;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 2;
-    cAlpha          1;
+
     pRefCell        0;
     pRefValue       0;
 }
diff --git a/tutorials/multiphase/MRFMultiphaseInterFoam/mixerVessel2D/system/fvSolution b/tutorials/multiphase/MRFMultiphaseInterFoam/mixerVessel2D/system/fvSolution
index 19a9d9e0f3ecbf4de125c079b3b1d703b756ee2b..c4f3932da60c089c236da174316a0876d4d1a226 100644
--- a/tutorials/multiphase/MRFMultiphaseInterFoam/mixerVessel2D/system/fvSolution
+++ b/tutorials/multiphase/MRFMultiphaseInterFoam/mixerVessel2D/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha
+    {
+        nAlphaCorr      4;
+        nAlphaSubCycles 4;
+        cAlpha          2;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -55,10 +62,7 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     4;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      4;
-    nAlphaSubCycles 4;
-    cycleAlpha      yes;
-    cAlpha          2;
+
     pRefCell        0;
     pRefValue       0;
 }
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/fvSolution b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/fvSolution
index 7577b94f2117c0747b8af59a35a1d46738d3b7ab..4e1aa83dc74d3db686ea7a3ae3c8ea442091cd1e 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/fvSolution
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alphawater
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 1;
+        cAlpha          1;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -107,9 +114,6 @@ PIMPLE
     nOuterCorrectors 1;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 1;
-    cAlpha          1;
 }
 
 
diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/fvSolution b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/fvSolution
index 7577b94f2117c0747b8af59a35a1d46738d3b7ab..4e1aa83dc74d3db686ea7a3ae3c8ea442091cd1e 100644
--- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/fvSolution
+++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alphawater
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 1;
+        cAlpha          1;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -107,9 +114,6 @@ PIMPLE
     nOuterCorrectors 1;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 1;
-    cAlpha          1;
 }
 
 
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/fvSolution b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/fvSolution
index 067ac927d023c4e5e173c4c1ed6b2cada94c6f4e..1689fc3519883a0af17454b6842bfb264a5690a3 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/fvSolution
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/bubbleColumn/system/fvSolution
@@ -17,6 +17,12 @@ FoamFile
 
 solvers
 {
+    alphaair
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 2;
+    }
+
     p
     {
         solver          GAMG;
@@ -55,14 +61,6 @@ solvers
         relTol          0;
     }
 
-    "alpha.*"
-    {
-        solver          PBiCG;
-        preconditioner  DILU;
-        tolerance       1e-10;
-        relTol          0;
-    }
-
     "(k|epsilon|Theta).*"
     {
         solver          PBiCG;
@@ -77,8 +75,6 @@ PIMPLE
     nOuterCorrectors 1;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 2;
 }
 
 relaxationFactors
diff --git a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/fvSolution b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/fvSolution
index 97c8cb32d1a050b21c7c11eed1acef7e4320ec6a..5e6a4b0b21269cbbd6cbde062c090325a1bf1e5e 100644
--- a/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/fvSolution
+++ b/tutorials/multiphase/compressibleTwoPhaseEulerFoam/mixerVessel2D/system/fvSolution
@@ -17,6 +17,12 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 2;
+    }
+
     p
     {
         solver          GAMG;
@@ -67,8 +73,7 @@ PIMPLE
     nOuterCorrectors 1;
     nCorrectors     3;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 2;
+
     pRefCell        0;
     pRefValue       0;
 }
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution
index a4e2403cfbbd6c61c9646e7c9803020682d2f35f..63d54a7c3dbbdc49c061706b661442631467b6fc 100644
--- a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+        cAlpha          1;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -102,9 +109,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     3;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 3;
-    cAlpha          1;
 
     pRefPoint      (0.51 0.51 0.51);
     pRefValue      0;
diff --git a/tutorials/multiphase/interDyMFoam/ras/floatingObject/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/floatingObject/system/fvSolution
index c93b34506bf660eb43f6f13df73ecc48be3a00c9..1202013c58cab93c03b199125dc462a675f6acaa 100644
--- a/tutorials/multiphase/interDyMFoam/ras/floatingObject/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/floatingObject/system/fvSolution
@@ -29,6 +29,13 @@ solvers
         mergeLevels     1;
     }
 
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+        cAlpha          1;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -115,9 +122,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 3;
-    cAlpha          1;
     correctPhi      yes;
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution
index ae85bdfaba79415bf8d80a6659b8136c483796ed..696ba9cc7988e7447b0d9ed7a1010f2f75f44098 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+        cAlpha          1.5;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -94,9 +101,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 3;
-    cAlpha          1.5;
     correctPhi      no;
 
     pRefPoint       (0 0 0.15);
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution
index ae85bdfaba79415bf8d80a6659b8136c483796ed..696ba9cc7988e7447b0d9ed7a1010f2f75f44098 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+        cAlpha          1.5;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -94,9 +101,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 3;
-    cAlpha          1.5;
     correctPhi      no;
 
     pRefPoint       (0 0 0.15);
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution
index ae85bdfaba79415bf8d80a6659b8136c483796ed..696ba9cc7988e7447b0d9ed7a1010f2f75f44098 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+        cAlpha          1.5;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -94,9 +101,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 3;
-    cAlpha          1.5;
     correctPhi      no;
 
     pRefPoint       (0 0 0.15);
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution
index ae85bdfaba79415bf8d80a6659b8136c483796ed..696ba9cc7988e7447b0d9ed7a1010f2f75f44098 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+        cAlpha          1.5;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -94,9 +101,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 3;
-    cAlpha          1.5;
     correctPhi      no;
 
     pRefPoint       (0 0 0.15);
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution
index ae85bdfaba79415bf8d80a6659b8136c483796ed..696ba9cc7988e7447b0d9ed7a1010f2f75f44098 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+        cAlpha          1.5;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -94,9 +101,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 3;
-    cAlpha          1.5;
     correctPhi      no;
 
     pRefPoint       (0 0 0.15);
diff --git a/tutorials/multiphase/interDyMFoam/ras/testTubeMixer/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/testTubeMixer/system/fvSolution
index d6ad27dc796fd3b5f2cee6bb3421f6bf19c95a13..54f20e5253f0b6a6fbd838c1014ab2c65a3755ce 100644
--- a/tutorials/multiphase/interDyMFoam/ras/testTubeMixer/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/testTubeMixer/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+        cAlpha          1.5;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -94,9 +101,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 3;
-    cAlpha          1.5;
     correctPhi      no;
 
     pRefPoint       (0.0013 0.0017 0.0017);
diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSolution b/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSolution
index 2cc9d133e6d90f92b313821e2e5e8a4bd23de958..d7383123a6a4cd8b8924813ec9144cded6e2bf9c 100644
--- a/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSolution
+++ b/tutorials/multiphase/interFoam/les/nozzleFlow2D/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 4;
+        cAlpha          2;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -100,9 +107,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     2;
     nNonOrthogonalCorrectors 1;
-    nAlphaCorr      1;
-    nAlphaSubCycles 4;
-    cAlpha          2;
 }
 
 
diff --git a/tutorials/multiphase/interFoam/ras/damBreak/system/fvSolution b/tutorials/multiphase/interFoam/ras/damBreak/system/fvSolution
index 21ae680f263d399a0dae1f57fc88666e08cc333f..a30ce4ddb8c0709187beec070c39ff9db7977595 100644
--- a/tutorials/multiphase/interFoam/ras/damBreak/system/fvSolution
+++ b/tutorials/multiphase/interFoam/ras/damBreak/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 4;
+        cAlpha          2;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -63,9 +70,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     3;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 4;
-    cAlpha          2;
 }
 
 
diff --git a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/fvSolution b/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/fvSolution
index 97d24d6130ffd7e01954d2f82a1b8dc7b376b8d8..96c64a2a1c9145b0573c148c95d84c02bf34ad47 100644
--- a/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/fvSolution
+++ b/tutorials/multiphase/interFoam/ras/damBreakPorousBaffle/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 4;
+        cAlpha          2;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -63,9 +70,6 @@ PIMPLE
     momentumPredictor yes;
     nCorrectors     3;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 4;
-    cAlpha          2;
 }
 
 relaxationFactors
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/LTSInterFoam/system/fvSolution b/tutorials/multiphase/interFoam/ras/waterChannel/LTSInterFoam/system/fvSolution
index 7a6ad628f6c69e159b6b4997898f85cf4de756c2..62774a76104c171e959156b9bbbea564a9a0b3ba 100644
--- a/tutorials/multiphase/interFoam/ras/waterChannel/LTSInterFoam/system/fvSolution
+++ b/tutorials/multiphase/interFoam/ras/waterChannel/LTSInterFoam/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+        cAlpha          1;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -39,14 +46,6 @@ solvers
         maxIter         100;
     }
 
-/*    pcorr
-    {
-        solver          PCG;
-        preconditioner  DIC;
-        tolerance       1e-10;
-        relTol          0;
-    };
-*/
     p_rgh
     {
         $pcorr;
@@ -79,10 +78,6 @@ PIMPLE
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
 
-    nAlphaCorr      1;
-    nAlphaSubCycles 3;
-    cAlpha          1;
-
     maxCo           0.5;
     maxAlphaCo      0.2;
     nAlphaSweepIter 1;
diff --git a/tutorials/multiphase/interFoam/ras/waterChannel/system/fvSolution b/tutorials/multiphase/interFoam/ras/waterChannel/system/fvSolution
index 8b86c656c8faba7ef608611e75efa34a06d04365..e2db3124d4d72d0925b097bd652e638b8e6f6d60 100644
--- a/tutorials/multiphase/interFoam/ras/waterChannel/system/fvSolution
+++ b/tutorials/multiphase/interFoam/ras/waterChannel/system/fvSolution
@@ -17,6 +17,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+        cAlpha          1;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -68,10 +75,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-
-    nAlphaCorr      1;
-    nAlphaSubCycles 3;
-    cAlpha          1;
 }
 
 relaxationFactors
diff --git a/tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSolution b/tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSolution
index b8d411303f41ffe1b2722fc28817c4470164f3b5..3693fa3dfe48cba3d696c111e4bc81c9c149c8d1 100644
--- a/tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSolution
+++ b/tutorials/multiphase/interFoam/ras/weirOverflow/system/fvSolution
@@ -16,6 +16,13 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 2;
+        cAlpha          1;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -58,9 +65,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     3;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 2;
-    cAlpha          1;
 }
 
 
diff --git a/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/system/fvSolution b/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/system/fvSolution
index cf4ce79ecf23c40a9c8a6335556f98005881425d..73cb43356b88c947783befe2a0f62fc9cf4ad96d 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/system/fvSolution
+++ b/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/system/fvSolution
@@ -17,6 +17,11 @@ FoamFile
 
 solvers
 {
+    alpha
+    {
+        nAlphaSubCycles 2;
+    }
+
     p
     {
         solver          GAMG;
@@ -92,7 +97,6 @@ PIMPLE
     nOuterCorrectors 1;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaSubCycles 2;
 }
 
 relaxationFactors
diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/fvSolution b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/fvSolution
index 296b0cd48839b3ce647e02a066bcaaa341e692f1..94423be84d3c0342998a107f1e9c221dcf442a66 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/fvSolution
+++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/fvSolution
@@ -17,6 +17,11 @@ FoamFile
 
 solvers
 {
+    alpha
+    {
+        nAlphaSubCycles 3;
+    }
+
     p
     {
         solver          GAMG;
@@ -83,7 +88,6 @@ PIMPLE
 {
     nCorrectors     3;
     nNonOrthogonalCorrectors 0;
-    nAlphaSubCycles 3;
 }
 
 relaxationFactors
diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/fvSolution b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/fvSolution
index 296b0cd48839b3ce647e02a066bcaaa341e692f1..94423be84d3c0342998a107f1e9c221dcf442a66 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/fvSolution
+++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/fvSolution
@@ -17,6 +17,11 @@ FoamFile
 
 solvers
 {
+    alpha
+    {
+        nAlphaSubCycles 3;
+    }
+
     p
     {
         solver          GAMG;
@@ -83,7 +88,6 @@ PIMPLE
 {
     nCorrectors     3;
     nNonOrthogonalCorrectors 0;
-    nAlphaSubCycles 3;
 }
 
 relaxationFactors
diff --git a/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/system/fvSolution b/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/system/fvSolution
index 89fe68c6fb32b4329a953f28dd32c0fb630710e6..4c352dce5f874c1c50aa6f1e2494cb94e9264a01 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/system/fvSolution
+++ b/tutorials/multiphase/multiphaseEulerFoam/mixerVessel2D/system/fvSolution
@@ -17,6 +17,11 @@ FoamFile
 
 solvers
 {
+    alpha
+    {
+        nAlphaSubCycles 2;
+    }
+
     p
     {
         solver          GAMG;
@@ -84,7 +89,7 @@ PIMPLE
     nOuterCorrectors     1;
     nCorrectors     3;
     nNonOrthogonalCorrectors 0;
-    nAlphaSubCycles 2;
+
     pRefCell        0;
     pRefValue       0;
 }
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
index 3c8c89ad22b85685f9a189472d90f0f180a438d2..d0c3c2764f316b6cc094b09c0f8b36efa416f3b9 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/fvSolution
@@ -17,6 +17,12 @@ FoamFile
 
 solvers
 {
+    alpha
+    {
+        nAlphaSubCycles 4;
+        cAlpha          2;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -98,8 +104,6 @@ PIMPLE
 {
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaSubCycles 4;
-    cAlpha          2;
 }
 
 relaxationFactors
diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
index 34ad1289b35d559848fbd643fb9a3c5553f7151b..c2eac8b7750cf010c5ab62e968fea5af953fb7ed 100644
--- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
+++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/fvSolution
@@ -17,6 +17,12 @@ FoamFile
 
 solvers
 {
+    alpha
+    {
+        nAlphaSubCycles 4;
+        cAlpha          2;
+    }
+
     pcorr
     {
         solver          PCG;
@@ -92,8 +98,6 @@ PIMPLE
     momentumPredictor no;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaSubCycles 4;
-    cAlpha          2;
 }
 
 relaxationFactors
diff --git a/tutorials/multiphase/twoLiquidMixingFoam/lockExchange/system/fvSolution b/tutorials/multiphase/twoLiquidMixingFoam/lockExchange/system/fvSolution
index 962f2cdfd602b003125d7dcea347374b3442e273..af87b0880fb25609cc492b87363236bd3065e01e 100644
--- a/tutorials/multiphase/twoLiquidMixingFoam/lockExchange/system/fvSolution
+++ b/tutorials/multiphase/twoLiquidMixingFoam/lockExchange/system/fvSolution
@@ -19,6 +19,9 @@ solvers
 {
     "alpha1.*"
     {
+        nAlphaSubCycles     2;
+        nAlphaCorr          1;
+
         solver          smoothSolver;
         smoother        GaussSeidel;
         tolerance       1e-9;
@@ -66,8 +69,7 @@ PIMPLE
     nOuterCorrectors    1;
     nCorrectors         2;
     nNonOrthogonalCorrectors 0;
-    nAlphaSubCycles     2;
-    nAlphaCorr          1;
+
     pRefValue           0;
     pRefPoint           (0.1 0.1 1);
 }
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/bed/system/fvSolution b/tutorials/multiphase/twoPhaseEulerFoam/bed/system/fvSolution
index 3a47e5857c1307ec855eb02f64a67e250c467750..357d2a8442c2eeae0580244deb18b4149a419428 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/bed/system/fvSolution
+++ b/tutorials/multiphase/twoPhaseEulerFoam/bed/system/fvSolution
@@ -17,6 +17,17 @@ FoamFile
 
 solvers
 {
+    "alpha1.*"
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-10;
+        relTol          0.1;
+    }
+
     p
     {
         solver          GAMG;
@@ -52,26 +63,6 @@ solvers
         $k;
         relTol          0;
     }
-
-    alpha1
-    {
-        nAlphaCorr      2;
-        nAlphaSubCycles 3;
-    }
-
-    alpha
-    {
-        solver          PCG;
-        preconditioner  DIC;
-        tolerance       1e-10;
-        relTol          0.1;
-    }
-
-    alpha1Final
-    {
-        $alpha;
-        relTol          0;
-    }
 }
 
 PIMPLE
@@ -79,6 +70,7 @@ PIMPLE
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
     correctAlpha    yes;
+
     pRefCell        0;
     pRefValue       0;
 }
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/bed2/system/fvSolution b/tutorials/multiphase/twoPhaseEulerFoam/bed2/system/fvSolution
index 2e3cdfa4aaee926062296b0c2d40cb381f41ebcb..efd034ad8bf106537ea18fca8bcfbd9f2b90e3cb 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/bed2/system/fvSolution
+++ b/tutorials/multiphase/twoPhaseEulerFoam/bed2/system/fvSolution
@@ -17,6 +17,12 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+    }
+
     p
     {
         solver          GAMG;
@@ -54,31 +60,14 @@ solvers
         tolerance       1e-05;
         relTol          0;
     }
-
-    alpha
-    {
-        solver          PBiCG;
-        preconditioner  DILU;
-        tolerance       1e-10;
-        relTol          0.1;
-    }
-
-    alpha1Final
-    {
-        solver          PBiCG;
-        preconditioner  DILU;
-        tolerance       1e-10;
-        relTol          0;
-    }
 }
 
 PIMPLE
 {
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 3;
     correctAlpha    yes;
+
     pRefCell        0;
     pRefValue       0;
 }
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/bubbleColumn/system/fvSolution b/tutorials/multiphase/twoPhaseEulerFoam/bubbleColumn/system/fvSolution
index 76a95c8327cadc21206927893a86f255c8cd1c8c..381ca29a11e5a1a25302a4548358c17c9d9085ee 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/bubbleColumn/system/fvSolution
+++ b/tutorials/multiphase/twoPhaseEulerFoam/bubbleColumn/system/fvSolution
@@ -17,6 +17,12 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 2;
+    }
+
     p
     {
         solver          GAMG;
@@ -54,31 +60,14 @@ solvers
         tolerance       1e-05;
         relTol          0;
     }
-
-    alpha
-    {
-        solver          PBiCG;
-        preconditioner  DILU;
-        tolerance       1e-10;
-        relTol          0.1;
-    }
-
-    alpha1Final
-    {
-        solver          PBiCG;
-        preconditioner  DILU;
-        tolerance       1e-10;
-        relTol          0;
-    }
 }
 
 PIMPLE
 {
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 2;
     correctAlpha    yes;
+
     pRefCell        0;
     pRefValue       0;
 }
diff --git a/tutorials/multiphase/twoPhaseEulerFoam/mixerVessel2D/system/fvSolution b/tutorials/multiphase/twoPhaseEulerFoam/mixerVessel2D/system/fvSolution
index 69208cbe950050e6f399b103952793cc7037bdf1..f281016b47a9a002bd4e6be554b74990eb7129e6 100644
--- a/tutorials/multiphase/twoPhaseEulerFoam/mixerVessel2D/system/fvSolution
+++ b/tutorials/multiphase/twoPhaseEulerFoam/mixerVessel2D/system/fvSolution
@@ -17,6 +17,12 @@ FoamFile
 
 solvers
 {
+    alpha1
+    {
+        nAlphaCorr      1;
+        nAlphaSubCycles 3;
+    }
+
     p
     {
         solver          GAMG;
@@ -53,14 +59,6 @@ solvers
         relTol          0;
     }
 
-    "alpha.*"
-    {
-        solver          PBiCG;
-        preconditioner  DILU;
-        tolerance       1e-10;
-        relTol          0;
-    }
-
     "(k|epsilon|Theta|T).*"
     {
         solver          PBiCG;
@@ -75,9 +73,8 @@ PIMPLE
     nOuterCorrectors 1;
     nCorrectors     3;
     nNonOrthogonalCorrectors 0;
-    nAlphaCorr      1;
-    nAlphaSubCycles 3;
     correctAlpha    yes;
+
     pRefCell        0;
     pRefValue       0;
 }
diff --git a/wmake/wmake b/wmake/wmake
index e5d939656567eb4459bb8830e7a3aad6096b4c54..0f8e2cc41f0266271448a807934ffd180e6033b7 100755
--- a/wmake/wmake
+++ b/wmake/wmake
@@ -50,7 +50,6 @@ The 'target' is a Makefile target:
   e.g., Make/linux64GccDPOpt/fvMesh.o
 
 or a special target:
-  dwim              search up directories tree for Make sub-directory and build
   all               all subdirectories, uses any Allwmake files if they exist
   exe               build statically linked executable
   lib               build statically linked archive lib (.a)
@@ -86,9 +85,11 @@ do
     esac
 done
 
-#
-# check environment variables
-#
+
+#------------------------------------------------------------------------------
+# Check environment variables
+#------------------------------------------------------------------------------
+
 for check in WM_OPTIONS WM_LINK_LANGUAGE WM_DIR
 do
     eval test "\$$check" || {
@@ -103,13 +104,13 @@ done
 [ "$1" = exe -o \( "$WM_PROJECT" -a "$WM_PROJECT_DIR" \) ] || {
     echo "$Script error:" 1>&2
     echo "    environment variable \$WM_PROJECT or \$WM_PROJECT_DIR not set" 1>&2
-    echo  "   while building project library" 1>&2
+    echo "    while building project library" 1>&2
     exit 1
 }
 
 
 #------------------------------------------------------------------------------
-# Select the version of make to be used
+# Select the version of make use
 #------------------------------------------------------------------------------
 
 # set WM_NCOMPPROCS automatically when both WM_HOSTS and WM_SCHEDULER are set
@@ -169,8 +170,30 @@ then
 fi
 
 
+#------------------------------------------------------------------------------
+# Recurse the application directories tree
+#------------------------------------------------------------------------------
+
+if [ "$makeType" = all ]
+then
+    if [ -e Allwmake ]
+    then
+        ./Allwmake
+        exit $?
+    elif [ ! -d $MakeDir ]
+    then
+        # FOAM_APPS=$(find . -maxdepth 1 \( -type d -a ! -name "." -a ! -name Optional -a ! -name Make \)  -printf "%f ")
+        # avoid 'find' with '-printf' ... not entirely portable
+        FOAM_APPS=$(for d in *; do [ -d "$d" -a "$d" != Optional -a "$d" != Make ] && echo "$d"; done | xargs)
+        $make -k -f $WM_DIR/MakefileApps FOAM_APPS="$FOAM_APPS"
+        exit $?
+    fi
+fi
+
+
 #------------------------------------------------------------------------------
 # Search up directories tree for the Make sub-directory and build there
+# Also check the existance of the 'files' file
 #------------------------------------------------------------------------------
 
 unset dir
@@ -189,18 +212,22 @@ find_target()
 {
     expandpath $1
 
-    if [ "$exPath" = "$WM_PROJECT_DIR" -o "$exPath" = "$HOME" -o "$exPath" = "/" ]; then
+    if [ "$exPath" = "$WM_PROJECT_DIR" -o "$exPath" = "$HOME" -o "$exPath" = "/" ]
+    then
         echo "$Script error: could not find Make directory"
     elif [ -d "$1/Make" ]; then
-        echo Target $1
+        echo "    Found target directory " $1
         dir=$1
     else
         find_target "$1/.."
     fi
 }
 
-if [ "$makeType" = dwim ]
+if [ ! -d $MakeDir ]
 then
+    echo "$Script: '$MakeDir' directory does not exist in $PWD" 1>&2
+    echo "    Searching up directories tree for Make directory"
+
     find_target .
     makeType=
 
@@ -214,41 +241,16 @@ then
 fi
 
 
-#------------------------------------------------------------------------------
-# Recurse the application directories tree
-#------------------------------------------------------------------------------
-
-if [ "$makeType" = all ]
-then
-    if [ -e Allwmake ]
-    then
-        ./Allwmake
-        exit $?
-    elif [ ! -d $MakeDir ]
-    then
-        # FOAM_APPS=$(find . -maxdepth 1 \( -type d -a ! -name "." -a ! -name Optional -a ! -name Make \)  -printf "%f ")
-        # avoid 'find' with '-printf' ... not entirely portable
-        FOAM_APPS=$(for d in *; do [ -d "$d" -a "$d" != Optional -a "$d" != Make ] && echo "$d"; done | xargs)
-        $make -k -f $WM_DIR/MakefileApps FOAM_APPS="$FOAM_APPS"
-        exit $?
-    fi
-fi
-
-
-#------------------------------------------------------------------------------
-# Require the existence of the 'Make' directory and 'files' file
-#------------------------------------------------------------------------------
-
-[ -d $MakeDir ] || {
-    echo "$Script error: '$MakeDir' directory does not exist in $PWD" 1>&2
-    exit 1
-}
-
 [ -r $MakeDir/files ] || {
     echo "$Script error: file '$MakeDir/files' does not exist in $PWD" 1>&2
     exit 1
 }
 
+
+#------------------------------------------------------------------------------
+# Transform options
+#------------------------------------------------------------------------------
+
 # transform "all" or no option to "libso" if that looks appropriate or remove it
 # so that the call to make builds the application
 if [ "$makeType" = all -o "$makeType" = "" ]
@@ -261,8 +263,11 @@ then
 fi
 
 
+#------------------------------------------------------------------------------
 # Spawn a sub-shell and unset MAKEFLAGS in that sub-shell to avoid
 # files and options being built in parallel
+#------------------------------------------------------------------------------
+
 (
     cd $MakeDir
     unset MAKEFLAGS