#!/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
#——————————————————————————# setups
# operand setups
setups=”
kEpsilon-nutkWallFunction
LaunderSharmaKE-nutkWallFunction
”# operand exponents of kinematic viscosity values
nuExponents=”2 3 4 5 6 7 8″#——————————————————————————
#######################################
# Collect results into a given path
# and clean the case for the next run
# Arguments:
# $1 = Path to move results
# Outputs:
# Writes info to stdout
#######################################
collect() {[ $# -eq 0 ] && { echo “Usage: $0 dir-model”; exit 1; }
collection=”$1″
dirResult=results/”$collection”
dirSettings=”$dirResult”/settingsif [ ! -d “$dirResult” ]
thenecho ” # Collecting results and settings into $dirResult”
mkdir -p “$dirResult”
mkdir -p “$dirSettings”mv -f $(foamListTimes) “$dirResult”
[ -d postProcessing ] && mv -f postProcessing “$dirResult”
mv -f log.* “$dirResult”
mv -f graphs/ “$dirResult”
mv -f logs/ “$dirResult”
cp -f system/{fv*,controlDict} constant/*Properties “$dirSettings”
mv -f 0/ “$dirSettings”echo ” # Cleaning up the case”
cleanTimeDirectories
cleanAuxiliary
cleanPostProcessingelse
echo ” # Directory $dirResult already exists”
echo ” # Skipping the computation”fi
}
#——————————————————————————
for setup in $setups
doecho “”
echo “# Computations for the setup: $setup”
echo “”dirSetup=”setups.orig/$setup”
cp -rfL “$dirSetup/0.orig” .
cp -rfL “$dirSetup/constant” .
cp -rfL “$dirSetup/system” .
cp -rf 0.orig/ 0/if [ ! -d constant/polyMesh ]
then
runApplication blockMesh
runApplication renumberMesh -overwrite -constant
runApplication checkMesh -allTopology -allGeometry -constant
fiecho “# yPlus vs uPlus” > yPlus_vs_uPlus.xy
for exponent in $nuExponents
doecho ” Setting nu to 1e-$exponent”
sed “s|EXPONENT|$exponent|g” constant/transportProperties.template \r
> constant/transportProperties[ -d 0 ] || restore0Dir
runApplication $(getApplication)
runApplication foamLog log.boundaryFoam
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.xy
ficollect “$setup/$exponent”
done
mv -f yPlus_vs_uPlus.xy results/”$setup”/
done
#——————————————————————————
実行年月:02/01/2022