xref: /honee/examples/conv_test.sh (revision 8a8cb6e06ce4728cc6d80ca92f8de31da49852e5)
1fc37ad8cSJames Wright#!/bin/bash
2*ae2b091fSJames Wright# SPDX-FileCopyrightText: Copyright (c) 2017-2024, HONEE contributors.
3*ae2b091fSJames Wright# SPDX-License-Identifier: Apache-2.0 OR BSD-2-Clause
4fc37ad8cSJames Wright
5fc37ad8cSJames Wrightdeclare -A run_flags
6fc37ad8cSJames Wright    run_flags[problem]=euler_vortex
7fc37ad8cSJames Wright    run_flags[degree]=2
8fc37ad8cSJames Wright    run_flags[dm_plex_box_faces]=20,20,1
9fc37ad8cSJames Wright    run_flags[lx]=1e3
10fc37ad8cSJames Wright    run_flags[ly]=1e3
11fc37ad8cSJames Wright    run_flags[lz]=1
12fc37ad8cSJames Wright    run_flags[ts_max_time]=.02
13fc37ad8cSJames Wright    run_flags[ts_rk_type]=5bs
14fc37ad8cSJames Wright    run_flags[ts_rtol]=1e-10
15fc37ad8cSJames Wright    run_flags[ts_atol]=1e-10
16fc37ad8cSJames Wright
17fc37ad8cSJames Wrightdeclare -A test_flags
18fc37ad8cSJames Wright    test_flags[degree_start]=1
19fc37ad8cSJames Wright    test_flags[degree_stride]=1
20fc37ad8cSJames Wright    test_flags[degree_end]=2
21fc37ad8cSJames Wright    test_flags[res_start]=6
22fc37ad8cSJames Wright    test_flags[res_stride]=2
23fc37ad8cSJames Wright    test_flags[res_end]=10
24fc37ad8cSJames Wright
25fc37ad8cSJames Wrightfile_name=conv_test_result.csv
26fc37ad8cSJames Wright
27fc37ad8cSJames Wrightecho ",mesh_res,degree,rel_error" > $file_name
28fc37ad8cSJames Wright
29fc37ad8cSJames Wrighti=0
30fc37ad8cSJames Wrightfor ((d=${test_flags[degree_start]}; d<=${test_flags[degree_end]}; d+=${test_flags[degree_stride]})); do
31fc37ad8cSJames Wright    run_flags[degree]=$d
32fc37ad8cSJames Wright    for ((res=${test_flags[res_start]}; res<=${test_flags[res_end]}; res+=${test_flags[res_stride]})); do
33fc37ad8cSJames Wright        run_flags[dm_plex_box_faces]=$res,$res,1
34fc37ad8cSJames Wright        args=''
35fc37ad8cSJames Wright        for arg in "${!run_flags[@]}"; do
36fc37ad8cSJames Wright            if ! [[ -z ${run_flags[$arg]} ]]; then
37fc37ad8cSJames Wright                args="$args -$arg ${run_flags[$arg]}"
38fc37ad8cSJames Wright            fi
39fc37ad8cSJames Wright        done
40fc37ad8cSJames Wright        ./navierstokes $args | grep "Relative Error:" | awk -v i="$i" -v res="$res" -v d="$d" '{ printf "%d,%d,%d,%.5f\n", i, res, d, $3}' >> $file_name
41fc37ad8cSJames Wright        i=$((i+1))
42fc37ad8cSJames Wright    done
43fc37ad8cSJames Wrightdone
44fc37ad8cSJames Wright
45fc37ad8cSJames Wright# Compare the output CSV file with the reference file
46fc37ad8cSJames Wrightcount=$(diff conv_test_result.csv tests-output/fluids-navierstokes-conv-euler.csv | grep "^>" | wc -l)
47fc37ad8cSJames Wrightif [ ${count} != 0 ]; then
48fc37ad8cSJames Wright    printf "\n# TEST FAILED!\n\n"
49fc37ad8cSJames Wright    diff -q conv_test_result.csv tests-output/fluids-navierstokes-conv-euler.csv
50fc37ad8cSJames Wright    printf "\n"
51fc37ad8cSJames Wrightfi
52