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. [doi]


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

  • Weiqun Zhang

  • Andrew Myers

  • Kevin Gott