From e6f99a0662ebf7f11f26a961e9cf467198b4988e Mon Sep 17 00:00:00 2001 From: Matthieu Schaller <schaller@strw.leidenuniv.nl> Date: Sun, 11 Nov 2018 16:21:36 +0100 Subject: [PATCH] Added debugging check to prevent inhibited/not-created particles in interactions. --- src/hydro/Gadget2/hydro_iact.h | 28 ++++++++++++++++++++++++++++ src/hydro/Minimal/hydro_iact.h | 16 ++++++++-------- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/src/hydro/Gadget2/hydro_iact.h b/src/hydro/Gadget2/hydro_iact.h index 746fd47785..a3c5e21dbd 100644 --- a/src/hydro/Gadget2/hydro_iact.h +++ b/src/hydro/Gadget2/hydro_iact.h @@ -55,6 +55,13 @@ __attribute__((always_inline)) INLINE static void runner_iact_density( float wj, wj_dx; float dv[3], curlvr[3]; +#ifdef SWIFT_DEBUG_CHECKS + if (pi->time_bin >= time_bin_inhibited) + error("Inhibited pi in interaction function!"); + if (pj->time_bin >= time_bin_inhibited) + error("Inhibited pj in interaction function!"); +#endif + /* Get the masses. */ const float mi = pi->mass; const float mj = pj->mass; @@ -145,6 +152,13 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_density( float wi, wi_dx; float dv[3], curlvr[3]; +#ifdef SWIFT_DEBUG_CHECKS + if (pi->time_bin >= time_bin_inhibited) + error("Inhibited pi in interaction function!"); + if (pj->time_bin >= time_bin_inhibited) + error("Inhibited pj in interaction function!"); +#endif + /* Get the masses. */ const float mj = pj->mass; @@ -436,6 +450,13 @@ __attribute__((always_inline)) INLINE static void runner_iact_force( float wi, wj, wi_dx, wj_dx; +#ifdef SWIFT_DEBUG_CHECKS + if (pi->time_bin >= time_bin_inhibited) + error("Inhibited pi in interaction function!"); + if (pj->time_bin >= time_bin_inhibited) + error("Inhibited pj in interaction function!"); +#endif + /* Cosmological factors entering the EoMs */ const float fac_mu = pow_three_gamma_minus_five_over_two(a); const float a2_Hubble = a * a * H; @@ -558,6 +579,13 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_force( float wi, wj, wi_dx, wj_dx; +#ifdef SWIFT_DEBUG_CHECKS + if (pi->time_bin >= time_bin_inhibited) + error("Inhibited pi in interaction function!"); + if (pj->time_bin >= time_bin_inhibited) + error("Inhibited pj in interaction function!"); +#endif + /* Cosmological factors entering the EoMs */ const float fac_mu = pow_three_gamma_minus_five_over_two(a); const float a2_Hubble = a * a * H; diff --git a/src/hydro/Minimal/hydro_iact.h b/src/hydro/Minimal/hydro_iact.h index e060cb3562..b29f44588c 100644 --- a/src/hydro/Minimal/hydro_iact.h +++ b/src/hydro/Minimal/hydro_iact.h @@ -54,9 +54,9 @@ __attribute__((always_inline)) INLINE static void runner_iact_density( float wi, wj, wi_dx, wj_dx; #ifdef SWIFT_DEBUG_CHECKS - if (pi->time_bin == time_bin_inhibited) + if (pi->time_bin >= time_bin_inhibited) error("Inhibited pi in interaction function!"); - if (pj->time_bin == time_bin_inhibited) + if (pj->time_bin >= time_bin_inhibited) error("Inhibited pj in interaction function!"); #endif @@ -135,9 +135,9 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_density( float wi, wi_dx; #ifdef SWIFT_DEBUG_CHECKS - if (pi->time_bin == time_bin_inhibited) + if (pi->time_bin >= time_bin_inhibited) error("Inhibited pi in interaction function!"); - if (pj->time_bin == time_bin_inhibited) + if (pj->time_bin >= time_bin_inhibited) error("Inhibited pj in interaction function!"); #endif @@ -196,9 +196,9 @@ __attribute__((always_inline)) INLINE static void runner_iact_force( struct part *restrict pj, float a, float H) { #ifdef SWIFT_DEBUG_CHECKS - if (pi->time_bin == time_bin_inhibited) + if (pi->time_bin >= time_bin_inhibited) error("Inhibited pi in interaction function!"); - if (pj->time_bin == time_bin_inhibited) + if (pj->time_bin >= time_bin_inhibited) error("Inhibited pj in interaction function!"); #endif @@ -323,9 +323,9 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_force( const struct part *restrict pj, float a, float H) { #ifdef SWIFT_DEBUG_CHECKS - if (pi->time_bin == time_bin_inhibited) + if (pi->time_bin >= time_bin_inhibited) error("Inhibited pi in interaction function!"); - if (pj->time_bin == time_bin_inhibited) + if (pj->time_bin >= time_bin_inhibited) error("Inhibited pj in interaction function!"); #endif -- GitLab