Chombo + EB  3.2
Public Member Functions | Static Public Attributes | Static Private Member Functions | Private Attributes | Friends | List of all members
IntVectSet Class Reference

An irregular domain on an integer lattice. More...

#include <IntVectSet.H>

Public Member Functions

bool operator== (const IntVectSet &a_ivs) const
 Returns true if this IntVectSet has the same IntVects as a_ivs. More...
 
bool operator< (const IntVectSet &a_ivs) const
 
void printBoxes (std::ostream &a_ostream) const
 Writes a Vector<Box> representation to an output stream. More...
 
void p () const
 Writes a Vector<Box> representation to the parallel stdout. More...
 
void convert () const
 

Static Public Attributes

static long int count
 
static long int peakcount
 
static int s_maxDense
 

Static Private Member Functions

static void clearStaticMemory ()
 

Private Attributes

bool m_isdense
 
TreeIntVectSet m_ivs
 
DenseIntVectSet m_dense
 

Friends

class IVSIterator
 
std::ostream & operator<< (std::ostream &os, const IntVectSet &ivs)
 Writes a text representation of an IntVectSet to an output stream. More...
 
void dumpmemoryatexit ()
 

Constructors, Destructor, and defines

 ~IntVectSet ()
 
 IntVectSet ()
 default constructor: defines an empty IntVectSet. More...
 
void define ()
 default define: modifies this IntVectSet to be empty. More...
 
 IntVectSet (const IntVectSet &ivs)
 copy constructor More...
 
void define (const IntVectSet &ivs)
 copy define: modifies this IntVectSet into a copy of ivs More...
 
void define_intvectset (const IntVectSet &ivs)
 copy define: same as define(IntVectSet) More...
 
IntVectSet copy () const
 return a copy of this IntVectSet More...
 
 IntVectSet (const DenseIntVectSet &a_dense)
 conversion constructor More...
 
void define (const DenseIntVectSet &a_dense)
 conversion define More...
 
 IntVectSet (const TreeIntVectSet &a_tree)
 conversion constructor More...
 
void define (const TreeIntVectSet &a_tree)
 conversion define More...
 
 IntVectSet (const IntVect &iv)
 IntVect constructor. More...
 
void define (const IntVect &iv)
 IntVect define: modifies this IntVectSet to have just one IntVect. More...
 
void define_intvect (const IntVect &iv)
 IntVect define: same as define(IntVect) More...
 
 IntVectSet (const Box &b)
 Box constructor. More...
 
void define (const Box &b)
 Box define. More...
 
void define_box (const Box &b)
 Box define: same as define(Box) More...
 
void define_boxCorners (const Box &b)
 Define this IntVectSet to have all the corners of the input box. More...
 

Union operators

IntVectSet operator| (const IntVectSet &ivs1, const IntVectSet &ivs2)
 Returns a new IntVectSet that is the union of two IntVectSets. More...
 
IntVectSet operator| (const IntVectSet &ivs, const IntVect &iv)
 Returns a new IntVectSet that is the union of an IntVectSet and an IntVect. More...
 
IntVectSet operator| (const IntVect &iv, const IntVectSet &ivs)
 Returns a new IntVectSet that is the union of an IntVectSet and an IntVect. More...
 
IntVectSet operator| (const IntVectSet &ivs, const Box &b)
 Returns a new IntVectSet that is the union of an IntVectSet and a Box. More...
 
IntVectSet operator| (const Box &b, const IntVectSet &ivs)
 Returns a new IntVectSet that is the union of an IntVectSet and a Box. More...
 
IntVectSetoperator|= (const IntVectSet &ivs)
 unions another IntVectSet ivs into this IntVectSet More...
 
void or_intvectset (const IntVectSet &ivs)
 same as operator|= except it doesn't return *this More...
 
IntVectSetoperator|= (const IntVect &iv)
 unions a single IntVect iv into this IntVectSet More...
 
void or_intvect (const IntVect &ivs)
 same as operator|= except it doesn't return *this More...
 
IntVectSetoperator|= (const Box &b)
 unions the IntVects in the Box into this IntVectSet More...
 
