ParallelTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <ParallelTetrahedralMesh.hpp>

Inheritance diagram for ParallelTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >:

Inheritance graph
[legend]
Collaboration diagram for ParallelTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >:

Collaboration graph
[legend]

List of all members.

Public Types

enum  PartitionType { DUMB = 0, METIS_BINARY, METIS_LIBRARY }

Public Member Functions

 ParallelTetrahedralMesh (PartitionType metisPartitioning=METIS_LIBRARY)
void ConstructFromMeshReader (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, bool cullInternalFaces=false)
unsigned GetNumLocalNodes () const
unsigned GetNumLocalElements () const
unsigned GetNumNodes () const
unsigned GetNumElements () const
unsigned GetNumBoundaryElements () const
void SetElementOwnerships (unsigned lo, unsigned hi)

Private Member Functions

void RegisterNode (unsigned index)
void RegisterHaloNode (unsigned index)
void RegisterElement (unsigned index)
void RegisterBoundaryElement (unsigned index)
unsigned SolveNodeMapping (unsigned index) const
unsigned SolveHaloNodeMapping (unsigned index)
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, std::vector< unsigned > &rNodePermutation)
void DumbNodePartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::set< unsigned > &rNodesOwned)
void MetisBinaryNodePartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::set< unsigned > &rNodesOwned, std::vector< unsigned > &rProcessorsOffset, std::vector< unsigned > &rNodePermutation)
void MetisLibraryNodePartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::set< unsigned > &rNodesOwned, std::vector< unsigned > &rProcessorsOffset, std::vector< unsigned > &rNodePermutation)
void ReorderNodes (std::vector< unsigned > &rNodePermutation)

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 TestParallelTetrahedralMesh


Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
class ParallelTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >

Todo:
explicit instantiation

Definition at line 60 of file ParallelTetrahedralMesh.hpp.


Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void ParallelTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader ( AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &  rMeshReader,
bool  cullInternalFaces = false 
) [inline]

Todo:
: assert the node is not considered both owned and halo-owned. Remove continue statement few lines below then.

Definition at line 211 of file ParallelTetrahedralMesh.hpp.

References ElementData::AttributeValue, ParallelTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning(), ElementData::NodeIndices, and PetscTools::NumProcs().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void ParallelTetrahedralMesh< 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,
std::vector< unsigned > &  rNodePermutation 
) [inline, private]

Todo:
: add a timing event for the partitioning

Definition at line 157 of file ParallelTetrahedralMesh.hpp.

References ElementData::NodeIndices, and PetscTools::NumProcs().

Referenced by ParallelTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader().


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

Generated on Wed Mar 18 12:52:47 2009 for Chaste by  doxygen 1.5.5