diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/p b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/p
index a98fc2825d0103495eea908d93fe1de81df15128..8a2a5d0a87887b19799c65d58f14a8c7aaf03b13 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/p
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/p
@@ -16,40 +16,40 @@ FoamFile
 
 dimensions      [1 -1 -2 0 0 0 0];
 
-internalField   uniform 0;
+internalField   uniform 1e5;
 
 boundaryField
 {
     minX
     {
-        type            calculated;
-        value           uniform 0;
+        type            fixedFluxBuoyantPressure;
+        value           1e5;
     }
     maxX
     {
-        type            calculated;
-        value           uniform 0;
+        type            fixedFluxBuoyantPressure;
+        value           1e5;
     }
 
     minY
     {
-        type            calculated;
-        value           uniform 0;
+        type            fixedFluxBuoyantPressure;
+        value           1e5;
     }
     maxY
     {
-        type            calculated;
-        value           uniform 0;
+        type            fixedFluxBuoyantPressure;
+        value           1e5;
     }
     minZ
     {
-        type            calculated;
-        value           uniform 0;
+        type            fixedFluxBuoyantPressure;
+        value           1e5;
     }
     maxZ
     {
-        type            calculated;
-        value           uniform 0;
+        type            fixedFluxBuoyantPressure;
+        value           1e5;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/pd b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/pd
deleted file mode 100644
index dbfc6661058517618c784bf060911ebe265b98c9..0000000000000000000000000000000000000000
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/pd
+++ /dev/null
@@ -1,56 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
-|   \\  /    A nd           | Web:      http://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 0;
-
-boundaryField
-{
-    minX
-    {
-        type            zeroGradient;
-        value           uniform 0;
-    }
-    maxX
-    {
-        type            fixedValue;
-        value           uniform 0;
-    }
-
-    minY
-    {
-        type            zeroGradient;
-        value           uniform 0;
-    }
-    maxY
-    {
-        type            zeroGradient;
-        value           uniform 0;
-    }
-    minZ
-    {
-        type            zeroGradient;
-        value           uniform 0;
-    }
-    maxZ
-    {
-        type            zeroGradient;
-        value           uniform 0;
-    }
-}
-
-// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun
index f4374b6a93079b3971e9000714616bab0a1a0685..1fce68e81c1dad9bb03027069d2cacfc6df06c26 100755
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun
@@ -30,7 +30,26 @@ do
    rm -f 0*/$i/{cp,K}
 done
 
-runApplication chtMultiRegionFoam
+
+#-- Run on single processor
+#runApplication chtMultiRegionFoam
+
+# Decompose
+for i in bottomAir topAir heater leftSolid rightSolid
+do
+   decomposePar -region $i
+done
+
+# Run
+hostname > system/machines
+runParallel chtMultiRegionFoam 4 system/machines
+
+# Reconstruct
+for i in bottomAir topAir heater leftSolid rightSolid
+do
+   reconstructPar -region $i
+done
+
 
 echo
 echo "creating files for paraview post-processing"
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/turbulenceProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/turbulenceProperties
index 07f85c68df22113b7c7747b89457597b0ea41d66..0efb448180f1ba26ac35d2dda07035e9ec6873f6 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/turbulenceProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/turbulenceProperties
@@ -14,6 +14,6 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-simulationType  RASModel;
+simulationType  laminar;
 
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/polyMesh/boundary b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/polyMesh/boundary
index 69a0952209dee387ae6cda9212a645086bba6b7a..73459cea0720d03956f9bd6cfb7f59f4d60a5d64 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/polyMesh/boundary
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/polyMesh/boundary
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.5                                   |
-|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/regionProperties b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/regionProperties
index e72fde91a8b5918e35f833a9997d6ba34d496a92..4fc4b886687248dbf1cbc6b1d248c9e22b2d8ea2 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/regionProperties
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/regionProperties
@@ -19,7 +19,4 @@ fluidRegionNames ( bottomAir topAir );
 
 solidRegionNames ( heater leftSolid rightSolid );
 
-pRef            100000;
-
-
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/README b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/README
index fd464e464c710813fac07db7d9ee31278ad58094..5a81b9a5708b0346c6cdd4bd2f6835feb3700bc1 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/README
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/README
@@ -1,3 +1,3 @@
-fvSchemes and fvSolution are not used here
-- added so that pre-processing activities can proceed
+fvSolution is used for outer correctors specification.
+fvSchemes is only so that pre-processing activities can proceed
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/changeDictionaryDict
index 5f75f1a76ddf1691f69796712f10ba8a2ec10238..7ee62d4bd7ab20aa698476583b6260258630fc37 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/changeDictionaryDict
@@ -16,6 +16,31 @@ FoamFile
 
 dictionaryReplacement
 {
+    boundary
+    {
+        bottomAir_to_leftSolid
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    leftSolid;
+            samplePatch     leftSolid_to_bottomAir;
+        }
+        bottomAir_to_rightSolid
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    rightSolid;
+            samplePatch     rightSolid_to_bottomAir;
+        }
+        bottomAir_to_heater
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    heater;
+            samplePatch     heater_to_bottomAir;
+        }
+    }
+
     U
     {
         internalField   uniform (0 0 0);
@@ -62,8 +87,6 @@ dictionaryReplacement
             bottomAir_to_leftSolid
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName leftSolid;
-                neighbourPatchName leftSolid_to_bottomAir;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -72,8 +95,6 @@ dictionaryReplacement
             bottomAir_to_heater
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName heater;
-                neighbourPatchName heater_to_bottomAir;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -81,8 +102,6 @@ dictionaryReplacement
             bottomAir_to_rightSolid
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName rightSolid;
-                neighbourPatchName rightSolid_to_bottomAir;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -205,101 +224,55 @@ dictionaryReplacement
         }
     }
 
