AMReX Guided Tutorials and Example Codes

Welcome to AMReX Tutorials and Example Codes. Here you will find a progression of hands on demonstrations and useful stand-alone examples designed to assist users in learning and writing their own AMReX code. For additional details on the topics presented here, please see the AMReX Source Documentation. The resources are divided into two categories:

Guided Tutorials

Guided tutorials provide a gentle introduction to AMReX features by focusing on key concepts in a progressive way. They are designed to be followed from start to finish. They will focus on a few specific goals of larger importance to using AMReX rather than comment on every line of code.

Example Codes

Example codes are stand-alone examples that demonstrate how to use different parts of the AMReX functionality. They are aimed at users who are comfortable with the basics of AMReX. They present a straightforward application of AMReX features, and provide a starting place for user’s to develop their unique applications.

The example codes listed below are provided in the AMReX-Codes/amrex-tutorials repo, under the directory amrex-tutorials/ExampleCodes. The examples are sorted by the following categories:

  • AMR – Examples of adaptive mesh refinement.

  • Basic – Fundamental operations supported by AMReX.

  • Blueprint – Convert AMReX mesh data into an in-memory Conduit Mesh Blueprint for use with the ALPINE Ascent in situ visualization and analysis tool.

  • EB – Examples of embedded boundaries.

  • FFTW – FFTW and cuFFT single-rank tutorials.

  • ForkJoin – Parallel execution and subgrouping of MPI ranks.

  • GPU – Offload work to the GPUs using AMReX tools.

  • heFFTe – heFFTe distributed tutorials.

  • Linear Solvers – Examples of several linear solvers.

  • ML/PYTORCH – Use of pytorch models to replace point-wise computational kernels.

  • MPMD – Usage of AMReX-MPMD (Multiple Program Multiple Data) framework.

  • MUI – Incorporates the MxUI/MUI (Multiscale Universal interface) frame into AMReX.

  • Particles – Basic usage of AMReX’s particle data structures.

  • Python – Using AMReX and interfacing with AMReX applications form Python - via pyAMReX

  • SDC – Example usage of a “Multi-Implicit” Spectral Deferred Corrections (MISDC) integrator to solve a scalar advection-diffusion-reaction equation.

  • SENSEI – In situ data analysis and visualization through a unified interface.

  • SUNDIALS – Time integration with SUNDIALS backend and native AMReX types.

  • SWFFT – Demonstrates how to call the SWFFT wrapper to the FFTW3 (A distributed memory implementation of the discrete Fourier transform) solver.

Additional Questions and Help

Didn’t find what you were looking for? Have questions we didn’t answer? Please let us know how we can improve by posting on AMReX’s GitHub Discussions.

The copyright notice of AMReX is included in the AMReX home directory as

Your use of this software is under the 3-clause BSD license – the license agreement is included in the AMReX home directory as LICENSE.