22 #ifndef ZOLTANPARTITIONER_HPP
23 #define ZOLTANPARTITIONER_HPP
27 #include "zoltan_cpp.h"
70 ZOLTAN_ID_PTR nborGlobalIds,
100 using namespace moab;
110 const bool use_coords =
false,
112 char** argv = NULL );
116 ErrorCode balance_mesh(
const char* zmethod,
117 const char* other_method,
118 const bool write_as_sets =
true,
119 const bool write_as_tags =
false );
121 virtual ErrorCode partition_mesh_and_geometry(
const double part_geom_mesh_size,
124 const char* other_method,
126 const int part_dim = 3,
127 const bool write_as_sets =
true,
128 const bool write_as_tags =
false,
129 const int obj_weight = 0,
130 const int edge_weight = 0,
131 const int projection_type = 0,
132 const bool recompute_rcb_box =
false,
137 const int part_dim = 3,
138 const bool write_as_sets =
true,
139 const bool write_as_tags =
false,
140 const bool partition_tagged_sets =
false,
141 const bool partition_tagged_ents =
false,
142 const char* aggregating_tag = NULL,
150 const bool write_as_sets =
true,
151 int projection_type = 0 );
157 const int* assignment,
158 const bool write_as_sets,
159 const bool write_as_tags );
162 ErrorCode repartition( std::vector< double >& x,
163 std::vector< double >& y,
164 std::vector< double >& z,
169 ErrorCode repartition_to_procs( std::vector< double >& x,
170 std::vector< double >& y,
171 std::vector< double >& z,
172 std::vector< int >& gids,
174 std::vector< int >& dest );
180 std::multimap< int, int >& extraGraphEdges,
181 std::map< int, int > procs,
182 int& numNewPartitions,
183 std::map< int, Range >& distribution,
191 void SetOCTPART_Parameters(
const char* oct_method );
193 void SetPARMETIS_Parameters(
const char* parmetis_method );
195 void SetHypergraph_Parameters(
const char* phg_method );
197 void SetHSFC_Parameters();
199 void SetRIB_Parameters();
201 void SetRCB_Parameters(
const bool recompute_rcb_box =
false );
214 int mbGlobalSuccess(
int rc );
222 ErrorCode assemble_graph(
const int dimension,
223 std::vector< double >& coords,
224 std::vector< int >& moab_ids,
225 std::vector< int >& adjacencies,
226 std::vector< int >&
length,
228 bool part_geom =
false,
229 const int projection_type = 0 );
231 void mbFinalizePoints(
int npts,
int numExport, ZOLTAN_ID_PTR exportLocalIDs,
int* exportProcs,
int** assignment );
233 int mbInitializePoints(
int npts,
238 double* obj_weights = NULL,
239 double* edge_weights = NULL,
241 bool part_geom =
false );
247 const bool write_as_sets,
248 const bool write_as_tags,
254 return partition_mesh_and_geometry( -1.0,
nparts, method, NULL, 1.03, part_dim, write_as_sets, write_as_tags, 0, 0,