Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

TreeIntVectSet Class Reference

IntVectSet implementation based on tree representation. More...

#include <TreeIntVectSet.H>

Collaboration diagram for TreeIntVectSet:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TreeIntVectSet ()
 TreeIntVectSet (const Box &)
 TreeIntVectSet (const TreeIntVectSet &a_sivs)
 ~TreeIntVectSet ()
void define (const Box &)
void define (const TreeIntVectSet &a_sivs)
TreeIntVectSet & operator= (const TreeIntVectSet &a_sivs)
TreeIntVectSet & operator|= (const TreeIntVectSet &a_sivs)
 or

TreeIntVectSet & operator|= (const IntVect &a_iv)
TreeIntVectSet & operator|= (const Box &a_box)
TreeIntVectSet & operator &= (const TreeIntVectSet &s_sivs)
 and

TreeIntVectSet & operator &= (const Box &a_box)
 and

TreeIntVectSet & operator &= (const ProblemDomain &a_domain)
 and

TreeIntVectSet & operator-= (const TreeIntVectSet &a_sivs)
 not

TreeIntVectSet & operator-= (const IntVect &a_iv)
 not

TreeIntVectSet & operator-= (const Box &a_box)
 not

bool operator== (const TreeIntVectSet &lhs) const
 returns true if

Vector< Box > createBoxes () const
 Returns Vector<Box> representation of this IntVectSet.

void createBoxes (Vector< Box > &boxes, int &size) const
 Returns Vector<Box> representation of this IntVectSet.

bool contains (const IntVect &iv) const
bool contains (const Box &box) const
TreeIntVectSet chop (int idir, int chop_pnt)
void grow (int igrow)
 
See also:
IntVectSet::grow


void grow (int idir, int igrow)
void refine (int iref=2)
 fast if iref is power of 2

void coarsen (int iref=2)
 fast if iref is power of 2

void shift (const IntVect &iv)
 slow operation

void clear ()
void nestingRegion (int a_radius, const Box &a_domain, int granularity)
void nestingRegion (int a_radius, const ProblemDomain &a_domain, int granularity)
const Box & minBox () const
bool isEmpty () const
int numPts () const
void compact () const
void recalcMinBox () const
Linearization routines
int linearSize () const
void linearIn (const void *const inBuf)
void linearOut (void *const a_outBuf) const

Friends

class TreeIntVectSetIterator
struct Flag
class IntVectSet
void dumpTree (const TreeIntVectSet *set)

Detailed Description

IntVectSet implementation based on tree representation.

For explanations of these functions please look at IntVectSet class when the documentation doesn't appear here.

See also:
IntVectSet

Further details of how non-recursive TreeNode design works:

(for a 2D tree)

(m_tree) + -- 0

(a)+ - 0 1 1 + 1 <------you are here

+ - + - 0 0 1 0 1 0 0

for the node indicated, the 'index' vector would contain

index=[ 0 1 3 ...............] parents=[&m_tree &a ..................]

or directly refered to as m_tree.nodes[1].nodes[3]

the tree indicates a covering of an index space in either 1 or 0. 1 is stored in the tree by pointing at the static 'full' data member, 0 is stored as a 0.

every 'nodes' member of a TreeNode object can be either

0, &full, or a pointer .

The interpretation of the tree depends on what m_spanBox is. nodes[i] indicates whether the i'th quadrant of the parent Box is full, empty, or needs to be parsed deeper.


Constructor & Destructor Documentation

TreeIntVectSet::TreeIntVectSet (   )  [inline]
 

TreeIntVectSet::TreeIntVectSet (  const Box &   )  [inline]
 

TreeIntVectSet::TreeIntVectSet (  const TreeIntVectSet &  a_sivs  )  [inline]
 

TreeIntVectSet::~TreeIntVectSet (   )  [inline]
 


Member Function Documentation

TreeIntVectSet TreeIntVectSet::chop (  int  idir,
int  chop_pnt
) 
 

