From 92c299ad9bad2a1b45b6a31c27a09f7f0f0481bc Mon Sep 17 00:00:00 2001 From: Matthieu Schaller <matthieu.schaller@durham.ac.uk> Date: Thu, 4 Feb 2016 16:58:32 +0000 Subject: [PATCH] Rewrote the Gadget-2 hydro implementation. Everything OK until the end of the density loop. --- src/hydro/Gadget2/hydro_iact.h | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/hydro/Gadget2/hydro_iact.h b/src/hydro/Gadget2/hydro_iact.h index 461d2f99ad..5d1f5aca8a 100644 --- a/src/hydro/Gadget2/hydro_iact.h +++ b/src/hydro/Gadget2/hydro_iact.h @@ -158,8 +158,17 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_density( const float ih3 = h_inv * h_inv * h_inv; const float ih4 = h_inv * h_inv * h_inv * h_inv; + const float fac = mj * wi_dx * ri; + + /* Compute dv dot r */ + dv[0] = pi->v[0] - pj->v[0]; + dv[1] = pi->v[1] - pj->v[1]; + dv[2] = pi->v[2] - pj->v[2]; + const float dvdr = dv[0] * dx[0] + dv[1] * dx[1] + dv[2] * dx[2]; + pi->div_v -= fac * dvdr; + if(pi->id == 1000 && pj->id == 1103) - message("Interacting with %lld. r=%e hi=%e u=%e W=%e dW/dx=%e dh_drho1=%e dh_drho2=%e %e\n", + message("Interacting with %lld. r=%e hi=%e u=%e W=%e dW/dx=%e dh_drho1=%e dh_drho2=%e %e\n fac=%e dvdr=%e", pj->id, r, hi, @@ -168,18 +177,11 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_density( wi_dx * ih4, -mj * (3.f * kernel_igamma * wi) * ih4, -mj * u * wi_dx * kernel_igamma * ih4, - kernel_igamma + fac, + dvdr ); - const float fac = mj * wi_dx * ri; - /* Compute dv dot r */ - dv[0] = pi->v[0] - pj->v[0]; - dv[1] = pi->v[1] - pj->v[1]; - dv[2] = pi->v[2] - pj->v[2]; - const float dvdr = dv[0] * dx[0] + dv[1] * dx[1] + dv[2] * dx[2]; - pi->div_v -= fac * dvdr; - /* Compute dv cross r */ curlvr[0] = dv[1] * dx[2] - dv[2] * dx[1]; curlvr[1] = dv[2] * dx[0] - dv[0] * dx[2]; -- GitLab