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

# Source run functions
. "$WM_PROJECT_SITE/$WM_PROJECT_VERSION/bin/tools/RunFunctions"

TESTCASE=$(basename "$PWD")

# addonMultiphaseEuler - cellMomentum
CASE="01_addonMultiphaseEuler_cellMomentum"
foamCloneCase -add validation/ BasicSetup ${CASE}
${CASE}/Allrun

latestTime=$(foamListTimes -latestTime -case "${CASE}")
cp validation/U.air.gz "${CASE}/${latestTime}/U.air.ref.gz"
cp validation/U.water.gz "${CASE}/${latestTime}/U.water.ref.gz"
runApplication -s "${TESTCASE}.addonMultiphaseEuler.cellMomentum.U.air" \
    foamPostProcess -latestTime -case "${CASE}" \
    -func "deviation(field=U.air, reference=U.air.ref, maxAbsDev=1e-9)"
runApplication -s "${TESTCASE}.addonMultiphaseEuler.cellMomentum.U.water" \
    foamPostProcess -latestTime -case "${CASE}" \
    -func "deviation(field=U.water, reference=U.water.ref, maxAbsDev=1e-9)" \


# addonMultiphaseEuler - faceMomentum
CASE="02_addonMultiphaseEuler_faceMomentum"
foamCloneCase -add validation/ BasicSetup ${CASE}
foamDictionary -entry PIMPLE/faceMomentum -set true ${CASE}/system/fvSolution
${CASE}/Allrun

latestTime=$(foamListTimes -latestTime -case "${CASE}")
cp validation/U.air.gz "${CASE}/${latestTime}/U.air.ref.gz"
cp validation/U.water.gz "${CASE}/${latestTime}/U.water.ref.gz"
runApplication -s "${TESTCASE}.addonMultiphaseEuler.faceMomentum.U.air" \
    foamPostProcess -latestTime -case "${CASE}" \
    -func "deviation(field=U.air, reference=U.air.ref, maxAbsDev=2e-5)"
runApplication -s "${TESTCASE}.addonMultiphaseEuler.faceMomentum.U.water" \
    foamPostProcess -latestTime -case "${CASE}" \
    -func "deviation(field=U.water, reference=U.water.ref, maxAbsDev=1e-5)" \


# cipsaMultiphaseEuler - cellMomentum
CASE="03_cipsaMultiphaseEuler_cellMomentum"
foamCloneCase -add validation/ BasicSetup ${CASE}
foamDictionary -entry solver -set cipsaMultiphaseEuler \
    ${CASE}/system/controlDict
${CASE}/Allrun

latestTime=$(foamListTimes -latestTime -case "${CASE}")
cp validation/U.air.gz "${CASE}/${latestTime}/U.air.ref.gz"
cp validation/U.water.gz "${CASE}/${latestTime}/U.water.ref.gz"
runApplication -s "${TESTCASE}.cipsaMultiphaseEuler.cellMomentum.U.air" \
    foamPostProcess -latestTime -case "${CASE}" \
    -func "deviation(field=U.air, reference=U.air.ref, maxAbsDev=1e-9)"
runApplication -s "${TESTCASE}.cipsaMultiphaseEuler.cellMomentum.U.water" \
    foamPostProcess -latestTime -case "${CASE}" \
    -func "deviation(field=U.water, reference=U.water.ref, maxAbsDev=1e-9)" \

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