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:
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.