Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef APF_ZOLTAN_H
00009 #define APF_ZOLTAN_H
00010
00031 #include <apfNumbering.h>
00032
00033 namespace apf {
00034
00036 enum ZoltanMethod {
00038 RCB,
00040 RIB,
00042 HYPERGRAPH,
00044 PARMETIS,
00046 GRAPH
00047 };
00048
00050 enum ZoltanApproach {
00052 PARTITION,
00054 REPARTITION,
00056 REFINE,
00058 PART_KWAY,
00060 PART_GEOM,
00062 PART_GEOM_KWAY,
00064 ADAPT_REPART,
00066 REFINE_KWAY
00067 };
00068
00069 class Mesh;
00070 class Splitter;
00071 class Balancer;
00072 class MeshTag;
00073
00083 Splitter* makeZoltanSplitter(Mesh* mesh, int method, int approach,
00084 bool debug = true, bool sync = true);
00085
00093 Splitter* makeZoltanGlobalSplitter(Mesh* mesh, int method, int approach,
00094 bool debug = true);
00095
00105 Balancer* makeZoltanBalancer(Mesh* mesh, int method, int approach,
00106 bool debug = true);
00107
00114 MeshTag* tagOpposites(GlobalNumbering* gn, const char* name);
00115
00123 int* getElementToElement(apf::Mesh* m);
00124
00125 }
00126
00127 #endif