PABLO  0.1
PArallel Balanced Linear Octree
 All Classes Functions Variables Pages
Public Types | Public Member Functions | Public Attributes | List of all members
Class_Para_Tree< 3 > Class Template Reference

Parallel Octree Manager Class - 3D specialization. More...

Collaboration diagram for Class_Para_Tree< 3 >:
Collaboration graph
[legend]

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 &center)
 
vector< double > getCenter (Class_Octant< 3 > *oct)
 
void getCenter (uint32_t idx, vector< double > &center)
 
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 > &center)
 
vector< double > getEdgeCenter (uint32_t idx, uint8_t iedge)
 
void getEdgeCenter (uint32_t idx, uint8_t iedge, vector< double > &center)
 
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 > &center)
 
vector< double > getFaceCenter (uint32_t idx, uint8_t iface)
 
void getFaceCenter (uint32_t idx, uint8_t iface, vector< double > &center)
 
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
 

Detailed Description

template<>
class Class_Para_Tree< 3 >

Parallel Octree Manager Class - 3D specialization.

Date
23/apr/2014
Authors
Marco Cisternino
Edoardo Lombardi
Version
0.1
License:
This version of PABLO is released under the LGPL License.

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.

Constructor & Destructor Documentation

Class_Para_Tree< 3 >::Class_Para_Tree ( string  logfile = "PABLO.log",
MPI_Comm  comm_ = MPI_COMM_WORLD 
)
inline

Default Constructor of Para_Tree. It builds one octant with node 0 in the Origin (0,0,0) and side of length 1

Parameters
[in]logfileThe 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.

Class_Para_Tree< 3 >::Class_Para_Tree ( double  X,
double  Y,
double  Z,
double  L,
string  logfile = "PABLO.log",
MPI_Comm  comm_ = MPI_COMM_WORLD 
)
inline

Constructor of Para_Tree with input parameters. It builds one octant with :

Parameters
[in]XCoordinate X of node 0,
[in]YCoordinate Y of node 0,
[in]ZCoordinate Z of node 0,
[in]LSide length of the octant.
[in]logfileThe 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.

Class_Para_Tree< 3 >::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 
)
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 :

Parameters
[in]XPhysical Coordinate X of node 0,
[in]YPhysical Coordinate Y of node 0,
[in]ZPhysical Coordinate Z of node 0,
[in]LPhysical Side length of the domain,
[in]XYCoordinates of octants (node 0) in logical domain,
[in]levelsLevel of each octant.
[in]logfileThe 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.

Class_Para_Tree< 3 >::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 
)
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 :

Parameters
[in]XPhysical Coordinate X of node 0,
[in]YPhysical Coordinate Y of node 0,
[in]ZPhysical Coordinate Z of node 0,
[in]LPhysical Side length of the domain,
[in]XYCoordinates of octants (node 0) in logical domain,
[in]levelsLevel of each octant.
[in]logfileThe 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.

Member Function Documentation

bool Class_Para_Tree< 3 >::adapt ( )
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.

bool Class_Para_Tree< 3 >::adapt ( bool  mapper_flag)
inline

Adapt the octree mesh with user setup for markers and 2:1 balancing conditions.

Parameters
[in]mapper_flagTrue/False if you want/don't want to track the changes in structure octant by a mapper.
Returns
Boolean if adapt has done something.

Definition at line 5094 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::adapt ( u32vector &  mapper)
inline

Adapt the octree mesh with user setup for markers and 2:1 balancing conditions.

Parameters
[out]mapperMapper 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).
Returns
Boolean if adapt has done something.

Definition at line 5120 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::adaptGlobalCoarse ( )
inline

Adapt the octree mesh coarsening all the octants by one level.

Definition at line 5331 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::adaptGlobalCoarse ( u32vector &  mapidx)
inline

Adapt the octree mesh coarsening all the octants by one level. Track the changes in structure octant by a mapper.

Parameters
[out]mapidxMapper 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.

bool Class_Para_Tree< 3 >::adaptGlobalRefine ( )
inline

Adapt the octree mesh refining all the octants by one level.

Definition at line 5176 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::adaptGlobalRefine ( u32vector &  mapidx)
inline

Adapt the octree mesh refining all the octants by one level. Track the changes in structure octant by a mapper.

Parameters
[out]mapidxMapper 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.

void Class_Para_Tree< 3 >::clearConnectivity ( )
inline

Clear the connectivity of octants.

Definition at line 5618 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::clearGhostsConnectivity ( )
inline

Clear the connectivity of ghost octants.

Definition at line 5642 of file Class_Para_Tree_3D.tpp.

