Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class 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
bool operator< (const TreeIntVectSet &a_sivs) const
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)
 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)

Classes

struct  TreeNode

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  ) 
 

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

bool TreeIntVectSet::operator< (  const TreeIntVectSet &  a_sivs  )  const
 

Primary sorting criterion: numPts(). Secondary sorting criterion: lexigraphical ordering of the IntVects, taken in the order traversed by TreeIntVectSetIterator. In a total tie, returns false.

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 Oct 5 12:51:07 2005 for Chombo&AMRIdealMHD by  doxygen 1.4.1