Preliminaries
Assumptions:
- You are using
bash
for your shell. Minor changes will be required for other shells such ascsh
ortcsh
(e.g., replacing commands of the formexport NAME=value
withsetenv NAME value
).
NOTE: IBAMR configure
detects the presence of required third-party
libraries provided by PETSc. Currently, these include HDF5 and hypre. IBAMR
configure
also attempts to use the BLAS and LAPACK libraries used by PETSc.
When running IBAMR configure
, users are not required to specify configuration
flags for libraries provided by PETSc.
General notes
- Many of the required libraries may already be available on your system, or could be installed using a package manager. It is generally possible to use system installations of serial libraries used by IBAMR (Boost, Eigen, HDF5, Silo, and muParser) when such installations are available.
- A Fortran compiler (e.g.,
gfortran
) is required to build IBAMR. - IBAMR requires that MPI be available but does not require the use of a specific MPI library. We recommend to use a system-provided MPI installation if available.
- Third-party libraries that require MPI (PETSc, hypre,
libMesh
, and SAMRAI), as well as IBAMR, must use the same MPI implementation. - Use the same C, C++, and Fortran compilers to build all of the required libraries. The C++ compiler must support the C++11 standard or newer.
- GNU M4 is required. (Often available via package managers)
- SAMRAI must be patched to work properly with IBAMR. See instructions below.
- SAMRAI must be configured with the flag
--enable-implicit-template-instantiation
. - Debugging builds should be used when developing new models or code. Use optimized builds of PETSc, SAMRAI, and IBAMR only for production runs (i.e., after all model or method development work has been completed).
Getting help
If you experience difficulties building IBAMR, please contact the IBAMR Users or IBAMR Developers Google Groups for further assistance. If you experience difficulties building any of the required third-party libraries, please attempt to contact the maintainers of those libraries, or request help through the IBAMR Users or IBAMR Developers Google Groups.