-    pd
+    p
     {
+        internalField   uniform 1E5;
+
         boundaryField
         {
             minX
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
             maxX
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
             minY
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
             minZ
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
             maxZ
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
             bottomAir_to_leftSolid
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
             bottomAir_to_heater
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
             bottomAir_to_rightSolid
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
         }
     }
 
-    p
-    {
-        internalField   uniform 100000;
-        boundaryField
-        {
-            minX
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-            maxX
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-            minY
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-            minZ
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-            maxZ
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-
-            bottomAir_to_leftSolid
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-            bottomAir_to_heater
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-            bottomAir_to_rightSolid
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-        }
-    }
 }
 
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..aad15ee459b6e01cdf6fabba08eb2fa5b8c2a4dd
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/decomposeParDict
@@ -0,0 +1,86 @@
+/*-------------------------------*- C++ -*---------------------------------*\
+|    =========                                                              |
+|    \\      /     OpenFOAM                                                 |
+|     \\    /                                                               |
+|      \\  /       The Open Source CFD Toolbox                              |
+|       \\/                                        http://www.OpenFOAM.org  |
+\*-------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh decomposition control dictionary";
+    location    "system";
+    object      decomposeParDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  4;
+
+//- Keep owner and neighbour on same processor for faces in zones:
+// preserveFaceZones (heater solid1 solid3);
+
+method          scotch;
+// method          hierarchical;
+// method          simple;
+// method          metis;
+// method          manual;
+
+simpleCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+}
+
+hierarchicalCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+    order       xyz;
+}
+
+metisCoeffs
+{
+ /*
+    processorWeights
+    (
+        1
+        1
+        1
+        1
+    );
+  */
+}
+
+scotchCoeffs
+{
+    //processorWeights
+    //(
+    //    1
+    //    1
+    //    1
+    //    1
+    //);
+    //writeGraph  true;
+    //strategy "b";
+}
+
+manualCoeffs
+{
+    dataFile    "decompositionData";
+}
+
+
+//// Is the case distributed
+//distributed     yes;
+//// Per slave (so nProcs-1 entries) the directory above the case.
+//roots           
+//(
+//    "/tmp"
+//    "/tmp"
+//);
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSchemes b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSchemes
index 9e792da55f1a212351fd1e5d2d26e2992642a502..5559e33626b9f62d129a9265641d3156edb4814d 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSchemes
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSchemes
@@ -30,7 +30,7 @@ divSchemes
 {
     default         none;
     div(phi,U)      Gauss upwind;
-    div(phiU,p)     Gauss upwind;
+    div(phiU,p)     Gauss linear;
     div(phi,h)      Gauss upwind;
     div(phi,k)      Gauss upwind;
     div(phi,epsilon) Gauss upwind;
@@ -43,7 +43,7 @@ laplacianSchemes
 {
     default         none;
     laplacian(muEff,U) Gauss linear limited 0.333;
-    laplacian((rho*(1|A(U))),pd) Gauss linear limited 0.333;
+    laplacian((rho*(1|A(U))),p) Gauss linear limited 0.333;
     laplacian(alphaEff,h) Gauss linear limited 0.333;
     laplacian(DkEff,k) Gauss linear limited 0.333;
     laplacian(DepsilonEff,epsilon) Gauss linear limited 0.333;
@@ -63,7 +63,7 @@ snGradSchemes
 fluxRequired
 {
     default         no;
-    pd;
+    p;
 }
 
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSolution
index 84839fe0ac905869edce0e444073487c84f3c61e..e0ecb9405c6ee97475280b790e95176ff3b61e41 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSolution
@@ -20,28 +20,14 @@ solvers
     {
         solver          PCG
         preconditioner  DIC;
-        tolerance       1e-6;
+        tolerance       1e-8;
         relTol          0;
     };
-//    pd
-//    {
-//        solver           PCG
-//        preconditioner   DIC;
-//        tolerance        1e-6;
-//        relTol           0.1;
-//    };
-//    pdFinal
-//    {
-//        solver           PCG;
-//        preconditioner   DIC;
-//        tolerance        1e-08;
-//        relTol           0;
-//    };
-    pd
+    p
     {
         solver           GAMG;
-        tolerance        1e-6;
-        relTol           0.1;
+        tolerance        1e-8;
+        relTol           0.01;
 
         smoother         GaussSeidel;
 
@@ -50,10 +36,10 @@ solvers
         agglomerator     faceAreaPair;
         mergeLevels      1;
     };
-    pdFinal
+    pFinal
     {
         solver           GAMG;
-        tolerance        1e-6;
+        tolerance        1e-8;
         relTol           0;
 
         smoother         GaussSeidel;
@@ -70,32 +56,41 @@ solvers
         tolerance        1e-08;
         relTol           0;
     };
+
     h
     {
         solver           PBiCG;
         preconditioner   DILU;
-        tolerance        1e-06;
+        tolerance        1e-08;
+        relTol           0.1;
+    };
+    hFinal
+    {
+        solver           PBiCG;
+        preconditioner   DILU;
+        tolerance        1e-08;
         relTol           0;
     };
+
     k
     {
         solver           PBiCG;
         preconditioner   DILU;
-        tolerance        1e-06;
+        tolerance        1e-08;
         relTol           0;
     };
     epsilon
     {
         solver           PBiCG;
         preconditioner   DILU;
-        tolerance        1e-06;
+        tolerance        1e-08;
         relTol           0;
     };
     R
     {
         solver           PBiCG;
         preconditioner   DILU;
-        tolerance        1e-06;
+        tolerance        1e-08;
         relTol           0;
     };
 }
@@ -106,14 +101,23 @@ PISO
     nOuterCorrectors     1;
     nCorrectors     2;
     nNonOrthogonalCorrectors 1;
-    pdRefCell        0;
-    pdRefValue       0;
+    pRefPoint       (-0.081 -0.0257 8.01);
+    pRefValue       1e5;
+}
+
+
+PIMPLE
+{
+    momentumPredictor   on;
+    nCorrectors         2;
+    nNonOrthogonalCorrectors 0;
 }
 
