AmrCore Source Code
In this Chapter we give an overview of functionality contained in the
amrex/Src/AmrCore
source code. This directory contains source code for the
following:
Storing information about the grid layout and processor distribution mapping at each level of refinement.
Functions to create grids at different levels of refinement, including tagging operations.
Operations on data at different levels of refinement, such as interpolation and restriction operators.
Flux registers used to store and manipulate fluxes at coarse-fine interfaces.
Particle support for AMR (see Particles).
There is another source directory, amrex/Src/Amr/
, which contains
additional classes used to manage the time-stepping for AMR simulations.
However, it is possible to build a fully adaptive, subcycling-in-time
simulation code without these additional classes.
In this Chapter, we restrict our use to the amrex/Src/AmrCore
source code
and present a tutorial that performs an adaptive, subcycling-in-time simulation
of the advection equation for a passively advected scalar. The accompanying
tutorial code is available in amrex-tutorials/ExampleCodes/Amr/Advection_AmrCore
with
build/run directory Exec/SingleVortex
. In this example, the velocity field
is a specified function of space and time, such that an initial Gaussian
profile is displaced but returns to its original configuration at the final
time. The boundary conditions are periodic and we use a refinement ratio of
\(r=2\) between each AMR level. The results of the simulation in
two-dimensions are depicted in the Table showing the SingleVortex
Tutorial.