Mathematical Operations Package

The Mathematical Operations Package contains classes that provide basic numerical operations for array-based (i.e., cell-centered, face-centered, side-centered, node-centered, and edge-centered quantities) data on an AMR patch hierarchy. Routines include arithmetic as well as other operations, such as dot products and norms. Operations may be applied on individual patches or collections of patch levels in an AMR hierarchy. For each patch data type, two sets of classes are provided. One provides operations for a single patch. The other performs operations on hierarchy levels. The hierarchy operation classes are implemented using the patch operation classes. The patch operation classes are implemented using the array data operation classes. The array operation classes apply to all array-based patch data types.

The operations are used mostly in the vector kernel classes provided in the "Solvers" package. However, they are just as easily used independent of the vectors. Many of the operations allow one to define control volume elements that weight the contribution of each data entry in the particular operation and geometry of the variable involved. This is particularly useful for computing quantities such as norms on a locally-refined AMR hierarchy where it may be necessary to mask out regions on coarser levels that are covered by refined cells.

For ease of use, a simple operation manager is provided so that one may obtain a pointer to an appropriate operator object by querying the manager object with the variable of interest. At this time, the manager deals with hierarchy operation objects only. It is assumed that routines that treat individual patches will be aware of the form of the data and so these routines can generate the proper operation objects directly. Additional operation manager capabilities may be provided in the future.

Support for mathematical operations is divided into seven categories:

  1. operations for array data (all others depend on these)
  2. cell-centered data operations
  3. edge-centered data operations
  4. face-centered data operations
  5. node-centered data operations
  6. side-centered data operations
  7. hierarchy operations independent of centering (used in vectors)

All class names in the Mathematical Operations package are in the namespace "math".

In the interest of brevity, we include documentation for the array operation classes and those that treat cell-centered patch data only. The operation classes for the other array-based patch data types are similar.


Generated on Thu Jun 18 11:28:17 2009 for SAMRAI by  doxygen 1.5.1