diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/T b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/T
similarity index 96%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/T
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/T
index d28373b3da5a80c18fcda22b57a4769b98a3226d..65205f56ce74e9ac5fb6c418fa6e25eb3134939b 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/T
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/T
@@ -23,7 +23,7 @@ boundaryField
     ".*"
     {
         type            calculated;
-        value           uniform 300;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/U b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/U
similarity index 95%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/U
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/U
index 7ec4f2907c0f90e9c0b201b13fdcca7edfdb5a82..049f4930b8e3e1e464665f77f30e6d796e0ab706 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/U
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/U
@@ -23,7 +23,7 @@ boundaryField
     ".*"
     {
         type            calculated;
-        value           uniform (0.01 0 0);
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/epsilon b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/epsilon
similarity index 96%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/epsilon
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/epsilon
index ee4ec0c64b525509961dd656ef7d8f3736e6631d..ffcdd13d9d4cfae36fc0aeef47201603fc82bdeb 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/epsilon
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/epsilon
@@ -23,9 +23,8 @@ boundaryField
     ".*"
     {
         type            calculated;
-        value           uniform 0.01;
+        value           $internalField;
     }
 }
 
-
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/k b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/k
similarity index 96%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/k
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/k
index a2aae944737f621cbd8775fb1c32b67e5a1fbfb4..e1e1fb1a546b775a6abddf5931d89cf95b39b04e 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/k
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/k
@@ -23,9 +23,8 @@ boundaryField
     ".*"
     {
         type            calculated;
-        value           uniform 0.1;
+        value           $internalField;
     }
 }
 
-
 // ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/p b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/p
similarity index 96%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/p
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/p
index e54b106a156a05c93da2cd2de7ce16202c9f4694..24b94d43e759af18d92568c2def36374b6322050 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/p
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/p
@@ -23,7 +23,7 @@ boundaryField
     ".*"
     {
         type            calculated;
-        value           uniform 1e5;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/p_rgh b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/p_rgh
similarity index 96%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/p_rgh
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/p_rgh
index a9074ce903da41c51a37943960f41b955d45feb2..2e144189ab8ac0ee30efc01152fce0f9818b769c 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/0/p_rgh
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/0/p_rgh
@@ -23,7 +23,7 @@ boundaryField
     ".*"
     {
         type            calculated;
-        value           uniform 1e5;
+        value           $internalField;
     }
 }
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/Allclean b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/Allclean
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/Allclean
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/Allclean
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/Allrun b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/Allrun
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/Allrun
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/Allrun
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/Allrun.pre b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/Allrun.pre
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/Allrun.pre
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/Allrun.pre
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/README.txt b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/README.txt
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/README.txt
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/README.txt
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/bottomWater/g b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/bottomWater/g
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/bottomWater/g
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/bottomWater/g
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/bottomWater/radiationProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/bottomWater/radiationProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/bottomWater/radiationProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/bottomWater/radiationProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/bottomWater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/bottomWater/thermophysicalProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/bottomWater/thermophysicalProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/bottomWater/thermophysicalProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/bottomWater/turbulenceProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/bottomWater/turbulenceProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/bottomWater/turbulenceProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/bottomWater/turbulenceProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/heater/radiationProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/heater/radiationProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/heater/radiationProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/heater/radiationProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/heater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/heater/thermophysicalProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/heater/thermophysicalProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/heater/thermophysicalProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/leftSolid/radiationProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/leftSolid/radiationProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/leftSolid/radiationProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/leftSolid/radiationProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/leftSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/leftSolid/thermophysicalProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/leftSolid/thermophysicalProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/leftSolid/thermophysicalProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/regionProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/regionProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/regionProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/regionProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/rightSolid/radiationProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/rightSolid/radiationProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/rightSolid/radiationProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/rightSolid/radiationProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/rightSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/rightSolid/thermophysicalProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/rightSolid/thermophysicalProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/rightSolid/thermophysicalProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/topAir/g b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/topAir/g
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/topAir/g
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/topAir/g
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/topAir/radiationProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/topAir/radiationProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/topAir/radiationProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/topAir/radiationProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/topAir/thermophysicalProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/topAir/thermophysicalProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/topAir/thermophysicalProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/topAir/turbulenceProperties b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/topAir/turbulenceProperties
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/constant/topAir/turbulenceProperties
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/constant/topAir/turbulenceProperties
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/externalSolver b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/externalSolver
similarity index 83%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/externalSolver
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/externalSolver
index aba9a811432b879333477a690bd2f0ecc1222cf0..3b7080915d6f44926d15d9e63b96f71251d872e9 100755
--- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/externalSolver
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/externalSolver
@@ -23,6 +23,9 @@ waitSec=5
 timeOut=100
 nSteps=1000 # maximum number of time steps. Note: should be more than
             # number of iterations on the OpenFOAM side
+
+stopAt=600  # external solver signals OpenFOAM to stop
+
 refGrad=0
 valueFraction=1
 
@@ -42,6 +45,13 @@ useMaster()
     echo "status=openfoam" >| ${lockFile}
 }
 
