From dc1be8ad94735aaad3da9db098beb343c8897a3c Mon Sep 17 00:00:00 2001 From: Matthieu Schaller <schaller@strw.leidenuniv.nl> Date: Sun, 24 May 2020 17:11:07 +0200 Subject: [PATCH] Do not use the accumulate_add functions --- src/gravity/MultiSoftening/gravity.h | 3 +- src/gravity/Potential/gravity.h | 3 +- src/gravity_cache.h | 6 +-- src/mesh_gravity.c | 7 ++- src/multipole.h | 12 ++--- src/runner_doiact_grav.c | 66 +++++++++++++++------------- 6 files changed, 50 insertions(+), 47 deletions(-) diff --git a/src/gravity/MultiSoftening/gravity.h b/src/gravity/MultiSoftening/gravity.h index 4453f2b644..e436cc3c14 100644 --- a/src/gravity/MultiSoftening/gravity.h +++ b/src/gravity/MultiSoftening/gravity.h @@ -23,7 +23,6 @@ #include <float.h> /* Local includes. */ -#include "accumulate.h" #include "cosmology.h" #include "error.h" #include "gravity_properties.h" @@ -62,7 +61,7 @@ __attribute__((always_inline)) INLINE static float gravity_get_softening( __attribute__((always_inline)) INLINE static void gravity_add_comoving_potential(struct gpart* restrict gp, float pot) { - accumulate_add_f(&gp->potential, pot); + gp->potential += pot; } /** diff --git a/src/gravity/Potential/gravity.h b/src/gravity/Potential/gravity.h index f6d0e81ba0..4ce1e73ef3 100644 --- a/src/gravity/Potential/gravity.h +++ b/src/gravity/Potential/gravity.h @@ -23,7 +23,6 @@ #include <float.h> /* Local includes. */ -#include "accumulate.h" #include "cosmology.h" #include "gravity_properties.h" #include "kernel_gravity.h" @@ -64,7 +63,7 @@ __attribute__((always_inline)) INLINE static float gravity_get_softening( __attribute__((always_inline)) INLINE static void gravity_add_comoving_potential(struct gpart* restrict gp, float pot) { - accumulate_add_f(&gp->potential, pot); + gp->potential += pot; } /** diff --git a/src/gravity_cache.h b/src/gravity_cache.h index 51335e3d2a..75fb640457 100644 --- a/src/gravity_cache.h +++ b/src/gravity_cache.h @@ -490,9 +490,9 @@ INLINE static void gravity_cache_write_back(const struct gravity_cache *c, #endif for (int i = 0; i < gcount; ++i) { if (active[i]) { - accumulate_add_f(&gparts[i].a_grav[0], a_x[i]); - accumulate_add_f(&gparts[i].a_grav[1], a_y[i]); - accumulate_add_f(&gparts[i].a_grav[2], a_z[i]); + gparts[i].a_grav[0] += a_x[i]; + gparts[i].a_grav[1] += a_y[i]; + gparts[i].a_grav[2] += a_z[i]; gravity_add_comoving_potential(&gparts[i], pot[i]); } } diff --git a/src/mesh_gravity.c b/src/mesh_gravity.c index bd5eb6a385..fd81a658ad 100644 --- a/src/mesh_gravity.c +++ b/src/mesh_gravity.c @@ -28,7 +28,6 @@ #include "mesh_gravity.h" /* Local includes. */ -#include "accumulate.h" #include "active.h" #include "debug.h" #include "engine.h" @@ -336,9 +335,9 @@ void mesh_to_gparts_CIC(struct gpart* gp, const double* pot, const int N, /* ---- */ /* Store things back */ - accumulate_add_f(&gp->a_grav[0], fac * a[0]); - accumulate_add_f(&gp->a_grav[1], fac * a[1]); - accumulate_add_f(&gp->a_grav[2], fac * a[2]); + gp->a_grav[0] += fac * a[0]; + gp->a_grav[1] += fac * a[1]; + gp->a_grav[2] += fac * a[2]; gravity_add_comoving_potential(gp, p); #ifdef SWIFT_GRAVITY_FORCE_CHECKS gp->potential_PM = p; diff --git a/src/multipole.h b/src/multipole.h index 5884c62009..8169bff229 100644 --- a/src/multipole.h +++ b/src/multipole.h @@ -2993,15 +2993,15 @@ __attribute__((nonnull)) INLINE static void gravity_L2P( #endif /* Update the particle */ - accumulate_add_f(&gp->a_grav[0], a_grav[0]); - accumulate_add_f(&gp->a_grav[1], a_grav[1]); - accumulate_add_f(&gp->a_grav[2], a_grav[2]); + gp->a_grav[0] += a_grav[0]; + gp->a_grav[1] += a_grav[1]; + gp->a_grav[2] += a_grav[2]; gravity_add_comoving_potential(gp, pot); #ifdef SWIFT_GRAVITY_FORCE_CHECKS - accumulate_add_f(&gp->a_grav_m2l[0], a_grav[0]); - accumulate_add_f(&gp->a_grav_m2l[1], a_grav[1]); - accumulate_add_f(&gp->a_grav_m2l[2], a_grav[2]); + gp->a_grav_m2l[0] += a_grav[0]; + gp->a_grav_m2l[1] += a_grav[1]; + gp->a_grav_m2l[2] += a_grav[2]; #endif } diff --git a/src/runner_doiact_grav.c b/src/runner_doiact_grav.c index a1cb41a6ee..f87a685f13 100644 --- a/src/runner_doiact_grav.c +++ b/src/runner_doiact_grav.c @@ -155,6 +155,10 @@ static INLINE void runner_dopair_grav_pp_full_no_cache( const int gcount_padded_i = gcount_i - (gcount_i % VEC_SIZE) + VEC_SIZE; gravity_cache_zero_output(cache_i, gcount_padded_i); +#ifdef SWIFT_DEBUG_CHECKS + if (ci->split) error("Using function above leaf level!"); +#endif + /* Loop over sink particles */ for (int i = 0; i < gcount_i; ++i) { @@ -219,9 +223,9 @@ static INLINE void runner_dopair_grav_pp_full_no_cache( /* Update the M2P interaction counter and forces. */ accumulate_add_ll(&gparts_i[i].num_interacted_m2p, multi_j->m_pole.num_gpart); - accumulate_add_f(&gparts_i[i].a_grav_m2p[0], f_x); - accumulate_add_f(&gparts_i[i].a_grav_m2p[1], f_y); - accumulate_add_f(&gparts_i[i].a_grav_m2p[2], f_z); + gparts_i[i].a_grav_m2p[0] += f_x; + gparts_i[i].a_grav_m2p[1] += f_y; + gparts_i[i].a_grav_m2p[2] += f_z; #endif } else { @@ -283,9 +287,9 @@ static INLINE void runner_dopair_grav_pp_full_no_cache( #ifdef SWIFT_GRAVITY_FORCE_CHECKS /* Update the p2p interaction counter */ accumulate_inc_ll(&gparts_i[i].num_interacted_p2p); - accumulate_add_f(&gparts_i[i].a_grav_p2p[0], a_x); - accumulate_add_f(&gparts_i[i].a_grav_p2p[1], a_y); - accumulate_add_f(&gparts_i[i].a_grav_p2p[2], a_z); + gparts_i[i].a_grav_p2p[0] += a_x; + gparts_i[i].a_grav_p2p[1] += a_y; + gparts_i[i].a_grav_p2p[2] += a_z; #endif } } @@ -312,6 +316,8 @@ static INLINE void runner_dopair_grav_pp_truncated_no_cache( #ifdef SWIFT_DEBUG_CHECKS if (!e->s->periodic) error("Calling truncated PP function in non-periodic setup."); + + if (ci->split) error("Using function above leaf level!"); #endif const float r_s_inv = grav_props->r_s_inv; @@ -389,9 +395,9 @@ static INLINE void runner_dopair_grav_pp_truncated_no_cache( /* Update the M2P interaction counter and forces. */ accumulate_add_ll(&gparts_i[i].num_interacted_m2p, multi_j->m_pole.num_gpart); - accumulate_add_f(&gparts_i[i].a_grav_m2p[0], f_x); - accumulate_add_f(&gparts_i[i].a_grav_m2p[1], f_y); - accumulate_add_f(&gparts_i[i].a_grav_m2p[2], f_z); + gparts_i[i].a_grav_m2p[0] += f_x; + gparts_i[i].a_grav_m2p[1] += f_y; + gparts_i[i].a_grav_m2p[2] += f_z; #endif } else { @@ -458,9 +464,9 @@ static INLINE void runner_dopair_grav_pp_truncated_no_cache( #ifdef SWIFT_GRAVITY_FORCE_CHECKS /* Update the p2p interaction counter */ accumulate_inc_ll(&gparts_i[i].num_interacted_p2p); - accumulate_add_f(&gparts_i[i].a_grav_p2p[0], a_x); - accumulate_add_f(&gparts_i[i].a_grav_p2p[1], a_y); - accumulate_add_f(&gparts_i[i].a_grav_p2p[2], a_z); + gparts_i[i].a_grav_p2p[0] += a_x; + gparts_i[i].a_grav_p2p[1] += a_y; + gparts_i[i].a_grav_p2p[2] += a_z; #endif } } @@ -621,9 +627,9 @@ static INLINE void runner_dopair_grav_pp_full( ci_cache->pot[pid] += pot; #ifdef SWIFT_GRAVITY_FORCE_CHECKS - accumulate_add_f(&gparts_i[pid].a_grav_p2p[0], a_x); - accumulate_add_f(&gparts_i[pid].a_grav_p2p[1], a_y); - accumulate_add_f(&gparts_i[pid].a_grav_p2p[2], a_z); + gparts_i[pid].a_grav_p2p[0] += a_x; + gparts_i[pid].a_grav_p2p[1] += a_y; + gparts_i[pid].a_grav_p2p[2] += a_z; #endif } } @@ -777,9 +783,9 @@ static INLINE void runner_dopair_grav_pp_truncated( ci_cache->pot[pid] += pot; #ifdef SWIFT_GRAVITY_FORCE_CHECKS - accumulate_add_f(&gparts_i[pid].a_grav_p2p[0], a_x); - accumulate_add_f(&gparts_i[pid].a_grav_p2p[1], a_y); - accumulate_add_f(&gparts_i[pid].a_grav_p2p[2], a_z); + gparts_i[pid].a_grav_p2p[0] += a_x; + gparts_i[pid].a_grav_p2p[1] += a_y; + gparts_i[pid].a_grav_p2p[2] += a_z; #endif } } @@ -910,9 +916,9 @@ static INLINE void runner_dopair_grav_pm_full( if (pid < gcount_i) { accumulate_add_ll(&gparts_i[pid].num_interacted_m2p, cj->grav.multipole->m_pole.num_gpart); - accumulate_add_f(&gparts_i[pid].a_grav_m2p[0], f_x); - accumulate_add_f(&gparts_i[pid].a_grav_m2p[1], f_y); - accumulate_add_f(&gparts_i[pid].a_grav_m2p[2], f_z); + gparts_i[pid].a_grav_m2p[0] += f_x; + gparts_i[pid].a_grav_m2p[1] += f_y; + gparts_i[pid].a_grav_m2p[2] += f_z; } #endif } @@ -1049,9 +1055,9 @@ static INLINE void runner_dopair_grav_pm_truncated( if (pid < gcount_i) { accumulate_add_ll(&gparts_i[pid].num_interacted_m2p, cj->grav.multipole->m_pole.num_gpart); - accumulate_add_f(&gparts_i[pid].a_grav_m2p[0], f_x); - accumulate_add_f(&gparts_i[pid].a_grav_m2p[1], f_y); - accumulate_add_f(&gparts_i[pid].a_grav_m2p[2], f_z); + gparts_i[pid].a_grav_m2p[0] += f_x; + gparts_i[pid].a_grav_m2p[1] += f_y; + gparts_i[pid].a_grav_m2p[2] += f_z; } #endif } @@ -1459,9 +1465,9 @@ static INLINE void runner_doself_grav_pp_full( ci_cache->pot[pid] += pot; #ifdef SWIFT_GRAVITY_FORCE_CHECKS - accumulate_add_f(&gparts[pid].a_grav_p2p[0], a_x); - accumulate_add_f(&gparts[pid].a_grav_p2p[1], a_y); - accumulate_add_f(&gparts[pid].a_grav_p2p[2], a_z); + gparts[pid].a_grav_p2p[0] += a_x; + gparts[pid].a_grav_p2p[1] += a_y; + gparts[pid].a_grav_p2p[2] += a_z; #endif } } @@ -1598,9 +1604,9 @@ static INLINE void runner_doself_grav_pp_truncated( ci_cache->pot[pid] += pot; #ifdef SWIFT_GRAVITY_FORCE_CHECKS - accumulate_add_f(&gparts[pid].a_grav_p2p[0], a_x); - accumulate_add_f(&gparts[pid].a_grav_p2p[1], a_y); - accumulate_add_f(&gparts[pid].a_grav_p2p[2], a_z); + gparts[pid].a_grav_p2p[0] += a_x; + gparts[pid].a_grav_p2p[1] += a_y; + gparts[pid].a_grav_p2p[2] += a_z; #endif } } -- GitLab