20 #include "order/order_internal.h"
61 pastix_graph_t *graph )
67 idx_t opt[METIS_NOPTIONS];
71 pastix_print_error(
"Inconsistent integer type between PaStiX and Metis\n" );
76 METIS_SetDefaultOptions(opt);
89 opt[METIS_OPTION_NUMBERING] = baseval;
96 pastix_print_error(
"orderComputeMetis: Error during odering initialization\n" );
100 rc = METIS_NodeND( &n, graph->colptr, graph->rowptr, NULL,
103 assert( n == graph->n );
106 pastix_print_error(
"orderComputeMetis: Invalid code returned by METIS_NodeND (%d)\n", rc );
110 #if defined(PASTIX_DEBUG_ORDERING)
114 assert( ordemesh->
permtab[i] >= baseval );
115 assert( ordemesh->
permtab[i] < (n+baseval) );
116 assert( ordemesh->
peritab[i] >= baseval );
117 assert( ordemesh->
peritab[i] < (n+baseval) );
BEGIN_C_DECLS typedef int pastix_int_t
@ PASTIX_ERR_INTEGER_TYPE
int pastixOrderAlloc(pastix_order_t *ordeptr, pastix_int_t vertnbr, pastix_int_t cblknbr)
Allocate the order structure.
int orderComputeMetis(pastix_data_t *pastix_data, pastix_graph_t *graph)
Compute the ordering of the graph given as parameter with Metis library.
pastix_order_t * ordemesh
Main PaStiX data structure.