|
PanNDE
|
#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.