The basic AMR algorithm is attributed to Berger, Oliger, and Colella (see e.g., J. Comp. Phys. (82)1:64-84, 1989) and was motivated by the application of explicit time-integration methods to shock hydrodynamics problems on a structured AMR hierarchy. The algorithm requires that integration steps on different levels are interleaved since the time increment used on each level is determined by the spatial resolution of the mesh on that level (e.g., CFL condition). Generally, coarser levels use larger time increments than finer levels. Thus, data must be synchronized between levels and the dynamic regridding process must be coordinated with the time stepping sequence.
We have made some enhancements to the original algorithm to make it more general and we have implemented it in such a way that it may be applied to a broader class of problems. The time refinement integration class is coupled to procedures for integrating the data and regridding hierarchy levels that may be application-specific using the Strategy object-oriented design pattern. Regridding routines are provided by the gridding algorithm class provided elsewhere in the algorithms package. An interface to specific solution methods for manipulating patch data is provided in the time refinement level strategy class.