Parallel Octree Manager Class - 2D specialization. More...
Public Types | |
typedef vector< double > | dvector |
typedef vector< vector< double > > | dvector2D |
typedef vector< int > | ivector |
typedef vector< vector< int > > | ivector2D |
typedef vector< Class_Octant< 2 > > | 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 &XY, 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 () |
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< 2 > *oct, uint8_t iface, uint8_t codim, u32vector &neighbours, vector< bool > &isghost) |
int | findOwner (const uint64_t &morton) |
double | getArea (Class_Octant< 2 > *oct) |
double | getArea (uint32_t idx) |
double | getArea (Class_Intersection< 2 > *inter) |
bool | getBalance (Class_Octant< 2 > *oct) |
bool | getBalance (uint32_t idx) |
uint8_t | getBalanceCodimension () const |
bool | getBound (Class_Octant< 2 > *oct, uint8_t iface) |
bool | getBound (Class_Octant< 2 > *oct) |
bool | getBound (Class_Intersection< 2 > *inter) |
void | getCenter (Class_Octant< 2 > *oct, vector< double > ¢er) |
vector< double > | getCenter (Class_Octant< 2 > *oct) |
void | getCenter (uint32_t idx, vector< double > ¢er) |
vector< double > | getCenter (uint32_t idx) |
vector< double > | getCenter (Class_Intersection< 2 > *inter) |
const u32vector2D & | getConnectivity () |
uint8_t | getFace (Class_Intersection< 2 > *inter) |
vector< double > | getFaceCenter (Class_Octant< 2 > *oct, uint8_t iface) |
void | getFaceCenter (Class_Octant< 2 > *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< 2 > *inter) |
const Class_Octant< 2 > & | 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< 2 > * | getGhostOctant (uint32_t idx) |
u32vector | getGhostOctantConnectivity (uint32_t idx) |
u32vector | getGhostOctantConnectivity (Class_Octant< 2 > *oct) |
const Class_Global< 2 > & | getGlobal () |
uint64_t | getGlobalIdx (Class_Octant< 2 > *oct) |
uint64_t | getGlobalIdx (uint32_t idx) |
uint32_t | getIdx (Class_Octant< 2 > *oct) |
Class_Intersection< 2 > * | getIntersection (uint32_t idx) |
bool | getIsGhost (Class_Octant< 2 > *oct) |
bool | getIsGhost (uint32_t idx) |
bool | getIsGhost (Class_Intersection< 2 > *inter) |
bool | getIsNewC (Class_Octant< 2 > *oct) |
bool | getIsNewC (uint32_t idx) |
bool | getIsNewR (Class_Octant< 2 > *oct) |
bool | getIsNewR (uint32_t idx) |
const Class_Octant< 2 > & | getLastDesc () const |
uint64_t | getLastDescMorton (uint32_t idx) |
uint8_t | getLevel (Class_Octant< 2 > *oct) |
uint8_t | getLevel (uint32_t idx) |
uint8_t | getLevel (Class_Intersection< 2 > *inter) |
uint8_t | getLocalMaxDepth () const |
Class_Octant< 2 > * | getLogicalPointOwner (dvector &point) |
uint32_t | getLogicalPointOwnerIdx (dvector &point) |
void | getMapping (uint32_t &idx, u32vector &mapper, vector< bool > &isghost) |
int8_t | getMarker (Class_Octant< 2 > *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< 2 > *oct, dvector2D &nodes) |
dvector2D | getNodes (Class_Octant< 2 > *oct) |
void | getNodes (uint32_t idx, dvector2D &nodes) |
dvector2D | getNodes (uint32_t idx) |
dvector2D | getNodes (Class_Intersection< 2 > *inter) |
const u32vector2D & | getNodes () |
void | getNormal (Class_Octant< 2 > *oct, uint8_t &iface, dvector &normal) |
dvector | getNormal (Class_Octant< 2 > *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< 2 > *inter) |
uint32_t | getNumGhosts () const |
uint32_t | getNumIntersections () |
uint32_t | getNumNodes () |
uint32_t | getNumOctants () const |
Class_Octant< 2 > * | getOctant (uint32_t idx) |
u32vector | getOctantConnectivity (uint32_t idx) |
u32vector | getOctantConnectivity (Class_Octant< 2 > *oct) |
u32vector | getOwners (Class_Intersection< 2 > *inter) |
bool | getPbound (Class_Octant< 2 > *oct, uint8_t iface) |
bool | getPbound (Class_Octant< 2 > *oct) |
bool | getPbound (Class_Intersection< 2 > *inter) |
Class_Octant< 2 > * | getPointOwner (dvector &point) |
Class_Octant< 2 > * | getPointOwner (u32vector &point) |
uint32_t | getPointOwnerIdx (dvector &point) |
uint32_t | getPointOwnerIdx (u32vector &point) |
double | getSize (Class_Octant< 2 > *oct) |
double | getSize (uint32_t idx) |
double | getSize (Class_Intersection< 2 > *inter) |
uint64_t | getStatus () |
double | getVolume (Class_Octant< 2 > *oct) |
double | getVolume (uint32_t idx) |
double | getX (Class_Octant< 2 > *oct) |
double | getX (uint32_t idx) |
double | getY (Class_Octant< 2 > *oct) |
double | getY (uint32_t idx) |
double | getZ (Class_Octant< 2 > *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< 2 > &ptree) |
void | setBalance (Class_Octant< 2 > *oct, bool balance) |
void | setBalance (uint32_t idx, bool balance) |
void | setBalanceCodimension (uint8_t b21codim) |
void | setMarker (Class_Octant< 2 > *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) |
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< 2 > | 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< 2 > | trans |
Parallel Octree Manager Class - 2D 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<2> 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_2D.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 90 of file Class_Para_Tree_2D.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 142 of file Class_Para_Tree_2D.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 200 of file Class_Para_Tree_2D.tpp.
|
inline |
Adapt the octree mesh with user setup for markers and 2:1 balancing conditions.
Definition at line 4761 of file Class_Para_Tree_2D.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 4983 of file Class_Para_Tree_2D.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 5008 of file Class_Para_Tree_2D.tpp.
|
inline |
Adapt the octree mesh coarsening all the octants by one level.
Definition at line 5219 of file Class_Para_Tree_2D.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 5307 of file Class_Para_Tree_2D.tpp.
|
inline |
Adapt the octree mesh refining all the octants by one level.
Definition at line 5064 of file Class_Para_Tree_2D.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 5138 of file Class_Para_Tree_2D.tpp.
|
inline |
Clear the connectivity of octants.
Definition at line 5500 of file Class_Para_Tree_2D.tpp.
|
inline |
Clear the connectivity of ghost octants.
Definition at line 5524 of file Class_Para_Tree_2D.tpp.
|
inline |
Communicate data provided by the user between the processes.
Definition at line 5404 of file Class_Para_Tree_2D.tpp.
|
inline |
Compute the connectivity of octants and store the coordinates of nodes.
Definition at line 5492 of file Class_Para_Tree_2D.tpp.
|
inline |
Compute the connectivity of ghost octants and store the coordinates of nodes.
Definition at line 5516 of file Class_Para_Tree_2D.tpp.
|
inline |
Compute the intersection of octants (intersections of bord, of inner domain and with ghost octants).
Definition at line 1537 of file Class_Para_Tree_2D.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=edge, 2=node |
[out] | neighbours | Vector of neighbours indices in octants/ghosts structure |
Definition at line 1217 of file Class_Para_Tree_2D.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=edge, 2=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. Can be ignored in serial runs. |
Definition at line 1163 of file Class_Para_Tree_2D.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=edge, 2=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. Can be ignored in serial runs. |
Definition at line 1190 of file Class_Para_Tree_2D.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<2>::computeMorton().
[in] | morton | is the Morton number of the element you want find the owner of |
Definition at line 1242 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the area of an octant (for 2D case the same value of getSize).
[in] | oct | Pointer to target octant. |
Definition at line 334 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the area of an octant (for 2D case the same value of getSize).
[in] | idx | Local index of target octant. |
Definition at line 835 of file Class_Para_Tree_2D.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 1395 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the balancing condition of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 499 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the balancing condition of an octant.
[in] | idx | Local index of target octant. |
Definition at line 982 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the codimension for 2:1 balancing
Definition at line 1087 of file Class_Para_Tree_2D.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 460 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the union of every bound flags on faces
[in] | oct | Pointer to target octant. |
Definition at line 477 of file Class_Para_Tree_2D.tpp.
|
inline |
Get if an intersection is a boundary domain intersection.
[in] | inter | Pointer to target intersection. |
Definition at line 1339 of file Class_Para_Tree_2D.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 350 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the coordinates of the center of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 360 of file Class_Para_Tree_2D.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 851 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the coordinates of the center of an octant.
[in] | idx | Local index of target octant. |
Definition at line 861 of file Class_Para_Tree_2D.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 1408 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the connectivity of the octants
Definition at line 5549 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the face index of an intersection.
[in] | inter | Pointer to target intersection. |
Definition at line 1363 of file Class_Para_Tree_2D.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 372 of file Class_Para_Tree_2D.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 384 of file Class_Para_Tree_2D.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 873 of file Class_Para_Tree_2D.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 885 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the finer owner octant of an intersection.
[in] | inter | Pointer to target intersection. |
Definition at line 1331 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the connectivity of the ghost octants
Definition at line 5558 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the global index of a ghost octant.
[in] | idx | Local index of target ghost octant. |
Definition at line 1030 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the physical coordinates of a ghost node
[in] | inode | Local index of node |
Definition at line 5658 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the logical coordinates of a ghost node
[in] | inode | Local index of node |
Definition at line 5648 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the logical coordinates of the ghost nodes
Definition at line 5624 of file Class_Para_Tree_2D.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 1147 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the local connectivity of a ghost octant
[in] | idx | Local index of ghost octant |
Definition at line 5586 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the local connectivity of a ghost octant
[in] | oct | Pointer to a ghost octant |
Definition at line 5596 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the global class object
Definition at line 294 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the global index of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 535 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the global index of an octant.
[in] | idx | Local index of target octant. |
Definition at line 1016 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the local index of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 553 of file Class_Para_Tree_2D.tpp.
|
inline |
Get a pointer to target intersection.
[in] | idx | Local index of intersection. |
Definition at line 1309 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the nature of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 508 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the nature of an octant.
[in] | idx | Local index of target octant. |
Definition at line 991 of file Class_Para_Tree_2D.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 1347 of file Class_Para_Tree_2D.tpp.
|
inline |
Get if the octant is new after coarsening.
[in] | oct | Pointer to target octant. |
Definition at line 527 of file Class_Para_Tree_2D.tpp.
|
inline |
Get if the octant is new after coarsening.
[in] | idx | Local index of target octant. |
Definition at line 1008 of file Class_Para_Tree_2D.tpp.
|
inline |
Get if the octant is new after refinement.
[in] | oct | Pointer to target octant. |
Definition at line 519 of file Class_Para_Tree_2D.tpp.
|
inline |
Get if the octant is new after refinement.
[in] | idx | Local index of target octant. |
Definition at line 1000 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the level of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 451 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the level of an octant.
[in] | idx | Local index of target octant. |
Definition at line 974 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the level of an intersection.
[in] | inter | Pointer to target intersection. |
Definition at line 1320 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the local depth of octree.
Definition at line 1080 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the octant owner of an input point.
[in] | point | Coordinates of target point in logical domain. |
Definition at line 1905 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the octant owner of an input point.
[in] | point | Coordinates of target point in logical domain. |
Definition at line 1975 of file Class_Para_Tree_2D.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 5029 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the refinement marker of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 443 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the refinement marker of an octant.
[in] | idx | Local index of target octant. |
Definition at line 966 of file Class_Para_Tree_2D.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 895 of file Class_Para_Tree_2D.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 907 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the physical coordinates of a node
[in] | inode | Local index of node |
Definition at line 5634 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the logical coordinates of a node
[in] | inode | Local index of node |
Definition at line 5615 of file Class_Para_Tree_2D.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 393 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the coordinates of the nodes of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 404 of file Class_Para_Tree_2D.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 916 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the coordinates of the nodes of an octant.
[in] | idx | Local index of target octant. |
Definition at line 927 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the coordinates of the nodes of an intersection.
[in] | oct | Pointer to target intersection. |
Definition at line 1427 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the logical coordinates of the nodes
Definition at line 5605 of file Class_Para_Tree_2D.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 417 of file Class_Para_Tree_2D.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 430 of file Class_Para_Tree_2D.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 940 of file Class_Para_Tree_2D.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 953 of file Class_Para_Tree_2D.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 1451 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the local number of ghost octants.
Definition at line 1073 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the local number of intersections.
Definition at line 1301 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the local number of nodes.
Definition at line 5540 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the local number of octants.
Definition at line 1066 of file Class_Para_Tree_2D.tpp.
|
inline |
Get an octant as pointer to the target octant.
[in] | idx | Local index of target octant. |
Definition at line 1136 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the local connectivity of an octant
[in] | idx | Local index of octant |
Definition at line 5567 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the local connectivity of an octant
[in] | oct | Pointer to an octant |
Definition at line 5576 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the owner octants of an intersection.
[in] | inter | Pointer to target intersection. |
Definition at line 1371 of file Class_Para_Tree_2D.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 469 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the union of every pbound flags on faces
[in] | oct | Pointer to target octant. |
Definition at line 488 of file Class_Para_Tree_2D.tpp.
|
inline |
Get if an intersection is a boundary intersection for a process.
[in] | inter | Pointer to target intersection. |
Definition at line 1355 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the octant owner of an input point.
[in] | point | Coordinates of target point. |
Definition at line 1549 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the octant owner of an input point.
[in] | point | Coordinates of target point in logical domain. |
Definition at line 1767 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the octant owner of an input point.
[in] | point | Coordinates of target point. |
Definition at line 1620 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the octant owner of an input point.
[in] | point | Coordinates of target point in logical domain. |
Definition at line 1836 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the size of an octant, i.e. the side length.
[in] | oct | Pointer to target octant. |
Definition at line 326 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the size of an octant, i.e. the side length.
[in] | idx | Local index of target octant. |
Definition at line 827 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the size of an intersection.
[in] | inter | Pointer to target intersection. |
Definition at line 1382 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the status label of the octree.
Definition at line 1059 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the volume of an octant.
[in] | oct | Pointer to target octant. |
Definition at line 342 of file Class_Para_Tree_2D.tpp.
|
inline |
Get the volume of an octant.
[in] | idx | Local index of target octant. |
Definition at line 843 of file Class_Para_Tree_2D.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 302 of file Class_Para_Tree_2D.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 803 of file Class_Para_Tree_2D.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 310 of file Class_Para_Tree_2D.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 811 of file Class_Para_Tree_2D.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 318 of file Class_Para_Tree_2D.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 819 of file Class_Para_Tree_2D.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 2626 of file Class_Para_Tree_2D.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 3048 of file Class_Para_Tree_2D.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 3461 of file Class_Para_Tree_2D.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 3956 of file Class_Para_Tree_2D.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 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 quadrants defined by the first pair. |
Definition at line 5677 of file Class_Para_Tree_2D.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 574 of file Class_Para_Tree_2D.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 1049 of file Class_Para_Tree_2D.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). |
Definition at line 1094 of file Class_Para_Tree_2D.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 566 of file Class_Para_Tree_2D.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 1041 of file Class_Para_Tree_2D.tpp.
|
inline |
Update the connectivity of octants.
Definition at line 5508 of file Class_Para_Tree_2D.tpp.
|
inline |
Update the connectivity of ghost octants.
Definition at line 5532 of file Class_Para_Tree_2D.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 6370 of file Class_Para_Tree_2D.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 6209 of file Class_Para_Tree_2D.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 6532 of file Class_Para_Tree_2D.tpp.
map<int,vector<uint32_t> > Class_Para_Tree< 2 >::bordersPerProc |
Local indices of border octants per process
Definition at line 49 of file Class_Para_Tree_2D.tpp.
MPI_Comm Class_Para_Tree< 2 >::comm |
MPI communicator
Definition at line 79 of file Class_Para_Tree_2D.tpp.
int Class_Para_Tree< 2 >::error_flag |
MPI error flag
Definition at line 65 of file Class_Para_Tree_2D.tpp.
uint64_t Class_Para_Tree< 2 >::global_num_octants |
Global number of octants in the parallel octree
Definition at line 48 of file Class_Para_Tree_2D.tpp.
Class_Log Class_Para_Tree< 2 >::log |
Log object
Definition at line 76 of file Class_Para_Tree_2D.tpp.
u32vector Class_Para_Tree< 2 >::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 58 of file Class_Para_Tree_2D.tpp.
uint8_t Class_Para_Tree< 2 >::max_depth |
Global max existing level in the parallel octree
Definition at line 51 of file Class_Para_Tree_2D.tpp.
int Class_Para_Tree< 2 >::nproc |
Number of processes of the job
Definition at line 50 of file Class_Para_Tree_2D.tpp.
Class_Local_Tree<2> Class_Para_Tree< 2 >::octree |
Local tree in each processor
Definition at line 55 of file Class_Para_Tree_2D.tpp.
uint64_t* Class_Para_Tree< 2 >::partition_first_desc |
Global array containing position of the first possible octant in each processor
Definition at line 45 of file Class_Para_Tree_2D.tpp.
uint64_t* Class_Para_Tree< 2 >::partition_last_desc |
Global array containing position of the last possible octant in each processor
Definition at line 46 of file Class_Para_Tree_2D.tpp.
uint64_t* Class_Para_Tree< 2 >::partition_range_globalidx |
Global array containing global index of the last existing octant in each processor
Definition at line 47 of file Class_Para_Tree_2D.tpp.
int Class_Para_Tree< 2 >::rank |
Local rank of process
Definition at line 54 of file Class_Para_Tree_2D.tpp.
bool Class_Para_Tree< 2 >::serial |
True if the octree is the same on each processor, False if the octree is distributed
Definition at line 66 of file Class_Para_Tree_2D.tpp.
uint64_t Class_Para_Tree< 2 >::status |
Label of actual status of octree (incremental after an adpat with at least one modifyed element).
Definition at line 72 of file Class_Para_Tree_2D.tpp.
Class_Map<2> Class_Para_Tree< 2 >::trans |
Transformation map from logical to physical domain
Definition at line 69 of file Class_Para_Tree_2D.tpp.