diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/Allrun b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/Allrun
index db414bf59231974ede6789066d9ad07abab73908..6e1c645ec0268f71fc520897dba3ad8cab0876b2 100755
--- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/Allrun
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/Allrun
@@ -6,7 +6,7 @@ cd ${0%/*} || exit 1    # run from this directory
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 runApplication blockMesh
-runApplication setSet -batch makeCellSets.setSet
+runApplication topoSet
 runApplication splitMeshRegions -cellZones -overwrite
 
 # remove fluid fields from solid regions (important for post-processing)
@@ -49,9 +49,6 @@ done
 echo
 echo "creating files for paraview post-processing"
 echo
-for i in bottomWater topAir heater leftSolid rightSolid
-do
-   paraFoam -touch -region $i
-done
+paraFoam -touchAll
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/system/topoSetDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/system/topoSetDict
new file mode 100644
index 0000000000000000000000000000000000000000..8f65cab102cf5831c6a33ce37e0f4ba566d0e27a
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionLiquidHeater/system/topoSetDict
@@ -0,0 +1,182 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      topoSetDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    // Heater
+    {
+        name    heater;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-0.01001    0 -100 )(0.01001 0.00999 100);
+        }
+    }
+    {
+        name    heater;
+        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 heater;           // name of cellSet
+        }
+    }
+
+    // leftSolid
+    {
+        name    leftSolid;
+        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 leftSolid;
+        }
+    }
+
+    // rightSolid
+    {
+        name    rightSolid;
+        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 rightSolid;
+        }
+    }
+
+    // topAir
+    {
+        name    topAir;
+        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 topAir;
+        }
+    }
+
+
+    // bottomWater is all the other cells
+    {
+        name    bottomWater;
+        type    cellZoneSet;
+        action  clear;
+    }
+    {
+        name    bottomWater;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set heater;
+        }
+    }
+    {
+        name    bottomWater;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set leftSolid;
+        }
+    }
+    {
+        name    bottomWater;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set rightSolid;
+        }
+    }
+    {
+        name    bottomWater;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set topAir;
+        }
+    }
+    {
+        name    bottomWater;
+        type    cellSet;
+        action  invert;
+    }
+    {
+        name    bottomWater;
+        type    cellZoneSet;
+        action  new;
+        source  setToCellZone;
+        sourceInfo
+        {
+            set bottomWater;
+        }
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/Allrun b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/Allrun
index f473e787d0f771ac09391c559291bae2454308fb..c9a51acef4f290816a47f998ead2096f7096df6e 100755
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/Allrun
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/Allrun
@@ -6,7 +6,7 @@ cd ${0%/*} || exit 1    # run from this directory
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 runApplication blockMesh
-runApplication setSet -batch makeCellSets.setSet
+runApplication topoSet
 runApplication splitMeshRegions -cellZones -overwrite
 
 # remove fluid fields from solid regions (important for post-processing)
@@ -49,9 +49,6 @@ runApplication `getApplication`
 echo
 echo "creating files for paraview post-processing"
 echo
-for i in bottomAir topAir heater leftSolid rightSolid
-do
-   paraFoam -touch -region $i
-done
+paraFoam -touchAll
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/system/topoSetDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/system/topoSetDict
new file mode 100644
index 0000000000000000000000000000000000000000..bd14f41a4413e5f81b2602609390017c668be423
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater/system/topoSetDict
@@ -0,0 +1,182 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      topoSetDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    // Heater
+    {
+        name    heater;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-0.01001    0 -100 )(0.01001 0.00999 100);
+        }
+    }
+    {
+        name    heater;
+        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 heater;           // name of cellSet
+        }
+    }
+
+    // leftSolid
+    {
+        name    leftSolid;
+        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 leftSolid;
+        }
+    }
+
+    // rightSolid
+    {
+        name    rightSolid;
+        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 rightSolid;
+        }
+    }
+
+    // topAir
+    {
+        name    topAir;
+        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 topAir;
+        }
+    }
+
+
+    // bottomAir is all the other cells
+    {
+        name    bottomAir;
+        type    cellZoneSet;
+        action  clear;
+    }
+    {
+        name    bottomAir;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set heater;
+        }
+    }
+    {
+        name    bottomAir;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set leftSolid;
+        }
+    }
+    {
+        name    bottomAir;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set rightSolid;
+        }
+    }
+    {
+        name    bottomAir;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set topAir;
+        }
+    }
+    {
+        name    bottomAir;
+        type    cellSet;
+        action  invert;
+    }
+    {
+        name    bottomAir;
+        type    cellZoneSet;
+        action  new;
+        source  setToCellZone;
+        sourceInfo
+        {
+            set bottomAir;
+        }
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun
index 1b0ffb01e92e3a9af9af75e5eb9e00584d564f2e..97cb8e3733ffb394ee066867afdce3f19e10d0e5 100755
--- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun
@@ -6,7 +6,7 @@ cd ${0%/*} || exit 1    # run from this directory
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 runApplication blockMesh
-runApplication setSet -batch makeCellSets.setSet
+runApplication topoSet
 runApplication splitMeshRegions -cellZones -overwrite
 
 # remove fluid fields from solid regions (important for post-processing)
diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topoSetDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topoSetDict
new file mode 100644
index 0000000000000000000000000000000000000000..bd14f41a4413e5f81b2602609390017c668be423
--- /dev/null
+++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topoSetDict
@@ -0,0 +1,182 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      topoSetDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    // Heater
+    {
+        name    heater;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (-0.01001    0 -100 )(0.01001 0.00999 100);
+        }
+    }
+    {
+        name    heater;
+        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 heater;           // name of cellSet
+        }
+    }
+
+    // leftSolid
+    {
+        name    leftSolid;
+        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 leftSolid;
+        }
+    }
+
+    // rightSolid
+    {
+        name    rightSolid;
+        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 rightSolid;
+        }
+    }
+
+    // topAir
+    {
+        name    topAir;
+        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 topAir;
+        }
+    }
+
+
+    // bottomAir is all the other cells
+    {
+        name    bottomAir;
+        type    cellZoneSet;
+        action  clear;
+    }
+    {
+        name    bottomAir;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set heater;
+        }
+    }
+    {
+        name    bottomAir;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set leftSolid;
+        }
+    }
+    {
+        name    bottomAir;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set rightSolid;
+        }
+    }
+    {
+        name    bottomAir;
+        type    cellSet;
+        action  add;
+        source  cellToCell;
+        sourceInfo
+        {
+            set topAir;
+        }
+    }
+    {
+        name    bottomAir;
+        type    cellSet;
+        action  invert;
+    }
+    {
+        name    bottomAir;
+        type    cellZoneSet;
+        action  new;
+        source  setToCellZone;
+        sourceInfo
+        {
+            set bottomAir;
+        }
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/Allrun.pre b/tutorials/incompressible/pimpleDyMFoam/propeller/Allrun.pre
index 21b58473a076829e8a5fe3541de4f66ff1c9a295..4dd9857ccfc11d7d6a896def17be6d544bc3319c 100755
--- a/tutorials/incompressible/pimpleDyMFoam/propeller/Allrun.pre
+++ b/tutorials/incompressible/pimpleDyMFoam/propeller/Allrun.pre
@@ -29,14 +29,20 @@ runApplication snappyHexMesh -overwrite
 
 # - generate face/cell sets and zones
 
-runApplication setSet -batch removeRedundantZones.setSet
-mv log.setSet log.removeRedundantZones.setSet
-
-runApplication setSet -batch createInletOutletSets.setSet
-mv log.setSet log.createInletOutletSets.setSet
-
-runApplication setSet -batch createAMIFaces.setSet
-mv log.setSet log.createAMIFaces.setSet
+#runApplication setSet -batch removeRedundantZones.setSet
+#mv log.setSet log.removeRedundantZones.setSet
+runApplication topoSet -dict system/removeRedundantZones.topoSetDict
+mv log.topoSet log.removeRedundantZones.topoSet
+
+#runApplication setSet -batch createInletOutletSets.setSet
+#mv log.setSet log.createInletOutletSets.setSet
+runApplication topoSet -dict system/createInletOutletSets.topoSetDict
+mv log.topoSet log.createInletOutletSets.topoSet
+
+#runApplication setSet -batch createAMIFaces.setSet
+#mv log.setSet log.createAMIFaces.setSet
+runApplication topoSet -dict system/createAMIFaces.topoSetDict
+mv log.topoSet log.createAMIFaces.topoSet
 
 
 # - create the inlet/outlet patches
diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/createAMIFaces.setSet b/tutorials/incompressible/pimpleDyMFoam/propeller/createAMIFaces.setSet
deleted file mode 100644
index c3e509f1f5c9b408a7121b09775fcebf73bb256b..0000000000000000000000000000000000000000
--- a/tutorials/incompressible/pimpleDyMFoam/propeller/createAMIFaces.setSet
+++ /dev/null
@@ -1,8 +0,0 @@
-cellSet innerCylinderSmall new cylinderToCell (0 -0.08 0) (0 0.06 0) 0.12
-cellSet outerCells new cellToCell innerCylinderSmall
-cellSet outerCells invert
-cellZoneSet innerCylinderSmall new setToCellZone innerCylinderSmall
-
-faceSet innerCylinderSmallFace new cellToFace innerCylinderSmall all
-faceSet innerCylinderSmallFace subset cellToFace outerCells all
-faceZoneSet innerCylinderSmall new setsToFaceZone innerCylinderSmallFace innerCylinderSmall
diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/createInletOutletSets.setSet b/tutorials/incompressible/pimpleDyMFoam/propeller/createInletOutletSets.setSet
deleted file mode 100644
index 21cfded97949e753007fab27ee8ba7aa5ee8ac91..0000000000000000000000000000000000000000
--- a/tutorials/incompressible/pimpleDyMFoam/propeller/createInletOutletSets.setSet
+++ /dev/null
@@ -1,5 +0,0 @@
-faceSet boundaryFaces new patchToFace outerCylinder
-faceSet outletFaces new faceToFace boundaryFaces
-faceSet inletFaces new faceToFace boundaryFaces
-faceSet outletFaces subset normalToFace (0 -1 0) 0.3
-faceSet inletFaces subset normalToFace (0 1 0) 0.3
diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/removeRedundantZones.setSet b/tutorials/incompressible/pimpleDyMFoam/propeller/removeRedundantZones.setSet
deleted file mode 100644
index daaa4e9a23b9b5fbe2696f171d6a14f8b00b6bf9..0000000000000000000000000000000000000000
--- a/tutorials/incompressible/pimpleDyMFoam/propeller/removeRedundantZones.setSet
+++ /dev/null
@@ -1,2 +0,0 @@
-cellZoneSet innerCylinder remove
-faceZoneSet innerCylinderSmall remove
diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/system/createAMIFaces.topoSetDict b/tutorials/incompressible/pimpleDyMFoam/propeller/system/createAMIFaces.topoSetDict
new file mode 100644
index 0000000000000000000000000000000000000000..84f75a9dc508b846c3a0ac41aa8887cfeaea34ca
--- /dev/null
+++ b/tutorials/incompressible/pimpleDyMFoam/propeller/system/createAMIFaces.topoSetDict
@@ -0,0 +1,96 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      topoSetDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    {
+        name    innerCylinderSmall;
+        type    cellSet;
+        action  new;
+        source  cylinderToCell;
+        sourceInfo
+        {
+            p1      (0 -0.08 0);
+            p2      (0 0.06 0);
+            radius  0.12;
+        }
+    }
+    {
+        name    outerCells;
+        type    cellSet;
+        action  new;
+        source  cellToCell;
+        sourceInfo
+        {
+            set innerCylinderSmall;
+        }
+    }
+    {
+        name    outerCells;
+        type    cellSet;
+        action  invert;
+    }
+
+    {
+        name    innerCylinderSmall;
+        type    cellZoneSet;
+        action  new;
+        source  setToCellZone;
+        sourceInfo
+        {
+            set     innerCylinderSmall;
+        }
+    }
+
+
+
+    {
+        name    innerCylinderSmallFace;
+        type    faceSet;
+        action  new;
+        source  cellToFace;
+        sourceInfo
+        {
+            set     innerCylinderSmall;
+            option  all;
+        }
+    }
+    {
+        name    innerCylinderSmallFace;
+        type    faceSet;
+        action  subset;
+        source  cellToFace;
+        sourceInfo
+        {
+            set     outerCells;
+            option  all;
+        }
+    }
+    {
+        name    innerCylinderSmall;
+        type    faceZoneSet;
+        action  new;
+        source  setsToFaceZone;
+        sourceInfo
+        {
+            faceSet     innerCylinderSmallFace;
+            cellSet     innerCylinderSmall;
+        }
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/system/createInletOutletSets.topoSetDict b/tutorials/incompressible/pimpleDyMFoam/propeller/system/createInletOutletSets.topoSetDict
new file mode 100644
index 0000000000000000000000000000000000000000..ad10b2e643cb99b71998783edff2e4cc06f8d62a
--- /dev/null
+++ b/tutorials/incompressible/pimpleDyMFoam/propeller/system/createInletOutletSets.topoSetDict
@@ -0,0 +1,78 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      topoSetDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    {
+        name    boundaryFaces;
+        type    faceSet;
+        action  new;
+        source  patchToFace;
+        sourceInfo
+        {
+            name outerCylinder;
+        }
+    }
+
+    {
+        name    outletFaces;
+        type    faceSet;
+        action  new;
+        source  faceToFace;
+        sourceInfo
+        {
+            set boundaryFaces;
+        }
+    }
+
+    {
+        name    inletFaces;
+        type    faceSet;
+        action  new;
+        source  faceToFace;
+        sourceInfo
+        {
+            set boundaryFaces;
+        }
+    }
+
+    {
+        name    outletFaces;
+        type    faceSet;
+        action  subset;
+        source  normalToFace;
+        sourceInfo
+        {
+            normal  (0 -1 0);   // Vector
+            cos     0.3;        // Tolerance (max cos of angle)
+        }
+    }
+
+    {
+        name    inletFaces;
+        type    faceSet;
+        action  subset;
+        source  normalToFace;
+        sourceInfo
+        {
+            normal  (0 1 0);    // Vector
+            cos     0.3;        // Tolerance (max cos of angle)
+        }
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/system/removeRedundantZones.topoSetDict b/tutorials/incompressible/pimpleDyMFoam/propeller/system/removeRedundantZones.topoSetDict
new file mode 100644
index 0000000000000000000000000000000000000000..5def0de3692edbfd877a9662f7ce40dd192e8b5c
--- /dev/null
+++ b/tutorials/incompressible/pimpleDyMFoam/propeller/system/removeRedundantZones.topoSetDict
@@ -0,0 +1,32 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      topoSetDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    {
+        name    innerCylinder;
+        type    cellZoneSet;
+        action  remove;
+    }
+    {
+        name    innerCylinderSmall;
+        type    cellZoneSet;
+        action  remove;
+    }
+);
+
+// ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/turbineSiting/Allrun b/tutorials/incompressible/simpleFoam/turbineSiting/Allrun
index 9a2202867e0aa8dd1fccc83ac7173f4f80cfc10c..20c4a640d8e5679f651bccc266925abe9db8a7c5 100755
--- a/tutorials/incompressible/simpleFoam/turbineSiting/Allrun
+++ b/tutorials/incompressible/simpleFoam/turbineSiting/Allrun
@@ -33,7 +33,8 @@ runParallel renumberMesh 4 -overwrite
 # without evaluation.
 #runParallel changeDictionary 4 -literalRE
 
-runParallel setSet 4 -batch makeZones
+#runParallel setSet 4 -batch makeZones
+runParallel topoSet 4
 runParallel `getApplication` 4
 
 runApplication reconstructParMesh -constant
diff --git a/tutorials/incompressible/simpleFoam/turbineSiting/system/topoSetDict b/tutorials/incompressible/simpleFoam/turbineSiting/system/topoSetDict
new file mode 100644
index 0000000000000000000000000000000000000000..7d109863eefb6dde4ef3223ca1a7b72dcb04b638
--- /dev/null
+++ b/tutorials/incompressible/simpleFoam/turbineSiting/system/topoSetDict
@@ -0,0 +1,66 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      topoSetDict;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+actions
+(
+    // actuationDisk1
+    {
+        name    actuationDisk1;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (581850.5 4785805 1061) (581850.8 4785815 1071);
+        }
+    }
+    {
+        name    actuationDisk1;
+        type    cellZoneSet;
+        action  new;
+        source  setToCellZone;
+        sourceInfo
+        {
+            set actuationDisk1;
+        }
+    }
+
+    // actuationDisk2
+    {
+        name    actuationDisk2;
+        type    cellSet;
+        action  new;
+        source  boxToCell;
+        sourceInfo
+        {
+            box (581754 4785658 1065) (581754.4 4785668 1075);
+        }
+    }
+    {
+        name    actuationDisk2;
+        type    cellZoneSet;
+        action  new;
+        source  setToCellZone;
+        sourceInfo
+        {
+            set actuationDisk2;
+        }
+    }
+
+);
+
+// ************************************************************************* //