aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetIOASCII
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2007-01-12 22:34:00 +0000
committerErik Schnetter <schnetter@cct.lsu.edu>2007-01-12 22:34:00 +0000
commitf6574b1d790e41cf80dac26064221d48eb33f63f (patch)
tree42595c454fd95d1f8c9353caa1290c2e7b38107c /Carpet/CarpetIOASCII
parent56e9b5fe41a7a44a28987c3ba2f988f1ab98bb1f (diff)
CarpetIOASCII: Correct conversion from indices to coordinates
Correct conversion from indices to coordinates. The conversion was wrong for cell-centered grids. darcs-hash:20070112223421-dae7b-097d63222078e11ab339c678cb358dc1191099d1.gz
Diffstat (limited to 'Carpet/CarpetIOASCII')
-rw-r--r--Carpet/CarpetIOASCII/src/ioascii.cc15
1 files changed, 7 insertions, 8 deletions
diff --git a/Carpet/CarpetIOASCII/src/ioascii.cc b/Carpet/CarpetIOASCII/src/ioascii.cc
index 3caa14475..86f727dfa 100644
--- a/Carpet/CarpetIOASCII/src/ioascii.cc
+++ b/Carpet/CarpetIOASCII/src/ioascii.cc
@@ -861,9 +861,12 @@ namespace CarpetIOASCII {
rvect coord_delta;
if (grouptype == CCTK_GF) {
for (int d=0; d<dim; ++d) {
+ // lower boundary of Carpet's integer indexing
global_lower[d] = cctkGH->cctk_origin_space[d];
- coord_delta[d]
- = cctkGH->cctk_delta_space[d] / maxspacereflevelfact[d];
+ // grid spacing of Carpet's integer indexing
+ coord_delta[d] =
+ cctkGH->cctk_delta_space[d] /
+ vhh.at(Carpet::map)->baseextent.stride()[d];
}
} else {
for (int d=0; d<dim; ++d) {
@@ -879,7 +882,7 @@ namespace CarpetIOASCII {
ivect offset1;
if (grouptype == CCTK_GF) {
const ibbox& baseext
- = vdd.at(Carpet::map)->bases.at(mglevel).at(0).exterior;
+ = vdd.at(Carpet::map)->bases.at(mglevel).at(reflevel).exterior;
offset1 = baseext.lower() + offset * ext.stride();
} else {
offset1 = offset * ext.stride();
@@ -1075,11 +1078,7 @@ namespace CarpetIOASCII {
assert (mglevel!=-1 and reflevel!=-1 and Carpet::map!=-1);
const CCTK_REAL delta = cctkGH->cctk_delta_space[dir-1] / cctkGH->cctk_levfac[dir-1];
- const CCTK_REAL lower = cctkGH->cctk_origin_space[dir-1];
-#if 0
- const int npoints = cctkGH->cctk_gsh[dir-1];
- const CCTK_REAL upper = lower + (npoints-1) * delta;
-#endif
+ const CCTK_REAL lower = cctkGH->cctk_origin_space[dir-1] + cctkGH->cctk_delta_space[dir-1] / cctkGH->cctk_levfac[dir-1] * cctkGH->cctk_levoff[dir-1] / cctkGH->cctk_levoffdenom[dir-1];
const CCTK_REAL rindex = (coord - lower) / delta;
int cindex = (int)floor(rindex + 0.75);