Overview of AMReX framework capabilities
developmentAMReX is a C++ software framework designed for developing block-structured adaptive mesh refinement (AMR) algorithms. It is used to solve systems of partial differential equations (PDEs) with complex boundary conditions on current and emerging architectures (CPUs and GPUs).
Key capabilities include:
- Adaptive Mesh Refinement (AMR): Reduces computational cost and memory footprint by using a non-uniform mesh hierarchy.
- Multi-language Support: Core data structures and operations are in C++, but a Fortran-interface allows applications to be written entirely in Fortran.
- Interoperability: Provides interfaces to popular scientific libraries such as SUNDIALS, PETSc, and hypre.
- Complex Geometries: Supports the cut cell / embedded boundary approach for discretizing complex shapes using face apertures, normals, and volume fractions.
- Parallelism: Uses an MPI+X strategy. On CPUs, it typically uses MPI + OpenMP. On GPUs, it uses MPI + CUDA, while also supporting OpenACC and OpenMP for offloading subroutines.