xref: /libCEED/examples/fluids/conv_test.sh (revision 085d984f4e83b737780d62e6c6db8b777194f78f)
1#!/bin/bash
2
3# Copyright (c) 2017-2018, Lawrence Livermore National Security, LLC.
4# Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-734707.
5# All Rights reserved. See files LICENSE and NOTICE for details.
6#
7# This file is part of CEED, a collection of benchmarks, miniapps, software
8# libraries and APIs for efficient high-order finite element and spectral
9# element discretizations for exascale applications. For more information and
10# source code availability see http://github.com/ceed.
11#
12# The CEED research is supported by the Exascale Computing Project 17-SC-20-SC,
13# a collaborative effort of two U.S. Department of Energy organizations (Office
14# of Science and the National Nuclear Security Administration) responsible for
15# the planning and preparation of a capable exascale ecosystem, including
16# software, applications, hardware, advanced system engineering and early
17# testbed platforms, in support of the nation's exascale computing imperative.
18
19declare -A run_flags
20    run_flags[problem]=euler_vortex
21    run_flags[degree]=2
22    run_flags[dm_plex_box_faces]=20,20,1
23    run_flags[P_inlet]=1
24    run_flags[T_inlet]=1
25    run_flags[euler_test]=t4
26    run_flags[lx]=1000
27    run_flags[ly]=1000
28    run_flags[lz]=1
29    run_flags[ts_max_time]=.2
30    run_flags[ts_rk_type]=5bs
31    run_flags[ts_rtol]=1e-10
32    run_flags[ts_atol]=1e-10
33
34declare -A test_flags
35    test_flags[degree_start]=1
36    test_flags[degree_stride]=1
37    test_flags[degree_end]=4
38    test_flags[res_start]=6
39    test_flags[res_stride]=4
40    test_flags[res_end]=20
41
42echo ",mesh_res,degree,rel_error" > conv_test_result.csv
43i=0
44for ((d=${test_flags[degree_start]}; d<=${test_flags[degree_end]}; d+=${test_flags[degree_stride]})); do
45    run_flags[degree]=$d
46    for ((res=${test_flags[res_start]}; res<=${test_flags[res_end]}; res+=${test_flags[res_stride]})); do
47        run_flags[dm_plex_box_faces]=$res,$res,1
48        args=''
49        for arg in "${!run_flags[@]}"; do
50            if ! [[ -z ${run_flags[$arg]} ]]; then
51                args="$args -$arg ${run_flags[$arg]}"
52            fi
53        done
54        ./navierstokes $args | grep "Relative Error:" | awk -v i="$i" -v res="$res" -v d="$d" '{ print i","res","d","$3}' >> conv_test_result.csv
55        i=$((i+1))
56    done
57done
58
59# Compare the output CSV file with the reference file
60# diff conv_test_result.csv tests-output/fluids_navierstokes_etv.csv
61python3 conv_plot.py --conv_result_file conv_test_result.csv