CEPS
24.01
Cardiac ElectroPhysiology Simulator
|
Class is used to compute a geometry (multiple meshes) partitioning.
Definition at line 39 of file GeometryPartitioner.hpp.
#include <GeometryPartitioner.hpp>
Public Member Functions | |
GeometryPartitioner ()=delete | |
Deleted constructor. More... | |
GeometryPartitioner (Geometry *geometry) | |
Constructor based on Geometry instance. More... | |
~GeometryPartitioner () override | |
Destructor. More... | |
virtual CepsUInt | computePartition ()=0 |
Calls the partitioning method specified in the Geometry. More... | |
Public Member Functions inherited from CepsObject | |
CepsObject ()=default | |
default constructor More... | |
CepsObject (const CepsObject &)=default | |
Copy constructor. More... | |
virtual | ~CepsObject ()=default |
Destructor. More... | |
CepsObject & | operator= (const CepsObject &)=default |
Assignment operator. More... | |
CepsObject * | toBaseObject () |
Returns a pointer to CepsObject class. More... | |
const CepsObject * | toBaseObject () const |
Returns a pointer to CepsObject class, const version. More... | |
Profiler * | getProfiler () const |
Access to profiler. More... | |
Protected Member Functions | |
void | readMeshOnMaster () |
Read the Mesh on master process before distribution. More... | |
void | broadcastMeshData () |
Copies geometrical information from master on all other processes. More... | |
void | setUpHalo (const CepsVector< CepsInt > &nodeOwnership, const CepsVector< CepsInt > *cellOwnership=nullptr) |
Register nodes in halo regions, and set up communication matrices of data in halos. More... | |
void | buildNodeAdjacency () |
For each node, stores its adjacent nodes and cells. (indices before partitioning) More... | |
void | buildCellAdjacency () |
For each cell, stores its adjacent cells. (indices before partitioning) More... | |
void | nodeAttribution (const CepsVector< CepsInt > &nodeOwnership) |
Creates the lists of nodes in linked geometry according to partition. More... | |
void | cellAttribution () |
Creates the lists of cells and bdry cells in geometry according to partition. More... | |
template<CepsUInt _Dim> | |
void | addCellToMesh (CepsUInt index, CepsBool isOnBoundary, Mesh *mesh) |
Create local simplex structures from geometrical data to fill meshes with. More... | |
CepsUInt | getDimensionByNodeId (CepsUInt i) const |
Get the correct dimension, deduced by node id. More... | |
CepsUInt | getDimensionByCellId (CepsUInt i) const |
Get the correct dimension, deduced by cell id. More... | |
Additional Inherited Members | |
Static Protected Attributes inherited from CepsObject | |
static Profiler | m_profiler |
The same profiler for each big object. More... | |
|
delete |
Deleted constructor.
|
explicit |
Constructor based on Geometry instance.
Definition at line 39 of file GeometryPartitioner.cpp.
|
override |
Destructor.
Definition at line 56 of file GeometryPartitioner.cpp.
|
protected |
Create local simplex structures from geometrical data to fill meshes with.
Definition at line 465 of file GeometryPartitioner.cpp.
|
protected |
Copies geometrical information from master on all other processes.
Definition at line 108 of file GeometryPartitioner.cpp.
|
protected |
For each cell, stores its adjacent cells. (indices before partitioning)
Definition at line 268 of file GeometryPartitioner.cpp.
|
protected |
For each node, stores its adjacent nodes and cells. (indices before partitioning)
Definition at line 241 of file GeometryPartitioner.cpp.
|
protected |
Creates the lists of cells and bdry cells in geometry according to partition.
Definition at line 380 of file GeometryPartitioner.cpp.
|
pure virtual |
Calls the partitioning method specified in the Geometry.
The different partitioning methods are defined in the enum type PartitioningMethod::method. The partitioning method is set via the method Geometry::setPartitioningMethod
Implemented in PtscotchPartitioner.
Get the correct dimension, deduced by cell id.
Definition at line 570 of file GeometryPartitioner.cpp.
Get the correct dimension, deduced by node id.
Definition at line 558 of file GeometryPartitioner.cpp.
|
protected |
Creates the lists of nodes in linked geometry according to partition.
Definition at line 314 of file GeometryPartitioner.cpp.
|
protected |
Read the Mesh on master process before distribution.
Definition at line 60 of file GeometryPartitioner.cpp.
|
protected |
Register nodes in halo regions, and set up communication matrices of data in halos.
[in] | nodeOwnership | vector indicating to which process belongs each node |
[in] | cellOwnership | if cell ownership is already computed, use it instead of nodeOwnership |
Definition at line 186 of file GeometryPartitioner.cpp.
|
protected |
Cells attributes for each cell.
Definition at line 149 of file GeometryPartitioner.hpp.
|
protected |
Offset in m_cellAttr array for each cell.
Definition at line 150 of file GeometryPartitioner.hpp.
|
protected |
Size of combined lists of attributes per cell.
Definition at line 151 of file GeometryPartitioner.hpp.
|
protected |
For cells with 1 node on bdry.
Definition at line 138 of file GeometryPartitioner.hpp.
|
protected |
lists of adjacent cells
Definition at line 135 of file GeometryPartitioner.hpp.
|
protected |
Cell offset.
Definition at line 124 of file GeometryPartitioner.hpp.
|
protected |
GeomNode positions.
Definition at line 128 of file GeometryPartitioner.hpp.
|
protected |
Links between meshes expressed with coupled nodes.
Definition at line 141 of file GeometryPartitioner.hpp.
|
protected |
Linked geometry to partition.
Definition at line 117 of file GeometryPartitioner.hpp.
|
protected |
Indices of local halo nodes.
Definition at line 121 of file GeometryPartitioner.hpp.
|
protected |
Indicates which cell is on the boundary.
data()
Definition at line 157 of file GeometryPartitioner.hpp.
|
protected |
algorithmic flags
Definition at line 136 of file GeometryPartitioner.hpp.
|
protected |
Number of cells and boundary cells in all combined meshes.
Definition at line 144 of file GeometryPartitioner.hpp.
|
protected |
Number of nodes in all combined meshes.
Definition at line 127 of file GeometryPartitioner.hpp.
|
protected |
Attributes for each node.
Definition at line 129 of file GeometryPartitioner.hpp.
|
protected |
Offset in m_nodeAttr array for each node.
Definition at line 130 of file GeometryPartitioner.hpp.
|
protected |
Size of combined lists of attributes per node.
Definition at line 131 of file GeometryPartitioner.hpp.
|
protected |
lists of adjacent cells
Definition at line 134 of file GeometryPartitioner.hpp.
|
protected |
Node indices for each cell (signed ints for lib compatibility)
Definition at line 146 of file GeometryPartitioner.hpp.
|
protected |
Offset in m_nodeIndices array for each cell.
Definition at line 147 of file GeometryPartitioner.hpp.
|
protected |
Size of combined lists of nodes per cell.
Definition at line 148 of file GeometryPartitioner.hpp.
|
protected |
lists of adjacent nodes
Definition at line 133 of file GeometryPartitioner.hpp.
|
protected |
GeomNode offset.
Definition at line 123 of file GeometryPartitioner.hpp.
|
protected |
Indices of local cells and boundary cells.
Definition at line 119 of file GeometryPartitioner.hpp.
|
protected |
Indices of local nodes.
Definition at line 120 of file GeometryPartitioner.hpp.