10 #ifdef HECMW_WITH_METIS
19 int *num_graph1,
int *num_graph2,
int *num_separator) {
20 #ifdef HECMW_WITH_METIS
22 int num_of_row, num_of_col, num_of_nzero;
28 num_of_nzero = *nttbr;
33 fprintf(stderr,
"Start transforming matrix to graph\n");
34 matrix2graph(num_of_row, num_of_col, num_of_nzero, irow, jcol, graph);
37 "---------------------------------------------------\n");
38 fprintf(stderr,
"#Vertices: %d, #Edges: %d\n\n", graph->
nvtxs,
40 perm = (
int *)calloc(num_of_col,
sizeof(
int));
41 iperm = (
int *)calloc(num_of_col,
sizeof(
int));
42 if ((perm ==
NULL) || (iperm ==
NULL))
45 #if defined(METIS_VER_MAJOR) && (METIS_VER_MAJOR == 5)
48 METIS_SetDefaultOptions(
options);
49 options[METIS_OPTION_COMPRESS] = 0;
81 "Error: Direct Parallel Solver not available. Please install Metis.\n");
89 int *num_graph1,
int *num_graph2,
int *num_separator) {
95 int *num_graph1,
int *num_graph2,
int *num_separator) {
101 int *num_graph1,
int *num_graph2,
int *num_separator) {
HECMW_Comm HECMW_comm_get_comm(void)
void HECMW_abort(HECMW_Comm comm)
struct option_rec options[]
specify command line option name and executing function name.
void matrix2graph(int num_of_row, int num_of_col, int num_of_nzero, int *irow, int *jcol, graph_type *graph)
Separator_result * separator
void bi_part_directive__(int *neqns, int *nttbr, int *irow, int *jcol, int *num_graph1, int *num_graph2, int *num_separator)
void bi_part_directive(int *neqns, int *nttbr, int *irow, int *jcol, int *num_graph1, int *num_graph2, int *num_separator)
void bi_part_directive_(int *neqns, int *nttbr, int *irow, int *jcol, int *num_graph1, int *num_graph2, int *num_separator)
void BI_PART_DIRECTIVE(int *neqns, int *nttbr, int *irow, int *jcol, int *num_graph1, int *num_graph2, int *num_separator)
void separator_memory_exit(char *var)