-//relaxationFactors
-//{
-////    h               0.9;
+
+relaxationFactors
+{
+//    h               0.9;
 //    U               0.9;
-//}
+}
 
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/controlDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/controlDict
index 2a5d32fc95549424c2cb293f12ff9656a8daf9c9..58ad3f65ba457ba82d5f846875fdd738b10694ed 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/controlDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/controlDict
@@ -15,19 +15,19 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-startFrom       latestTime;
+startFrom       startTime;
 
-startTime       0;
+startTime       0.001;
 
 stopAt          endTime;
 
-endTime         180;
+endTime         200;
 
 deltaT          0.001;
 
 writeControl    adjustableRunTime;
 
-writeInterval   5;
+writeInterval   50;
 
 purgeWrite      0;
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..aad15ee459b6e01cdf6fabba08eb2fa5b8c2a4dd
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict
@@ -0,0 +1,86 @@
+/*-------------------------------*- C++ -*---------------------------------*\
+|    =========                                                              |
+|    \\      /     OpenFOAM                                                 |
+|     \\    /                                                               |
+|      \\  /       The Open Source CFD Toolbox                              |
+|       \\/                                        http://www.OpenFOAM.org  |
+\*-------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh decomposition control dictionary";
+    location    "system";
+    object      decomposeParDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  4;
+
+//- Keep owner and neighbour on same processor for faces in zones:
+// preserveFaceZones (heater solid1 solid3);
+
+method          scotch;
+// method          hierarchical;
+// method          simple;
+// method          metis;
+// method          manual;
+
+simpleCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+}
+
+hierarchicalCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+    order       xyz;
+}
+
+metisCoeffs
+{
+ /*
+    processorWeights
+    (
+        1
+        1
+        1
+        1
+    );
+  */
+}
+
+scotchCoeffs
+{
+    //processorWeights
+    //(
+    //    1
+    //    1
+    //    1
+    //    1
+    //);
+    //writeGraph  true;
+    //strategy "b";
+}
+
+manualCoeffs
+{
+    dataFile    "decompositionData";
+}
+
+
+//// Is the case distributed
+//distributed     yes;
+//// Per slave (so nProcs-1 entries) the directory above the case.
+//roots           
+//(
+//    "/tmp"
+//    "/tmp"
+//);
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/fvSolution
index 78262ec2df008422f0817dc264bc8dab539bf568..50f28d672d7203b69ec909d90a6764a191c51631 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/fvSolution
@@ -14,4 +14,9 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+PIMPLE
+{
+    nOuterCorrectors 1;
+}
+
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/changeDictionaryDict
index 92038e31df8fd503518e3a30e581e9d16756227c..2bea6785224723f43db9cba91aaaf21d5ebf8998 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/changeDictionaryDict
@@ -16,6 +16,38 @@ FoamFile
 
 dictionaryReplacement
 {
+    boundary
+    {
+        heater_to_bottomAir
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    bottomAir;
+            samplePatch     bottomAir_to_heater;
+        }
+        heater_to_leftSolid
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    leftSolid;
+            samplePatch     leftSolid_to_heater;
+        }
+        heater_to_rightSolid
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    rightSolid;
+            samplePatch     rightSolid_to_heater;
+        }
+        heater_to_topAir
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    topAir;
+            samplePatch     topAir_to_heater;
+        }
+    }
+
     T
     {
         internalField   uniform 300;
@@ -40,8 +72,6 @@ dictionaryReplacement
             heater_to_bottomAir
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName bottomAir;
-                neighbourPatchName bottomAir_to_heater;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -50,8 +80,6 @@ dictionaryReplacement
             heater_to_leftSolid
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName leftSolid;
-                neighbourPatchName leftSolid_to_heater;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -59,8 +87,6 @@ dictionaryReplacement
             heater_to_rightSolid
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName rightSolid;
-                neighbourPatchName rightSolid_to_heater;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -68,8 +94,6 @@ dictionaryReplacement
             heater_to_topAir
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName topAir;
-                neighbourPatchName topAir_to_heater;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..aad15ee459b6e01cdf6fabba08eb2fa5b8c2a4dd
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/decomposeParDict
@@ -0,0 +1,86 @@
+/*-------------------------------*- C++ -*---------------------------------*\
+|    =========                                                              |
+|    \\      /     OpenFOAM                                                 |
+|     \\    /                                                               |
+|      \\  /       The Open Source CFD Toolbox                              |
+|       \\/                                        http://www.OpenFOAM.org  |
+\*-------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh decomposition control dictionary";
+    location    "system";
+    object      decomposeParDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  4;
+
+//- Keep owner and neighbour on same processor for faces in zones:
+// preserveFaceZones (heater solid1 solid3);
+
+method          scotch;
+// method          hierarchical;
+// method          simple;
+// method          metis;
+// method          manual;
+
+simpleCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+}
+
+hierarchicalCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+    order       xyz;
+}
+
+metisCoeffs
+{
+ /*
+    processorWeights
+    (
+        1
+        1
+        1
+        1
+    );
+  */
+}
+
+scotchCoeffs
+{
+    //processorWeights
+    //(
+    //    1
+    //    1
+    //    1
+    //    1
+    //);
+    //writeGraph  true;
+    //strategy "b";
+}
+
+manualCoeffs
+{
+    dataFile    "decompositionData";
+}
+
+
+//// Is the case distributed
+//distributed     yes;
+//// Per slave (so nProcs-1 entries) the directory above the case.
+//roots           
+//(
+//    "/tmp"
+//    "/tmp"
+//);
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/fvSolution
index d1c768d4d4444eb6e1937e1840ddde4a19096376..342a7d4232540c1bcefb8362e4e638d7e9a3b9b0 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/fvSolution
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/fvSolution
@@ -30,4 +30,9 @@ PISO
     nNonOrthogonalCorrectors 1;
 }
 
