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