diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/0/K b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/K
new file mode 100644
index 0000000000000000000000000000000000000000..d216becb76e453ba0dcdb89b9055aa38883c67ab
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/K
@@ -0,0 +1,53 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4.2                                 |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      K;
+    location    "0.003";
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 1 -3 -1 0 0 0];
+
+internalField   uniform 80;
+
+boundaryField
+{
+    minX
+    {
+        type            zeroGradient;
+    }
+    maxX
+    {
+        type            zeroGradient;
+    }
+
+    minY
+    {
+        type            zeroGradient;
+    }
+    maxY
+    {
+        type            zeroGradient;
+    }
+
+    minZ
+    {
+        type            zeroGradient;
+    }
+    maxZ
+    {
+        type            zeroGradient;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/0/T b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/T
new file mode 100644
index 0000000000000000000000000000000000000000..29e55ac27f1d43677cccae97e9e62dc71faa9e8b
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/T
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4.2                                 |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      T;
+    location    "0.003";
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 1 0 0 0];
+
+internalField   uniform 300;
+
+boundaryField
+{
+    minX
+    {
+        type            fixedValue;
+        value           uniform 300;
+    }
+    maxX
+    {
+        type            zeroGradient;
+    }
+
+    minY
+    {
+        type            zeroGradient;
+    }
+    maxY
+    {
+        type            zeroGradient;
+    }
+
+    minZ
+    {
+        type            zeroGradient;
+    }
+    maxZ
+    {
+        type            zeroGradient;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/0/U b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/U
new file mode 100644
index 0000000000000000000000000000000000000000..528c16391f98a95a06e7ac8d48c9f207da9d27f2
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/U
@@ -0,0 +1,59 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4.2                                 |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U;
+    location    "0.003";
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0.01 0 0);
+
+boundaryField
+{
+    minX
+    {
+        type            fixedValue;
+        value           uniform (0.01 0 0);
+    }
+    maxX
+    {
+        type            inletOutlet;
+        inletValue      uniform (0 0 0);
+    }
+
+    minY
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+    maxY
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+
+    minZ
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+    maxZ
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/0/cp b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/cp
new file mode 100644
index 0000000000000000000000000000000000000000..bc53e05c8637bc4128bf56414c64aa67f81d1f64
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/cp
@@ -0,0 +1,53 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4.2                                 |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      cp;
+    location    "0.003";
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 -1 0 0 0];
+
+internalField   uniform 450;
+
+boundaryField
+{
+    minX
+    {
+        type            zeroGradient;
+    }
+    maxX
+    {
+        type            zeroGradient;
+    }
+
+    minY
+    {
+        type            zeroGradient;
+    }
+    maxY
+    {
+        type            zeroGradient;
+    }
+
+    minZ
+    {
+        type            zeroGradient;
+    }
+    maxZ
+    {
+        type            zeroGradient;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/0/epsilon b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/epsilon
new file mode 100644
index 0000000000000000000000000000000000000000..c79030383f7a92bb8ad4468216ae77fa662264f0
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/epsilon
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4.2                                 |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      epsilon;
+    location    "0.003";
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -3 0 0 0 0];
+
+internalField   uniform 0.01;
+
+boundaryField
+{
+    minX
+    {
+        type            fixedValue;
+        value           uniform 0.01;
+    }
+    maxX
+    {
+        type            zeroGradient;
+    }
+
+    minY
+    {
+        type            zeroGradient;
+    }
+    maxY
+    {
+        type            zeroGradient;
+    }
+
+    minZ
+    {
+        type            zeroGradient;
+    }
+    maxZ
+    {
+        type            zeroGradient;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/0/k b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/k
new file mode 100644
index 0000000000000000000000000000000000000000..c491981bf7903c2d6f0e6f6405e8c885f9e579a4
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/k
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4.2                                 |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      k;
+    location    "0.003";
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0.1;
+
+boundaryField
+{
+    minX
+    {
+        type            fixedValue;
+        value           uniform 0.1;
+    }
+    maxX
+    {
+        type            zeroGradient;
+    }
+
+    minY
+    {
+        type            zeroGradient;
+    }
+    maxY
+    {
+        type            zeroGradient;
+    }
+
+    minZ
+    {
+        type            zeroGradient;
+    }
+    maxZ
+    {
+        type            zeroGradient;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/0/p b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/p
new file mode 100644
index 0000000000000000000000000000000000000000..9605bb7ff5c2fc81c35a974330dea835be97141c
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/p
@@ -0,0 +1,58 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4.2                                 |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+    location    "0.003";
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    minX
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    maxX
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+
+    minY
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    maxY
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    minZ
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    maxZ
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/0/pd b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/pd
new file mode 100644
index 0000000000000000000000000000000000000000..1d0ac0a6a11798f23bcd898c208797aff7d05731
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/pd
@@ -0,0 +1,58 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4.2                                 |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+    location    "0.003";
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    minX
+    {
+        type            zeroGradient;
+        value           uniform 0;
+    }
+    maxX
+    {
+        type            fixedValue;
+        value           uniform 0;
+    }
+
+    minY
+    {
+        type            zeroGradient;
+        value           uniform 0;
+    }
+    maxY
+    {
+        type            zeroGradient;
+        value           uniform 0;
+    }
+    minZ
+    {
+        type            zeroGradient;
+        value           uniform 0;
+    }
+    maxZ
+    {
+        type            zeroGradient;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/0/rho b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/rho
new file mode 100644
index 0000000000000000000000000000000000000000..24f6f2d0c0f0e5b24d6313a2f61aec4fcde807bb
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/0/rho
@@ -0,0 +1,53 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4.2                                 |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      rho;
+    location    "0.003";
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -3 0 0 0 0 0];
+
+internalField   uniform 8000;
+
+boundaryField
+{
+    minX
+    {
+        type            zeroGradient;
+    }
+    maxX
+    {
+        type            zeroGradient;
+    }
+
+    minY
+    {
+        type            zeroGradient;
+    }
+    maxY
+    {
+        type            zeroGradient;
+    }
+
+    minZ
+    {
+        type            zeroGradient;
+    }
+    maxZ
+    {
+        type            zeroGradient;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/Allclean b/tutorials/chtMultiRegionFoam/multiRegionHeater/Allclean
new file mode 100755
index 0000000000000000000000000000000000000000..aeb3ee5b7be4287e65543bfa9614b70b919a52c6
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/Allclean
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# Source tutorial clean functions
+. $WM_PROJECT_DIR/bin/tools/CleanFunctions
+
+cleanCase
+rm -r VTK
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/Allrun b/tutorials/chtMultiRegionFoam/multiRegionHeater/Allrun
new file mode 100755
index 0000000000000000000000000000000000000000..3a79aca5a977e09e7ea2ba5e88d18a1a15462924
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/Allrun
@@ -0,0 +1,19 @@
+#!/bin/sh
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+rm -r constant/polyMesh/sets
+runApplication blockMesh
+runApplication setSet -batch makeCellSets.setSet
+rm constant/polyMesh/sets/*_old
+runApplication setsToZones -noFlipMap
+runApplication splitMeshRegions -cellZones
+changeDictionary -region bottomAir
+changeDictionary -region topAir
+changeDictionary -region heater
+changeDictionary -region leftSolid
+changeDictionary -region rightSolid
+runApplication chtMultiRegionFoam
+
+
+
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/RASProperties b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/RASProperties
new file mode 100644
index 0000000000000000000000000000000000000000..66160205bcd474745aac60abeb61f44633e1aca7
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/RASProperties
@@ -0,0 +1,105 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          RASProperties;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+RASModel kEpsilon;
+
+turbulence      off;
+
+laminarCoeffs
+{
+}
+
+kEpsilonCoeffs
+{
+    Cmu              0.09;
+    C1               1.44;
+    C2               1.92;
+    C3               0.85;
+    alphah           1;
+    alphak           1;
+    alphaEps         0.76923;
+}
+
+RNGkEpsilonCoeffs
+{
+    Cmu              0.0845;
+    C1               1.42;
+    C2               1.68;
+    C3               -0.33;
+    alphah           1;
+    alphak           1.39;
+    alphaEps         1.39;
+    eta0             4.38;
+    beta             0.012;
+}
+
+LaunderSharmaKECoeffs
+{
+    Cmu              0.09;
+    C1               1.44;
+    C2               1.92;
+    C3               -0.33;
+    alphah           1;
+    alphak           1;
+    alphaEps         0.76923;
+}
+
+LRRCoeffs
+{
+    Cmu              0.09;
+    Clrr1            1.8;
+    Clrr2            0.6;
+    C1               1.44;
+    C2               1.92;
+    alphah           1;
+    Cs               0.25;
+    Ceps             0.15;
+    alphaR           1;
+    alphaEps         0.76923;
+}
+
+LaunderGibsonRSTMCoeffs
+{
+    Cmu              0.09;
+    Clg1             1.8;
+    Clg2             0.6;
+    C1               1.44;
+    C2               1.92;
+    alphah           1;
+    C1Ref            0.5;
+    C2Ref            0.3;
+    Cs               0.25;
+    Ceps             0.15;
+    alphaR           1;
+    alphaEps         0.76923;
+}
+
+wallFunctionCoeffs
+{
+    kappa            0.4187;
+    E                9;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/environmentalProperties b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/environmentalProperties
new file mode 100644
index 0000000000000000000000000000000000000000..e9aee6c9b50caa4fae9f0025596b7894773d2cbb
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/environmentalProperties
@@ -0,0 +1,28 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          environmentalProperties;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+g               g [0 1 -2 0 0 0 0] (0 -9.81 0);
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
new file mode 100644
index 0000000000000000000000000000000000000000..ca90242d7d51bdd737438508ea0ae9d7cd54159f
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/bottomAir/thermophysicalProperties
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          thermophysicalProperties;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType      hThermo<pureMixture<constTransport<specieThermo<hConstThermo<perfectGas>>>>>;
+
+mixture         air 1 28.9 1000 0 1.8e-05 0.7;
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/polyMesh/blockMeshDict b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/polyMesh/blockMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..a0733096f968daf7c78d2039ac1463ec193e82f7
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/polyMesh/blockMeshDict
@@ -0,0 +1,82 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          blockMeshDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+convertToMeters 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           
+(
+);
+
+patches         
+(
+    wall maxY 
+    (
+        (3 7 6 2)
+    )
+    patch minX
+    (
+        (0 4 7 3)
+    )
+    patch maxX
+    (
+        (2 6 5 1)
+    )
+    wall minY
+    (
+        (1 5 4 0)
+    )
+    wall minZ
+    (
+        (0 3 2 1)
+    )
+    wall maxZ
+    (
+        (4 5 6 7)
+    )
+);
+
+mergePatchPairs 
+(
+);
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/polyMesh/boundary b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/polyMesh/boundary
new file mode 100644
index 0000000000000000000000000000000000000000..f47b89c7057bfbef2e8933953dec19c3dbc99599
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/polyMesh/boundary
@@ -0,0 +1,58 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       polyBoundaryMesh;
+    location    "constant/polyMesh";
+    object      boundary;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+6
+(
+    maxY
+    {
+        type            wall;
+        nFaces          300;
+        startFace       8300;
+    }
+    minX
+    {
+        type            patch;
+        nFaces          100;
+        startFace       8600;
+    }
+    maxX
+    {
+        type            patch;
+        nFaces          100;
+        startFace       8700;
+    }
+    minY
+    {
+        type            wall;
+        nFaces          300;
+        startFace       8800;
+    }
+    minZ
+    {
+        type            wall;
+        nFaces          300;
+        startFace       9100;
+    }
+    maxZ
+    {
+        type            wall;
+        nFaces          300;
+        startFace       9400;
+    }
+)
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/regionProperties b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/regionProperties
new file mode 100644
index 0000000000000000000000000000000000000000..6bff0e8cffe5d61b2b2f5fa957e507979b445753
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/regionProperties
@@ -0,0 +1,41 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.0                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          regionProperties;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+fluidRegionNames
+(
+    bottomAir
+    topAir
+);
+
+
+solidRegionNames
+(
+    heater
+    leftSolid
+    rightSolid
+);
+
+pRef 100000;
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/topAir/RASProperties b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/topAir/RASProperties
new file mode 100644
index 0000000000000000000000000000000000000000..a0307ea431e968ef30d1a62211fb57853841a610
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/topAir/RASProperties
@@ -0,0 +1,106 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          RASProperties;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+RASModel kEpsilon;
+
+//turbulence      on;
+turbulence      off;
+
+laminarCoeffs
+{
+}
+
+kEpsilonCoeffs
+{
+    Cmu              0.09;
+    C1               1.44;
+    C2               1.92;
+    C3               0.85;
+    alphah           1;
+    alphak           1;
+    alphaEps         0.76923;
+}
+
+RNGkEpsilonCoeffs
+{
+    Cmu              0.0845;
+    C1               1.42;
+    C2               1.68;
+    C3               -0.33;
+    alphah           1;
+    alphak           1.39;
+    alphaEps         1.39;
+    eta0             4.38;
+    beta             0.012;
+}
+
+LaunderSharmaKECoeffs
+{
+    Cmu              0.09;
+    C1               1.44;
+    C2               1.92;
+    C3               -0.33;
+    alphah           1;
+    alphak           1;
+    alphaEps         0.76923;
+}
+
+LRRCoeffs
+{
+    Cmu              0.09;
+    Clrr1            1.8;
+    Clrr2            0.6;
+    C1               1.44;
+    C2               1.92;
+    alphah           1;
+    Cs               0.25;
+    Ceps             0.15;
+    alphaR           1;
+    alphaEps         0.76923;
+}
+
+LaunderGibsonRSTMCoeffs
+{
+    Cmu              0.09;
+    Clg1             1.8;
+    Clg2             0.6;
+    C1               1.44;
+    C2               1.92;
+    alphah           1;
+    C1Ref            0.5;
+    C2Ref            0.3;
+    Cs               0.25;
+    Ceps             0.15;
+    alphaR           1;
+    alphaEps         0.76923;
+}
+
+wallFunctionCoeffs
+{
+    kappa            0.4187;
+    E                9;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/topAir/environmentalProperties b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/topAir/environmentalProperties
new file mode 120000
index 0000000000000000000000000000000000000000..9cb87f2395573b73794fb16e426cc3c036882cc5
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/topAir/environmentalProperties
@@ -0,0 +1 @@
+../bottomAir/environmentalProperties
\ No newline at end of file
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
new file mode 120000
index 0000000000000000000000000000000000000000..bd35030a13bd2a596bd156fcb37634090c0342a4
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/constant/topAir/thermophysicalProperties
@@ -0,0 +1 @@
+../bottomAir/thermophysicalProperties
\ No newline at end of file
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/makeCellSets.setSet b/tutorials/chtMultiRegionFoam/multiRegionHeater/makeCellSets.setSet
new file mode 100644
index 0000000000000000000000000000000000000000..84c52f85b36fd8d8f90b07b24898b7b8857add26
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/makeCellSets.setSet
@@ -0,0 +1,11 @@
+cellSet heater new boxToCell (-0.01    0 -100 )(0.01 0.01 100)
+cellSet heater add boxToCell (-0.01 -100 -0.01)(0.01 0.01 0.01)
+cellSet leftSolid new boxToCell (-100 0 -100 )(-0.01 0.01 100)
+cellSet rightSolid new boxToCell (0.01 0 -100 )(100 0.01 100)
+cellSet topAir new boxToCell (-100 0.01 -100 )(100 100 100)
+cellSet bottomAir clear
+cellSet bottomAir add cellToCell heater
+cellSet bottomAir add cellToCell leftSolid
+cellSet bottomAir add cellToCell rightSolid
+cellSet bottomAir add cellToCell topAir
+cellSet bottomAir invert
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/changeDictionaryDict b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/changeDictionaryDict
new file mode 100644
index 0000000000000000000000000000000000000000..1a89c964f221850352d57988a93cc7ee605ff194
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/changeDictionaryDict
@@ -0,0 +1,313 @@
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "/home/warhol/chris/foam/chris2.1/run/tutorials/interFoam";
+    case            "damBreak";
+    instance        "system";
+    local           "";
+
+    class           dictionary;
+    object          changePatchTypeDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+dictionaryReplacement
+{
+    U
+    {
+        internalField   uniform (0 0 0);
+        boundaryField
+        {
+            minX
+            {
+                type            fixedValue;
+                value           uniform (0 0 0);
+            }
+            maxX
+            {
+                type            fixedValue;
+                value           uniform (0 0 0);
+            }
+
+
+            bottomAir_to_leftSolid
+            {
+                type            fixedValue;
+                value           uniform (0 0 0);
+
+            }
+            bottomAir_to_heater
+            {
+                type            fixedValue;
+                value           uniform (0 0 0);
+            }
+            bottomAir_to_rightSolid
+            {
+                type            fixedValue;
+                value           uniform (0 0 0);
+            }
+        }
+    }
+
+
+
+    T
+    {
+        boundaryField
+        {
+            minX
+            {
+                type            zeroGradient;
+            }
+            bottomAir_to_leftSolid
+            {
+                type            solidWallTemperatureCoupled;
+                neighbourRegionName leftSolid;
+                neighbourPatchName leftSolid_to_bottomAir;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+
+            }
+            bottomAir_to_heater
+            {
+                type            solidWallTemperatureCoupled;
+                neighbourRegionName heater;
+                neighbourPatchName heater_to_bottomAir;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+            bottomAir_to_rightSolid
+            {
+                type            solidWallTemperatureCoupled;
+                neighbourRegionName rightSolid;
+                neighbourPatchName rightSolid_to_bottomAir;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+        }
+    }
+
+
+    epsilon
+    {
+        // Set the value on all bc to non-zero. Not used in simulation
+        // since zeroGradient; only used in initialisation.
+        internalField   uniform 0.01;
+
+        boundaryField
+        {
+            minX
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+            maxX
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+
+            minY
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+            maxY
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+
+            minZ
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+
+            bottomAir_to_leftSolid
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+            bottomAir_to_heater
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+            bottomAir_to_rightSolid
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+        }
+    }
+
+
+    k
+    {
+        internalField   uniform 0.1;
+        boundaryField
+        {
+            minX
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+            maxX
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+
+            minY
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+            maxY
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+
+            minZ
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+
+            bottomAir_to_leftSolid
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+            bottomAir_to_heater
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+            bottomAir_to_rightSolid
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+        }
+    }
+
+
+    pd
+    {
+        boundaryField
+        {
+            minX
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+            maxX
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+            minY
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+            minZ
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+            maxZ
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+            bottomAir_to_leftSolid
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+            bottomAir_to_heater
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+            bottomAir_to_rightSolid
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+        }
+    }
+
+
+    p
+    {
+        internalField   uniform 1000000;
+        boundaryField
+        {
+            minX
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+            maxX
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+            minY
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+            minZ
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+            maxZ
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+
+            bottomAir_to_leftSolid
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+            bottomAir_to_heater
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+            bottomAir_to_rightSolid
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+        }
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSchemes b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..73309294bf338a5f77de1847ad226fd90fab6f4e
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSchemes
@@ -0,0 +1,78 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          fvSchemes;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default Euler;
+    //default CoEuler phi rho 0.1;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+//    grad(U)         cellLimited Gauss linear 1;
+}
+
+divSchemes
+{
+    default         none;
+    div(phi,U)      Gauss upwind;
+    div(phiU,p)     Gauss upwind;
+    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((muEff*dev2(grad(U).T()))) Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         none;
+    laplacian(muEff,U) Gauss linear limited 0.333;
+    laplacian((rho*(1|A(U))),pd) Gauss linear limited 0.333;
+    laplacian(alphaEff,h) Gauss linear limited 0.333;
+    laplacian(DkEff,k) Gauss linear limited 0.333;
+    laplacian(DepsilonEff,epsilon) Gauss linear limited 0.333;
+    laplacian(DREff,R) Gauss linear limited 0.333;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         limited 0.333;
+}
+
+fluxRequired
+{
+    default         no;
+    pd;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSolution b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..e82c183b187df77db5517db828757c0beec3c890
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/bottomAir/fvSolution
@@ -0,0 +1,118 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          fvSolution;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    rho PCG
+    {
+        preconditioner   DIC;
+        tolerance        1e-6;
+        relTol           0;
+    };
+//    pd PCG
+//    {
+//        preconditioner   DIC;
+//        tolerance        1e-6;
+//        relTol           0.1;
+//    };
+//    pdFinal PCG
+//    {
+//        preconditioner   DIC;
+//        tolerance        1e-08;
+//        relTol           0;
+//    };
+    pd GAMG
+    {
+        tolerance        1e-6;
+        relTol           0.1;
+
+        smoother         GaussSeidel;
+
+        cacheAgglomeration true;
+        nCellsInCoarsestLevel 10;
+        agglomerator     faceAreaPair;
+        mergeLevels      1;
+    };
+    pdFinal GAMG
+    {
+        tolerance        1e-6;
+        relTol           0;
+
+        smoother         GaussSeidel;
+
+        cacheAgglomeration true;
+        nCellsInCoarsestLevel 10;
+        agglomerator     faceAreaPair;
+        mergeLevels      1;
+    };
+    U PBiCG
+    {
+        preconditioner   DILU;
+        tolerance        1e-08;
+        relTol           0;
+    };
+    h PBiCG
+    {
+        preconditioner   DILU;
+        tolerance        1e-06;
+        relTol           0;
+    };
+    k PBiCG
+    {
+        preconditioner   DILU;
+        tolerance        1e-06;
+        relTol           0;
+    };
+    epsilon PBiCG
+    {
+        preconditioner   DILU;
+        tolerance        1e-06;
+        relTol           0;
+    };
+    R PBiCG
+    {
+        preconditioner   DILU;
+        tolerance        1e-06;
+        relTol           0;
+    };
+}
+
+PISO
+{
+    momentumPredictor   off;
+    nOuterCorrectors     1;
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 1;
+    pdRefCell        0;
+    pdRefValue       0;
+}
+
+//relaxationFactors
+//{
+////    h               0.9;
+//    U               0.9;
+//}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/changeDictionaryDict b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/changeDictionaryDict
new file mode 100644
index 0000000000000000000000000000000000000000..5c53b44a239928903ec866ddd08983be78f21144
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/changeDictionaryDict
@@ -0,0 +1,195 @@
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "/home/warhol/chris/foam/chris2.1/run/tutorials/interFoam";
+    case            "damBreak";
+    instance        "system";
+    local           "";
+
+    class           dictionary;
+    object          changePatchTypeDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+dictionaryReplacement
+{
+    T
+    {
+        internalField   uniform 300;
+
+        boundaryField
+        {
+            minY
+            {
+                type            fixedValue;
+                value           uniform 500;
+            }
+
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+
+            heater_to_domain0
+            {
+                type            solidWallHeatFluxTemperatureCoupled;
+                neighbourRegionName domain0;
+                neighbourPatchName domain0_to_heater;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+
+            }
+            heater_to_solid1
+            {
+                type            solidWallHeatFluxTemperatureCoupled;
+                neighbourRegionName solid1;
+                neighbourPatchName solid1_to_heater;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+            heater_to_solid3
+            {
+                type            solidWallHeatFluxTemperatureCoupled;
+                neighbourRegionName solid3;
+                neighbourPatchName solid3_to_heater;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+            heater_to_domain3
+            {
+                type            solidWallHeatFluxTemperatureCoupled;
+                neighbourRegionName domain3;
+                neighbourPatchName domain3_to_heater;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+        }
+    }
+
+    rho
+    {
+        internalField   uniform 8000;
+
+        boundaryField
+        {
+            minY
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            heater_to_domain0
+            {
+                type            zeroGradient;
+            }
+            heater_to_solid1
+            {
+                type            zeroGradient;
+            }
+            heater_to_solid3
+            {
+                type            zeroGradient;
+            }
+            heater_to_domain3
+            {
+                type            zeroGradient;
+            }
+        }
+    }
+
+
+    K
+    {
+        internalField   uniform 80;
+
+        boundaryField
+        {
+            minY
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            heater_to_domain0
+            {
+                type            zeroGradient;
+            }
+            heater_to_solid1
+            {
+                type            zeroGradient;
+            }
+            heater_to_solid3
+            {
+                type            zeroGradient;
+            }
+            heater_to_domain3
+            {
+                type            zeroGradient;
+            }
+        }
+    }
+
+
+    cp
+    {
+        internalField   uniform 450;
+
+        boundaryField
+        {
+            minY
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            heater_to_domain0
+            {
+                type            zeroGradient;
+            }
+            heater_to_solid1
+            {
+                type            zeroGradient;
+            }
+            heater_to_solid3
+            {
+                type            zeroGradient;
+            }
+            heater_to_domain3
+            {
+                type            zeroGradient;
+            }
+        }
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/controlDict b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..cab5c5b147b5c965375fda658d2eff2126b72fa1
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/controlDict
@@ -0,0 +1,61 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          controlDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     chtFoam;
+
+startFrom       latestTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         180;
+
+deltaT          0.001;
+
+writeControl    adjustableRunTime;
+writeInterval   5;
+//writeControl    timeStep;
+//writeInterval   20;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  7;
+
+writeCompression uncompressed;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+maxCo           0.3;
+
+adjustTimeStep  yes;
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/fvSchemes b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..d628f9178e6898a428c2031491ffec6262ce7195
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/fvSchemes
@@ -0,0 +1,68 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          fvSchemes;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+    grad(U)         Gauss linear;
+    grad(gamma)     Gauss linear;
+}
+
+divSchemes
+{
+    div(rho*phi,U)  Gauss upwind; //limitedLinearV 1;
+    div(phi,gamma)  Gauss vanLeer;
+    div(phirb,gamma) Gauss interfaceCompression;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear corrected;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         corrected;
+}
+
+fluxRequired
+{
+    default         no;
+    pd;
+    pcorr;
+    gamma;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/fvSolution b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..23e4e222d0711788531cd23a6e71c2afed1014c8
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/fvSolution
@@ -0,0 +1,132 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          fvSolution;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    pcorr PCG
+    {
+        preconditioner   GAMG
+        {
+            tolerance        1e-3;
+            relTol           0;
+
+            smoother         GaussSeidel;
+            nPreSweeps       0;
+            nPostSweeps      2;
+            nBottomSweeps    2;
+
+            cacheAgglomeration false;
+            nCellsInCoarsestLevel 10;
+            agglomerator     faceAreaPair;
+            mergeLevels      1;
+        };
+
+        tolerance        1e-4;
+        relTol           0;
+        maxIter          100;
+    };
+
+    pd GAMG
+    {
+        tolerance        1e-8;
+        relTol           0.05;
+
+        smoother         GaussSeidel;
+        nPreSweeps       0;
+        nPostSweeps      2;
+        nFinestSweeps    2;
+
+        cacheAgglomeration false;
+        nCellsInCoarsestLevel 10;
+        agglomerator     faceAreaPair;
+        mergeLevels      1;
+    };
+
+    pdFinal PCG
+    {
+        preconditioner GAMG
+        {
+            tolerance        1e-8;
+            relTol           0;
+
+            nVcycles         2;
+
+            smoother         GaussSeidel;
+            nPreSweeps       0;
+            nPostSweeps      2;
+            nFinestSweeps    2;
+
+            cacheAgglomeration false;
+            nCellsInCoarsestLevel 10;
+            agglomerator     faceAreaPair;
+            mergeLevels      1;
+        };
+
+        tolerance        1e-8;
+        relTol           0;
+        maxIter          20;
+    };
+
+    U smoothSolver
+    {
+        smoother         GaussSeidel;
+        tolerance        1e-6;
+        relTol           0;
+        nSweeps          1;
+    };
+
+    k PBiCG
+    {
+        preconditioner   DILU;
+        tolerance        1e-08;
+        relTol           0;
+    };
+    B PBiCG
+    {
+        preconditioner   DILU;
+        tolerance        1e-08;
+        relTol           0;
+    };
+    nuTilda PBiCG
+    {
+        preconditioner   DILU;
+        tolerance        1e-08;
+        relTol           0;
+    };
+}
+
+PISO
+{
+    momentumPredictor no;
+    nCorrectors     3;
+    nNonOrthogonalCorrectors 0;
+    nGammaCorr      1;
+    nGammaSubCycles 3;
+    cGamma          1;
+    pdRefCell       0;
+    pdRefValue      0;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/heater/changeDictionaryDict b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/heater/changeDictionaryDict
new file mode 100644
index 0000000000000000000000000000000000000000..1a50cc17b977a1b44dd3a5b3d612ee437df75cc9
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/heater/changeDictionaryDict
@@ -0,0 +1,195 @@
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "/home/warhol/chris/foam/chris2.1/run/tutorials/interFoam";
+    case            "damBreak";
+    instance        "system";
+    local           "";
+
+    class           dictionary;
+    object          changePatchTypeDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+dictionaryReplacement
+{
+    T
+    {
+        internalField   uniform 300;
+
+        boundaryField
+        {
+            minY
+            {
+                type            fixedValue;
+                value           uniform 500;
+            }
+
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+
+            heater_to_bottomAir
+            {
+                type            solidWallHeatFluxTemperatureCoupled;
+                neighbourRegionName bottomAir;
+                neighbourPatchName bottomAir_to_heater;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+
+            }
+            heater_to_leftSolid
+            {
+                type            solidWallHeatFluxTemperatureCoupled;
+                neighbourRegionName leftSolid;
+                neighbourPatchName leftSolid_to_heater;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+            heater_to_rightSolid
+            {
+                type            solidWallHeatFluxTemperatureCoupled;
+                neighbourRegionName rightSolid;
+                neighbourPatchName rightSolid_to_heater;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+            heater_to_topAir
+            {
+                type            solidWallHeatFluxTemperatureCoupled;
+                neighbourRegionName topAir;
+                neighbourPatchName topAir_to_heater;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+        }
+    }
+
+    rho
+    {
+        internalField   uniform 8000;
+
+        boundaryField
+        {
+            minY
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            heater_to_bottomAir
+            {
+                type            zeroGradient;
+            }
+            heater_to_leftSolid
+            {
+                type            zeroGradient;
+            }
+            heater_to_rightSolid
+            {
+                type            zeroGradient;
+            }
+            heater_to_topAir
+            {
+                type            zeroGradient;
+            }
+        }
+    }
+
+
+    K
+    {
+        internalField   uniform 80;
+
+        boundaryField
+        {
+            minY
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            heater_to_bottomAir
+            {
+                type            zeroGradient;
+            }
+            heater_to_leftSolid
+            {
+                type            zeroGradient;
+            }
+            heater_to_rightSolid
+            {
+                type            zeroGradient;
+            }
+            heater_to_topAir
+            {
+                type            zeroGradient;
+            }
+        }
+    }
+
+
+    cp
+    {
+        internalField   uniform 450;
+
+        boundaryField
+        {
+            minY
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            heater_to_bottomAir
+            {
+                type            zeroGradient;
+            }
+            heater_to_leftSolid
+            {
+                type            zeroGradient;
+            }
+            heater_to_rightSolid
+            {
+                type            zeroGradient;
+            }
+            heater_to_topAir
+            {
+                type            zeroGradient;
+            }
+        }
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/heater/fvSchemes b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/heater/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..e1c5ba8e1877fa1152c7535004ef97ec926e8399
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/heater/fvSchemes
@@ -0,0 +1,62 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          fvSchemes;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+}
+
+laplacianSchemes
+{
+    default         none;
+    laplacian(K,T) Gauss linear limited 0.333;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         limited 0.333;
+}
+
+fluxRequired
+{
+    default         no;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/heater/fvSolution b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/heater/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..648c2282b5a8eaee1cce9c2113e75bb6122bd789
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/heater/fvSolution
@@ -0,0 +1,41 @@
+/*---------------------------------------------------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.4                                   |
+|   \\  /    A nd           | Web:      http://www.openfoam.org               |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "";
+    case            "";
+    instance        "";
+    local           "";
+
+    class           dictionary;
+    object          fvSolution;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    T PCG
+    {
+        preconditioner   DIC;
+        tolerance        1E-06;
+        relTol           0;
+    };
+}
+
+PISO
+{
+    nNonOrthogonalCorrectors 1;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/changeDictionaryDict b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/changeDictionaryDict
new file mode 100644
index 0000000000000000000000000000000000000000..a6fd49e467e61a16153a4c61cd32e576b477db80
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/changeDictionaryDict
@@ -0,0 +1,171 @@
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "/home/warhol/chris/foam/chris2.1/run/tutorials/interFoam";
+    case            "damBreak";
+    instance        "system";
+    local           "";
+
+    class           dictionary;
+    object          changePatchTypeDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+dictionaryReplacement
+{
+    T
+    {
+        internalField   uniform 300;
+
+        boundaryField
+        {
+            minX
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            leftSolid_to_bottomAir
+            {
+                type            solidWallHeatFluxTemperatureCoupled;
+                neighbourRegionName bottomAir;
+                neighbourPatchName bottomAir_to_leftSolid;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+
+            }
+            leftSolid_to_heater
+            {
+                type            solidWallTemperatureCoupled;
+                neighbourRegionName heater;
+                neighbourPatchName heater_to_leftSolid;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+            leftSolid_to_topAir
+            {
+                type            solidWallHeatFluxTemperatureCoupled;
+                neighbourRegionName topAir;
+                neighbourPatchName topAir_to_leftSolid;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+        }
+    }
+
+    rho
+    {
+        internalField   uniform 8000;
+
+        boundaryField
+        {
+            minX
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            leftSolid_to_bottomAir
+            {
+                type            zeroGradient;
+            }
+            leftSolid_to_heater
+            {
+                type            zeroGradient;
+            }
+            leftSolid_to_topAir
+            {
+                type            zeroGradient;
+            }
+        }
+    }
+
+
+    K
+    {
+        internalField   uniform 80;
+
+        boundaryField
+        {
+            minX
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            leftSolid_to_bottomAir
+            {
+                type            zeroGradient;
+            }
+            leftSolid_to_heater
+            {
+                type            zeroGradient;
+            }
+            leftSolid_to_topAir
+            {
+                type            zeroGradient;
+            }
+        }
+    }
+
+
+    cp
+    {
+        internalField   uniform 450;
+
+        boundaryField
+        {
+            minX
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            leftSolid_to_bottomAir
+            {
+                type            zeroGradient;
+            }
+            leftSolid_to_heater
+            {
+                type            zeroGradient;
+            }
+            leftSolid_to_topAir
+            {
+                type            zeroGradient;
+            }
+        }
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/fvSchemes b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/fvSchemes
new file mode 120000
index 0000000000000000000000000000000000000000..63236f302cfd79847ce312cced35784fa149c827
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/fvSchemes
@@ -0,0 +1 @@
+../heater/fvSchemes
\ No newline at end of file
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/fvSolution b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/fvSolution
new file mode 120000
index 0000000000000000000000000000000000000000..0bde0fc62f58a1a111ce897344b26816ef3de04d
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/fvSolution
@@ -0,0 +1 @@
+../heater/fvSolution
\ No newline at end of file
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/changeDictionaryDict b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/changeDictionaryDict
new file mode 100644
index 0000000000000000000000000000000000000000..1ad8174abb7fc9e3f8eca31ad2536f3b77952a2a
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/changeDictionaryDict
@@ -0,0 +1,170 @@
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "/home/warhol/chris/foam/chris2.1/run/tutorials/interFoam";
+    case            "damBreak";
+    instance        "system";
+    local           "";
+
+    class           dictionary;
+    object          changePatchTypeDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+dictionaryReplacement
+{
+    T
+    {
+        internalField   uniform 300;
+
+        boundaryField
+        {
+            maxX
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            rightSolid_to_heater
+            {
+                type            solidWallTemperatureCoupled;
+                neighbourRegionName heater;
+                neighbourPatchName heater_to_rightSolid;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+            rightSolid_to_bottomAir
+            {
+                type            solidWallHeatFluxTemperatureCoupled;
+                neighbourRegionName bottomAir;
+                neighbourPatchName bottomAir_to_rightSolid;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+            rightSolid_to_topAir
+            {
+                type            solidWallHeatFluxTemperatureCoupled;
+                neighbourRegionName topAir;
+                neighbourPatchName topAir_to_rightSolid;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+        }
+    }
+
+    rho
+    {
+        internalField   uniform 8000;
+
+        boundaryField
+        {
+            maxX
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            rightSolid_to_bottomAir
+            {
+                type            zeroGradient;
+            }
+            rightSolid_to_heater
+            {
+                type            zeroGradient;
+            }
+            rightSolid_to_topAir
+            {
+                type            zeroGradient;
+            }
+        }
+    }
+
+
+    K
+    {
+        internalField   uniform 80;
+
+        boundaryField
+        {
+            maxX
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            rightSolid_to_bottomAir
+            {
+                type            zeroGradient;
+            }
+            rightSolid_to_heater
+            {
+                type            zeroGradient;
+            }
+            rightSolid_to_topAir
+            {
+                type            zeroGradient;
+            }
+        }
+    }
+
+
+    cp
+    {
+        internalField   uniform 450;
+
+        boundaryField
+        {
+            maxX
+            {
+                type            zeroGradient;
+            }
+            minZ
+            {
+                type            zeroGradient;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+            }
+            rightSolid_to_bottomAir
+            {
+                type            zeroGradient;
+            }
+            rightSolid_to_heater
+            {
+                type            zeroGradient;
+            }
+            rightSolid_to_topAir
+            {
+                type            zeroGradient;
+            }
+        }
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/fvSchemes b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/fvSchemes
new file mode 120000
index 0000000000000000000000000000000000000000..63236f302cfd79847ce312cced35784fa149c827
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/fvSchemes
@@ -0,0 +1 @@
+../heater/fvSchemes
\ No newline at end of file
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/fvSolution b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/fvSolution
new file mode 120000
index 0000000000000000000000000000000000000000..0bde0fc62f58a1a111ce897344b26816ef3de04d
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/fvSolution
@@ -0,0 +1 @@
+../heater/fvSolution
\ No newline at end of file
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/topAir/changeDictionaryDict b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/topAir/changeDictionaryDict
new file mode 100644
index 0000000000000000000000000000000000000000..c24aa9244d0a94d8844f76d2021592e21c85959e
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/topAir/changeDictionaryDict
@@ -0,0 +1,322 @@
+FoamFile
+{
+    version         2.0;
+    format          ascii;
+
+    root            "/home/warhol/chris/foam/chris2.1/run/tutorials/interFoam";
+    case            "damBreak";
+    instance        "system";
+    local           "";
+
+    class           dictionary;
+    object          changePatchTypeDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+dictionaryReplacement
+{
+    U
+    {
+        internalField   uniform ( 0.01 0 0 );
+        boundaryField
+        {
+            minX
+            {
+                type            fixedValue;
+                value           uniform (0.01 0 0);
+            }
+            maxX
+            {
+                type            inletOutlet;
+                inletValue      uniform (0 0 0);
+            }
+
+
+            topAir_to_leftSolid
+            {
+                type            fixedValue;
+                value           uniform (0 0 0);
+
+            }
+            topAir_to_heater
+            {
+                type            fixedValue;
+                value           uniform (0 0 0);
+            }
+            topAir_to_rightSolid
+            {
+                type            fixedValue;
+                value           uniform (0 0 0);
+            }
+        }
+    }
+
+
+
+    T
+    {
+        boundaryField
+        {
+            minX
+            {
+                type            fixedValue;
+                value           uniform 300;
+            }
+            topAir_to_leftSolid
+            {
+                type            solidWallTemperatureCoupled;
+                neighbourRegionName leftSolid;
+                neighbourPatchName leftSolid_to_topAir;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+
+            }
+            topAir_to_heater
+            {
+                type            solidWallTemperatureCoupled;
+                neighbourRegionName heater;
+                neighbourPatchName heater_to_topAir;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+            topAir_to_rightSolid
+            {
+                type            solidWallTemperatureCoupled;
+                neighbourRegionName rightSolid;
+                neighbourPatchName rightSolid_to_topAir;
+                neighbourFieldName T;
+                K               K;
+                value           uniform 300;
+            }
+        }
+    }
+
+
+    epsilon
+    {
+        // Set the value on all bc to non-zero. Not used in simulation
+        // since zeroGradient; only used in initialisation.
+        boundaryField
+        {
+            minX
+            {
+                type            fixedValue;
+                value           uniform 0.01;
+            }
+            maxX
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+
+            minY
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+            maxY
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+
+            minZ
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+            topAir_to_leftSolid
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+            topAir_to_heater
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+            topAir_to_rightSolid
+            {
+                type            zeroGradient;
+                value           uniform 0.01;
+            }
+        }
+    }
+
+
+    k
+    {
+        internalField   uniform 0.1;
+        boundaryField
+        {
+            minX
+            {
+                type            fixedValue;
+                value           uniform 0.1;
+            }
+
+            maxX
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+
+            minY
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+            maxY
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+
+            minZ
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+            maxZ
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+
+            topAir_to_leftSolid
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+            topAir_to_heater
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+            topAir_to_rightSolid
+            {
+                type            zeroGradient;
+                value           uniform 0.1;
+            }
+        }
+    }
+
+
+    pd
+    {
+        boundaryField
+        {
+            minX
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+            maxX
+            {
+                type            waveTransmissive;
+                field           pd;
+                phi             phi;
+                rho             rho;
+                psi             psi;
+                gamma           1.4;    // cp/cv
+                fieldInf        0;
+                lInf            0.40;   // double length of domain
+                value           uniform 0;
+            }
+
+            minY
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+
+            minZ
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+            maxZ
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+
+            topAir_to_leftSolid
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+            topAir_to_heater
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+            topAir_to_rightSolid
+            {
+                type            fixedFluxBuoyantPressure;
+                value           0;
+            }
+        }
+    }
+
+    p
+    {
+        internalField   uniform 1000000;
+
+        boundaryField
+        {
+            minX
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+            maxX
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+            maxY
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+            minZ
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+            maxZ
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+
+            topAir_to_leftSolid
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+            topAir_to_heater
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+            topAir_to_rightSolid
+            {
+                type            calculated;
+                value           uniform 1000000;
+            }
+        }
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/topAir/fvSchemes b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/topAir/fvSchemes
new file mode 120000
index 0000000000000000000000000000000000000000..ff6aeb82d395e30f059d8a111d447f5dff18b137
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/topAir/fvSchemes
@@ -0,0 +1 @@
+../bottomAir/fvSchemes
\ No newline at end of file
diff --git a/tutorials/chtMultiRegionFoam/multiRegionHeater/system/topAir/fvSolution b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/topAir/fvSolution
new file mode 120000
index 0000000000000000000000000000000000000000..745b2bcfe42a207d4eb7af7dc80b87a460405289
--- /dev/null
+++ b/tutorials/chtMultiRegionFoam/multiRegionHeater/system/topAir/fvSolution
@@ -0,0 +1 @@
+../bottomAir/fvSolution
\ No newline at end of file