void or_box (const Box &b)
 same as operator|= except it doesn't return *this More...
 

Complement operators

IntVectSet operator- (const IntVectSet &ivs) const
 Returns the complement of the IntVectSet ivs within this IntVectSet. More...
 
IntVectSet operator- (const Box &b) const
 Returns the complement of the Box b within this IntVectSet. More...
 
IntVectSet operator- (const IntVect &iv) const
 Returns the complement of the IntVect iv within this IntVectSet. More...
 
IntVectSetoperator-= (const IntVectSet &ivs)
 Remove the IntVects in the IntVectSet ivs from this IntVectSet. More...
 
void minus (const IntVectSet &ivs)
 same as operator-= except it doesn't return *this More...
 
IntVectSetoperator-= (const Box &b)
 Remove the IntVects in the Box b from this IntVectSet. More...
 
void minus_box (const Box &b)
 same as operator-= except it doesn't return *this More...
 
IntVectSetoperator-= (const IntVect &iv)
 Remove the IntVect iv from this IntVectSet. More...
 
void minus_intvect (const IntVect &iv)
 same as operator-= except it doesn't return *this More...
 

Intersection operators

IntVectSet operator & (const IntVectSet &ivs1, const IntVectSet &ivs2)
 Returns a new IntVectSet that is the intersection of two IntVectSets. More...
 
IntVectSet operator & (const IntVectSet &ivs, const Box &b)
 Returns a new IntVectSet that is the intersection of an IntVectSet and a Box. More...
 
IntVectSet operator & (const Box &b, const IntVectSet &ivs)
 Returns a new IntVectSet that is the intersection of an IntVectSet and a Box. More...
 
IntVectSetoperator &= (const IntVectSet &ivs)
 Modifies this IntVectSet to its intersection with another IntVectSet. More...
 
void and_intvectset (const IntVectSet &ivs)
 same as operator&= except it doesn't return *this More...
 
IntVectSetoperator &= (const Box &b)
 Modifies this IntVectSet to be its intersection with a Box. More...
 
void and_box (const Box &b)
 same as operator&= except it doesn't return *this More...
 
IntVectSetoperator &= (const ProblemDomain &domain)
 Modifies this IntVectSet to be its intersection with the Box in a ProblemDomain. More...
 
void and_domain (const ProblemDomain &d)
 same as operator&= except it doesn't return *this More...
 

Modification functions

IntVectSet grow (const IntVectSet &ivs, int igrow)
 Add IntVects to an IntVectSet in all directions. More...
 
IntVectSet refine (const IntVectSet &ivs, int iref)
 Refine all the IntVects in an IntVectSet. More...
 
IntVectSet coarsen (const IntVectSet &ivs, int iref)
 Coarsen all the IntVects in an IntVectSet. More...
 
void grow (int igrow)
 Add IntVects to this IntVectSet in all directions. More...
 
IntVectSetgrow (int idir, int igrow)
 Add IntVects to this IntVectSet in one direction. More...
 
void grow_dir (int idir, int igrow)
 same as grow(idir,igrow) except doesn't return *this More...
 
void growHi ()
 Analogous to surroundingNodes() for a Box. More...
 
void growHi (const int a_dir)
 Analogous to surroundingNodes(dir) for a Box. More...
 
IntVectSetrefine (int iref=2)
 Refine all the IntVects in this IntVecSet. More...
 
IntVectSetcoarsen (int iref=2)
 Coarsen all the IntVects in this IntVectSet. More...
 
void shift (const IntVect &iv)
 Increment all the IntVects in this IntVectSet by the IntVect iv. More...
 
void nestingRegion (int radius, const Box &domain, int granularity=1)
 Make this IntVectSet be properly nested. More...
 
void nestingRegion (int radius, const ProblemDomain &probdomain, int granularity=1)
 Make this IntVectSet be properly nested. More...
 
void nestingRegion_prob (int radius, const ProblemDomain &probdomain)
 same as nestingRegion() except it doesn't return *this More...
 
void makeEmpty ()
 Modifies this IntVectSet to be empty. More...
 
