DistributedMesh is responsible for logic behind parallel mesh operations. It decides which mesh entities are transfered and between which processes. Thus this class is responsible for mesh entities recognition, migration orders and others. More...
#include <distributed_mesh.hpp>
Public Types | |
typedef coucal | HashMap |
Public Member Functions | |
void | Init (int *elem_GIDs, const double *const vertices_coordinates=NULL, const int n_vertices=0, const double *const elems_center_pts=NULL, int *elem_neigs=NULL, const int *elem_domain=NULL, const int n_elems=0) |
void | Clear () |
DistributedMesh () | |
template<MeshEntityType TType> | |
int | getOwner (const GID id) const |
template<MeshEntityType TType> | |
void | setOwner (const GID id, const int owner) |
void | DomainDecompositionProcessor () |
void | OverlapProcessor () |
void | AdaptationProcessor () |
Public Attributes | |
CoordMesh | global_mesh_base |
HashMap | extern_faces_neighs |
HashMap | foreign_owners [EN_MeshEntityTypes] |
HashMap | elements_core |
[GID -> neighs GIDs], elements that has no BC or foreign neigh (not stored locally), not affected by ownership. | |
HashMap | elements_boundary |
[GID -> neighs GIDs], elements that are stored locally and has at least one foreign neigh, or BC neigh, not affected by ownership. | |
HashMap | overlap_elements_owners |
[GID -> owner proc id], should affect only 'elements_boundary'. | |
HashMap | boundary_vts |
DistributedMesh is responsible for logic behind parallel mesh operations. It decides which mesh entities are transfered and between which processes. Thus this class is responsible for mesh entities recognition, migration orders and others.
fpcm::DistributedMesh::DistributedMesh::DistributedMesh | ( | ) | [inline] |
void fpcm::DistributedMesh::DistributedMesh::AdaptationProcessor | ( | ) |
void fpcm::DistributedMesh::DistributedMesh::Clear | ( | ) | [inline] |
void fpcm::DistributedMesh::DistributedMesh::DomainDecompositionProcessor | ( | ) |
int fpcm::DistributedMesh::DistributedMesh::getOwner | ( | const GID | id | ) | const [inline] |
void fpcm::DistributedMesh::DistributedMesh::Init | ( | int * | elem_GIDs, | |
const double *const | vertices_coordinates = NULL , |
|||
const int | n_vertices = 0 , |
|||
const double *const | elems_center_pts = NULL , |
|||
int * | elem_neigs = NULL , |
|||
const int * | elem_domain = NULL , |
|||
const int | n_elems = 0 | |||
) | [inline] |
Initializing hashes.
Computing and distributing global mesh base.
Converting neigs numbers into GIDs.
Distributing elements.
void fpcm::DistributedMesh::DistributedMesh::OverlapProcessor | ( | ) |
void fpcm::DistributedMesh::DistributedMesh::setOwner | ( | const GID | id, | |
const int | owner | |||
) | [inline] |
[GID -> neighs GIDs], elements that are stored locally and has at least one foreign neigh, or BC neigh, not affected by ownership.
[GID -> neighs GIDs], elements that has no BC or foreign neigh (not stored locally), not affected by ownership.
HashMap fpcm::DistributedMesh::DistributedMesh::foreign_owners[EN_MeshEntityTypes] |
[GID -> owner proc id], should affect only 'elements_boundary'.