Parallel Octree Manager Class - 3D specialization. More...
Public Types | |
typedef vector< double > | dvector |
typedef vector< double > | dvector1D |
typedef vector< vector< double > > | dvector2D |
typedef vector< int > | ivector |
typedef vector< vector< int > > | ivector2D |
typedef vector< Class_Octant< 3 > > | OctantsType |
typedef vector< uint32_t > | u32vector |
typedef vector< vector < uint32_t > > | u32vector2D |
typedef vector< vector < uint64_t > > | u64vector2D |
Public Member Functions | |
Class_Para_Tree (string logfile="PABLO.log", MPI_Comm comm_=MPI_COMM_WORLD) | |
Class_Para_Tree (double X, double Y, double Z, double L, string logfile="PABLO.log", MPI_Comm comm_=MPI_COMM_WORLD) | |
Class_Para_Tree (double &X, double &Y, double &Z, double &L, ivector2D &XYZ, ivector &levels, string logfile="PABLO.log", MPI_Comm comm_=MPI_COMM_WORLD) | |
Class_Para_Tree (double X, double Y, double Z, double L, ivector2D &XYZ, ivector &levels, string logfile="PABLO.log", MPI_Comm comm_=MPI_COMM_WORLD) | |
bool | adapt () |
bool | adapt (bool mapper_flag) |
bool | adapt (u32vector &mapper) |
bool | adaptGlobalCoarse () |
bool | adaptGlobalCoarse (u32vector &mapidx) |
bool | adaptGlobalRefine () |
bool | adaptGlobalRefine (u32vector &mapidx) |
void | clearConnectivity () |
void | clearGhostsConnectivity () |
template<class Impl > | |
void | communicate (Class_Data_Comm_Interface< Impl > &userData) |
void | computeConnectivity () |
void | computeGhostsConnectivity () |
void | computeIntersections () |
Class_Octant< 3 > & | extractOctant (uint32_t idx) |
void | findGhostNeighbours (uint32_t idx, uint8_t iface, uint8_t codim, u32vector &neighbours) |
void | findNeighbours (uint32_t idx, uint8_t iface, uint8_t codim, u32vector &neighbours, vector< bool > &isghost) |
void | findNeighbours (Class_Octant< 3 > *oct, uint8_t iface, uint8_t codim, u32vector &neighbours, vector< bool > &isghost) |
int | findOwner (const uint64_t &morton) |
double | getArea (Class_Octant< 3 > *const oct) |
double | getArea (uint32_t idx) |
double | getArea (Class_Intersection< 3 > *inter) |
bool | getBalance (Class_Octant< 3 > *oct) |
bool | getBalance (uint32_t idx) |
uint8_t | getBalanceCodimension () const |
bool | getBound (Class_Octant< 3 > *oct, uint8_t iface) |
bool | getBound (Class_Octant< 3 > *oct) |
bool | getBound (Class_Intersection< 3 > *inter) |
void | getCenter (Class_Octant< 3 > *oct, dvector ¢er) |
vector< double > | getCenter (Class_Octant< 3 > *oct) |
void | getCenter (uint32_t idx, vector< double > ¢er) |
vector< double > | getCenter (uint32_t idx) |
vector< double > | getCenter (Class_Intersection< 3 > *inter) |
const u32vector2D & | getConnectivity () |
vector< double > | getEdgeCenter (Class_Octant< 3 > *oct, uint8_t iedge) |
void | getEdgeCenter (Class_Octant< 3 > *oct, uint8_t iedge, vector< double > ¢er) |
vector< double > | getEdgeCenter (uint32_t idx, uint8_t iedge) |
void | getEdgeCenter (uint32_t idx, uint8_t iedge, vector< double > ¢er) |
uint8_t | getFace (Class_Intersection< 3 > *inter) |
vector< double > | getFaceCenter (Class_Octant< 3 > *oct, uint8_t iface) |
void | getFaceCenter (Class_Octant< 3 > *oct, uint8_t iface, vector< double > ¢er) |
vector< double > | getFaceCenter (uint32_t idx, uint8_t iface) |
void | getFaceCenter (uint32_t idx, uint8_t iface, vector< double > ¢er) |
bool | getFiner (Class_Intersection< 3 > *inter) |
const Class_Octant< 3 > & | getFirstDesc () const |
const u32vector2D & | getGhostConnectivity () |
uint64_t | getGhostGlobalIdx (uint32_t idx) |
dvector | getGhostNodeCoordinates (uint32_t inode) |
u32vector | getGhostNodeLogicalCoordinates (uint32_t inode) |
const u32vector2D & | getGhostNodes () |
Class_Octant< 3 > * | getGhostOctant (uint32_t idx) |
u32vector | getGhostOctantConnectivity (uint32_t idx) |
u32vector | getGhostOctantConnectivity (Class_Octant< 3 > *oct) |
const Class_Global< 3 > & | getGlobal () |
uint64_t | getGlobalIdx (Class_Octant< 3 > *oct) |
uint64_t | getGlobalIdx (uint32_t idx) |
uint32_t | getIdx (Class_Octant< 3 > *oct) |
Class_Intersection< 3 > * | getIntersection (uint32_t idx) |
bool | getIsGhost (Class_Octant< 3 > *oct) |
bool | getIsGhost (uint32_t idx) |
bool | getIsGhost (Class_Intersection< 3 > *inter) |
bool | getIsNewC (Class_Octant< 3 > *oct) |
bool | getIsNewC (uint32_t idx) |
bool | getIsNewR (Class_Octant< 3 > *oct) |
bool | getIsNewR (uint32_t idx) |
const Class_Octant< 3 > & | getLastDesc () const |
uint64_t | getLastDescMorton (uint32_t idx) |
uint8_t | getLevel (Class_Octant< 3 > *oct) |
uint8_t | getLevel (uint32_t idx) |
uint8_t | getLevel (Class_Intersection< 3 > *inter) |
uint8_t | getLocalMaxDepth () const |
Class_Octant< 3 > * | getLogicalPointOwner (dvector &point) |
uint32_t | getLogicalPointOwnerIdx (dvector &point) |
void | getMapping (uint32_t &idx, u32vector &mapper, vector< bool > &isghost) |
int8_t | getMarker (Class_Octant< 3 > *oct) |
int8_t | getMarker (uint32_t idx) |
vector< double > | getNode (uint32_t idx, uint8_t inode) |
void | getNode (uint32_t idx, uint8_t inode, vector< double > &node) |
dvector | getNodeCoordinates (uint32_t inode) |
u32vector | getNodeLogicalCoordinates (uint32_t inode) |
void | getNodes (Class_Octant< 3 > *oct, dvector2D &nodes) |
dvector2D | getNodes (Class_Octant< 3 > *oct) |
void | getNodes (uint32_t idx, dvector2D &nodes) |
dvector2D | getNodes (uint32_t idx) |
dvector2D | getNodes (Class_Intersection< 3 > *inter) |
const u32vector2D & | getNodes () |
void | getNormal (Class_Octant< 3 > *oct, uint8_t &iface, dvector &normal) |
dvector | getNormal (Class_Octant< 3 > *oct, uint8_t &iface) |
void | getNormal (uint32_t idx, uint8_t &iface, dvector &normal) |
dvector | getNormal (uint32_t idx, uint8_t &iface) |
dvector | getNormal (Class_Intersection< 3 > *inter) |
uint32_t | getNumGhosts () const |
uint32_t | getNumIntersections () |
uint32_t | getNumNodes () |
uint32_t | getNumOctants () const |
Class_Octant< 3 > * | getOctant (uint32_t idx) |
u32vector | getOctantConnectivity (uint32_t idx) |
u32vector | getOctantConnectivity (Class_Octant< 3 > *oct) |
u32vector | getOwners (Class_Intersection< 3 > *inter) |
bool | getPbound (Class_Octant< 3 > *oct, uint8_t iface) |
bool | getPbound (Class_Octant< 3 > *oct) |
bool | getPbound (Class_Intersection< 3 > *inter) |
Class_Octant< 3 > * | getPointOwner (dvector &point) |
Class_Octant< 3 > * | getPointOwner (u32vector &point) |
uint32_t | getPointOwnerIdx (dvector &point) |
uint32_t | getPointOwnerIdx (u32vector &point) |
double | getSize (Class_Octant< 3 > *const oct) |
double | getSize (uint32_t idx) |
double | getSize (Class_Intersection< 3 > *inter) |
uint64_t | getStatus () |
double | getVolume (Class_Octant< 3 > *const oct) |
double | getVolume (uint32_t idx) |
double | getX (Class_Octant< 3 > *const oct) |
double | getX (uint32_t idx) |
double | getY (Class_Octant< 3 > *const oct) |
double | getY (uint32_t idx) |
double | getZ (Class_Octant< 3 > *const oct) |
double | getZ (uint32_t idx) |
void | loadBalance () |
void | loadBalance (uint8_t &level) |
template<class Impl > | |
void | loadBalance (Class_Data_LB_Interface< Impl > &userData, dvector *weight=NULL) |
template<class Impl > | |
void | loadBalance (Class_Data_LB_Interface< Impl > &userData, uint8_t &level) |
vector< pair< pair< uint32_t, uint32_t >, pair< int, int > > > | mapPablos (Class_Para_Tree< 3 > &ptree) |
void | setBalance (Class_Octant< 3 > *oct, bool balance) |
void | setBalance (uint32_t idx, bool balance) |
void | setBalanceCodimension (uint8_t b21codim) |
void | setMarker (Class_Octant< 3 > *oct, int8_t marker) |
void | setMarker (uint32_t idx, int8_t marker) |
void | updateConnectivity () |
void | updateGhostsConnectivity () |
void | write (string filename) |
void | writeLogical (string filename) |
void | writeTest (string filename, vector< double > data) |
void | writeTest (string filename, vector< double > data, vector< double > ghostdata) |
Public Attributes | |
map< int, vector< uint32_t > > | bordersPerProc |
MPI_Comm | comm |
int | error_flag |
uint64_t | global_num_octants |
Class_Log | log |
u32vector | mapidx |
uint8_t | max_depth |
int | nproc |
Class_Local_Tree< 3 > | octree |
uint64_t * | partition_first_desc |
uint64_t * | partition_last_desc |
uint64_t * | partition_range_globalidx |
int | rank |
bool | serial |
uint64_t | status |
Class_Map< 3 > | trans |
Parallel Octree Manager Class - 3D specialization.
Para Tree is the user interface class. One user should (read can...) work only with this Class and its methods. The sizes are intended in physical domain. The transformation from the logical domain to the physical domain is defined by Class_Map<3> trans.
The partition of the octree is performed by following the Z-curve defined by the Morton index of the octants. By default it is a balanced partition over the number of octants for each process.
Definition at line 28 of file Class_Para_Tree_3D.tpp.
|
inline |
Default Constructor of Para_Tree. It builds one octant with node 0 in the Origin (0,0,0) and side of length 1
[in] | logfile | The file name for the log of this object. PABLO.log is the default value |
Definition at line 92 of file Class_Para_Tree_3D.tpp.
|
inline |
Constructor of Para_Tree with input parameters. It builds one octant with :
[in] | X | Coordinate X of node 0, |
[in] | Y | Coordinate Y of node 0, |
[in] | Z | Coordinate Z of node 0, |
[in] | L | Side length of the octant. |
[in] | logfile | The file name for the log of this object. PABLO.log is the default value |
Definition at line 144 of file Class_Para_Tree_3D.tpp.
|
inline |
Constructor of Para_Tree for restart a simulation with input parameters. For each process it builds a vector of octants. The input parameters are :
[in] | X | Physical Coordinate X of node 0, |
[in] | Y | Physical Coordinate Y of node 0, |
[in] | Z | Physical Coordinate Z of node 0, |
[in] | L | Physical Side length of the domain, |
[in] | XY | Coordinates of octants (node 0) in logical domain, |
[in] | levels | Level of each octant. |
[in] | logfile | The file name for the log of this object. PABLO.log is the default value |
Definition at line 202 of file Class_Para_Tree_3D.tpp.
|
inline |
Constructor of Para_Tree for restart a simulation with input parameters. For each process it builds a vector of octants. The input parameters are :
[in] | X | Physical Coordinate X of node 0, |
[in] | Y | Physical Coordinate Y of node 0, |
[in] | Z | Physical Coordinate Z of node 0, |
[in] | L | Physical Side length of the domain, |
[in] | XY | Coordinates of octants (node 0) in logical domain, |
[in] | levels | Level of each octant. |
[in] | logfile | The file name for the log of this object. PABLO.log is the default value |
Definition at line 302 of file Class_Para_Tree_3D.tpp.
|
inline |
Adapt the octree mesh with user setup for markers and 2:1 balancing conditions.
Definition at line 4872 of file Class_Para_Tree_3D.tpp.
|
inline |
Adapt the octree mesh with user setup for markers and 2:1 balancing conditions.
[in] | mapper_flag | True/False if you want/don't want to track the changes in structure octant by a mapper. |
Definition at line 5094 of file Class_Para_Tree_3D.tpp.
|
inline |
Adapt the octree mesh with user setup for markers and 2:1 balancing conditions.
[out] | mapper | Mapper from new octants to old octants. I.e. mapper[i] = j -> the i-th octant after adapt was in the j-th position before adapt; if the i-th octant is new after refinement the j-th old octant was the father of the new octant; if the i-th octant is new after coarsening the j-th old octant was a child of the new octant (mapper size = 4). |
Definition at line 5120 of file Class_Para_Tree_3D.tpp.
|
inline |
Adapt the octree mesh coarsening all the octants by one level.
Definition at line 5331 of file Class_Para_Tree_3D.tpp.
|
inline |
Adapt the octree mesh coarsening all the octants by one level. Track the changes in structure octant by a mapper.
[out] | mapidx | Mapper from new octants to old octants. mapidx[i] = j -> the i-th octant after adapt was in the j-th position before adapt; if the i-th octant is new after refinement the j-th old octant was the father of the new octant; if the i-th octant is new after coarsening the j-th old octant was the first child of the new octant. |
Definition at line 5420 of file Class_Para_Tree_3D.tpp.
|
inline |
Adapt the octree mesh refining all the octants by one level.
Definition at line 5176 of file Class_Para_Tree_3D.tpp.
|
inline |
Adapt the octree mesh refining all the octants by one level. Track the changes in structure octant by a mapper.
[out] | mapidx | Mapper from new octants to old octants. mapidx[i] = j -> the i-th octant after adapt was in the j-th position before adapt; if the i-th octant is new after refinement the j-th old octant was the father of the new octant; if the i-th octant is new after coarsening the j-th old octant was the first child of the new octant. |
Definition at line 5250 of file Class_Para_Tree_3D.tpp.
|
inline |
Clear the connectivity of octants.
Definition at line 5618 of file Class_Para_Tree_3D.tpp.
|
inline |
Clear the connectivity of ghost octants.
Definition at line 5642 of file Class_Para_Tree_3D.tpp.
|
inline |
Communicate data provided by the user between the processes.
Definition at line 5517 of file Class_Para_Tree_3D.tpp.
|
inline |
Compute the connectivity of octants and store the coordinates of nodes.
Definition at line 5610 of file Class_Para_Tree_3D.tpp.
|
inline |
Compute the connectivity of ghost octants and store the coordinates of nodes.
Definition at line 5634 of file Class_Para_Tree_3D.tpp.
|
inline |
Compute the intersection of octants (intersections of bord, of inner domain and with ghost octants).
Definition at line 1707 of file Class_Para_Tree_3D.tpp.
|
inline |
Finds neighbours of ghost octant through iface in vector octants. Returns a vector (empty if iface is a bound face) with the index of neighbours in their structure ( only local octants ).
[in] | idx | Index of current octant |
[in] | iface | Index of face/edge/node passed through for neighbours finding |
[in] | codim | Codimension of the iface-th entity 1=face, 2=edge, 3=node |
[out] | neighbours | Vector of neighbours indices in octants/ghosts structure |
Definition at line 1413 of file Class_Para_Tree_3D.tpp.
|
inline |
Finds neighbours of octant through iface in vector octants. Returns a vector (empty if iface is a bound face) with the index of neighbours in their structure (octants or ghosts) and sets isghost[i] = true if the i-th neighbour is ghost in the local tree.
[in] | idx | Index of current octant |
[in] | iface | Index of face/edge/node passed through for neighbours finding |
[in] | codim | Codimension of the iface-th entity 1=face, 2=edge, 3=node |
[out] | neighbours | Vector of neighbours indices in octants/ghosts structure |
[out] | isghost | Vector with boolean flag; true if the respective octant in neighbours is a ghost octant |
Definition at line 1354 of file Class_Para_Tree_3D.tpp.
|
inline |
Finds neighbours of octant through iface in vector octants. Returns a vector (empty if iface is a bound face) with the index of neighbours in their structure (octants or ghosts) and sets isghost[i] = true if the i-th neighbour is ghost in the local tree.
[in] | oct | Pointer to current octant |
[in] | iface | Index of face/edge/node passed through for neighbours finding |
[in] | codim | Codimension of the iface-th entity 1=face, 2=edge, 3=node |
[out] | neighbours | Vector of neighbours indices in octants/ghosts structure |
[out] | isghost | Vector with boolean flag; true if the respective octant in neighbours is a ghost octant |
Definition at line 1384 of file Class_Para_Tree_3D.tpp.
|
inline |
It finds the process owning the element definded by the Morton number passed as argument
The Morton number can be computed using the method Class_Octant<3>::computeMorton().
[in] | morton | is the Morton number of the element you want find the owner of |
Definition at line 1321 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the area of an octant
[in] | oct | Pointer to target octant. |
Definition at line 447 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the area of an octant
[in] | idx | Local index of target octant. |
Definition at line 993 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the area of an intersection (for 2D case the same value of getSize).
[in] | inter | Pointer to target intersection. |
Definition at line 1564 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the balancing condition of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 657 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the balancing condition of an octant.
[in] | idx | Local index of target octant. |
Definition at line 1140 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the codimension for 2:1 balancing
Definition at line 1245 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the bound flag on an octant face.
[in] | oct | Pointer to target octant. |
[in] | iface | local index of the face. |
Definition at line 618 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the union of every bound flags on faces
[in] | oct | Pointer to target octant. |
Definition at line 635 of file Class_Para_Tree_3D.tpp.
|
inline |
Get if an intersection is a boundary domain intersection.
[in] | inter | Pointer to target intersection. |
Definition at line 1508 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of an octant.
[in] | oct | Pointer to target octant. |
[out] | center | Coordinates of the center of octant. |
Definition at line 463 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 473 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of an octant.
[in] | idx | Local index of target octant. |
[out] | center | Coordinates of the center of octant. |
Definition at line 1009 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of an octant.
[in] | idx | Local index of target octant. |
Definition at line 1019 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of an intersection.
[in] | inter | Pointer to target intersection. |
[out] | center | Coordinates of the center of intersection. |
Definition at line 1577 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the connectivity of the octants
Definition at line 5667 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of an edge of an octant.
[in] | oct | Pointer to target octant. |
[in] | iedge | Index of the target edge. |
Definition at line 507 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of a edge of an octant.
[in] | oct | Pointer to target octant. |
[in] | iedge | Index of the target edge. |
[out] | center | Coordinates of the center of the iedge-th edge af octant. |
Definition at line 519 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of an edge of an octant.
[in] | idx | Local index of target octant. |
[in] | iedge | Index of the target edge. |
Definition at line 1053 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of a edge of an octant.
[in] | idx | Local index of target octant. |
[in] | iedge | Index of the target edge. |
[out] | center | Coordinates of the center of the iedge-th edge af octant. |
Definition at line 1065 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the face index of an intersection.
[in] | inter | Pointer to target intersection. |
Definition at line 1532 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of a face of an octant.
[in] | oct | Pointer to target octant. |
[in] | iface | Index of the target face. |
Definition at line 485 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of a face of an octant.
[in] | oct | Pointer to target octant. |
[in] | iface | Index of the target face. |
[out] | center | Coordinates of the center of the iface-th face af octant. |
Definition at line 497 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of a face of an octant.
[in] | idx | Local index of target octant. |
[in] | iface | Index of the target face. |
Definition at line 1031 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of a face of an octant.
[in] | idx | Local index of target octant. |
[in] | iface | Index of the target face. |
[out] | center | Coordinates of the center of the iface-th face af octant. |
Definition at line 1043 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the finer owner octant of an intersection.
[in] | inter | Pointer to target intersection. |
Definition at line 1500 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the connectivity of the ghost octants
Definition at line 5676 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the global index of a ghost octant.
[in] | idx | Local index of target ghost octant. |
Definition at line 1188 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the physical coordinates of a ghost node
[in] | inode | Local index of node |
Definition at line 5776 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the logical coordinates of a ghost node
[in] | inode | Local index of node |
Definition at line 5766 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the logical coordinates of the ghost nodes
Definition at line 5742 of file Class_Para_Tree_3D.tpp.
|
inline |
Get a ghost octant as pointer to the target octant.
[in] | idx | Local index (in ghosts structure) of target ghost octant. |
Definition at line 1305 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the local connectivity of a ghost octant
[in] | idx | Local index of ghost octant |
Definition at line 5704 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the local connectivity of a ghost octant
[in] | oct | Pointer to a ghost octant |
Definition at line 5714 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the global class object
Definition at line 406 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the global index of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 693 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the global index of an octant.
[in] | idx | Local index of target octant. |
Definition at line 1174 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the local index of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 711 of file Class_Para_Tree_3D.tpp.
|
inline |
Get a pointer to target intersection.
[in] | idx | Local index of intersection. |
Definition at line 1478 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the nature of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 666 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the nature of an octant.
[in] | idx | Local index of target octant. |
Definition at line 1149 of file Class_Para_Tree_3D.tpp.
|
inline |
Get if an intersection is an intersection between an internal and a ghost element.
[in] | inter | Pointer to target intersection. |
Definition at line 1516 of file Class_Para_Tree_3D.tpp.
|
inline |
Get if the octant is new after coarsening.
[in] | oct | Pointer to target octant. |
Definition at line 685 of file Class_Para_Tree_3D.tpp.
|
inline |
Get if the octant is new after coarsening.
[in] | idx | Local index of target octant. |
Definition at line 1166 of file Class_Para_Tree_3D.tpp.
|
inline |
Get if the octant is new after refinement.
[in] | oct | Pointer to target octant. |
Definition at line 677 of file Class_Para_Tree_3D.tpp.
|
inline |
Get if the octant is new after refinement.
[in] | idx | Local index of target octant. |
Definition at line 1158 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the level of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 609 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the level of an octant.
[in] | idx | Local index of target octant. |
Definition at line 1132 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the level of an intersection.
[in] | inter | Pointer to target intersection. |
Definition at line 1489 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the local depth of octree.
Definition at line 1238 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the octant owner of an input point.
[in] | point | Coordinates of target point in logical domain. |
Definition at line 2022 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the octant owner of an input point.
[in] | point | Coordinates of target point in logical domain. |
Definition at line 2097 of file Class_Para_Tree_3D.tpp.
|
inline |
Get mapping info of an octant after an adapting with tracking changes.
[in] | idx | Index of new octant. |
[out] | mapper | Mapper from new octants to old octants. I.e. mapper[i] = j -> the i-th octant after adapt was in the j-th position before adapt; if the i-th octant is new after refinement the j-th old octant was the father of the new octant; if the i-th octant is new after coarsening the j-th old octant was a child of the new octant (mapper size = 4). |
[out] | isghost | Info on ghostness of old octants. I.e. isghost[i] = true/false -> the mapper[i] = j-th old octant was a local/ghost octant. |
Definition at line 5141 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the refinement marker of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 601 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the refinement marker of an octant.
[in] | idx | Local index of target octant. |
Definition at line 1124 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of single node of an octant.
[in] | idx | Local index of target octant. |
[in] | inode | Index of the target node. |
Definition at line 529 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the center of a face of an octant.
[in] | idx | Local index of target octant. |
[in] | iface | Index of the target face. |
[out] | center | Coordinates of the center of the iface-th face af octant. |
Definition at line 541 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the physical coordinates of a node
[in] | inode | Local index of node |
Definition at line 5752 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the logical coordinates of a node
[in] | inode | Local index of node |
Definition at line 5733 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the nodes of an octant.
[in] | oct | Pointer to target octant. |
[out] | nodes | Coordinates of the nodes of octant. |
Definition at line 550 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the nodes of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 562 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the nodes of an octant.
[in] | idx | Local index of target octant. |
[out] | nodes | Coordinates of the nodes of octant. |
Definition at line 1074 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the nodes of an octant.
[in] | idx | Local index of target octant. |
Definition at line 1085 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of the nodes of an intersection.
[in] | oct | Pointer to target intersection. |
Definition at line 1596 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the logical coordinates of the nodes
Definition at line 5723 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the normal of a face of an octant.
[in] | oct | Pointer to target octant. |
[in] | iface | Index of the face for normal computing. |
[out] | normal | Coordinates of the normal of face. |
Definition at line 574 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the normal of a face of an octant.
[in] | oct | Pointer to target octant. |
[in] | iface | Index of the face for normal computing. |
Definition at line 588 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the normal of a face of an octant.
[in] | Local | index of target octant. |
[in] | iface | Index of the face for normal computing. |
[out] | normal | Coordinates of the normal of face. |
Definition at line 1098 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the normal of a face of an octant.
[in] | idx | Local index of target octant. |
[in] | iface | Index of the face for normal computing. |
Definition at line 1111 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the normal of an intersection.
[in] | oct | Pointer to target intersection. |
[out] | normal | Coordinates of the normal of intersection. |
Definition at line 1620 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the local number of ghost octants.
Definition at line 1231 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the local number of intersections.
Definition at line 1470 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the local number of nodes.
Definition at line 5658 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the local number of octants.
Definition at line 1224 of file Class_Para_Tree_3D.tpp.
|
inline |
Get an octant as pointer to the target octant.
[in] | idx | Local index of target octant. |
Definition at line 1294 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the local connectivity of an octant
[in] | idx | Local index of octant |
Definition at line 5685 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the local connectivity of an octant
[in] | oct | Pointer to an octant |
Definition at line 5694 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the owner octants of an intersection.
[in] | inter | Pointer to target intersection. |
Definition at line 1540 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the pbound flag on an octant face.
[in] | oct | Pointer to target octant. |
[in] | iface | local index of the face. |
Definition at line 627 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the union of every pbound flags on faces
[in] | oct | Pointer to target octant. |
Definition at line 646 of file Class_Para_Tree_3D.tpp.
|
inline |
Get if an intersection is a boundary intersection for a process.
[in] | inter | Pointer to target intersection. |
Definition at line 1525 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the octant owner of an input point.
[in] | point | Coordinates of target point. |
Definition at line 1717 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the octant owner of an input point.
[in] | point | Coordinates of target point in logical domain. |
Definition at line 1871 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the octant owner of an input point.
[in] | point | Coordinates of target point. |
Definition at line 1792 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the octant owner of an input point.
[in] | point | Coordinates of target point in logical domain. |
Definition at line 1947 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the size of an octant, i.e. the side length.
[in] | oct | Pointer to target octant. |
Definition at line 439 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the size of an octant, i.e. the side length.
[in] | idx | Local index of target octant. |
Definition at line 985 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the size of an intersection.
[in] | inter | Pointer to target intersection. |
Definition at line 1551 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the status label of the octree.
Definition at line 1217 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the volume of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 455 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the volume of an octant.
[in] | idx | Local index of target octant. |
Definition at line 1001 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of an octant, i.e. the coordinates of its node 0.
[in] | oct | Pointer to target octant. |
Definition at line 413 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of an octant, i.e. the coordinates of its node 0.
[in] | idx | Local index of target octant. |
Definition at line 961 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of an octant, i.e. the coordinates of its node 0.
[in] | oct | Pointer to target octant. |
Definition at line 422 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of an octant, i.e. the coordinates of its node 0.
[in] | idx | Local index of target octant. |
Definition at line 969 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of an octant, i.e. the coordinates of its node 0.
[in] | oct | Pointer to target octant. |
Definition at line 431 of file Class_Para_Tree_3D.tpp.
|
inline |
Get the coordinates of an octant, i.e. the coordinates of its node 0.
[in] | idx | Local index of target octant. |
Definition at line 977 of file Class_Para_Tree_3D.tpp.
|
inline |
Distribute Load-Balancing the octants of the whole tree over the processes of the job following the Morton order. Until loadBalance is not called for the first time the mesh is serial.
Definition at line 2718 of file Class_Para_Tree_3D.tpp.
|
inline |
Distribute Load-Balanced the octants of the whole tree over the processes of the job. Until loadBalance is not called for the first time the mesh is serial. The families of octants of a desired level are retained compact on the same process.
[in] | level | Number of level over the max depth reached in the tree at which families of octants are fixed compact on the same process (level=0 is classic LoadBalance). |
Definition at line 3140 of file Class_Para_Tree_3D.tpp.
|
inline |
Distribute Load-Balancing the octants of the whole tree and data provided by the user over the processes of the job following the Morton order. Until loadBalance is not called for the first time the mesh is serial.
Definition at line 3564 of file Class_Para_Tree_3D.tpp.
|
inline |
Distribute Load-Balanced the octants of the whole tree and data provided by the user over the processes of the job. Until loadBalance is not called for the first time the mesh is serial. The families of octants of a desired level are retained compact on the same process.
[in] | level | Number of level over the max depth reached in the tree at which families of octants are fixed compact on the same process (level=0 is classic LoadBalance). |
Definition at line 4066 of file Class_Para_Tree_3D.tpp.
|
inline |
Map the elements of the actual octree mesh to the elements of another one. If the connectivity is not stored, the method temporary computes it. If the connectivity of ghost octants is already computed, the method writes the ghosts on file.
[in] | ptree | Second octree. The map goes from the firs one to the second one. |
[out] | Map | between octrees. Each first i-th pair gives the first index and the last one of the elements of the second octree which lie in the i-th element of the first octree. If the indices are equal, then the element of the second octree is of the same level or lower (bigger size). Each second i-th pair gives the indices of the two processes owning the two octants defined by the first pair. |
Definition at line 5795 of file Class_Para_Tree_3D.tpp.
|
inline |
Set the balancing condition of an octant.
[in] | oct | Pointer to target octant. |
[in] | balance | Has octant to be 2:1 balanced in adapting procedure? |
Definition at line 732 of file Class_Para_Tree_3D.tpp.
|
inline |
Set the balancing condition of an octant.
[in] | idx | Local index of target octant. |
[in] | balance | Has octant to be 2:1 balanced in adapting procedure? |
Definition at line 1207 of file Class_Para_Tree_3D.tpp.
|
inline |
Set the codimension for 2:1 balancing
[in] | Maximum | codimension of the entity through which the 2:1 balance is performed (1 = 2:1 balance through edges (default); 2 = 2:1 balance through nodes and edges; 3 = 2:1 balance through nodes, edges and faces) |
Definition at line 1254 of file Class_Para_Tree_3D.tpp.
|
inline |
Set the refinement marker of an octant.
[in] | oct | Pointer to target octant. |
[in] | marker | Refinement marker of octant (n=n refinement in adapt, -n=n coarsening in adapt, default=0). |
Definition at line 724 of file Class_Para_Tree_3D.tpp.
|
inline |
Set the refinement marker of an octant.
[in] | idx | Local index of target octant. |
[in] | marker | Refinement marker of octant (n=n refinement in adapt, -n=n coarsening in adapt, default=0). |
Definition at line 1199 of file Class_Para_Tree_3D.tpp.
|
inline |
Update the connectivity of octants.
Definition at line 5626 of file Class_Para_Tree_3D.tpp.
|
inline |
Update the connectivity of ghost octants.
Definition at line 5650 of file Class_Para_Tree_3D.tpp.
|
inline |
Write the physical octree mesh in .vtu format in a user-defined file. If the connectivity is not stored, the method temporary computes it. If the connectivity of ghost octants is already computed, the method writes the ghosts on file.
[in] | filename | Seriously?.... |
Definition at line 6464 of file Class_Para_Tree_3D.tpp.
|
inline |
Write the logical octree mesh in .vtu format in a user-defined file. If the connectivity is not stored, the method temporary computes it. If the connectivity of ghost octants is already computed, the method writes the ghosts on file.
[in] | filename | Seriously?.... |
Definition at line 6327 of file Class_Para_Tree_3D.tpp.
|
inline |
Write the physical octree mesh in .vtu format with data for test in a user-defined file. If the connectivity is not stored, the method temporary computes it. The method doesn't write the ghosts on file.
[in] | filename | Seriously?.... |
Definition at line 6609 of file Class_Para_Tree_3D.tpp.
|
inline |
Write the physical octree mesh in .vtu format with data for test in a user-defined file. If the connectivity is not stored, the method temporary computes it. The method doesn't write the ghosts on file.
[in] | filename | Seriously?.... |
Definition at line 6745 of file Class_Para_Tree_3D.tpp.
map<int,vector<uint32_t> > Class_Para_Tree< 3 >::bordersPerProc |
Local indices of border octants per process
Definition at line 50 of file Class_Para_Tree_3D.tpp.
MPI_Comm Class_Para_Tree< 3 >::comm |
MPI communicator
Definition at line 80 of file Class_Para_Tree_3D.tpp.
int Class_Para_Tree< 3 >::error_flag |
MPI error flag
Definition at line 66 of file Class_Para_Tree_3D.tpp.
uint64_t Class_Para_Tree< 3 >::global_num_octants |
Global number of octants in the parallel octree
Definition at line 49 of file Class_Para_Tree_3D.tpp.
Class_Log Class_Para_Tree< 3 >::log |
Log object
Definition at line 77 of file Class_Para_Tree_3D.tpp.
u32vector Class_Para_Tree< 3 >::mapidx |
Local mapper for adapting. Mapper from new octants to old octants. mapidx[i] = j -> the i-th octant after adapt was in the j-th position before adapt; if the i-th octant is new after refinement the j-th old octant was the father of the new octant; if the i-th octant is new after coarsening the j-th old octant was the first child of the new octant.
Definition at line 59 of file Class_Para_Tree_3D.tpp.
uint8_t Class_Para_Tree< 3 >::max_depth |
Global max existing level in the parallel octree
Definition at line 52 of file Class_Para_Tree_3D.tpp.
int Class_Para_Tree< 3 >::nproc |
Number of processes of the job
Definition at line 51 of file Class_Para_Tree_3D.tpp.
Class_Local_Tree<3> Class_Para_Tree< 3 >::octree |
Local tree in each processor
Definition at line 56 of file Class_Para_Tree_3D.tpp.
uint64_t* Class_Para_Tree< 3 >::partition_first_desc |
Global array containing position of the first possible octant in each processor
Definition at line 46 of file Class_Para_Tree_3D.tpp.
uint64_t* Class_Para_Tree< 3 >::partition_last_desc |
Global array containing position of the last possible octant in each processor
Definition at line 47 of file Class_Para_Tree_3D.tpp.
uint64_t* Class_Para_Tree< 3 >::partition_range_globalidx |
Global array containing global index of the last existing octant in each processor
Definition at line 48 of file Class_Para_Tree_3D.tpp.
int Class_Para_Tree< 3 >::rank |
Local rank of process
Definition at line 55 of file Class_Para_Tree_3D.tpp.
bool Class_Para_Tree< 3 >::serial |
True if the octree is the same on each processor, False if the octree is distributed
Definition at line 67 of file Class_Para_Tree_3D.tpp.
uint64_t Class_Para_Tree< 3 >::status |
Label of actual status of octree (incremental after an adpat with at least one modifyed element).
Definition at line 73 of file Class_Para_Tree_3D.tpp.
Class_Map<3> Class_Para_Tree< 3 >::trans |
Transformation map from logical to physical domain
Definition at line 70 of file Class_Para_Tree_3D.tpp.