Skip to content
Snippets Groups Projects
Commit d29eb446 authored by Pedro Gonnet's avatar Pedro Gonnet
Browse files

do not re-sort when doing subset interactions as cj is not locked.

parent 7ad41c62
Branches
Tags
1 merge request!327Rebuild criteria
...@@ -461,7 +461,7 @@ void DOPAIR_SUBSET_NAIVE(struct runner *r, struct cell *restrict ci, ...@@ -461,7 +461,7 @@ void DOPAIR_SUBSET_NAIVE(struct runner *r, struct cell *restrict ci,
struct engine *e = r->e; struct engine *e = r->e;
error("Don't use in actual runs ! Slow code !"); // error("Don't use in actual runs ! Slow code !");
#ifdef WITH_OLD_VECTORIZATION #ifdef WITH_OLD_VECTORIZATION
int icount = 0; int icount = 0;
...@@ -3165,13 +3165,14 @@ void DOSUB_SUBSET(struct runner *r, struct cell *ci, struct part *parts, ...@@ -3165,13 +3165,14 @@ void DOSUB_SUBSET(struct runner *r, struct cell *ci, struct part *parts,
: (cj->loc[k] - ci->loc[k] + shift[k] > 0) ? 2 : 1); : (cj->loc[k] - ci->loc[k] + shift[k] > 0) ? 2 : 1);
new_sid = sortlistID[new_sid]; new_sid = sortlistID[new_sid];
/* Do any of the cells need to be drifted or sorted first? */ /* Do any of the cells need to be drifted first? */
if (!cell_is_drifted(cj, e)) cell_drift_particles(cj, e); if (!cell_is_drifted(cj, e)) cell_drift_particles(cj, e);
if (!(cj->sorted & (1 << new_sid)))
runner_do_sort(r, cj, (1 << new_sid), 1);
/* Compute the interactions. */ /* If the cell is not sorted, don't re-generate the sort indices. */
DOPAIR_SUBSET(r, ci, parts, ind, count, cj); if (!(cj->sorted & (1 << new_sid)))
DOPAIR_SUBSET_NAIVE(r, ci, parts, ind, count, cj);
else
DOPAIR_SUBSET(r, ci, parts, ind, count, cj);
} }
} /* otherwise, pair interaction. */ } /* otherwise, pair interaction. */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment