PanNDE
All Classes Namespaces Functions Pages
Public Member Functions | List of all members
Controller::Partitioner Class Referenceabstract

#include "modules/Controller/include/Partitioner.hpp"

Inheritance diagram for Controller::Partitioner:
NetMPI::MetisPartitioner

Public Member Functions

virtual void partitionMesh (int Nparts, std::shared_ptr< PanNDE::Mesh > global_mesh)=0
 
virtual 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)=0
 
virtual 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)=0
 

Detailed Description

Defines the required externally faced operations for partitioning and distributing a mesh and it's associated fields

Member Function Documentation

◆ distributeFieldPartitions()

virtual std::shared_ptr<PanNDE::Array<std::shared_ptr<PanNDE::Field> > > Controller::Partitioner::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 
)
pure virtual

distribute a field

Parameters
partitionIdswhich partitions the local process is requesting
makerthe field factory
global_fieldthe field that must be partitioned that is currently on the field_source_rank process
field_source_rankprocess which has the global field and is distributing the field partitions

Implemented in NetMPI::MetisPartitioner.

◆ distributeMeshPartitions()

virtual std::shared_ptr<PanNDE::Array<std::shared_ptr<PanNDE::Mesh> > > Controller::Partitioner::distributeMeshPartitions ( std::shared_ptr< PanNDE::Array< int >>  partitionIds,
std::shared_ptr< PanNDE::MeshFactory maker,
int  mesh_source_rank = 0 
)
pure virtual

distribute the mesh

Parameters
partitionIdswhich partitions the local process is requesting
makerthe mesh factory
mesh_source_rankprocess which has the global mesh and is distributing the mesh partitions

Implemented in NetMPI::MetisPartitioner.

◆ partitionMesh()

virtual void Controller::Partitioner::partitionMesh ( int  Nparts,
std::shared_ptr< PanNDE::Mesh global_mesh 
)
pure virtual

partition a mesh

Parameters
Npartsnumber of parts to decompose the mesh into
global_meshthe monolithic mesh to partition

Implemented in NetMPI::MetisPartitioner.


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