+# Lock file with special content to stop OpenFOAM master
+stopMasterNow()
+{
+    log "writeNow terminate via lock file '${lockFile}'"
+    echo "action=writeNow" >| ${lockFile}
+}
+
 
 init()
 {
@@ -120,10 +130,20 @@ do
 
         log "updating ${dataFile}.in from ${dataFile}.out"
 
-        awk '{if( $1 != "#" ){print $1+1 " 0 1"}}' \
-            ${dataFile}.out >| ${dataFile}.in
+        if [ -f "${dataFile}.out" ]
+        then
+            awk '{if( $1 != "#" ){print $1+1 " 0 1"}}' \
+                ${dataFile}.out >| ${dataFile}.in
+        else
+            log "Warning: no such file ${dataFile}.out"
+        fi
 
-        useMaster
+        if [ "${stopAt:-0}" -eq $step ]
+        then
+            stopMasterNow
+        else
+            useMaster
+        fi
     fi
 done
 
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/README b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/README
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/README
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/README
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/blockMeshDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/blockMeshDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/blockMeshDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/blockMeshDict
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/bottomWater/changeDictionaryDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/changeDictionaryDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/bottomWater/changeDictionaryDict
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/bottomWater/decomposeParDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/decomposeParDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/bottomWater/decomposeParDict
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/fvSchemes b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/bottomWater/fvSchemes
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/fvSchemes
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/bottomWater/fvSchemes
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/bottomWater/fvSolution
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/fvSolution
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/bottomWater/fvSolution
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/controlDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/controlDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/controlDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/controlDict
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/decomposeParDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/decomposeParDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/decomposeParDict
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/externalCoupled b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/externalCoupled
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/externalCoupled
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/externalCoupled
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/fvSchemes b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/fvSchemes
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/fvSchemes
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/fvSchemes
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/fvSolution
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/fvSolution
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/fvSolution
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/heater/changeDictionaryDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/changeDictionaryDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/heater/changeDictionaryDict
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/heater/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..91ef8baa9e4462c98d8c4cacd8dc2529a008fdba
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/heater/decomposeParDict
@@ -0,0 +1,44 @@
+/*--------------------------------*- 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;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains  4;
+
+method          scotch;
+
+simpleCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+}
+
+hierarchicalCoeffs
+{
+    n           (2 2 1);
+    delta       0.001;
+    order       xyz;
+}
+
+scotchCoeffs
+{
+}
+
+manualCoeffs
+{
+    dataFile    "decompositionData";
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/fvSchemes b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/heater/fvSchemes
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/fvSchemes
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/heater/fvSchemes
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/heater/fvSolution
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/fvSolution
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/heater/fvSolution
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/leftSolid/changeDictionaryDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/changeDictionaryDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/leftSolid/changeDictionaryDict
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/leftSolid/decomposeParDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/decomposeParDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/leftSolid/decomposeParDict
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/fvSchemes b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/leftSolid/fvSchemes
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/fvSchemes
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/leftSolid/fvSchemes
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/leftSolid/fvSolution
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/fvSolution
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/leftSolid/fvSolution
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/rightSolid/changeDictionaryDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/changeDictionaryDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/rightSolid/changeDictionaryDict
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/rightSolid/decomposeParDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/decomposeParDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/rightSolid/decomposeParDict
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/fvSchemes b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/rightSolid/fvSchemes
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/fvSchemes
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/rightSolid/fvSchemes
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/rightSolid/fvSolution
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/fvSolution
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/rightSolid/fvSolution
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/topAir/changeDictionaryDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/changeDictionaryDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/topAir/changeDictionaryDict
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/topAir/decomposeParDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/decomposeParDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/topAir/decomposeParDict
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/fvSchemes b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/topAir/fvSchemes
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/fvSchemes
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/topAir/fvSchemes
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/fvSolution b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/topAir/fvSolution
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/fvSolution
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/topAir/fvSolution
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topoSetDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/topoSetDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topoSetDict
rename to tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/topoSetDict
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/Allclean b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/Allclean
new file mode 100755
index 0000000000000000000000000000000000000000..3f7a0cb7a67b96849bf0e2d135638aa63e10c843
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/Allclean
@@ -0,0 +1,24 @@
+#!/bin/sh
+cd ${0%/*} || exit 1                        # Run from this directory
+. $WM_PROJECT_DIR/bin/tools/CleanFunctions  # Tutorial clean functions
+
+cleanCase
+
+rm -rf comms
+rm -rf VTK
+rm -rf constant/cellToRegion
+
+rm -rf 0/bottomWater
+rm -rf 0/topAir
+rm -rf 0/heater
+rm -rf 0/leftSolid
+rm -rf 0/rightSolid
+rm -f 0/cellToRegion
+
+rm -rf constant/bottomWater/polyMesh
+rm -rf constant/topAir/polyMesh
+rm -rf constant/heater/polyMesh
+rm -rf constant/leftSolid/polyMesh
+rm -rf constant/rightSolid/polyMesh
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/Allrun b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/Allrun
new file mode 100755
index 0000000000000000000000000000000000000000..25b14f2bb7ce56d0986ac0f2526c653f2d10fde8
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/Allrun
@@ -0,0 +1,33 @@
+#!/bin/sh
+cd ${0%/*} || exit 1                        # Run from this directory
+. $WM_PROJECT_DIR/bin/tools/RunFunctions    # Tutorial run functions
+
+./Allrun.pre
+
+# Remove lock file on interrupt
+trap '\rm -f comms/OpenFOAM.lock 2>/dev/null' INT
+
+#-- Run on single processor
+#runApplication $(getApplication) &
+# Simulated external solver
+#runApplication ./externalSolver
+
+# Decompose
+runApplication decomposePar -allRegions
+
+## Can verify parallel operation of createExternalCoupledPatchGeometry
+# \rm -f log.createExternalCoupledPatchGeometry
+# runParallel createExternalCoupledPatchGeometry \
+#     -regions '(topAir heater)' coupleGroup \
+#     -commsDir $PWD/comms
+
+# Run OpenFOAM
+runParallel $(getApplication) &
+
+# Simulated external solver
+runApplication ./externalSolver
+
+# Reconstruct
+runApplication reconstructPar -allRegions
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/Allrun.pre b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/Allrun.pre
new file mode 100755
index 0000000000000000000000000000000000000000..854fddc385643c8005d66559a5b51920063398f3
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/Allrun.pre
@@ -0,0 +1,30 @@
+#!/bin/sh
+cd ${0%/*} || exit 1                        # Run from this directory
+. $WM_PROJECT_DIR/bin/tools/RunFunctions    # Tutorial run functions
+
+runApplication blockMesh
+runApplication topoSet
+runApplication splitMeshRegions -cellZones -overwrite
+
+# remove fluid fields from solid regions (important for post-processing)
+for i in heater leftSolid rightSolid
+do
+   rm -f 0*/$i/{nut,alphat,epsilon,k,U,p_rgh}
+done
+
+
+for i in bottomWater topAir heater leftSolid rightSolid
+do
+   changeDictionary -region $i > log.changeDictionary.$i 2>&1
+done
+
+# Create coupling geometry
+runApplication createExternalCoupledPatchGeometry \
+    -regions '(topAir heater)' coupleGroup
+
+# echo
+# echo "creating files for paraview post-processing"
+# echo
+# paraFoam -touchAll 2>/dev/null
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/README.txt b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b0ca34a87367b7e25321f9cba9cadf2ce5cd54f7
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/README.txt
@@ -0,0 +1,3 @@
+Modification of the heatTransfer chtMultiRegionFoam tutorial that demonstrates
+the externalCoupled functionObject in combination with the ./externalSolver
+script to simulate coupling to an external code.
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/bottomWater/g b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/bottomWater/g
new file mode 100644
index 0000000000000000000000000000000000000000..0cbbdeb5c3b8b6cb79bf89aba9a3cfcbc9dd7b0e
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/bottomWater/g
@@ -0,0 +1,20 @@
+/*--------------------------------*- 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       uniformDimensionedVectorField;
+    object      g;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -2 0 0 0 0];
+value           (0 -9.81 0);
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/bottomWater/radiationProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/bottomWater/radiationProperties
new file mode 100644
index 0000000000000000000000000000000000000000..bcd3190ac259e3876d30325843f22168fcb3d19a
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/bottomWater/radiationProperties
@@ -0,0 +1,22 @@
+/*--------------------------------*- 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      radiationProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+radiation       off;
+
+radiationModel  none;
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/bottomWater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/bottomWater/thermophysicalProperties
new file mode 100644
index 0000000000000000000000000000000000000000..c1602d4d09f80a423551df30c6e7d50c8b78bf34
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/bottomWater/thermophysicalProperties
@@ -0,0 +1,50 @@
+/*--------------------------------*- 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      thermophysicalProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       const;
+    thermo          hConst;
+    equationOfState rhoConst;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
+
+mixture
+{
+    specie
+    {
+        molWeight       18;
+    }
+    equationOfState
+    {
+        rho             1000;
+    }
+    thermodynamics
+    {
+        Cp              4181;
+        Hf              0;
+    }
+    transport
+    {
+        mu              959e-6;
+        Pr              6.62;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/bottomWater/turbulenceProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/bottomWater/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..e011578c36f3d257f1f59ac0726fd79ce34075e8
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/bottomWater/turbulenceProperties
@@ -0,0 +1,19 @@
+/*--------------------------------*- 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      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/heater/radiationProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/heater/radiationProperties
new file mode 100644
index 0000000000000000000000000000000000000000..1593a12a7406b6886038a18f7bdb6a2d8c0ef12d
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/heater/radiationProperties
@@ -0,0 +1,23 @@
+/*--------------------------------*- 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;
+    location    "constant";
+    object      radiationProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+radiation off;
+
+radiationModel  none;
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/heater/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/heater/thermophysicalProperties
new file mode 100644
index 0000000000000000000000000000000000000000..7be4f18cd18573b0427cb5ed171c84e5f81667d7
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/heater/thermophysicalProperties
@@ -0,0 +1,52 @@
+/*--------------------------------*- 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      thermophysicalProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+    type            heSolidThermo;
+    mixture         pureMixture;
+    transport       constIso;
+    thermo          hConst;
+    equationOfState rhoConst;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
+
+mixture
+{
+    specie
+    {
+        molWeight   50;
+    }
+
+    transport
+    {
+        kappa   80;
+    }
+
+    thermodynamics
+    {
+        Hf      0;
+        Cp      450;
+    }
+
+    equationOfState
+    {
+        rho     8000;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/leftSolid/radiationProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/leftSolid/radiationProperties
new file mode 120000
index 0000000000000000000000000000000000000000..08087c37b4d0f37d8df26e11ea195b102f43e32d
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/leftSolid/radiationProperties
@@ -0,0 +1 @@
+../heater/radiationProperties
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/leftSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/leftSolid/thermophysicalProperties
new file mode 120000
index 0000000000000000000000000000000000000000..dc4d3a18ee4b034d4fdd38eef0466567d0d331bb
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/leftSolid/thermophysicalProperties
@@ -0,0 +1 @@
+../heater/thermophysicalProperties
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/regionProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/regionProperties
new file mode 100644
index 0000000000000000000000000000000000000000..9540cdb9bafbc1a0ca75bd88b3cc744b60bdb56b
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/regionProperties
@@ -0,0 +1,24 @@
+/*--------------------------------*- 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;
+    location    "constant";
+    object      regionProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+regions
+(
+    fluid       (bottomWater topAir)
+    solid       (heater leftSolid rightSolid)
+);
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/rightSolid/radiationProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/rightSolid/radiationProperties
new file mode 120000
index 0000000000000000000000000000000000000000..08087c37b4d0f37d8df26e11ea195b102f43e32d
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/rightSolid/radiationProperties
@@ -0,0 +1 @@
+../heater/radiationProperties
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/rightSolid/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/rightSolid/thermophysicalProperties
new file mode 120000
index 0000000000000000000000000000000000000000..dc4d3a18ee4b034d4fdd38eef0466567d0d331bb
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/rightSolid/thermophysicalProperties
@@ -0,0 +1 @@
+../heater/thermophysicalProperties
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/topAir/g b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/topAir/g
new file mode 120000
index 0000000000000000000000000000000000000000..fea37570067f9f5dbf14e5011717bb654a2f9899
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/topAir/g
@@ -0,0 +1 @@
+../bottomWater/g
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/topAir/radiationProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/topAir/radiationProperties
new file mode 120000
index 0000000000000000000000000000000000000000..583b06cb0b1ff1d19e180d6045ab4f2202a6503a
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/topAir/radiationProperties
@@ -0,0 +1 @@
+../bottomWater/radiationProperties
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/topAir/thermophysicalProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/topAir/thermophysicalProperties
new file mode 100644
index 0000000000000000000000000000000000000000..3f94dc8ad766c106e2be38f3bc54fb29364abbbc
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/topAir/thermophysicalProperties
@@ -0,0 +1,47 @@
+/*--------------------------------*- 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      thermophysicalProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       const;
+    thermo          hConst;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
+
+mixture
+{
+    specie
+    {
+        molWeight       28.9;
+    }
+    thermodynamics
+    {
+        Cp              1000;
+        Hf              0;
+    }
+    transport
+    {
+        mu              1.8e-05;
+        Pr              0.7;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/topAir/turbulenceProperties b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/topAir/turbulenceProperties
new file mode 120000
index 0000000000000000000000000000000000000000..ec52cbd5927f5085eeac5ce87f82bd0b9641eeb2
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/constant/topAir/turbulenceProperties
@@ -0,0 +1 @@
+../bottomWater/turbulenceProperties
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/externalSolver b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/externalSolver
new file mode 100755
index 0000000000000000000000000000000000000000..5afbca0ff4cb56db6ff86b38a065df55c93653ab
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/externalSolver
@@ -0,0 +1,156 @@
+#!/bin/sh
+#
+# Dummy external solver to communicate with OpenFOAM via externalCoupled
+# functionObject
+#
+# Functionality is hard-coded for this particular test case
+# - patch temperatures increased by 1K on each step
+#
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Check for unassigned variables
+set -u
+
+echo "Executing dummy external solver"
+
+commsDir="comms"
+patchDir="heater_topAir/coupleGroup"
+fieldName="T"
+
+lockFile="${commsDir}/OpenFOAM.lock"
+dataFile="${commsDir}/${patchDir}/${fieldName}"
+waitSec=5
+timeOut=100
+nSteps=1000 # maximum number of time steps. Note: should be more than
+            # number of iterations on the OpenFOAM side
+
+stopAt=300  # external solver signals OpenFOAM to stop
+
+refGrad=0
+valueFraction=1
+
+# Remove any old junk
+\rm -f $lockFile 2>/dev/null
+
+log()
+{
+    echo "External: $@"
+}
+
+
+# Create lock file to pass control to OpenFOAM
+useMaster()
+{
+    log "creating lock file '${lockFile}'"
+    echo "status=openfoam" >| ${lockFile}
+}
+
+# Lock file with special content to stop OpenFOAM master
+stopMasterNow()
+{
+    log "writeNow terminate via lock file '${lockFile}'"
+    echo "action=writeNow" >| ${lockFile}
+}
+
+
+init()
+{
+    log "init - creating ${dataFile}.in"
+    cat /dev/null >| "${dataFile}.in"
+
+    # Hard-coded for patch of size 8 (heater/minY)
+    local n1=8
+    local refValue1=500
+
+    log "init - adding $n1 data elements with refValue $refValue1"
+    for i in $(seq 1 $n1)
+    do
+        echo "$refValue1 $refGrad $valueFraction"
+    done >> "${dataFile}.in"
+
+    # Hard-coded for patch of size 40 (topAir/minX)
+    local n2=40
+    local refValue2=300
+    log "init - adding $n2 data elements with refValue $refValue2"
+    for i in $(seq 1 $n2)
+    do
+        echo "$refValue2 $refGrad $valueFraction"
+    done >> "${dataFile}.in"
+
+    # Verify line count?
+    # log "init ($(wc -l ${dataFile}.in))"
+
+    # Give time for T.in file to flush
+    sleep 1
+
+    useMaster
+}
+
+
+# Create the comms directory
+mkdir -p ${commsDir}/${patchDir}
+
+# Tutorial case uses 'initByExternal' option, so we must provide initial values
+init
+
+
+totalWait=0
+step=0
+while [ $step -lt $nSteps ]
+do
+    if [ -f $lockFile ]
+    then
+        if grep -q "status=done" ${lockFile}
+        then
+             log "found lock file '${lockFile}' with 'status=done' - finished"
+             break
+        elif [ -s $lockFile ]
+        then
+             log "found lock file '${lockFile}' containing '$(< $lockFile)' - waiting"
+        else
+             log "found lock file '${lockFile}' - waiting"
+        fi
+
+        totalWait=$(expr $totalWait + $waitSec)
+        if [ $totalWait -gt $timeOut ]
+        then
+            log "timeout"
+            break
+        else
+            sleep $waitSec
+        fi
+    else
+        totalWait=0
+        step=$(expr $step + 1)
+        log "step $step"
+        log "lock not present - taking control"
+
+        log "sleeping for $waitSec secs to simulate external process"
+        sleep $waitSec
+
+        log "updating ${dataFile}.in from ${dataFile}.out"
+
+        if [ -f "${dataFile}.out" ]
+        then
+            ##awk '{if( $1 != "#" ){print $1+0.1 " 0 1"}}' \
+            awk '{if( $1 != "#" ){print $1 " 0 1"}}' \
+                ${dataFile}.out >| ${dataFile}.in
+        else
+            log "Warning: no such file ${dataFile}.out"
+        fi
+
+        if [ "${stopAt:-0}" -eq $step ]
+        then
+            stopMasterNow
+        else
+            useMaster
+        fi
+    fi
+done
+
+log "done"
+
+# Remove the lock file too
+\rm -f $lockFile 2>/dev/null
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/README b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/README
new file mode 100644
index 0000000000000000000000000000000000000000..5a81b9a5708b0346c6cdd4bd2f6835feb3700bc1
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/README
@@ -0,0 +1,3 @@
+fvSolution is used for outer correctors specification.
+fvSchemes is only so that pre-processing activities can proceed
+
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/blockMeshDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/blockMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..2ba9dce030268362add167d187e275c6af67bdcb
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/blockMeshDict
@@ -0,0 +1,96 @@
+/*--------------------------------*- 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      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+scale   1;
+
+vertices
+(
+    (-0.1 -0.04  -0.05)
+    ( 0.1 -0.04  -0.05)
+    ( 0.1  0.04  -0.05)
+    (-0.1  0.04  -0.05)
+    (-0.1 -0.04   0.05)
+    ( 0.1 -0.04   0.05)
+    ( 0.1  0.04   0.05)
+    (-0.1  0.04   0.05)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (30 10 10) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    maxY
+    {
+        type wall;
+        faces
+        (
+            (3 7 6 2)
+        );
+    }
+    minX
+    {
+        type patch;
+        faces
+        (
+            (0 4 7 3)
+        );
+    }
+    maxX
+    {
+        type patch;
+        faces
+        (
+            (2 6 5 1)
+        );
+    }
+    minY
+    {
+        type wall;
+        faces
+        (
+            (1 5 4 0)
+        );
+    }
+    minZ
+    {
+        type wall;
+        faces
+        (
+            (0 3 2 1)
+        );
+    }
+    maxZ
+    {
+        type wall;
+        faces
+        (
+            (4 5 6 7)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomAir/fvSchemes b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomAir/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..74cc264e050eebd85a9e1d4d5cfa4e7982361b15
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomAir/fvSchemes
@@ -0,0 +1,58 @@
+/*--------------------------------*- 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      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default     steadyState;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+
+    div(phi,U)      bounded Gauss upwind;
+    div(phi,K)      bounded Gauss upwind;
+    div(phi,h)      bounded Gauss upwind;
+    div(phi,k)      bounded Gauss upwind;
+    div(phi,K)      bounded Gauss upwind;
+    div(phi,epsilon) bounded Gauss upwind;
+    div(phi,R)      bounded Gauss upwind;
+    div(R)          Gauss linear;
+    div(Ji,Ii_h)    Gauss linearUpwind grad(U);
+    div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear uncorrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         uncorrected;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomAir/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomAir/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..8cc4a0bb1a990792450cdcef66be309332f383f0
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomAir/fvSolution
@@ -0,0 +1,81 @@
+/*--------------------------------*- 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      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    rho
+    {
+        solver          PCG
+        preconditioner  DIC;
+        tolerance       1e-7;
+        relTol          0;
+    }
+
+    p_rgh
+    {
+        solver           GAMG;
+        tolerance        1e-7;
+        relTol           0.01;
+
+        smoother         GaussSeidel;
+
+    }
+
+    "(U|h|k|epsilon|G|Ii)"
+    {
+        solver           PBiCGStab;
+        preconditioner   DILU;
+        tolerance        1e-7;
+        relTol           0.1;
+    }
+
+    G
+    {
+        $p_rgh;
+        tolerance       1e-05;
+        relTol          0.1;
+    }
+}
+
+SIMPLE
+{
+    momentumPredictor yes;
+    nNonOrthogonalCorrectors 0;
+    pRefCell        0;
+    pRefValue       100000;
+    rhoMin          0.2;
+    rhoMax          2;
+}
+
+relaxationFactors
+{
+    fields
+    {
+        rho             1.0;
+        p_rgh           0.7;
+    }
+    equations
+    {
+        U               0.3;
+        h               0.7;
+        "(k|epsilon|omega)" 0.7;
+        G               0.7;
+        "ILambda.*"     0.7;
+        qr              0.7;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomWater/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomWater/changeDictionaryDict
new file mode 100644
index 0000000000000000000000000000000000000000..3ea8a7089750158ebaa24780080130b5be0c1b6a
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomWater/changeDictionaryDict
@@ -0,0 +1,169 @@
+/*--------------------------------*- 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      changeDictionaryDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+U
+{
+    internalField   uniform (0.001 0 0);
+
+    boundaryField
+    {
+        minX
+        {
+            type            fixedValue;
+            value           uniform (0.001 0 0);
+        }
+
+        maxX
+        {
+            type            inletOutlet;
+            inletValue      uniform (0 0 0);
+        }
+
+        ".*"
+        {
+            type            fixedValue;
+            value           uniform (0 0 0);
+        }
+    }
+}
+
+T
+{
+    internalField   uniform 300;
+
+    boundaryField
+    {
+        minX
+        {
+            type            fixedValue;
+            value           uniform 300;
+        }
+
+        maxX
+        {
+            type            inletOutlet;
+            inletValue      uniform 300;
+        }
+
+        ".*"
+        {
+            type            zeroGradient;
+            value           uniform 300;
+        }
+
+        "bottomWater_to_.*"
+        {
+            type            compressible::turbulentTemperatureCoupledBaffleMixed;
+            Tnbr            T;
+            kappaMethod     fluidThermo;
+            value           uniform 300;
+        }
+    }
+}
+
+epsilon
+{
+    internalField   uniform 0.01;
+
+    boundaryField
+    {
+        minX
+        {
+            type            fixedValue;
+            value           uniform 0.01;
+        }
+
+        maxX
+        {
+            type            inletOutlet;
+            inletValue      uniform 0.01;
+        }
+
+        ".*"
+        {
+            type            epsilonWallFunction;
+            value           uniform 0.01;
+        }
+    }
+}
+
+k
+{
+    internalField   uniform 0.1;
+
+    boundaryField
+    {
+        minX
+        {
+            type            inletOutlet;
+            inletValue      uniform 0.1;
+        }
+
+        maxX
+        {
+            type            zeroGradient;
+            value           uniform 0.1;
+        }
+
+        ".*"
+        {
+            type            kqRWallFunction;
+            value           uniform 0.1;
+        }
+    }
+}
+
+p_rgh
+{
+    internalField   uniform 0;
+
+    boundaryField
+    {
+        minX
+        {
+            type            zeroGradient;
+            value           uniform 0;
+        }
+
+        maxX
+        {
+            type            fixedValue;
+            value           uniform 0;
+        }
+
+        ".*"
+        {
+            type            fixedFluxPressure;
+            value           uniform 0;
+        }
+    }
+}
+
+p
+{
+    internalField   uniform 0;
+
+    boundaryField
+    {
+        ".*"
+        {
+            type            calculated;
+            value           uniform 0;
+        }
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomWater/decomposeParDict
similarity index 100%
rename from tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/decomposeParDict
rename to tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomWater/decomposeParDict
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomWater/fvSchemes b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomWater/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..66d505fb4cc0fe5a2cf0eb861d3a87a1dd7017e2
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomWater/fvSchemes
@@ -0,0 +1,57 @@
+/*--------------------------------*- 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      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+
+    div(phi,U)      Gauss upwind;
+    div(phi,K)      Gauss linear;
+    div(phi,h)      Gauss upwind;
+    div(phi,k)      Gauss upwind;
+    div(phi,epsilon) Gauss upwind;
+    div(phi,R)      Gauss upwind;
+    div(R)          Gauss linear;
+    div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
+}
+
+laplacianSchemes
+{
+    default        Gauss linear corrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         corrected;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomWater/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomWater/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..1505a23d229f042c30ef56eab20ae13bc5ee4137
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/bottomWater/fvSolution
@@ -0,0 +1,87 @@
+/*--------------------------------*- 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      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    rho
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-7;
+        relTol          0.1;
+    }
+
+    rhoFinal
+    {
+        $rho;
+        tolerance       1e-7;
+        relTol          0;
+    }
+
+    p_rgh
+    {
+        solver           GAMG;
+        tolerance        1e-7;
+        relTol           0.01;
+
+        smoother         GaussSeidel;
+    }
+
+    p_rghFinal
+    {
+        $p_rgh;
+        tolerance        1e-7;
+        relTol           0;
+    }
+
+    "(U|h|k|epsilon|R)"
+    {
+        solver           PBiCGStab;
+        preconditioner   DILU;
+        tolerance        1e-7;
+        relTol           0.1;
+    }
+
+    "(U|h|k|epsilon|R)Final"
+    {
+        $U;
+        tolerance        1e-7;
+        relTol           0;
+    }
+}
+
+SIMPLE
+{
+    momentumPredictor   on;
+    nCorrectors         2;
+    nNonOrthogonalCorrectors 0;
+}
+
+relaxationFactors
+{
+    fields
+    {
+        rho             1.0;
+        p_rgh           0.7;
+    }
+    equations
+    {
+        "U.*"           0.5;
+        "h.*"           0.5;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/controlDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..d5f9881d1dc8b99fa5a3f059807f421e3320f5d3
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/controlDict
@@ -0,0 +1,57 @@
+/*--------------------------------*- 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;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+// Library defines new boundary conditions
+libs            ("libfieldFunctionObjects.so");
+
+application     chtMultiRegionSimpleFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         500;
+
+deltaT          1;
+
+writeControl    timeStep;
+
+writeInterval   100;
+
+purgeWrite      10;
+
+writeFormat     ascii;
+
+writePrecision  8;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+functions
+{
+    #include "externalCoupled"
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..bc03b02cb93adbd3e57ecbbaa5db708dc1c8a3f9
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/decomposeParDict
@@ -0,0 +1,35 @@
+/*--------------------------------*- 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";
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/externalCoupled b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/externalCoupled
new file mode 100644
index 0000000000000000000000000000000000000000..806e5b8a5178904240ae3093ec46bbd1f8dafba6
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/externalCoupled
@@ -0,0 +1,39 @@
+// -*- C++ -*-
+
+// control for external coupled simulation
+externalCoupled
+{
+    libs    ("libfieldFunctionObjects.so");
+
+    type    externalCoupled;
+
+    // Directory to use for communication
+    commsDir        "${FOAM_CASE}/comms";
+
+    // Does external process start first
+    initByExternal  true;
+
+    // Additional output
+    log             true;
+
+    regions
+    {
+        // Region name (wildcards allowed)
+        "(topAir|heater)"
+        {
+            // In topAir adjust the minX patch (fixedValue)
+
+            // Patch or patchGroup
+            coupleGroup
+            {
+                // Fields to output in commsDir
+                writeFields (T);
+                // Fields to read from commsDir
+                readFields  (T);
+            }
+        }
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/fvSchemes b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..9288e0ae16b2f8a504719494e3b36aa7225a66bf
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/fvSchemes
@@ -0,0 +1,42 @@
+/*--------------------------------*- 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      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+}
+
+gradSchemes
+{
+}
+
+divSchemes
+{
+}
+
+laplacianSchemes
+{
+}
+
+interpolationSchemes
+{
+}
+
+snGradSchemes
+{
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..14653b73e5a761f5d8b27ce972b16230d0814a34
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/fvSolution
@@ -0,0 +1,45 @@
+/*--------------------------------*- 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      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+SIMPLE
+{
+    energyCoupling
+    {
+        iterations      50;
+
+        interval        0;
+
+        // Convergence criteria to stop looping
+        convergence
+        {
+            h           1e-3;
+        }
+
+        // Names of function objects to fire with execute(int) when looping
+        onLoop          ( );
+
+        // Names of function objects to fire with execute(int) when converged
+        onConverged     ( externalCoupled );
+
+        // Names of function objects to fire with execute(int) when loop ends
+        // without convergence
+        onEnd           ( );
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/heater/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/heater/changeDictionaryDict
new file mode 100644
index 0000000000000000000000000000000000000000..54a32080ab7b44a7841aed1d40b351212e1d66a0
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/heater/changeDictionaryDict
@@ -0,0 +1,71 @@
+/*--------------------------------*- 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      changeDictionaryDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+boundary
+{
+    minY
+    {
+        type            patch;
+        inGroups        (coupleGroup);
+    }
+    minZ
+    {
+        type            patch;
+    }
+    maxZ
+    {
+        type            patch;
+    }
+}
+
+T
+{
+    internalField   uniform 300;
+
+    boundaryField
+    {
+        ".*"
+        {
+            type            zeroGradient;
+            value           uniform 300;
+        }
+        "heater_to_.*"
+        {
+            type            compressible::turbulentTemperatureCoupledBaffleMixed;
+            Tnbr            T;
+            kappaMethod     solidThermo;
+            value           uniform 300;
+        }
+
+        heater_to_leftSolid
+        {
+            type            compressible::turbulentTemperatureCoupledBaffleMixed;
+            Tnbr            T;
+            kappaMethod     solidThermo;
+            thicknessLayers (1e-3);
+            kappaLayers     (5e-4);
+            value           uniform 300;
+        }
+
+        minY
+        {
+            type            fixedValue;
+            value           uniform 500;
+        }
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/heater/decomposeParDict
new file mode 120000
index 0000000000000000000000000000000000000000..46638e60f61f453fde97c51772ad6111792db0f6
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/heater/decomposeParDict
@@ -0,0 +1 @@
+../decomposeParDict
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/heater/fvSchemes b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/heater/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..fde16caf52a888284422ed5bd924215bf1d2e596
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/heater/fvSchemes
@@ -0,0 +1,49 @@
+/*--------------------------------*- 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      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default     steadyState;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+}
+
+laplacianSchemes
+{
+    default             none;
+    laplacian(alpha,h)  Gauss linear uncorrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         uncorrected;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/heater/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/heater/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..4fe045c7b69a1e9179f4184c8f4207bf296237f2
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/heater/fvSolution
@@ -0,0 +1,41 @@
+/*--------------------------------*- 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      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    h
+    {
+        solver           PCG;
+        preconditioner   DIC;
+        tolerance        1e-06;
+        relTol           0.1;
+    }
+}
+
+SIMPLE
+{
+    nNonOrthogonalCorrectors 0;
+}
+
+relaxationFactors
+{
+    equations
+    {
+        h               0.7;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/leftSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/leftSolid/changeDictionaryDict
new file mode 100644
index 0000000000000000000000000000000000000000..3d47a8640d653cad783f944a3c0886eab67fbcfa
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/leftSolid/changeDictionaryDict
@@ -0,0 +1,60 @@
+/*--------------------------------*- 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      changeDictionaryDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+boundary
+{
+    minZ
+    {
+        type            patch;
+    }
+    maxZ
+    {
+        type            patch;
+    }
+}
+
+T
+{
+    internalField   uniform 300;
+
+    boundaryField
+    {
+        ".*"
+        {
+            type            zeroGradient;
+            value           uniform 300;
+        }
+        "leftSolid_to_.*"
+        {
+            type            compressible::turbulentTemperatureCoupledBaffleMixed;
+            Tnbr            T;
+            kappaMethod     solidThermo;
+            value           uniform 300;
+        }
+
+        leftSolid_to_heater
+        {
+            type            compressible::turbulentTemperatureCoupledBaffleMixed;
+            Tnbr            T;
+            kappaMethod     solidThermo;
+            thicknessLayers (1e-3);
+            kappaLayers     (5e-4);
+            value           uniform 300;
+        }
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/leftSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/leftSolid/decomposeParDict
new file mode 120000
index 0000000000000000000000000000000000000000..46638e60f61f453fde97c51772ad6111792db0f6
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/leftSolid/decomposeParDict
@@ -0,0 +1 @@
+../decomposeParDict
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/leftSolid/fvSchemes b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/leftSolid/fvSchemes
new file mode 120000
index 0000000000000000000000000000000000000000..63236f302cfd79847ce312cced35784fa149c827
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/leftSolid/fvSchemes
@@ -0,0 +1 @@
+../heater/fvSchemes
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/leftSolid/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/leftSolid/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..4fe045c7b69a1e9179f4184c8f4207bf296237f2
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/leftSolid/fvSolution
@@ -0,0 +1,41 @@
+/*--------------------------------*- 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      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    h
+    {
+        solver           PCG;
+        preconditioner   DIC;
+        tolerance        1e-06;
+        relTol           0.1;
+    }
+}
+
+SIMPLE
+{
+    nNonOrthogonalCorrectors 0;
+}
+
+relaxationFactors
+{
+    equations
+    {
+        h               0.7;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/rightSolid/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/rightSolid/changeDictionaryDict
new file mode 100644
index 0000000000000000000000000000000000000000..184cf95c4e8b8fcd75b505e7eb25b5bc48a9f36a
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/rightSolid/changeDictionaryDict
@@ -0,0 +1,50 @@
+/*--------------------------------*- 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      changeDictionaryDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+boundary
+{
+    minZ
+    {
+        type            patch;
+    }
+    maxZ
+    {
+        type            patch;
+    }
+}
+
+T
+{
+    internalField   uniform 300;
+
+    boundaryField
+    {
+        ".*"
+        {
+            type            zeroGradient;
+            value           uniform 300;
+        }
+        "rightSolid_to_.*"
+        {
+            type            compressible::turbulentTemperatureCoupledBaffleMixed;
+            Tnbr            T;
+            kappaMethod     solidThermo;
+            value           uniform 300;
+        }
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/rightSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/rightSolid/decomposeParDict
new file mode 120000
index 0000000000000000000000000000000000000000..46638e60f61f453fde97c51772ad6111792db0f6
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/rightSolid/decomposeParDict
@@ -0,0 +1 @@
+../decomposeParDict
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/rightSolid/fvSchemes b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/rightSolid/fvSchemes
new file mode 120000
index 0000000000000000000000000000000000000000..63236f302cfd79847ce312cced35784fa149c827
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/rightSolid/fvSchemes
@@ -0,0 +1 @@
+../heater/fvSchemes
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/rightSolid/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/rightSolid/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..4fe045c7b69a1e9179f4184c8f4207bf296237f2
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/rightSolid/fvSolution
@@ -0,0 +1,41 @@
+/*--------------------------------*- 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      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    h
+    {
+        solver           PCG;
+        preconditioner   DIC;
+        tolerance        1e-06;
+        relTol           0.1;
+    }
+}
+
+SIMPLE
+{
+    nNonOrthogonalCorrectors 0;
+}
+
+relaxationFactors
+{
+    equations
+    {
+        h               0.7;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topAir/changeDictionaryDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topAir/changeDictionaryDict
new file mode 100644
index 0000000000000000000000000000000000000000..5bd5490849d6cb75c72f10e5ad41e99a0ae06c59
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topAir/changeDictionaryDict
@@ -0,0 +1,175 @@
+/*--------------------------------*- 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      changeDictionaryDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+boundary
+{
+    minX
+    {
+        inGroups        (coupleGroup);
+    }
+}
+
+U
+{
+    internalField   uniform (0.1 0 0);
+
+    boundaryField
+    {
+        ".*"
+        {
+            type            fixedValue;
+            value           uniform (0 0 0);
+        }
+        minX
+        {
+            type            fixedValue;
+            value           uniform ( 0.1 0 0 );
+        }
+        maxX
+        {
+            type            inletOutlet;
+            inletValue      uniform ( 0 0 0 );
+            value           uniform ( 0.1 0 0 );
+        }
+    }
+}
+
+T
+{
+    internalField   uniform 300;
+
+    boundaryField
+    {
+        ".*"
+        {
+            type            zeroGradient;
+        }
+
+        minX
+        {
+            type            fixedValue;
+            value           uniform 300;
+        }
+        maxX
+        {
+            type            inletOutlet;
+            inletValue      uniform 300;
+            value           uniform 300;
+        }
+
+        "topAir_to_.*"
+        {
+            type            compressible::turbulentTemperatureCoupledBaffleMixed;
+            Tnbr            T;
+            kappaMethod     fluidThermo;
+            value           uniform 300;
+        }
+    }
+}
+
+epsilon
+{
+    internalField   uniform 0.01;
+
+    boundaryField
+    {
+        ".*"
+        {
+            type            epsilonWallFunction;
+            value           uniform 0.01;
+        }
+
+        minX
+        {
+            type            fixedValue;
+            value           uniform 0.01;
+        }
+        maxX
+        {
+            type            inletOutlet;
+            inletValue      uniform 0.01;
+            value           uniform 0.01;
+        }
+    }
+}
+
+k
+{
+    internalField   uniform 0.1;
+
+    boundaryField
+    {
+        ".*"
+        {
+            type            kqRWallFunction;
+            value           uniform 0.1;
+        }
+
+        minX
+        {
+            type            fixedValue;
+            value           uniform 0.1;
+        }
+        maxX
+        {
+            type            inletOutlet;
+            inletValue      uniform 0.1;
+            value           uniform 0.1;
+        }
+    }
+}
+
+p_rgh
+{
+    internalField   uniform 1e5;
+
+    boundaryField
+    {
+        ".*"
+        {
+            type            fixedFluxPressure;
+            value           uniform 1e5;
+        }
+
+        maxX
+        {
+            type            fixedValue;
+            value           uniform 1e5;
+        }
+    }
+}
+
+p
+{
+    internalField   uniform 1e5;
+
+    boundaryField
+    {
+        ".*"
+        {
+            type            calculated;
+            value           uniform 1e5;
+        }
+
+        maxX
+        {
+            type            calculated;
+            value           uniform 1e5;
+        }
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topAir/decomposeParDict
new file mode 120000
index 0000000000000000000000000000000000000000..46638e60f61f453fde97c51772ad6111792db0f6
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topAir/decomposeParDict
@@ -0,0 +1 @@
+../decomposeParDict
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topAir/fvSchemes b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topAir/fvSchemes
new file mode 120000
index 0000000000000000000000000000000000000000..ff6aeb82d395e30f059d8a111d447f5dff18b137
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topAir/fvSchemes
@@ -0,0 +1 @@
+../bottomAir/fvSchemes
\ No newline at end of file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topAir/fvSolution b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topAir/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..8cc4a0bb1a990792450cdcef66be309332f383f0
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topAir/fvSolution
@@ -0,0 +1,81 @@
+/*--------------------------------*- 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      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    rho
+    {
+        solver          PCG
+        preconditioner  DIC;
+        tolerance       1e-7;
+        relTol          0;
+    }
+
+    p_rgh
+    {
+        solver           GAMG;
+        tolerance        1e-7;
+        relTol           0.01;
+
+        smoother         GaussSeidel;
+
+    }
+
+    "(U|h|k|epsilon|G|Ii)"
+    {
+        solver           PBiCGStab;
+        preconditioner   DILU;
+        tolerance        1e-7;
+        relTol           0.1;
+    }
+
+    G
+    {
+        $p_rgh;
+        tolerance       1e-05;
+        relTol          0.1;
+    }
+}
+
+SIMPLE
+{
+    momentumPredictor yes;
+    nNonOrthogonalCorrectors 0;
+    pRefCell        0;
+    pRefValue       100000;
+    rhoMin          0.2;
+    rhoMax          2;
+}
+
+relaxationFactors
+{
+    fields
+    {
+        rho             1.0;
+        p_rgh           0.7;
+    }
+    equations
+    {
+        U               0.3;
+        h               0.7;
+        "(k|epsilon|omega)" 0.7;
+        G               0.7;
+        "ILambda.*"     0.7;
+        qr              0.7;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topoSetDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topoSetDict
new file mode 100644
index 0000000000000000000000000000000000000000..4926649aada67e50978dd7539b041daba0129572
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/topoSetDict
@@ -0,0 +1,178 @@
+/*--------------------------------*- 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      topoSetDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    // Heater
+    {
+        name    heaterCellSet;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-0.01001    0 -100 )(0.01001 0.00999 100);
+        }
+    }
+    {
+        name    heaterCellSet;
+        type    cellSet;
+        action  add;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-0.01001 -100 -0.01001)(0.01001 0.00999 0.01001);
+        }
+    }
+    {
+        name    heater;
+        type    cellZoneSet;
+        action  new;
+        source  setToCellZone;
+        sourceInfo
+        {
+            set heaterCellSet;
+        }
+    }
+
+    // leftSolid
+    {
+        name    leftSolidCellSet;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-100 0 -100 )(-0.01001 0.00999 100);
+        }
+    }
+    {
+        name    leftSolid;
+        type    cellZoneSet;
+        action  new;
+        source  setToCellZone;
+        sourceInfo
+        {
+            set leftSolidCellSet;
+        }
+    }
+
+    // rightSolid
+    {
+        name    rightSolidCellSet;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (0.01001 0 -100 )(100 0.00999 100);
+        }
+    }
+    {
+        name    rightSolid;
+        type    cellZoneSet;
+        action  new;
+        source  setToCellZone;
+        sourceInfo
+        {
+            set rightSolidCellSet;
+        }
+    }
+
+    // topAir
+    {
+        name    topAirCellSet;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-100 0.00999 -100 )(100 100 100);
+        }
+    }
+    {
+        name    topAir;
+        type    cellZoneSet;
+        action  new;
+        source  setToCellZone;
+        sourceInfo
+        {
+            set topAirCellSet;
+        }
+    }
+
+
+    // bottomWater is all the other cells
+    {
+        name    bottomWaterCellSet;
+        type    cellSet;
+        action  new;
+        source  cellToCell;
+        sourceInfo
+        {
+            set heaterCellSet;
+        }
+    }
+    {
+        name    bottomWaterCellSet;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set leftSolidCellSet;
+        }
+    }
+    {
+        name    bottomWaterCellSet;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set rightSolidCellSet;
+        }
+    }
+    {
+        name    bottomWaterCellSet;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set topAirCellSet;
+        }
+    }
+    {
+        name    bottomWaterCellSet;
+        type    cellSet;
+        action  invert;
+    }
+    {
+        name    bottomWater;
+        type    cellZoneSet;
+        action  new;
+        source  setToCellZone;
+        sourceInfo
+        {
+            set bottomWaterCellSet;
+        }
+    }
+);
+
+
+// ************************************************************************* //