diff --git a/src/runner_doiact_grav.h b/src/runner_doiact_grav.h index 6cbec7e3687cd405f778b153e1711d6bcd92610f..881847df92eae228b3c6cae9474b96a47549c0a6 100644 --- a/src/runner_doiact_grav.h +++ b/src/runner_doiact_grav.h @@ -935,6 +935,7 @@ void runner_dopair_grav(struct runner *r, struct cell *ci, struct cell *cj, /* Some constants */ const struct engine *e = r->e; const struct space *s = e->s; + const int nodeID = e->nodeID; const int periodic = s->periodic; const double cell_width = s->width[0]; const double dim[3] = {s->dim[0], s->dim[1], s->dim[2]}; @@ -943,6 +944,11 @@ void runner_dopair_grav(struct runner *r, struct cell *ci, struct cell *cj, const double max_distance = props->a_smooth * props->r_cut_max * cell_width; const double max_distance2 = max_distance * max_distance; + /* Anything to do here? */ + if(!((cell_is_active(ci,e) && ci->nodeID == nodeID) || + (cell_is_active(cj,e) && cj->nodeID == nodeID))) + return; + #ifdef SWIFT_DEBUG_CHECKS const int gcount_i = ci->gcount; @@ -963,9 +969,6 @@ void runner_dopair_grav(struct runner *r, struct cell *ci, struct cell *cj, TIMER_TIC; - /* Anything to do here? */ - if (!cell_is_active(ci, e) && !cell_is_active(cj, e)) return; - /* Recover the multipole information */ struct gravity_tensors *const multi_i = ci->multipole; struct gravity_tensors *const multi_j = cj->multipole;