template<class Impl >
void Class_Para_Tree< 3 >::communicate ( Class_Data_Comm_Interface< Impl > &  userData)
inline

Communicate data provided by the user between the processes.

Definition at line 5517 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::computeConnectivity ( )
inline

Compute the connectivity of octants and store the coordinates of nodes.

Definition at line 5610 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::computeGhostsConnectivity ( )
inline

Compute the connectivity of ghost octants and store the coordinates of nodes.

Definition at line 5634 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::computeIntersections ( )
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.

void Class_Para_Tree< 3 >::findGhostNeighbours ( uint32_t  idx,
uint8_t  iface,
uint8_t  codim,
u32vector &  neighbours 
)
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 ).

Parameters
[in]idxIndex of current octant
[in]ifaceIndex of face/edge/node passed through for neighbours finding
[in]codimCodimension of the iface-th entity 1=face, 2=edge, 3=node
[out]neighboursVector of neighbours indices in octants/ghosts structure

Definition at line 1413 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::findNeighbours ( uint32_t  idx,
uint8_t  iface,
uint8_t  codim,
u32vector &  neighbours,
vector< bool > &  isghost 
)
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.

Parameters
[in]idxIndex of current octant
[in]ifaceIndex of face/edge/node passed through for neighbours finding
[in]codimCodimension of the iface-th entity 1=face, 2=edge, 3=node
[out]neighboursVector of neighbours indices in octants/ghosts structure
[out]isghostVector 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.

void Class_Para_Tree< 3 >::findNeighbours ( Class_Octant< 3 > *  oct,
uint8_t  iface,
uint8_t  codim,
u32vector &  neighbours,
vector< bool > &  isghost 
)
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.

Parameters
[in]octPointer to current octant
[in]ifaceIndex of face/edge/node passed through for neighbours finding
[in]codimCodimension of the iface-th entity 1=face, 2=edge, 3=node
[out]neighboursVector of neighbours indices in octants/ghosts structure
[out]isghostVector 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.

int Class_Para_Tree< 3 >::findOwner ( const uint64_t &  morton)
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().

Parameters
[in]mortonis the Morton number of the element you want find the owner of
Returns
it returns the rank of the process owning the element

Definition at line 1321 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getArea ( Class_Octant< 3 > *const  oct)
inline

Get the area of an octant

Parameters
[in]octPointer to target octant.
Returns
Size of octant.

Definition at line 447 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getArea ( uint32_t  idx)
inline

Get the area of an octant

Parameters
[in]idxLocal index of target octant.
Returns
Area of octant.

Definition at line 993 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getArea ( Class_Intersection< 3 > *  inter)
inline

Get the area of an intersection (for 2D case the same value of getSize).

Parameters
[in]interPointer to target intersection.
Returns
Area of intersection.

Definition at line 1564 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getBalance ( Class_Octant< 3 > *  oct)
inline

Get the balancing condition of an octant.

Parameters
[in]octPointer to target octant.
Returns
Has octant to be balanced?

Definition at line 657 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getBalance ( uint32_t  idx)
inline

Get the balancing condition of an octant.

Parameters
[in]idxLocal index of target octant.
Returns
Has octant to be balanced?

Definition at line 1140 of file Class_Para_Tree_3D.tpp.

uint8_t Class_Para_Tree< 3 >::getBalanceCodimension ( ) const
inline

Get the codimension for 2:1 balancing

Returns
Maximum codimension of the entity through which the 2:1 balance is performed.

Definition at line 1245 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getBound ( Class_Octant< 3 > *  oct,
uint8_t  iface 
)
inline

Get the bound flag on an octant face.

Parameters
[in]octPointer to target octant.
[in]ifacelocal index of the face.
Returns
true if the iface face is a boundary face.

Definition at line 618 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getBound ( Class_Octant< 3 > *  oct)
inline

Get the union of every bound flags on faces

Parameters
[in]octPointer to target octant.
Returns
true if the octant has at least a boundary face.

Definition at line 635 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getBound ( Class_Intersection< 3 > *  inter)
inline

Get if an intersection is a boundary domain intersection.

Parameters
[in]interPointer to target intersection.
Returns
Boundary or not boundary?.

Definition at line 1508 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::getCenter ( Class_Octant< 3 > *  oct,
dvector &  center 
)
inline

Get the coordinates of the center of an octant.

Parameters
[in]octPointer to target octant.
[out]centerCoordinates of the center of octant.

Definition at line 463 of file Class_Para_Tree_3D.tpp.

vector<double> Class_Para_Tree< 3 >::getCenter ( Class_Octant< 3 > *  oct)
inline

Get the coordinates of the center of an octant.

Parameters
[in]octPointer to target octant.
Returns
center Coordinates of the center of octant.