+PIMPLE
+{
+    nNonOrthogonalCorrectors 1;
+}
+
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/changeDictionaryDict
index c30a9b5c4bb180f2b7541a0cbaefa68c62791b40..0fb3ee191c8a06de31849237b5bdd5499d40f8f0 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/changeDictionaryDict
@@ -16,6 +16,31 @@ FoamFile
 
 dictionaryReplacement
 {
+    boundary
+    {
+        leftSolid_to_bottomAir
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    bottomAir;
+            samplePatch     bottomAir_to_leftSolid;
+        }
+        leftSolid_to_heater
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    heater;
+            samplePatch     heater_to_leftSolid;;
+        }
+        leftSolid_to_topAir
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    topAir;
+            samplePatch     topAir_to_leftSolid;;
+        }
+    }
+
     T
     {
         internalField   uniform 300;
@@ -37,8 +62,6 @@ dictionaryReplacement
             leftSolid_to_bottomAir
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName bottomAir;
-                neighbourPatchName bottomAir_to_leftSolid;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -47,8 +70,6 @@ dictionaryReplacement
             leftSolid_to_heater
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName heater;
-                neighbourPatchName heater_to_leftSolid;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -56,8 +77,6 @@ dictionaryReplacement
             leftSolid_to_topAir
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName topAir;
-                neighbourPatchName topAir_to_leftSolid;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..aad15ee459b6e01cdf6fabba08eb2fa5b8c2a4dd
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/decomposeParDict
@@ -0,0 +1,86 @@
+/*-------------------------------*- C++ -*---------------------------------*\
+|    =========                                                              |
+|    \\      /     OpenFOAM                                                 |
+|     \\    /                                                               |
+|      \\  /       The Open Source CFD Toolbox                              |
+|       \\/                                        http://www.OpenFOAM.org  |
+\*-------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh decomposition control dictionary";
+    location    "system";
+    object      decomposeParDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  4;
+
+//- Keep owner and neighbour on same processor for faces in zones:
+// preserveFaceZones (heater solid1 solid3);
+
+method          scotch;
+// method          hierarchical;
+// method          simple;
+// method          metis;
+// method          manual;
+
+simpleCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+}
+
+hierarchicalCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+    order       xyz;
+}
+
+metisCoeffs
+{
+ /*
+    processorWeights
+    (
+        1
+        1
+        1
+        1
+    );
+  */
+}
+
+scotchCoeffs
+{
+    //processorWeights
+    //(
+    //    1
+    //    1
+    //    1
+    //    1
+    //);
+    //writeGraph  true;
+    //strategy "b";
+}
+
+manualCoeffs
+{
+    dataFile    "decompositionData";
+}
+
+
+//// Is the case distributed
+//distributed     yes;
+//// Per slave (so nProcs-1 entries) the directory above the case.
+//roots           
+//(
+//    "/tmp"
+//    "/tmp"
+//);
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/changeDictionaryDict
index 292f92f1d3b4efdd81831370545adc34357fd586..c3d6b08a0d147cef9d91a02a45036fadc4cfa59b 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/changeDictionaryDict
@@ -16,6 +16,31 @@ FoamFile
 
 dictionaryReplacement
 {
+    boundary
+    {
+        rightSolid_to_heater
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    heater;
+            samplePatch     heater_to_rightSolid;
+        }
+        rightSolid_to_bottomAir
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    bottomAir;
+            samplePatch     bottomAir_to_rightSolid;
+        }
+        rightSolid_to_topAir
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    topAir;
+            samplePatch     topAir_to_rightSolid;
+        }
+    }
+
     T
     {
         internalField   uniform 300;
@@ -37,8 +62,6 @@ dictionaryReplacement
             rightSolid_to_heater
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName heater;
-                neighbourPatchName heater_to_rightSolid;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -46,8 +69,6 @@ dictionaryReplacement
             rightSolid_to_bottomAir
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName bottomAir;
-                neighbourPatchName bottomAir_to_rightSolid;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -55,8 +76,6 @@ dictionaryReplacement
             rightSolid_to_topAir
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName topAir;
-                neighbourPatchName topAir_to_rightSolid;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..aad15ee459b6e01cdf6fabba08eb2fa5b8c2a4dd
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/decomposeParDict
@@ -0,0 +1,86 @@
+/*-------------------------------*- C++ -*---------------------------------*\
+|    =========                                                              |
+|    \\      /     OpenFOAM                                                 |
+|     \\    /                                                               |
+|      \\  /       The Open Source CFD Toolbox                              |
+|       \\/                                        http://www.OpenFOAM.org  |
+\*-------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh decomposition control dictionary";
+    location    "system";
+    object      decomposeParDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  4;
+
+//- Keep owner and neighbour on same processor for faces in zones:
+// preserveFaceZones (heater solid1 solid3);
+
+method          scotch;
+// method          hierarchical;
+// method          simple;
+// method          metis;
+// method          manual;
+
+simpleCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+}
+
+hierarchicalCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+    order       xyz;
+}
+
+metisCoeffs
+{
+ /*
+    processorWeights
+    (
+        1
+        1
+        1
+        1
+    );
+  */
+}
+
+scotchCoeffs
+{
+    //processorWeights
+    //(
+    //    1
+    //    1
+    //    1
+    //    1
+    //);
+    //writeGraph  true;
+    //strategy "b";
+}
+
+manualCoeffs
+{
+    dataFile    "decompositionData";
+}
+
+
+//// Is the case distributed
+//distributed     yes;
+//// Per slave (so nProcs-1 entries) the directory above the case.
+//roots           
+//(
+//    "/tmp"
+//    "/tmp"
+//);
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/changeDictionaryDict
index e13083daa743d89571b74dfcac14d8605ea0b60b..f4f44ee6d49cc25317612a2ae6cd4355296aa3e1 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/changeDictionaryDict
@@ -16,6 +16,31 @@ FoamFile
 
 dictionaryReplacement
 {
+    boundary
+    {
+        topAir_to_leftSolid
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    leftSolid;
+            samplePatch     leftSolid_to_topAir;
+        }
+        topAir_to_heater
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    heater;
+            samplePatch     heater_to_topAir;
+        }
+        topAir_to_rightSolid
+        {
+            offset          ( 0 0 0 );
+            sampleMode      nearestPatchFace;
+            sampleRegion    rightSolid;
+            samplePatch     rightSolid_to_topAir;
+        }
+    }
+
     U
     {
         internalField   uniform ( 0.01 0 0 );
@@ -63,8 +88,6 @@ dictionaryReplacement
             topAir_to_leftSolid
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName leftSolid;
-                neighbourPatchName leftSolid_to_topAir;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -73,8 +96,6 @@ dictionaryReplacement
             topAir_to_heater
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName heater;
-                neighbourPatchName heater_to_topAir;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -82,8 +103,6 @@ dictionaryReplacement
             topAir_to_rightSolid
             {
                 type            solidWallMixedTemperatureCoupled;
-                neighbourRegionName rightSolid;
-                neighbourPatchName rightSolid_to_topAir;
                 neighbourFieldName T;
                 K               K;
                 value           uniform 300;
@@ -204,109 +223,61 @@ dictionaryReplacement
         }
     }
 
-    pd
+    p
     {
+        internalField   uniform 1E5;
+
         boundaryField
         {
             minX
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
             maxX
             {
                 type            waveTransmissive;
-                field           pd;
+                //field           p;
                 phi             phi;
                 rho             rho;
                 psi             psi;
                 gamma           1.4;    // cp/cv
-                fieldInf        0;
+                fieldInf        1e5;
                 lInf            0.40;   // double length of domain
-                value           uniform 0;
+                value           uniform 1e5;
             }
 
             minY
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
 
             minZ
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
             maxZ
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
 
             topAir_to_leftSolid
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
             topAir_to_heater
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
+                value           1e5;
             }
             topAir_to_rightSolid
             {
                 type            fixedFluxBuoyantPressure;
-                value           0;
-            }
-        }
-    }
-
-    p
-    {
-        internalField   uniform 100000;
-
-        boundaryField
-        {
-            minX
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-            maxX
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-            maxY
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-            minZ
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-            maxZ
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-
-            topAir_to_leftSolid
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-            topAir_to_heater
-            {
-                type            calculated;
-                value           uniform 100000;
-            }
-            topAir_to_rightSolid
-            {
-                type            calculated;
-                value           uniform 100000;
+                value           1e5;
             }
         }
     }
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..aad15ee459b6e01cdf6fabba08eb2fa5b8c2a4dd
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/decomposeParDict
@@ -0,0 +1,86 @@
+/*-------------------------------*- C++ -*---------------------------------*\
+|    =========                                                              |
+|    \\      /     OpenFOAM                                                 |
+|     \\    /                                                               |
+|      \\  /       The Open Source CFD Toolbox                              |
+|       \\/                                        http://www.OpenFOAM.org  |
+\*-------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "mesh decomposition control dictionary";
+    location    "system";
+    object      decomposeParDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  4;
+
+//- Keep owner and neighbour on same processor for faces in zones:
+// preserveFaceZones (heater solid1 solid3);
+
+method          scotch;
+// method          hierarchical;
+// method          simple;
+// method          metis;
+// method          manual;
+
+simpleCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+}
+
+hierarchicalCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+    order       xyz;
+}
+
+metisCoeffs
+{
+ /*
+    processorWeights
+    (
+        1
+        1
+        1
+        1
+    );
+  */
+}
+
+scotchCoeffs
+{
+    //processorWeights
+    //(
+    //    1
+    //    1
+    //    1
+    //    1
+    //);
+    //writeGraph  true;
+    //strategy "b";
+}
+
+manualCoeffs
+{
+    dataFile    "decompositionData";
+}
+
+
+//// Is the case distributed
+//distributed     yes;
+//// Per slave (so nProcs-1 entries) the directory above the case.
+//roots           
+//(
+//    "/tmp"
+//    "/tmp"
+//);
+
+
+// ************************************************************************* //