From 45c16e06b3361177c0baf5543b3c7feeafcdcdd1 Mon Sep 17 00:00:00 2001
From: Sergey Lesnik <sergey.lesnik@wikki-gmbh.de>
Date: Fri, 30 Jul 2021 17:49:20 +0200
Subject: [PATCH] Initial commit of the cavity microbenchmark

---
 microbenchmarks/cavity-3d/1M/fixedIter/0/U    |  36 ++++++
 microbenchmarks/cavity-3d/1M/fixedIter/0/p    |  34 ++++++
 .../cavity-3d/1M/fixedIter/Allclean           |   8 ++
 microbenchmarks/cavity-3d/1M/fixedIter/Allpre |  11 ++
 microbenchmarks/cavity-3d/1M/fixedIter/Allrun |   9 ++
 .../1M/fixedIter/constant/transportProperties |  20 ++++
 .../1M/fixedIter/system/blockMeshDict         |  68 +++++++++++
 .../cavity-3d/1M/fixedIter/system/controlDict |  48 ++++++++
 .../1M/fixedIter/system/decomposeParDict      |  23 ++++
 .../cavity-3d/1M/fixedIter/system/fvSchemes   |  51 ++++++++
 .../cavity-3d/1M/fixedIter/system/fvSolution  |  55 +++++++++
 microbenchmarks/cavity-3d/1M/fixedTol/0/U     |  36 ++++++
 microbenchmarks/cavity-3d/1M/fixedTol/0/p     |  34 ++++++
 .../cavity-3d/1M/fixedTol/Allclean            |   8 ++
 microbenchmarks/cavity-3d/1M/fixedTol/Allpre  |  11 ++
 microbenchmarks/cavity-3d/1M/fixedTol/Allrun  |  10 ++
 .../1M/fixedTol/constant/transportProperties  |  20 ++++
 .../1M/fixedTol/system/blockMeshDict          |  68 +++++++++++
 .../cavity-3d/1M/fixedTol/system/controlDict  |  48 ++++++++
 .../1M/fixedTol/system/decomposeParDict       |  23 ++++
 .../cavity-3d/1M/fixedTol/system/fvSchemes    |  51 ++++++++
 .../cavity-3d/1M/fixedTol/system/fvSolution   |  55 +++++++++
 microbenchmarks/cavity-3d/64M/fixedIter/0/U   |  36 ++++++
 microbenchmarks/cavity-3d/64M/fixedIter/0/p   |  34 ++++++
 .../cavity-3d/64M/fixedIter/Allclean          |   8 ++
 .../cavity-3d/64M/fixedIter/Allpre            |  11 ++
 .../cavity-3d/64M/fixedIter/Allrun            |   9 ++
 .../fixedIter/constant/transportProperties    |  20 ++++
 .../64M/fixedIter/system/blockMeshDict        |  68 +++++++++++
 .../64M/fixedIter/system/controlDict          |  48 ++++++++
 .../64M/fixedIter/system/decomposeParDict     |  23 ++++
 .../cavity-3d/64M/fixedIter/system/fvSchemes  |  51 ++++++++
 .../cavity-3d/64M/fixedIter/system/fvSolution |  55 +++++++++
 microbenchmarks/cavity-3d/64M/fixedTol/0/U    |  36 ++++++
 microbenchmarks/cavity-3d/64M/fixedTol/0/p    |  34 ++++++
 .../cavity-3d/64M/fixedTol/Allclean           |   8 ++
 microbenchmarks/cavity-3d/64M/fixedTol/Allpre |  11 ++
 microbenchmarks/cavity-3d/64M/fixedTol/Allrun |  10 ++
 .../64M/fixedTol/constant/transportProperties |  20 ++++
 .../64M/fixedTol/system/blockMeshDict         |  68 +++++++++++
 .../cavity-3d/64M/fixedTol/system/controlDict |  48 ++++++++
 .../64M/fixedTol/system/decomposeParDict      |  23 ++++
 .../cavity-3d/64M/fixedTol/system/fvSchemes   |  51 ++++++++
 .../cavity-3d/64M/fixedTol/system/fvSolution  |  55 +++++++++
 microbenchmarks/cavity-3d/8M/fixedIter/0/U    |  36 ++++++
 microbenchmarks/cavity-3d/8M/fixedIter/0/p    |  34 ++++++
 .../cavity-3d/8M/fixedIter/Allclean           |   8 ++
 microbenchmarks/cavity-3d/8M/fixedIter/Allpre |  11 ++
 microbenchmarks/cavity-3d/8M/fixedIter/Allrun |   9 ++
 .../8M/fixedIter/constant/transportProperties |  20 ++++
 .../8M/fixedIter/system/blockMeshDict         |  68 +++++++++++
 .../cavity-3d/8M/fixedIter/system/controlDict |  48 ++++++++
 .../8M/fixedIter/system/decomposeParDict      |  23 ++++
 .../cavity-3d/8M/fixedIter/system/fvSchemes   |  51 ++++++++
 .../cavity-3d/8M/fixedIter/system/fvSolution  |  55 +++++++++
 microbenchmarks/cavity-3d/8M/fixedTol/0/U     |  36 ++++++
 microbenchmarks/cavity-3d/8M/fixedTol/0/p     |  34 ++++++
 .../cavity-3d/8M/fixedTol/Allclean            |   8 ++
 microbenchmarks/cavity-3d/8M/fixedTol/Allpre  |  11 ++
 microbenchmarks/cavity-3d/8M/fixedTol/Allrun  |  10 ++
 .../8M/fixedTol/constant/transportProperties  |  20 ++++
 .../8M/fixedTol/system/blockMeshDict          |  68 +++++++++++
 .../cavity-3d/8M/fixedTol/system/controlDict  |  48 ++++++++
 .../8M/fixedTol/system/decomposeParDict       |  23 ++++
 .../cavity-3d/8M/fixedTol/system/fvSchemes    |  51 ++++++++
 .../cavity-3d/8M/fixedTol/system/fvSolution   |  55 +++++++++
 microbenchmarks/cavity-3d/README.md           |  84 +++++++++++++
 .../cavity-3d/evalLogCalcFixedIter.py         | 110 ++++++++++++++++++
 68 files changed, 2375 insertions(+)
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedIter/0/U
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedIter/0/p
 create mode 100755 microbenchmarks/cavity-3d/1M/fixedIter/Allclean
 create mode 100755 microbenchmarks/cavity-3d/1M/fixedIter/Allpre
 create mode 100755 microbenchmarks/cavity-3d/1M/fixedIter/Allrun
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedIter/constant/transportProperties
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedIter/system/blockMeshDict
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedIter/system/controlDict
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedIter/system/decomposeParDict
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedIter/system/fvSchemes
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedIter/system/fvSolution
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedTol/0/U
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedTol/0/p
 create mode 100755 microbenchmarks/cavity-3d/1M/fixedTol/Allclean
 create mode 100755 microbenchmarks/cavity-3d/1M/fixedTol/Allpre
 create mode 100755 microbenchmarks/cavity-3d/1M/fixedTol/Allrun
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedTol/constant/transportProperties
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedTol/system/blockMeshDict
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedTol/system/controlDict
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedTol/system/decomposeParDict
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedTol/system/fvSchemes
 create mode 100644 microbenchmarks/cavity-3d/1M/fixedTol/system/fvSolution
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedIter/0/U
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedIter/0/p
 create mode 100755 microbenchmarks/cavity-3d/64M/fixedIter/Allclean
 create mode 100755 microbenchmarks/cavity-3d/64M/fixedIter/Allpre
 create mode 100755 microbenchmarks/cavity-3d/64M/fixedIter/Allrun
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedIter/constant/transportProperties
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedIter/system/blockMeshDict
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedIter/system/controlDict
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedIter/system/decomposeParDict
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedIter/system/fvSchemes
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedIter/system/fvSolution
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedTol/0/U
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedTol/0/p
 create mode 100755 microbenchmarks/cavity-3d/64M/fixedTol/Allclean
 create mode 100755 microbenchmarks/cavity-3d/64M/fixedTol/Allpre
 create mode 100755 microbenchmarks/cavity-3d/64M/fixedTol/Allrun
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedTol/constant/transportProperties
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedTol/system/blockMeshDict
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedTol/system/controlDict
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedTol/system/decomposeParDict
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedTol/system/fvSchemes
 create mode 100644 microbenchmarks/cavity-3d/64M/fixedTol/system/fvSolution
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedIter/0/U
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedIter/0/p
 create mode 100755 microbenchmarks/cavity-3d/8M/fixedIter/Allclean
 create mode 100755 microbenchmarks/cavity-3d/8M/fixedIter/Allpre
 create mode 100755 microbenchmarks/cavity-3d/8M/fixedIter/Allrun
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedIter/constant/transportProperties
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedIter/system/blockMeshDict
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedIter/system/controlDict
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedIter/system/decomposeParDict
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedIter/system/fvSchemes
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedIter/system/fvSolution
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedTol/0/U
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedTol/0/p
 create mode 100755 microbenchmarks/cavity-3d/8M/fixedTol/Allclean
 create mode 100755 microbenchmarks/cavity-3d/8M/fixedTol/Allpre
 create mode 100755 microbenchmarks/cavity-3d/8M/fixedTol/Allrun
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedTol/constant/transportProperties
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedTol/system/blockMeshDict
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedTol/system/controlDict
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedTol/system/decomposeParDict
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedTol/system/fvSchemes
 create mode 100644 microbenchmarks/cavity-3d/8M/fixedTol/system/fvSolution
 create mode 100644 microbenchmarks/cavity-3d/README.md
 create mode 100644 microbenchmarks/cavity-3d/evalLogCalcFixedIter.py

diff --git a/microbenchmarks/cavity-3d/1M/fixedIter/0/U b/microbenchmarks/cavity-3d/1M/fixedIter/0/U
new file mode 100644
index 0000000..8b72f14
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedIter/0/U
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    movingWall
+    {
+        type            fixedValue;
+        value           uniform (1 0 0);
+    }
+
+    fixedWalls
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+}
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedIter/0/p b/microbenchmarks/cavity-3d/1M/fixedIter/0/p
new file mode 100644
index 0000000..cfbf907
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedIter/0/p
@@ -0,0 +1,34 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    movingWall
+    {
+        type            zeroGradient;
+    }
+
+    fixedWalls
+    {
+        type            zeroGradient;
+    }
+}
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedIter/Allclean b/microbenchmarks/cavity-3d/1M/fixedIter/Allclean
new file mode 100755
index 0000000..426e7ad
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedIter/Allclean
@@ -0,0 +1,8 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions      # Tutorial clean functions
+#------------------------------------------------------------------------------
+
+cleanCase
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/1M/fixedIter/Allpre b/microbenchmarks/cavity-3d/1M/fixedIter/Allpre
new file mode 100755
index 0000000..4ecd50e
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedIter/Allpre
@@ -0,0 +1,11 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+runApplication blockMesh
+runApplication decomposePar
+runParallel renumberMesh -overwrite
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/1M/fixedIter/Allrun b/microbenchmarks/cavity-3d/1M/fixedIter/Allrun
new file mode 100755
index 0000000..40fd53d
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedIter/Allrun
@@ -0,0 +1,9 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions        # Tutorial run functions
+#------------------------------------------------------------------------------
+
+./Allpre
+runParallel $(getApplication)
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/1M/fixedIter/constant/transportProperties b/microbenchmarks/cavity-3d/1M/fixedIter/constant/transportProperties
new file mode 100644
index 0000000..6cc2c83
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedIter/constant/transportProperties
@@ -0,0 +1,20 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+nu              [0 2 -1 0 0 0 0] 0.01;
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedIter/system/blockMeshDict b/microbenchmarks/cavity-3d/1M/fixedIter/system/blockMeshDict
new file mode 100644
index 0000000..f404d96
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedIter/system/blockMeshDict
@@ -0,0 +1,68 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+scale   0.1;
+
+vertices
+(
+    (0 0 0)
+    (1 0 0)
+    (1 1 0)
+    (0 1 0)
+    (0 0 1)
+    (1 0 1)
+    (1 1 1)
+    (0 1 1)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (100 100 100) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    movingWall
+    {
+        type wall;
+        faces
+        (
+            (3 7 6 2)
+        );
+    }
+    fixedWalls
+    {
+        type wall;
+        faces
+        (
+            (0 4 7 3)
+            (2 6 5 1)
+            (1 5 4 0)
+            (0 3 2 1)
+            (4 5 6 7)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedIter/system/controlDict b/microbenchmarks/cavity-3d/1M/fixedIter/system/controlDict
new file mode 100644
index 0000000..e41b0c8
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedIter/system/controlDict
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     icoFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         0.015;
+
+deltaT          0.001;
+
+writeControl    timeStep;
+
+writeInterval   1000000;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedIter/system/decomposeParDict b/microbenchmarks/cavity-3d/1M/fixedIter/system/decomposeParDict
new file mode 100644
index 0000000..406905f
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedIter/system/decomposeParDict
@@ -0,0 +1,23 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 32;
+
+method          scotch;
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedIter/system/fvSchemes b/microbenchmarks/cavity-3d/1M/fixedIter/system/fvSchemes
new file mode 100644
index 0000000..aad7c1e
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedIter/system/fvSchemes
@@ -0,0 +1,51 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+    grad(p)         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+    div(phi,U)      Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear orthogonal;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         orthogonal;
+}
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedIter/system/fvSolution b/microbenchmarks/cavity-3d/1M/fixedIter/system/fvSolution
new file mode 100644
index 0000000..dafd3b0
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedIter/system/fvSolution
@@ -0,0 +1,55 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    p
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       0;
+        relTol          0;
+        maxIter         67;
+    }
+
+    pFinal
+    {
+        $p;
+        relTol          0;
+    }
+
+    U
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       0;
+        relTol          0;
+        maxIter         0;
+    }
+}
+
+PISO
+{
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 0;
+    momentumPredictor no;
+    pRefCell        0;
+    pRefValue       0;
+}
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedTol/0/U b/microbenchmarks/cavity-3d/1M/fixedTol/0/U
new file mode 100644
index 0000000..8b72f14
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedTol/0/U
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    movingWall
+    {
+        type            fixedValue;
+        value           uniform (1 0 0);
+    }
+
+    fixedWalls
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+}
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedTol/0/p b/microbenchmarks/cavity-3d/1M/fixedTol/0/p
new file mode 100644
index 0000000..cfbf907
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedTol/0/p
@@ -0,0 +1,34 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    movingWall
+    {
+        type            zeroGradient;
+    }
+
+    fixedWalls
+    {
+        type            zeroGradient;
+    }
+}
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedTol/Allclean b/microbenchmarks/cavity-3d/1M/fixedTol/Allclean
new file mode 100755
index 0000000..426e7ad
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedTol/Allclean
@@ -0,0 +1,8 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions      # Tutorial clean functions
+#------------------------------------------------------------------------------
+
+cleanCase
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/1M/fixedTol/Allpre b/microbenchmarks/cavity-3d/1M/fixedTol/Allpre
new file mode 100755
index 0000000..4ecd50e
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedTol/Allpre
@@ -0,0 +1,11 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+runApplication blockMesh
+runApplication decomposePar
+runParallel renumberMesh -overwrite
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/1M/fixedTol/Allrun b/microbenchmarks/cavity-3d/1M/fixedTol/Allrun
new file mode 100755
index 0000000..caa1814
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedTol/Allrun
@@ -0,0 +1,10 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions        # Tutorial run functions
+#------------------------------------------------------------------------------
+
+./Allpre
+runParallel $(getApplication)
+runApplication python3 ../../evalLogCalcFixedIter.py log.$(getApplication)
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/1M/fixedTol/constant/transportProperties b/microbenchmarks/cavity-3d/1M/fixedTol/constant/transportProperties
new file mode 100644
index 0000000..6cc2c83
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedTol/constant/transportProperties
@@ -0,0 +1,20 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+nu              [0 2 -1 0 0 0 0] 0.01;
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedTol/system/blockMeshDict b/microbenchmarks/cavity-3d/1M/fixedTol/system/blockMeshDict
new file mode 100644
index 0000000..f404d96
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedTol/system/blockMeshDict
@@ -0,0 +1,68 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+scale   0.1;
+
+vertices
+(
+    (0 0 0)
+    (1 0 0)
+    (1 1 0)
+    (0 1 0)
+    (0 0 1)
+    (1 0 1)
+    (1 1 1)
+    (0 1 1)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (100 100 100) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    movingWall
+    {
+        type wall;
+        faces
+        (
+            (3 7 6 2)
+        );
+    }
+    fixedWalls
+    {
+        type wall;
+        faces
+        (
+            (0 4 7 3)
+            (2 6 5 1)
+            (1 5 4 0)
+            (0 3 2 1)
+            (4 5 6 7)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedTol/system/controlDict b/microbenchmarks/cavity-3d/1M/fixedTol/system/controlDict
new file mode 100644
index 0000000..61215bf
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedTol/system/controlDict
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     icoFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         0.015;
+
+deltaT          0.001;
+
+writeControl    timeStep;
+
+writeInterval   10000;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedTol/system/decomposeParDict b/microbenchmarks/cavity-3d/1M/fixedTol/system/decomposeParDict
new file mode 100644
index 0000000..406905f
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedTol/system/decomposeParDict
@@ -0,0 +1,23 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 32;
+
+method          scotch;
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedTol/system/fvSchemes b/microbenchmarks/cavity-3d/1M/fixedTol/system/fvSchemes
new file mode 100644
index 0000000..aad7c1e
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedTol/system/fvSchemes
@@ -0,0 +1,51 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+    grad(p)         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+    div(phi,U)      Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear orthogonal;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         orthogonal;
+}
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/1M/fixedTol/system/fvSolution b/microbenchmarks/cavity-3d/1M/fixedTol/system/fvSolution
new file mode 100644
index 0000000..ec1ea46
--- /dev/null
+++ b/microbenchmarks/cavity-3d/1M/fixedTol/system/fvSolution
@@ -0,0 +1,55 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    p
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-5;
+        relTol          0.05;
+        maxIter         3000;
+    }
+
+    pFinal
+    {
+        $p;
+        relTol          0;
+    }
+
+    U
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       1e-6;
+        relTol          0;
+        maxIter         0;
+    }
+}
+
+PISO
+{
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 0;
+    momentumPredictor no;
+    pRefCell        0;
+    pRefValue       0;
+}
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedIter/0/U b/microbenchmarks/cavity-3d/64M/fixedIter/0/U
new file mode 100644
index 0000000..8b72f14
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedIter/0/U
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    movingWall
+    {
+        type            fixedValue;
+        value           uniform (1 0 0);
+    }
+
+    fixedWalls
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+}
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedIter/0/p b/microbenchmarks/cavity-3d/64M/fixedIter/0/p
new file mode 100644
index 0000000..cfbf907
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedIter/0/p
@@ -0,0 +1,34 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    movingWall
+    {
+        type            zeroGradient;
+    }
+
+    fixedWalls
+    {
+        type            zeroGradient;
+    }
+}
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedIter/Allclean b/microbenchmarks/cavity-3d/64M/fixedIter/Allclean
new file mode 100755
index 0000000..426e7ad
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedIter/Allclean
@@ -0,0 +1,8 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions      # Tutorial clean functions
+#------------------------------------------------------------------------------
+
+cleanCase
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/64M/fixedIter/Allpre b/microbenchmarks/cavity-3d/64M/fixedIter/Allpre
new file mode 100755
index 0000000..4ecd50e
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedIter/Allpre
@@ -0,0 +1,11 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+runApplication blockMesh
+runApplication decomposePar
+runParallel renumberMesh -overwrite
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/64M/fixedIter/Allrun b/microbenchmarks/cavity-3d/64M/fixedIter/Allrun
new file mode 100755
index 0000000..40fd53d
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedIter/Allrun
@@ -0,0 +1,9 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions        # Tutorial run functions
+#------------------------------------------------------------------------------
+
+./Allpre
+runParallel $(getApplication)
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/64M/fixedIter/constant/transportProperties b/microbenchmarks/cavity-3d/64M/fixedIter/constant/transportProperties
new file mode 100644
index 0000000..6cc2c83
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedIter/constant/transportProperties
@@ -0,0 +1,20 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+nu              [0 2 -1 0 0 0 0] 0.01;
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedIter/system/blockMeshDict b/microbenchmarks/cavity-3d/64M/fixedIter/system/blockMeshDict
new file mode 100644
index 0000000..8714ea7
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedIter/system/blockMeshDict
@@ -0,0 +1,68 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+scale   0.1;
+
+vertices
+(
+    (0 0 0)
+    (1 0 0)
+    (1 1 0)
+    (0 1 0)
+    (0 0 1)
+    (1 0 1)
+    (1 1 1)
+    (0 1 1)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (400 400 400) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    movingWall
+    {
+        type wall;
+        faces
+        (
+            (3 7 6 2)
+        );
+    }
+    fixedWalls
+    {
+        type wall;
+        faces
+        (
+            (0 4 7 3)
+            (2 6 5 1)
+            (1 5 4 0)
+            (0 3 2 1)
+            (4 5 6 7)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedIter/system/controlDict b/microbenchmarks/cavity-3d/64M/fixedIter/system/controlDict
new file mode 100644
index 0000000..7e2f3c1
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedIter/system/controlDict
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     icoFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         0.00375;
+
+deltaT          0.00025;
+
+writeControl    timeStep;
+
+writeInterval   1000000;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedIter/system/decomposeParDict b/microbenchmarks/cavity-3d/64M/fixedIter/system/decomposeParDict
new file mode 100644
index 0000000..fa8d51f
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedIter/system/decomposeParDict
@@ -0,0 +1,23 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 1028;
+
+method          scotch;
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedIter/system/fvSchemes b/microbenchmarks/cavity-3d/64M/fixedIter/system/fvSchemes
new file mode 100644
index 0000000..aad7c1e
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedIter/system/fvSchemes
@@ -0,0 +1,51 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+    grad(p)         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+    div(phi,U)      Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear orthogonal;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         orthogonal;
+}
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedIter/system/fvSolution b/microbenchmarks/cavity-3d/64M/fixedIter/system/fvSolution
new file mode 100644
index 0000000..833506d
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedIter/system/fvSolution
@@ -0,0 +1,55 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    p
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       0;
+        relTol          0;
+        maxIter         321;
+    }
+
+    pFinal
+    {
+        $p;
+        relTol          0;
+    }
+
+    U
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       0;
+        relTol          0;
+        maxIter         0;
+    }
+}
+
+PISO
+{
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 0;
+    momentumPredictor no;
+    pRefCell        0;
+    pRefValue       0;
+}
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedTol/0/U b/microbenchmarks/cavity-3d/64M/fixedTol/0/U
new file mode 100644
index 0000000..8b72f14
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedTol/0/U
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    movingWall
+    {
+        type            fixedValue;
+        value           uniform (1 0 0);
+    }
+
+    fixedWalls
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+}
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedTol/0/p b/microbenchmarks/cavity-3d/64M/fixedTol/0/p
new file mode 100644
index 0000000..cfbf907
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedTol/0/p
@@ -0,0 +1,34 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    movingWall
+    {
+        type            zeroGradient;
+    }
+
+    fixedWalls
+    {
+        type            zeroGradient;
+    }
+}
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedTol/Allclean b/microbenchmarks/cavity-3d/64M/fixedTol/Allclean
new file mode 100755
index 0000000..426e7ad
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedTol/Allclean
@@ -0,0 +1,8 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions      # Tutorial clean functions
+#------------------------------------------------------------------------------
+
+cleanCase
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/64M/fixedTol/Allpre b/microbenchmarks/cavity-3d/64M/fixedTol/Allpre
new file mode 100755
index 0000000..4ecd50e
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedTol/Allpre
@@ -0,0 +1,11 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+runApplication blockMesh
+runApplication decomposePar
+runParallel renumberMesh -overwrite
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/64M/fixedTol/Allrun b/microbenchmarks/cavity-3d/64M/fixedTol/Allrun
new file mode 100755
index 0000000..caa1814
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedTol/Allrun
@@ -0,0 +1,10 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions        # Tutorial run functions
+#------------------------------------------------------------------------------
+
+./Allpre
+runParallel $(getApplication)
+runApplication python3 ../../evalLogCalcFixedIter.py log.$(getApplication)
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/64M/fixedTol/constant/transportProperties b/microbenchmarks/cavity-3d/64M/fixedTol/constant/transportProperties
new file mode 100644
index 0000000..6cc2c83
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedTol/constant/transportProperties
@@ -0,0 +1,20 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+nu              [0 2 -1 0 0 0 0] 0.01;
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedTol/system/blockMeshDict b/microbenchmarks/cavity-3d/64M/fixedTol/system/blockMeshDict
new file mode 100644
index 0000000..8714ea7
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedTol/system/blockMeshDict
@@ -0,0 +1,68 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+scale   0.1;
+
+vertices
+(
+    (0 0 0)
+    (1 0 0)
+    (1 1 0)
+    (0 1 0)
+    (0 0 1)
+    (1 0 1)
+    (1 1 1)
+    (0 1 1)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (400 400 400) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    movingWall
+    {
+        type wall;
+        faces
+        (
+            (3 7 6 2)
+        );
+    }
+    fixedWalls
+    {
+        type wall;
+        faces
+        (
+            (0 4 7 3)
+            (2 6 5 1)
+            (1 5 4 0)
+            (0 3 2 1)
+            (4 5 6 7)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedTol/system/controlDict b/microbenchmarks/cavity-3d/64M/fixedTol/system/controlDict
new file mode 100644
index 0000000..7e2f3c1
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedTol/system/controlDict
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     icoFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         0.00375;
+
+deltaT          0.00025;
+
+writeControl    timeStep;
+
+writeInterval   1000000;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedTol/system/decomposeParDict b/microbenchmarks/cavity-3d/64M/fixedTol/system/decomposeParDict
new file mode 100644
index 0000000..fa8d51f
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedTol/system/decomposeParDict
@@ -0,0 +1,23 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 1028;
+
+method          scotch;
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedTol/system/fvSchemes b/microbenchmarks/cavity-3d/64M/fixedTol/system/fvSchemes
new file mode 100644
index 0000000..aad7c1e
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedTol/system/fvSchemes
@@ -0,0 +1,51 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+    grad(p)         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+    div(phi,U)      Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear orthogonal;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         orthogonal;
+}
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/64M/fixedTol/system/fvSolution b/microbenchmarks/cavity-3d/64M/fixedTol/system/fvSolution
new file mode 100644
index 0000000..ec1ea46
--- /dev/null
+++ b/microbenchmarks/cavity-3d/64M/fixedTol/system/fvSolution
@@ -0,0 +1,55 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    p
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-5;
+        relTol          0.05;
+        maxIter         3000;
+    }
+
+    pFinal
+    {
+        $p;
+        relTol          0;
+    }
+
+    U
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       1e-6;
+        relTol          0;
+        maxIter         0;
+    }
+}
+
+PISO
+{
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 0;
+    momentumPredictor no;
+    pRefCell        0;
+    pRefValue       0;
+}
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedIter/0/U b/microbenchmarks/cavity-3d/8M/fixedIter/0/U
new file mode 100644
index 0000000..8b72f14
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedIter/0/U
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    movingWall
+    {
+        type            fixedValue;
+        value           uniform (1 0 0);
+    }
+
+    fixedWalls
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+}
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedIter/0/p b/microbenchmarks/cavity-3d/8M/fixedIter/0/p
new file mode 100644
index 0000000..cfbf907
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedIter/0/p
@@ -0,0 +1,34 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    movingWall
+    {
+        type            zeroGradient;
+    }
+
+    fixedWalls
+    {
+        type            zeroGradient;
+    }
+}
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedIter/Allclean b/microbenchmarks/cavity-3d/8M/fixedIter/Allclean
new file mode 100755
index 0000000..426e7ad
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedIter/Allclean
@@ -0,0 +1,8 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions      # Tutorial clean functions
+#------------------------------------------------------------------------------
+
+cleanCase
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/8M/fixedIter/Allpre b/microbenchmarks/cavity-3d/8M/fixedIter/Allpre
new file mode 100755
index 0000000..4ecd50e
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedIter/Allpre
@@ -0,0 +1,11 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+runApplication blockMesh
+runApplication decomposePar
+runParallel renumberMesh -overwrite
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/8M/fixedIter/Allrun b/microbenchmarks/cavity-3d/8M/fixedIter/Allrun
new file mode 100755
index 0000000..40fd53d
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedIter/Allrun
@@ -0,0 +1,9 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions        # Tutorial run functions
+#------------------------------------------------------------------------------
+
+./Allpre
+runParallel $(getApplication)
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/8M/fixedIter/constant/transportProperties b/microbenchmarks/cavity-3d/8M/fixedIter/constant/transportProperties
new file mode 100644
index 0000000..6cc2c83
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedIter/constant/transportProperties
@@ -0,0 +1,20 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+nu              [0 2 -1 0 0 0 0] 0.01;
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedIter/system/blockMeshDict b/microbenchmarks/cavity-3d/8M/fixedIter/system/blockMeshDict
new file mode 100644
index 0000000..03cb241
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedIter/system/blockMeshDict
@@ -0,0 +1,68 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+scale   0.1;
+
+vertices
+(
+    (0 0 0)
+    (1 0 0)
+    (1 1 0)
+    (0 1 0)
+    (0 0 1)
+    (1 0 1)
+    (1 1 1)
+    (0 1 1)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (200 200 200) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    movingWall
+    {
+        type wall;
+        faces
+        (
+            (3 7 6 2)
+        );
+    }
+    fixedWalls
+    {
+        type wall;
+        faces
+        (
+            (0 4 7 3)
+            (2 6 5 1)
+            (1 5 4 0)
+            (0 3 2 1)
+            (4 5 6 7)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedIter/system/controlDict b/microbenchmarks/cavity-3d/8M/fixedIter/system/controlDict
new file mode 100644
index 0000000..f7663ae
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedIter/system/controlDict
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     icoFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         0.0075;
+
+deltaT          0.0005;
+
+writeControl    timeStep;
+
+writeInterval   1000000;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedIter/system/decomposeParDict b/microbenchmarks/cavity-3d/8M/fixedIter/system/decomposeParDict
new file mode 100644
index 0000000..406905f
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedIter/system/decomposeParDict
@@ -0,0 +1,23 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 32;
+
+method          scotch;
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedIter/system/fvSchemes b/microbenchmarks/cavity-3d/8M/fixedIter/system/fvSchemes
new file mode 100644
index 0000000..aad7c1e
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedIter/system/fvSchemes
@@ -0,0 +1,51 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+    grad(p)         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+    div(phi,U)      Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear orthogonal;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         orthogonal;
+}
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedIter/system/fvSolution b/microbenchmarks/cavity-3d/8M/fixedIter/system/fvSolution
new file mode 100644
index 0000000..30aed8c
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedIter/system/fvSolution
@@ -0,0 +1,55 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    p
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       0;
+        relTol          0;
+        maxIter         116;
+    }
+
+    pFinal
+    {
+        $p;
+        relTol          0;
+    }
+
+    U
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       0;
+        relTol          0;
+        maxIter         0;
+    }
+}
+
+PISO
+{
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 0;
+    momentumPredictor no;
+    pRefCell        0;
+    pRefValue       0;
+}
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedTol/0/U b/microbenchmarks/cavity-3d/8M/fixedTol/0/U
new file mode 100644
index 0000000..8b72f14
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedTol/0/U
@@ -0,0 +1,36 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    movingWall
+    {
+        type            fixedValue;
+        value           uniform (1 0 0);
+    }
+
+    fixedWalls
+    {
+        type            fixedValue;
+        value           uniform (0 0 0);
+    }
+}
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedTol/0/p b/microbenchmarks/cavity-3d/8M/fixedTol/0/p
new file mode 100644
index 0000000..cfbf907
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedTol/0/p
@@ -0,0 +1,34 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -2 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    movingWall
+    {
+        type            zeroGradient;
+    }
+
+    fixedWalls
+    {
+        type            zeroGradient;
+    }
+}
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedTol/Allclean b/microbenchmarks/cavity-3d/8M/fixedTol/Allclean
new file mode 100755
index 0000000..426e7ad
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedTol/Allclean
@@ -0,0 +1,8 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions      # Tutorial clean functions
+#------------------------------------------------------------------------------
+
+cleanCase
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/8M/fixedTol/Allpre b/microbenchmarks/cavity-3d/8M/fixedTol/Allpre
new file mode 100755
index 0000000..4ecd50e
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedTol/Allpre
@@ -0,0 +1,11 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+# Source tutorial run functions
+. $WM_PROJECT_DIR/bin/tools/RunFunctions
+
+runApplication blockMesh
+runApplication decomposePar
+runParallel renumberMesh -overwrite
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/8M/fixedTol/Allrun b/microbenchmarks/cavity-3d/8M/fixedTol/Allrun
new file mode 100755
index 0000000..caa1814
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedTol/Allrun
@@ -0,0 +1,10 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions        # Tutorial run functions
+#------------------------------------------------------------------------------
+
+./Allpre
+runParallel $(getApplication)
+runApplication python3 ../../evalLogCalcFixedIter.py log.$(getApplication)
+
+#------------------------------------------------------------------------------
diff --git a/microbenchmarks/cavity-3d/8M/fixedTol/constant/transportProperties b/microbenchmarks/cavity-3d/8M/fixedTol/constant/transportProperties
new file mode 100644
index 0000000..6cc2c83
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedTol/constant/transportProperties
@@ -0,0 +1,20 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      transportProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+nu              [0 2 -1 0 0 0 0] 0.01;
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedTol/system/blockMeshDict b/microbenchmarks/cavity-3d/8M/fixedTol/system/blockMeshDict
new file mode 100644
index 0000000..03cb241
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedTol/system/blockMeshDict
@@ -0,0 +1,68 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+scale   0.1;
+
+vertices
+(
+    (0 0 0)
+    (1 0 0)
+    (1 1 0)
+    (0 1 0)
+    (0 0 1)
+    (1 0 1)
+    (1 1 1)
+    (0 1 1)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (200 200 200) simpleGrading (1 1 1)
+);
+
+edges
+(
+);
+
+boundary
+(
+    movingWall
+    {
+        type wall;
+        faces
+        (
+            (3 7 6 2)
+        );
+    }
+    fixedWalls
+    {
+        type wall;
+        faces
+        (
+            (0 4 7 3)
+            (2 6 5 1)
+            (1 5 4 0)
+            (0 3 2 1)
+            (4 5 6 7)
+        );
+    }
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedTol/system/controlDict b/microbenchmarks/cavity-3d/8M/fixedTol/system/controlDict
new file mode 100644
index 0000000..f7663ae
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedTol/system/controlDict
@@ -0,0 +1,48 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     icoFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         0.0075;
+
+deltaT          0.0005;
+
+writeControl    timeStep;
+
+writeInterval   1000000;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedTol/system/decomposeParDict b/microbenchmarks/cavity-3d/8M/fixedTol/system/decomposeParDict
new file mode 100644
index 0000000..406905f
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedTol/system/decomposeParDict
@@ -0,0 +1,23 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 32;
+
+method          scotch;
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedTol/system/fvSchemes b/microbenchmarks/cavity-3d/8M/fixedTol/system/fvSchemes
new file mode 100644
index 0000000..aad7c1e
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedTol/system/fvSchemes
@@ -0,0 +1,51 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+    grad(p)         Gauss linear;
+}
+
+divSchemes
+{
+    default         none;
+    div(phi,U)      Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear orthogonal;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         orthogonal;
+}
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/8M/fixedTol/system/fvSolution b/microbenchmarks/cavity-3d/8M/fixedTol/system/fvSolution
new file mode 100644
index 0000000..ec1ea46
--- /dev/null
+++ b/microbenchmarks/cavity-3d/8M/fixedTol/system/fvSolution
@@ -0,0 +1,55 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2006                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    p
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-5;
+        relTol          0.05;
+        maxIter         3000;
+    }
+
+    pFinal
+    {
+        $p;
+        relTol          0;
+    }
+
+    U
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       1e-6;
+        relTol          0;
+        maxIter         0;
+    }
+}
+
+PISO
+{
+    nCorrectors     2;
+    nNonOrthogonalCorrectors 0;
+    momentumPredictor no;
+    pRefCell        0;
+    pRefValue       0;
+}
+
+
+// ************************************************************************* //
diff --git a/microbenchmarks/cavity-3d/README.md b/microbenchmarks/cavity-3d/README.md
new file mode 100644
index 0000000..9f03119
--- /dev/null
+++ b/microbenchmarks/cavity-3d/README.md
@@ -0,0 +1,84 @@
+# Motivation
+## Why cavity?
+Key reasons for using the lid driven cavity (referred to as "cavity" in the following) as a microbenchmark are
+* Cavity is one of the most basic and popular cases in OpenFOAM and for the validation in CFD
+* Results for scaling are available because the present setup is based on the white paper: 
+	“PETSc4FOAM : A Library to plug-in PETSc into the OpenFOAM Framework”, Simone Bnà, Ivan Spisso, Mark Olesen, Giacomo Rossi
+
+## Standard case
+The standard cavity case setup does not meet the microbenchmark requirements because of the following issues.
+* The case is not stationary. It deals with the start-up of the flow meaning that the flow starts to develop from 0m/s at t=0s until it reaches a stationary state. The stationary state is reached after 1s, which corresponds to the lid 10 times passing by, according to the white paper mentioned above. For the smallest mesh with 1 Mio cells (1M) with the Courant number 1 (Co=1) this leads to 1000 time steps, which is not feasible for a microbenchmark.
+* The iteration number of the linear solver per time step n_iter differs for every time step if tolerance is setup as the convergence criterion. The iteration number also fluctuates significantly, whereby on average it decreases during the run and reaches a certain plateau at some point (for 1M case after 0.34s).
+* The iteration number n_iter is also dependent on the mesh size and the decomposition.
+
+## Adjusting to a microbenchmark
+Considering the above arguments the case is altered. It has to be adapted to the profiling requirements meaning that a compromise between the fast execution, representativeness, repeatability and simple handling needs to be achieved:
+* Fast execution: A single run consists of 15 time steps.
+* Repeatability: During the profiling run the iteration number of the linear solver is fixed.
+* Simple handling:
+	* Start at t=0s, no restart file.
+	*  The iteration number is the same for a mesh of a certain size independent of the decomposition.
+* Representativeness: The present cavity case aims to reproduce the solver behavior from t=0s up to the point where the iteration number reaches the plateau mentioned above. This time point differs for different mesh sizes, which is accounted for in the provided benchmark. In this way, the case is representative for the initial transient of the cavity case.
+
+
+# General overview
+Important characteristics of the case are summarized here.
+* The case is 3D. The original 2D case is extruded up to a cube, the front and the back boundaries are walls.
+* The Reynolds number is 10.
+* The momentum predictor is switched off since it is counterproductive for low Reynolds number flows when the PISO algorithm is used.
+* The cases are setup to run at Co=1 (CFL number). If mesh size is changed, adjust the time step in 'controlDict' to keep Co=1.
+* The cases are setup to run for 15 time steps, which produces meaningful statistics for the wall clock time (see section "Methodology" for details).
+* Three cases are provided. These differ in the time step and mesh size (the name provides the number of cells, e.g. "8M" stands for 8 Mio cells).
+* Each case includes two setups:
+	* *fixedTol* : the tolerance of the linear solver is fixed
+	* *fixedIter* : the iteration number of the linear solver is fixed	
+* Only *fixedIter* setup should be used for profiling.
+* `renumberMesh` utility is used to reduce the bandwidth of the matrix.
+
+
+# Instructions
+One of the major issues of the cavity test case is the fact that the  iteration number of the linear solver grows with increasing mesh size if the linear solver tolerance is set. Thus, the two following approaches are possible.
+
+## Mesh size unchanged
+If one of the provided cases is used without changes, only *fixedIter* setup is utilized. Simply run the Allrun script. For example:
+1. `cd 1M/fixedIter`
+2. `./Allrun`
+
+## Mesh size changed
+If the mesh size is changed an additional run with *fixedTol* needs to be performed to determine an iteration number which is representative for the case. The procedure is the following.
+1. Adjust the time step in 'controlDict' of bothe setups *fixedTol* and *fixedIter* to keep Co=1.
+2. Run with the fixed tolerance for p: 1e-5 (*fixedTol*). The solver will run for 15 time steps. A python script analyzes the solver log file and computes the extrapolated representative mean iteration number `iter_run` needed for the next step, which is saved in 'log.python3'. E.g. for 1M case:
+	1. `cd 1M/fixedTol`
+	2. `./Allrun`
+	3. `cat log.python3`
+3. Run with fixed number of iterations (*fixedIter*). Only this setup should be used for the profiling.
+	1. Go to the 'fixedIter' directory of the current case
+	2. Adjust `maxIter` in the 'system/fvSolution' to the value `iter_run` read from the 'log.python3' of the *fixedTol* setup
+	3. `./Allrun`
+
+## Remark
+Besides the mesh size the iteration number also depends on the number of partitions the case is decomposed into (it grows with the increasing partition number) and on the decomposition method. In our experiments, e.g. for 64M case, the iteration number with 1024 partitions was 50% higher than with 32 partitions. The `maxIter` of the *fixedIter* setups of 1M and 8M cases are setup according to the *fixedTol* runs with 32 partitions and in case of 64M with 1024 partitions. In all cases scotch was used as the decomposition method.
+The general recommendation is to follow the procedure above. Then, for a strong scaling analysis the `maxIter` stays constant, which simplifies
+Optionally, adjusting `maxIter` for every run (when the decomposition method or number of partitions alters) accordingly to the 2nd approach described above may be considered.
+
+
+# Methodology
+This section describes how the cases were setup. It serves for informative purposes only and is not a part of the microbenchmark.
+* The three cases were first run up to t=0.5s. For each case the following procedure was performed.
+	* Find out averaged initial residual $r_c$ at the end of the run: [0.4s, 0.5s]. 
+	* The initial residual reaches a plateau (not decreasing anymore) at some point before t=0.4s. Find out this point in time by finding at which time $1.2 r_c$ of the initial residual is reached (e.g. for the 1M case $t_c$=0.34s). Put differently, it is assumed that the 
+	* Calculate the averaged iteration number $iter_{run}$ from $t$ up to $t_c$.
+	* Calculate the averaged iteration number $iter_{start}$ from the first *15* time steps.
+	* Build a factor $a_{case}=iter_{start}/iter_{run}$.
+* An average factor $a$ was build based on the three cases. It is used for the extrapolation from *fixedTol* setup to *fixedIter* setup giving a mean iteration number, which is representative for the whole run of the initial transient. In this way there is no need to run a case for the complete duration of 0.5s.
+* Run the cases with the fixed iteration number $iter_{run}$ for 1000 time steps.
+	* Analyze the wall clock time per time step $dt_{wc}$. 
+	* Compute its average $dt_{wcAv}$ and standard deviation $dt_{wcStd}$
+	* Compute the sample size of time steps needed for 95% confidence level with 1% error and given $dt_{wcAv}$, $dt_{wcStd}$ according to this formula:
+	$n_{dt} = 1.96^2*dt_{wcStd}^2/(dt_{wcAv}*0.01)^2$
+* Several runs to evaluate $n_{dt}$ on both a workstation and on a HPC were performed. The highest $n_{dt}$ was found to be 13. Finally, it is set to 15 to be aligned with the *fixedTol* setup.
+
+	
+# Remarks
+* Fixing the iteration number per time step n_iter is not based on a fixed tolerance run up to the stationary state (t=1s), which may be argued to be the actual representative case. During the run with fixed tolerance, n_iter decreases and the average value n_iterAv of the complete run would be relatively low. If the same case is run with a fixed iteration number of n_iterAv, which is too low to achieve the needed convergence, the run might end in a failure.
+* CFL number of 1 is too high for the cases to depict the start-up process of the flow correctly, which may be seen when mean Co of two cases with different mesh sizes is analyzed. Co=1 is chosen because this is closer to the industrial setups.
diff --git a/microbenchmarks/cavity-3d/evalLogCalcFixedIter.py b/microbenchmarks/cavity-3d/evalLogCalcFixedIter.py
new file mode 100644
index 0000000..871b51d
--- /dev/null
+++ b/microbenchmarks/cavity-3d/evalLogCalcFixedIter.py
@@ -0,0 +1,110 @@
+import os
+import subprocess
+import sys
+import re
+import numpy as np
+import pandas as pd
+from argparse import ArgumentParser
+
+
+def main():
+    parser = ArgumentParser()
+    parser.add_argument("logfile", metavar="logFile", type=str,
+                        help="an integer for the accumulator")
+    parser.add_argument("-t", "--timeEnd", metavar="timeEnd", type=float,
+                        help="provide runTime up to which the evaluation is performed")
+    parser.add_argument("-s", "--saveEval", action='store_true',
+                        help="save evaluation to a CSV file")
+    args = parser.parse_args()
+
+    customSolver, df = read_logfile(args.logfile)
+
+    if args.timeEnd:
+        df = df[df.runTimes <= args.timeEnd]
+
+    # Extrapolation factor for the iteration number determined empirically
+    fac = 2.3
+    iter_start = int(round(np.mean(df.nPIter)/2))
+    iter_run = int(round(iter_start/fac))
+
+    nTimes = len(df.nPIter) 
+    if nTimes != 15:
+        print("\nWARNING: the extrapolation factor for the iteration number is "
+            "legit only for the evaluation invterval of 15 time steps, but",
+            nTimes, "has been evaluated from the logfile\n")
+    print("Assumption: the linear solver is executed twice for the p eq.",
+        "(nCorrectors 2)")
+    print("nMeanUIter =", int(round(np.mean(df.nUIter)/3)),
+            "evaluated from", len(df.nUIter), "time steps")
+    print("iter_start =", iter_start,
+            "evaluated from", len(df.nPIter), "time steps")
+    print("iter_run =", iter_run,
+        "(supply this to maxIter entry in fixedIter/system/fvSolution)")
+
+    if args.saveEval:
+        df.to_csv(args.logfile+'.csv')
+
+
+def addMatch(nIterArr, match):
+    nIterArr[-1] += float(match.groups()[0])
+
+
+def read_logfile(log):
+    # String dict for matches
+    regexFloat = "[+-]?(\d+([.]\d*)?(e[+-]?\d+)?|[.]\d+(e[+-]?\d+)?)"
+    matches = {
+        "Ux": r".+Ux.+No Iterations ([\w.]+)",
+        "Uy": r".+Uy.+No Iterations ([\w.]+)",
+        "Uz": r".+Uz.+No Iterations ([\w.]+)",
+        "p": r".+p.+No Iterations ([\w.]+)",
+        "clockDiff": r"^Wall clock time.+ = ([\w.]+)",
+        "execTime": r"^ExecutionTime = ([\w.]+)",
+        "runTime": r"^Time = ([\w.]+)",
+    }
+
+    # Get the endTime from system/controlDict
+    runTimes = []
+    nUIter = []
+    nPIter = []
+    pResiduals = []
+    times = []
+    clockDiffs = []
+    customSolver = False
+    with open(log) as f:
+        for line in f:
+            for key, value in matches.items():
+                match = re.match(value, line)
+                if match:
+                    if (key == "runTime"):
+                        runTimes.append(0)
+                        nUIter.append(0)
+                        nPIter.append(0)
+                        pResiduals.append(0)
+                        times.append(0)
+                        clockDiffs.append(0)
+                        addMatch(runTimes, match)
+                        continue
+                    elif (key == "Ux"
+                        or key == "Uy"
+                        or key == "Uz"):
+                        addMatch(nUIter, match)
+                        continue
+                    elif (key == "p"):
+                        addMatch(nPIter, match)
+                        match =\
+                            re.match(".+Initial residual = "+regexFloat, line)
+                        pResiduals[-1] = float(match.groups()[0])
+                        continue
+                    elif (key == "clockDiff"):
+                        addMatch(clockDiffs, match)
+                        customSolver = True
+                    elif (key == "execTime"):
+                        addMatch(times, match)
+                        continue
+
+    return customSolver, pd.DataFrame({'runTimes': runTimes, 'nUIter': nUIter,
+        'nPIter': nPIter, 'pResiduals': pResiduals, 'times':times,
+        'clockDiffs': clockDiffs})
+
+if (__name__ == "__main__"):
+    main()
-- 
GitLab