void makeEmptyBits ()
 Modifies this IntVectSet to empty but leaves dense domain box unchanged. More...
 
IntVectSet chop (int dir, int chop_pnt)
 Chop the IntVectSet at the chop_pnt index in the dir direction. More...
 
void chop (int dir, int chop_pnt, IntVectSet &a_hi)
 
static void setMaxDense (const int &a_maxDense)
 

Accessor and Inquiry functions

int numPts () const
 Returns the number of IntVects in this IntVectSet. More...
 
const BoxminBox () const
 Returns the minimum enclosing box of this IntVectSet. More...
 
void recalcMinBox () const
 Forces recalculation of the minimum enclosing box of this IntVectSet. More...
 
bool isEmpty () const
 Returns true if no IntVects are in this IntVectSet. More...
 
bool isDense () const
 Returns true if this IntVectSet is currently being represented in a dense fashion. More...
 
bool contains (const IntVect &iv) const
 Returns true if this IntVectSet contains iv. More...
 
bool contains (const IntVectSet &ivs) const
 Returns true if this IntVectSet contains all the IntVects in ivs. More...
 
bool contains_intvectset (const IntVectSet &ivs) const
 same as contains(ivs) More...
 
bool contains (const Box &box) const
 Returns true if this IntVectSet contains all the IntVects in box. More...
 
bool contains_box (const Box &b) const
 same as contains(b) More...
 
Vector< Boxboxes () const
 Returns a Vector<Box> representation of this IntVectSet. More...
 
void compact () const
 Optimize memory usage of this IntVectSet. More...
 

Linearization functions

int linearSize () const
 Returns the number of bytes in a linear representation of *this. More...
 
void linearIn (const void *const a_inBuf)
 Modify *this using the data in the linear representation in a_inBuf. More...
 
void linearOut (void *const a_outBuf) const
 Write a linear representation of *this to a_outBuf. More...
 

Detailed Description

An irregular domain on an integer lattice.

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.

Constructor & Destructor Documentation

◆ ~IntVectSet()

IntVectSet::~IntVectSet ( )

◆ IntVectSet() [1/6]

IntVectSet::IntVectSet ( )
inline

default constructor: defines an empty IntVectSet.

References count, and peakcount.

Referenced by copy(), and define_intvect().

◆ IntVectSet() [2/6]

IntVectSet::IntVectSet ( const IntVectSet ivs)
inline

copy constructor

References count, and peakcount.

◆ IntVectSet() [3/6]

IntVectSet::IntVectSet ( const DenseIntVectSet a_dense)
explicit

conversion constructor

◆ IntVectSet() [4/6]

IntVectSet::IntVectSet ( const TreeIntVectSet a_tree)
explicit

conversion constructor

◆ IntVectSet() [5/6]

IntVectSet::IntVectSet ( const IntVect iv)
explicit

IntVect constructor.

construct this to be an IntVectSet with just one IntVect.

◆ IntVectSet() [6/6]

IntVectSet::IntVectSet ( const Box b)
explicit

Box constructor.

construct this to be an IntVectSet with all the IntVects in the Box .

Member Function Documentation

◆ define() [1/6]

void IntVectSet::define ( )

default define: modifies this IntVectSet to be empty.

Referenced by copy(), define_box(), define_intvect(), define_intvectset(), and IVSIterator::~IVSIterator().

◆ define() [2/6]

void IntVectSet::define ( const IntVectSet ivs)
inline

copy define: modifies this IntVectSet into a copy of ivs

◆ define_intvectset()

void IntVectSet::define_intvectset ( const IntVectSet ivs)
inline

copy define: same as define(IntVectSet)

References define().

◆ copy()

IntVectSet IntVectSet::copy ( ) const
inline

return a copy of this IntVectSet

References define(), IntVectSet(), and IVSIterator::iv().

◆ define() [3/6]

void IntVectSet::define ( const DenseIntVectSet a_dense)

conversion define

◆ define() [4/6]

void IntVectSet::define ( const TreeIntVectSet a_tree)

conversion define

