From 0199eaa86edb0b381d14d21e91eccddb7d62f03c Mon Sep 17 00:00:00 2001 From: Matthieu Schaller <matthieu.schaller@durham.ac.uk> Date: Fri, 7 Jul 2017 10:19:53 +0100 Subject: [PATCH] Changed the particle shift diff to 1e-4 instead of 1e-6 to avoid rounding-up error. --- src/runner_doiact.h | 22 ++++++++++++++++------ src/runner_doiact_vec.c | 4 ++-- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/runner_doiact.h b/src/runner_doiact.h index 2ef1ccbad6..af38ac6041 100644 --- a/src/runner_doiact.h +++ b/src/runner_doiact.h @@ -918,7 +918,7 @@ void DOPAIR1(struct runner *r, struct cell *ci, struct cell *cj, const int sid, p->x[1] * runner_shift[sid][1] + p->x[2] * runner_shift[sid][2]; if (fabsf(d - sort_i[pid].d) - ci->dx_max_sort > - 1.0e-6 * max(fabsf(d), ci->dx_max_sort_old)) + 1.0e-4 * max(fabsf(d), ci->dx_max_sort_old)) error( "particle shift diff exceeds dx_max_sort in cell ci. ci->nodeID=%d " "cj->nodeID=%d d=%e sort_i[pid].d=%e ci->dx_max_sort=%e " @@ -932,7 +932,7 @@ void DOPAIR1(struct runner *r, struct cell *ci, struct cell *cj, const int sid, p->x[1] * runner_shift[sid][1] + p->x[2] * runner_shift[sid][2]; if (fabsf(d - sort_j[pjd].d) - cj->dx_max_sort > - 1.0e-6 * max(fabsf(d), cj->dx_max_sort_old)) + 1.0e-4 * max(fabsf(d), cj->dx_max_sort_old)) error( "particle shift diff exceeds dx_max_sort in cell cj. cj->nodeID=%d " "ci->nodeID=%d d=%e sort_j[pjd].d=%e cj->dx_max_sort=%e " @@ -1217,8 +1217,13 @@ void DOPAIR2(struct runner *r, struct cell *ci, struct cell *cj) { p->x[1] * runner_shift[sid][1] + p->x[2] * runner_shift[sid][2]; if (fabsf(d - sort_i[pid].d) - ci->dx_max_sort > - 1.0e-6 * max(fabsf(d), ci->dx_max_sort)) - error("particle shift diff exceeds dx_max_sort."); + 1.0e-4 * max(fabsf(d), ci->dx_max_sort_old)) + error( + "particle shift diff exceeds dx_max_sort in cell ci. ci->nodeID=%d " + "cj->nodeID=%d d=%e sort_i[pid].d=%e ci->dx_max_sort=%e " + "ci->dx_max_sort_old=%e", + ci->nodeID, cj->nodeID, d, sort_i[pid].d, ci->dx_max_sort, + ci->dx_max_sort_old); } for (int pjd = 0; pjd < cj->count; pjd++) { const struct part *p = &cj->parts[sort_j[pjd].i]; @@ -1226,8 +1231,13 @@ void DOPAIR2(struct runner *r, struct cell *ci, struct cell *cj) { p->x[1] * runner_shift[sid][1] + p->x[2] * runner_shift[sid][2]; if (fabsf(d - sort_j[pjd].d) - cj->dx_max_sort > - 1.0e-6 * max(fabsf(d), cj->dx_max_sort)) - error("particle shift diff exceeds dx_max_sort."); + 1.0e-4 * max(fabsf(d), cj->dx_max_sort_old)) + error( + "particle shift diff exceeds dx_max_sort in cell cj. cj->nodeID=%d " + "ci->nodeID=%d d=%e sort_j[pjd].d=%e cj->dx_max_sort=%e " + "cj->dx_max_sort_old=%e", + cj->nodeID, ci->nodeID, d, sort_j[pjd].d, cj->dx_max_sort, + cj->dx_max_sort_old); } #endif /* SWIFT_DEBUG_CHECKS */ diff --git a/src/runner_doiact_vec.c b/src/runner_doiact_vec.c index c8c727fdcc..1f68163a30 100644 --- a/src/runner_doiact_vec.c +++ b/src/runner_doiact_vec.c @@ -642,7 +642,7 @@ void runner_dopair1_density_vec(struct runner *r, struct cell *ci, p->x[1] * runner_shift[sid][1] + p->x[2] * runner_shift[sid][2]; if (fabsf(d - sort_i[pid].d) - ci->dx_max_sort > - 1.0e-6 * max(fabsf(d), ci->dx_max_sort_old)) + 1.0e-4 * max(fabsf(d), ci->dx_max_sort_old)) error( "particle shift diff exceeds dx_max_sort in cell ci. ci->nodeID=%d " "cj->nodeID=%d d=%e sort_i[pid].d=%e ci->dx_max_sort=%e " @@ -656,7 +656,7 @@ void runner_dopair1_density_vec(struct runner *r, struct cell *ci, p->x[1] * runner_shift[sid][1] + p->x[2] * runner_shift[sid][2]; if (fabsf(d - sort_j[pjd].d) - cj->dx_max_sort > - 1.0e-6 * max(fabsf(d), cj->dx_max_sort_old)) + 1.0e-4 * max(fabsf(d), cj->dx_max_sort_old)) error( "particle shift diff exceeds dx_max_sort in cell cj. cj->nodeID=%d " "ci->nodeID=%d d=%e sort_j[pjd].d=%e cj->dx_max_sort=%e " -- GitLab