#!/bin/bash
cd "${0%/*}" || exit 1

echo "=============================================="
echo " OpenFOAM Parallel Non-Newtonian Case"
echo "=============================================="
chmod +x ./Allclean
echo ""
echo "1. Cleaning previous results"
./Allclean

echo ""
echo "2. Creating mesh"
blockMesh > log.blockMesh 2>&1

if [ $? -ne 0 ]; then
    echo "ERROR: blockMesh failed."
    exit 1
fi

echo ""
echo "3. Checking mesh"
checkMesh > log.checkMesh 2>&1

if [ $? -ne 0 ]; then
    echo "ERROR: checkMesh failed."
    exit 1
fi

echo ""
echo "4. Creating face zones"
topoSet > log.topoSet 2>&1

if [ $? -ne 0 ]; then
    echo "ERROR: topoSet failed."
    exit 1
fi

echo ""
echo "5. Decomposing case"
decomposePar > log.decomposePar 2>&1

if [ $? -ne 0 ]; then
    echo "ERROR: decomposePar failed."
    exit 1
fi

echo ""
echo "6. Running nonNewtonianIcoFoam in parallel"
mpirun -np 2 nonNewtonianIcoFoam -parallel > log.nonNewtonianIcoFoam 2>&1

if [ $? -ne 0 ]; then
    echo "ERROR: Parallel solver failed."
    exit 1
fi

echo ""
echo "7. Reconstructing results"
reconstructPar > log.reconstructPar 2>&1

if [ $? -ne 0 ]; then
    echo "ERROR: reconstructPar failed."
    exit 1
fi


echo ""
echo "=============================================="
echo " Parallel simulation completed successfully"
echo "=============================================="