AMR++ is an object-oriented C++ class library for serial and parallel adaptive mesh refinement. Its purpose is to simplify the development of serial and parallel adaptive mesh refinement codes. It is based upon the OVERTURE C++ object-oriented framework, a large collection of C++ class libraries that work together to provide a simplified method of developing numerical PDE solvers for complex geometries in serial and parallel environments. OVERTURE is built on top of the A++/P++ array class libraries; A++ is a serial array class library permitting FORTRAN 90 like array operations and P++ is a parallel array class library with the same interface and hiding the details of distributed or shared memory parallelism. Additionally, OVERTURE provides specialized parallel support, including load balancing using the parallel Multilevel Load Balancing (MLB) algorithm. AMR++ is built on top of OVERTURE, the result being a hierarchy of class libraries representing different levels of abstraction for AMR, general numerical algorithms, complex geometry, parallelism, and load balancing.
AMR++ is independent of the equations being solved and provides
support required for general steady-state and time-dependent
applications. AMR++ permits the reuse of the user's single grid
solution and thus significantly simplifies the move from a single
grid application to the same application using adaptive mesh
refinement. General support is provided for the complexities
of adaptive regridding, sibling relationships between grids
at the same refinement level, and data transfer operations between
refinement levels, AMR graphic support (as part of the OVERTURE
graphics support) etc. Additional support is provided in an
specialized interface that uses the user's single grid solver
and that either hides most details or permits the selection
of options that simplify the development of the final adaptive
mesh refinement application.
Back to Workshop Schedule