#include <DisjointBoxLayout.H>
Inheritance diagram for DisjointBoxLayout:
Public Methods | |
DisjointBoxLayout () | |
DisjointBoxLayout (const Vector< Box > &a_boxes, const Vector< int > &a_procIDs) | |
DisjointBoxLayout (const Vector< Box > &a_boxes, const Vector< int > &a_procIDs, const ProblemDomain &a_physDomain) | |
virtual | ~DisjointBoxLayout () |
virtual void | define (const Vector< Box > &a_boxes, const Vector< int > &a_procIDs) |
void | define (BoxLayout &a_layout) |
void | define (BoxLayout &a_layout, const ProblemDomain &a_physDomain) |
virtual void | define (const Vector< Box > &a_boxes, const Vector< int > &a_procIDs, const ProblemDomain &a_physDomain) |
virtual void | define_pd (const Vector< Box > &a_boxes, const Vector< int > &a_procIDs, const ProblemDomain &a_physDomain) |
virtual void | close () |
virtual void | deepCopy (const DisjointBoxLayout &a_source) |
virtual void | deepCopy (const BoxLayout &a_source) |
virtual void | deepCopy (const BoxLayout &a_source, const ProblemDomain &a_physDomain) |
bool | isDisjoint () const |
bool | checkPeriodic (const ProblemDomain &a_domain) const |
bool | checkDomains (const DisjointBoxLayout &a_dbl) const |
Protected Methods | |
const ProblemDomain & | physDomain () const |
Friends | |
class | Copier |
void | coarsen (DisjointBoxLayout &output, const DisjointBoxLayout &input, int refinement) |
void | refine (DisjointBoxLayout &output, const DisjointBoxLayout &input, int refinement) |
void | adjCellLo (DisjointBoxLayout &a_output, const DisjointBoxLayout &a_input, int a_dir, int a_len=1) |
void | adjCellHi (DisjointBoxLayout &a_output, const DisjointBoxLayout &a_input, int a_dir, int a_len=1) |
DisjointBoxLayout is-a BoxLayout that has a concept of disjointedness of the boxes. DisjointBoxLayout is only different from BoxLayout in that it has a method isDisjoint(). DisjointBoxLayouts also have a ProblemDomain member to ensure disjointness in the case of periodic boundary conditions, among other things.
|
|
|
Construct from a Vector of Boxes and optionally a Vector of processor assignments. If the processor assignment Vector is present, it must be either zero-length or the same length as the Box Vector. On exit, the DisjointBoxLayout will be closed. |
|
Construct from a Vector of Boxes and optionally a Vector of processor assignments. If the processor assignment Vector is present, it must be either zero-length or the same length as the Box Vector. On exit, the DisjointBoxLayout will be closed. |
|
|
|
performs problem domain check when we don't have direct access to a problemDomain -- returns true if this and a_dbl have compatible ProblemDomains |
|
Checks to see that problem domains are compatible To be compatible, a_domain and the ProblemDomain in this DisjointBoxLayout must have the same periodicity. They must be periodic in the same dimensions, and in all periodic directions, the period must be the same. There are no checks in non-periodic directions, since DisjointBoxLayouts don't care about physical domains except in the periodic case. |
|
Mark this DisjointBoxLayout as complete and unchangeable. Reimplemented from BoxLayout. |
|
checks that the source BoxLayout isDisjoint, throws an error if it is not. Otherwise, same as BoxLayout::deepCopy |
|
checks that the source BoxLayout isDisjoint, throws an error if it is not. Otherwise, same as BoxLayout::deepCopy Reimplemented from BoxLayout. |
|
Doesn't check for disjointness, since a_source is already guaranteed to be disjoint. Also copies problem domain info |
|
Define this DisjointBoxLayout from a Vector of Boxes. This is a wrapper for a call to BoxLayout::define, required because DisjointBoxLayout::define is overloaded and the compiler will not look into the base class for name resolution. |
|
Shallow define. Only way to promote a BoxLayout. If BoxLayout has been closed, then this method checks isDisjoint and throws an error if not disjoint. If a_layout is disjoint, then this object becomes a closed DisjointBoxLayout object |
|
Shallow define. Only way to promote a BoxLayout. If BoxLayout has been closed, then this method checks isDisjoint and throws an error if not disjoint. If a_layout is disjoint, then this object becomes a closed DisjointBoxLayout object |
|
Define this DisjointBoxLayout from a Vector of Boxes. This is a wrapper for a call to BoxLayout::define, required because DisjointBoxLayout::define is overloaded and the compiler will not look into the base class for name resolution. Reimplemented from BoxLayout. |
|
|
|
Returns true if this object contains a disjoint union of Boxes. The Disjoint testing algorithm assumes that the boxes are CELL-Centered boxes. We can expand the algorithm when someone needs it. bvs |
|
|
|
returns the set of boxes which result from calling Box::adjCellHi on each box in input. output must be open, will be closed upon exiting this function. |
|
returns the set of boxes which you get from calling Box::adjCellLo on each box in input. output must be open, is closed upon exit from this function. |
|
'output' must be open, 'input' must be closed, 'refinement' must be a positive non-zero integer. 'output' and 'input' do not share an implementation. 'output' is first deepcopy'ed from 'input', then coarsen(refinement) is called on each box of 'output'. 'output' returns from this function closed. LayoutIterators from 'input' and 'output' can perform interchangeably. |
|
|
|
see 'coarsen ' and substitute the word "refine" for "coarsen" |