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

Add cell is local to node field to dumpCells output

parent 2a97c713
No related branches found
No related tags found
1 merge request!458Add time based edge repartitioning
...@@ -304,21 +304,24 @@ static void dumpCells_map(struct cell *c, void *data) { ...@@ -304,21 +304,24 @@ static void dumpCells_map(struct cell *c, void *data) {
if (c->count > 0 || c->gcount > 0 || c->scount > 0) if (c->count > 0 || c->gcount > 0 || c->scount > 0)
fprintf(file, fprintf(file,
" %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f %6d %6d %6d %6d " " %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f %6d %6d %6d %6d "
"%6.1f %20lld %6d %6d %6d %6d\n", "%6.1f %20lld %6d %6d %6d %6d %6d\n",
c->loc[0], c->loc[1], c->loc[2], c->width[0], c->width[1], c->loc[0], c->loc[1], c->loc[2], c->width[0], c->width[1],
c->width[2], c->count, c->gcount, c->scount, c->depth, ntasks, c->width[2], c->count, c->gcount, c->scount, c->depth, ntasks,
c->ti_end_min, get_time_bin(c->ti_end_min), (c->super == c), c->ti_end_min, get_time_bin(c->ti_end_min), (c->super == c),
cell_is_active(c, e), c->nodeID); cell_is_active(c, e), c->nodeID, c->nodeID == e->nodeID);
} }
/** /**
* @brief Dump the location, depth, task counts and timebins and active state, * @brief Dump the location, depth, task counts and timebins and active state,
* for all cells to a simple text file. * for all cells to a simple text file.
* *
* @param prefix base output filename * @param prefix base output filename, result is written to
* <prefix>_<rank>_<step>.dat
* @param s the space holding the cells to dump. * @param s the space holding the cells to dump.
* @param rank node ID of MPI rank, or 0 if not relevant.
* @param step the current engine step, or some unique integer.
*/ */
void dumpCells(const char *prefix, struct space *s) { void dumpCells(const char *prefix, struct space *s, int rank, int step) {
FILE *file = NULL; FILE *file = NULL;
...@@ -327,15 +330,14 @@ void dumpCells(const char *prefix, struct space *s) { ...@@ -327,15 +330,14 @@ void dumpCells(const char *prefix, struct space *s) {
char fname[200]; char fname[200];
int uniq = atomic_inc(&nseq); int uniq = atomic_inc(&nseq);
sprintf(fname, "%s_%03d.dat", prefix, uniq); sprintf(fname, "%s_%03d.dat", prefix, uniq);
file = fopen(fname, "w"); file = fopen(fname, "w");
/* Header. */ /* Header. */
fprintf(file, fprintf(file,
"# %6s %6s %6s %6s %6s %6s %6s %6s %6s %6s %6s %6s " "# %6s %6s %6s %6s %6s %6s %6s %6s %6s %6s %6s %6s "
"%20s %6s %6s %6s\n", "%20s %6s %6s %6s %6s\n",
"x", "y", "z", "xw", "yw", "zw", "count", "gcount", "scount", "depth", "x", "y", "z", "xw", "yw", "zw", "count", "gcount", "scount", "depth",
"tasks", "ti_end_min", "timebin", "issuper", "active", "rank"); "tasks", "ti_end_min", "timebin", "issuper", "active", "rank", "local");
uintptr_t data[2]; uintptr_t data[2];
data[0] = (size_t)file; data[0] = (size_t)file;
......
...@@ -36,7 +36,7 @@ void printgParticle_single(struct gpart *gp); ...@@ -36,7 +36,7 @@ void printgParticle_single(struct gpart *gp);
int checkSpacehmax(struct space *s); int checkSpacehmax(struct space *s);
int checkCellhdxmax(const struct cell *c, int *depth); int checkCellhdxmax(const struct cell *c, int *depth);
void dumpCells(const char *prefix, struct space *s); void dumpCells(const char *prefix, struct space *s, int rank, int step);
#ifdef HAVE_METIS #ifdef HAVE_METIS
#include "metis.h" #include "metis.h"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment