#include "modules/NetMPI/include/MetisPartitioner.hpp"
Public Member Functions | |
MetisPartitioner (std::shared_ptr< PanNDE::ArrayFactory< int32_t >> i32_maker, std::shared_ptr< PanNDE::ArrayFactory< int64_t >> i64_maker, std::shared_ptr< PanNDE::ArrayFactory< double >> dbl_maker, std::shared_ptr< PanNDE::Communicator >communicator=nullptr) | |
void | partitionMesh (int Nparts, std::shared_ptr< PanNDE::Mesh > global_mesh) override |
std::shared_ptr< PanNDE::Array< std::shared_ptr< PanNDE::Mesh > > > | distributeMeshPartitions (std::shared_ptr< PanNDE::Array< int >> partitionIds, std::shared_ptr< PanNDE::MeshFactory > maker, int mesh_source_rank=0) override |
std::shared_ptr< PanNDE::Array< std::shared_ptr< PanNDE::Field > > > | distributeFieldPartitions (std::shared_ptr< PanNDE::Array< int >> partitionIds, std::shared_ptr< PanNDE::FieldFactory > maker, std::shared_ptr< PanNDE::Field > global_field=nullptr, int field_source_rank=0) override |
Implements the required externally faced operations for partitioning and distributing a mesh and it's associated fields
|
inline |
constructor
i32_maker | Array factory for 32bit ints |
i64_maker | Array factory for 64bit ints |
dbl_maker | Array factory for doubles |
communicator | communicator tool for distributing mesh and fields |
|
inlineoverridevirtual |
distribute a field
partitionIds | which partitions the local process is requesting |
maker | the field factory |
global_field | the field that must be partitioned that is currently on the field_source_rank process |
field_source_rank | process which has the global field and is distributing the field partitions |
Implements Controller::Partitioner.
|
inlineoverridevirtual |
distribute the mesh
partitionIds | which partitions the local process is requesting |
maker | the mesh factory |
mesh_source_rank | process which has the global mesh and is distributing the mesh partitions |
Implements Controller::Partitioner.
|
inlineoverridevirtual |
partition a mesh
Nparts | number of parts to decompose the mesh into |
global_mesh | the monolithic mesh to partition |
Implements Controller::Partitioner.