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

# settings

    # operand setups
    setups="
    DFSEM
    DFM
    FSM
    "


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

plot_R_patch() {

    setup="$1"

    endTime=$(foamDictionary results/$setup/settings/controlDict -entry endTime -value)
    # benchmarkFile="ReTau-395/dataset/chan395.reystress"
    sampleFile="results/$setup/postProcessing/sampleCellPoint/$endTime/inletPatch_columnAverage:columnAverage(UPrime2Mean).xy"
    image="plots/$setup/R_patch.png"

    gnuplot<<PLT_R_PATCH
    set terminal pngcairo font "helvetica,20" size 1000, 1000
    set grid
    set key top right
    set xrange [0:1]
    set yrange [-1:8]
    set key samplen 2
    set key spacing 0.75
    set xlabel "Channel height [m]"
    set ylabel "<u_i^' u_i^'> [m^2/s^2]"
    set offset .05, .05
    set output "$image"
    set title "Reynolds stresses on patch"

    # Benchmark - DNS
        # benchmark = "$benchmarkFile"

    # Samples - OpenFOAM
        samples="$sampleFile"

    plot \
        samples u 1:2 t "<u^' u^'>" w l lw 2 lc rgb "#009E73", \
        samples u 1:5 t "<v^' v^'>" w l lw 2 lc rgb "#F0E440", \
        samples u 1:7 t "<w^' w^'>" w l lw 2 lc rgb "#0072B2", \
        samples u 1:3 t "<u^' v^'>" w l lw 2 lc rgb "#D55E00"

        # benchmark u 1:3 t "<u^' u^'>_{DNS}" w l lw 2 dt 2 lc rgb "#009E73", \
        # benchmark u 1:4 t "<v^' v^'>_{DNS}" w l lw 2 dt 2 lc rgb "#F0E440", \
        # benchmark u 1:5 t "<w^' w^'>_{DNS}" w l lw 2 dt 2 lc rgb "#0072B2", \
        # benchmark u 1:6 t "<u^' v^'>_{DNS}" w l lw 2 dt 2 lc rgb "#D55E00"
PLT_R_PATCH
}


plot_R_cell() {

    setup="$1"

    endTime=$(foamDictionary results/$setup/settings/controlDict -entry endTime -value)
    # benchmarkFile="ReTau-395/dataset/chan395.reystress"
    sampleFile="results/$setup/postProcessing/sampleCellPoint/$endTime/inletCell_columnAverage:columnAverage(UPrime2Mean).xy"
    image="plots/$setup/R_cell.png"

    gnuplot<<PLT_R_CELL
    set terminal pngcairo font "helvetica,20" size 1000, 1000
    set grid
    set key top right
    set xrange [0:1]
    set yrange [-1:8]
    set key samplen 2
    set key spacing 0.75
    set xlabel "Channel height [m]"
    set ylabel "<u_i^' u_i^'> [m^2/s^2]"
    set offset .05, .05
    set output "$image"
    set title "Reynolds stresses on cell"

    # Benchmark - DNS
        # benchmark= "$benchmarkFile"

    # Samples - OpenFOAM
        samples="$sampleFile"

    plot \
        samples u 1:2 t "<u^' u^'>" w l lw 2 lc rgb "#009E73", \
        samples u 1:5 t "<v^' v^'>" w l lw 2 lc rgb "#F0E440", \
        samples u 1:7 t "<w^' w^'>" w l lw 2 lc rgb "#0072B2", \
        samples u 1:3 t "<u^' v^'>" w l lw 2 lc rgb "#D55E00"

        # benchmark u 1:3 t "<u^' u^'>_{DNS}" w l lw 2 dt 2 lc rgb "#009E73", \
        # benchmark u 1:4 t "<v^' v^'>_{DNS}" w l lw 2 dt 2 lc rgb "#F0E440", \
        # benchmark u 1:5 t "<w^' w^'>_{DNS}" w l lw 2 dt 2 lc rgb "#0072B2", \
        # benchmark u 1:6 t "<u^' v^'>_{DNS}" w l lw 2 dt 2 lc rgb "#D55E00"
PLT_R_CELL
}


plot_UMean_patch() {

    setup="$1"

    endTime=$(foamDictionary results/$setup/settings/controlDict -entry endTime -value)
    benchmarkFile="../../resources/incompressible/oneCellThickPlaneChannelFlow/ReTau-395/dataset/chan395.means"
    sampleFile="results/$setup/postProcessing/sampleCellPoint/$endTime/inletPatch_columnAverage:columnAverage(UMean).xy"
    image="plots/$setup/UMean_patch.png"

    gnuplot<<PLT_UMEAN_PATCH
    set terminal pngcairo font "helvetica,20" size 1000, 1000
    set grid
    set key top right
    set xrange [0:1]
    set yrange [0:25]
    set key samplen 2
    set key spacing 0.75
    set xlabel "Channel height [m]"
    set ylabel "u [m/s]"
    set offset .05, .05
    set output "$image"
    set title "Streamwise mean flow speed on patch"

    # Benchmark - DNS
        # benchmark = "$benchmarkFile"

    # Samples - OpenFOAM
        samples="$sampleFile"

    plot \
        samples u 1:2 t "u" w l lw 2 lc rgb "#009E73"

        # benchmark u 1:3 t "u_{DNS}" w l lw 2 dt 2 lc rgb "#009E73"
PLT_UMEAN_PATCH
}


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

# Require gnuplot
command -v gnuplot >/dev/null || {
    echo "gnuplot not found - skipping graph creation" 1>&2
    exit 1
}

# Check directory: "results"
[ -d "results" ] || {
    echo "No results directory found - skipping graph creation" 1>&2
    exit 1
}


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

for setup in $setups
do

    echo ""
    echo "# Plots for the setup: $setup"
    echo ""

    dirPlots="plots/$setup"
    [ -d "$dirPlots" ] || mkdir -p "$dirPlots"

    plot_R_patch "$setup"

    plot_R_cell "$setup"

    plot_UMean_patch "$setup"

done


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