19 #include "order_internal.h"
57 pastix_graph_t *graph = pastix_data->graph;
59 pastix_int_t ibeg, iend, size;
63 assert( graph != NULL );
64 assert( order != NULL );
65 assert( order->
sndetab != NULL );
68 iend = order->
sndetab[sndeidx+1];
78 if ( dump & orderDrawGraph ) {
79 SCOTCH_Graph sn_sgraph;
80 pastix_graph_t sn_pgraph;
81 pastix_int_t *sn_colptr;
82 pastix_int_t *sn_rows;
93 sn_colptr = sn_pgraph.colptr;
94 sn_rows = sn_pgraph.rowptr;
96 if ( !SCOTCH_graphInit(&sn_sgraph) )
98 SCOTCH_graphBuild( &sn_sgraph,
105 sn_colptr[ size ] - order->
baseval,
111 fprintf( stderr,
"Failed to build graph\n" );
115 rc = asprintf( &fname,
"part.%ld.grf", (
long)sndeidx);
119 SCOTCH_graphSave( &sn_sgraph, file );
123 fprintf(stderr,
"Check: %d\n", SCOTCH_graphCheck( &sn_sgraph ));
131 if ( dump & orderDrawCoordinates )
136 filein = fopen(
"before.xyz",
"r" );
137 if ( filein == NULL ) {
138 fprintf( stderr,
"Please give before.xyz file\n" );
143 rc = fscanf( filein,
"%ld %ld", &dim, &n );
145 fprintf(stderr,
"Cannot proceed part.xyz and part.map files: invalid number of vertices in before.xyz\n");
150 rc = asprintf( &fname,
"part.%ld.xyz", (
long)sndeidx);
155 fprintf( file,
"%ld %ld\n", (
long)dim, (
long)size );
156 for(i=0; i<order->
vertnbr; i++) {
160 rc = fscanf(filein,
"%ld %lf %lf %lf", &v, &x, &y, &z );
165 if ( (iv >= ibeg) && (iv < iend) ) {
166 fprintf( file,
"%ld %lf %lf %lf\n",
167 (
long)(iv - ibeg), x, y, z );
178 if ( dump & orderDrawMapping )
180 pastix_int_t color = 0;
183 rc = asprintf( &fname,
"part.%ld.%s.map",
184 (
long)sndeidx, extname );
187 rc = asprintf( &fname,
"part.%ld.map",
194 fprintf( file,
"%ld\n", (
long)size );
203 while ( (i > 0) && (order->
rangtab[i] > iend) ) {
209 pastix_int_t fnode = order->
rangtab[i];
210 pastix_int_t lnode = order->
rangtab[i+1];
212 if ( fnode < ibeg ) {
213 assert( lnode <= ibeg );
217 for (j=fnode; j<lnode; j++) {
218 fprintf( file,
"%ld %ld\n",
219 (
long)(j - ibeg), (
long)color );