Blockstructured Adaptive Mesh Refinement in object-oriented C++
The AMROC framework supplies a generic object-oriented implementation in C++ of the special version of the blockstructured adaptive mesh refinement algorithm of Marsha Berger and J. Oliger [1] that has been proposed by Marsha Berger and Phil Collela in [2]. This special algorithm is designed especially as a general framework for the adaptive solution of hyperbolic partial differential equations of the form:
Introduction
Due to its limitation to blockstructured grids AMROC is restricted to relatively simple computational domains, but it allows extraordinarily highly resolved computations. An efficient parallelization strategy for distributed memory machines has been implemented and the codes can be run on all high-performance computers that provide the MPI-library.AMROC extends the capabilities of an arbitrary simple solution-routine for a conservative time-explicit finite-volume scheme formulated on a single uniform grid to a complex multi-level simulation code. The only requirement for a seamless integration is that the numerical solution-routine returns the numerical fluxes back to the framework. The fluxes must be known (temporarily) to the framework to allow a conservative flux-correction in grid-cells that abut finer subgrids.
As a demo-application an extended version of Randall J. LeVeque's popular Clawpack package is incorporated into the AMROC framework. Clawpack contains software for solving hyperbolic systems of conservation laws in all space dimensions and is written in Fortran. Especially, a large number of Riemann solvers for various hyperbolic equations has already been formulated (see application section on Clawpack's homepage) and can easily be used within AMROC's Clawpack version. The modular form of Clawpack is preserved completely (a Clawpack-library for each spatial dimension is now build in advance) and should be well-known to Clawpack-users. The small driver-routine to the original Clawpack codes is simply is replaced by the complex AMROC framework.
AMROC itself is formulated on top of the DAGH (Distributed Adaptive Grid Hierarchies) package by Manish Parashar and James C. Browne. The DAGH package stores all data in parallelized hierachical grid functions that follow automatically the "floor-plan" of a single grid hierarchy and capsulates technical parallelization details completely against the adaptive framework. DAGH automatically synchronizes neighbouring subgrids, applies boundary conditions, generates and deletes subgrids, distributes them in a load-balanced manner, etc.
AMROC's version of DAGH implements GridFunction- and GridHierarchy-classes that are much more general and allow a more efficient adaption than those of the original DAGH package. This generality required a complete rewriting of parts of the codes. Various useful features like different refinement factors on each level, multiple periodic boundary conditions, a restart from memory for automatic time-step algorithms based on the CFL-condition and a restart feature for a different number of computing nodes have been added additionally.
[1] M. Berger and J. Oliger. Adaptive mesh refinement for hyperbolic partial differential equations. J. Comput. Phys., 53:484-512, 1984.
[2] M. Berger and P. Colella. Local adaptive mesh refinement for shock hydrodynamics. J. Comput. Phys., 82:64-84, 1988.
Quickstart Users Guide Programmers Reference Installation Examples Download
AMROC Main Home Contactlast update: 6/1/04