diff options
Diffstat (limited to 'Carpet')
-rw-r--r-- | Carpet/CarpetRegrid2/src/boundary.cc | 12 |
1 files changed, 8 insertions, 4 deletions
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 |