diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allclean b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allclean
index d670ed7d367cbac27a704cb51c2587d991e01cea..cc7e6894a0f7174c1708520e12a307fa97022eb7 100755
--- a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allclean
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allclean
@@ -4,8 +4,7 @@ cd "${0%/*}" || exit                                # Run from this directory
 #------------------------------------------------------------------------------
 
 cleanCase
-rm -rf *.dat validation/*.eps
-
+rm -rf *.{dat,png,txt} system/controlDict constant/turbulenceProperties results
 wclean validation/WatersKing
 
 #------------------------------------------------------------------------------
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allrun b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allrun
index 893cbf8c2a16f8ca0c2205557cc42fd7ffab2a96..9b2ab05be8ec105b1d3a174faa103ab68e4bb86e 100755
--- a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allrun
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/Allrun
@@ -1,14 +1,97 @@
 #!/bin/sh
 cd "${0%/*}" || exit                                # Run from this directory
 . ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions        # Tutorial run functions
+. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions      # Tutorial clean functions
 #------------------------------------------------------------------------------
 
-runApplication blockMesh
-runApplication $(getApplication)
+models="
+Maxwell
+Stokes
+"
 
-wmake validation/WatersKing
-runApplication WatersKing
+endTime=2
+if notTest $@
+then
+    endTime=25
+fi
 
-( cd validation && ./createGraph )
+#------------------------------------------------------------------------------
+
+# Compute the case in 'serial' mode, and collect the data
+#
+# $1 = endTime
+# $* = models
+# ----
+serialRun() {
+    endTime=$1
+    shift 1
+    models=$*
+
+    sed "s|END_TIME|$endTime|g" system/controlDict.template \
+        > system/controlDict
+    resultDir="results"
+
+    runApplication blockMesh
+    wmake validation/WatersKing
+
+    for model in $models
+    do
+        sed "s|LAMINAR_MODEL|$model|g" constant/turbulenceProperties.template \
+            > constant/turbulenceProperties
+
+        # Compute numerical data
+        runApplication $(getApplication)
+        tail -n +4 postProcessing/probes/0/U  | \
+            tr -s " " | tr -d '(' | cut -d " " -f2-3 > "${model}.txt"
+
+        # Collect numerical data
+        modelDir="$resultDir/$model"
+        [ -d "$modelDir" ] || mkdir -p "$modelDir"
+        mv -f postProcessing log.* "$modelDir"
+        cleanTimeDirectories
+    done
+
+    runApplication WatersKing
+}
+
+
+# Plot streamwise flow speed at y=1.0 [m] as a function of time
+#
+# $* = models
+# ----
+plot() {
+    # Require gnuplot
+    command -v gnuplot >/dev/null || {
+        echo "gnuplot not found - skipping graph creation" 1>&2
+        exit 1
+    }
+
+    models=$*
+    endTime=$(foamDictionary -entry endTime -value system/controlDict)
+
+    gnuplot<<PLT
+    set terminal pngcairo font "helvetica,16" size 800,600
+    set output "planarPoiseuille.png"
+    set grid
+    set key right top
+    set xrange [0:"$endTime"]
+    set yrange [0:8]
+    set xlabel "t [s]"
+    set ylabel "U_x [m/s]" rotate by 0 offset 3,0,0
+
+    results=system("ls *.txt")
+    names="${models[*]}"
+    plot \
+        "WatersKing.dat" w lines t "Analytical" lt -1, \
+        for [i=1:words(results)] word(results, i) t word(names, i) \
+            w linespoints pointinterval 100 lt i pt 6 ps 1.5
+
+PLT
+}
+
+#------------------------------------------------------------------------------
+
+serialRun $endTime $models
+plot $models
 
 #------------------------------------------------------------------------------
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/turbulenceProperties b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/turbulenceProperties.template
similarity index 96%
rename from tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/turbulenceProperties
rename to tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/turbulenceProperties.template
index c782dcde8b1f160fab70d0526e4c9011a5f661d8..aefd35ba5d94d9dce492e05f9608191c09c22c07 100644
--- a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/turbulenceProperties
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/constant/turbulenceProperties.template
@@ -18,7 +18,7 @@ simulationType laminar;
 
 laminar
 {
-    laminarModel        Maxwell;
+    laminarModel        LAMINAR_MODEL;
 
     MaxwellCoeffs
     {
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/controlDict b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/controlDict.template
similarity index 97%
rename from tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/controlDict
rename to tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/controlDict.template
index f26ec0685b2cb6d7660a061c37480546e5c0b880..6e8a4bada10ba9ab0bbf1d9f872d7f4778ba3a8f 100644
--- a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/controlDict
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/controlDict.template
@@ -22,7 +22,7 @@ startTime       0;
 
 stopAt          endTime;
 
-endTime         25;
+endTime         END_TIME;
 
 deltaT          5e-3;
 
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/fvSchemes b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/fvSchemes
index 8b06c3af277151032b975cbf3962f7f4fd70c318..15a53aa38a4b12b2b2908e8a611f6db49e00c537 100644
--- a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/fvSchemes
+++ b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/system/fvSchemes
@@ -27,13 +27,12 @@ gradSchemes
 divSchemes
 {
     default         none;
-
     div(phi,U)      Gauss linearUpwind grad(U);
     div(phi,sigma)  Gauss vanAlbada;
-
     div(sigma)                  Gauss linear;
     div((nu*dev2(T(grad(U)))))  Gauss linear;
     div((nuM*grad(U)))          Gauss linear;
+    div((nuEff*dev2(T(grad(U))))) Gauss linear;
 }
 
 laplacianSchemes
diff --git a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/createGraph b/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/createGraph
deleted file mode 100755
index 77a23fedf430171167919a073cbe4700fc7e4fed..0000000000000000000000000000000000000000
--- a/tutorials/incompressible/pimpleFoam/laminar/planarPoiseuille/validation/createGraph
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-tail -n +4 ../postProcessing/probes/0/U  | \
-    tr -s " " | tr -d '(' | cut -d " " -f2-3 > ../Numerical.dat
-
-# Require gnuplot
-command -v gnuplot >/dev/null || {
-    echo "gnuplot not found - skipping graph creation" 1>&2
-    exit 1
-}
-
-gnuplot<<EOF
-    set terminal postscript eps color enhanced "Helvetica,20"
-    set output "planarPoiseuille.eps"
-    set xlabel "Time / [s]" font "Helvetica,24"
-    set ylabel "Velocity / [m/s]" font "Helvetica,24"
-    set grid
-    set key right top
-    set xrange [0:25]
-    set yrange [0:8]
-    plot \
-        "../Numerical.dat" t "OpenFOAM (every 100 pts)" \
-            with linespoints pointinterval 100 lt 1 pt 6 ps 1.5, \
-        "../WatersKing.dat" with lines t "Analytical" lt -1
-EOF
-
-#------------------------------------------------------------------------------