fpcm::DistributedMesh::DistributedMesh Struct Reference

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>

Collaboration diagram for fpcm::DistributedMesh::DistributedMesh:
Collaboration graph
[legend]

List of all members.

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

Detailed Description

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.


Member Typedef Documentation


Constructor & Destructor Documentation

fpcm::DistributedMesh::DistributedMesh::DistributedMesh (  )  [inline]

Member Function Documentation

void fpcm::DistributedMesh::DistributedMesh::AdaptationProcessor (  ) 
void fpcm::DistributedMesh::DistributedMesh::Clear (  )  [inline]

Here is the call graph for this function:

Here is the caller graph for this function:

void fpcm::DistributedMesh::DistributedMesh::DomainDecompositionProcessor (  ) 
template<MeshEntityType TType>
int fpcm::DistributedMesh::DistributedMesh::getOwner ( const GID  id  )  const [inline]

Here is the call graph for this function:

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.

Here is the call graph for this function:

void fpcm::DistributedMesh::DistributedMesh::OverlapProcessor (  ) 
template<MeshEntityType TType>
void fpcm::DistributedMesh::DistributedMesh::setOwner ( const GID  id,
const int  owner 
) [inline]

Here is the call graph for this function:


Member Data Documentation

[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.

[GID -> owner proc id], should affect only 'elements_boundary'.


The documentation for this struct was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 3 Jun 2020 for ModFEM by  doxygen 1.6.1