diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2012-02-24 21:49:42 -0500 |
---|---|---|
committer | Barry Wardell <barry.wardell@gmail.com> | 2012-09-11 18:23:05 +0100 |
commit | f61219d39e347b974f026a2d375cb4c971328df9 (patch) | |
tree | 777c82b13fbd5dc1b7342ab32638a27ab4f71505 /Carpet/CarpetRegrid2/src | |
parent | 71e9ef3c7a41255b4e6eed87cdfd60f8cb0b26f7 (diff) |
CarpetRegrid2: Allow some fuzz when rounding grid structure
Diffstat (limited to 'Carpet/CarpetRegrid2/src')
-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 |