diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2007-01-13 01:44:00 +0000 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2007-01-13 01:44:00 +0000 |
commit | ee39c26d53b65c58d69e63d0a85abcf6310426a1 (patch) | |
tree | 564588b5be8ab1e6a89fdb7564ff7ea114769322 /Carpet/Carpet/src/modes.cc | |
parent | 5222a5e887c9be7fbf5f905ac99285dc17db2cbb (diff) |
Carpet: Change regridding API to use region_t
Change the regridding API to use region_t. This is a major API
change.
Use the information in region_t to correct the load balancing when
outer buffer zones are used.
darcs-hash:20070113014409-dae7b-33f78948a7b826ea7806513d7864730fe64c14a9.gz
Diffstat (limited to 'Carpet/Carpet/src/modes.cc')
-rw-r--r-- | Carpet/Carpet/src/modes.cc | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/Carpet/Carpet/src/modes.cc b/Carpet/Carpet/src/modes.cc index 1352cca06..4d123a3f3 100644 --- a/Carpet/Carpet/src/modes.cc +++ b/Carpet/Carpet/src/modes.cc @@ -97,8 +97,8 @@ namespace Carpet { const int c = CCTK_MyProc(cctkGH); const ibbox& base = arrdata.at(group).at(m).hh->bases().at(ml).at(rl); - const bbvect& obnds = arrdata.at(group).at(m).hh->outer_boundaries().at(rl).at(c); const ibbox& ext = arrdata.at(group).at(m).dd->boxes.at(ml).at(rl).at(c).exterior; + const b2vect& obnds = arrdata.at(group).at(m).hh->outer_boundaries(rl,c); ivect::ref(const_cast<int*>(groupdata.at(group).info.nghostzones)) = arrdata.at(group).at(m).dd->ghosts[0]; @@ -121,8 +121,8 @@ namespace Carpet { ubnd[d] = lsh[d] - 1; } for (int d=0; d<dim; ++d) { - const_cast<int*>(groupdata.at(group).info.bbox)[2*d ] = obnds[d][0]; - const_cast<int*>(groupdata.at(group).info.bbox)[2*d+1] = obnds[d][1]; + const_cast<int*>(groupdata.at(group).info.bbox)[2*d ] = obnds[0][d]; + const_cast<int*>(groupdata.at(group).info.bbox)[2*d+1] = obnds[1][d]; } groupdata.at(group).info.activetimelevels = groupdata.at(group).activetimelevels.at(mglevel).at(0); @@ -347,10 +347,9 @@ namespace Carpet { // Set grid shape const ibbox& coarseext = vdd.at(map)->bases.at(mglevel).at(0 ).exterior; const ibbox& baseext = vdd.at(map)->bases.at(mglevel).at(reflevel).exterior; - assert (all (baseext.lower() % baseext.stride() == 0)); - assert (all ((baseext.lower() - coarseext.lower()) % baseext.stride() == 0)); - ivect::ref(cctkGH->cctk_levoff) = (baseext.lower() - coarseext.lower()) / baseext.stride(); - ivect::ref(cctkGH->cctk_levoffdenom) = 1; +// assert (all (baseext.lower() % baseext.stride() == 0)); + ivect::ref(cctkGH->cctk_levoff) = baseext.lower() - coarseext.lower(); + ivect::ref(cctkGH->cctk_levoffdenom) = baseext.stride(); ivect::ref(cctkGH->cctk_gsh) = baseext.shape() / baseext.stride(); assert (all (vdd.at(map)->ghosts[0] == vdd.at(map)->ghosts[1])); ivect::ref(cctkGH->cctk_nghostzones) = vdd.at(map)->ghosts[0]; @@ -438,8 +437,8 @@ namespace Carpet { // Set cGH fields const ibbox& baseext = vdd.at(map)->bases.at(mglevel).at(reflevel).exterior; - const bbvect& obnds = vhh.at(map)->outer_boundaries().at(reflevel).at(component); const ibbox& ext = vdd.at(map)->boxes.at(mglevel).at(reflevel).at(component).exterior; + const b2vect& obnds = vhh.at(map)->outer_boundaries(reflevel,component); ivect::ref(cctkGH->cctk_lsh) = ext.shape() / ext.stride(); ivect::ref(cctkGH->cctk_lbnd) @@ -450,8 +449,8 @@ namespace Carpet { ivect::ref(cctkGH->cctk_to) = ivect::ref(cctkGH->cctk_lsh); for (int d=0; d<dim; ++d) { - cctkGH->cctk_bbox[2*d ] = obnds[d][0]; - cctkGH->cctk_bbox[2*d+1] = obnds[d][1]; + cctkGH->cctk_bbox[2*d ] = obnds[0][d]; + cctkGH->cctk_bbox[2*d+1] = obnds[1][d]; } for (int stg=0; stg<CCTK_NSTAGGER; ++stg) { |