diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/T b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0.orig/T
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/T
rename to tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0.orig/T
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/U b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0.orig/U
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/U
rename to tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0.orig/U
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/epsilon b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0.orig/epsilon
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/epsilon
rename to tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0.orig/epsilon
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/k b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0.orig/k
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/k
rename to tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0.orig/k
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/p b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0.orig/p
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/p
rename to tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0.orig/p
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/p_rgh b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0.orig/p_rgh
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0/p_rgh
rename to tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/0.orig/p_rgh
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allclean b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allclean
index fad685f8abf315ed9ac069365c04299af5775c56..696cfb7f54ca0c8a6ca4fe5b773fb4d6d8368988 100755
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allclean
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allclean
@@ -2,16 +2,10 @@
 cd ${0%/*} || exit 1                        # Run from this directory
 . $WM_PROJECT_DIR/bin/tools/CleanFunctions  # Tutorial clean functions
 
-cleanCase
+cleanCase0
 
 rm -rf VTK
 rm -rf constant/cellToRegion
-rm -f 0/cellToRegion
-rm -rf 0/bottomWater
-rm -rf 0/topAir
-rm -rf 0/heater
-rm -rf 0/leftSolid
-rm -rf 0/rightSolid
 
 rm -rf constant/bottomWater/polyMesh
 rm -rf constant/topAir/polyMesh
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allmesh b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allmesh
index a579c1f4b6034c1691584eaec24f41da3212d1a2..44fa7da1372f309d12deb1c3d8948c311ad5f39c 100755
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allmesh
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allmesh
@@ -4,23 +4,25 @@ cd ${0%/*} || exit 1                        # Run from this directory
 
 runApplication blockMesh
 runApplication topoSet
+
+# Restore initial fields
+restore0Dir
+
 runApplication splitMeshRegions -cellZones -overwrite
 
 # Remove fluid fields from solid regions (important for post-processing)
-for i in $(foamListRegions solid)
+for region in $(foamListRegions solid)
 do
-   rm -f 0*/$i/{nut,alphat,epsilon,k,U,p_rgh}
+    rm -f 0/$region/{nut,alphat,epsilon,k,U,p_rgh}
 done
 
-for i in $(foamListRegions)
+for region in $(foamListRegions)
 do
-   runApplication -s $i changeDictionary -region $i
+    runApplication -s $region changeDictionary -region $region
 done
 
-
 echo
-echo "Creating files for paraview post-processing"
+echo "Use paraFoam -touch-all to create files for paraview post-processing"
 echo
-paraFoam -touchAll
 
 #------------------------------------------------------------------------------
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict
index e630d52119812f1ca4e10efdeb5be194b1de3266..c8c7edc63d4855f6f8b1e1d3e98f3381c69bdef0 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict
@@ -30,12 +30,11 @@ regions
     heater
     {
         numberOfSubdomains  1;
-        method          none;
+        method          simple; // none;
 
         coeffs
         {
             n       (1 1 1);
-            delta   0.001;
         }
     }
 }
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/T b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/T
similarity index 89%
rename from tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/T
rename to tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/T
index d28373b3da5a80c18fcda22b57a4769b98a3226d..fda1ac90bb0302f50cdfa072cfe4b6e424dbfdd1 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/T
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/T
@@ -20,10 +20,12 @@ internalField   uniform 300;
 
 boundaryField
 {
+    #includeEtc "caseDicts/setConstraintTypes"
+
     ".*"
     {
-        type            calculated;
-        value           uniform 300;
+        type    calculated;
+        value   $internalField;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/U b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/U
similarity index 89%
rename from tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/U
rename to tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/U
index 7ec4f2907c0f90e9c0b201b13fdcca7edfdb5a82..1e82313ce1ebe1425bb205571ad88e7fc16b5191 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/U
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/U
@@ -20,10 +20,12 @@ internalField   uniform (0.01 0 0);
 
 boundaryField
 {
+    #includeEtc "caseDicts/setConstraintTypes"
+
     ".*"
     {
-        type            calculated;
-        value           uniform (0.01 0 0);
+        type    calculated;
+        value   $internalField;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/alphat b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/alphat
similarity index 89%
rename from tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/alphat
rename to tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/alphat
index 222501d30ec38778441a3f64baeeff3fda0923df..579aa2a63edd70657908593c427b1f46dc465f55 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/alphat
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/alphat
@@ -20,12 +20,13 @@ internalField   uniform 0;
 
 boundaryField
 {
+    #includeEtc "caseDicts/setConstraintTypes"
+
     ".*"
     {
-        type            calculated;
-        value           uniform 0;
+        type    calculated;
+        value   $internalField;
     }
 }
 
-
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/epsilon b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/epsilon
similarity index 89%
rename from tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/epsilon
rename to tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/epsilon
index ee4ec0c64b525509961dd656ef7d8f3736e6631d..5c3cd8d259ba77f9241a2ba9495acb5d39bca72f 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/epsilon
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/epsilon
@@ -20,12 +20,13 @@ internalField   uniform 0.01;
 
 boundaryField
 {
+    #includeEtc "caseDicts/setConstraintTypes"
+
     ".*"
     {
-        type            calculated;
-        value           uniform 0.01;
+        type    calculated;
+        value   $internalField;
     }
 }
 
-
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/k b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/k
similarity index 89%
rename from tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/k
rename to tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/k
index a2aae944737f621cbd8775fb1c32b67e5a1fbfb4..cb92af63c973748bf01345f1dbe3a4bb22f794d1 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/k
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/k
@@ -20,12 +20,13 @@ internalField   uniform 0.1;
 
 boundaryField
 {
+    #includeEtc "caseDicts/setConstraintTypes"
+
     ".*"
     {
-        type            calculated;
-        value           uniform 0.1;
+        type    calculated;
+        value   $internalField;
     }
 }
 
-
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/p b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/p
similarity index 89%
rename from tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/p
rename to tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/p
index e54b106a156a05c93da2cd2de7ce16202c9f4694..3e0414647bbe09ffbf93cdccbdf281c631086a0f 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/p
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/p
@@ -20,10 +20,12 @@ internalField   uniform 1e5;
 
 boundaryField
 {
+    #includeEtc "caseDicts/setConstraintTypes"
+
     ".*"
     {
-        type            calculated;
-        value           uniform 1e5;
+        type    calculated;
+        value   $internalField;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/p_rgh b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/p_rgh
similarity index 91%
rename from tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/p_rgh
rename to tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/p_rgh
index a9074ce903da41c51a37943960f41b955d45feb2..ed32bb409dc21cd0ac3554b2c255fdfd33b5bb87 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/p_rgh
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/p_rgh
@@ -20,10 +20,12 @@ internalField   uniform 1e5;
 
 boundaryField
 {
+    #includeEtc "caseDicts/setConstraintTypes"
+
     ".*"
     {
         type            calculated;
-        value           uniform 1e5;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/rho b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/rho
similarity index 89%
rename from tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/rho
rename to tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/rho
index f5c3908bd2e495c367ff848006fe03cd21300576..aa67e89d52fcf1ff12aaf469e73a40cc18f0966a 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0/rho
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/0.orig/rho
@@ -20,10 +20,12 @@ internalField   uniform 8000;
 
 boundaryField
 {
+    #includeEtc "caseDicts/setConstraintTypes"
+
     ".*"
     {
-        type            calculated;
-        value           uniform 8000;
+        type    calculated;
+        value   $internalField;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allclean b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allclean
index 0ad9dc9eb83fd688de417304e60614151bf130e8..e6134ad5564b572df85c3acdcffad1bd3cad7893 100755
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allclean
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allclean
@@ -2,19 +2,13 @@
 cd ${0%/*} || exit 1                        # Run from this directory
 . $WM_PROJECT_DIR/bin/tools/CleanFunctions  # Tutorial clean functions
 
-cleanCase
+cleanCase0
 
 rm -rf constant/extendedFeatureEdgeMesh > /dev/null 2>&1
 rm -f constant/triSurface/*.eMesh > /dev/null 2>&1
 
 rm -rf VTK
 rm -rf constant/cellToRegion
-rm -rf 0/bottomAir
-rm -rf 0/topAir
-rm -rf 0/heater
-rm -rf 0/leftSolid
-rm -rf 0/rightSolid
-rm -f 0/cellToRegion
 
 rm -rf constant/bottomAir/polyMesh
 rm -rf constant/topAir/polyMesh
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allrun b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allrun
deleted file mode 100755
index 6f11ca80be80c148943862a31f4d27234efe1568..0000000000000000000000000000000000000000
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allrun
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-cd ${0%/*} || exit 1                        # Run from this directory
-. $WM_PROJECT_DIR/bin/tools/RunFunctions    # Tutorial run functions
-
-rm -rf constant/polyMesh/sets
-
-runApplication blockMesh
-runApplication surfaceFeatureExtract
-
-runApplication snappyHexMesh -overwrite
-runApplication splitMeshRegions -cellZones -overwrite
-
-# remove fluid fields from solid regions (important for post-processing)
-for i in $(foamListRegions solid)
-do
-   rm -f 0*/$i/{nut,alphat,epsilon,k,U,p_rgh}
-done
-
-
-for i in $(foamListRegions)
-do
-   runApplication -s $i changeDictionary -region $i
-done
-
-
-#-- Run on single processor
-runApplication $(getApplication)
-
-
-## Decompose
-#runApplication decomposePar -allRegions
-#
-## Run
-#runParallel $(getApplication)
-#
-## Reconstruct
-#runApplication reconstructPar -allRegions
-
-
-echo
-echo "creating files for paraview post-processing"
-echo
-paraFoam -touchAll
-
-#------------------------------------------------------------------------------
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allrun b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allrun
new file mode 120000
index 0000000000000000000000000000000000000000..f8f6fb52273fc4261c74c5bfbaf71e49adfcb80f
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allrun
@@ -0,0 +1 @@
+Allrun-parallel
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allrun-parallel b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allrun-parallel
new file mode 100755
index 0000000000000000000000000000000000000000..5e3d4522758439533cf810d1877cdaf925da51d5
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allrun-parallel
@@ -0,0 +1,55 @@
+#!/bin/sh
+cd ${0%/*} || exit 1                        # Run from this directory
+. $WM_PROJECT_DIR/bin/tools/RunFunctions    # Tutorial run functions
+
+rm -rf constant/polyMesh/sets
+
+# For meshing only
+decompDict="-decomposeParDict system/decomposeParDict.6"
+
+runApplication blockMesh
+runApplication surfaceFeatureExtract
+
+runApplication $decompDict decomposePar
+
+runParallel $decompDict snappyHexMesh -overwrite
+
+# Restore initial fields
+restore0Dir -processor
+
+runParallel $decompDict splitMeshRegions -cellZones -overwrite
+
+# Remove fluid fields from solid regions (important for post-processing)
+for region in $(foamListRegions solid)
+do
+    rm -f 0/$region/{nut,alphat,epsilon,k,U,p_rgh}
+    rm -f processor*/0/$region/{nut,alphat,epsilon,k,U,p_rgh}
+done
+
+for region in $(foamListRegions)
+do
+    runParallel $decompDict -s $region changeDictionary -region $region
+done
+
+# Redistribute onto fewer processors, with special treatment for heater
+for region in $(foamListRegions)
+do
+    runParallel -np 6 -s redist-$region \
+        redistributePar -overwrite -region $region
+done
+
+#-- Run in parallel
+runParallel $(getApplication)
+
+# Reconstruct
+for region in $(foamListRegions)
+do
+    runParallel -s reconstruct-$region \
+        redistributePar -reconstruct -region $region
+done
+
+echo
+echo "Use paraFoam -touch-all to create files for paraview post-processing"
+echo
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allrun-serial b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allrun-serial
new file mode 100755
index 0000000000000000000000000000000000000000..87936c17507c1ec4426df670d0a2ad47b021f770
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/Allrun-serial
@@ -0,0 +1,36 @@
+#!/bin/sh
+cd ${0%/*} || exit 1                        # Run from this directory
+. $WM_PROJECT_DIR/bin/tools/RunFunctions    # Tutorial run functions
+
+rm -rf constant/polyMesh/sets
+
+runApplication blockMesh
+runApplication surfaceFeatureExtract
+
+runApplication snappyHexMesh -overwrite
+
+# Restore initial fields
+restore0Dir
+
+runApplication splitMeshRegions -cellZones -overwrite
+
+# Remove fluid fields from solid regions (important for post-processing)
+for region in $(foamListRegions solid)
+do
+    rm -f 0/$region/{nut,alphat,epsilon,k,U,p_rgh}
+done
+
+for region in $(foamListRegions)
+do
+    runApplication -s $region changeDictionary -region $region
+done
+
+
+# Run on single processor
+runApplication $(getApplication)
+
+echo
+echo "Use paraFoam -touch-all to create files for paraview post-processing"
+echo
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/changeDictionaryDict
index 498816d58e46792bf77502281cc25514e91b05c2..03a7a9094ce7d6e85060f5c5f86714f06fffa395 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/changeDictionaryDict
@@ -37,6 +37,10 @@ U
             type            fixedValue;
             value           uniform (0 0 0);
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
     }
 }
 
@@ -51,6 +55,11 @@ T
             type            zeroGradient;
         }
 
+        "procBoundary.*"
+        {
+            type            processor;
+        }
+
         "bottomAir_to_.*"
         {
             type            compressible::turbulentTemperatureCoupledBaffleMixed;
@@ -74,6 +83,10 @@ epsilon
             type            epsilonWallFunction;
             value           uniform 0.01;
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
     }
 }
 
@@ -88,6 +101,10 @@ k
             type            kqRWallFunction;
             value           uniform 0.1;
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
     }
 }
 
@@ -102,6 +119,10 @@ p_rgh
             type            fixedFluxPressure;
             value           uniform 1e5;
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
     }
 }
 
@@ -116,6 +137,10 @@ p
             type            calculated;
             value           uniform 1e5;
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/decomposeParDict
deleted file mode 100644
index 7263dc66d4ab81b8564c66f1ab7dfdeb659e9260..0000000000000000000000000000000000000000
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/decomposeParDict
+++ /dev/null
@@ -1,48 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    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          manual;
-
-coeffs
-{
-    n           (2 2 1);
-    //delta       0.001; // default=0.001
-    //order       xyz;   // default=xzy
-    dataFile    "decompositionData";
-}
-
-scotchCoeffs
-{
-    //processorWeights
-    //(
-    //    1
-    //    1
-    //    1
-    //    1
-    //);
-    //writeGraph  true;
-    //strategy "b";
-}
-
-// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/decomposeParDict
new file mode 120000
index 0000000000000000000000000000000000000000..46638e60f61f453fde97c51772ad6111792db0f6
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/decomposeParDict
@@ -0,0 +1 @@
+../decomposeParDict
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/decomposeParDict
index 747b5114b73dac97b0632688eea1e670ee4bbe30..ce005bfbda0074b53855b8a312ffa3a0a8ad9bd1 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/decomposeParDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/decomposeParDict
@@ -19,30 +19,25 @@ numberOfSubdomains  4;
 //- Keep owner and neighbour on same processor for faces in zones:
 // preserveFaceZones (heater solid1 solid3);
 
-// method          scotch;
-method          hierarchical;
-// method          simple;
-// method          manual;
+method          scotch;
 
-coeffs
+regions
 {
-    n           (2 2 1);
-    //delta       0.001; // default=0.001
-    //order       xyz;   // default=xzy
-    dataFile    "decompositionData";
+    heater
+    {
+        numberOfSubdomains  1;
+        method          simple;
+
+        coeffs
+        {
+            n       (1 1 1);
+        }
+    }
 }
 
-scotchCoeffs
+coeffs
 {
-    //processorWeights
-    //(
-    //    1
-    //    1
-    //    1
-    //    1
-    //);
-    //writeGraph  true;
-    //strategy "b";
+    n       (2 2 1);
 }
 
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/changeDictionaryDict
index c4321a17982484be3a280c56398310b5b0c3f2a0..94498b92f7bcfa5880b539e994bd2fa1425d4a69 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/changeDictionaryDict
@@ -41,6 +41,10 @@ T
             type            zeroGradient;
             value           uniform 300;
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
         "heater_to_.*"
         {
             type            compressible::turbulentTemperatureCoupledBaffleMixed;
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/decomposeParDict
deleted file mode 100644
index 6f60341487a3c0f21b33a99bd257a6d51b459db9..0000000000000000000000000000000000000000
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/decomposeParDict
+++ /dev/null
@@ -1,49 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| =========                 |                                                 |
-| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  plus                                  |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
-|    \\/     M anipulation  |                                                 |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
-    version     2.0;
-    format      ascii;
-    class       dictionary;
-    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          manual;
-
-coeffs
-{
-    n           (2 2 1);
-    //delta       0.001; // default=0.001
-    //order       xyz;   // default=xzy
-    dataFile    "decompositionData";
-}
-
-scotchCoeffs
-{
-    //processorWeights
-    //(
-    //    1
-    //    1
-    //    1
-    //    1
-    //);
-    //writeGraph  true;
-    //strategy "b";
-}
-
-
-// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/decomposeParDict
new file mode 120000
index 0000000000000000000000000000000000000000..46638e60f61f453fde97c51772ad6111792db0f6
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/decomposeParDict
@@ -0,0 +1 @@
+../decomposeParDict
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/changeDictionaryDict
index 2984030dad06c8bd3374d166efdc21d4df30e218..ef614f46206cd17e487ed0ce255b0244054e2c08 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/changeDictionaryDict
@@ -37,6 +37,10 @@ T
             type            zeroGradient;
             value           uniform 300;
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
         "leftSolid_to_.*"
         {
             type            compressible::turbulentTemperatureCoupledBaffleMixed;
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/changeDictionaryDict
index 184cf95c4e8b8fcd75b505e7eb25b5bc48a9f36a..75655492b8d332fbc810be75294926866c4d8532 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/changeDictionaryDict
@@ -37,6 +37,10 @@ T
             type            zeroGradient;
             value           uniform 300;
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
         "rightSolid_to_.*"
         {
             type            compressible::turbulentTemperatureCoupledBaffleMixed;
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/changeDictionaryDict
index 43e06d9940b5842d6e17a02d3c1584b108299242..15b0c768561fdcf2fde34bd40297c0cc4798c6e0 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/changeDictionaryDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/changeDictionaryDict
@@ -25,6 +25,10 @@ U
             type            fixedValue;
             value           uniform (0 0 0);
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
         minX
         {
             type            fixedValue;
@@ -49,6 +53,10 @@ T
         {
             type            zeroGradient;
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
 
         minX
         {
@@ -83,6 +91,10 @@ epsilon
             type            epsilonWallFunction;
             value           uniform 0.01;
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
 
         minX
         {
@@ -109,6 +121,10 @@ k
             type            kqRWallFunction;
             value           uniform 0.1;
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
 
         minX
         {
@@ -135,6 +151,10 @@ p_rgh
             type            fixedFluxPressure;
             value           uniform 1e5;
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
 
         maxX
         {
@@ -155,6 +175,10 @@ p
             type            calculated;
             value           uniform 1e5;
         }
+        "procBoundary.*"
+        {
+            type            processor;
+        }
 
         maxX
         {