Skip to content

Commit

Permalink
update to v5 (#6)
Browse files Browse the repository at this point in the history
  • Loading branch information
aaroncblack authored Apr 12, 2023
1 parent 830353f commit a110b15
Show file tree
Hide file tree
Showing 76 changed files with 3,031 additions and 15,520 deletions.
29 changes: 11 additions & 18 deletions BUILDING.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,37 @@
The Spack package manager has a UMT package and can be used to build UMT and all its required libraries.
For more info on spack see https://github.com/spack/spack

Alternatively, if you want to build UMT and its required libraries by hand, see the script 'build_umt.sh'. It is recommended that you are conversant with CMake.

Alternatively, if you want to build UMT and its required libraries by hand, see the script 'build_and_run_umt.sh'. It is recommended that you are conversant with CMake.

Brief walkthrough on building with Spack.

1. git clone spack from github
``` https://github.com/spack/spack.git ```
``` git clone https://github.com/spack/spack.git ```

2. Setup your environment for spack
``` source spack/var/spack/setup-env.sh ```
2. Setup your environment for spack. Spack provides shell scripts for bash, csh,
``` source spack/share/spack/setup-env.sh ```

3. Create an environment for umt
``` spack env create myumt ```

4. Activate your environment
``` spack env activate myumt ```

5. Depending on your compiler, spack may have it already found. If not, you may need to add it manually. See the spack documentation for more details on this.
``` spack compiler find ```
5. Tell spack to find and add support for your compiler. The below command will add all compilers that it finds. Be sure that your compiler is in your path, for spack to find it. This example assumes that you have gcc version 8.1.0 in your path.
``` spack compiler find```

6. Add your mpi to the spack environment. This example is using mvapich2 but other mpi versions, such as openmpi, are fine also.
``` spack external find mvapich2
6. Add umt to your environment. This examples is using gcc 8.1.0
6. Add umt to your environment.
``` spack add umt+mfem %gcc@8.1.0 ```
7. Concretize your environment
``` spack concretize ```
Spack will list all the libraries and dependencies it needs to build. This may be substantial if Spack is not aware of common libraries your platform already has available. To tell Spack to try and find these present libraries, use 'spack external find'. For example, these are common libraries that may be present on your platform already:
Spack will list all the libraries and dependencies it needs to build. This list can be reduced by adding more external packages to your spack environment and spack will make use of them instead of building them from scratch. The perl library is one example that is needed and frequently available on systems already.
```
[me@mymachine:spack]$ spack external find ncurses
==> The following specs have been detected on this system and added to /home/me/git/spack/var/spack/environments/myumt/spack.yaml
ncurses@5.9.20130511
[me@mymachine:spack]$ spack external find openssl
==> The following specs have been detected on this system and added to /home/me/git/spack/var/spack/environments/myumt/spack.yaml
openssl@1.0.2k-fips
[me@mymachine:spack]$ spack external find mvapich2
==> The following specs have been detected on this system and added to /home/me/git/spack/var/spack/environments/myumt/spack.yaml
mvapich2@2.3.1
[me@mymachine:spack]$ spack external find perl
==> The following specs have been detected on this system and added to /home/me/git/spack/var/spack/environments/myumt/spack.yaml
perl@5.16.3
Expand Down
4 changes: 4 additions & 0 deletions DEPENDENCIES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
System libraries
-----------------------
UMT Requires MPI to be installed on your system to provide a C++ and Fortran compiler.

Third party libraries
-----------------------
The code depends on several libraries.
Expand Down
29 changes: 17 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
UMT Introduction
==================

![Teton obscured by clouds](img/TetonAboveCloudsCropped.jpg "Teton obscured by clouds")

UMT (Unstructured Mesh Transport) is an LLNL ASC proxy application (mini-app)
that solves a thermal radiative transport equation using discrete ordinates
(Sn). It utilizes an upstream corner balance method to compute the solution to
Expand All @@ -13,7 +15,7 @@ parallel computing platforms with tens of processors per node.
To achieve scalability, the application exploits both spatial decomposition
using message passing between nodes and a threading algorithm across angles
and energy groups across processors within the node. More recent versions of
UMT are also capable of utilizing both CPUs and GPUs on heterogenous platforms.
UMT are also capable of utilizing both CPUs and GPUs on heterogeneous platforms.

The code is primarily written in Fortran 2003 with some C++ and Cuda.

Expand All @@ -29,18 +31,21 @@ Third party libraries
-----------------------
UMT depends on several libraries, some of them optionally. See the DEPENDENCIES.md file for more information.

Crooked Pipe 2D test problem with 2500 zone mesh
Test problems
===============
The test driver also supports reading in [MFEM](https://mfem.org/) meshes.
These meshes can be refined using MFEM at runtime to provide larger problems.

A MFEM NURBs 2D mesh is provided here modeling a bent/crooked pipe problem.
This mesh was produced using the LLNL mesh generator code
[PMesh](https://www.osti.gov/biblio/251377).

Building UMT with MFEM mesh support requires several additional libraries and
CMake options. For assistance on this build configuration, contact a team
member on github.
UMT includes an unstructured mesh 3d test problem using a [MFEM](https://mfem.org/) mesh
This mesh can be refined using MFEM at run time to provide larger problems.

To run this problem:
1. Build UMT. This will produce a test_driver and makeUnstructuredBox executable.
2. Run the makeUnstructuredBox to produce the 3d test mesh.
```
srun -n1 /path/to/install/bin/makeUnstructuredBox
```
3. Run the test driver. In the below example the problem will run for 10 cycles and the mesh will be refined. Run 'test_driver -h' for more info on the arguments.
```
srun -n2 path/to/install/bin/test_driver -i ./unstructBox3D.mesh -c 10 -r 1 -R 6
```

References
==============
Expand Down
3 changes: 3 additions & 0 deletions benchmarks/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Helper script for creating run lines for a weak scaling study.
Example:
python3 generate_weak_scaling_runs.py >& run_weak_scaling_study.sh
41 changes: 41 additions & 0 deletions benchmarks/generate_weak_scaling_runs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Generate runs for a weak scaling run.
#
# This python script can be used to assist in generating a series of run configurations for the UMT unstructured box 3d mesh.
# The series of runs are designed to weak scale the problem from 1 to n processors.
#
# node_memory - total memory on a node (gigabytes)
# node_memory_target - % of memory to use on node at max number of MPI ranks.
# memory_tolerance - tolerance for problem memory usage. Will try to generate runs that use the same amount of memory per rank to within X%.

# Node has 128gb of memory
node_memory = 128
# Max # mpi ranks to use ( typically equal to # cores on node ).
max_ranks = 36
# Use 50% of node's memory, within +/- 5%.
node_memory_target = 0.50
memory_tolerance = 0.05

# Number of polar x azimuthal angles to use in the product quadrature set
a = 3
# Number of energy groups to use
g = 32

# upper and lower bound of memory usage to calculate series for, in bytes, per rank
mem_lower_bound = 128 * node_memory_target * (1 - memory_tolerance) * 1024 * 1024 * 1024 / max_ranks
mem_upper_bound = 128 * node_memory_target * (1 + memory_tolerance) * 1024 * 1024 * 1024 / max_ranks

print ("#---------------------------")
print ("#Angles: 3x3 Groups: 32")
print ("#---------------------------")
for r in range(1,1000):
# 3d mesh
zones = 12*(r**3)
angles = a * a * 8
totalDOFs = zones * 8 * g * angles
totalMem = totalDOFs * 8
for p in range(1,max_ranks):
mem_per_rank = totalMem / p
if mem_per_rank >= mem_lower_bound and mem_per_rank <= mem_upper_bound:
DOFsPerRank = int(totalDOFs / p)
if 8*p < zones:
print(f"srun -N1-1 -n {p} --exclusive test_driver -c 1 -G {g} -A {a} -P {a} -r 1 -R {r} -i unstructBox3D.mesh >& run.{a}x{a}_product_quad.{angles}_angles.{g}_groups.{p}_ranks.{DOFsPerRank}_dofs_per_rank.{zones}_zones.{totalDOFs}_total_dofs.log")
33 changes: 33 additions & 0 deletions benchmarks/run_weak_scaling_study.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#---------------------------
#Angles: 3x3 Groups: 32
#---------------------------
srun -N1-1 -n 2 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 13 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.2_ranks.242970624_dofs_per_rank.26364_zones.485941248_total_dofs.log
srun -N1-1 -n 3 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 15 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.3_ranks.248832000_dofs_per_rank.40500_zones.746496000_total_dofs.log
srun -N1-1 -n 9 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 21 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.9_ranks.227598336_dofs_per_rank.111132_zones.2048385024_total_dofs.log
srun -N1-1 -n 10 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 22 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.10_ranks.235516723_dofs_per_rank.127776_zones.2355167232_total_dofs.log
srun -N1-1 -n 11 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 23 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.11_ranks.244649611_dofs_per_rank.146004_zones.2691145728_total_dofs.log
srun -N1-1 -n 13 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 24 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.13_ranks.235203662_dofs_per_rank.165888_zones.3057647616_total_dofs.log
srun -N1-1 -n 14 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 25 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.14_ranks.246857142_dofs_per_rank.187500_zones.3456000000_total_dofs.log
srun -N1-1 -n 15 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 25 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.15_ranks.230400000_dofs_per_rank.187500_zones.3456000000_total_dofs.log
srun -N1-1 -n 16 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 26 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.16_ranks.242970624_dofs_per_rank.210912_zones.3887529984_total_dofs.log
srun -N1-1 -n 17 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 26 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.17_ranks.228678234_dofs_per_rank.210912_zones.3887529984_total_dofs.log
srun -N1-1 -n 18 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 27 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.18_ranks.241864704_dofs_per_rank.236196_zones.4353564672_total_dofs.log
srun -N1-1 -n 19 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 27 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.19_ranks.229134982_dofs_per_rank.236196_zones.4353564672_total_dofs.log
srun -N1-1 -n 20 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 28 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.20_ranks.242771558_dofs_per_rank.263424_zones.4855431168_total_dofs.log
srun -N1-1 -n 21 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 28 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.21_ranks.231211008_dofs_per_rank.263424_zones.4855431168_total_dofs.log
srun -N1-1 -n 22 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 29 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.22_ranks.245202571_dofs_per_rank.292668_zones.5394456576_total_dofs.log
srun -N1-1 -n 23 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 29 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.23_ranks.234541590_dofs_per_rank.292668_zones.5394456576_total_dofs.log
srun -N1-1 -n 24 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 30 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.24_ranks.248832000_dofs_per_rank.324000_zones.5971968000_total_dofs.log
srun -N1-1 -n 25 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 30 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.25_ranks.238878720_dofs_per_rank.324000_zones.5971968000_total_dofs.log
srun -N1-1 -n 26 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 30 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.26_ranks.229691076_dofs_per_rank.324000_zones.5971968000_total_dofs.log
srun -N1-1 -n 27 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 31 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.27_ranks.244047872_dofs_per_rank.357492_zones.6589292544_total_dofs.log
srun -N1-1 -n 28 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 31 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.28_ranks.235331876_dofs_per_rank.357492_zones.6589292544_total_dofs.log
srun -N1-1 -n 29 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 31 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.29_ranks.227216984_dofs_per_rank.357492_zones.6589292544_total_dofs.log
srun -N1-1 -n 29 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 32 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.29_ranks.249922665_dofs_per_rank.393216_zones.7247757312_total_dofs.log
srun -N1-1 -n 30 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 32 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.30_ranks.241591910_dofs_per_rank.393216_zones.7247757312_total_dofs.log
srun -N1-1 -n 31 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 32 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.31_ranks.233798622_dofs_per_rank.393216_zones.7247757312_total_dofs.log
srun -N1-1 -n 32 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 33 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.32_ranks.248396544_dofs_per_rank.431244_zones.7948689408_total_dofs.log
srun -N1-1 -n 33 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 33 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.33_ranks.240869376_dofs_per_rank.431244_zones.7948689408_total_dofs.log
srun -N1-1 -n 34 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 33 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.34_ranks.233784982_dofs_per_rank.431244_zones.7948689408_total_dofs.log
srun -N1-1 -n 35 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 33 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.35_ranks.227105411_dofs_per_rank.431244_zones.7948689408_total_dofs.log
srun -N1-1 -n 35 --exclusive test_driver -c 1 -G 32 -A 3 -P 3 -r 1 -R 34 -i unstructBox3D.mesh >& run.3x3_product_quad.72_angles.32_groups.35_ranks.248383312_dofs_per_rank.471648_zones.8693415936_total_dofs.log
81 changes: 61 additions & 20 deletions build_and_run_umt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,25 @@
# If you have a UMT tarball, untar it. Otherwise, git clone it from github.
# git clone https://github.com/LLNL/UMT.git

# This script expects the following env variables to be set:
# CC = C compiler
# CXX = C++ compiler
# FC = Fortran compiler

# Examples of supported compilers
# Intel
# CC=icx
# CXX=icpx
# FC=ifx

# GNU
# CC=gcc
# CXX=g++
# FC=gfortran

# This script can either download tarballs for metis, conduit, hypre, and mfem, or it can copy them from a file system directory. If you have the tarballs already present on the file system, then set this:
# TARBALLS=path/to/tarballs

# This script assumes that have a directory called 'UMT' under your current directory. If its in another location, modify this next line.
UMT_PATH=${PWD}/UMT

Expand All @@ -12,48 +31,70 @@ echo Libraries will be installed to: ${INSTALL_PATH}

cd umt_workspace

# Download and build conduit
wget https://github.com/LLNL/conduit/releases/download/v0.8.2/conduit-v0.8.2-src-with-blt.tar.gz
tar xvzf conduit-v0.8.2-src-with-blt.tar.gz
mkdir build_conduit
cd build_conduit
cmake ${PWD}/../conduit-v0.8.2/src -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=gfortran -DMPI_CXX_COMPILER=mpicxx -DMPI_Fortran_COMPILER=mpifort -DBUILD_SHARED_LIBS=OFF -DENABLE_TESTS=OFF -DENABLE_EXAMPLES=OFF -DENABLE_DOCS=OFF -DENABLE_FORTRAN=ON -DENABLE_MPI=ON -DENABLE_PYTHON=OFF
# Download and build METIS
METIS=metis-5.1.0.tar.gz
if [ -f ${TARBALLS}/${METIS} ]; then
cp ${TARBALLS}/${METIS} .
else
wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/${METIS}
fi
tar xvzf ${METIS}
cd metis-5.1.0
cmake . -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DCMAKE_C_COMPILER=${CC} -DCMAKE_CXX_COMPILER=${CXX} -DGKLIB_PATH=${PWD}/GKlib
gmake -j install
cd ..

# Download and build METIS
wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz
tar xvzf metis-5.1.0.tar.gz
cd metis-5.1.0
cmake . -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DGKLIB_PATH=${PWD}/GKlib
# Download and build conduit
CONDUIT=conduit-v0.8.7-src-with-blt.tar.gz
if [ -f ${TARBALLS}/${CONDUIT} ]; then
cp ${TARBALLS}/${CONDUIT} .
else
wget https://github.com/LLNL/conduit/releases/download/v0.8.7/${CONDUIT}
fi
tar xvzf ${CONDUIT}
mkdir build_conduit
cd build_conduit
cmake ${PWD}/../conduit-v0.8.7/src -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DCMAKE_C_COMPILER=${CC} -DCMAKE_CXX_COMPILER=${CXX} -DCMAKE_Fortran_COMPILER=${FC} -DMPI_CXX_COMPILER=mpicxx -DMPI_Fortran_COMPILER=mpifort -DBUILD_SHARED_LIBS=OFF -DENABLE_TESTS=OFF -DENABLE_EXAMPLES=OFF -DENABLE_DOCS=OFF -DENABLE_FORTRAN=ON -DENABLE_MPI=ON -DENABLE_PYTHON=OFF
gmake -j install
cd ..

# Download and build HYPRE
wget https://github.com/hypre-space/hypre/archive/refs/tags/v2.24.0.tar.gz
tar xvzf v2.24.0.tar.gz
HYPRE=v2.24.0.tar.gz
if [ -f ${TARBALLS}/${HYPRE} ]; then
cp ${TARBALLS}/${HYPRE} .
else
wget https://github.com/hypre-space/hypre/archive/refs/tags/${HYPRE}
fi
tar xvzf ${HYPRE}
mkdir build_hypre
cd build_hypre
cmake ${PWD}/../hypre-2.24.0/src -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DCMAKE_C_COMPILER=gcc
cmake ${PWD}/../hypre-2.24.0/src -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DCMAKE_C_COMPILER=${CC}
gmake -j install
cd ..

# Download and build MFEM
wget https://github.com/mfem/mfem/archive/refs/tags/v4.4.zip
MFEM=v4.4.zip
if [ -f ${TARBALLS}/${MFEM} ]; then
cp ${TARBALLS}/${MFEM} .
else
wget https://github.com/mfem/mfem/archive/refs/tags/${MFEM}
fi
unzip v4.4.zip
mkdir build_mfem
cd build_mfem
cmake ${PWD}/../mfem-4.4 -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DMPI_CXX_COMPILER=mpicxx -DMFEM_USE_MPI=TRUE -DMFEM_USE_CONDUIT=TRUE -DMFEM_USE_METIS_5=TRUE -DCMAKE_PREFIX_PATH=${INSTALL_PATH}}
# -DCONDUIT_ROOT=${INSTALL_PATH} -DMETIS_ROOT=${INSTALL_PATH} -DHYPRE_ROOT=${INSTALL_PATH}
cmake ${PWD}/../mfem-4.4 -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DCMAKE_C_COMPILER=${CC} -DCMAKE_CXX_COMPILER=${CXX} -DMPI_CXX_COMPILER=mpicxx -DMFEM_USE_MPI=TRUE -DMFEM_USE_CONDUIT=TRUE -DMFEM_USE_METIS_5=TRUE -DCMAKE_PREFIX_PATH=${INSTALL_PATH}}
gmake -j install
cd ..

# Build UMT
mkdir build_umt
cd build_umt
cmake ${UMT_PATH}/src -C ${UMT_PATH}/host-configs/example.gnu.cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DMETIS_ROOT=${INSTALL_PATH} -DHYPRE_ROOT=${INSTALL_PATH} -DMFEM_ROOT=${INSTALL_PATH} -DCONDUIT_ROOT=${INSTALL_PATH}

# If needed, additional cmake arguments for the UMT build can be provided on the script command line args. This line will pick them up via the $1 on the next line.
cmake ${UMT_PATH}/src -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=${CXX} -DCMAKE_Fortran_COMPILER=${FC} -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DMETIS_ROOT=${INSTALL_PATH} -DHYPRE_ROOT=${INSTALL_PATH} -DMFEM_ROOT=${INSTALL_PATH} -DCONDUIT_ROOT=${INSTALL_PATH} $1
gmake -j install
cd ..

# Test UMT on 50 cycles of crooked pipe 2D test
srun -n1 ${INSTALL_PATH}/bin/test_driver -i ${UMT_PATH}/tests/mfem_meshes/crooked_pipe/crooked_pipe_rz.mesh -c 50
# Test UMT on 10 cycles of an unstructured 3d mesh problem. Refine the mesh via -r and -R arguments.
srun -n1 ${INSTALL_PATH}/bin/makeUnstructuredBox
srun -n2 ${INSTALL_PATH}/bin/test_driver -i ./unstructBox3D.mesh -c 10 -r 1 -R 6
Loading

0 comments on commit a110b15

Please sign in to comment.