/amrex

AMReX: Software Framework for Block Structured AMR

Primary LanguageC++OtherNOASSERTION

AMReX Logo

Citing DOI CI: CMake on Development

A software framework for massively parallel block-structured adaptive mesh refinement applications.

Overview - Features - Documentation - Gallery - Get Help - Contribute - License - Citation

Overview

AMReX is a software framework designed to accelerate scientific discovery for applications solving partial differential equations on block-structured meshes. Its massively parallel adaptive mesh refinement (AMR) algorithms focus computational resources and allow scalable performance on heterogeneous architectures so that scientists can efficiently resolve details in large simulations. AMReX is developed at LBNL, NREL, and ANL as part of the Block-Structured AMR Co-Design Center in the Department of Energy's Exascale Computing Project.

More information is available at the AMReX website.

Features

  • C++ and Fortran interfaces
  • Support for cell-centered, face-centered, edge-centered, and nodal data
  • Support for hyperbolic, parabolic, and elliptic solves on a hierarchical adaptive grid structure
  • Optional subcycling in time for time-dependent PDEs
  • Support for particles
  • Embedded boundary description of irregular geometry
  • Parallelization via flat MPI, OpenMP, hybrid MPI/OpenMP, or MPI/MPI
  • GPU Acceleration with CUDA (NVidia), HIP (AMD) or SYCL (Intel) backends
  • Parallel I/O
  • Plotfile format supported by Amrvis, VisIt, ParaView and yt
  • Built-in profiling tools

Documentation

Four types of documentation are available:

Gallery

AMReX supports several Exascale Computing Project software applications, such as ExaSky, WarpX, Pele(Combustion), Astro, and MFiX-Exa. AMReX has also been used in a wide variety of other scientific simulations, some of which, can be seen in our application gallery.

Gallery Slideshow

Get Help

You can also view questions and ask your own on our GitHub Discussions page.
To obtain additional help, simply post an issue.

Contribute

We are always happy to have users contribute to the AMReX source code. To contribute, issue a pull request against the development branch. Any level of changes are welcomed: documentation, bug fixes, new test problems, new solvers, etc. For more details on how to contribute to AMReX, please see CONTRIBUTING.md.

License

AMReX Copyright (c) 2017, The Regents of the University of California, through Lawrence Berkeley National Laboratory and the Alliance for Sustainable Energy, LLC., through National Renewable Energy Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.

If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Innovation & Partnerships Office at IPO@lbl.gov.

NOTICE. This Software was developed under funding from the U.S. Department of Energy and the U.S. Government consequently retains certain rights. As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, distribute copies to the public, prepare derivative works, and perform publicly and display publicly, and to permit other to do so.

License for AMReX can be found at LICENSE.

Citation

To cite AMReX, please use Citing

@article{AMReX_JOSS,
  doi = {10.21105/joss.01370},
  url = {https://doi.org/10.21105/joss.01370},
  year = {2019},
  month = may,
  publisher = {The Open Journal},
  volume = {4},
  number = {37},
  pages = {1370},
  author = {Weiqun Zhang and Ann Almgren and Vince Beckner and John Bell and Johannes Blaschke and Cy Chan and Marcus Day and Brian Friesen and Kevin Gott and Daniel Graves and Max Katz and Andrew Myers and Tan Nguyen and Andrew Nonaka and Michele Rosso and Samuel Williams and Michael Zingale},
  title = {{AMReX}: a framework for block-structured adaptive mesh refinement},
  journal = {Journal of Open Source Software}
}