aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetInterp2
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2008-10-01 11:57:31 -0500
committerErik Schnetter <schnetter@cct.lsu.edu>2008-10-01 16:57:19 -0500
commit45863a4d7ca26ebdbc030aad8bfb74eca4acceac (patch)
treecb237254b2f18ac175f01ae7613b88071ad43e69 /Carpet/CarpetInterp2
parentbc031aab4bc2bcb04fbd0c95726366aabf65b53b (diff)
CarpetInterp2: Allow interpolation in global mode
Diffstat (limited to 'Carpet/CarpetInterp2')
-rw-r--r--Carpet/CarpetInterp2/src/fasterp.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/Carpet/CarpetInterp2/src/fasterp.cc b/Carpet/CarpetInterp2/src/fasterp.cc
index 19d0eed51..1bea555f4 100644
--- a/Carpet/CarpetInterp2/src/fasterp.cc
+++ b/Carpet/CarpetInterp2/src/fasterp.cc
@@ -602,7 +602,14 @@ namespace CarpetInterp2 {
vector<int> proc (npoints);
fill_with_poison (proc);
vector<int> nlocs (nprocs, 0);
- assert (Carpet::is_level_mode());
+ int min_rl, max_rl;
+ if (Carpet::is_level_mode()) {
+ min_rl = Carpet::reflevel;
+ max_rl = Carpet::reflevel + 1;
+ } else if (Carpet::is_global_mode()) {
+ min_rl = 0;
+ max_rl = Carpet::reflevels;
+ }
#pragma omp parallel for
for (int n=0; n<npoints; ++n) {
int const m = locations.maps.AT(n);
@@ -620,9 +627,7 @@ namespace CarpetInterp2 {
// Find refinement level and component
int rl, c;
ivect ipos;
- hh->locate_position (rpos,
- Carpet::mglevel,
- Carpet::reflevel, Carpet::reflevel+1,
+ hh->locate_position (rpos, Carpet::mglevel, min_rl, max_rl,
rl, c, ipos);
if (not (rl>=0 and c>=0)) {
#pragma omp critical