diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2010-08-27 10:19:52 -0400 |
---|---|---|
committer | Barry Wardell <barry.wardell@gmail.com> | 2011-12-14 18:24:04 +0000 |
commit | 25b9680df24f34a8374c1174e758c4dcfd5a993b (patch) | |
tree | 1dbb4d8fe94a9ed17bc2e99ed30fe69d66ace3ed /Carpet/CarpetRegrid2 | |
parent | 03a1e226045541398220eaccf3e22e2c4687cb4e (diff) |
CarpetRegrid2: Correct handling positions of refined regions
Correct indexing error.
Diffstat (limited to 'Carpet/CarpetRegrid2')
-rw-r--r-- | Carpet/CarpetRegrid2/src/regrid.cc | 12 |
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 |