Definition at line 473 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::getCenter ( uint32_t  idx,
vector< double > &  center 
)
inline

Get the coordinates of the center of an octant.

Parameters
[in]idxLocal index of target octant.
[out]centerCoordinates of the center of octant.

Definition at line 1009 of file Class_Para_Tree_3D.tpp.

vector<double> Class_Para_Tree< 3 >::getCenter ( uint32_t  idx)
inline

Get the coordinates of the center of an octant.

Parameters
[in]idxLocal index of target octant.
Returns
center Coordinates of the center of octant.

Definition at line 1019 of file Class_Para_Tree_3D.tpp.

vector<double> Class_Para_Tree< 3 >::getCenter ( Class_Intersection< 3 > *  inter)
inline

Get the coordinates of the center of an intersection.

Parameters
[in]interPointer to target intersection.
[out]centerCoordinates of the center of intersection.

Definition at line 1577 of file Class_Para_Tree_3D.tpp.

const u32vector2D& Class_Para_Tree< 3 >::getConnectivity ( )
inline

Get the connectivity of the octants

Returns
connectivity Matrix of noctants*6 with the connectivity of each octant (6 indices of nodes).

Definition at line 5667 of file Class_Para_Tree_3D.tpp.

vector<double> Class_Para_Tree< 3 >::getEdgeCenter ( Class_Octant< 3 > *  oct,
uint8_t  iedge 
)
inline

Get the coordinates of the center of an edge of an octant.

Parameters
[in]octPointer to target octant.
[in]iedgeIndex of the target edge.
Returns
center Coordinates of the center of the iedge-th edge af octant.

Definition at line 507 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::getEdgeCenter ( Class_Octant< 3 > *  oct,
uint8_t  iedge,
vector< double > &  center 
)
inline

Get the coordinates of the center of a edge of an octant.

Parameters
[in]octPointer to target octant.
[in]iedgeIndex of the target edge.
[out]centerCoordinates of the center of the iedge-th edge af octant.

Definition at line 519 of file Class_Para_Tree_3D.tpp.

vector<double> Class_Para_Tree< 3 >::getEdgeCenter ( uint32_t  idx,
uint8_t  iedge 
)
inline

Get the coordinates of the center of an edge of an octant.

Parameters
[in]idxLocal index of target octant.
[in]iedgeIndex of the target edge.
Returns
center Coordinates of the center of the iedge-th edge af octant.

Definition at line 1053 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::getEdgeCenter ( uint32_t  idx,
uint8_t  iedge,
vector< double > &  center 
)
inline

Get the coordinates of the center of a edge of an octant.

Parameters
[in]idxLocal index of target octant.
[in]iedgeIndex of the target edge.
[out]centerCoordinates of the center of the iedge-th edge af octant.

Definition at line 1065 of file Class_Para_Tree_3D.tpp.

uint8_t Class_Para_Tree< 3 >::getFace ( Class_Intersection< 3 > *  inter)
inline

Get the face index of an intersection.

Parameters
[in]interPointer to target intersection.
Returns
Face index of the first octant owner of intersection (owners[0]).

Definition at line 1532 of file Class_Para_Tree_3D.tpp.

vector<double> Class_Para_Tree< 3 >::getFaceCenter ( Class_Octant< 3 > *  oct,
uint8_t  iface 
)
inline

Get the coordinates of the center of a face of an octant.

Parameters
[in]octPointer to target octant.
[in]ifaceIndex of the target face.
Returns
center Coordinates of the center of the iface-th face af octant.

Definition at line 485 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::getFaceCenter ( Class_Octant< 3 > *  oct,
uint8_t  iface,
vector< double > &  center 
)
inline

Get the coordinates of the center of a face of an octant.

Parameters
[in]octPointer to target octant.
[in]ifaceIndex of the target face.
[out]centerCoordinates of the center of the iface-th face af octant.

Definition at line 497 of file Class_Para_Tree_3D.tpp.

vector<double> Class_Para_Tree< 3 >::getFaceCenter ( uint32_t  idx,
uint8_t  iface 
)
inline

Get the coordinates of the center of a face of an octant.

Parameters
[in]idxLocal index of target octant.
[in]ifaceIndex of the target face.
Returns
center Coordinates of the center of the iface-th face af octant.

Definition at line 1031 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::getFaceCenter ( uint32_t  idx,
uint8_t  iface,
vector< double > &  center 
)
inline

Get the coordinates of the center of a face of an octant.

Parameters
[in]idxLocal index of target octant.
[in]ifaceIndex of the target face.
[out]centerCoordinates of the center of the iface-th face af octant.

Definition at line 1043 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getFiner ( Class_Intersection< 3 > *  inter)
inline

