Class for Oct tree where each node has 8 direct children. More...
#include <GenericTreeNode.h>
Public Member Functions | |
OctTreeNode (NodeKey k, NodeType type, int first, int last, BinaryTreeNode *p) | |
void | fullyDelete () |
Recursively delete all nodes beneath this node. | |
virtual unsigned int | numChildren () const |
return the number of children this node has | |
virtual GenericTreeNode * | getChildren (int i) |
return the pointers to the specified child of this node | |
virtual void | setChildren (int i, GenericTreeNode *node) |
set the specified child of this node to the passed pointer | |
NodeKey | getChildKey (int i) |
return the keys for the specified child | |
NodeKey | getParentKey () |
return the key for the parent | |
int | whichChild (NodeKey child) |
return an integer with the number of the child reflecting the key | |
int | getLevel (NodeKey k) |
depth of node corresponding to NodeKey | |
bool | contains (NodeKey node) |
Is nodekey contained by this node. | |
void | makeOctChildren (GravityParticle *part, int totalPart, int level, NodePool *pool=NULL) |
construct the children of the "this" node following the given logical criteria (Oct/Orb) | |
void | makeOrbChildren (GravityParticle *part, int totalPart, int level, int rootsLevel, bool(*compFnPtr[])(GravityParticle, GravityParticle), bool spatial, NodePool *pool=NULL) |
GenericTreeNode * | clone () const |
make a copy of the node | |
void | getChunks (int num, NodeKey *&ret) |
void | pup (PUP::er &p) |
PUP just this node. | |
void | pup (PUP::er &p, int depth) |
PUP node and children down to depth. | |
![]() | |
GenericTreeNode (NodeKey k, NodeType type, int first, int last, GenericTreeNode *p) | |
Construct GenericTreeNode. More... | |
NodeType | getType () const |
return Tree::NodeType of node | |
void | setType (NodeType t) |
set Tree::NodeType of node | |
NodeKey | getKey () const |
return unique Tree::NodeKey | |
bool | isValid () |
Is the NodeType valid. | |
bool | isCached () |
Is this a node in the cache. | |
bool | isBucket () |
Is this a node a bucket. | |
void | makeBucket (GravityParticle *part) |
transform an internal node into a bucket | |
void | makeEmpty () |
initialize an empty node | |
void | getGraphViz (std::ostream &out) |
print out a visualization of the tree for diagnostics | |
virtual NodeKey | getLongestCommonPrefix (NodeKey k1, NodeKey k2) |
return the NodeKey of the lowest common ancestor. | |
Public Attributes | |
OctTreeNode * | children [8] |
the 8 different children | |
![]() | |
MultipoleMoments | moments |
The moments for the gravity computation. | |
GenericTreeNode * | parent |
The parent of this node, or null if none. | |
OrientedBox< cosmoType > | boundingBox |
The axis-aligned bounding box of this node. | |
OrientedBox< double > | bndBoxBall |
The bounding box including search balls of this node. | |
unsigned int | iParticleTypes |
Mask of particle types contatained in this node. | |
int64_t | nSPH |
The number of SPH particles this node contains. | |
int | firstParticle |
An index for the first particle contained by this node, 0 means outside the node. | |
int | lastParticle |
An index to the last particle contained by this node, myNumParticles+1 means outside the node. | |
int | remoteIndex |
unsigned int | particleCount |
Total number of particles contained (across all chares) | |
GravityParticle * | particlePointer |
Pointer to the first particle in this node. | |
int | rungs |
int | numBucketsBeneath |
Number of buckets in this node. | |
int | startBucket |
index of first bucket in this node | |
Vector3D< double > | centerSm |
center of smoothActive particles during smooth operation | |
double | sizeSm |
Radius of bounding sphere of smoothActive particles. | |
double | fKeyMax |
Maximum smoothing radius of smoothActive particles. | |
int | iRank |
SMP rank of node owner. | |
Additional Inherited Members | |
![]() | |
NodeType | myType |
NodeKey | key |
Class for Oct tree where each node has 8 direct children.
|
inlinevirtual |
get the top nodes corresponding to a particular number of chunks requested
Implements Tree::GenericTreeNode.