Local octree portion for each process. More...
#include <LocalTree.hpp>
Public Types | |
typedef std::vector< bool > | bvector |
typedef std::vector< Intersection > | intervector |
typedef std::vector< Octant > | octvector |
typedef std::vector< u32array3 > | u32arr3vector |
typedef std::vector< uint32_t > | u32vector |
typedef std::vector< uint64_t > | u64vector |
typedef std::vector< uint8_t > | u8vector |
Protected Member Functions | |
std::array< int64_t, 3 > | computeFirstVirtualEdgeNeighOffset (uint8_t level, uint8_t iedge, uint8_t neighLevel) const |
std::array< int64_t, 3 > | computeFirstVirtualNeighOffset (uint8_t level, uint8_t iface, uint8_t neighLevel) const |
std::array< int64_t, 3 > | computeFirstVirtualNodeNeighOffset (uint8_t level, uint8_t inode, uint8_t neighLevel) const |
std::array< int64_t, 3 > | computeLastVirtualEdgeNeighOffset (uint8_t level, uint8_t iedge, uint8_t neighLevel) const |
std::array< int64_t, 3 > | computeLastVirtualNeighOffset (uint8_t level, uint8_t iface, uint8_t neighLevel) const |
std::array< int64_t, 3 > | computeLastVirtualNodeNeighOffset (uint8_t level, uint8_t inode, uint8_t neighLevel) const |
void | computeVirtualEdgeNeighOffsets (uint8_t level, uint8_t iedge, uint8_t neighLevel, std::vector< std::array< int64_t, 3 > > *neighOffsets) const |
void | computeVirtualNeighOffsets (uint8_t level, uint8_t iface, uint8_t neighLevel, std::vector< std::array< int64_t, 3 > > *neighOffsets) const |
void | computeVirtualNodeNeighOffsets (uint8_t level, uint8_t inode, uint8_t neighLevel, std::vector< std::array< int64_t, 3 > > *neighOffsets) const |
std::array< int64_t, 3 > | getEdgePeriodicOffset (const Octant &octant, uint8_t iedge) const |
uint8_t | getMaxEdgeNeighLevel (const Octant &octant) const |
uint8_t | getMaxNeighLevel (const Octant &octant) const |
uint8_t | getMaxNodeNeighLevel (const Octant &octant) const |
std::array< int64_t, 3 > | getNodePeriodicOffset (const Octant &octant, uint8_t inode) const |
std::array< int64_t, 3 > | getPeriodicOffset (const Octant &octant, uint8_t iface) const |
Friends | |
class | ParaTree |
Local octree portion for each process.
Local tree consists mainly of two vectors with:
The octants (and ghosts) are ordered following the Z-curve defined by the Morton index.
Optionally in local tree three vectors of intersections are stored:
Class LocalTree is built with a dimensional parameter int dim and it accepts only two values: dim=2 and dim=3, for 2D and 3D respectively.
Definition at line 71 of file LocalTree.hpp.
typedef std::vector<bool> bitpit::LocalTree::bvector |
Vector of boolean values.
Definition at line 94 of file LocalTree.hpp.
typedef std::vector<Intersection> bitpit::LocalTree::intervector |
Vector of Intersections.
Definition at line 90 of file LocalTree.hpp.
typedef std::vector<Octant> bitpit::LocalTree::octvector |
Vector of Octants.
Definition at line 86 of file LocalTree.hpp.
typedef std::vector<u32array3> bitpit::LocalTree::u32arr3vector |
Vector of three-dimensional arrays of unsigned int (32-bit).
Definition at line 110 of file LocalTree.hpp.
typedef std::vector<uint32_t> bitpit::LocalTree::u32vector |
Vector of usigned int (32-bit).
Definition at line 102 of file LocalTree.hpp.
typedef std::vector<uint64_t> bitpit::LocalTree::u64vector |
Vector of unsigned int (64-bit).
Definition at line 106 of file LocalTree.hpp.
typedef std::vector<uint8_t> bitpit::LocalTree::u8vector |
Vector of unsigned int (8-bit).
Definition at line 98 of file LocalTree.hpp.
|
protected |
Compute the offset from the origin of an octant to its first virtual edge neighobur. The term "virtual" means that the tree may not contain any octant at the position defined by the computed offset.
[in] | level | The level of the octant. |
[in] | iedge | Local index of the edge. |
[in] | neighLevel | The level of the virtual neighbours. |
Definition at line 2249 of file LocalTree.cpp.
|
protected |
Compute the offset from the origin of an octant to its first virtual face neighobur. The term "virtual" means that the tree may not contain any octant at the position defined by the computed offset.
[in] | level | The level of the octant. |
[in] | iface | Local index of the face. |
[in] | neighLevel | The level of the virtual neighbours. |
Definition at line 2068 of file LocalTree.cpp.
|
protected |
Compute the offset from the origin of an octant to its first virtual node neighobur. The term "virtual" means that the tree may not contain any octant at the position defined by the computed offset.
[in] | level | The level of the octant. |
[in] | inode | Local index of the node. |
[in] | neighLevel | The level of the virtual neighbours. |
Definition at line 2192 of file LocalTree.cpp.
|
protected |
Compute the offset from the origin of an octant to its last virtual edge neighobur. The term "virtual" means that the tree may not contain any octant at the position defined by the computed offset.
[in] | level | The level of the octant. |
[in] | iedge | Local index of the edge. |
[in] | neighLevel | The level of the virtual neighbours. |
Definition at line 2280 of file LocalTree.cpp.
|
protected |
Compute the offset from the origin of an octant to its last virtual face neighobur. The term "virtual" means that the tree may not contain any octant at the position defined by the computed offset.
[in] | level | The level of the octant. |
[in] | iface | Local index of the face. |
[in] | neighLevel | The level of the virtual neighbours. |
Definition at line 2099 of file LocalTree.cpp.
|
protected |
Compute the offset from the origin of an octant to its last virtual node neighobur. The term "virtual" means that the tree may not contain any octant at the position defined by the computed offset.
[in] | level | The level of the octant. |
[in] | inode | Local index of the node. |
[in] | neighLevel | The level of the virtual neighbours. |
Definition at line 2223 of file LocalTree.cpp.
|
protected |
Compute the offsets from the origin of an octant to its virtual edge neighoburs. The term "virtual" means that the tree may not contain any octant at the positions defined by the computed offsets.
[in] | level | The level of the octant. |
[in] | iedge | Local index of the edge. |
[in] | neighLevel | The level of the virtual neighbours. |
[out] | neighOffsets | On output will contain the offsets. |
Definition at line 2324 of file LocalTree.cpp.
|
protected |
Compute the offsets from the origin of an octant to its virtual node neighoburs. The term "virtual" means that the tree may not contain any octant at the positions defined by the computed offsets.
[in] | level | The level of the octant. |
[in] | iface | Local index of the node. |
[in] | neighLevel | The level of the virtual neighbours. |
[out] | neighOffsets | On output will contain the offsets. |
Definition at line 2140 of file LocalTree.cpp.
|
protected |
Compute the offsets from the origin of an octant to its virtual node neighoburs. The term "virtual" means that the tree may not contain any octant at the positions defined by the computed offsets.
[in] | level | The level of the octant. |
[in] | inode | Local index of the node. |
[in] | neighLevel | The level of the virtual neighbours. |
[out] | neighOffsets | On output will contain the offsets. |
Definition at line 2236 of file LocalTree.cpp.
|
protected |
Get the periodic offset for the specified edge of the given octant. The offset is the displacement that should be applied to a point on the specified edge to move that point to the corresponding periodic edge.
[in] | octant | Octant for which the offset should be evaluated |
[in] | iedge | Index of edge |
Definition at line 2417 of file LocalTree.cpp.
|
protected |
Get the maximum level an edge neighbour of the specified octant can have. If 2:1 edge balance is active, a neighbour can only have one more refinement level than the specified octant.
[in] | octant | Octant for which the check has to be performed. |
Definition at line 2472 of file LocalTree.cpp.
|
protected |
Get the maximum level a face neighbour of the specified octant can have. If 2:1 face balance is active, a neighbour can only have one more refinement level than the specified octant.
[in] | octant | Octant for which the check has to be performed. |
Definition at line 2442 of file LocalTree.cpp.
|
protected |
Get the maximum level a node neighbour of the specified octant can have. If 2:1 node balance is active, a neighbour can only have one more refinement level than the specified octant.
[in] | octant | Octant for which the check has to be performed. |
Definition at line 2457 of file LocalTree.cpp.
|
protected |
Get the periodic offset for the specified node of the given octant. The offset is the displacement that should be applied to a point on the specified node to move that point to the corresponding periodic node.
[in] | octant | Octant for which the offset should be evaluated |
[in] | inode | Index of node |
Definition at line 2392 of file LocalTree.cpp.
|
protected |
Get the periodic offset for the specified face of the given octant. The offset is the displacement that should be applied to a point on the specified face to move that point to the corresponding periodic face.
[in] | octant | Octant for which the offset should be evaluated |
[in] | iface | Index of face |
Definition at line 2368 of file LocalTree.cpp.
|
friend |
Definition at line 77 of file LocalTree.hpp.