aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetRegrid2
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2010-08-27 10:19:52 -0400
committerBarry Wardell <barry.wardell@gmail.com>2011-12-14 18:24:04 +0000
commit25b9680df24f34a8374c1174e758c4dcfd5a993b (patch)
tree1dbb4d8fe94a9ed17bc2e99ed30fe69d66ace3ed /Carpet/CarpetRegrid2
parent03a1e226045541398220eaccf3e22e2c4687cb4e (diff)
CarpetRegrid2: Correct handling positions of refined regions
Correct indexing error.
Diffstat (limited to 'Carpet/CarpetRegrid2')
-rw-r--r--Carpet/CarpetRegrid2/src/regrid.cc12
1 files changed, 9 insertions, 3 deletions
diff --git a/Carpet/CarpetRegrid2/src/regrid.cc b/Carpet/CarpetRegrid2/src/regrid.cc
index cfb0539f6..35b048a4b 100644
--- a/Carpet/CarpetRegrid2/src/regrid.cc
+++ b/Carpet/CarpetRegrid2/src/regrid.cc
@@ -1431,6 +1431,9 @@ namespace CarpetRegrid2 {
// Make multigrid aware
MakeMultigridBoxesMaps (cctkGH, regsss, regssss);
+ int lsh[2];
+ getvectorindex2 (cctkGH, "CarpetRegrid2::radii", lsh);
+
// Remember current positions
for (int n = 0; n < num_centres; ++ n) {
old_active[n] = active[n];
@@ -1441,9 +1444,12 @@ namespace CarpetRegrid2 {
old_position_y[n] = position_y[n];
old_position_z[n] = position_z[n];
- old_radius_x[n] = radius_x[n] < 0 ? radius[n] : radius_x[n];
- old_radius_y[n] = radius_y[n] < 0 ? radius[n] : radius_y[n];
- old_radius_z[n] = radius_z[n] < 0 ? radius[n] : radius_z[n];
+ for (int rl = 1; rl < num_levels[n]; ++ rl) {
+ int const ind = index2 (lsh, rl, n);
+ old_radius_x[ind] = radius_x[ind] < 0 ? radius[ind] : radius_x[ind];
+ old_radius_y[ind] = radius_y[ind] < 0 ? radius[ind] : radius_y[ind];
+ old_radius_z[ind] = radius_z[ind] < 0 ? radius[ind] : radius_z[ind];
+ }
}
} // if do_recompose