INMOST
Mathematical Modelling Toolkit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
inmost_partitioner.h
Go to the documentation of this file.
1 
2 #ifndef INMOST_PARTITIONER_H_INCLUDED
3 #define INMOST_PARTITIONER_H_INCLUDED
4 #include "inmost.h"
5 
6 #if defined(USE_PARTITIONER) && !defined(USE_MESH)
7 #warning "USE_PARTITIONER require USE_MESH"
8 #undef USE_PARTITIONER
9 #endif
10 
11 
12 #if defined(USE_PARTITIONER)
13 
14 namespace INMOST
15 {
18  {
19  public:
23  enum Type
24  {
33  };
34  enum Action
35  {
39  };
40  private:
41  enum Type pt;
42  enum Action pa;
43  void * pzz;
44  Tag weight_tag;
45  Mesh * m;
46  public:
53  static void Initialize(int * argc, char *** argv);
56  static void Finalize();
58  Partitioner(Mesh * m);
59  Partitioner(const Partitioner & other);
60  Partitioner & operator =(Partitioner const & other);
61  ~Partitioner();
64  void Evaluate();
69  void SetMethod(enum Type t, enum Action a = Repartition);
71  void SetWeight(Tag weight);
73  void ResetWeight();
74 
76  Mesh * GetMesh();
78  Tag GetWeight();
79  };
80 }
81 #endif //USE_PARTITIONER
82 
83 
84 #endif //INMOST_PARTITIONER_H_INCLUDED
Partitioner(Mesh *m)
The default constructor of the partitioner for the specified mesh.
Repartition the existing partition but try to stay close to the current mesh distribution.
Refine the current partition assuming only small changes of mesh distribution.
Zoltan geometry-based method using Recursive Inertial Bisection.
Mesh * GetMesh()
Get the Mesh pointer for the current partitioner.
Parmetis partitioner with the Zoltan package interface.
Partition "from scratch", not taking into account the current mesh distribution.
void ResetWeight()
Reset the computed weights for the partitioner.
static void Finalize()
Main class to modify or improve the mesh distribution for better load balancing.
static void Initialize(int *argc, char ***argv)
Zoltan geometry-based method using Recursive Coordinate Bisection.
void SetMethod(enum Type t, enum Action a=Repartition)
void SetWeight(Tag weight)
Compute the specific weights for the selected partitioner.
Scotch partitioner with the Zoltan package interface.
Internal serial only partitioner based on the Reverse Cuthill–McKee algorithm ordering.
Zoltan geometry-based method using Hilbert Space-Filling Curve partitioning.
Zoltan topology-based method using Partitioning of HyperGraph.
Partitioner & operator=(Partitioner const &other)
Parmetis partitioner with the original interface.
Tag GetWeight()
Get the Tag of the computed weights for the current partitioner.
This class provides the access to the individual mesh datum and general information about it...
Definition: inmost_data.h:185