aboutsummaryrefslogtreecommitdiff
path: root/Carpet
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2011-04-17 18:04:35 -0400
committerBarry Wardell <barry.wardell@gmail.com>2011-12-14 18:26:06 +0000
commit2c1495501189f7c53e7de3f1046d38d60cf8d97f (patch)
treec335b79e6e818bfe18e42a0df3f8cf0792dba996 /Carpet
parent1f0c516da0bc5f60d4da40b58118831db19ed363 (diff)
Carpet: Use hg::baseextent instead of Carpet::maxspacereflevelfact
Use hg::baseextent instead of Carpet::maxspacereflevelfact to determine the stride of a refinement level, because this works independent of the stride on the finest level.
Diffstat (limited to 'Carpet')
-rw-r--r--Carpet/Carpet/src/Recompose.cc26
-rw-r--r--Carpet/Carpet/src/SetupGH.cc16
2 files changed, 25 insertions, 17 deletions
diff --git a/Carpet/Carpet/src/Recompose.cc b/Carpet/Carpet/src/Recompose.cc
index 29eba4337..dfdeec847 100644
--- a/Carpet/Carpet/src/Recompose.cc
+++ b/Carpet/Carpet/src/Recompose.cc
@@ -463,14 +463,16 @@ namespace Carpet {
const rvect origin = domainspecs.AT(m).exterior_min;
const rvect delta = (domainspecs.AT(m).exterior_max - domainspecs.AT(m).exterior_min) / rvect (domainspecs.AT(m).npoints - 1);
const ibbox & ext = superregss.AT(rl).AT(c).extent;
- const ivect & lower = ext.lower();
- const ivect & upper = ext.upper();
+ const ivect & ilower = ext.lower();
+ const ivect & iupper = ext.upper();
const ivect & levfact = spacereffacts.AT(rl);
+ const ibbox & base = hh.baseextent(0,0);
+ const ivect & bstride = base.stride();
cout << " [" << rl << "][" << m << "][" << c << "]"
<< " exterior: "
- << origin + delta * rvect(lower) / rvect(maxspacereflevelfact)
+ << origin + delta * rvect(ilower) / rvect(bstride)
<< " : "
- << origin + delta * rvect(upper) / rvect(maxspacereflevelfact)
+ << origin + delta * rvect(iupper) / rvect(bstride)
<< " : "
<< delta / rvect(levfact) << eol;
}
@@ -539,15 +541,17 @@ namespace Carpet {
const rvect origin = domainspecs.AT(m).exterior_min;
const rvect delta = (domainspecs.AT(m).exterior_max - domainspecs.AT(m).exterior_min) / rvect (domainspecs.AT(m).npoints - 1);
const ibbox ext = hh.extent(ml,rl,c);
- const ivect & lower = ext.lower();
- const ivect & upper = ext.upper();
+ const ivect & ilower = ext.lower();
+ const ivect & iupper = ext.upper();
const int convfact = ipow(mgfact, ml);
const ivect levfact = spacereffacts.AT(rl);
+ const ibbox & base = hh.baseextent(ml,0);
+ const ivect & bstride = base.stride();
cout << " [" << ml << "][" << rl << "][" << m << "][" << c << "]"
<< " exterior: "
- << origin + delta * rvect(lower) / rvect(maxspacereflevelfact)
+ << origin + delta * rvect(ilower) / rvect(bstride)
<< " : "
- << origin + delta * rvect(upper) / rvect(maxspacereflevelfact)
+ << origin + delta * rvect(iupper) / rvect(bstride)
<< " : "
<< delta * rvect(convfact) / rvect(levfact) << eol;
}
@@ -564,11 +568,13 @@ namespace Carpet {
const ivect upper = dd.light_boxes.AT(ml).AT(rl).AT(c).exterior.upper();
const int convfact = ipow(mgfact, ml);
const ivect levfact = spacereffacts.AT(rl);
+ const ibbox & base = hh.baseextent(ml,0);
+ const ivect & bstride = base.stride();
cout << " [" << ml << "][" << rl << "][" << m << "][" << c << "]"
<< " exterior: "
- << origin + delta * rvect(lower) / rvect(maxspacereflevelfact)
+ << origin + delta * rvect(lower) / rvect(bstride)
<< " : "
- << origin + delta * rvect(upper) / rvect(maxspacereflevelfact)
+ << origin + delta * rvect(upper) / rvect(bstride)
<< " : "
<< delta * rvect(convfact) / rvect(levfact) << eol;
}
diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc
index 99de6fdb1..76d0b182d 100644
--- a/Carpet/Carpet/src/SetupGH.cc
+++ b/Carpet/Carpet/src/SetupGH.cc
@@ -655,21 +655,23 @@ namespace Carpet {
ivect const lower = ext.lower();
ivect const upper = ext.upper();
int const convfact = ipow(mgfact, ml);
- assert (all(lower % maxspacereflevelfact == 0));
- assert (all(upper % maxspacereflevelfact == 0));
- assert (all(((upper - lower) / maxspacereflevelfact) % convfact == 0));
+ ibbox const & base = vhh.AT(m)->baseextent(ml,0);
+ ivect const & bstride = base.stride();
+ assert (all(lower % bstride == 0));
+ assert (all(upper % bstride == 0));
+ assert (all(((upper - lower) / bstride) % convfact == 0));
cout << " [" << ml << "][" << rl << "][" << m << "][" << c << "]"
<< " exterior: "
<< "proc "
<< vhh.AT(m)->processor(rl,c)
<< " "
- << lower / maxspacereflevelfact
+ << lower / bstride
<< " : "
- << upper / maxspacereflevelfact
+ << upper / bstride
<< " ("
- << (upper - lower) / maxspacereflevelfact / convfact + 1
+ << (upper - lower) / bstride / convfact + 1
<< ") "
- << prod ((upper - lower) / maxspacereflevelfact / convfact + 1)
+ << prod ((upper - lower) / bstride / convfact + 1)
<< endl;
}
}