SCOREC core
Parallel unstructured mesh tools
apfZoltan.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 Scientific Computation Research Center
3  *
4  * This work is open source software, licensed under the terms of the
5  * BSD license as described in the LICENSE file in the top-level directory.
6  */
7 
8 #ifndef APF_ZOLTAN_H
9 #define APF_ZOLTAN_H
10 
31 #include <apfNumbering.h>
32 
33 namespace apf {
34 
38  RCB,
40  RIB,
46  GRAPH
47 };
48 
67 };
68 
69 class Mesh;
70 class Splitter;
71 class Balancer;
72 class MeshTag;
73 
83 Splitter* makeZoltanSplitter(Mesh* mesh, int method, int approach,
84  bool debug = false, bool sync = true);
85 
93 Splitter* makeZoltanGlobalSplitter(Mesh* mesh, int method, int approach,
94  bool debug = false);
95 
105 Balancer* makeZoltanBalancer(Mesh* mesh, int method, int approach,
106  bool debug = false);
107 
116 
117 }
118 
119 #endif
Local and global numbering interface.
Load balance over all mesh parts.
Definition: apfPartition.h:47
Interface to a mesh part.
Definition: apfMesh.h:105
Splits a mesh part into many.
Definition: apfPartition.h:22
All APF symbols are contained in this namespace.
Balancer * makeZoltanBalancer(Mesh *mesh, int method, int approach, bool debug=false)
Make a Zoltan Balancer object.
ZoltanMethod
Zoltan partitioning method.
Definition: apfZoltan.h:36
@ RCB
Recursive Coordinate Bisection.
Definition: apfZoltan.h:38
@ RIB
Recursive Inertial Bisection.
Definition: apfZoltan.h:40
@ GRAPH
General graph partitionig.
Definition: apfZoltan.h:46
@ PARMETIS
Use ParMetis.
Definition: apfZoltan.h:44
@ HYPERGRAPH
Hyper-graph partitioning.
Definition: apfZoltan.h:42
ZoltanApproach
Zoltan partitioning approach.
Definition: apfZoltan.h:50
@ PART_GEOM_KWAY
Graph - hybrid method combining PART_KWAY and PART_GEOM.
Definition: apfZoltan.h:62
@ PART_GEOM
Graph - space filling curves.
Definition: apfZoltan.h:60
@ REPARTITION
(Hyper)Graph - considers the initial distribution
Definition: apfZoltan.h:54
@ REFINE_KWAY
Graph - targets partitions needing only small changes.
Definition: apfZoltan.h:66
@ PARTITION
(Hyper)Graph - does not consider the initial distribution
Definition: apfZoltan.h:52
@ REFINE
(HYPER)Graph - targets partitions needing only small changes
Definition: apfZoltan.h:56
@ ADAPT_REPART
Graph - targets graphs generated from adaptively refined meshes.
Definition: apfZoltan.h:64
@ PART_KWAY
Graph - multilevel.
Definition: apfZoltan.h:58
int * getElementToElement(apf::Mesh *m)
Get an element-to-element connectivity array.
Splitter * makeZoltanGlobalSplitter(Mesh *mesh, int method, int approach, bool debug=false)
Make a Zoltan Splitter object.
Splitter * makeZoltanSplitter(Mesh *mesh, int method, int approach, bool debug=false, bool sync=true)
Make a Zoltan Splitter object.
apf::Mesh2 Mesh
convenient mesh name
Definition: maMesh.h:27