#include <DisjointBoxLayout.H>
Inheritance diagram for DisjointBoxLayout:


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.
Modification functions | |
| 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) |
| void | degenerate (DisjointBoxLayout &a_to, const SliceSpec &a_ss) const |
| void | coarsen (DisjointBoxLayout &output, const DisjointBoxLayout &input, int refinement) |
| void | refine (DisjointBoxLayout &output, const DisjointBoxLayout &input, int refinement) |
Public Member Functions | |
| const ProblemDomain & | physDomain () const |
Constructors, destructors, defines | |
| 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) | |
| DisjointBoxLayout (const Vector< Box > &a_boxes, const Vector< int > &a_procIDs, const Vector< int > &a_blockIDs) | |
| virtual | ~DisjointBoxLayout () |
| virtual void | define (const Vector< Box > &a_boxes, const Vector< int > &a_procIDs) |
| virtual void | define (const Vector< Box > &a_boxes, const Vector< int > &a_procIDs, const Vector< int > &a_blockIDs) |
| void | defineAndLoadBalance (const Vector< Box > &a_boxes, Vector< int > *a_procIDs) |
| void | defineAndLoadBalance (const Vector< Box > &a_boxes, Vector< int > *a_procIDs, const ProblemDomain &a_physDomain) |
| void | define (const BoxLayout &a_layout) |
| void | define (const 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) |
Checks | |
| bool | isDisjoint () const |
| bool | checkPeriodic (const ProblemDomain &a_domain) const |
| bool | checkDomains (const DisjointBoxLayout &a_dbl) const |
Private Attributes | |
| ProblemDomain | m_physDomain |
Friends | |
Neighbor functions | |
| 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) |
|
|
Construct BoxLayout with no boxes. |
|
||||||||||||
|
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. |
|
||||||||||||||||
|
Multi-block form of constructor. |
|
|
Ref-counted destruction. Once the last reference to the implementation of this class is destroyed, the data members are cleaned up. |
|
||||||||||||
|
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. |
|
||||||||||||||||
|
Multi-Block form of define function Reimplemented from BoxLayout. |
|
||||||||||||
|
Like the define() that takes the same two arguments, except this one also initializes a_procIDs if it's not NULL. In that case, the passed-in a_procIDs should point to a Vector of size 0. |
|
||||||||||||||||
|
Like the define() that takes the same two arguments, except this one also initializes a_procIDs if it's not NULL. In that case, the passed-in a_procIDs should point to a Vector of size 0. |
|
|
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. |
|
||||||||||||||||
|
Define this DisjointBoxLayout from a Vector of Boxes. Same as define. |
|
|
Returns The Disjoint testing algorithm assumes that the boxes are CELL-Centered boxes. We can expand the algorithm when someone needs it. bvs |
|
|
Checks to see that problem domains are compatible. To be compatible:
There are no checks in non-periodic directions, since DisjointBoxLayouts don't care about physical domains except in the periodic case. |
|
|
Performs problem domain check when we don't have direct access to a problemDomain.
Returns |
|
|
Mark this DisjointBoxLayout as complete and unchangeable. Reimplemented from BoxLayout. |
|
|
Create new open DisjointBoxLayout with copied data. Doesn't check for disjointness, since a_source is already guaranteed to be disjoint. Also copies problem domain info. |
|
|
Create new open DisjointBoxLayout with copied data. Checks that the source BoxLayout isDisjoint, throws an error if it is not. Otherwise, same as BoxLayout::deepCopy. Reimplemented from BoxLayout. |
|
||||||||||||
|
Create new open DisjointBoxLayout with copied data. Checks that the source BoxLayout isDisjoint, throws an error if it is not. Otherwise, same as BoxLayout::deepCopy. |
|
||||||||||||
|
Makes a_to a one-cell-thick version of *this -- sliced at a_ss.position along the a_ss.direction'th axis. If a_ss.position is outside the range of *this, that's a fatal error. |
|
|
|
|
||||||||||||||||
|
Coarsen a DisjointBoxLayout:
output is first deepCopy'ed from input, then coarsen(refinement) is called on each box of output. output returns from this function closed. LayoutIterators and DataIterators from input and output can be used interchangeably. |
|
||||||||||||||||
|
Refine a DisjointBoxLayout:
output is first deepCopy'ed from input, then refine(refinement) is called on each box of output. output returns from this function closed. LayoutIterators and DataIterators from input and output can be used interchangeably. |
|
||||||||||||||||||||
|
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. |
|
||||||||||||||||||||
|
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. |
|
|
|
1.3.6