Get the finer owner octant of an intersection.

Parameters
[in]interPointer to target intersection.
Returns
The finer octant of the owners of intersection (false/true = 0/1).

Definition at line 1500 of file Class_Para_Tree_3D.tpp.

const u32vector2D& Class_Para_Tree< 3 >::getGhostConnectivity ( )
inline

Get the connectivity of the ghost octants

Returns
connectivity Matrix of nghostoctants*6 with the connectivity of each octant (6 indices of nodes).

Definition at line 5676 of file Class_Para_Tree_3D.tpp.

uint64_t Class_Para_Tree< 3 >::getGhostGlobalIdx ( uint32_t  idx)
inline

Get the global index of a ghost octant.

Parameters
[in]idxLocal index of target ghost octant.
Returns
Global index of ghost octant.

Definition at line 1188 of file Class_Para_Tree_3D.tpp.

dvector Class_Para_Tree< 3 >::getGhostNodeCoordinates ( uint32_t  inode)
inline

Get the physical coordinates of a ghost node

Parameters
[in]inodeLocal index of node
Returns
nodes Vector with the coordinates of the node.

Definition at line 5776 of file Class_Para_Tree_3D.tpp.

u32vector Class_Para_Tree< 3 >::getGhostNodeLogicalCoordinates ( uint32_t  inode)
inline

Get the logical coordinates of a ghost node

Parameters
[in]inodeLocal index of node
Returns
nodes Vector with the coordinates of the node.

Definition at line 5766 of file Class_Para_Tree_3D.tpp.

const u32vector2D& Class_Para_Tree< 3 >::getGhostNodes ( )
inline

Get the logical coordinates of the ghost nodes

Returns
nodes Matrix of nghostnodes*3 with the coordinates of the nodes.

Definition at line 5742 of file Class_Para_Tree_3D.tpp.

Class_Octant<3>* Class_Para_Tree< 3 >::getGhostOctant ( uint32_t  idx)
inline

Get a ghost octant as pointer to the target octant.

Parameters
[in]idxLocal index (in ghosts structure) of target ghost octant.
Returns
Pointer to target ghost octant.

Definition at line 1305 of file Class_Para_Tree_3D.tpp.

u32vector Class_Para_Tree< 3 >::getGhostOctantConnectivity ( uint32_t  idx)
inline

Get the local connectivity of a ghost octant

Parameters
[in]idxLocal index of ghost octant
Returns
connectivity Connectivity of the ghost octant (6 indices of nodes).

Definition at line 5704 of file Class_Para_Tree_3D.tpp.

u32vector Class_Para_Tree< 3 >::getGhostOctantConnectivity ( Class_Octant< 3 > *  oct)
inline

Get the local connectivity of a ghost octant

Parameters
[in]octPointer to a ghost octant
Returns
connectivity Connectivity of the ghost octant (6 indices of nodes).

Definition at line 5714 of file Class_Para_Tree_3D.tpp.

const Class_Global<3>& Class_Para_Tree< 3 >::getGlobal ( )
inline

Get the global class object

Returns
A reference to the global class object.

Definition at line 406 of file Class_Para_Tree_3D.tpp.

uint64_t Class_Para_Tree< 3 >::getGlobalIdx ( Class_Octant< 3 > *  oct)
inline

Get the global index of an octant.

Parameters
[in]octPointer to target octant.
Returns
Global index of octant.

Definition at line 693 of file Class_Para_Tree_3D.tpp.

uint64_t Class_Para_Tree< 3 >::getGlobalIdx ( uint32_t  idx)
inline

Get the global index of an octant.

Parameters
[in]idxLocal index of target octant.
Returns
Global index of octant.

Definition at line 1174 of file Class_Para_Tree_3D.tpp.

uint32_t Class_Para_Tree< 3 >::getIdx ( Class_Octant< 3 > *  oct)
inline

Get the local index of an octant.

Parameters
[in]octPointer to target octant.
Returns
Local index of octant.

Definition at line 711 of file Class_Para_Tree_3D.tpp.

Class_Intersection<3>* Class_Para_Tree< 3 >::getIntersection ( uint32_t  idx)
inline

Get a pointer to target intersection.

Parameters
[in]idxLocal index of intersection.
Returns
Pointer to target intersection.

Definition at line 1478 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getIsGhost ( Class_Octant< 3 > *  oct)
inline

Get the nature of an octant.

Parameters
[in]octPointer to target octant.
Returns
Is octant ghost?

Definition at line 666 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getIsGhost ( uint32_t  idx)
inline

Get the nature of an octant.

Parameters
[in]idxLocal index of target octant.
Returns
Is octant ghost?

