diff options
Diffstat (limited to 'CarpetDev/CarpetAdaptiveRegrid')
-rw-r--r-- | CarpetDev/CarpetAdaptiveRegrid/src/CAR.cc | 14 | ||||
-rw-r--r-- | CarpetDev/CarpetAdaptiveRegrid/src/manualcoordinatelist.cc | 8 |
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); |