diff options
Diffstat (limited to 'Carpet/Carpet/src/modes.cc')
-rw-r--r-- | Carpet/Carpet/src/modes.cc | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/Carpet/Carpet/src/modes.cc b/Carpet/Carpet/src/modes.cc index 038815393..d101a509b 100644 --- a/Carpet/Carpet/src/modes.cc +++ b/Carpet/Carpet/src/modes.cc @@ -113,7 +113,7 @@ namespace Carpet { const int c = dist::rank(); const ibbox& baseext = arrdata.AT(group).AT(m).hh->baseextents.AT(ml).AT(rl); - const ibbox& ext = arrdata.AT(group).AT(m).dd->boxes.AT(ml).AT(rl).AT(c).exterior; + const ibbox& ext = arrdata.AT(group).AT(m).dd->light_boxes.AT(ml).AT(rl).AT(c).exterior; const b2vect& obnds = arrdata.AT(group).AT(m).hh->outer_boundaries(rl,c); cGroupDynamicData & info = groupdata.AT(group).info; @@ -545,7 +545,7 @@ namespace Carpet { // Set cGH fields const ibbox& baseext = vhh.AT(map)->baseextents.AT(mglevel).AT(reflevel); - const ibbox& ext = vdd.AT(map)->boxes.AT(mglevel).AT(reflevel).AT(component).exterior; + const ibbox& ext = vdd.AT(map)->light_boxes.AT(mglevel).AT(reflevel).AT(component).exterior; const b2vect& obnds = vhh.AT(map)->outer_boundaries(reflevel,component); ivect_ref(cctkGH->cctk_lbnd) = @@ -1352,6 +1352,30 @@ namespace Carpet { // + // Loop over a bounding box + // + + void ibbox2iminimax (ibbox const& ext, // component extent + ibbox const& box, // this bbox + ivect& imin, ivect& imax) + { + ivect const izero = ivect(0); + + assert (all ((box.lower() - ext.lower() ) >= 0)); + assert (all ((box.upper() - ext.lower() + ext.stride()) >= 0)); + assert (all ((box.lower() - ext.lower() ) % ext.stride() == 0)); + assert (all ((box.upper() - ext.lower() + ext.stride()) % ext.stride() == 0)); + + imin = (box.lower() - ext.lower() ) / ext.stride(); + imax = (box.upper() - ext.lower() + ext.stride()) / ext.stride(); + + assert (all (0 <= imin)); + assert (box.empty() xor all (imin <= imax)); + } + + + + // // Call a scheduling group // |