25#ifndef __BITPIT_PABLO_OCTANT_HPP__
26#define __BITPIT_PABLO_OCTANT_HPP__
29#include "tree_constants.hpp"
35#include "bitpit_containers.hpp"
42typedef std::vector<uint8_t> u8vector;
43typedef std::vector<uint32_t> u32vector;
44typedef std::vector<uint64_t> u64vector;
45typedef std::vector<double> dvector;
46typedef std::array<double, 3> darray3;
47typedef std::array<int8_t, 3> i8array3;
48typedef std::array<uint32_t, 3> u32array3;
49typedef std::vector<std::vector<uint32_t>> u32vector2D;
50typedef std::vector<std::vector<uint64_t>> u64vector2D;
51typedef std::vector<u32array3> u32arr3vector;
58IBinaryStream & operator>>(IBinaryStream &buffer, Octant& octant);
59OBinaryStream &
operator<<(OBinaryStream &buffer,
const Octant& octant);
107 static const TreeConstants::Instances sm_treeConstants;
119 INFO_PBOUNDFACE0 = 6,
120 INFO_PBOUNDFACE1 = 7,
121 INFO_PBOUNDFACE2 = 8,
122 INFO_PBOUNDFACE3 = 9,
123 INFO_PBOUNDFACE4 = 10,
124 INFO_PBOUNDFACE5 = 11,
125 INFO_NEW4REFINEMENT = 12,
126 INFO_NEW4COARSENING = 13,
136 std::bitset<INFO_ITEM_COUNT> m_info;
157 Octant(uint8_t dim, uint8_t level, uint64_t morton);
158 Octant(uint8_t dim, uint8_t level, int32_t x, int32_t y, int32_t z = 0);
159 Octant(
bool bound, uint8_t dim, uint8_t level, int32_t x, int32_t y, int32_t z = 0);
160 bool operator ==(
const Octant & oct2);
173 void initialize(uint8_t dim, uint8_t level,
bool bound);
225 void getNormal(uint8_t iface, i8array3 & normal,
const int8_t (&normals)[6][3])
const;
Local octree portion for each process.
bool getNodeBound(uint8_t node) const
uint64_t computeNodePersistentKey(uint8_t inode) const
int getGhostLayer() const
void setPbound(uint8_t face, bool flag)
u32array3 computeLastDescCoordinates() const
uint8_t countChildren() const
void getLogicalNode(u32array3 &node, uint8_t inode) const
u32arr3vector getLogicalNodes() const
u32array3 getLogicalCoordinates() const
static unsigned int getBinarySize()
void getNormal(uint8_t iface, i8array3 &normal, const int8_t(&normals)[6][3]) const
Octant buildFather() const
uint64_t getMorton() const
void setMarker(int8_t marker)
uint32_t getLogicalSize() const
void setBalance(bool balance)
uint64_t getLogicalArea() const
darray3 getLogicalCenter() const
std::vector< Octant > buildChildren() const
void setGhostLayer(int ghostLayer)
darray3 getLogicalEdgeCenter(uint8_t iedge) const
void setBound(uint8_t face)
bool getEdgeBound(uint8_t edge) const
darray3 getLogicalFaceCenter(uint8_t iface) const
u32array3 computeFatherCoordinates() const
uint8_t getFamilySplittingNode() const
void setLevel(uint8_t level)
uint64_t computeFatherMorton() const
Octant buildLastDesc() const
uint64_t getLogicalVolume() const
uint64_t computeLastDescMorton() const
Para Tree is the user interface class.
std::ostream & operator<<(std::ostream &, const std::vector< T > &)