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,
117 ErrorCode balance_mesh(
const char* zmethod,
118 const char* other_method,
119 const bool write_as_sets =
true,
120 const bool write_as_tags =
false );
122 virtual ErrorCode partition_mesh_and_geometry(
const double part_geom_mesh_size,
125 const char* other_method,
127 const int part_dim = 3,
128 const bool write_as_sets =
true,
129 const bool write_as_tags =
false,
130 const int obj_weight = 0,
131 const int edge_weight = 0,
132 const int projection_type = 0,
133 const bool recompute_rcb_box =
false,
138 const int part_dim = 3,
139 const bool write_as_sets =
true,
140 const bool write_as_tags =
false,
141 const bool partition_tagged_sets =
false,
142 const bool partition_tagged_ents =
false,
143 const char* aggregating_tag = NULL,
151 const bool write_as_sets =
true,
152 int projection_type = 0 );
158 const int* assignment,
159 const bool write_as_sets,
160 const bool write_as_tags );
163 ErrorCode repartition( std::vector< double >& x,
164 std::vector< double >& y,
165 std::vector< double >& z,
170 ErrorCode repartition_to_procs( std::vector< double >& x,
171 std::vector< double >& y,
172 std::vector< double >& z,
173 std::vector< int >& gids,
175 std::vector< int >& dest );
181 std::multimap< int, int >& extraGraphEdges,
182 std::map< int, int > procs,
183 int& numNewPartitions,
184 std::map< int, Range >& distribution,
192 void SetOCTPART_Parameters(
const char* oct_method );
194 void SetPARMETIS_Parameters(
const char* parmetis_method );
196 void SetHypergraph_Parameters(
const char* phg_method );
198 void SetHSFC_Parameters();
200 void SetRIB_Parameters();
202 void SetRCB_Parameters(
const bool recompute_rcb_box =
false );
215 int mbGlobalSuccess(
int rc );
223 ErrorCode assemble_graph(
const int dimension,
224 std::vector< double >& coords,
225 std::vector< int >& moab_ids,
226 std::vector< int >& adjacencies,
227 std::vector< int >&
length,
229 bool part_geom =
false,
230 const int projection_type = 0 );
232 void mbFinalizePoints(
int npts,
int numExport, ZOLTAN_ID_PTR exportLocalIDs,
int* exportProcs,
int** assignment );
234 int mbInitializePoints(
int npts,
239 double* obj_weights = NULL,
240 double* edge_weights = NULL,
242 bool part_geom =
false );
249 const bool write_as_sets,
250 const bool write_as_tags,
256 return partition_mesh_and_geometry( -1.0,
nparts, method, NULL, 1.03, part_dim, write_as_sets, write_as_tags, 0, 0,