Skip to content
Snippets Groups Projects
Commit 1960b4d1 authored by Peter W. Draper's avatar Peter W. Draper
Browse files

Add simple function to dump the positions and ranks of the top-level cells

Useful to visualize the partition
parent 9c319e94
No related branches found
No related tags found
No related merge requests found
......@@ -331,4 +331,48 @@ void dumpMETISGraph(const char *prefix, idx_t nvertices, idx_t nvertexweights,
}
}
#endif
#endif /* HAVE_METIS */
#ifdef HAVE_MPI
/**
* @brief Dump the positions and MPI ranks of the given top-level cells
* to a simple text file.
*
* Can be used to visualise the partitioning of an MPI run. Note should
* be used immediately after repartitioning when the top-level cells
* have been assigned their nodes. Each time this is called a new file
* with the given prefix, a unique integer and type of .dat is created.
*
* @param prefix base output filename
* @param cells_top the top-level cells.
* @param nr_cells the number of cells.
*/
void dumpCellRanks(const char *prefix, struct cell *cells_top,
int nr_cells) {
FILE *file = NULL;
/* Name of output file. */
static int nseq = 0;
char fname[200];
sprintf(fname, "%s_%03d.dat", prefix, nseq);
nseq++;
file = fopen(fname, "w");
/* Header. */
fprintf(file, "# %6s %6s %6s %6s %6s %6s %6s\n",
"x", "y", "z", "xw", "yw", "zw", "rank");
/* Output */
for (int i = 0; i < nr_cells; i++) {
struct cell *c = &cells_top[i];
fprintf(file, " %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f %6d\n",
c->loc[0], c->loc[1], c->loc[2], c->width[0],
c->width[1], c->width[2], c->nodeID);
}
fclose(file);
}
#endif /* HAVE_MPI */
......@@ -37,6 +37,11 @@ int checkSpacehmax(struct space *s);
#include "metis.h"
void dumpMETISGraph(const char *prefix, idx_t nvtxs, idx_t ncon, idx_t *xadj,
idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt);
#endif
#ifdef HAVE_MPI
void dumpCellRanks(const char *prefix, struct cell *cells_top,
int nr_cells);
#endif
#endif /* SWIFT_DEBUG_H */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment