13 #ifndef MTMETIS_CTRL_H 14 #define MTMETIS_CTRL_H 32 dl_timer_t preprocess;
33 dl_timer_t postprocess;
36 dl_timer_t partitioning;
37 dl_timer_t coarsening;
39 dl_timer_t contraction;
41 dl_timer_t uncoarsening;
42 dl_timer_t projection;
43 dl_timer_t refinement;
80 size_t ninitsolutions;
99 #define ctrl_create MTMETIS_ctrl_create 108 #define ctrl_setup MTMETIS_ctrl_setup 124 #define ctrl_parse MTMETIS_ctrl_parse 134 double const * options,
138 #define ctrl_free MTMETIS_ctrl_free 148 #define ctrl_combine_timers MTMETIS_ctrl_combine_timers 160 #define ser_ctrl_split MTMETIS_ser_ctrl_split 171 vtx_type
const * hnvtxs,
175 #define ser_ctrl_rb MTMETIS_ser_ctrl_rb 188 pid_type
const * offset);
198 #define par_ctrl_split MTMETIS_par_ctrl_split 213 dlthread_comm_t comm);
216 #define par_ctrl_free MTMETIS_par_ctrl_free 226 #define par_ctrl_parse MTMETIS_par_ctrl_parse 237 double const * options,
239 dlthread_comm_t comm);
242 #define par_ctrl_setup MTMETIS_par_ctrl_setup 256 #define par_ctrl_rb MTMETIS_par_ctrl_rb 269 pid_type
const * offset);
278 char const * trans_ptype_string(
279 mtmetis_ptype_t type);
282 char const * trans_ctype_string(
283 mtmetis_ctype_t type);
286 char const * trans_contype_string(
287 mtmetis_contype_t type);
290 char const * trans_rtype_string(
291 mtmetis_rtype_t type);
294 char const * trans_verbosity_string(
295 mtmetis_verbosity_t type);
298 char const * trans_dtype_string(
299 mtmetis_dtype_t type);
302 mtmetis_ptype_t trans_string_ptype(
306 mtmetis_ctype_t trans_string_ctype(
310 mtmetis_contype_t trans_string_contype(
314 mtmetis_rtype_t trans_string_rtype(
318 mtmetis_verbosity_t trans_string_verbosity(
322 mtmetis_dtype_t trans_string_dtype(
void par_ctrl_free(ctrl_type *ctrl)
Free a control structure and its associated memory.
Definition: ctrl.c:562
ctrl_type * ctrl_create(void)
Allocate and initialize a control structure.
Definition: ctrl.c:167
ctrl_type * ser_ctrl_rb(ctrl_type *ctrl, pid_type const *offset)
Create a new control for creating an edge separator.
Definition: ctrl.c:517
void ctrl_combine_timers(ctrl_type *ctrl, ctrl_type const *ctrl2)
Combine the times of the two timers into the first.
Definition: ctrl.c:458
int ctrl_parse(double const *options, ctrl_type **ctrl)
Create a control structure using the specified set of options.
Definition: ctrl.c:260
ctrl_type * par_ctrl_rb(ctrl_type *ctrl, pid_type const *offset)
Create a new control for creating an edge separator.
Definition: ctrl.c:664
void par_ctrl_setup(ctrl_type *ctrl, real_type *tpwgts, vtx_type nvtxs)
Setup a control structure in parallel.
Definition: ctrl.c:651
int par_ctrl_parse(double const *options, ctrl_type **r_ctrl, dlthread_comm_t comm)
Parse a control structure options in parallel.
Definition: ctrl.c:617
void ctrl_setup(ctrl_type *ctrl, real_type *tpwgts, vtx_type nvtxs)
Setup a control structure to partition a graph with a specified number of vertices. The structure should already be configured with nthreads and nparts.
Definition: ctrl.c:204
void ser_ctrl_split(ctrl_type const *ctrl, vtx_type const *hnvtxs, ctrl_type **hctrls)
Split the control structure serially for recursive bisection or nested dissection.
Definition: ctrl.c:480
ctrl_type * par_ctrl_split(ctrl_type const *ctrl, vtx_type nvtxs, pid_type nparts, dlthread_comm_t comm)
Duplicate a control structure.
Definition: ctrl.c:575
void ctrl_free(ctrl_type *ctrl)
Free a control structure and its associated memory.
Definition: ctrl.c:442