somewhat expensive, but shouldn't be ;-)

See also:
IntVectSet::chop

void TreeIntVectSet::clear (   ) 
 

void TreeIntVectSet::coarsen (  int  iref = 2  ) 
 

fast if iref is power of 2

fast if iref is power of 2

void TreeIntVectSet::compact (   )  const
 

bool TreeIntVectSet::contains (  const Box &  box  )  const
 

bool TreeIntVectSet::contains (  const IntVect &  iv  )  const
 

void TreeIntVectSet::createBoxes (  Vector< Box > &  boxes,
int &  size
)  const
 

Returns Vector<Box> representation of this IntVectSet.

Returns Vector<Box> representation of this IntVectSet.

Vector<Box> TreeIntVectSet::createBoxes (   )  const
 

Returns Vector<Box> representation of this IntVectSet.

Returns Vector<Box> representation of this IntVectSet.

void TreeIntVectSet::define (  const TreeIntVectSet &  a_sivs  ) 
 

void TreeIntVectSet::define (  const Box &   ) 
 

void TreeIntVectSet::grow (  int  idir,
int  igrow
) 
 

expensive

void TreeIntVectSet::grow (  int  igrow  ) 
 

See also:
IntVectSet::grow

expensive

bool TreeIntVectSet::isEmpty (   )  const
 

void TreeIntVectSet::linearIn (  const void *const  inBuf  ) 
 

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

int TreeIntVectSet::linearSize (   )  const
 

const Box & TreeIntVectSet::minBox (   )  const [inline]
 

void TreeIntVectSet::nestingRegion (  int  a_radius,
const ProblemDomain &  a_domain,
int  granularity
) 
 

void TreeIntVectSet::nestingRegion (  int  a_radius,
const Box &  a_domain,
int  granularity
) 
 

int TreeIntVectSet::numPts (   )  const
 

TreeIntVectSet& TreeIntVectSet::operator &= (  const ProblemDomain &  a_domain  ) 
 

and

TreeIntVectSet& TreeIntVectSet::operator &= (  const Box &  a_box  ) 
 

and

TreeIntVectSet& TreeIntVectSet::operator &= (  const TreeIntVectSet &  s_sivs  ) 
 

and

TreeIntVectSet& TreeIntVectSet::operator-= (  const Box &  a_box  ) 
 

not

TreeIntVectSet & TreeIntVectSet::operator-= (  const IntVect &  a_iv  )  [inline]
 

not

TreeIntVectSet& TreeIntVectSet::operator-= (  const TreeIntVectSet &  a_sivs  ) 
 

not

TreeIntVectSet& TreeIntVectSet::operator= (  const TreeIntVectSet &  a_sivs  ) 
 

bool TreeIntVectSet::operator== (  const TreeIntVectSet &  lhs  )  const
 

returns true if

TreeIntVectSet& TreeIntVectSet::operator|= (  const Box &  a_box  ) 
 

TreeIntVectSet & TreeIntVectSet::operator|= (  const IntVect &  a_iv  )  [inline]
 

TreeIntVectSet& TreeIntVectSet::operator|= (  const TreeIntVectSet &  a_sivs  ) 
 

or

void TreeIntVectSet::recalcMinBox (   )  const
 

void TreeIntVectSet::refine (  int  iref = 2  ) 
 

fast if iref is power of 2

fast if iref is power of 2

void TreeIntVectSet::shift (  const IntVect &  iv  ) 
 

slow operation


Friends And Related Function Documentation

void dumpTree (  const TreeIntVectSet *  set  )  [friend]
 

friend struct Flag [friend]
 

friend class IntVectSet [friend]
 

friend class TreeIntVectSetIterator [friend]
 


The documentation for this class was generated from the following file:
Generated on Wed Jun 2 13:59:07 2004 for Chombo&INSwithParticles by doxygen 1.3.2