aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetRegrid2/src
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2012-02-24 21:49:42 -0500
committerBarry Wardell <barry.wardell@gmail.com>2012-09-11 18:23:05 +0100
commitf61219d39e347b974f026a2d375cb4c971328df9 (patch)
tree777c82b13fbd5dc1b7342ab32638a27ab4f71505 /Carpet/CarpetRegrid2/src
parent71e9ef3c7a41255b4e6eed87cdfd60f8cb0b26f7 (diff)
CarpetRegrid2: Allow some fuzz when rounding grid structure
Diffstat (limited to 'Carpet/CarpetRegrid2/src')
-rw-r--r--Carpet/CarpetRegrid2/src/boundary.cc12
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