xref: /libCEED/examples/fluids/conv_test.sh (revision 3d8e882215d238700cdceb37404f76ca7fa24eaa)
150c0860bSLeila Ghaffari#!/bin/bash
250c0860bSLeila Ghaffari
377841947SLeila Ghaffari# Copyright (c) 2017, Lawrence Livermore National Security, LLC.
450c0860bSLeila Ghaffari# Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-734707.
550c0860bSLeila Ghaffari# All Rights reserved. See files LICENSE and NOTICE for details.
650c0860bSLeila Ghaffari#
750c0860bSLeila Ghaffari# This file is part of CEED, a collection of benchmarks, miniapps, software
850c0860bSLeila Ghaffari# libraries and APIs for efficient high-order finite element and spectral
950c0860bSLeila Ghaffari# element discretizations for exascale applications. For more information and
10*3d8e8822SJeremy L Thompson# source code availability see http://github.com/ceed
1150c0860bSLeila Ghaffari#
1250c0860bSLeila Ghaffari# The CEED research is supported by the Exascale Computing Project 17-SC-20-SC,
1350c0860bSLeila Ghaffari# a collaborative effort of two U.S. Department of Energy organizations (Office
1450c0860bSLeila Ghaffari# of Science and the National Nuclear Security Administration) responsible for
1550c0860bSLeila Ghaffari# the planning and preparation of a capable exascale ecosystem, including
1650c0860bSLeila Ghaffari# software, applications, hardware, advanced system engineering and early
1750c0860bSLeila Ghaffari# testbed platforms, in support of the nation's exascale computing imperative.
1850c0860bSLeila Ghaffari
1950c0860bSLeila Ghaffarideclare -A run_flags
2050c0860bSLeila Ghaffari    run_flags[problem]=euler_vortex
2150c0860bSLeila Ghaffari    run_flags[degree]=2
2250c0860bSLeila Ghaffari    run_flags[dm_plex_box_faces]=20,20,1
231f814bfdSLeila Ghaffari    run_flags[lx]=1e3
241f814bfdSLeila Ghaffari    run_flags[ly]=1e3
2550c0860bSLeila Ghaffari    run_flags[lz]=1
261f814bfdSLeila Ghaffari    run_flags[ts_max_time]=.02
2750c0860bSLeila Ghaffari    run_flags[ts_rk_type]=5bs
2850c0860bSLeila Ghaffari    run_flags[ts_rtol]=1e-10
2950c0860bSLeila Ghaffari    run_flags[ts_atol]=1e-10
3050c0860bSLeila Ghaffari
3150c0860bSLeila Ghaffarideclare -A test_flags
3250c0860bSLeila Ghaffari    test_flags[degree_start]=1
3350c0860bSLeila Ghaffari    test_flags[degree_stride]=1
34bc7bbd5dSLeila Ghaffari    test_flags[degree_end]=2
3550c0860bSLeila Ghaffari    test_flags[res_start]=6
361f814bfdSLeila Ghaffari    test_flags[res_stride]=2
371f814bfdSLeila Ghaffari    test_flags[res_end]=10
3850c0860bSLeila Ghaffari
3919c46194SLeila Ghaffarifile_name=conv_test_result.csv
4019c46194SLeila Ghaffari
4119c46194SLeila Ghaffariecho ",mesh_res,degree,rel_error" > $file_name
4219c46194SLeila Ghaffari
4350c0860bSLeila Ghaffarii=0
4450c0860bSLeila Ghaffarifor ((d=${test_flags[degree_start]}; d<=${test_flags[degree_end]}; d+=${test_flags[degree_stride]})); do
4550c0860bSLeila Ghaffari    run_flags[degree]=$d
4650c0860bSLeila Ghaffari    for ((res=${test_flags[res_start]}; res<=${test_flags[res_end]}; res+=${test_flags[res_stride]})); do
4750c0860bSLeila Ghaffari        run_flags[dm_plex_box_faces]=$res,$res,1
4850c0860bSLeila Ghaffari        args=''
4950c0860bSLeila Ghaffari        for arg in "${!run_flags[@]}"; do
5050c0860bSLeila Ghaffari            if ! [[ -z ${run_flags[$arg]} ]]; then
5150c0860bSLeila Ghaffari                args="$args -$arg ${run_flags[$arg]}"
5250c0860bSLeila Ghaffari            fi
5350c0860bSLeila Ghaffari        done
5477841947SLeila Ghaffari        ./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
5550c0860bSLeila Ghaffari        i=$((i+1))
5650c0860bSLeila Ghaffari    done
5750c0860bSLeila Ghaffaridone
582931417aSLeila Ghaffari
592931417aSLeila Ghaffari# Compare the output CSV file with the reference file
6077841947SLeila Ghaffaricount=$(diff conv_test_result.csv tests-output/fluids-navierstokes-conv-euler.csv | grep "^>" | wc -l)
6119c46194SLeila Ghaffariif [ ${count} != 0 ]; then
6219c46194SLeila Ghaffari    printf "\n# TEST FAILED!\n\n"
6377841947SLeila Ghaffari    diff -q conv_test_result.csv tests-output/fluids-navierstokes-conv-euler.csv
6477841947SLeila Ghaffari    printf "\n"
6519c46194SLeila Ghaffarifi
66