The objective of this class is to average down information from A^(l+1) to C^(l) but only on the intersection of A^(l+1) and B^(l+1). This class is designed to support class 'LevelGridMetrics' where A is the snapback flux on the old fine mesh, B is the new mesh, and C (= A^l) is the snapback flux on the old coarse mesh. These are the steps (Cr is coarsen operator):
Public Member Functions
|IntersectionAverageFace (const LevelData< FluxBox > &a_A, const int a_nRef)|
|void||copyTo (LevelData< FluxBox > &a_C, const DisjointBoxLayout &a_dblB)|
|Copy the average using a mask. |
|Number of components in A (same as C). |
|Refinement between A & C. |
|Coarsened layout for A. |
Private Member Functions
|IntersectionAverageFace (const IntersectionAverageFace &)|
|IntersectionAverageFace &||operator= (const IntersectionAverageFace &)|
|IntersectionAverageFace::IntersectionAverageFace||(||const LevelData< FluxBox > &||a_A,|
|IntersectionAverageFace::IntersectionAverageFace||(||const IntersectionAverageFace &||)||
|void IntersectionAverageFace::copyTo||(||LevelData< FluxBox > &||a_C,|
|const DisjointBoxLayout &||a_dblB|
Copy the average using a mask.
|IntersectionAverageFace& IntersectionAverageFace::operator=||(||const IntersectionAverageFace &||)||
|const int IntersectionAverageFace::m_nComp
Number of components in A (same as C).
|const int IntersectionAverageFace::m_nRef
Refinement between A & C.
The averager itself stores the averaged data between averaging and copying