Skip to content
Snippets Groups Projects
Commit 7e8d5d0b authored by Matthieu Schaller's avatar Matthieu Schaller
Browse files

Do not recurse in the gravity pairs if the active cell is foreign.

parent 1ef92d72
No related branches found
No related tags found
1 merge request!433Correct wrapping of multipoles in FFT task
...@@ -935,6 +935,7 @@ void runner_dopair_grav(struct runner *r, struct cell *ci, struct cell *cj, ...@@ -935,6 +935,7 @@ void runner_dopair_grav(struct runner *r, struct cell *ci, struct cell *cj,
/* Some constants */ /* Some constants */
const struct engine *e = r->e; const struct engine *e = r->e;
const struct space *s = e->s; const struct space *s = e->s;
const int nodeID = e->nodeID;
const int periodic = s->periodic; const int periodic = s->periodic;
const double cell_width = s->width[0]; const double cell_width = s->width[0];
const double dim[3] = {s->dim[0], s->dim[1], s->dim[2]}; 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, ...@@ -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_distance = props->a_smooth * props->r_cut_max * cell_width;
const double max_distance2 = max_distance * max_distance; 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 #ifdef SWIFT_DEBUG_CHECKS
const int gcount_i = ci->gcount; const int gcount_i = ci->gcount;
...@@ -963,9 +969,6 @@ void runner_dopair_grav(struct runner *r, struct cell *ci, struct cell *cj, ...@@ -963,9 +969,6 @@ void runner_dopair_grav(struct runner *r, struct cell *ci, struct cell *cj,
TIMER_TIC; TIMER_TIC;
/* Anything to do here? */
if (!cell_is_active(ci, e) && !cell_is_active(cj, e)) return;
/* Recover the multipole information */ /* Recover the multipole information */
struct gravity_tensors *const multi_i = ci->multipole; struct gravity_tensors *const multi_i = ci->multipole;
struct gravity_tensors *const multi_j = cj->multipole; struct gravity_tensors *const multi_j = cj->multipole;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment