Dendro
5.01
Dendro in Greek language means tree. The Dendro library is a large scale (262K cores on ORNL's Titan) distributed memory adaptive octree framework. The main goal of Dendro is to perform large scale multiphysics simulations efficeiently in mordern supercomputers. Dendro consists of efficient parallel data structures and algorithms to perform variational ( finite element) methods and finite difference mthods on 2:1 balanced arbitary adaptive octrees which enables the users to perform simulations raning from black holes (binary black hole mergers) to blood flow in human body, where applications ranging from relativity, astrophysics to biomedical engineering.
|
#include <skey.h>
Public Member Functions | |
SearchKey (unsigned int px, unsigned int py, unsigned int pz, unsigned int plevel, unsigned int pDim, unsigned int pMaxDepth) | |
SearchKey (unsigned int pLevel, unsigned int pMaxDepth) | |
SearchKey (const ot::TreeNode node) | |
void | operator= (const SearchKey &node) |
void | operator= (const ot::TreeNode &node) |
void | addOwner (unsigned int ownerLocalID) |
void | addStencilIndexAndDirection (unsigned int index, unsigned int direction) |
void | addStencilIndexAndDirection (unsigned int direction) |
int | getOwner () |
int | getStencilIndexDirectionList () |
Public Member Functions inherited from ot::TreeNode | |
TreeNode (const int dummy, const unsigned int x, const unsigned int y, const unsigned int z, const unsigned int level, const unsigned int dim, const unsigned int maxDepth) | |
TreeNode (const unsigned int x, const unsigned int y, const unsigned int z, const unsigned int level, const unsigned int dim, const unsigned int maxDepth) | |
TreeNode (const unsigned int dim, const unsigned int maxDepth) | |
unsigned int | getDim () const |
return the dimension of the octant More... | |
unsigned int | getMaxDepth () const |
return the maxDepth of the octant based of the global value. More... | |
unsigned int | getLevel () const |
return the level of the of the octant More... | |
void | setFlag (unsigned int flag) |
set the m_uiFlag value. Which is used to store the level and other aditional info. More... | |
unsigned int | getFlag () const |
get the m_uiFlag value. Which is used to store the level and other aditional info. More... | |
unsigned int | getX () const |
get integer values of the octree coordinates. More... | |
unsigned int | getY () const |
unsigned int | getZ () const |
bool | isRoot () const |
returns true if the current considering node is a root node. More... | |
void | incrementLevel () |
Can be used the increment octant level by 1. Used in SFC treeSearch function. More... | |
bool | operator== (TreeNode const &other) const |
Two octants are equal if their respective anchors are equal and their levels are equal. More... | |
bool | operator!= (TreeNode const &other) const |
Two octants are equal if their respective anchors are equal and their levels are equal. More... | |
bool | operator< (TreeNode const &other) const |
The comparisons are based on the Morton/Hilbert ordering of the octants. More... | |
bool | operator> (TreeNode const &other) const |
The comparisons are based on the Morton/Hilbert ordering of the octants. More... | |
bool | operator<= (TreeNode const &other) const |
The comparisons are based on the Morton/Hilbert ordering of the octants. More... | |
bool | operator>= (TreeNode const &other) const |
The comparisons are based on the Morton/Hilbert ordering of the octants. More... | |
unsigned int | genHkey_Bonsai_sc16 () const |
TreeNode | getNCA (TreeNode const &other) const |
bool | isAncestor (const TreeNode &other) const |
unsigned int | minX () const |
returns true min corner(anchor) and the max corner coordinates of a octant. More... | |
unsigned int | minY () const |
unsigned int | minZ () const |
unsigned int | maxX () const |
unsigned int | maxY () const |
unsigned int | maxZ () const |
TreeNode | getParent () const |
returns the parent of the current octant More... | |
TreeNode | getDFDMorton () const |
TreeNode | getDFD () const |
TreeNode | getDLD () const |
TreeNode | getLeft () const |
returns the neighbour octants (right, left top bottom etc) More... | |
TreeNode | getRight () const |
TreeNode | getTop () const |
TreeNode | getBottom () const |
TreeNode | getFront () const |
TreeNode | getBack () const |
TreeNode | getTopLeft () const |
TreeNode | getTopRight () const |
TreeNode | getBottomLeft () const |
TreeNode | getBottomRight () const |
TreeNode | getLeftFront () const |
TreeNode | getRightFront () const |
TreeNode | getTopFront () const |
TreeNode | getBottomFront () const |
TreeNode | getTopLeftFront () const |
TreeNode | getTopRightFront () const |
TreeNode | getBottomLeftFront () const |
TreeNode | getBottomRightFront () const |
TreeNode | getLeftBack () const |
TreeNode | getRightBack () const |
TreeNode | getTopBack () const |
TreeNode | getBottomBack () const |
TreeNode | getTopLeftBack () const |
TreeNode | getTopRightBack () const |
TreeNode | getBottomLeftBack () const |
TreeNode | getBottomRightBack () const |
std::vector< TreeNode > | getAllNeighbours () const |
int | getAnchor (unsigned int &x, unsigned int &y, unsigned int &z) const |
Point | getAnchor () const |
unsigned int | getMortonIndex () const |
bool | isBoundaryOctant (int type=POSITIVE, unsigned char *flags=NULL) const |
flags is a datastructure which will store which boundaries were touched. highest 3 bits are for +Z,+y, and +x axes ... and and smallest 3 are for -z,-y and -x axes. More... | |
bool | isBoundaryOctant (const TreeNode &block, int type=POSITIVE, unsigned char *flags=NULL) const |
flags is a datastructure which will store which boundaries were touched. highest 3 bits are for +Z,+y, and +x axes ... and and smallest 3 are for -z,-y and -x axes. More... | |
int | addChildren (std::vector< ot::TreeNode > &children) const |
int | getChildrenInMortonOrdering (std::vector< ot::TreeNode > &children) const |
Protected Attributes | |
int | m_uiOwner |
int | m_uiStencilIndexWithDirection |
Protected Attributes inherited from ot::TreeNode | |
unsigned int | m_uiX |
unsigned int | m_uiY |
unsigned int | m_uiZ |
unsigned int | m_uiLevel |
Additional Inherited Members | |
Public Types inherited from ot::TreeNode | |
enum | BoundaryType1 { NEGATIVE = 2, POSITIVE = 4 } |
The type of boundary. More... | |
enum | BoundaryType2 { X_NEG_BDY =1, Y_NEG_BDY =2, Z_NEG_BDY =4, NEG_POS_DEMARCATION =8, EXTERNAL_BDY =16, X_POS_BDY =32, Y_POS_BDY =64, Z_POS_BDY =128 } |
The type of boundary. | |
enum | BoundaryType3 { FACE_BDY =1, EDGE_BDY =2, CORNER_BDY =3 } |
The type of boundary. | |
enum | OctantFlagType { MAX_LEVEL =31, BOUNDARY =64, NODE =128 } |
SearchKey class to store some additional info to build nodelist.