From f61219d39e347b974f026a2d375cb4c971328df9 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Fri, 24 Feb 2012 21:49:42 -0500 Subject: CarpetRegrid2: Allow some fuzz when rounding grid structure --- Carpet/CarpetRegrid2/src/boundary.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'Carpet') diff --git a/Carpet/CarpetRegrid2/src/boundary.cc b/Carpet/CarpetRegrid2/src/boundary.cc index 79e595784..722f33cf8 100644 --- a/Carpet/CarpetRegrid2/src/boundary.cc +++ b/Carpet/CarpetRegrid2/src/boundary.cc @@ -27,11 +27,13 @@ namespace CarpetRegrid2 { assert (all (istride % 2 == 0)); } + CCTK_REAL const eps = 1.0e-10; // prevent rounding errors + #if 1 ivect const ipos = hh.refcent == vertex_centered - ? ivect (floor (((rpos - origin) * scale ) / rvect(istride) + rvect(0.5))) * istride - : ivect (floor (((rpos - origin) * scale - rvect(bistride/2)) / rvect(istride) )) * istride + istride/2 + bistride/2; + ? ivect (floor (((rpos - origin) * scale ) / rvect(istride) + rvect(0.5) + rvect(eps))) * istride + : ivect (floor (((rpos - origin) * scale - rvect(bistride/2)) / rvect(istride) + rvect(eps))) * istride + istride/2 + bistride/2; #else ivect const ipos = hh.refcent == vertex_centered @@ -57,11 +59,13 @@ namespace CarpetRegrid2 { assert (all (istride % 2 == 0)); } + CCTK_REAL const eps = 1.0e-10; // prevent rounding errors + #if 1 ivect const ipos = hh.refcent == vertex_centered - ? ivect (ceil (((rpos - origin) * scale ) / rvect(istride) - rvect(0.5))) * istride - : ivect (ceil (((rpos - origin) * scale - rvect(bistride/2)) / rvect(istride) )) * istride - istride/2 + bistride/2; + ? ivect (ceil (((rpos - origin) * scale ) / rvect(istride) - rvect(0.5) - rvect(eps))) * istride + : ivect (ceil (((rpos - origin) * scale - rvect(bistride/2)) / rvect(istride) - rvect(eps))) * istride - istride/2 + bistride/2; #else ivect const ipos = hh.refcent == vertex_centered -- cgit v1.2.3