aboutsummaryrefslogtreecommitdiff
path: root/CarpetDev/CarpetAdaptiveRegrid
diff options
context:
space:
mode:
Diffstat (limited to 'CarpetDev/CarpetAdaptiveRegrid')
-rw-r--r--CarpetDev/CarpetAdaptiveRegrid/src/CAR.cc14
-rw-r--r--CarpetDev/CarpetAdaptiveRegrid/src/manualcoordinatelist.cc8
2 files changed, 12 insertions, 10 deletions
diff --git a/CarpetDev/CarpetAdaptiveRegrid/src/CAR.cc b/CarpetDev/CarpetAdaptiveRegrid/src/CAR.cc
index c5e8ec62f..ed01bd34c 100644
--- a/CarpetDev/CarpetAdaptiveRegrid/src/CAR.cc
+++ b/CarpetDev/CarpetAdaptiveRegrid/src/CAR.cc
@@ -261,6 +261,8 @@ namespace CarpetAdaptiveRegrid {
vector<vector<ibbox> > bbss = bbsss.at(0);
vector<vector<ibbox> > local_bbss = local_bbsss.at(0);
+ ivect const reffact = spacereffacts.at(rl+1) / spacereffacts.at(rl);
+
bool did_regrid = false;
//
@@ -458,15 +460,15 @@ namespace CarpetAdaptiveRegrid {
// Correct for the change in level !
CCTK_INT ii = (i + cctkGH->cctk_lbnd[0]
- cctkGH->cctk_nghostzones[0]
- + child_levoff[0]) / reffact -
+ + child_levoff[0]) / reffact[0] -
imin[0];
CCTK_INT jj = (j + cctkGH->cctk_lbnd[1]
- cctkGH->cctk_nghostzones[1]
- + child_levoff[1]) / reffact -
+ + child_levoff[1]) / reffact[1] -
imin[1];
CCTK_INT kk = (k + cctkGH->cctk_lbnd[2]
- cctkGH->cctk_nghostzones[2]
- + child_levoff[1]) / reffact -
+ + child_levoff[1]) / reffact[2] -
imin[2];
// Check that this point actually intersects with
// this box (if this component was actually a
@@ -822,7 +824,7 @@ namespace CarpetAdaptiveRegrid {
rvect hi = int2pos(cctkGH, hh, ihi, reflevel);
rvect str = base_spacing *
ipow((CCTK_REAL)mgfact, basemglevel) /
- ipow(reffact, reflevel);
+ spacereffacts.at(reflevel);
rbbox newbbcoord(lo, hi, str);
if (veryverbose) {
@@ -1057,7 +1059,7 @@ namespace CarpetAdaptiveRegrid {
const ivect global_extent (hh.baseextent.upper() - hh.baseextent.lower());
const rvect scale = rvect(global_extent) / (global_upper - global_lower);
- const int levfac = ipow(hh.reffact, rl);
+ const ivect levfac = hh.reffacts.at(rl);
assert (all (hh.baseextent.stride() % levfac == 0));
const ivect istride = hh.baseextent.stride() / levfac;
@@ -1084,7 +1086,7 @@ namespace CarpetAdaptiveRegrid {
const ivect global_extent (hh.baseextent.upper() - hh.baseextent.lower());
const rvect scale = rvect(global_extent) / (global_upper - global_lower);
- const int levfac = ipow(hh.reffact, rl);
+ const ivect levfac = hh.reffacts.at(rl);
assert (all (hh.baseextent.stride() % levfac == 0));
const ivect istride = hh.baseextent.stride() / levfac;
diff --git a/CarpetDev/CarpetAdaptiveRegrid/src/manualcoordinatelist.cc b/CarpetDev/CarpetAdaptiveRegrid/src/manualcoordinatelist.cc
index 523c5cf9b..1768aa6ed 100644
--- a/CarpetDev/CarpetAdaptiveRegrid/src/manualcoordinatelist.cc
+++ b/CarpetDev/CarpetAdaptiveRegrid/src/manualcoordinatelist.cc
@@ -80,7 +80,7 @@ namespace CarpetAdaptiveRegrid {
for (size_t c=0; c<newobss.at(rl).size(); ++c) {
for (int d=0; d<dim; ++d) {
assert (mglevel==0);
- rvect const spacing = base_spacing * ipow((CCTK_REAL)mgfact, basemglevel) / ipow(reffact, rl+1);
+ rvect const spacing = base_spacing * ipow((CCTK_REAL)mgfact, basemglevel) / spacereffacts.at(rl+1);
ierr = ConvertFromPhysicalBoundary
(dim, &physical_min[0], &physical_max[0],
&interior_min[0], &interior_max[0],
@@ -94,7 +94,7 @@ namespace CarpetAdaptiveRegrid {
lo[d] = exterior_min[d];
newbbss.at(rl).at(c) = rbbox(lo, up, str);
}
- newobss.at(rl).at(c)[d][1] = abs(newbbss.at(rl).at(c).upper()[d] - physical_max[d]) < 1.0e-6 * base_spacing[d] / ipow(reffact, rl);
+ newobss.at(rl).at(c)[d][1] = abs(newbbss.at(rl).at(c).upper()[d] - physical_max[d]) < 1.0e-6 * base_spacing[d] / spacereffacts.at(rl)[d];
if (newobss.at(rl).at(c)[d][1]) {
rvect lo = newbbss.at(rl).at(c).lower();
rvect up = newbbss.at(rl).at(c).upper();
@@ -124,7 +124,7 @@ namespace CarpetAdaptiveRegrid {
bbvect const & ob = newobss.at(rl-1).at(c);
// TODO: why can basemglevel not be used here?
// rvect const spacing = base_spacing * ipow(CCTK_REAL(mgfact), basemglevel) / ipow(reffact, rl);
- rvect const spacing = base_spacing / ipow(reffact, rl);
+ rvect const spacing = base_spacing / spacereffacts.at(rl);
if (! all(abs(ext.stride() - spacing) < spacing * 1.0e-10)) {
assert (dim==3);
CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
@@ -230,7 +230,7 @@ namespace CarpetAdaptiveRegrid {
const ivect rlb = hh.baseextent.lower();
const ivect rub = hh.baseextent.upper();
- const int levfac = ipow(hh.reffact, rl);
+ const ivect levfac = hh.reffacts.at(rl);
assert (all (rstr % levfac == 0));
const ivect str (rstr / levfac);
const ivect lb (ilower);