diff --git a/src/map.c b/src/map.c index dcaa53465767d414cc54fe05940069ae5ff06d77..4766f070dec163fd8ac00871c07635ff315f97be 100644 --- a/src/map.c +++ b/src/map.c @@ -96,14 +96,12 @@ void map_cells_plot(struct cell *c, void *data) { void map_cellcheck(struct cell *c, void *data) { - int k, *count = (int *)data; - struct part *p; - + int *count = (int *)data; __sync_fetch_and_add(count, c->count); /* Loop over all parts and check if they are in the cell. */ - for (k = 0; k < c->count; k++) { - p = &c->parts[k]; + for (int k = 0; k < c->count; k++) { + struct part *p = &c->parts[k]; if (p->x[0] < c->loc[0] || p->x[1] < c->loc[1] || p->x[2] < c->loc[2] || p->x[0] > c->loc[0] + c->h[0] || p->x[1] > c->loc[1] + c->h[1] || p->x[2] > c->loc[2] + c->h[2]) { @@ -115,6 +113,22 @@ void map_cellcheck(struct cell *c, void *data) { error("particle out of bounds!"); } } + + /* Loop over all gparts and check if they are in the cell. */ + for (int k = 0; k < c->gcount; k++) { + struct gpart *p = &c->gparts[k]; + if (p->x[0] < c->loc[0] || p->x[1] < c->loc[1] || p->x[2] < c->loc[2] || + p->x[0] > c->loc[0] + c->h[0] || p->x[1] > c->loc[1] + c->h[1] || + p->x[2] > c->loc[2] + c->h[2]) { + printf( + "map_cellcheck: g-particle at [ %.16e %.16e %.16e ] outside of cell [ " + "%.16e %.16e %.16e ] - [ %.16e %.16e %.16e ].\n", + p->x[0], p->x[1], p->x[2], c->loc[0], c->loc[1], c->loc[2], + c->loc[0] + c->h[0], c->loc[1] + c->h[1], c->loc[2] + c->h[2]); + error("g-particle out of bounds!"); + } + } + } /**