aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetRegrid
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2007-04-19 02:21:00 +0000
committerErik Schnetter <schnetter@cct.lsu.edu>2007-04-19 02:21:00 +0000
commitb47b6bfeef59c16a5da87a96dc58188188b846a8 (patch)
tree975b8b587478fc1111751d4a0b1a0851aa1ed350 /Carpet/CarpetRegrid
parent9a6c97b2f1a34b78e8598e7ff9ab21600b2800c3 (diff)
CarpetRegrid: Update to recent changes
darcs-hash:20070419022153-dae7b-783e4acd444e1d45bbfbcd80927c443ae7d8ecfd.gz
Diffstat (limited to 'Carpet/CarpetRegrid')
-rw-r--r--Carpet/CarpetRegrid/src/automatic.cc14
-rw-r--r--Carpet/CarpetRegrid/src/centre.cc13
-rw-r--r--Carpet/CarpetRegrid/src/manualcoordinatelist.cc18
-rw-r--r--Carpet/CarpetRegrid/src/manualcoordinates.cc16
-rw-r--r--Carpet/CarpetRegrid/src/manualgridpointlist.cc6
-rw-r--r--Carpet/CarpetRegrid/src/manualgridpoints.cc8
-rw-r--r--Carpet/CarpetRegrid/src/moving.cc5
7 files changed, 25 insertions, 55 deletions
diff --git a/Carpet/CarpetRegrid/src/automatic.cc b/Carpet/CarpetRegrid/src/automatic.cc
index 1325f855e..eb55b9521 100644
--- a/Carpet/CarpetRegrid/src/automatic.cc
+++ b/Carpet/CarpetRegrid/src/automatic.cc
@@ -109,7 +109,7 @@ namespace CarpetRegrid {
list<region_t> regl;
for (int c=0; c<hh.components(rl); ++c) {
- const region_t region = hh.regions().at(ml).at(rl).at(c);
+ const region_t region = hh.regions.at(ml).at(rl).at(c);
assert (! region.extent.empty());
const data<CCTK_REAL>& errordata = *errorgf(tl,rl,c,ml);
@@ -138,17 +138,15 @@ namespace CarpetRegrid {
const ivect lb = either (obp[0],
regs.at(c).extent.lower(),
max (regs.at(c).extent.lower(),
- hh.baseextent.lower()));
+ hh.baseextents.at(0).at(0).lower()));
const ivect ub = either (obp[1],
regs.at(c).extent.upper(),
min (regs.at(c).extent.upper(),
- hh.baseextent.upper()));
+ hh.baseextents.at(0).at(rl).upper()));
regs.at(c).extent = ibbox(lb, ub, regs.at(c).extent.stride());
regs.at(c).outer_boundaries =
- b2vect (regs.at(c).extent.lower() == hh.baseextent.lower(),
- regs.at(c).extent.upper() == hh.baseextent.upper());
- regs.at(c).refinement_boundaries[0] = ! regs.at(c).outer_boundaries[0];
- regs.at(c).refinement_boundaries[1] = ! regs.at(c).outer_boundaries[1];
+ b2vect (regs.at(c).extent.lower() == hh.baseextents.at(0).at(0).lower(),
+ regs.at(c).extent.upper() == hh.baseextents.at(0).at(0).upper());
regs.at(c).map = Carpet::map;
}
@@ -379,8 +377,6 @@ namespace CarpetRegrid {
combined.extent = ibbox (ireg1->extent.lower(), ireg2->extent.upper(), str);
combined.outer_boundaries[0] = ireg1->outer_boundaries[0];
combined.outer_boundaries[1] = ireg2->outer_boundaries[0];
- combined.refinement_boundaries[0] = ireg1->refinement_boundaries[0];
- combined.refinement_boundaries[1] = ireg2->refinement_boundaries[0];
regl.push_back (combined);
ireg1 = regl1.erase(ireg1);
ireg2 = regl2.erase(ireg2);
diff --git a/Carpet/CarpetRegrid/src/centre.cc b/Carpet/CarpetRegrid/src/centre.cc
index 466f3de13..8e4a414ee 100644
--- a/Carpet/CarpetRegrid/src/centre.cc
+++ b/Carpet/CarpetRegrid/src/centre.cc
@@ -36,9 +36,9 @@ namespace CarpetRegrid {
bvect const symmetric (symmetry_x, symmetry_y, symmetry_z);
ivect const zero(0), one(1), two(2);
- ivect rstr = hh.baseextent.stride();
- ivect rlb = hh.baseextent.lower();
- ivect rub = hh.baseextent.upper();
+ ivect rstr = hh.baseextents.at(0).at(0).stride();
+ ivect rlb = hh.baseextents.at(0).at(0).lower();
+ ivect rub = hh.baseextents.at(0).at(0).upper();
assert (! smart_outer_boundaries);
@@ -55,8 +55,8 @@ namespace CarpetRegrid {
// calculate new extent
ivect const quarter = (rub - rlb) / 4 / rstr * rstr;
ivect const half = (rub - rlb) / 2 / rstr * rstr;
- rlb = oldrlb + symmetric.ifthen(zero, quarter);
- rub = oldrub - symmetric.ifthen(half, quarter);
+ rlb = oldrlb + either (symmetric, zero, quarter);
+ rub = oldrub - either (symmetric, half, quarter);
assert (all(rlb >= oldrlb and rub <= oldrub));
vector<region_t> regs (1);
@@ -67,9 +67,6 @@ namespace CarpetRegrid {
b2vect const ob (false);
regs.at(0).outer_boundaries = ob;
- b2vect const rb (true);
- regs.at(0).refinement_boundaries = rb;
-
regs.at(0).map = Carpet::map;
// make multiprocessor aware
diff --git a/Carpet/CarpetRegrid/src/manualcoordinatelist.cc b/Carpet/CarpetRegrid/src/manualcoordinatelist.cc
index 0712f965e..9b456df9a 100644
--- a/Carpet/CarpetRegrid/src/manualcoordinatelist.cc
+++ b/Carpet/CarpetRegrid/src/manualcoordinatelist.cc
@@ -161,20 +161,6 @@ namespace CarpetRegrid {
} // if ! smart_outer_boundaries
- vector<vector<b2vect> > newrbss (newobss.size());
- for (int rl=0; rl<(int)newobss.size(); ++rl) {
- newrbss.at(rl).resize(newbbss.at(rl).size());
- for (int c=0; c<(int)newobss.at(rl).size(); ++c) {
- b2vect const & ob = newobss.at(rl).at(c);
- b2vect & rb = newrbss.at(rl).at(c);
- for (int d=0; d<dim; ++d) {
- for (int f=0; f<2; ++f) {
- rb[f][d] = ! ob[f][d];
- }
- }
- }
- }
-
for (int rl=1; rl<refinement_levels; ++rl) {
vector<region_t> regs;
@@ -183,7 +169,6 @@ namespace CarpetRegrid {
for (int c=0; c<(int)newbbss.at(rl-1).size(); ++c) {
rbbox const & ext = newbbss.at(rl-1).at(c);
b2vect const & ob = newobss.at(rl-1).at(c);
- b2vect const & rb = newrbss.at(rl-1).at(c);
// TODO:
// assert (domain_from_coordbase);
ivect const spacereffact = spacereffacts.at(rl);
@@ -212,7 +197,6 @@ namespace CarpetRegrid {
region_t reg;
reg.map = Carpet::map;
reg.outer_boundaries = ob;
- reg.refinement_boundaries = rb;
ManualCoordinates_OneLevel
(cctkGH, hh, rl, refinement_levels,
@@ -233,8 +217,6 @@ namespace CarpetRegrid {
regs.at(c).extent = combined;
assert (all (all (regs.at(c).outer_boundaries ==
regs.at(cc).outer_boundaries)));
- assert (all (all (regs.at(c).refinement_boundaries ==
- regs.at(cc).refinement_boundaries)));
regs.erase (regs.begin() + cc);
goto again;
}
diff --git a/Carpet/CarpetRegrid/src/manualcoordinates.cc b/Carpet/CarpetRegrid/src/manualcoordinates.cc
index d19ac1bab..6086e559a 100644
--- a/Carpet/CarpetRegrid/src/manualcoordinates.cc
+++ b/Carpet/CarpetRegrid/src/manualcoordinates.cc
@@ -50,11 +50,9 @@ namespace CarpetRegrid {
for (size_t rl=1; rl<regss.size(); ++rl) {
b2vect const ob (false);
- b2vect const rb (true);
region_t reg;
reg.map = Carpet::map;
reg.outer_boundaries = ob;
- reg.refinement_boundaries = rb;
vector<region_t> regs;
ManualCoordinates_OneLevel
@@ -108,12 +106,13 @@ namespace CarpetRegrid {
global_upper[d] = 1;
}
}
- const ivect global_extent (hh.baseextent.upper() - hh.baseextent.lower());
+ const ivect global_extent (hh.baseextents.at(0).at(0).upper() -
+ hh.baseextents.at(0).at(0).lower());
const rvect scale = rvect(global_extent) / (global_upper - global_lower);
const ivect levfac = hh.reffacts.at(rl);
- assert (all (hh.baseextent.stride() % levfac == 0));
- const ivect istride = hh.baseextent.stride() / levfac;
+ assert (all (hh.baseextents.at(0).at(0).stride() % levfac == 0));
+ const ivect istride = hh.baseextents.at(0).at(0).stride() / levfac;
const ivect ipos
= ivect(floor(rpos * scale / rvect(istride) + (CCTK_REAL) 0.5)) * istride;
@@ -143,12 +142,13 @@ namespace CarpetRegrid {
assert (Carpet::map >= 0);
global_lower = domainspecs.at(Carpet::map).exterior_min;
global_upper = domainspecs.at(Carpet::map).exterior_max;
- const ivect global_extent (hh.baseextent.upper() - hh.baseextent.lower());
+ const ivect global_extent (hh.baseextents.at(0).at(0).upper() -
+ hh.baseextents.at(0).at(0).lower());
const rvect scale = rvect(global_extent) / (global_upper - global_lower);
const ivect levfac = hh.reffacts.at(rl);
- assert (all (hh.baseextent.stride() % levfac == 0));
- const ivect istride = hh.baseextent.stride() / levfac;
+ assert (all (hh.baseextents.at(0).at(0).stride() % levfac == 0));
+ const ivect istride = hh.baseextents.at(0).at(0).stride() / levfac;
const ivect ipos
= (ivect(floor((rpos - global_lower) * scale / rvect(istride)
diff --git a/Carpet/CarpetRegrid/src/manualgridpointlist.cc b/Carpet/CarpetRegrid/src/manualgridpointlist.cc
index a94831e16..e77932bad 100644
--- a/Carpet/CarpetRegrid/src/manualgridpointlist.cc
+++ b/Carpet/CarpetRegrid/src/manualgridpointlist.cc
@@ -92,13 +92,13 @@ namespace CarpetRegrid {
}
}
- if (newbbss.size() < refinement_levels-1) {
+ if ((int)newbbss.size() < refinement_levels-1) {
CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
"The parameter \"gridpoints\" must contain at least \"refinement_levels-1\" (here: %d) levels", (int)refinement_levels-1);
}
vector<vector<region_t> > newregs (newbbss.size());
- for (size_t rl=1; rl<refinement_levels; ++rl) {
+ for (int rl=1; rl<refinement_levels; ++rl) {
vector<region_t> regs;
@@ -107,12 +107,10 @@ namespace CarpetRegrid {
for (size_t c=0; c<newbbss.at(rl-1).size(); ++c) {
ibbox const ext = newbbss.at(rl-1).at(c);
b2vect const ob = xpose (newobss.at(rl-1).at(c));
- b2vect const rb = xpose (newobss.at(rl-1).at(c));
region_t reg;
reg.extent = ext;
reg.map = Carpet::map;
reg.outer_boundaries = ob;
- reg.refinement_boundaries = rb;
ManualGridpoints_OneLevel
(cctkGH, hh, rl, refinement_levels,
ext.lower(), ext.upper(), reg, regs);
diff --git a/Carpet/CarpetRegrid/src/manualgridpoints.cc b/Carpet/CarpetRegrid/src/manualgridpoints.cc
index b4e27c94d..740fbae39 100644
--- a/Carpet/CarpetRegrid/src/manualgridpoints.cc
+++ b/Carpet/CarpetRegrid/src/manualgridpoints.cc
@@ -52,11 +52,9 @@ namespace CarpetRegrid {
for (size_t rl=1; rl<regss.size(); ++rl) {
b2vect const ob (false);
- b2vect const rb (true);
region_t reg;
reg.map = Carpet::map;
reg.outer_boundaries = ob;
- reg.refinement_boundaries = rb;
vector<region_t> regs;
ManualGridpoints_OneLevel
@@ -87,9 +85,9 @@ namespace CarpetRegrid {
const region_t & reg,
vector<region_t> & regs)
{
- const ivect rstr = hh.baseextent.stride();
- const ivect rlb = hh.baseextent.lower();
- const ivect rub = hh.baseextent.upper();
+ const ivect rstr = hh.baseextents.at(0).at(0).stride();
+ const ivect rlb = hh.baseextents.at(0).at(0).lower();
+ const ivect rub = hh.baseextents.at(0).at(0).upper();
const ivect levfac = hh.reffacts.at(rl);
assert (all (rstr % levfac == 0));
diff --git a/Carpet/CarpetRegrid/src/moving.cc b/Carpet/CarpetRegrid/src/moving.cc
index 61953bcb3..2d3f1078e 100644
--- a/Carpet/CarpetRegrid/src/moving.cc
+++ b/Carpet/CarpetRegrid/src/moving.cc
@@ -49,13 +49,12 @@ namespace CarpetRegrid {
rvect const radius
(rvect(moving_region_radius) / rvect(spacereffacts.at(rl-1)));
- rvect const rlb (symmetric.ifthen (rvect(0), pos - radius));
- rvect const rub (symmetric.ifthen (radius , pos + radius));
+ rvect const rlb (either (symmetric, rvect(0), pos - radius));
+ rvect const rub (either (symmetric, radius , pos + radius));
region_t reg;
reg.map = Carpet::map;
reg.outer_boundaries = b2vect (false);
- reg.refinement_boundaries = b2vect (true);
vector<region_t> regs;
ManualCoordinates_OneLevel