LifeV
|
Class that partitions the graph associated with a mesh (ParMETIS version) More...
#include <GraphCutterParMETIS.hpp>
Private Member Functions | |
GraphCutterParMETIS (const GraphCutterParMETIS &) | |
GraphCutterParMETIS & | operator= (const GraphCutterParMETIS &) |
Public Types | |
typedef Teuchos::ParameterList | pList_Type |
typedef std::shared_ptr< Epetra_Comm > | commPtr_Type |
typedef MeshType | mesh_Type |
typedef std::shared_ptr< mesh_Type > | meshPtr_Type |
typedef boost::bimap< UInt, UInt > | biMap_Type |
typedef biMap_Type::value_type | biMapValue_Type |
Constructor & Destructor | |
Constructor taking the original mesh, the MPI comm and parameters | |
GraphCutterParMETIS (meshPtr_Type &mesh, commPtr_Type &comm, pList_Type ¶meters) | |
virtual | ~GraphCutterParMETIS () |
Destructor. More... | |
Public methods | |
virtual Int | run () |
Performs the graph partitioning. More... | |
Get Methods | |
virtual const idListPtr_Type & | getPart (const UInt i) const |
Get a pointer to one of the partitions. More... | |
virtual idListPtr_Type & | getPart (const UInt i) |
virtual const UInt | numParts () const |
Return the number of parts. More... | |
virtual const idTablePtr_Type | getGraph () const |
Get the entire partitioned graph, wrapped in a smart pointer. More... | |
Private Methods | |
virtual void | setParameters (pList_Type ¶meters) |
Set values for all the parameters, with default values where needed. More... | |
Int | partitionFlat () |
Perform a flat, non-hierarchical partition. More... | |
Int | partitionHierarchical () |
Perform a hierarchical (2-level) partition. More... | |
Additional Inherited Members | |
Public Types inherited from GraphCutterBase< MeshType > | |
typedef Teuchos::ParameterList | pList_Type |
Public Member Functions inherited from GraphCutterBase< MeshType > | |
GraphCutterBase () | |
Default constructor. More... | |
virtual | ~GraphCutterBase () |
Destructor. More... | |
Class that partitions the graph associated with a mesh (ParMETIS version)
This class uses the ParMETIS package to partition the graph associated with a mesh. This class builds the dual graph of the mesh, partitions it according to a set of parameters and the stores the partition in a table (vector of vectors). At the end of the partition process, each vector will contain the GID of the elements in a part.
While this class can be used stand-alone, it is used automatically by the MeshPartitionTool class during the mesh partition process.
Definition at line 70 of file GraphCutterParMETIS.hpp.
typedef Teuchos::ParameterList pList_Type |
Definition at line 75 of file GraphCutterParMETIS.hpp.
typedef std::shared_ptr<Epetra_Comm> commPtr_Type |
Definition at line 76 of file GraphCutterParMETIS.hpp.
Definition at line 77 of file GraphCutterParMETIS.hpp.
typedef std::shared_ptr<mesh_Type> meshPtr_Type |
Definition at line 78 of file GraphCutterParMETIS.hpp.
typedef boost::bimap<UInt, UInt> biMap_Type |
Definition at line 80 of file GraphCutterParMETIS.hpp.
typedef biMap_Type::value_type biMapValue_Type |
Definition at line 81 of file GraphCutterParMETIS.hpp.
GraphCutterParMETIS | ( | meshPtr_Type & | mesh, |
commPtr_Type & | comm, | ||
pList_Type & | parameters | ||
) |
This constructor can be used to build the object and perform the graph partitioning in one shot.
mesh | The original mesh whose graph this object will partition |
comm | The Epetra MPI comm object which contains the processes which participate |
parameters | The Teuchos parameter list which contains the partitioning parameters |
Definition at line 188 of file GraphCutterParMETIS.hpp.
|
inlinevirtual |
Destructor.
Definition at line 101 of file GraphCutterParMETIS.hpp.
|
private |
|
virtual |
Performs the graph partitioning.
Implements GraphCutterBase< MeshType >.
Definition at line 222 of file GraphCutterParMETIS.hpp.
|
inlinevirtual |
Get a pointer to one of the partitions.
Implements GraphCutterBase< MeshType >.
Definition at line 113 of file GraphCutterParMETIS.hpp.
|
inlinevirtual |
Implements GraphCutterBase< MeshType >.
Definition at line 117 of file GraphCutterParMETIS.hpp.
|
inlinevirtual |
Return the number of parts.
Implements GraphCutterBase< MeshType >.
Definition at line 123 of file GraphCutterParMETIS.hpp.
|
inlinevirtual |
Get the entire partitioned graph, wrapped in a smart pointer.
Implements GraphCutterBase< MeshType >.
Definition at line 129 of file GraphCutterParMETIS.hpp.
|
privatevirtual |
Set values for all the parameters, with default values where needed.
Implements GraphCutterBase< MeshType >.
Definition at line 203 of file GraphCutterParMETIS.hpp.
|
private |
Perform a flat, non-hierarchical partition.
Definition at line 251 of file GraphCutterParMETIS.hpp.
|
private |
Perform a hierarchical (2-level) partition.
Definition at line 273 of file GraphCutterParMETIS.hpp.
|
private |
|
private |
Definition at line 164 of file GraphCutterParMETIS.hpp.
|
private |
Definition at line 165 of file GraphCutterParMETIS.hpp.
|
private |
Definition at line 166 of file GraphCutterParMETIS.hpp.
|
private |
Definition at line 167 of file GraphCutterParMETIS.hpp.
|
private |
Definition at line 168 of file GraphCutterParMETIS.hpp.
|
private |
Definition at line 169 of file GraphCutterParMETIS.hpp.
|
private |
Definition at line 170 of file GraphCutterParMETIS.hpp.
|
private |
Definition at line 171 of file GraphCutterParMETIS.hpp.
|
private |
Definition at line 172 of file GraphCutterParMETIS.hpp.
|
private |
Definition at line 173 of file GraphCutterParMETIS.hpp.
|
private |
Definition at line 174 of file GraphCutterParMETIS.hpp.
|
private |
Definition at line 175 of file GraphCutterParMETIS.hpp.
|
private |
Definition at line 176 of file GraphCutterParMETIS.hpp.