openfoam/tutorials/verificationAndValidation/atmosphericModels/atmDownstreamDevelopment/plot
Kutalmis Bercin 408e6b55e9 TUT: simplify setups.orig cases
DOC: Curle: fix typo in header file (fixes #2498)

TUT: airfoil2D: apply standard freestream conditions for nuTilda and nut
2022-06-08 13:53:01 +01:00

411 lines
13 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
# settings
# operand setups
setups="
kEpsilon
kOmegaSST
"
# operand minimum z height
zMin=0
# Note: Benchmark data is available for the standard k-epsilon model from:
# Hargreaves, D. M., & Wright, N. G. (2007).
# On the use of the kε model in commercial CFD software
# to model the neutral atmospheric boundary layer.
# Journal of wind engineering and
# industrial aerodynamics, 95(5), 355-369.
# DOI:10.1016/j.jweia.2006.08.002
# Figure 6.
#------------------------------------------------------------------------------
plot_ux_vs_znorm_upstream() {
echo " # Plots the ground-normal flow speed profile (upstream)"
endTime="$1"
zMin="$2"
benchmarkFile="resources/dataset/Ux-HW-RH-Fig6a"
sampleFile="results/$setup/postProcessing/samples_u/$endTime"
image="plots/$setup/ux_vs_znorm_upstream.png"
gnuplot<<PLT_UX_UPSTREAM
set terminal pngcairo font "helvetica,20" size 1000, 800
set xrange [4:18]
set yrange [0:50]
set grid
set key top left
set xlabel "U_x [m s^{-1}]"
set ylabel "Non-dimensionalised height, z/z_{ref}"
set offset .05, .05
set output "$image"
# Benchmark
benchmark="$benchmarkFile"
zRef=6
# OpenFOAM
samplesCell="$sampleFile/x_0mCell_U.xy"
samplesPatch="$sampleFile/x_0mPatch_U.xy"
zMin="$zMin"
plot \
benchmark u 1:2 t "Richards-Hoxey" w p ps 2 pt 6 lc rgb "#000000", \
benchmark u 1:2 t "Hargreaves-Wright, x=2500m" w p ps 1 pt 5 lc rgb "#E69F00", \
benchmark u 1:2 t "Hargreaves-Wright, x=4000m" w p ps 0.5 pt 4 lc rgb "#56B4E9", \
samplesCell u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=0m (Patch)" w l lw 2 lc rgb "#009E73", \
samplesPatch u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=0m (Cell)" w l lw 2 lc rgb "#F0E440"
PLT_UX_UPSTREAM
}
plot_ux_vs_znorm_middle() {
echo " # Plots the ground-normal flow speed profile (mid-range)"
endTime="$1"
zMin="$2"
benchmarkFile="resources/dataset/Ux-HW-RH-Fig6a"
sampleFile="results/$setup/postProcessing/samples_u/$endTime"
image="plots/$setup/ux_vs_znorm_middle.png"
gnuplot<<PLT_UX_MID
set terminal pngcairo font "helvetica,20" size 1000, 800
set xrange [4:18]
set yrange [0:50]
set grid
set key top left
set xlabel "U_x [m s^{-1}]"
set ylabel "Non-dimensionalised height, z/z_{ref}"
set offset .05, .05
set output "$image"
# Benchmark
benchmark="$benchmarkFile"
zRef=6
# OpenFOAM
samples0="$sampleFile/x_2500m_U.xy"
samples1="$sampleFile/x_4000m_U.xy"
zMin="$zMin"
plot \
benchmark u 1:2 t "Richards-Hoxey" w p ps 2 pt 6 lc rgb "#000000", \
benchmark u 1:2 t "Hargreaves-Wright, x=2500m" w p ps 1 pt 5 lc rgb "#E69F00", \
benchmark u 1:2 t "Hargreaves-Wright, x=4000m" w p ps 0.5 pt 4 lc rgb "#56B4E9", \
samples0 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=2500m" w l lw 2 lc rgb "#0072B2", \
samples1 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=4000m" w l lw 2 lc rgb "#D55E00"
PLT_UX_MID
}
plot_ux_vs_znorm_downstream() {
echo " # Plots the ground-normal flow speed profile (downstream)"
endTime="$1"
zMin="$2"
benchmarkFile="resources/dataset/Ux-HW-RH-Fig6a"
sampleFile="results/$setup/postProcessing/samples_u/$endTime"
image="plots/$setup/ux_vs_znorm_downstream.png"
gnuplot<<PLT_UX_DOWNSTREAM
set terminal pngcairo font "helvetica,20" size 1000, 800
set xrange [4:18]
set yrange [0:50]
set grid
set key top left
set xlabel "U_x [m s^{-1}]"
set ylabel "Non-dimensionalised height, z/z_{ref}"
set offset .05, .05
set output "$image"
# Benchmark
benchmark="$benchmarkFile"
zRef=6
# OpenFOAM
samplesCell="$sampleFile/x_5000mCell_U.xy"
samplesPatch="$sampleFile/x_5000mPatch_U.xy"
zMin="$zMin"
plot \
benchmark u 1:2 t "Richards-Hoxey" w p ps 2 pt 6 lc rgb "#000000", \
benchmark u 1:2 t "Hargreaves-Wright, x=2500m" w p ps 1 pt 5 lc rgb "#E69F00", \
benchmark u 1:2 t "Hargreaves-Wright, x=4000m" w p ps 0.5 pt 4 lc rgb "#56B4E9", \
samplesCell u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=5000m (Cell)" w l lw 2 lc rgb "#CC79A7", \
samplesPatch u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=5000m (Patch)" w l lw 2 lc rgb "#440154"
PLT_UX_DOWNSTREAM
}
plot_k_vs_znorm() {
echo " # Plots the ground-normal turbulent kinetic energy profile"
endTime="$1"
zMin="$2"
benchmarkFile="resources/dataset"
sampleFile="results/$setup/postProcessing/samples_k/$endTime"
image="plots/$setup/k_vs_znorm.png"
gnuplot<<PLT_K
set terminal pngcairo font "helvetica,20" size 1000, 800
set xrange [1:2]
set yrange [0:50]
set grid
set key top right
set xlabel "k [m^2 s^{-2}]"
set ylabel "Non-dimensionalised height, z/z_{ref}"
set offset .05, .05
set output "$image"
# Benchmark
benchmark0="$benchmarkFile/k-RH-Fig6b"
benchmark1="$benchmarkFile/k-HW-Fig6b-2500"
benchmark2="$benchmarkFile/k-HW-Fig6b-4000"
zRef=6
# OpenFOAM
samples0="$sampleFile/x_0mCell_k.xy"
samples1="$sampleFile/x_0mPatch_k.xy"
samples2="$sampleFile/x_2500m_k.xy"
samples3="$sampleFile/x_4000m_k.xy"
samples4="$sampleFile/x_5000mCell_k.xy"
samples5="$sampleFile/x_5000mPatch_k.xy"
plot \
benchmark0 u 1:2 t "Richards-Hoxey" w p ps 2 pt 6 lc rgb "#000000", \
benchmark1 u 1:2 t "Hargreaves-Wright, x=2500m" w p ps 1 pt 5 lc rgb "#E69F00", \
benchmark2 u 1:2 t "Hargreaves-Wright, x=4000m" w p ps 0.5 pt 4 lc rgb "#56B4E9", \
samples0 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=0m (Patch)" w l lw 2 lc rgb "#009E73", \
samples1 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=0m (Cell)" w l lw 2 lc rgb "#F0E440", \
samples2 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=2500m" w l lw 2 lc rgb "#0072B2", \
samples3 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=4000m" w l lw 2 lc rgb "#D55E00", \
samples4 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=5000m (Cell)" w l lw 2 lc rgb "#CC79A7", \
samples5 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=5000m (Patch)" w l lw 2 lc rgb "#440154"
PLT_K
}
plot_epsilon_vs_znorm() {
echo " # Plots the ground-normal turbulent kinetic"\
"energy dissipation rate profile"
endTime="$1"
zMin="$2"
benchmarkFile="resources/dataset/epsilon-HW-RH-Fig6c"
sampleFile="results/$setup/postProcessing/samples_epsilon/$endTime"
image="plots/$setup/epsilon_vs_znorm.png"
gnuplot<<PLT_EPSILON
set terminal pngcairo font "helvetica,20" size 1000, 800
set xrange [0.001:10]
set yrange [0:50]
set grid
set key top right
set xlabel "{/Symbol e} [m^2 s^{-3}]"
set ylabel "Non-dimensionalised height, z/z_{ref}"
set offset .05, .05
set logscale x
set output "$image"
# Benchmark
benchmark="$benchmarkFile"
zRef=6
# OpenFOAM
samples0="$sampleFile/x_0mCell_epsilon.xy"
samples1="$sampleFile/x_0mPatch_epsilon.xy"
samples2="$sampleFile/x_2500m_epsilon.xy"
samples3="$sampleFile/x_4000m_epsilon.xy"
samples4="$sampleFile/x_5000mCell_epsilon.xy"
samples5="$sampleFile/x_5000mPatch_epsilon.xy"
plot \
benchmark u 1:2 t "Richards-Hoxey" w p ps 2 pt 6 lc rgb "#000000", \
benchmark u 1:2 t "Hargreaves-Wright, x=2500m" w p ps 1 pt 5 lc rgb "#E69F00", \
benchmark u 1:2 t "Hargreaves-Wright, x=4000m" w p ps 0.5 pt 4 lc rgb "#56B4E9", \
samples0 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=0m (Patch)" w l lw 2 lc rgb "#009E73", \
samples1 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=0m (Cell)" w l lw 2 lc rgb "#F0E440", \
samples2 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=2500m" w l lw 2 lc rgb "#0072B2", \
samples3 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=4000m" w l lw 2 lc rgb "#D55E00", \
samples4 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=5000m (Cell)" w l lw 2 lc rgb "#CC79A7", \
samples5 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=5000m (Patch)" w l lw 2 lc rgb "#440154"
PLT_EPSILON
}
plot_omega_vs_znorm() {
echo " # Plots the ground-normal specific dissipation rate profile"
endTime="$1"
zMin="$2"
# benchmarkFile=N/A
sampleFile="results/$setup/postProcessing/samples_omega/$endTime"
image="plots/$setup/omega_vs_znorm.png"
gnuplot<<PLT_OMEGA
set terminal pngcairo font "helvetica,20" size 1000, 800
set xrange [0.001:10]
set yrange [0:50]
set grid
set key top right
set xlabel "{/Symbol w} [s^{-1}]"
set ylabel "Non-dimensionalised height, z/z_{ref}"
set offset .05, .05
set logscale x
set output "$image"
# Benchmark
zRef=6
# OpenFOAM
samples0="$sampleFile/x_0mCell_omega.xy"
samples1="$sampleFile/x_0mPatch_omega.xy"
samples2="$sampleFile/x_2500m_omega.xy"
samples3="$sampleFile/x_4000m_omega.xy"
samples4="$sampleFile/x_5000mCell_omega.xy"
samples5="$sampleFile/x_5000mPatch_omega.xy"
plot \
samples0 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=0m (Patch)" w l lw 2 lc rgb "#009E73", \
samples1 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=0m (Cell)" w l lw 2 lc rgb "#F0E440", \
samples2 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=2500m" w l lw 2 lc rgb "#0072B2", \
samples3 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=4000m" w l lw 2 lc rgb "#D55E00", \
samples4 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=5000m (Cell)" w l lw 2 lc rgb "#CC79A7", \
samples5 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=5000m (Patch)" w l lw 2 lc rgb "#440154"
PLT_OMEGA
}
plot_nut_vs_znorm() {
echo " # Plots the ground-normal turbulent viscosity profile"
endTime="$1"
zMin="$2"
benchmarkFile="resources/dataset"
sampleFile="results/$setup/postProcessing/samples_nut/$endTime"
image="plots/$setup/nut_vs_znorm.png"
gnuplot<<PLT_NUT
set terminal pngcairo font "helvetica,20" size 1000, 800
set xrange [0:120]
set yrange [0:50]
set grid
set key bottom right
set xlabel "{/Symbol m}_t [Pa.s]"
set ylabel "Non-dimensionalised height, z/z_{ref}"
set offset .05, .05
set output "$image"
# Benchmark
benchmark0="$benchmarkFile/mut-RH-Fig6d"
benchmark1="$benchmarkFile/mut-HW-Fig6d-2500"
benchmark2="$benchmarkFile/mut-HW-Fig6d-4000"
zRef=6
# OpenFOAM
samples0="$sampleFile/x_0mCell_nut.xy"
samples1="$sampleFile/x_0mPatch_nut.xy"
samples2="$sampleFile/x_2500m_nut.xy"
samples3="$sampleFile/x_4000m_nut.xy"
samples4="$sampleFile/x_5000mCell_nut.xy"
samples5="$sampleFile/x_5000mPatch_nut.xy"
plot \
benchmark0 u 1:2 t "Richards-Hoxey" w p ps 2 pt 6 lc rgb "#000000", \
benchmark1 u 1:2 t "Hargreaves-Wright, x=2500m" w p ps 1 pt 5 lc rgb "#E69F00", \
benchmark2 u 1:2 t "Hargreaves-Wright, x=4000m" w p ps 0.5 pt 4 lc rgb "#56B4E9", \
samples0 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=0m (Patch)" w l lw 2 lc rgb "#009E73", \
samples1 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=0m (Cell)" w l lw 2 lc rgb "#F0E440", \
samples2 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=2500m" w l lw 2 lc rgb "#0072B2", \
samples3 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=4000m" w l lw 2 lc rgb "#D55E00", \
samples4 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=5000m (Cell)" w l lw 2 lc rgb "#CC79A7", \
samples5 u 2:((\$1-$zMin)/zRef) t "OpenFOAM, x=5000m (Patch)" w l lw 2 lc rgb "#440154"
PLT_NUT
}
#------------------------------------------------------------------------------
# Requires gnuplot
command -v gnuplot >/dev/null || {
echo "gnuplot not found - skipping graph creation" 1>&2
exit 1
}
# Check "results" directory
[ -d "results" ] || {
echo "No results directory found - skipping graph creation" 1>&2
exit 1
}
#------------------------------------------------------------------------------
for setup in $setups
do
echo ""
echo "# Plots for the setup: $setup"
echo ""
[ -d "results/$setup" ] || {
echo "No results/$setup directory found - skipping graph creation" 1>&2
continue
}
dirPlots="plots/$setup"
[ -d "$dirPlots" ] || mkdir -p "$dirPlots"
endTime=$( \
foamDictionary results/$setup/system/controlDict \
-disableFunctionEntries -entry endTime -value \
)
plot_ux_vs_znorm_upstream "$endTime" "$zMin"
plot_ux_vs_znorm_middle "$endTime" "$zMin"
plot_ux_vs_znorm_downstream "$endTime" "$zMin"
if [ -d "results/$setup/postProcessing/samples_k" ]
then
plot_k_vs_znorm "$endTime" "$zMin"
fi
if [ -d "results/$setup/postProcessing/samples_epsilon" ]
then
plot_epsilon_vs_znorm "$endTime" "$zMin"
fi
if [ -d "results/$setup/postProcessing/samples_omega" ]
then
plot_omega_vs_znorm "$endTime" "$zMin"
fi
if [ -d "results/$setup/postProcessing/samples_nut" ]
then
plot_nut_vs_znorm "$endTime" "$zMin"
fi
done
#------------------------------------------------------------------------------