AMReX is a software framework containing all the functionality to write massively parallel,
block-structured adaptive mesh refinement (AMR) applications.
Development of AMReX is centered at LBNL with contributions from NREL and ANL. All three labs are part of the
DOE Exascale Computing Project's Block-Structured AMR Co-Design Center.
AMReX has been documented in this JOSS paper:
W. Zhang, A. Almgren, V. Beckner, J. Bell, J. Blaschke, C Chan, M. Day, B. Friesen, K. Gott, D. Graves,
M. Katz, A. Myers T. Nguyen, A. Nonaka, M. Rosso, S. Williams and M. Zingale,
AMReX: a framework for block-structured adaptive mesh refinement,
Journal of Open Source Software, 4(37), 1370, 2019.
Key features of AMReX include:
Primarily C++ with Fortran interfaces available
Support for 1D, 2D and 3D
Support for cell-centered, face-centered, edge-centered, and nodal data
Support for particles and particle-mesh operations
Support for embedded boundary (cut cell) representations of complex geometries
Support for hyperbolic, parabolic, and elliptic solves on hierarchical adaptive grid structure
Optional subcycling in time for time-dependent PDEs
Hybrid parallelization strategy based on MPI+X, where X is OpenMP for multicore architectures,
and primarily CUDA for architectures including NVIDIA GPUs and HIP for architectures including AMD GPUs
Highly efficient parallel I/O, including native and hdf5 format
Plotfile format supported by AmrVis, VisIt, ParaView, and yt.
AMReX Source & Documentation
AMReX is publicly available at
Extensive documentation is availble at
AMReX Core Development Team