mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: generalise bump2D Allrun and plot scripts
STYLE: renamed periodicHill createPlots -> plot for consistency TUT: use nutLowReWallFunction for bump2D - required for the new nutWallFuncs hierarchy
This commit is contained in:
committed by
Andrew Heather
parent
d13df0e4da
commit
5577606997
@ -44,7 +44,7 @@ boundaryField
|
|||||||
|
|
||||||
bump
|
bump
|
||||||
{
|
{
|
||||||
type fixedValue;
|
type nutLowReWallFunction;
|
||||||
value uniform 0;
|
value uniform 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,46 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd ${0%/*} || exit 1 # Run from this directory
|
cd ${0%/*} || exit 1 # Run from this directory
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/CleanFunctions # Tutorial clean functions
|
||||||
|
|
||||||
runApplication blockMesh
|
runApplication blockMesh
|
||||||
runApplication $(getApplication)
|
|
||||||
|
|
||||||
|
# Turbulence closure models
|
||||||
|
models="
|
||||||
|
kOmegaSST
|
||||||
|
SpalartAllmaras
|
||||||
|
"
|
||||||
|
|
||||||
|
for model in $models
|
||||||
|
do
|
||||||
|
echo "Processing model: $model"
|
||||||
|
|
||||||
|
\cp constant/turbulenceProperties.template constant/turbulenceProperties
|
||||||
|
runApplication -s "$model" foamDictionary -entry RAS.RASModel \
|
||||||
|
-set "$model" constant/turbulenceProperties
|
||||||
|
|
||||||
|
runApplication $(getApplication)
|
||||||
|
|
||||||
|
timeDir=$(foamListTimes -latestTime)
|
||||||
|
|
||||||
|
# Create datasets for benchmark comparisons
|
||||||
|
echo "# ccx tau_xx tau_yy tau_zz cp" > profiles.dat
|
||||||
|
foamDictionary -entry boundaryField.bump.value -value $timeDir/Cx | \
|
||||||
|
sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' > Cx.$$
|
||||||
|
foamDictionary -entry boundaryField.bump.value -value $timeDir/wallShearStress | \
|
||||||
|
sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' > tau.$$
|
||||||
|
foamDictionary -entry boundaryField.bump.value -value $timeDir/Cp | \
|
||||||
|
sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' > cp.$$
|
||||||
|
\paste -d ' ' Cx.$$ tau.$$ cp.$$ >> profiles.dat
|
||||||
|
\rm -f Cx.$$ tau.$$ cp.$$
|
||||||
|
|
||||||
|
# Store model results
|
||||||
|
modelDir="$model"
|
||||||
|
\rm -rf "$modelDir"
|
||||||
|
\mkdir "$modelDir"
|
||||||
|
\mv log* profiles.dat "$timeDir" postProcessing "$modelDir"
|
||||||
|
|
||||||
|
cleanTimeDirectories
|
||||||
|
done
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -19,11 +19,8 @@ simulationType RAS;
|
|||||||
|
|
||||||
RAS
|
RAS
|
||||||
{
|
{
|
||||||
// RASModel kOmegaSST;
|
RASModel TURB_MODE;
|
||||||
RASModel SpalartAllmaras;
|
|
||||||
|
|
||||||
turbulence on;
|
turbulence on;
|
||||||
|
|
||||||
printCoeffs on;
|
printCoeffs on;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1,106 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Note: CFL3D data available from:
|
|
||||||
# https://turbmodels.larc.nasa.gov/bump_sa.html
|
|
||||||
|
|
||||||
cd ${0%/*} || exit 1 # Run from this directory
|
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
|
|
||||||
|
|
||||||
#set -x
|
|
||||||
|
|
||||||
plotTau() {
|
|
||||||
graphNameTau="hill2D_tau.png"
|
|
||||||
echo "Creating wallshear stress graph to $graphNameTau"
|
|
||||||
gnuplot<<PLT_TAU
|
|
||||||
set terminal pngcairo font "helvetica,20" size 1000, 1000
|
|
||||||
set xrange [0:1.5]
|
|
||||||
set yrange [0:0.008]
|
|
||||||
set grid
|
|
||||||
set key bottom right
|
|
||||||
set xlabel "x"
|
|
||||||
set ylabel "c_f"
|
|
||||||
set output "$graphNameTau"
|
|
||||||
|
|
||||||
Uref = 69.44
|
|
||||||
|
|
||||||
set lmargin 10
|
|
||||||
set rmargin 1.5
|
|
||||||
set bmargin 3.2
|
|
||||||
|
|
||||||
# plot \
|
|
||||||
# "profiles.dat" u 1:(sqrt(\$2*\$2+\$3*\$3+\$4*\$4)/(0.5*Uref*Uref)) \
|
|
||||||
# t "simpleFoam" w l lw 2 lc rgb "black", \
|
|
||||||
# "cf_bump_cfl3d_sa.dat" every 10 u 1:2 \
|
|
||||||
# t "CFL3D" w p ps 3 pt 6 lw 2 lc rgb "red"
|
|
||||||
|
|
||||||
plot \
|
|
||||||
"profiles.dat" u 1:(sqrt(\$2*\$2+\$3*\$3+\$4*\$4)/(0.5*Uref*Uref)) \
|
|
||||||
t "simpleFoam" w l lw 2 lc rgb "black"
|
|
||||||
PLT_TAU
|
|
||||||
}
|
|
||||||
|
|
||||||
plotCp() {
|
|
||||||
graphNameCp="hill2D_cp.png"
|
|
||||||
echo "Creating pressure coefficient graph to $graphNameCp"
|
|
||||||
gnuplot<<PLT_CP
|
|
||||||
set terminal pngcairo font "helvetica,20" size 1000, 1000
|
|
||||||
set xrange [0:1.5]
|
|
||||||
set yrange [0.4:-0.8]
|
|
||||||
set grid
|
|
||||||
set key bottom right
|
|
||||||
set xlabel "x"
|
|
||||||
set ylabel "c_p"
|
|
||||||
set output "$graphNameCp"
|
|
||||||
|
|
||||||
Uref = 69.44
|
|
||||||
|
|
||||||
set lmargin 10
|
|
||||||
set rmargin 1.5
|
|
||||||
set bmargin 3.2
|
|
||||||
|
|
||||||
# plot \
|
|
||||||
# "profiles.dat" u 1:5 \
|
|
||||||
# t "simpleFoam" w l lw 2 lc rgb "black", \
|
|
||||||
# "cp_bump_cfl3d_sa.dat" every 10 u 1:2 \
|
|
||||||
# t "CFL3D" w p ps 3 pt 6 lw 2 lc rgb "red"
|
|
||||||
|
|
||||||
plot \
|
|
||||||
"profiles.dat" u 1:5 \
|
|
||||||
t "simpleFoam" w l lw 2 lc rgb "black"
|
|
||||||
PLT_CP
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if notTest $@
|
|
||||||
then
|
|
||||||
# Create validation plots
|
|
||||||
|
|
||||||
# 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
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test if awk exists on the system
|
|
||||||
command -v awk >/dev/null 2>&1 || {
|
|
||||||
echo "awk not found - skipping graph creation" 1>&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
timeDir=$(foamListTimes -latestTime)
|
|
||||||
|
|
||||||
echo "# ccx tau_xx tau_yy tau_zz cp" > profiles.dat
|
|
||||||
foamDictionary -entry boundaryField.bump.value -value $timeDir/Cx | \
|
|
||||||
sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' > Cx.$$
|
|
||||||
foamDictionary -entry boundaryField.bump.value -value $timeDir/wallShearStress | \
|
|
||||||
sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' > tau.$$
|
|
||||||
foamDictionary -entry boundaryField.bump.value -value $timeDir/Cp | \
|
|
||||||
sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' > cp.$$
|
|
||||||
paste -d ' ' Cx.$$ tau.$$ cp.$$ >> profiles.dat
|
|
||||||
|
|
||||||
plotTau
|
|
||||||
plotCp
|
|
||||||
|
|
||||||
\rm -f Cx.$$ tau.$$ cp.$$ profiles.dat
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
121
tutorials/incompressible/simpleFoam/bump2D/plot
Executable file
121
tutorials/incompressible/simpleFoam/bump2D/plot
Executable file
@ -0,0 +1,121 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Note: CFL3D data available from:
|
||||||
|
# https://turbmodels.larc.nasa.gov/bump_sa.html
|
||||||
|
# The CFL3D-SpalartAllmaras datasets of Cf and Cp:
|
||||||
|
# Cf = https://turbmodels.larc.nasa.gov/Bump/SA/cf_bump.dat
|
||||||
|
# Cp = https://turbmodels.larc.nasa.gov/Bump/SA/cp_bump.dat
|
||||||
|
|
||||||
|
cd ${0%/*} || exit 1 # Run from this directory
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
|
||||||
|
|
||||||
|
|
||||||
|
plotCf() {
|
||||||
|
declare -a resultSet=("${!1}")
|
||||||
|
declare -a modelSet=("${!2}")
|
||||||
|
|
||||||
|
graphNameCf="hill2D_cf.png"
|
||||||
|
echo "Creating skin friction coefficient graph to $graphNameCf"
|
||||||
|
gnuplot<<PLT_CF
|
||||||
|
set terminal pngcairo font "helvetica,20" size 1000, 1000
|
||||||
|
set xrange [0:1.5]
|
||||||
|
set yrange [0:0.008]
|
||||||
|
set grid
|
||||||
|
set key bottom right
|
||||||
|
set xlabel "x"
|
||||||
|
set ylabel "C_f" rotate by 0
|
||||||
|
set output "$graphNameCf"
|
||||||
|
|
||||||
|
results="${resultSet[*]}"
|
||||||
|
models="${modelSet[*]}"
|
||||||
|
Uref = 69.44
|
||||||
|
|
||||||
|
set lmargin 10
|
||||||
|
set rmargin 1.5
|
||||||
|
set bmargin 3.2
|
||||||
|
|
||||||
|
# plot \
|
||||||
|
# "cf_bump_cfl3d_sa.dat" every 10 u 1:2 t "CFL3D" \
|
||||||
|
# w p ps 3 pt 6 lw 2 lc rgb "red", \
|
||||||
|
# for [i=1:words(results)] word(results, i) \
|
||||||
|
# u 1:(sqrt(\$2*\$2+\$3*\$3+\$4*\$4)/(0.5*Uref*Uref)) \
|
||||||
|
# t word(models, i) with lines
|
||||||
|
|
||||||
|
plot \
|
||||||
|
for [i=1:words(results)] word(results, i) \
|
||||||
|
u 1:(sqrt(\$2*\$2+\$3*\$3+\$4*\$4)/(0.5*Uref*Uref)) \
|
||||||
|
t word(models, i) with lines
|
||||||
|
|
||||||
|
PLT_CF
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
plotCp() {
|
||||||
|
declare -a resultSet=("${!1}")
|
||||||
|
declare -a modelSet=("${!2}")
|
||||||
|
|
||||||
|
graphNameCp="hill2D_cp.png"
|
||||||
|
echo "Creating pressure coefficient graph to $graphNameCp"
|
||||||
|
gnuplot<<PLT_CP
|
||||||
|
set terminal pngcairo font "helvetica,20" size 1000, 1000
|
||||||
|
set xrange [0:1.5]
|
||||||
|
set yrange [0.4:-0.8]
|
||||||
|
set grid
|
||||||
|
set key bottom right
|
||||||
|
set xlabel "x"
|
||||||
|
set ylabel "C_p" rotate by 0
|
||||||
|
set output "$graphNameCp"
|
||||||
|
|
||||||
|
results="${resultSet[@]}"
|
||||||
|
models="${modelSet[@]}"
|
||||||
|
Uref = 69.44
|
||||||
|
|
||||||
|
set lmargin 10
|
||||||
|
set rmargin 1.5
|
||||||
|
set bmargin 3.2
|
||||||
|
|
||||||
|
# plot \
|
||||||
|
# "cp_bump_cfl3d_sa.dat" every 10 u 1:2 t "CFL3D" \
|
||||||
|
# w p ps 3 pt 6 lw 2 lc rgb "red", \
|
||||||
|
# for [i=1:words(results)] word(results, i) \
|
||||||
|
# u (\$1):(\$5) t word(models, i) with lines
|
||||||
|
|
||||||
|
plot \
|
||||||
|
for [i=1:words(results)] word(results, i) \
|
||||||
|
u (\$1):(\$5) t word(models, i) with lines
|
||||||
|
|
||||||
|
PLT_CP
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if notTest $@
|
||||||
|
then
|
||||||
|
# Create validation plots
|
||||||
|
|
||||||
|
# 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
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test if awk exists on the system
|
||||||
|
command -v awk >/dev/null 2>&1 || {
|
||||||
|
echo "awk not found - skipping graph creation" 1>&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Turbulence closure models
|
||||||
|
models=('kOmegaSST' 'kEpsilon')
|
||||||
|
|
||||||
|
modelResults=()
|
||||||
|
n=0
|
||||||
|
for model in "${models[@]}"
|
||||||
|
do
|
||||||
|
modelResults[$n]="${model}/profiles.dat"
|
||||||
|
n=$(($n+1))
|
||||||
|
done
|
||||||
|
|
||||||
|
plotCp modelResults[@] models[@]
|
||||||
|
plotCf modelResults[@] models[@]
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
Reference in New Issue
Block a user