openfoam/tutorials/verificationAndValidation/schemes/weightedFluxExample/plot
Mark Olesen 9b1c0786ce TUT: verificationAndValidation Allrun uses bash
STYLE: double-quote "$@" for isTest/notTest
2020-03-30 21:14:29 +02:00

89 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
# Plot temperature, heat flux vs analytical
graphDir="postProcessing/singleGraph"
#------------------------------------------------------------------------------
plotTemperature() {
graphName="Tprofile.png"
echo "Creating temperature profile graph to $graphName"
gnuplot<<GNUPLOT
set terminal pngcairo font "Helvetica,12" size 800,600
set title "Temperature profile" font "Helvetica,12"
set key bottom right
set xlabel "z" font "Helvetica,12"
set ylabel "Temperature" font "Helvetica,16"
set output "$graphName"
set logscale y
set format y "10^{%L}"
set key font ",12"
set lmargin 10
set rmargin 1.5
set bmargin 3.2
s1=1
s2=1e6
fo(x)=s1/(s1+s2)+s2*x/(s1+s2)
fu(x)=s1/(s1+s2)+s1*x/(s1+s2)
plot \
(x<=0)?fu(x):fo(x) w l lc 0 t 'analytical solution', \
"$graphDir/1/line_T.xy" u 1:2 w p pt 2 ps 2 lt rgb "red" t 'linear interpolation', \
"$graphDir/2/line_T.xy" u 1:2 w p pt 6 ps 2 lt rgb "green" t 'harmonic interpolation'
GNUPLOT
}
plotHeatFlux() {
graphName="heatFlux.png"
echo "Creating heat-flux graph to $graphName"
gnuplot<<GNUPLOT
set terminal pngcairo font "Helvetica,12" size 800,600
set title "Heat Flux" font "Helvetica,16"
set key top right
set xlabel "z" font "Helvetica,12"
set output "$graphName"
set logscale y
set format y "10^{%L}"
set key font ",12"
set lmargin 10
set rmargin 1.5
set bmargin 3.2
plot \
"$graphDir/1/line_flux.xy" u 1:4 w p pt 6 ps 2 lt rgb "red" t 'laplacian: linear, grad: linear', \
"$graphDir/2/line_flux.xy" u 1:4 w p pt 2 ps 2 lt rgb "blue" t 'laplacian: harmonic, grad: linear', \
"$graphDir/3/line_flux.xy" u 1:4 w l lt rgb "green" t 'laplacian: harmonic, grad: weightedFlux'
GNUPLOT
}
if notTest "$@"
then
# Create validation plots
# Require gnuplot
command -v gnuplot >/dev/null || {
echo "gnuplot not found - skipping graph creation" 1>&2
exit 1
}
plotTemperature
plotHeatFlux
fi
# ------------------------------------------------------------------------------