Definition at line 1149 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getIsGhost ( Class_Intersection< 3 > *  inter)
inline

Get if an intersection is an intersection between an internal and a ghost element.

Parameters
[in]interPointer to target intersection.
Returns
Ghost or not ghost?.

Definition at line 1516 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getIsNewC ( Class_Octant< 3 > *  oct)
inline

Get if the octant is new after coarsening.

Parameters
[in]octPointer to target octant.
Returns
Is octant new?

Definition at line 685 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getIsNewC ( uint32_t  idx)
inline

Get if the octant is new after coarsening.

Parameters
[in]idxLocal index of target octant.
Returns
Is octant new?

Definition at line 1166 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getIsNewR ( Class_Octant< 3 > *  oct)
inline

Get if the octant is new after refinement.

Parameters
[in]octPointer to target octant.
Returns
Is octant new?

Definition at line 677 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getIsNewR ( uint32_t  idx)
inline

Get if the octant is new after refinement.

Parameters
[in]idxLocal index of target octant.
Returns
Is octant new?

Definition at line 1158 of file Class_Para_Tree_3D.tpp.

uint8_t Class_Para_Tree< 3 >::getLevel ( Class_Octant< 3 > *  oct)
inline

Get the level of an octant.

Parameters
[in]octPointer to target octant.
Returns
Level of octant.

Definition at line 609 of file Class_Para_Tree_3D.tpp.

uint8_t Class_Para_Tree< 3 >::getLevel ( uint32_t  idx)
inline

Get the level of an octant.

Parameters
[in]idxLocal index of target octant.
Returns
Level of octant.

Definition at line 1132 of file Class_Para_Tree_3D.tpp.

uint8_t Class_Para_Tree< 3 >::getLevel ( Class_Intersection< 3 > *  inter)
inline

Get the level of an intersection.

Parameters
[in]interPointer to target intersection.
Returns
Level of intersection.

Definition at line 1489 of file Class_Para_Tree_3D.tpp.

uint8_t Class_Para_Tree< 3 >::getLocalMaxDepth ( ) const
inline

Get the local depth of octree.

Returns
Local depth of octree.

Definition at line 1238 of file Class_Para_Tree_3D.tpp.

Class_Octant<3>* Class_Para_Tree< 3 >::getLogicalPointOwner ( dvector &  point)
inline

Get the octant owner of an input point.

Parameters
[in]pointCoordinates of target point in logical domain.
Returns
Pointer to octant owner of target point (=NULL if point is outside of the domain).

Definition at line 2022 of file Class_Para_Tree_3D.tpp.

uint32_t Class_Para_Tree< 3 >::getLogicalPointOwnerIdx ( dvector &  point)
inline

Get the octant owner of an input point.

Parameters
[in]pointCoordinates of target point in logical domain.
Returns
Index of octant owner of target point (max uint32_t representable if point outside of the domain).

Definition at line 2097 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::getMapping ( uint32_t &  idx,
u32vector &  mapper,
vector< bool > &  isghost 
)
inline

Get mapping info of an octant after an adapting with tracking changes.

Parameters
[in]idxIndex of new octant.
[out]mapperMapper 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]isghostInfo 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.

int8_t Class_Para_Tree< 3 >::getMarker ( Class_Octant< 3 > *  oct)
inline

Get the refinement marker of an octant.

Parameters
[in]octPointer to target octant.
Returns
Marker of octant.

Definition at line 601 of file Class_Para_Tree_3D.tpp.

int8_t Class_Para_Tree< 3 >::getMarker ( uint32_t  idx)
inline

Get the refinement marker of an octant.

Parameters
[in]idxLocal index of target octant.
Returns
Marker of octant.

Definition at line 1124 of file Class_Para_Tree_3D.tpp.

vector<double> Class_Para_Tree< 3 >::getNode ( uint32_t  idx,
uint8_t  inode 
)
inline

Get the coordinates of single node of an octant.

Parameters
[in]idxLocal index of target octant.
[in]inodeIndex of the target node.
Returns
center Coordinates of the center of the iface-th face af octant.

Definition at line 529 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::getNode ( uint32_t  idx,
uint8_t  inode,
vector< double > &  node 
)
inline

Get the coordinates of the center of a face of an octant.

Parameters
[in]idxLocal index of target octant.
[in]ifaceIndex of the target face.
[out]centerCoordinates of the center of the iface-th face af octant.

Definition at line 541 of file Class_Para_Tree_3D.tpp.

dvector Class_Para_Tree< 3 >::getNodeCoordinates ( uint32_t  inode)
inline

Get the physical coordinates of a node

Parameters
[in]inodeLocal index of node
Returns
nodes Vector with the coordinates of the node.