◆ define() [5/6]

void IntVectSet::define ( const IntVect iv)

IntVect define: modifies this IntVectSet to have just one IntVect.

◆ define_intvect()

void IntVectSet::define_intvect ( const IntVect iv)
inline

IntVect define: same as define(IntVect)

References define(), and IntVectSet().

◆ define() [6/6]

void IntVectSet::define ( const Box b)

Box define.

modifies this IntVect to have all the IntVects in the Box .

◆ define_box()

void IntVectSet::define_box ( const Box b)
inline

Box define: same as define(Box)

References define(), define_boxCorners(), and operator|=().

◆ define_boxCorners()

void IntVectSet::define_boxCorners ( const Box b)

Define this IntVectSet to have all the corners of the input box.

Referenced by define_box().

◆ operator|=() [1/3]

IntVectSet& IntVectSet::operator|= ( const IntVectSet ivs)

unions another IntVectSet ivs into this IntVectSet

Referenced by define_box(), or_intvect(), and or_intvectset().

◆ or_intvectset()

void IntVectSet::or_intvectset ( const IntVectSet ivs)
inline

same as operator|= except it doesn't return *this

References operator|=().

◆ operator|=() [2/3]

IntVectSet& IntVectSet::operator|= ( const IntVect iv)

unions a single IntVect iv into this IntVectSet

◆ or_intvect()

void IntVectSet::or_intvect ( const IntVect ivs)
inline

same as operator|= except it doesn't return *this

References operator|=().

◆ operator|=() [3/3]

IntVectSet& IntVectSet::operator|= ( const Box b)

unions the IntVects in the Box into this IntVectSet

◆ or_box()

void IntVectSet::or_box ( const Box b)
inline

same as operator|= except it doesn't return *this

References operator-(), operator-=(), and operator|.

◆ operator-() [1/3]

IntVectSet IntVectSet::operator- ( const IntVectSet ivs) const

Returns the complement of the IntVectSet ivs within this IntVectSet.

Referenced by or_box().

◆ operator-() [2/3]

IntVectSet IntVectSet::operator- ( const Box b) const

Returns the complement of the Box b within this IntVectSet.

◆ operator-() [3/3]

IntVectSet IntVectSet::operator- ( const IntVect iv) const

Returns the complement of the IntVect iv within this IntVectSet.

◆ operator-=() [1/3]

IntVectSet& IntVectSet::operator-= ( const IntVectSet ivs)

Remove the IntVects in the IntVectSet ivs from this IntVectSet.

Modifies this IntVectSet to be the complement of the IntVectSet ivs within this IntVectSet.

Referenced by minus(), minus_box(), and or_box().

◆ minus()

void IntVectSet::minus ( const IntVectSet ivs)
inline

same as operator-= except it doesn't return *this

References operator-=().

◆ operator-=() [2/3]

IntVectSet& IntVectSet::operator-= ( const Box b)

Remove the IntVects in the Box b from this IntVectSet.

Modifies this IntVectSet to be the complement of the argument Box within this IntVectSet.

◆ minus_box()

void IntVectSet::minus_box ( const Box b)
inline

same as operator-= except it doesn't return *this

References operator-=().

◆ operator-=() [3/3]

IntVectSet& IntVectSet::operator-= ( const IntVect iv)

Remove the IntVect iv from this IntVectSet.

Modifies this IntVectSet to be the complement of the argument IntVect within this IntVectSet.

◆ minus_intvect()

void IntVectSet::minus_intvect ( const IntVect iv)
inline

same as operator-= except it doesn't return *this

References IVSIterator::iv(), operator &, and operator &=().

◆ operator &=() [1/3]

IntVectSet& IntVectSet::operator&= ( const IntVectSet ivs)

Modifies this IntVectSet to its intersection with another IntVectSet.

Referenced by and_box(), and_intvectset(), and minus_intvect().

◆ and_intvectset()

void IntVectSet::and_intvectset ( const IntVectSet ivs)
inline

same as operator&= except it doesn't return *this

References operator &=().

◆ operator &=() [2/3]

IntVectSet& IntVectSet::operator&= ( const Box b)

Modifies this IntVectSet to be its intersection with a Box.

◆ and_box()

void IntVectSet::and_box ( const Box b)
inline

same as operator&= except it doesn't return *this

References operator &=().

◆ operator &=() [3/3]

IntVectSet& IntVectSet::operator&= ( const ProblemDomain domain)

Modifies this IntVectSet to be its intersection with the Box in a ProblemDomain.

◆ and_domain()

void IntVectSet::and_domain ( const ProblemDomain d)
inline

same as operator&= except it doesn't return *this

References grow().

◆ grow() [1/2]

void IntVectSet::grow ( int  igrow)

Add IntVects to this IntVectSet in all directions.

Modifies this IntVectSet by growing it by the specified number of IntVects in all directions, including diagonal. It is an error if igrow < 0.

Referenced by and_domain(), and grow_dir().

◆ grow() [2/2]

IntVectSet& IntVectSet::grow ( int  idir,
int  igrow 
)

Add IntVects to this IntVectSet in one direction.

Modifies this IntVectSet by growing it by the specified number of IntVects igrow in the specified coordinate direction idir. Directions are zero-based.

◆ grow_dir()

void IntVectSet::grow_dir ( int  idir,
int  igrow 
)
inline

same as grow(idir,igrow) except doesn't return *this

References coarsen(), grow(), growHi(), nestingRegion(), refine(), and shift().

◆ growHi() [1/2]

void IntVectSet::growHi ( )

Analogous to surroundingNodes() for a Box.

Modifies this IntVectSet by adding IntVects to the high-side of each direction.

Referenced by grow_dir().

◆ growHi() [2/2]

void IntVectSet::growHi ( const int  a_dir)

Analogous to surroundingNodes(dir) for a Box.

Modifies this IntVectSet by adding IntVects to the high-side of a specified direction.

◆ refine()

IntVectSet& IntVectSet::refine ( int  iref = 2)

Refine all the IntVects in this IntVecSet.

Modifies this IntVectSet by refining it by the 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 defined by refine( Box(iv,iv), iref ).

Referenced by grow_dir(), and isDense().

◆ coarsen()

IntVectSet& IntVectSet::coarsen ( int  iref = 2)

Coarsen all the IntVects in this IntVectSet.

Modifies this IntVectSet by coarsening it by the 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 defined by coarsen( iv, iref ).

Referenced by grow_dir(), and isDense().

◆ shift()

void IntVectSet::shift ( const IntVect iv)

Increment all the IntVects in this IntVectSet by the IntVect iv.

Referenced by IVSFAB< T >::copy(), and grow_dir().

◆ nestingRegion() [1/2]

void IntVectSet::nestingRegion ( int  radius,
const Box domain,
int  granularity = 1 
)

Make this IntVectSet be properly nested.

Modifies this IntVectSet to 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.

Referenced by grow_dir(), and nestingRegion_prob().

◆ nestingRegion() [2/2]

void IntVectSet::nestingRegion ( int  radius,
const ProblemDomain probdomain,
int  granularity = 1 
)

Make this IntVectSet be properly nested.

Modifies this IntVectSet to 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.

◆ nestingRegion_prob()

void IntVectSet::nestingRegion_prob ( int  radius,
const ProblemDomain probdomain 
)
inline

◆ makeEmpty()

void IntVectSet::makeEmpty ( )

Modifies this IntVectSet to be empty.

Referenced by IVSFAB< T >::clear(), and nestingRegion_prob().

◆ makeEmptyBits()

void IntVectSet::makeEmptyBits ( )

Modifies this IntVectSet to empty but leaves dense domain box unchanged.

This leaves unchanged the domain box for a dense IntVectSet - it only sets all bits to zero. So you can still do unions later (in the domain box) and not be converted to a tree representation. There is no difference from makeEmpty() for a tree IntVectSet

Referenced by nestingRegion_prob().

◆ chop() [1/2]

IntVectSet IntVectSet::chop ( int  dir,
int  chop_pnt 
)

Chop the IntVectSet at the chop_pnt index in the dir direction.

Returns one IntVectSet and modifies this IntVectSet. The union of the two is the original IntVectSet. This IntVectSet gets the IntVects with dir index >= chop_pnt, and the returned IntVectSet gets the IntVects with dir index < chop_pnt. It is an error if dir is invalid.

Referenced by nestingRegion_prob().

◆ chop() [2/2]

void IntVectSet::chop ( int  dir,
int  chop_pnt,
IntVectSet a_hi 
)

◆ setMaxDense()

static void IntVectSet::setMaxDense ( const int &  a_maxDense)
static

Set the max box size for IntVectSet::define(Box) which will make the IntVectSet dense. Default is 6.4^6.

Referenced by nestingRegion_prob().

◆ numPts()

int IntVectSet::numPts ( ) const

Returns the number of IntVects in this IntVectSet.

Referenced by IVSFAB< T >::linearOut(), nestingRegion_prob(), and IVSFAB< T >::size().

◆ minBox()

const Box& IntVectSet::minBox ( ) const

◆ recalcMinBox()

void IntVectSet::recalcMinBox ( ) const

Forces recalculation of the minimum enclosing box of this IntVectSet.

Referenced by nestingRegion_prob().

◆ isEmpty()

bool IntVectSet::isEmpty ( ) const

◆ isDense()

bool IntVectSet::isDense ( ) const
inline

Returns true if this IntVectSet is currently being represented in a dense fashion.

References coarsen(), m_isdense, and refine().

Referenced by nestingRegion_prob().

◆ contains() [1/3]

bool IntVectSet::contains ( const IntVect iv) const

Returns true if this IntVectSet contains iv.

Referenced by contains_box(), contains_intvectset(), IVSFAB< T >::getIndex(), and nestingRegion_prob().

◆ contains() [2/3]

bool IntVectSet::contains ( const IntVectSet ivs) const

Returns true if this IntVectSet contains all the IntVects in ivs.

◆ contains_intvectset()

bool IntVectSet::contains_intvectset ( const IntVectSet ivs) const
inline

same as contains(ivs)

References contains().

◆ contains() [3/3]

bool IntVectSet::contains ( const Box box) const

Returns true if this IntVectSet contains all the IntVects in box.

Note: this is done using an algorithm that is much faster than looping through all the IntVects.

◆ contains_box()

bool IntVectSet::contains_box ( const Box b) const
inline

◆ boxes()

Vector<Box> IntVectSet::boxes ( ) const

Returns a Vector<Box> representation of this IntVectSet.

The returned Boxes contain only the IntVects in this IntVectSet, so the union of the Boxes in the Vector == this IntVectSet.

Referenced by contains_box().

◆ compact()

void IntVectSet::compact ( ) const

Optimize memory usage of this IntVectSet.

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

Referenced by contains_box().

◆ linearSize()

int IntVectSet::linearSize ( ) const

Returns the number of bytes in a linear representation of *this.

Referenced by contains_box().

◆ linearIn()

void IntVectSet::linearIn ( const void *const  a_inBuf)

Modify *this using the data in the linear representation in a_inBuf.

Referenced by contains_box().

◆ linearOut()

void IntVectSet::linearOut ( void *const  a_outBuf) const

Write a linear representation of *this to a_outBuf.

Assumes a_outBuf is at least linearSize() bytes long.

Referenced by contains_box().

◆ operator==()

bool IntVectSet::operator== ( const IntVectSet a_ivs) const

Returns true if this IntVectSet has the same IntVects as a_ivs.

Referenced by contains_box().

◆ operator<()

bool IntVectSet::operator< ( const IntVectSet a_ivs) const

Primary sorting criterion: being dense; if *this is dense and a_ivs is not, then *this is smaller, and vice versa. Secondary sorting criterion: operator< as defined on DenseIntVectSet or TreeIntVectSet. In a total tie, returns false.

These criteria might not seem natural, but that doesn't matter as the only reason for this operator is to support using IntVectSet as the key to an std::map.

Referenced by contains_box().

◆ printBoxes()

