#!/bin/sh
cd "${0%/*}" || exit                                # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions        # Tutorial run functions
#------------------------------------------------------------------------------

rm -rf constant/polyMesh/sets

# For meshing only
decompDict="-decomposeParDict system/decomposeParDict.6"

runApplication blockMesh
runApplication surfaceFeatureExtract

runApplication $decompDict decomposePar

runParallel $decompDict snappyHexMesh -overwrite

# Restore initial fields
restore0Dir -processor

runParallel $decompDict splitMeshRegions -cellZones -overwrite

# Remove fluid fields from solid regions (important for post-processing)
for region in $(foamListRegions solid)
do
    rm -f 0/$region/{nut,alphat,epsilon,k,U,p_rgh}
    rm -f processor*/0/$region/{nut,alphat,epsilon,k,U,p_rgh}
done

for region in $(foamListRegions)
do
    runParallel $decompDict -s $region changeDictionary -region $region
done

# Redistribute onto fewer processors, with special treatment for heater
for region in $(foamListRegions)
do
    runParallel -np 6 -s redist-$region \
        redistributePar -overwrite -region $region
done

#-- Run in parallel
runParallel $(getApplication)

# Reconstruct
for region in $(foamListRegions)
do
    runParallel -s reconstruct-$region \
        redistributePar -reconstruct -region $region
done

echo
echo "Use paraFoam -touch-all to create files for paraview post-processing"
echo

#------------------------------------------------------------------------------
