#include <IntVectSet.H>
Collaboration diagram for IntVectSet:
Public Methods | |
~IntVectSet () | |
{\bf Constructors, Destructor, and defines} | |
IntVectSet () | |
void | define () |
IntVectSet (const IntVectSet &ige_in) | |
void | define (const IntVectSet &ige_in) |
IntVectSet | copy () const |
void | define_intvectset (const IntVectSet &ige_in) |
IntVectSet (const DenseIntVectSet &a_dense) | |
void | define (const DenseIntVectSet &a_dense) |
IntVectSet (const TreeIntVectSet &a_tree) | |
void | define (const TreeIntVectSet &a_tree) |
IntVectSet (const IntVect &iv_in) | |
void | define (const IntVect &iv_in) |
void | define_intvect (const IntVect &iv_in) |
IntVectSet (const Box &b) | |
void | define (const Box &b) |
void | define_box (const Box &b) |
IntVectSet & | operator|= (const IntVectSet &ivs) |
void | or_intvectset (const IntVectSet &ivs) |
IntVectSet & | operator|= (const IntVect &iv) |
void | or_intvect (const IntVect &ivs) |
IntVectSet & | operator|= (const Box &b) |
void | or_box (const Box &b) |
IntVectSet | operator- (const IntVectSet &ivs) const |
{\bf complement operators} | |
IntVectSet | operator- (const Box &b) const |
IntVectSet | operator- (const IntVect &iv) const |
IntVectSet & | operator-= (const IntVectSet &ivs) |
void | minus (const IntVectSet &ivs) |
IntVectSet & | operator-= (const Box &b) |
void | minus_box (const Box &b) |
IntVectSet & | operator-= (const IntVect &iv) |
void | minus_intvect (const IntVect &iv) |
IntVectSet & | operator &= (const IntVectSet &ivs) |
void | and_intvectset (const IntVectSet &ivs) |
IntVectSet & | operator &= (const Box &b) |
void | and_box (const Box &b) |
IntVectSet & | operator &= (const ProblemDomain &domain) |
void | and_domain (const ProblemDomain &d) |
void | grow (int igrow) |
{\bf modification functions} | |
IntVectSet & | grow (int idir, int igrow) |
void | grow_dir (int idir, int igrow) |
IntVectSet & | refine (int iref=2) |
IntVectSet & | coarsen (int iref=2) |
void | shift (const IntVect &iv) |
void | nestingRegion (int radius, const Box &domain) |
void | nestingRegion (int radius, const ProblemDomain &domain) |
void | nestingRegion_prob (int radius, const ProblemDomain &domain) |
void | makeEmpty () |
IntVectSet | chop (int dir, int chop_pnt) |
int | numPts () const |
{\bf accessor and inquiry functions} | |
const Box & | minBox () const |
void | recalcMinBox () const |
bool | isEmpty () const |
bool | isDense () const |
bool | contains (const IntVect &iv) const |
bool | contains (const IntVectSet &iv) const |
bool | contains_intvectset (const IntVectSet &iv) const |
bool | contains (const Box &box) const |
bool | contains_box (const Box &b) const |
Vector< Box > | boxes () const |
void | compact () const |
void | printBoxes (std::ostream &a_ostrm) const |
void | p () const |
void | convert () const |
Static Public Attributes | |
long int | count |
long int | peakcount |
Static Private Methods | |
void | clearStaticMemory () |
Private Attributes | |
bool | m_isdense |
TreeIntVectSet | m_ivs |
DenseIntVectSet | m_dense |
Friends | |
class | IVSIterator |
IntVectSet | operator| (const IntVectSet &ivs1, const IntVectSet &ivs2) |
{\bf union operators} | |
IntVectSet | operator| (const IntVectSet &ivs, const IntVect &iv) |
IntVectSet | operator| (const IntVect &iv, const IntVectSet &ivs) |
IntVectSet | operator| (const IntVectSet &ivs, const Box &b) |
IntVectSet | operator| (const Box &b, const IntVectSet &ivs) |
IntVectSet | operator & (const IntVectSet &ivs1, const IntVectSet &ivs2) |
{\bf Intersection operators} | |
IntVectSet | operator & (const IntVectSet &ivs, const Box &b) |
IntVectSet | operator & (const Box &b, const IntVectSet &ivs) |
IntVectSet | grow (const IntVectSet &ivs, int igrow) |
IntVectSet | refine (const IntVectSet &ivs, int iref=2) |
IntVectSet | coarsen (const IntVectSet &ivs, int iref=2) |
std::ostream & | operator<< (std::ostream &os, const IntVectSet &ivs) |
void | dumpmemoryatexit () |
IntVectSet represents an irregular region in an integer lattice SpaceDim-dimensional index space as an arbitrary collection of IntVects. A full set calculus is defined. Any IntVect or cell-centered Box can be fully represented as an IntVectSet. There is an iterator that provides access to the contents of an IntVectSet. IntVectSets are implicitly cell-centered. Intersection, union, and complement operations are defined for pairs of IntVectSets (and, by extension, an IntVectSet and an IntVect or an IntVectSet and a Box). The minimum Box of an IntVectSet is defined as the smallest Box that contains every IntVect in the IntVectSet.
The IntVects in an IntVectSet do not have a canonical ordering.
|
{\bf Constructors, Destructor, and defines}
|
|
default constructor: defines an empty IntVectSet. |
|
copy constructor: defines this to be a copy of ige_in. |
|
conversion constructor. |
|
conversion constructor. |
|
IntVect constructor: defines this to be an IntVectSet with just one IntVect. |
|
Box constructor: defines this to be an IntVectSet with all the cells in a Box. |
|
|
|
|
|
|
|
|
Chop the IntVectSet at the chop_pnt in the dir direction \ Returns one IntVectSet and modifies the object IntVectSet. \ The union of the two is the original IntVectSet. \ The modified IntVectSet is the low end, the returned IntvectSet \ is the high end. |
|
|
|
Modifies this IntVectSet by coarsening it by a specified factor iref. It is an error if iref <= 0. Definition of coarsening: For each IntVect iv in the original IntVectSet, the refined IntVectSet will contain the IntVect coarsen(iv,iref).\ {\bf This:} \ ---This object is modified.--- |
|
attempts to optimize storage for IntVectSet. This will also optimize iteration through the IntVectSet later. Best to call it when you are no longer modifying the IntVectSet |
|
is every IntVect in this 'box' contained in the IntvectSet. note: this is not performed in a crude point-wise fashion and is faster than a user doing it pointwise themselves |
|
Does this IntVectSet contain the argument IntVectSet? |
|
Does this IntVectSet contain the argument IntVect? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Modifies this IntVectSet by growing it by the specified number of cells in the specified coordinate direction. Directions are zero-based.\ {\bf Arguments:} \ idir (not modified): zero-based coordinate direction to grow in.\ igrow (not modified): number of cells to grow.\ {\bf Returns:} \ This IntVectSet grown by igrow the direction idir.\ {\bf This:} \ ---This object is modified.--- |
|
{\bf modification functions} Modifies this IntVectSet by growing it by the specified number of cells in all directions, including diagonal. It is an error if igrow < 0. \ {\bf Arguments:} \ igrow (not modified): number of cells to grow.\ {\bf Returns:} \ This IntVectSet grown by igrow in all directions.\ {\bf This:} \ ---This object is modified.--- |
|
|
|
Returns true if this IntVectSet is currently being represented in a dense fashion |
|
Returns true if no cells are in this IntVectSet. |
|
sets this IntVectSet to be empty |
|
Returns minimum enclosing box of this IntVectSet. |
|
|
|
|
|
|
|
remove all IntVects that are not at least 'radius' from the the edge of the IntVectSet in any direction. 'radius' must be positive IntVects that border non-periodic boundaries are spared from this trimming. Radius extends across periodic images. |
|
remove all IntVects that are not at least 'radius' from the the edge of the IntVectSet in any direction. 'radius' must be positive IntVects that border the box 'domain' are spared from this trimming |
|
|
|
{\bf accessor and inquiry functions} Returns number of IntVects in this IntVectSet. |
|
Modifies this IntVectSet to be its intersection with a ProblemDomain. \ {\bf Arguments:} \ domain (not modified): \ {\bf Returns:} \ The intersection of the this IntVectSet and the ProblemDomain.\ {\bf This:} \ ---This object is modified.--- |
|
Modifies this IntVectSet to be its intersection with a Box. \ {\bf Arguments:} \ box (not modified): \ {\bf Returns:} \ The intersection of the this IntVectSet and the Box.\ {\bf This:} \ ---This object is modified.--- |
|
Sets this IntVectSet to its intersection with another IntVectSet. \ {\bf Arguments:} \ ivs (not modified): \ {\bf Returns:} \ The intersection of the two IntVectSets.\ {\bf This:} \ ---This object is modified.--- |
|
Return the complement of the argument IntVect within this IntVectSet. |
|
Return the complement of the argument Box within this IntVectSet. |
|
{\bf complement operators} Return the complement of the argument IntVectSet within this IntVectSet. |
|
Modifies this IntVectSet to be the complement of the argument IntVect within this IntVectSet.\ {\bf This:} \ ---This object is modified.--- |
|
Modifies this IntVectSet to be the complement of the argument Box within this IntVectSet. \ {\bf This:} \ ---This object is modified.--- |
|
Modifies this IntVectSet to be the complement of the argument IntVectSet within this IntVectSet. \ {\bf This:} \ ---This object is modified.--- |
|
Sets this IntVectSet to its union with a Box. \ {\bf Arguments:} \ box (not modified): \ {\bf Returns:} \ The union of this IntVect and the Box.\ {\bf This:} \ ---The object is modified--- |
|
Sets this IntVectSet to its union with an IntVect. \ {\bf Arguments:} \ iv (not modified): \ {\bf Returns:} \ The union of this IntVectSet and the IntVect.\ {\bf This:} \ ---The object is modified--- |
|
Sets this IntVectSet to its union with another IntVectSet. \ {\bf Arguments:} \ ivs (not modified): \ {\bf Returns:} \ The union of the two IntVectSets.\ {\bf This:} \ ---The object is modified--- |
|
|
|
|
|
|
|
|
|
|
Forces recalculation of actual minimum box for this IntVectSet |
|
Modifies this IntVectSet by refining it by a specified factor iref. It is an error if iref <= 0. Definition of refinement: For each IntVect iv in the original IntVectSet, the refined IntVectSet will contain the Box refine(Box(iv,iv),iref).\ {\bf This:} \ ---This object is modified.--- |
|
Increment all the IntVects in this IntVectSet by the given iv.\ --this IS changed-- |
|
Returns the IntVectSet that is the argument IntVectSet coarsened by a specified factor iref. It is an error if iref <= 0. Definition of coarsening: For each IntVect iv in the original IntVectSet, the refined IntVectSet will contain the IntVect coarsen(iv,iref). |
|
|
|
Returns the argument IntVectSet grown it by the specified number of cells in all directions, including diagonal. \ {\bf Arguments:} \ ivs (not modified): \ igrow (not midified): number of cells to grow.\ {\bf Returns:} \ The argument IntVectSet grown by igrow in all directions.\ |
|
|
|
Returns the intersection of an IntVectSet and a Box. \ {\bf Arguments:} \ ivs (not modified): \ {\bf Returns:} \ The intersection of the IntVectSet and the Box.\ |
|
Returns the intersection of an IntVectSet and a Box. \ {\bf Arguments:} \ ivs (not modified): \ {\bf Returns:} \ The intersection of the IntVectSet and the Box.\ |
|
{\bf Intersection operators} Returns the intersection of two IntVectSets. The result may be empty.\ {\bf Arguments:} \ ivs1, ivs2 (not modified): \ {\bf Returns:} \ The intersection of the two IntVectSets ivs1 and ivs2.\ |
|
|
|
Returns the union of an IntVectSet and a Box. \ {\bf Arguments:} \ ivs (not midified): \ b (not modified): \ {\bf Returns:} \ The union of the IntVectSet ivs and the Box b.\ |
|
Returns the union of an IntVectSet and a Box. \ {\bf Arguments:} \ ivs (not midified): \ b (not modified): \ {\bf Returns:} \ The union of the IntVectSet ivs and the Box b.\ |
|
Returns the union of an IntVectSet and an IntVect. \ {\bf Arguments:} \ ivs (not modified) \ iv (not modified): \ {\bf Returns:} \ The union of the IntVectSet ivs and the IntVect iv.\ |
|
Returns the union of an IntVectSet and an IntVect. \ {\bf Arguments:} \ ivs (not modified) \ iv (not modified): \ {\bf Returns:} \ The union of the IntVectSet ivs and the IntVect iv.\ |
|
{\bf union operators} Returns the union of two IntVectSets. \ {\bf Arguments:} \ ivs1, ivs2 (not modified): \ {\bf Returns:} \ The union of the two IntVectSets ivs1 and ivs2.\ |
|
Returns the IntVectSet that is the argument IntVectSet refined by a specified factor iref. It is an error if iref <= 0. Definition of refinement: For each IntVect iv in the original IntVectSet, the refined IntVectSet will contain the Box refine(Box(iv,iv),iref). |
|
|
|
|
|
|
|
|
|
|