From 947b01e955a2319c9cc5113b37e119e3f8f420b5 Mon Sep 17 00:00:00 2001 From: Matthieu Schaller <schaller@strw.leidenuniv.nl> Date: Fri, 22 Oct 2021 23:57:11 +0200 Subject: [PATCH] Additional concistency checks in the hydro and limiter loops --- src/runner_doiact_functions_hydro.h | 18 ++++++++++++++++++ src/runner_doiact_functions_limiter.h | 9 +++++++++ 2 files changed, 27 insertions(+) diff --git a/src/runner_doiact_functions_hydro.h b/src/runner_doiact_functions_hydro.h index 30423d3956..1aaf13a2c3 100644 --- a/src/runner_doiact_functions_hydro.h +++ b/src/runner_doiact_functions_hydro.h @@ -1337,6 +1337,15 @@ void DOPAIR1_BRANCH(struct runner *r, struct cell *ci, struct cell *cj, double shift[3] = {0.0, 0.0, 0.0}; const int sid = space_getsid(e->s, &ci, &cj, shift); + /* Have the cells been sorted? */ + if (!(ci->hydro.sorted & (1 << sid)) || + ci->hydro.dx_max_sort_old > space_maxreldx * ci->dmin) + error("Interacting unsorted cells (ci)."); + + if (!(cj->hydro.sorted & (1 << sid)) || + cj->hydro.dx_max_sort_old > space_maxreldx * cj->dmin) + error("Interacting unsorted cells (cj)."); + #if defined(SWIFT_USE_NAIVE_INTERACTIONS) DOPAIR1_NAIVE(r, ci, cj, limit_min_h, limit_max_h); #elif defined(WITH_VECTORIZATION) && defined(GADGET2_SPH) && \ @@ -1927,6 +1936,15 @@ void DOPAIR2_BRANCH(struct runner *r, struct cell *ci, struct cell *cj, double shift[3] = {0.0, 0.0, 0.0}; const int sid = space_getsid(e->s, &ci, &cj, shift); + /* Have the cells been sorted? */ + if (!(ci->hydro.sorted & (1 << sid)) || + ci->hydro.dx_max_sort_old > space_maxreldx * ci->dmin) + error("Interacting unsorted cells (ci)."); + + if (!(cj->hydro.sorted & (1 << sid)) || + cj->hydro.dx_max_sort_old > space_maxreldx * cj->dmin) + error("Interacting unsorted cells (cj)."); + #ifdef SWIFT_USE_NAIVE_INTERACTIONS DOPAIR2_NAIVE(r, ci, cj, limit_min_h, limit_max_h); #elif defined(WITH_VECTORIZATION) && defined(GADGET2_SPH) && \ diff --git a/src/runner_doiact_functions_limiter.h b/src/runner_doiact_functions_limiter.h index 1975f318c3..0fd7710d6f 100644 --- a/src/runner_doiact_functions_limiter.h +++ b/src/runner_doiact_functions_limiter.h @@ -516,6 +516,15 @@ void DOPAIR1_BRANCH(struct runner *r, struct cell *ci, struct cell *cj, double shift[3] = {0.0, 0.0, 0.0}; const int sid = space_getsid(e->s, &ci, &cj, shift); + /* Have the cells been sorted? */ + if (!(ci->hydro.sorted & (1 << sid)) || + ci->hydro.dx_max_sort_old > space_maxreldx * ci->dmin) + error("Interacting unsorted cells (ci)."); + + if (!(cj->hydro.sorted & (1 << sid)) || + cj->hydro.dx_max_sort_old > space_maxreldx * cj->dmin) + error("Interacting unsorted cells (cj)."); + #if defined(SWIFT_USE_NAIVE_INTERACTIONS) DOPAIR1_NAIVE(r, ci, cj, limit_min_h, limit_max_h); #else -- GitLab