#include <DistributedTetrahedralMesh.hpp>
Public Types | |
enum | PartitionType { DUMB = 0, PARMETIS_LIBRARY = 1, METIS_LIBRARY = 2, PETSC_MAT_PARTITION = 3 } |
Public Member Functions | |
DistributedTetrahedralMesh (PartitionType metisPartitioning=METIS_LIBRARY) | |
virtual | ~DistributedTetrahedralMesh () |
void | SetDistributedVectorFactory (DistributedVectorFactory *pFactory) |
void | ConstructFromMeshReader (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader) |
unsigned | GetNumLocalNodes () const |
unsigned | GetNumLocalElements () const |
unsigned | GetNumLocalBoundaryElements () const |
unsigned | GetNumNodes () const |
unsigned | GetNumAllNodes () const |
unsigned | GetNumElements () const |
PartitionType | GetPartitionType () const |
unsigned | GetNumBoundaryElements () const |
void | GetHaloNodeIndices (std::vector< unsigned > &rHaloIndices) const |
void | SetElementOwnerships (unsigned lo, unsigned hi) |
bool | CalculateDesignatedOwnershipOfElement (unsigned elementIndex) |
bool | CalculateDesignatedOwnershipOfBoundaryElement (unsigned faceIndex) |
void | ConstructLinearMesh (unsigned width) |
void | ConstructRectangularMesh (unsigned width, unsigned height, bool stagger=true) |
void | ConstructCuboid (unsigned width, unsigned height, unsigned depth) |
virtual void | Scale (const double xFactor=1.0, const double yFactor=1.0, const double zFactor=1.0) |
Node< SPACE_DIM > * | GetNodeOrHaloNode (unsigned index) const |
virtual ChasteCuboid< SPACE_DIM > | CalculateBoundingBox () const |
Private Member Functions | |
template<class Archive> | |
void | serialize (Archive &archive, const unsigned int version) |
void | RegisterNode (unsigned index) |
void | RegisterHaloNode (unsigned index) |
void | RegisterElement (unsigned index) |
void | RegisterBoundaryElement (unsigned index) |
unsigned | SolveNodeMapping (unsigned index) const |
unsigned | SolveElementMapping (unsigned index) const |
unsigned | SolveBoundaryElementMapping (unsigned index) const |
void | ComputeMeshPartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::set< unsigned > &rNodesOwned, std::set< unsigned > &rHaloNodesOwned, std::set< unsigned > &rElementsOwned, std::vector< unsigned > &rProcessorsOffset) |
void | DumbNodePartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::set< unsigned > &rNodesOwned) |
void | MetisLibraryNodePartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::set< unsigned > &rNodesOwned, std::vector< unsigned > &rProcessorsOffset) |
void | PetscMatrixPartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::set< unsigned > &rNodesOwned, std::vector< unsigned > &rProcessorsOffset) |
void | ParMetisLibraryNodePartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::set< unsigned > &rElementsOwned, std::set< unsigned > &rNodesOwned, std::set< unsigned > &rHaloNodesOwned, std::vector< unsigned > &rProcessorsOffset) |
void | ReorderNodes () |
Private Attributes | |
unsigned | mTotalNumElements |
unsigned | mTotalNumBoundaryElements |
unsigned | mTotalNumNodes |
std::vector< Node< SPACE_DIM > * > | mHaloNodes |
std::map< unsigned, unsigned > | mNodesMapping |
std::map< unsigned, unsigned > | mHaloNodesMapping |
std::map< unsigned, unsigned > | mElementsMapping |
std::map< unsigned, unsigned > | mBoundaryElementsMapping |
PartitionType | mMetisPartitioning |
Friends | |
class | TestDistributedTetrahedralMesh |
class | boost::serialization::access |
Definition at line 67 of file DistributedTetrahedralMesh.hpp.
enum DistributedTetrahedralMesh::PartitionType |
Definition of partition types. "DUMB" is using natural mesh ordering with PETSC_DECIDE. "PARMETIS_LIBRARY" is a call to the parallel parMETIS library "METIS_LIBRARY" is a call to the sequential METIS library "PETSC_MAT_PARTITION" is a call to parMETIS (or whatever) via PETSc functionality
Definition at line 79 of file DistributedTetrahedralMesh.hpp.
DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::DistributedTetrahedralMesh | ( | PartitionType | metisPartitioning = METIS_LIBRARY |
) | [inline] |
Constructor.
metisPartitioning | defaults to METIS_LIBRARY, but in 1-D is always overridden in this constructor to be the DUMB partition |
Definition at line 54 of file DistributedTetrahedralMesh.cpp.
References DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mMetisPartitioning.
DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::~DistributedTetrahedralMesh | ( | ) | [inline, virtual] |
Destructor.
Definition at line 69 of file DistributedTetrahedralMesh.cpp.
References DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodes.
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::serialize | ( | Archive & | archive, | |
const unsigned int | version | |||
) | [inline, private] |
Serialize the mesh.
archive | the archive | |
version | the current version of this class |
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 125 of file DistributedTetrahedralMesh.hpp.
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SetDistributedVectorFactory | ( | DistributedVectorFactory * | pFactory | ) | [inline, virtual] |
Specify the node distribution across processes. This also makes sure we don't try to use METIS to partition the mesh.
pFactory | a factory to use for this mesh |
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 78 of file DistributedTetrahedralMesh.cpp.
References DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mMetisPartitioning, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SetDistributedVectorFactory().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader | ( | AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > & | rMeshReader | ) | [inline, virtual] |
Construct the mesh using a MeshReader.
rMeshReader | the mesh reader |
Implements AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 160 of file DistributedTetrahedralMesh.cpp.
References PetscTools::AmTopMost(), ElementData::AttributeValue, PetscTools::Barrier(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning(), EXCEPTION, AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetElementData(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetMeshFileBaseName(), PetscTools::GetMyRank(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementData(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextFaceData(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextNode(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNode(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElementAttributes(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumFaceAttributes(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumFaces(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::IsFileFormatBinary(), PetscTools::IsSequential(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodes, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshFileBaseName, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mMetisPartitioning, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mNodesMapping, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodesPermutation, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumBoundaryElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumNodes, ElementData::NodeIndices, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterBoundaryElement(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterElement(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterHaloNode(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterNode(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ReorderNodes(), PetscTools::ReplicateException(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset(), Timer::Reset(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::SetRegion().
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumLocalNodes | ( | ) | const [inline] |
Get the number of nodes that are entirely owned by the local process. (Does not include halo nodes).
Definition at line 401 of file DistributedTetrahedralMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumLocalElements | ( | ) | const [inline, virtual] |
Get the number of Elements which are owned by this process (have at least one entirely locally-owned node).
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 407 of file DistributedTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumLocalBoundaryElements | ( | ) | const [inline] |
Get the number of Boundary Elements which are owned by this process (have at least one entirely locally-owned node).
Definition at line 413 of file DistributedTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements.
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes | ( | ) | const [inline, virtual] |
Get the total number of nodes that are actually in use (globally).
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 419 of file DistributedTetrahedralMesh.cpp.
References DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumNodes.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::MetisLibraryNodePartitioning(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ParMetisLibraryNodePartitioning().
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllNodes | ( | ) | const [inline, virtual] |
Get the total number of nodes that are actually in use (globally).
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 425 of file DistributedTetrahedralMesh.cpp.
References DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumNodes.
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements | ( | ) | const [inline, virtual] |
Get the total number of elements that are actually in use (globally).
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 431 of file DistributedTetrahedralMesh.cpp.
References DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumElements.
DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PartitionType DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetPartitionType | ( | ) | const [inline] |
Get the type of mesh partition ing that is being used...
serialization uses this method.
Definition at line 437 of file DistributedTetrahedralMesh.cpp.
References DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mMetisPartitioning.
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumBoundaryElements | ( | ) | const [inline, virtual] |
Get the total number of boundary elements that are actually in use (globally).
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 443 of file DistributedTetrahedralMesh.cpp.
References DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumBoundaryElements.
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetHaloNodeIndices | ( | std::vector< unsigned > & | rHaloIndices | ) | const [inline, virtual] |
Utility method to give the functionality of iterating through the halo nodes of a process
rHaloIndices | A vector to fill with the global indices of the nodes which are locally halos |
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 449 of file DistributedTetrahedralMesh.cpp.
References DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodes.
Referenced by DistanceMapCalculator< ELEMENT_DIM, SPACE_DIM >::DistanceMapCalculator().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SetElementOwnerships | ( | unsigned | lo, | |
unsigned | hi | |||
) | [inline, virtual] |
Sets the ownership of each element according to which nodes are owned by the process.
lo | is the lowest node number owned by the process | |
hi | is one higher than the highest node number owned by the process ie. this process owns nodes [lo..hi) and element is "owned" if one or more of its nodes are owned |
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 460 of file DistributedTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, and AbstractElement< ELEMENT_DIM, SPACE_DIM >::SetOwnership().
bool DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateDesignatedOwnershipOfElement | ( | unsigned | elementIndex | ) | [inline, virtual] |
Determine whether or not the current process owns node 0 of this element (tie breaker to determine which process writes to file for when two or more share ownership of an element).
elementIndex | is the global index of the element |
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 475 of file DistributedTetrahedralMesh.cpp.
bool DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateDesignatedOwnershipOfBoundaryElement | ( | unsigned | faceIndex | ) | [inline, virtual] |
Determine whether or not the current process owns node 0 of this boundary element (tie breaker to determine which process writes to file for when two or more share ownership of a face).
faceIndex | is the global index of the face |
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 488 of file DistributedTetrahedralMesh.cpp.
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh | ( | unsigned | width | ) | [inline, virtual] |
Construct a 1D linear grid on [0,width]
Throws if there are more processes than the number of nodes (width+1)
width | width of the mesh (in the x-direction) |
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 980 of file DistributedTetrahedralMesh.cpp.
References PetscTools::AmMaster(), EXCEPTION, DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLocalOwnership(), DistributedVectorFactory::GetLow(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodes, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mMetisPartitioning, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumBoundaryElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumNodes, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterBoundaryElement(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterElement(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterHaloNode(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterNode().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh | ( | unsigned | width, | |
unsigned | height, | |||
bool | stagger = true | |||
) | [inline, virtual] |
Construct a 2D rectangular grid on [0,width]x[0,height].
Diagonals can be staggered so that there is no preferred diffusion propagation direction.
width | width of the mesh (in the x-direction) | |
height | height of the mesh (in the y-direction) | |
stagger | whether the mesh should 'jumble' up the elements (defaults to true) |
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1068 of file DistributedTetrahedralMesh.cpp.
References PetscTools::AmMaster(), EXCEPTION, DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLocalOwnership(), DistributedVectorFactory::GetLow(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodes, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mMetisPartitioning, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumBoundaryElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumNodes, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterBoundaryElement(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterElement(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterHaloNode(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterNode().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid | ( | unsigned | width, | |
unsigned | height, | |||
unsigned | depth | |||
) | [inline, virtual] |
Construct a 3D cuboid grid on [0,width]x[0,height]x[0,depth].
width | width of the mesh (in the x-direction) | |
height | height of the mesh (in the y-direction) | |
depth | depth of the mesh (in the z-direction) |
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1241 of file DistributedTetrahedralMesh.cpp.
References PetscTools::AmMaster(), EXCEPTION, DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLocalOwnership(), DistributedVectorFactory::GetLow(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodes, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mMetisPartitioning, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumBoundaryElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumNodes, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterBoundaryElement(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterElement(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterHaloNode(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterNode().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Scale | ( | const double | xFactor = 1.0 , |
|
const double | yFactor = 1.0 , |
|||
const double | zFactor = 1.0 | |||
) | [inline, virtual] |
Scale the mesh - uses the parent class for scaling the nodes. This derived specialisation is for scaling halo nodes.
xFactor | is the scale in the x-direction (defaults to 1.0) | |
yFactor | is the scale in the y-direction (defaults to 1.0) | |
zFactor | is the scale in the z-direction (defaults to 1.0) |
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1480 of file DistributedTetrahedralMesh.cpp.
References DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodes, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Scale().
Node< SPACE_DIM > * DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode | ( | unsigned | index | ) | const [inline, virtual] |
Returns the local pointer to a node which is either owned or in the halo of this process.
We first search halo node (as there are fewer), then search totally owned nodes. Otherwise throw.
index | the global index of the node |
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 576 of file DistributedTetrahedralMesh.cpp.
References EXCEPTION, PetscTools::GetMyRank(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodes, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodesMapping, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mNodesMapping.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh().
ChasteCuboid< SPACE_DIM > DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundingBox | ( | ) | const [inline, virtual] |
Calculate the bounding box (width extremes for all dimensions of the mesh. Override for Distribute case
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1785 of file DistributedTetrahedralMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundingBox(), ChastePoint< DIM >::rGetLocation(), ChasteCuboid< SPACE_DIM >::rGetLowerCorner(), and ChasteCuboid< SPACE_DIM >::rGetUpperCorner().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterNode | ( | unsigned | index | ) | [inline, private] |
Add the most recently constructed node to the global->local node mapping
index | is the global index of node to be registered |
Definition at line 501 of file DistributedTetrahedralMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mNodesMapping.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterHaloNode | ( | unsigned | index | ) | [inline, private] |
Add the most recently constructed halo node to the global->local halo node mapping
index | is the global index of halo node to be registered |
Definition at line 507 of file DistributedTetrahedralMesh.cpp.
References DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodes, and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodesMapping.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterElement | ( | unsigned | index | ) | [inline, private] |
Add the most recently constructed element to the global->local element mapping
index | is the global index of element to be registered |
Definition at line 513 of file DistributedTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementsMapping.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterBoundaryElement | ( | unsigned | index | ) | [inline, private] |
Add the most recently constructed boundary element to the global->local boundary element mapping
index | is the global index of boundary element to be registered |
Definition at line 519 of file DistributedTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElementsMapping.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh().
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveNodeMapping | ( | unsigned | index | ) | const [inline, private, virtual] |
Overridden solve node mapping method.
index | the global index of the node |
Implements AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 525 of file DistributedTetrahedralMesh.cpp.
References EXCEPTION, PetscTools::GetMyRank(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mNodesMapping.
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveElementMapping | ( | unsigned | index | ) | const [inline, private, virtual] |
Overridden solve element mapping method.
index | the global index of the element |
Implements AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 546 of file DistributedTetrahedralMesh.cpp.
References EXCEPTION, PetscTools::GetMyRank(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementsMapping.
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveBoundaryElementMapping | ( | unsigned | index | ) | const [inline, private, virtual] |
Overridden solve boundary element mapping method.
index | the global index of the boundary element |
Implements AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 561 of file DistributedTetrahedralMesh.cpp.
References EXCEPTION, PetscTools::GetMyRank(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElementsMapping.
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning | ( | AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > & | rMeshReader, | |
std::set< unsigned > & | rNodesOwned, | |||
std::set< unsigned > & | rHaloNodesOwned, | |||
std::set< unsigned > & | rElementsOwned, | |||
std::vector< unsigned > & | rProcessorsOffset | |||
) | [inline, private] |
Compute a parallel partitioning of a given mesh using specialised methods below based on the value of mMetisPartitioning
rMeshReader | is the reader pointing to the mesh to be read in and partitioned | |
rNodesOwned | is a set to be filled with the indices of nodes owned by this process | |
rHaloNodesOwned | is a set to be filled with the indices of halo nodes owned by this process | |
rElementsOwned | is a set to be filled with the indices of elements owned by this process | |
rProcessorsOffset | a vector of length NumProcs to be filled with the index of the lowest indexed node owned by each process |
Definition at line 85 of file DistributedTetrahedralMesh.cpp.
References PetscTools::AmMaster(), PetscTools::Barrier(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::DumbNodePartitioning(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementData(), PetscTools::IsSequential(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::MetisLibraryNodePartitioning(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mMetisPartitioning, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumElements, ElementData::NodeIndices, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ParMetisLibraryNodePartitioning(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PetscMatrixPartitioning(), Timer::PrintAndReset(), and AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset().
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::DumbNodePartitioning | ( | AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > & | rMeshReader, | |
std::set< unsigned > & | rNodesOwned | |||
) | [inline, private] |
Specialised method to compute a parallel partitioning of a given mesh (called by ComputeMeshPartitioning, based on the value of mMetisPartitioning)
rMeshReader | is the reader pointing to the mesh to be read in and partitioned | |
rNodesOwned | is an empty set to be filled with the indices of nodes owned by this process |
Definition at line 597 of file DistributedTetrahedralMesh.cpp.
References EXCEPTION, DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLow(), DistributedVectorFactory::GetProblemSize(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumBoundaryElements, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumElements, and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumNodes.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::MetisLibraryNodePartitioning | ( | AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > & | rMeshReader, | |
std::set< unsigned > & | rNodesOwned, | |||
std::vector< unsigned > & | rProcessorsOffset | |||
) | [inline, private] |
Specialised method to compute a parallel partitioning of a given mesh (called by ComputeMeshPartitioning, based on the value of mMetisPartitioning
rMeshReader | is the reader pointing to the mesh to be read in and partitioned | |
rNodesOwned | is an empty set to be filled with the indices of nodes owned by this process | |
rProcessorsOffset | a vector of length NumProcs to be filled with the index of the lowest indexed node owned by each process |
Definition at line 845 of file DistributedTetrahedralMesh.cpp.
References PetscTools::AmMaster(), PetscTools::GetMyRank(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementData(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), PetscTools::GetNumProcs(), PetscTools::IsSequential(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodesPermutation, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumElements, NEVER_REACHED, ElementData::NodeIndices, Timer::Reset(), and AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset().
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PetscMatrixPartitioning | ( | AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > & | rMeshReader, | |
std::set< unsigned > & | rNodesOwned, | |||
std::vector< unsigned > & | rProcessorsOffset | |||
) | [inline, private] |
Specialised method to compute a parallel partitioning of a given mesh (called by ComputeMeshPartitioning, based on the value of mMetisPartitioning
rMeshReader | is the reader pointing to the mesh to be read in and partitioned | |
rNodesOwned | is an empty set to be filled with the indices of nodes owned by this process | |
rProcessorsOffset | a vector of length NumProcs to be filled with the index of the lowest indexed node owned by each process |
It seems to be free-ing local_ia and local_ja as a side effect
Definition at line 627 of file DistributedTetrahedralMesh.cpp.
References PetscTools::AmMaster(), PetscTools::AmTopMost(), PetscTools::Barrier(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetElementData(), PetscTools::GetMyRank(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementData(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), PetscTools::GetNumProcs(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::IsFileFormatBinary(), PetscTools::IsSequential(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodesPermutation, ElementData::NodeIndices, Timer::PrintAndReset(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset(), Timer::Reset(), and PetscTools::SetupMat().
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ParMetisLibraryNodePartitioning | ( | AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > & | rMeshReader, | |
std::set< unsigned > & | rElementsOwned, | |||
std::set< unsigned > & | rNodesOwned, | |||
std::set< unsigned > & | rHaloNodesOwned, | |||
std::vector< unsigned > & | rProcessorsOffset | |||
) | [inline, private] |
Specialised method to compute a parallel partitioning of a given mesh with the ParMetis library (called by ComputeMeshPartitioning, based on the value of mMetisPartitioning)
rMeshReader | is the reader pointing to the mesh to be read in and partitioned | |
rElementsOwned | is an empty set to be filled with the indices of elements owned by this process | |
rNodesOwned | is an empty set to be filled with the indices of nodes owned by this process | |
rHaloNodesOwned | is an empty set to be filled with the indices of halo nodes owned by this process | |
rProcessorsOffset | a vector of length NumProcs to be filled with the index of the lowest indexed node owned by each process |
Definition at line 1503 of file DistributedTetrahedralMesh.cpp.
References AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetElementData(), PetscTools::GetMyRank(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementData(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), PetscTools::GetNumProcs(), RandomNumberGenerator::Instance(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::IsFileFormatBinary(), PetscTools::IsSequential(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodesPermutation, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumElements, ElementData::NodeIndices, RandomNumberGenerator::Reseed(), Timer::Reset(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset(), and RandomNumberGenerator::Shuffle().
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning().
void DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ReorderNodes | ( | ) | [inline, private] |
Reorder the node indices in this mesh by applying the permutation give in mNodesPermutation.
The node indexed with "i" will be re-assigned with the new index mNodesPermutation[i]
Definition at line 951 of file DistributedTetrahedralMesh.cpp.
References PetscTools::IsSequential(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodes, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodesMapping, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mNodesMapping, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodesPermutation.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader().
friend class boost::serialization::access [friend] |
Needed for serialization.
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 117 of file DistributedTetrahedralMesh.hpp.
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumElements [private] |
The total number of elements in the mesh.
Definition at line 90 of file DistributedTetrahedralMesh.hpp.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::DumbNodePartitioning(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::MetisLibraryNodePartitioning(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ParMetisLibraryNodePartitioning().
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumBoundaryElements [private] |
The total number of boundary elements in the mesh.
Definition at line 93 of file DistributedTetrahedralMesh.hpp.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::DumbNodePartitioning(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumBoundaryElements().
unsigned DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mTotalNumNodes [private] |
The total number of nodes in the mesh.
Definition at line 96 of file DistributedTetrahedralMesh.hpp.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::DumbNodePartitioning(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllNodes(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
std::vector<Node<SPACE_DIM>* > DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodes [private] |
Vector of pointer to halo nodes used by this process.
Definition at line 99 of file DistributedTetrahedralMesh.hpp.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetHaloNodeIndices(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterHaloNode(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ReorderNodes(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Scale(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::~DistributedTetrahedralMesh().
std::map<unsigned, unsigned> DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mNodesMapping [private] |
A map from node global index to local index used by this process.
Definition at line 102 of file DistributedTetrahedralMesh.hpp.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterNode(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ReorderNodes(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveNodeMapping().
std::map<unsigned, unsigned> DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mHaloNodesMapping [private] |
A map from halo node global index to local index used by this process.
Definition at line 105 of file DistributedTetrahedralMesh.hpp.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterHaloNode(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ReorderNodes().
std::map<unsigned, unsigned> DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementsMapping [private] |
A map from element global index to local index used by this process.
Definition at line 108 of file DistributedTetrahedralMesh.hpp.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterElement(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveElementMapping().
std::map<unsigned, unsigned> DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElementsMapping [private] |
A map from boundary element global index to local index used by this process.
Definition at line 111 of file DistributedTetrahedralMesh.hpp.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterBoundaryElement(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveBoundaryElementMapping().
PartitionType DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mMetisPartitioning [private] |
Partition type (given by enum PartitionType).
Definition at line 114 of file DistributedTetrahedralMesh.hpp.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::DistributedTetrahedralMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetPartitionType(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SetDistributedVectorFactory().