#include <BoxDomain.H>
Public Types | |
typedef BoxList::const_iterator | const_iterator |
Public Member Functions | |
BoxDomain () | |
Construct an empty BoxDomain of IndexType::TheCellType(). | |
BoxDomain (const Box &bx) | |
A Box Domain out of single Box. | |
BoxDomain (IndexType itype) | |
Construct an empty BoxDomain of IndexType itype. | |
void | add (const Box &b) |
Add a Box to the domain. | |
void | add (const BoxList &bl) |
Add all Boxes in the BoxList to the domain. | |
BoxDomain & | rmBox (const Box &b) |
Remove a box from the domain. | |
bool | ok () const |
Returns True if this BoxDomain is valid. | |
BoxList | boxList () const |
Create a BoxList from this BoxDomain. | |
bool | operator== (const BoxDomain &rhs) const |
Are the BoxDomains equal? | |
bool | operator!= (const BoxDomain &rhs) const |
Are the BoxDomains not equal? | |
BoxDomain & | refine (int ratio) |
Refine all Boxes in the domain by the refinement ratio. | |
BoxDomain & | coarsen (int ratio) |
Coarsen all Boxes in the domain by the refinement ratio. | |
BoxDomain & | intersect (const Box &b) |
Intersect this BoxDomain with Box b. | |
BoxDomain & | accrete (int sz) |
Grow each Box by size sz. | |
BoxDomain & | complementIn (const Box &b, const BoxDomain &bl) |
Creates the complement of BoxDomain bl in Box b. | |
Protected Types | |
typedef std::list< Box >::iterator | iterator |
Protected Member Functions | |
void | push_back (const Box &bn) |
Append a Box to this BoxList. | |
void | push_front (const Box &bn) |
Prepend a Box to this BoxList. | |
void | join (const BoxList &blist) |
Join the BoxList to ourselves. | |
void | catenate (BoxList &blist) |
Catenate the BoxList to ourselves. Removes entries from blist. | |
void | clear () |
Remove all Boxes from this BoxList. | |
int | size () const |
The number of Boxes in this BoxList. | |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
bool | operator== (const BoxList &rhs) const |
Is this BoxList equal to rhs? | |
bool | operator!= (const BoxList &rhs) const |
Is this BoxList notequal to rhs? | |
bool | isEmpty () const |
Is this BoxList empty? | |
bool | isNotEmpty () const |
Is this BoxList not empty? | |
bool | isDisjoint () const |
True if the set of intersecting Boxes is empty. | |
bool | contains (const IntVect &v) const |
True if the IntVect is within any of the Boxes in this BoxList. | |
bool | contains (const Box &b) const |
True if the Box is within any of the Boxes in the List. | |
bool | contains (const BoxList &bl) const |
True if all Boxes in bl are contained in this BoxList. | |
bool | contains (const BoxArray &ba) const |
True if all Boxes in ba are contained in this BoxList. | |
BoxList & | intersect (const BoxList &b) |
Modify this BoxList to contain only its intersection with BoxList b. | |
BoxList & | remove (const Box &bx) |
Remove the Box from this BoxList. | |
BoxList & | remove (iterator bli) |
Remove the pointed to Box from this BoxList. | |
BoxList & | complementIn (const Box &b, const BoxList &bl) |
Creates the complement of BoxList bl in Box b. | |
BoxList & | refine (const IntVect &ratio) |
Refine each Box in the BoxList by the ratio. | |
BoxList & | coarsen (const IntVect &ratio) |
Coarsen each Box in the BoxList by the ratio. | |
BoxList & | shift (int dir, int nzones) |
Applies Box::shift(int,int) to each Box in the BoxList. | |
BoxList & | shiftHalf (int dir, int num_halfs) |
Applies Box::shiftHalf(int,int) to each Box in the BoxList. | |
BoxList & | shiftHalf (const IntVect &iv) |
Applies Box::shiftHalf(IntVect) to each Box in BoxList. | |
int | simplify () |
Merge adjacent Boxes in this BoxList. | |
int | minimize () |
Merges all possible adjacent Boxes. | |
BoxList & | maxSize (int chunk) |
Forces each Box in the BoxList to have sides of length <= chunk. | |
BoxList & | maxSize (const IntVect &chunk) |
Forces each Box in the BoxList to have dimth side of length <= chunk[dim]. | |
Box | minimalBox () const |
Returns smallest Box that contains all Boxes in this BoxList. | |
IndexType | ixType () const |
Returns the IndexType of Boxes in this BoxList. | |
BoxList & | surroundingNodes () |
Applies surroundingNodes(Box) to each Box in BoxArray. | |
BoxList & | surroundingNodes (int dir) |
Applies surroundingNodes(Box,int) to each Box in BoxList. | |
BoxList & | enclosedCells () |
Applies Box::enclosedCells() to each Box in the BoxList. | |
BoxList & | enclosedCells (int dir) |
Applies Box::enclosedCells(int) to each Box in the BoxList. | |
BoxList & | convert (IndexType typ) |
Applies Box::convert(IndexType) to each Box in the BoxList. | |
std::list< Box > & | listBox () |
const std::list< Box > & | listBox () const |
Protected Attributes | |
std::list< Box > | lbox |
Friends | |
class | BoxDomain |
A BoxDomain is a BoxList with the restriction that Boxes in the list are disjoint.
Note that a BoxDomain is NOT a BoxList due to the protected inheritance.
This is a concrete class, not a polymorphic one.
Reimplemented from BoxList.
typedef std::list<Box>::iterator BoxList::iterator [inherited] |
BoxDomain::BoxDomain | ( | ) |
Construct an empty BoxDomain of IndexType::TheCellType().
BoxDomain::BoxDomain | ( | IndexType | itype | ) | [explicit] |
void BoxDomain::add | ( | const Box & | b | ) |
Add a Box to the domain.
References BL_ASSERT, BoxLib::boxDiff(), BoxList::ixType(), Box::ixType(), BoxList::lbox, BoxList::listBox(), and ok().
void BoxDomain::add | ( | const BoxList & | bl | ) |
Remove a box from the domain.
References BL_ASSERT, BoxLib::boxDiff(), BoxList::ixType(), Box::ixType(), BoxList::lbox, and BoxList::listBox().
Referenced by FabArrayCopyDescriptor< FAB >::AddBoxDoIt().
bool BoxDomain::ok | ( | ) | const |
Returns True if this BoxDomain is valid.
Checks for disjointness. Returns true if the BoxDomain is empty.
Reimplemented from BoxList.
References BoxList::begin(), BoxList::end(), and BoxList::ok().
Referenced by add(), complementIn(), intersect(), and refine().
BoxList BoxDomain::boxList | ( | ) | const |
bool BoxDomain::operator== | ( | const BoxDomain & | rhs | ) | const |
bool BoxDomain::operator!= | ( | const BoxDomain & | rhs | ) | const |
BoxDomain & BoxDomain::refine | ( | int | ratio | ) |
Refine all Boxes in the domain by the refinement ratio.
Reimplemented from BoxList.
References BL_ASSERT, ok(), and BoxList::refine().
Referenced by BoxLib::refine().
BoxDomain & BoxDomain::coarsen | ( | int | ratio | ) |
Coarsen all Boxes in the domain by the refinement ratio.
Reimplemented from BoxList.
References BoxList::clear(), and BoxList::coarsen().
Referenced by BoxLib::coarsen().
Intersect this BoxDomain with Box b.
Reimplemented from BoxList.
References BL_ASSERT, BoxList::intersect(), and ok().
Referenced by BoxLib::intersect().
BoxDomain & BoxDomain::accrete | ( | int | sz | ) |
Grow each Box by size sz.
Reimplemented from BoxList.
References BoxList::accrete(), and BoxList::clear().
Referenced by BoxLib::accrete().
Creates the complement of BoxDomain bl in Box b.
References BL_ASSERT, BoxList::complementIn(), and ok().
Referenced by BoxLib::complementIn().
void BoxList::push_back | ( | const Box & | bn | ) | [inline, inherited] |
References BL_ASSERT, Box::ixType(), BoxList::ixType(), and BoxList::lbox.
Referenced by FabArrayCopyDescriptor< FAB >::AddBoxDoIt(), BoxList::BoxList(), BoxArray::boxList(), BoxList::complementIn(), BoxList::intersect(), and BoxList::maxSize().
void BoxList::push_front | ( | const Box & | bn | ) | [inline, inherited] |
Prepend a Box to this BoxList.
References BL_ASSERT, Box::ixType(), BoxList::ixType(), and BoxList::lbox.
void BoxList::join | ( | const BoxList & | blist | ) | [inherited] |
void BoxList::catenate | ( | BoxList & | blist | ) | [inherited] |
Catenate the BoxList to ourselves. Removes entries from blist.
References BL_ASSERT, BoxList::isEmpty(), BoxList::ixType(), and BoxList::lbox.
void BoxList::clear | ( | ) | [inline, inherited] |
Remove all Boxes from this BoxList.
References BoxList::lbox.
Referenced by accrete(), FabArrayCopyDescriptor< FAB >::AddBox(), coarsen(), and BoxList::complementIn().
int BoxList::size | ( | ) | const [inline, inherited] |
The number of Boxes in this BoxList.
References BoxList::lbox.
Referenced by BoxList::maxSize(), BoxArray::maxSize(), operator<<(), and BoxList::operator==().
BoxList::iterator BoxList::begin | ( | ) | [inline, inherited] |
References BoxList::lbox.
Referenced by BoxList::accrete(), add(), BoxList::coarsen(), BoxList::complementIn(), BoxLib::complementIn(), BoxList::contains(), BoxList::convert(), BoxList::enclosedCells(), BoxList::intersect(), BoxList::isDisjoint(), BoxList::maxSize(), BoxArray::maxSize(), BoxList::minimalBox(), BoxList::ok(), ok(), operator<<(), BoxList::operator==(), BoxList::refine(), BaseFab< T >::setComplement(), BoxList::shift(), BoxList::shiftHalf(), BoxList::simplify(), and BoxList::surroundingNodes().
BoxList::const_iterator BoxList::begin | ( | ) | const [inline, inherited] |
References BoxList::lbox.
BoxList::iterator BoxList::end | ( | ) | [inline, inherited] |
References BoxList::lbox.
Referenced by BoxList::accrete(), add(), BoxList::coarsen(), BoxList::complementIn(), BoxLib::complementIn(), BoxList::contains(), BoxList::convert(), BoxList::enclosedCells(), BoxList::intersect(), BoxList::isDisjoint(), BoxList::maxSize(), BoxArray::maxSize(), BoxList::minimalBox(), BoxList::ok(), ok(), operator<<(), BoxList::operator==(), BoxList::refine(), BaseFab< T >::setComplement(), BoxList::shift(), BoxList::shiftHalf(), BoxList::simplify(), and BoxList::surroundingNodes().
BoxList::const_iterator BoxList::end | ( | ) | const [inline, inherited] |
References BoxList::lbox.
bool BoxList::operator== | ( | const BoxList & | rhs | ) | const [inherited] |
Is this BoxList equal to rhs?
References BoxList::begin(), BoxList::end(), and BoxList::size().
Referenced by BoxList::operator!=(), operator!=(), and operator==().
bool BoxList::operator!= | ( | const BoxList & | rhs | ) | const [inherited] |
bool BoxList::isEmpty | ( | ) | const [inline, inherited] |
Is this BoxList empty?
References BoxList::lbox.
Referenced by BoxList::catenate(), BoxList::contains(), and BoxList::minimalBox().
bool BoxList::isNotEmpty | ( | ) | const [inline, inherited] |
bool BoxList::isDisjoint | ( | ) | const [inherited] |
bool BoxList::contains | ( | const IntVect & | v | ) | const [inherited] |
True if the IntVect is within any of the Boxes in this BoxList.
References BoxList::begin(), and BoxList::end().
Referenced by BoxList::contains().
bool BoxList::contains | ( | const Box & | b | ) | const [inherited] |
True if the Box is within any of the Boxes in the List.
The Box must also have the same IndexType as those in this BoxList.
References BoxLib::complementIn(), and BoxList::isEmpty().
bool BoxList::contains | ( | const BoxList & | bl | ) | const [inherited] |
True if all Boxes in bl are contained in this BoxList.
References BoxList::begin(), BoxList::contains(), and BoxList::end().
bool BoxList::contains | ( | const BoxArray & | ba | ) | const [inherited] |
True if all Boxes in ba are contained in this BoxList.
References BoxList::contains(), and BoxArray::size().
Modify this BoxList to contain only its intersection with BoxList b.
References BoxList::begin(), BoxList::end(), and BoxList::push_back().
Remove the Box from this BoxList.
References BL_ASSERT, Box::ixType(), BoxList::ixType(), and BoxList::lbox.
Remove the pointed to Box from this BoxList.
References BL_ASSERT, IndexType::ixType(), BoxList::ixType(), and BoxList::lbox.
Creates the complement of BoxList bl in Box b.
References BoxList::begin(), BoxLib::boxDiff(), BoxList::clear(), BoxList::end(), BoxList::isNotEmpty(), BoxList::lbox, and BoxList::push_back().
Referenced by complementIn().
Refine each Box in the BoxList by the ratio.
References BoxList::begin(), BoxList::end(), and BoxList::refine().
Coarsen each Box in the BoxList by the ratio.
References BoxList::begin(), BoxList::coarsen(), and BoxList::end().
BoxList & BoxList::shift | ( | int | dir, | |
int | nzones | |||
) | [inherited] |
Applies Box::shift(int,int) to each Box in the BoxList.
References BoxList::begin(), BoxList::end(), and BoxList::shift().
Referenced by BoxList::shift().
BoxList & BoxList::shiftHalf | ( | int | dir, | |
int | num_halfs | |||
) | [inherited] |
Applies Box::shiftHalf(int,int) to each Box in the BoxList.
References BoxList::begin(), BoxList::end(), and BoxList::shiftHalf().
Referenced by BoxList::shiftHalf().
Applies Box::shiftHalf(IntVect) to each Box in BoxList.
References BoxList::begin(), BoxList::end(), and BoxList::shiftHalf().
int BoxList::simplify | ( | ) | [inherited] |
Merge adjacent Boxes in this BoxList.
Return the number of Boxes merged.
References BoxList::begin(), BoxList::end(), BoxList::lbox, and BoxLib::max().
Referenced by BoxList::minimize().
int BoxList::minimize | ( | ) | [inherited] |
Merges all possible adjacent Boxes.
Returns the total number of Boxes merged.
References BoxList::simplify().
BoxList & BoxList::maxSize | ( | int | chunk | ) | [inherited] |
Forces each Box in the BoxList to have dimth side of length <= chunk[dim].
References BoxList::begin(), BoxList::end(), BoxList::push_back(), and BoxList::size().
Box BoxList::minimalBox | ( | ) | const [inherited] |
Returns smallest Box that contains all Boxes in this BoxList.
References BoxList::begin(), BoxList::end(), BoxList::isEmpty(), and Box::minBox().
IndexType BoxList::ixType | ( | ) | const [inline, inherited] |
Returns the IndexType of Boxes in this BoxList.
Referenced by add(), BoxList::BoxList(), BoxList::catenate(), BoxList::join(), operator<<(), BoxList::push_back(), BoxList::push_front(), BoxList::remove(), and rmBox().
BoxList & BoxList::surroundingNodes | ( | ) | [inherited] |
Applies surroundingNodes(Box) to each Box in BoxArray.
See the documentation of Box for details.
References BoxList::begin(), BoxList::end(), and BoxList::surroundingNodes().
Referenced by BoxList::surroundingNodes().
BoxList & BoxList::surroundingNodes | ( | int | dir | ) | [inherited] |
Applies surroundingNodes(Box,int) to each Box in BoxList.
See the documentation of Box for details.
References BoxList::begin(), BoxList::end(), and BoxList::surroundingNodes().
BoxList & BoxList::enclosedCells | ( | ) | [inherited] |
Applies Box::enclosedCells() to each Box in the BoxList.
References BoxList::begin(), BoxList::enclosedCells(), and BoxList::end().
Referenced by BoxList::enclosedCells().
BoxList & BoxList::enclosedCells | ( | int | dir | ) | [inherited] |
Applies Box::enclosedCells(int) to each Box in the BoxList.
References BoxList::begin(), BoxList::enclosedCells(), and BoxList::end().
Applies Box::convert(IndexType) to each Box in the BoxList.
References BoxList::begin(), and BoxList::end().
std::list< Box > & BoxList::listBox | ( | ) | [inline, protected, inherited] |
const std::list< Box > & BoxList::listBox | ( | ) | const [inline, protected, inherited] |
References BoxList::lbox.
friend class BoxDomain [friend, inherited] |
std::list<Box> BoxList::lbox [protected, inherited] |
Referenced by add(), BoxList::begin(), BoxList::catenate(), BoxList::clear(), BoxList::complementIn(), BoxList::end(), BoxList::intersect(), BoxList::isEmpty(), BoxList::isNotEmpty(), BoxList::join(), BoxList::listBox(), BoxList::push_back(), BoxList::push_front(), BoxList::remove(), rmBox(), BoxList::simplify(), and BoxList::size().