SCOREC core
Parallel unstructured mesh tools
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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,
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 
114 MeshTag* tagOpposites(GlobalNumbering* gn, const char* name);
115 
124 
125 }
126 
127 #endif
Use ParMetis.
Definition: apfZoltan.h:44
MeshTag * tagOpposites(GlobalNumbering *gn, const char *name)
Tag global ids of opposite elements to boundary faces.
NumberingOf< long > GlobalNumbering
Global numberings use 64-bit integers.
Definition: apfMesh.h:30
ZoltanMethod
Zoltan partitioning method.
Definition: apfZoltan.h:36
ZoltanApproach
Zoltan partitioning approach.
Definition: apfZoltan.h:50
Hyper-graph partitioning.
Definition: apfZoltan.h:42
General graph partitionig.
Definition: apfZoltan.h:46
Graph - targets partitions needing only small changes.
Definition: apfZoltan.h:66
(Hyper)Graph - considers the initial distribution
Definition: apfZoltan.h:54
Splitter * makeZoltanGlobalSplitter(Mesh *mesh, int method, int approach, bool debug=false)
Make a Zoltan Splitter object.
(Hyper)Graph - does not consider the initial distribution
Definition: apfZoltan.h:52
Graph - targets graphs generated from adaptively refined meshes.
Definition: apfZoltan.h:64
Graph - hybrid method combining PART_KWAY and PART_GEOM.
Definition: apfZoltan.h:62
Graph - space filling curves.
Definition: apfZoltan.h:60
Splitter * makeZoltanSplitter(Mesh *mesh, int method, int approach, bool debug=false, bool sync=true)
Make a Zoltan Splitter object.
Graph - multilevel.
Definition: apfZoltan.h:58
Interface to a mesh part.
Definition: apfMesh.h:103
Local and global numbering interface.
apf::Mesh2 Mesh
convenient mesh name
Definition: maMesh.h:27
Recursive Coordinate Bisection.
Definition: apfZoltan.h:38
int * getElementToElement(apf::Mesh *m)
Get an element-to-element connectivity array.
Balancer * makeZoltanBalancer(Mesh *mesh, int method, int approach, bool debug=false)
Make a Zoltan Balancer object.
(HYPER)Graph - targets partitions needing only small changes
Definition: apfZoltan.h:56
Recursive Inertial Bisection.
Definition: apfZoltan.h:40