### Why Block-Structured AMR?

Block-structured AMR provides a way to exploit varying resolution requirements in space and time by focusing computational resources in spatiotemporal regions of interest. Note that there is no parent-child relationship between coarser grids and finer grids as the grid structure dynamically evolves over time.

Depicted above is a Kelvin-Helmholtz instability using 3 total levels of refinement generated by the publicly available IAMR code (available HERE) for solving the variable-density incompressible Navier-Stokes equations.

### Particles

AMReX provides data structures and iterators for performing data-parallel particle simulations. Our approach is particularly suited to particles that interact with data defined on a (possibly adaptive) block-structured hierarchy of meshes. Example applications include Particle-in-Cell (PIC) simulations, Lagrangian tracers, or particles that exert drag forces onto a fluid, such as in multi-phase flow calculations.

Depicted above is granular material color coded according to their speed, falling into a bucket. This simulation was performed with the MFiX-Exa code developed by NETL, LBNL, and University of Colorado.

### Embedded Boundaries

For computations with complex geometries, AMReX provides data structures and algorithms to employ an embedded boundary (EB) approach to PDE discretizations. In this approach, the underlying computational mesh is uniform and block-structured, but the boundary of the irregular-shaped computational domain conceptually cuts through this mesh.

Depicted above is a compressible high speed swirling jet conducted using the PeleC simulation code created by NREL & LBNL with the support of the Exascale Computing Project. Isosurface shows velocity magnitude.

### Profiling Tools

AMReX-based application codes can be instrumented using AMReX-specific performance profiling tools that take into account the hierarchical nature of the mesh in most AMReX-based applications. These codes can be instrumented for varying levels of profiling detail.

Depicted above is a sample output of the ProfParser tool, a command line application that can create performance summaries, plotfiles showing point to point communication and timelines, HTML call trees, communication call statistics, function timing graphs, and other data products. Read more in the Documentation.