Chaste Release::3.1
|
#include <NodePartitioner.hpp>
Static Public Member Functions | |
static void | DumbPartitioning (AbstractMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, std::set< unsigned > &rNodesOwned) |
static void | MetisLibraryPartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::vector< unsigned > &rNodesPermutation, std::set< unsigned > &rNodesOwned, std::vector< unsigned > &rProcessorsOffset) |
static void | PetscMatrixPartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::vector< unsigned > &rNodesPermutation, std::set< unsigned > &rNodesOwned, std::vector< unsigned > &rProcessorsOffset) |
Static methods to allow node-wise partitioning of meshes.
Definition at line 48 of file NodePartitioner.hpp.
void NodePartitioner< ELEMENT_DIM, SPACE_DIM >::DumbPartitioning | ( | AbstractMesh< ELEMENT_DIM, SPACE_DIM > & | rMesh, |
std::set< unsigned > & | rNodesOwned | ||
) | [static] |
Specialised method to compute a parallel partitioning of a given mesh (called by ComputeMeshPartitioning, based on the value of mMetisPartitioning)
rMesh | is the original mesh (so that we can set the DistributedVectorFactory up |
rNodesOwned | is an empty set to be filled with the indices of nodes owned by this process |
Definition at line 65 of file NodePartitioner.cpp.
References EXCEPTION, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory(), DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLow(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and DistributedVectorFactory::GetProblemSize().
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning().
void NodePartitioner< ELEMENT_DIM, SPACE_DIM >::MetisLibraryPartitioning | ( | AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > & | rMeshReader, |
std::vector< unsigned > & | rNodesPermutation, | ||
std::set< unsigned > & | rNodesOwned, | ||
std::vector< unsigned > & | rProcessorsOffset | ||
) | [static] |
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 |
rNodesPermutation | is the vector to be filled with node permutation information. |
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 87 of file NodePartitioner.cpp.
References PetscTools::AmMaster(), EXCEPTION, PetscTools::GetMyRank(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementData(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), PetscTools::GetNumProcs(), TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetOrderOfElements(), PetscTools::IsParallel(), NEVER_REACHED, ElementData::NodeIndices, Timer::Reset(), and AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset().
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning().
void NodePartitioner< ELEMENT_DIM, SPACE_DIM >::PetscMatrixPartitioning | ( | AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > & | rMeshReader, |
std::vector< unsigned > & | rNodesPermutation, | ||
std::set< unsigned > & | rNodesOwned, | ||
std::vector< unsigned > & | rProcessorsOffset | ||
) | [static] |
Method to compute a parallel partitioning of a given mesh.
rMeshReader | is the reader pointing to the mesh to be read in and partitioned |
rNodesPermutation | is the vector to be filled with node permutation information. |
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 xadj and adjncy as a side effect
Definition at line 211 of file NodePartitioner.cpp.
References PetscTools::AmMaster(), PetscTools::AmTopMost(), PetscTools::Barrier(), PetscTools::Destroy(), PetscMatTools::Finalise(), 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(), PetscTools::HasParMetis(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::IsFileFormatBinary(), PetscTools::IsParallel(), ElementData::NodeIndices, PETSC_DESTROY_PARAM, Timer::PrintAndReset(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset(), Timer::Reset(), and PetscTools::SetupMat().
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning().