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 Methods

 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 Jan 19 17:56:40 2005 for Chombo&INSwithParticles by doxygen1.2.16