openfoam/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/Allrun
2018-01-17 15:30:49 +00:00

72 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
runApplication blockMesh
exponents="2 3 4 5 6 7 8"
echo "# yPlus vs uPlus" > yPlus_vs_uPlus
for e in $exponents
do
echo " Setting nu to 1e-$e"
sed "s/XXX/$e/g" constant/transportProperties.template \
> constant/transportProperties
runApplication -s $e $(getApplication)
# extract y+, U+
# note: both must be added to foamLog.db
runApplication -s $e foamLog log.boundaryFoam.$e
if [ -e logs/yPlus_0 ]
then
yPlus=$(awk < logs/yPlus_0 'END{print $2}')
uPlus=$(awk < logs/uPlus_0 'END{print $2}')
echo "$yPlus $uPlus" >> yPlus_vs_uPlus
fi
rm -rf logs
done
if ! isTest $@
then
# create validation plot
# Test if gnuplot exists on the system
command -v gnuplot >/dev/null 2>&1 || {
echo "gnuplot not found - skipping graph creation" 1>&2
exit 1
}
graphName="OF_vs_ANALYTICAL.eps"
echo "Creating graph of u+ vs y+ to $graphName"
gnuplot<<EOF
set terminal postscript eps color enhanced
set output "$graphName"
set grid
set xlabel "y+"
set ylabel "u+"
set key top left
set size 0.75, 0.75
set parametric
# u+ range
set trange [0:35]
# Spaldings law
k=0.41
E=9.8
f(t) = t + 1/E*(exp(k*t) - 1 - k*t*(1 + 0.5*k*t) - 1/6*k*t**3)
set logscale x
set format x "10^{%T}"
plot f(t),t title "Spalding" with lines linetype -1, \
"yPlus_vs_uPlus" title "OpenFOAM" with points lt 1 pt 6
EOF
fi
echo Done
#------------------------------------------------------------------------------