Skip to content

Required and Optional Dependencies

This page describes the libraries required to build FrontISTR and the optional libraries that extend its functionality. For instructions on installing each library, refer to the documentation provided by that library.

Required Dependencies

The following tools and libraries are required to build FrontISTR.

Library Version requirement Purpose
CMake ≥ 3.13.4 Build system
C/C++/Fortran compiler Compiling the source code
MPI Parallel communication library (OpenMPI, IntelMPI, etc.)

Optional Dependencies

The following libraries are optional and can be enabled at build time according to the functionality required. See Building with CMake for the corresponding CMake options.

Library CMake option Purpose Source
METIS (v4/v5) WITH_METIS Domain decomposition by graph partitioning Karypis Lab
MUMPS + ScaLAPACK WITH_MUMPS Parallel direct solver MUMPS-Solver.org / Netlib
Intel oneAPI MKL WITH_MKL Direct solver (PARDISO), BLAS/LAPACK Intel
OpenBLAS / LAPACK WITH_LAPACK Numerical linear algebra (condition number estimation) OpenBLAS.net / Netlib
Trilinos ML WITH_ML AMG preconditioning Trilinos Project
REVOCAP_Refiner WITH_REFINER Mesh refinement FrontISTR download page
REVOCAP_Coupler WITH_REVOCAP Coupled analysis FrontISTR download page
NetCDF WITH_NETCDF Output in Exodus II format Unidata
Doxygen WITH_DOC API documentation generation Doxygen.nl

Additional Tools Required for GPU Builds

FrontISTR GPU acceleration is implemented using OpenACC, and the configuration currently verified for operation uses the NVIDIA HPC SDK. In addition to the required libraries listed above, the following tools are required for GPU builds.

Tool Purpose Source
NVIDIA HPC SDK (nvc, nvc++, nvfortran) Compiling OpenACC GPU offloading NVIDIA

For details of the GPU build procedure, including the handling of unsupported libraries, see GPU Build.