1*e1ef8755Svaleriabarra# Copyright (c) 2017-2018, Lawrence Livermore National Security, LLC. 2*e1ef8755Svaleriabarra# Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-734707. 3*e1ef8755Svaleriabarra# All Rights reserved. See files LICENSE and NOTICE for details. 4*e1ef8755Svaleriabarra# 5*e1ef8755Svaleriabarra# This file is part of CEED, a collection of benchmarks, miniapps, software 6*e1ef8755Svaleriabarra# libraries and APIs for efficient high-order finite element and spectral 7*e1ef8755Svaleriabarra# element discretizations for exascale applications. For more information and 8*e1ef8755Svaleriabarra# source code availability see http://github.com/ceed. 9*e1ef8755Svaleriabarra# 10*e1ef8755Svaleriabarra# The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, 11*e1ef8755Svaleriabarra# a collaborative effort of two U.S. Department of Energy organizations (Office 12*e1ef8755Svaleriabarra# of Science and the National Nuclear Security Administration) responsible for 13*e1ef8755Svaleriabarra# the planning and preparation of a capable exascale ecosystem, including 14*e1ef8755Svaleriabarra# software, applications, hardware, advanced system engineering and early 15*e1ef8755Svaleriabarra# testbed platforms, in support of the nation's exascale computing imperative. 16*e1ef8755Svaleriabarra 17*e1ef8755Svaleriabarra 18*e1ef8755Svaleriabarrafunction run_tests() 19*e1ef8755Svaleriabarra{ 20*e1ef8755Svaleriabarra $dry_run cd "$test_exe_dir" 21*e1ef8755Svaleriabarra 22*e1ef8755Svaleriabarra # Some of the available options are: 23*e1ef8755Svaleriabarra # -degree <1>: Polynomial degree of tensor product basis 24*e1ef8755Svaleriabarra # -qextra <2>: Number of extra quadrature points 25*e1ef8755Svaleriabarra # -ceed </cpu/self>: CEED resource specifier 26*e1ef8755Svaleriabarra # -cells <10,10,10>: Target number of locally (per rank) owned mesh cells 27*e1ef8755Svaleriabarra 28*e1ef8755Svaleriabarra # The variables 'max_dofs_node', and 'max_p' can be set on the command line 29*e1ef8755Svaleriabarra # invoking the 'benchmark.sh' script. 30*e1ef8755Svaleriabarra local ceed="${ceed:-/cpu/self}" 31*e1ef8755Svaleriabarra local common_args=(-ceed $ceed -pc_type none -benchmark) 32*e1ef8755Svaleriabarra local max_dofs_node_def=$((3*2**20)) 33*e1ef8755Svaleriabarra local max_dofs_node=${max_dofs_node:-$max_dofs_node_def} 34*e1ef8755Svaleriabarra local max_loc_dofs=$((max_dofs_node/num_proc_node)) 35*e1ef8755Svaleriabarra local max_p=${max_p:-8} 36*e1ef8755Svaleriabarra local sol_p= 37*e1ef8755Svaleriabarra for ((sol_p = 1; sol_p <= max_p; sol_p++)); do 38*e1ef8755Svaleriabarra local loc_el= 39*e1ef8755Svaleriabarra for ((loc_el = 1; loc_el*sol_p**3 <= max_loc_dofs; loc_el = 2*loc_el)); do 40*e1ef8755Svaleriabarra local loc_dofs=$((loc_el*sol_p**3)) 41*e1ef8755Svaleriabarra local loc_cell=$(echo "e(l($loc_dofs)/3)" | bc -l) 42*e1ef8755Svaleriabarra loc_cell=${loc_cell%.*} 43*e1ef8755Svaleriabarra local all_args=("${common_args[@]}" -degree $sol_p -cells $loc_cell,$loc_cell,$loc_cell -problem $bp) 44*e1ef8755Svaleriabarra if [ -z "$dry_run" ]; then 45*e1ef8755Svaleriabarra echo 46*e1ef8755Svaleriabarra echo "Running test:" 47*e1ef8755Svaleriabarra quoted_echo $mpi_run ./petsc-bps "${all_args[@]}" 48*e1ef8755Svaleriabarra $mpi_run ./petsc-bps "${all_args[@]}" || \ 49*e1ef8755Svaleriabarra printf "\nError in the test, error code: $?\n\n" 50*e1ef8755Svaleriabarra else 51*e1ef8755Svaleriabarra $dry_run $mpi_run ./petsc-bps "${all_args[@]}" 52*e1ef8755Svaleriabarra fi 53*e1ef8755Svaleriabarra done 54*e1ef8755Svaleriabarra done 55*e1ef8755Svaleriabarra} 56*e1ef8755Svaleriabarra 57*e1ef8755Svaleriabarratest_required_examples="petsc-bps" 58