AMReX is a publicly available software framework for building massively parallel block-structured AMR applications. Cell-centered, face-centered and nodal data are supported as well as particles with multiple real and/or integer attributes. Complex geometries can be represented using an embedded boundary approach, and both fluid and particle interactions with walls are enabled. Multilevel geometric multigrid solvers are included in AMReX. Parallelism is achieved using the distribution of grids to nodes using MPI as well as on-node parallelism using OpenMP. AMReX-based applications can interface with external libraries such as CVODE, hypre, and PETSc. Highly efficient parallel I/O for checkpoint/restart and for visualization is included; AMReX's native format is supported by tools such as Visit, Paraview, and yt. In addition, the AMReX distribution contains an extensive User’s Guide and straightforward tutorials that demonstrate how to build parallel adaptive application codes using AMReX.
Usage and applications: The AMReX software framework is supported by the ECP Block-Structured AMR Co-Design Center and began as an extension of the BoxLIb software framework with elements of the embedded boundary capability from Chombo and efficient multigrid strategies from HPGMG. AMReX-based codes are already in use in a number of research areas, including accelerator modeling (WarpX), compressible astrophysics (CASTRO), low Mach number astrophysics (MAESTRO), cosmology (Nyx), compressible and low Mach number combustion (PeleC and PeleLM), and multiphase flow (MFIX-Exa). In addition, DOE Base Math research in a number of areas takes advantage of the AMReX framework.