xref: /libCEED/benchmarks/petsc-bpsraw.sh (revision d4cc18453651bd0f94c1a2e078b2646a92dafdcc)
1*9ba83ac0SJeremy L Thompson# Copyright (c) 2017-2026, Lawrence Livermore National Security, LLC and other CEED contributors.
25aed82e4SJeremy L Thompson# All Rights Reserved. See the top-level LICENSE and NOTICE files for details.
3cb32e2e7SValeria Barra#
45aed82e4SJeremy L Thompson# SPDX-License-Identifier: BSD-2-Clause
5cb32e2e7SValeria Barra#
65aed82e4SJeremy L Thompson# This file is part of CEED:  http://github.com/ceed
7cb32e2e7SValeria Barra
8cb32e2e7SValeria Barrafunction run_tests()
9cb32e2e7SValeria Barra{
10cb32e2e7SValeria Barra   $dry_run cd "$test_exe_dir"
11cb32e2e7SValeria Barra
12cb32e2e7SValeria Barra   # Some of the available options are:
13cb32e2e7SValeria Barra   # -degree <1>: Polynomial degree of tensor product basis
142288fb52SJeremy L Thompson   # -q_extra <1>: Number of extra quadrature points
15cb32e2e7SValeria Barra   # -ceed </cpu/self>: CEED resource specifier
16304dbc33Svaleriabarra   # -local <1000>: Target number of locally (per rank) owned nodes
17cb32e2e7SValeria Barra
18cb32e2e7SValeria Barra   # The variables 'max_dofs_node', and 'max_p' can be set on the command line
19cb32e2e7SValeria Barra   # invoking the 'benchmark.sh' script.
20cb32e2e7SValeria Barra   local ceed="${ceed:-/cpu/self}"
21cb32e2e7SValeria Barra   local common_args=(-ceed $ceed -pc_type none -benchmark)
22cb32e2e7SValeria Barra   local max_dofs_node_def=$((3*2**20))
23cb32e2e7SValeria Barra   local max_dofs_node=${max_dofs_node:-$max_dofs_node_def}
24304dbc33Svaleriabarra   local max_loc_nodes=$((max_dofs_node/num_proc_node))
25cb32e2e7SValeria Barra   local max_p=${max_p:-8}
26cb32e2e7SValeria Barra   local sol_p=
27cb32e2e7SValeria Barra   for ((sol_p = 1; sol_p <= max_p; sol_p++)); do
28cb32e2e7SValeria Barra      local loc_el=
29304dbc33Svaleriabarra      for ((loc_el = 1; loc_el*sol_p**3 <= max_loc_nodes; loc_el = 2*loc_el)); do
30cb32e2e7SValeria Barra         local loc_dofs=$((loc_el*sol_p**3))
31cb32e2e7SValeria Barra         local all_args=("${common_args[@]}" -degree $sol_p -local $loc_dofs -problem $bp)
32cb32e2e7SValeria Barra         if [ -z "$dry_run" ]; then
33cb32e2e7SValeria Barra            echo
34cb32e2e7SValeria Barra            echo "Running test:"
35cb32e2e7SValeria Barra            quoted_echo $mpi_run ./petsc-bpsraw "${all_args[@]}"
36cb32e2e7SValeria Barra            $mpi_run ./petsc-bpsraw "${all_args[@]}" || \
37cb32e2e7SValeria Barra               printf "\nError in the test, error code: $?\n\n"
38cb32e2e7SValeria Barra         else
39cb32e2e7SValeria Barra            $dry_run $mpi_run ./petsc-bpsraw "${all_args[@]}"
40cb32e2e7SValeria Barra         fi
41cb32e2e7SValeria Barra      done
42cb32e2e7SValeria Barra   done
43cb32e2e7SValeria Barra}
44cb32e2e7SValeria Barra
45cb32e2e7SValeria Barratest_required_examples="petsc-bpsraw"
46