void IntVectSet::printBoxes ( std::ostream &  a_ostream) const

Writes a Vector<Box> representation to an output stream.

Referenced by contains_box(), and p().

◆ p()

void IntVectSet::p ( ) const
inline

Writes a Vector<Box> representation to the parallel stdout.

References convert(), operator<<, pout(), and printBoxes().

◆ convert()

void IntVectSet::convert ( ) const

Referenced by p().

◆ clearStaticMemory()

static void IntVectSet::clearStaticMemory ( )
staticprivate

Friends And Related Function Documentation

◆ IVSIterator

friend class IVSIterator
friend

◆ operator| [1/5]

IntVectSet operator| ( const IntVectSet ivs1,
const IntVectSet ivs2 
)
friend

Returns a new IntVectSet that is the union of two IntVectSets.

Referenced by or_box().

◆ operator| [2/5]

IntVectSet operator| ( const IntVectSet ivs,
const IntVect iv 
)
friend

Returns a new IntVectSet that is the union of an IntVectSet and an IntVect.

◆ operator| [3/5]

IntVectSet operator| ( const IntVect iv,
const IntVectSet ivs 
)
friend

Returns a new IntVectSet that is the union of an IntVectSet and an IntVect.

◆ operator| [4/5]

IntVectSet operator| ( const IntVectSet ivs,
const Box b 
)
friend

Returns a new IntVectSet that is the union of an IntVectSet and a Box.

◆ operator| [5/5]

IntVectSet operator| ( const Box b,
const IntVectSet ivs 
)
friend

Returns a new IntVectSet that is the union of an IntVectSet and a Box.

◆ operator & [1/3]

IntVectSet operator& ( const IntVectSet ivs1,
const IntVectSet ivs2 
)
friend

Returns a new IntVectSet that is the intersection of two IntVectSets.

The result may be empty.

Referenced by minus_intvect().

◆ operator & [2/3]

IntVectSet operator& ( const IntVectSet ivs,
const Box b 
)
friend

Returns a new IntVectSet that is the intersection of an IntVectSet and a Box.

The result may be empty.

◆ operator & [3/3]

IntVectSet operator& ( const Box b,
const IntVectSet ivs 
)
friend

Returns a new IntVectSet that is the intersection of an IntVectSet and a Box.

The result may be empty.

◆ grow

IntVectSet grow ( const IntVectSet ivs,
int  igrow 
)
friend

Add IntVects to an IntVectSet in all directions.

Creates a new IntVectSet that is a copy of the argument IntVectSet ivs grown by the specified number of IntVects in all directions igrow, including diagonal. It is an error if igrow < 0.

◆ refine

IntVectSet refine ( const IntVectSet ivs,
int  iref 
)
friend

Refine all the IntVects in an IntVectSet.

Creates a new IntVectSet that is a copy of the argument IntVectSet ivs refined by the factor iref. It is an error if iref <= 0. Definition of refinement: for each IntVect iv in the original IntVectSet ivs, the refined IntVectSet will contain the Box defined by refine( Box(iv,iv), iref ).

◆ coarsen

IntVectSet coarsen ( const IntVectSet ivs,
int  iref 
)
friend

Coarsen all the IntVects in an IntVectSet.

Creates a new IntVectSet that is a copy of the argument IntVectSet ivs coarsened by the 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 defined by coarsen( iv, iref ).

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const IntVectSet ivs 
)
friend

Writes a text representation of an IntVectSet to an output stream.

Referenced by p().

◆ dumpmemoryatexit

void dumpmemoryatexit ( )
friend

Member Data Documentation

◆ count

long int IntVectSet::count
static

Referenced by IntVectSet().

◆ peakcount

long int IntVectSet::peakcount
static

Referenced by IntVectSet().

◆ s_maxDense

int IntVectSet::s_maxDense
static

◆ m_isdense

bool IntVectSet::m_isdense
private

◆ m_ivs

TreeIntVectSet IntVectSet::m_ivs
private

◆ m_dense

DenseIntVectSet IntVectSet::m_dense
private

The documentation for this class was generated from the following file: