When to Use pyAMReX?

pyAMReX is usually used for these kinds of workflows:

  1. To enhance an existing AMReX application with Python, Data-Science and AI/ML capabilities,

  2. To write a standalone application or test on AMReX, rapidly prototyped in Python.

Enhance an Application

pyAMReX is used in large, production-quality high-performance applications. See the following examples:


ImpactX is an s-based beam dynamics code including space charge effects.


WarpX is an advanced, time-based electromagnetic & electrostatic Particle-In-Cell code.


Please see the AMReX Tutorials for Python-written, GPU-accelerated AMReX examples:

Unit Tests

We ensure the correctness of pyAMReX with unit tests. Our tests are small, plentiful and can be found in the source code, see: