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 - -#------------------------------------------------------------------------------