Definition at line 5752 of file Class_Para_Tree_3D.tpp.

u32vector Class_Para_Tree< 3 >::getNodeLogicalCoordinates ( uint32_t  inode)
inline

Get the logical coordinates of a node

Parameters
[in]inodeLocal index of node
Returns
nodes Vector with the coordinates of the node.

Definition at line 5733 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::getNodes ( Class_Octant< 3 > *  oct,
dvector2D &  nodes 
)
inline

Get the coordinates of the nodes of an octant.

Parameters
[in]octPointer to target octant.
[out]nodesCoordinates of the nodes of octant.

Definition at line 550 of file Class_Para_Tree_3D.tpp.

dvector2D Class_Para_Tree< 3 >::getNodes ( Class_Octant< 3 > *  oct)
inline

Get the coordinates of the nodes of an octant.

Parameters
[in]octPointer to target octant.
Returns
nodes Coordinates of the nodes of octant.

Definition at line 562 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::getNodes ( uint32_t  idx,
dvector2D &  nodes 
)
inline

Get the coordinates of the nodes of an octant.

Parameters
[in]idxLocal index of target octant.
[out]nodesCoordinates of the nodes of octant.

Definition at line 1074 of file Class_Para_Tree_3D.tpp.

dvector2D Class_Para_Tree< 3 >::getNodes ( uint32_t  idx)
inline

Get the coordinates of the nodes of an octant.

Parameters
[in]idxLocal index of target octant.
Returns
nodes Coordinates of the nodes of octant.

Definition at line 1085 of file Class_Para_Tree_3D.tpp.

dvector2D Class_Para_Tree< 3 >::getNodes ( Class_Intersection< 3 > *  inter)
inline

Get the coordinates of the nodes of an intersection.

Parameters
[in]octPointer to target intersection.
Returns
nodes Coordinates of the nodes of intersection.

Definition at line 1596 of file Class_Para_Tree_3D.tpp.

const u32vector2D& Class_Para_Tree< 3 >::getNodes ( )
inline

Get the logical coordinates of the nodes

Returns
nodes Matrix of nnodes*3 with the coordinates of the nodes.

Definition at line 5723 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::getNormal ( Class_Octant< 3 > *  oct,
uint8_t &  iface,
dvector &  normal 
)
inline

Get the normal of a face of an octant.

Parameters
[in]octPointer to target octant.
[in]ifaceIndex of the face for normal computing.
[out]normalCoordinates of the normal of face.

Definition at line 574 of file Class_Para_Tree_3D.tpp.

dvector Class_Para_Tree< 3 >::getNormal ( Class_Octant< 3 > *  oct,
uint8_t &  iface 
)
inline

Get the normal of a face of an octant.

Parameters
[in]octPointer to target octant.
[in]ifaceIndex of the face for normal computing.
Returns
normal Coordinates of the normal of face.

Definition at line 588 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::getNormal ( uint32_t  idx,
uint8_t &  iface,
dvector &  normal 
)
inline

Get the normal of a face of an octant.

Parameters
[in]Localindex of target octant.
[in]ifaceIndex of the face for normal computing.
[out]normalCoordinates of the normal of face.

Definition at line 1098 of file Class_Para_Tree_3D.tpp.

dvector Class_Para_Tree< 3 >::getNormal ( uint32_t  idx,
uint8_t &  iface 
)
inline

Get the normal of a face of an octant.

Parameters
[in]idxLocal index of target octant.
[in]ifaceIndex of the face for normal computing.
Returns
normal Coordinates of the normal of face.

Definition at line 1111 of file Class_Para_Tree_3D.tpp.

dvector Class_Para_Tree< 3 >::getNormal ( Class_Intersection< 3 > *  inter)
inline

Get the normal of an intersection.

Parameters
[in]octPointer to target intersection.
[out]normalCoordinates of the normal of intersection.

Definition at line 1620 of file Class_Para_Tree_3D.tpp.

uint32_t Class_Para_Tree< 3 >::getNumGhosts ( ) const
inline

Get the local number of ghost octants.

Returns
Local number of ghost octants.

Definition at line 1231 of file Class_Para_Tree_3D.tpp.

uint32_t Class_Para_Tree< 3 >::getNumIntersections ( )
inline

Get the local number of intersections.

Returns
Local number of intersections.

Definition at line 1470 of file Class_Para_Tree_3D.tpp.

uint32_t Class_Para_Tree< 3 >::getNumNodes ( )
inline

Get the local number of nodes.

Definition at line 5658 of file Class_Para_Tree_3D.tpp.

uint32_t Class_Para_Tree< 3 >::getNumOctants ( ) const
inline

Get the local number of octants.

Returns
Local number of octants.

Definition at line 1224 of file Class_Para_Tree_3D.tpp.

Class_Octant<3>* Class_Para_Tree< 3 >::getOctant ( uint32_t  idx)
inline

Get an octant as pointer to the target octant.

Parameters
[in]idxLocal index of target octant.
Returns
Pointer to target octant.

Definition at line 1294 of file Class_Para_Tree_3D.tpp.

u32vector Class_Para_Tree< 3 >::getOctantConnectivity ( uint32_t  idx)
inline

Get the local connectivity of an octant

Parameters
[in]idxLocal index of octant
Returns
connectivity Connectivity of the octant (6 indices of nodes).

Definition at line 5685 of file Class_Para_Tree_3D.tpp.

u32vector Class_Para_Tree< 3 >::getOctantConnectivity ( Class_Octant< 3 > *  oct)
inline

Get the local connectivity of an octant

Parameters
[in]octPointer to an octant
Returns
connectivity Connectivity of the octant (6 indices of nodes).

Definition at line 5694 of file Class_Para_Tree_3D.tpp.

u32vector Class_Para_Tree< 3 >::getOwners ( Class_Intersection< 3 > *  inter)
inline

Get the owner octants of an intersection.

Parameters
[in]interPointer to target intersection.
Returns
A couple of octants owners of intersection.

Definition at line 1540 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getPbound ( Class_Octant< 3 > *  oct,
uint8_t  iface 
)
inline

Get the pbound flag on an octant face.

Parameters
[in]octPointer to target octant.
[in]ifacelocal index of the face.
Returns
true if the iface face is a process boundary face.

Definition at line 627 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getPbound ( Class_Octant< 3 > *  oct)
inline

Get the union of every pbound flags on faces

Parameters
[in]octPointer to target octant.
Returns
true if the octant has at least a process boundary face.

Definition at line 646 of file Class_Para_Tree_3D.tpp.

bool Class_Para_Tree< 3 >::getPbound ( Class_Intersection< 3 > *  inter)
inline

Get if an intersection is a boundary intersection for a process.

Parameters
[in]interPointer to target intersection.
Returns
Process boundary or not boundary?.

Definition at line 1525 of file Class_Para_Tree_3D.tpp.

Class_Octant<3>* Class_Para_Tree< 3 >::getPointOwner ( dvector &  point)
inline

Get the octant owner of an input point.

Parameters
[in]pointCoordinates of target point.
Returns
Pointer to octant owner of target point (=NULL if point is outside of the domain).

Definition at line 1717 of file Class_Para_Tree_3D.tpp.

Class_Octant<3>* Class_Para_Tree< 3 >::getPointOwner ( u32vector &  point)
inline

Get the octant owner of an input point.

Parameters
[in]pointCoordinates of target point in logical domain.
Returns
Pointer to octant owner of target point (=NULL if point is outside of the domain).

Definition at line 1871 of file Class_Para_Tree_3D.tpp.

uint32_t Class_Para_Tree< 3 >::getPointOwnerIdx ( dvector &  point)
inline

Get the octant owner of an input point.

Parameters
[in]pointCoordinates of target point.
Returns
Index of octant owner of target point (max uint32_t representable if point outside of the domain).

Definition at line 1792 of file Class_Para_Tree_3D.tpp.

uint32_t Class_Para_Tree< 3 >::getPointOwnerIdx ( u32vector &  point)
inline

Get the octant owner of an input point.

Parameters
[in]pointCoordinates of target point in logical domain.
Returns
Index of octant owner of target point (max uint32_t representable if point outside of the domain).

Definition at line 1947 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getSize ( Class_Octant< 3 > *const  oct)
inline

Get the size of an octant, i.e. the side length.

Parameters
[in]octPointer to target octant.
Returns
Size of octant.

Definition at line 439 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getSize ( uint32_t  idx)
inline

Get the size of an octant, i.e. the side length.

Parameters
[in]idxLocal index of target octant.
Returns
Area of octant.

Definition at line 985 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getSize ( Class_Intersection< 3 > *  inter)
inline

Get the size of an intersection.

Parameters
[in]interPointer to target intersection.
Returns
Size of intersection.

Definition at line 1551 of file Class_Para_Tree_3D.tpp.

uint64_t Class_Para_Tree< 3 >::getStatus ( )
inline

Get the status label of the octree.

Returns
Status.

Definition at line 1217 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getVolume ( Class_Octant< 3 > *const  oct)
inline

Get the volume of an octant.

Parameters
[in]octPointer to target octant.
Returns
Volume of octant.

Definition at line 455 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getVolume ( uint32_t  idx)
inline

Get the volume of an octant.

Parameters
[in]idxLocal index of target octant.
Returns
Volume of octant.

Definition at line 1001 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getX ( Class_Octant< 3 > *const  oct)
inline

Get the coordinates of an octant, i.e. the coordinates of its node 0.

Parameters
[in]octPointer to target octant.
Returns
Coordinate X of node 0.

Definition at line 413 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getX ( uint32_t  idx)
inline

Get the coordinates of an octant, i.e. the coordinates of its node 0.

Parameters
[in]idxLocal index of target octant.
Returns
Coordinate X of node 0.

Definition at line 961 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getY ( Class_Octant< 3 > *const  oct)
inline

Get the coordinates of an octant, i.e. the coordinates of its node 0.

Parameters
[in]octPointer to target octant.
Returns
Coordinate Y of node 0.

Definition at line 422 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getY ( uint32_t  idx)
inline

Get the coordinates of an octant, i.e. the coordinates of its node 0.

Parameters
[in]idxLocal index of target octant.
Returns
Coordinate Y of node 0.

Definition at line 969 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getZ ( Class_Octant< 3 > *const  oct)
inline

Get the coordinates of an octant, i.e. the coordinates of its node 0.

Parameters
[in]octPointer to target octant.
Returns
Coordinate Z of node 0.

Definition at line 431 of file Class_Para_Tree_3D.tpp.

double Class_Para_Tree< 3 >::getZ ( uint32_t  idx)
inline

Get the coordinates of an octant, i.e. the coordinates of its node 0.

Parameters
[in]idxLocal index of target octant.
Returns
Coordinate Z of node 0.

Definition at line 977 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::loadBalance ( )
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.

void Class_Para_Tree< 3 >::loadBalance ( uint8_t &  level)
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.

Parameters
[in]levelNumber 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.

template<class Impl >
void Class_Para_Tree< 3 >::loadBalance ( Class_Data_LB_Interface< Impl > &  userData,
dvector *  weight = NULL 
)
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.

template<class Impl >
void Class_Para_Tree< 3 >::loadBalance ( Class_Data_LB_Interface< Impl > &  userData,
uint8_t &  level 
)
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.

Parameters
[in]levelNumber 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.

vector<pair<pair<uint32_t, uint32_t>, pair<int, int> > > Class_Para_Tree< 3 >::mapPablos ( Class_Para_Tree< 3 > &  ptree)
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.

Parameters
[in]ptreeSecond octree. The map goes from the firs one to the second one.
[out]Mapbetween 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.

void Class_Para_Tree< 3 >::setBalance ( Class_Octant< 3 > *  oct,
bool  balance 
)
inline

Set the balancing condition of an octant.

Parameters
[in]octPointer to target octant.
[in]balanceHas octant to be 2:1 balanced in adapting procedure?

Definition at line 732 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::setBalance ( uint32_t  idx,
bool  balance 
)
inline

Set the balancing condition of an octant.

Parameters
[in]idxLocal index of target octant.
[in]balanceHas octant to be 2:1 balanced in adapting procedure?

Definition at line 1207 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::setBalanceCodimension ( uint8_t  b21codim)
inline

Set the codimension for 2:1 balancing

Parameters
[in]Maximumcodimension 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.

void Class_Para_Tree< 3 >::setMarker ( Class_Octant< 3 > *  oct,
int8_t  marker 
)
inline

Set the refinement marker of an octant.

Parameters
[in]octPointer to target octant.
[in]markerRefinement 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.

void Class_Para_Tree< 3 >::setMarker ( uint32_t  idx,
int8_t  marker 
)
inline

Set the refinement marker of an octant.

Parameters
[in]idxLocal index of target octant.
[in]markerRefinement 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.

void Class_Para_Tree< 3 >::updateConnectivity ( )
inline

Update the connectivity of octants.

Definition at line 5626 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::updateGhostsConnectivity ( )
inline

Update the connectivity of ghost octants.

Definition at line 5650 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::write ( string  filename)
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.

Parameters
[in]filenameSeriously?....

Definition at line 6464 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::writeLogical ( string  filename)
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.

Parameters
[in]filenameSeriously?....

Definition at line 6327 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::writeTest ( string  filename,
vector< double >  data 
)
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.

Parameters
[in]filenameSeriously?....

Definition at line 6609 of file Class_Para_Tree_3D.tpp.

void Class_Para_Tree< 3 >::writeTest ( string  filename,
vector< double >  data,
vector< double >  ghostdata 
)
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.

Parameters
[in]filenameSeriously?....

Definition at line 6745 of file Class_Para_Tree_3D.tpp.

Member Data Documentation

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.

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.

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.


The documentation for this class was generated from the following file: