diff options
-rw-r--r-- | Carpet/Carpet/src/Initialise.cc | 4 | ||||
-rw-r--r-- | Carpet/Carpet/src/Recompose.cc | 16 | ||||
-rw-r--r-- | Carpet/Carpet/src/SetupGH.cc | 4 | ||||
-rw-r--r-- | Carpet/Carpet/src/modes.cc | 6 | ||||
-rw-r--r-- | Carpet/CarpetIOHDF5/src/Recover.cc | 8 | ||||
-rw-r--r-- | Carpet/CarpetInterp/src/interp.cc | 10 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/dh.cc | 6 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/gh.cc | 66 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/gh.hh | 38 | ||||
-rw-r--r-- | Carpet/CarpetReduce/src/mask_carpet.cc | 8 | ||||
-rw-r--r-- | Carpet/CarpetRegrid/src/automatic.cc | 4 |
11 files changed, 94 insertions, 76 deletions
diff --git a/Carpet/Carpet/src/Initialise.cc b/Carpet/Carpet/src/Initialise.cc index 8d6003ee9..25f0a4b75 100644 --- a/Carpet/Carpet/src/Initialise.cc +++ b/Carpet/Carpet/src/Initialise.cc @@ -111,8 +111,8 @@ namespace Carpet { // Write grid structure to file OutputGridStructure (cgh, m, - vhh.at(m)->extents, vhh.at(m)->outer_boundaries, - vhh.at(m)->processors); + vhh.at(m)->extents(), vhh.at(m)->outer_boundaries(), + vhh.at(m)->processors()); } // loop over maps } diff --git a/Carpet/Carpet/src/Recompose.cc b/Carpet/Carpet/src/Recompose.cc index 2991e8200..269606c8b 100644 --- a/Carpet/Carpet/src/Recompose.cc +++ b/Carpet/Carpet/src/Recompose.cc @@ -133,9 +133,9 @@ namespace Carpet { bool did_change = false; BEGIN_MAP_LOOP(cgh, CCTK_GF) { - gh<dim>::rexts bbsss = vhh.at(map)->extents; - gh<dim>::rbnds obss = vhh.at(map)->outer_boundaries; - gh<dim>::rprocs pss = vhh.at(map)->processors; + gh<dim>::rexts bbsss = vhh.at(map)->extents(); + gh<dim>::rbnds obss = vhh.at(map)->outer_boundaries(); + gh<dim>::rprocs pss = vhh.at(map)->processors(); // Check whether to recompose CCTK_INT const do_recompose @@ -187,8 +187,8 @@ namespace Carpet { for (int ml=0; ml<hh.mglevels(rl,c); ++ml) { const int convfact = ipow(mgfact, ml); const int levfact = ipow(reffact, rl); - const ivect lower = hh.extents.at(rl).at(c).at(ml).lower(); - const ivect upper = hh.extents.at(rl).at(c).at(ml).upper(); + const ivect lower = hh.extents().at(rl).at(c).at(ml).lower(); + const ivect upper = hh.extents().at(rl).at(c).at(ml).upper(); assert (all(lower * levfact % maxreflevelfact == 0)); assert (all(upper * levfact % maxreflevelfact == 0)); assert (all(((upper - lower) * levfact / maxreflevelfact) @@ -196,7 +196,7 @@ namespace Carpet { cout << " [" << ml << "][" << rl << "][" << m << "][" << c << "]" << " exterior: " << "proc " - << hh.processors.at(rl).at(c) + << hh.processors().at(rl).at(c) << " " << lower * levfact / maxreflevelfact << " : " @@ -215,8 +215,8 @@ namespace Carpet { for (int ml=0; ml<hh.mglevels(rl,c); ++ml) { const rvect origin = origin_space.at(0); const rvect delta = delta_space; - const ivect lower = hh.extents.at(rl).at(c).at(ml).lower(); - const ivect upper = hh.extents.at(rl).at(c).at(ml).upper(); + const ivect lower = hh.extents().at(rl).at(c).at(ml).lower(); + const ivect upper = hh.extents().at(rl).at(c).at(ml).upper(); const int convfact = ipow(mgfact, ml); const int levfact = ipow(reffact, rl); cout << " [" << ml << "][" << rl << "][" << m << "][" << c << "]" diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc index 71df9289d..8adbdc568 100644 --- a/Carpet/Carpet/src/SetupGH.cc +++ b/Carpet/Carpet/src/SetupGH.cc @@ -774,8 +774,8 @@ namespace Carpet { const int rl = 0; for (int c=0; c<vhh.at(m)->components(rl); ++c) { for (int ml=0; ml<vhh.at(m)->mglevels(rl,c); ++ml) { - const ivect lower = vhh.at(m)->extents.at(rl).at(c).at(ml).lower(); - const ivect upper = vhh.at(m)->extents.at(rl).at(c).at(ml).upper(); + const ivect lower = vhh.at(m)->extents().at(rl).at(c).at(ml).lower(); + const ivect upper = vhh.at(m)->extents().at(rl).at(c).at(ml).upper(); const int convfact = ipow(mgfact, ml); assert (all(lower % maxreflevelfact == 0)); assert (all(upper % maxreflevelfact == 0)); diff --git a/Carpet/Carpet/src/modes.cc b/Carpet/Carpet/src/modes.cc index 99820ee04..46e2dc184 100644 --- a/Carpet/Carpet/src/modes.cc +++ b/Carpet/Carpet/src/modes.cc @@ -95,8 +95,8 @@ namespace Carpet { const int m = 0; const int c = CCTK_MyProc(cgh); - const ibbox& base = arrdata.at(group).at(m).hh->bases.at(rl).at(ml); - const bbvect& obnds = arrdata.at(group).at(m).hh->outer_boundaries.at(rl).at(c); + const ibbox& base = arrdata.at(group).at(m).hh->bases().at(rl).at(ml); + 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(rl).at(c).at(ml).exterior; ivect::ref(const_cast<int*>(groupdata.at(group).info.nghostzones)) @@ -349,7 +349,7 @@ namespace Carpet { // Set cGH fields const ibbox& baseext = vdd.at(map)->bases.at(reflevel).at(mglevel).exterior; - const bbvect& obnds = vhh.at(map)->outer_boundaries.at(reflevel).at(component); + const bbvect& obnds = vhh.at(map)->outer_boundaries().at(reflevel).at(component); const ibbox& ext = vdd.at(map)->boxes.at(reflevel).at(component).at(mglevel).exterior; ivect::ref(cgh->cctk_lsh) = ext.shape() / ext.stride(); diff --git a/Carpet/CarpetIOHDF5/src/Recover.cc b/Carpet/CarpetIOHDF5/src/Recover.cc index 20520624e..f6e7fed61 100644 --- a/Carpet/CarpetIOHDF5/src/Recover.cc +++ b/Carpet/CarpetIOHDF5/src/Recover.cc @@ -553,8 +553,8 @@ int ReadVar (const cGH* const cctkGH, const int vindex, assert(grouptype == CCTK_ARRAY || grouptype == CCTK_SCALAR); if (grouptype == CCTK_SCALAR) { - lb[0] = arrdata.at(group).at(Carpet::map).hh->processors.at(reflevel).at(component); - ub[0] = arrdata.at(group).at(Carpet::map).hh->processors.at(reflevel).at(component); + lb[0] = arrdata.at(group).at(Carpet::map).hh->processors().at(reflevel).at(component); + ub[0] = arrdata.at(group).at(Carpet::map).hh->processors().at(reflevel).at(component); for(int i=1;i<dim;i++) { lb[i]=0; @@ -565,10 +565,10 @@ int ReadVar (const cGH* const cctkGH, const int vindex, { const int newlb = lb[gpdim-1] + (ub[gpdim-1]-lb[gpdim-1]+1)* - (arrdata.at(group).at(Carpet::map).hh->processors.at(reflevel).at(component)); + (arrdata.at(group).at(Carpet::map).hh->processors().at(reflevel).at(component)); const int newub = ub[gpdim-1] + (ub[gpdim-1]-lb[gpdim-1]+1)* - (arrdata.at(group).at(Carpet::map).hh->processors.at(reflevel).at(component)); + (arrdata.at(group).at(Carpet::map).hh->processors().at(reflevel).at(component)); lb[gpdim-1] = newlb; ub[gpdim-1] = newub; } diff --git a/Carpet/CarpetInterp/src/interp.cc b/Carpet/CarpetInterp/src/interp.cc index c5b90a410..ba9b01873 100644 --- a/Carpet/CarpetInterp/src/interp.cc +++ b/Carpet/CarpetInterp/src/interp.cc @@ -279,11 +279,11 @@ namespace CarpetInterp { int const fact = maxreflevelfact / ipow(reffact, rl) * ipow(mgfact, mglevel); ivect const ipos = ivect(floor((pos - lower) / (delta * fact) + 0.5)) * fact; - assert (all(ipos % vhh.at(m)->bases.at(rl).at(ml).stride() == 0)); + assert (all(ipos % vhh.at(m)->bases().at(rl).at(ml).stride() == 0)); // TODO: use something faster than a linear search for (int c=0; c<vhh.at(m)->components(rl); ++c) { - if (vhh.at(m)->extents.at(rl).at(c).at(ml).contains(ipos)) { + if (vhh.at(m)->extents().at(rl).at(c).at(ml).contains(ipos)) { rlev.at(n) = rl; home.at(n) = c; goto found; @@ -360,7 +360,7 @@ namespace CarpetInterp { for (int rl=minrl; rl<maxrl; ++rl) { for (int c=0; c<vhh.at(m)->components(rl); ++c) { allcoords.at(ind_prc(p,m,rl,c)).change_processor - (state, vhh.at(m)->processors.at(rl).at(c)); + (state, vhh.at(m)->processors().at(rl).at(c)); } } } @@ -383,7 +383,7 @@ namespace CarpetInterp { ivect const str (1); ibbox const extent (lo, up-str, str); alloutputs.at(ind_prc(p,m,rl,c)).allocate - (extent, vhh.at(m)->processors.at(rl).at(c)); + (extent, vhh.at(m)->processors().at(rl).at(c)); ivect const slo (0); ivect sup (1); @@ -391,7 +391,7 @@ namespace CarpetInterp { ivect const sstr (1); ibbox const sextent (lo, up-str, str); allstatuses.at(ind_prc(p,m,rl,c)).allocate - (sextent, vhh.at(m)->processors.at(rl).at(c)); + (sextent, vhh.at(m)->processors().at(rl).at(c)); } } } diff --git a/Carpet/CarpetLib/src/dh.cc b/Carpet/CarpetLib/src/dh.cc index 13a780a18..0502342d3 100644 --- a/Carpet/CarpetLib/src/dh.cc +++ b/Carpet/CarpetLib/src/dh.cc @@ -93,7 +93,7 @@ void dh<D>::allocate_bboxes() { for (int c=0; c<h.components(rl); ++c) { boxes.at(rl).at(c).resize(h.mglevels(rl,c)); for (int ml=0; ml<h.mglevels(rl,c); ++ml) { - const ibbox intr = h.extents.at(rl).at(c).at(ml); + const ibbox intr = h.extents().at(rl).at(c).at(ml); dboxes & b = boxes.at(rl).at(c).at(ml); // Interior @@ -107,8 +107,8 @@ void dh<D>::allocate_bboxes() { // the exterior is redundant) ivect ldist(lghosts), udist(ughosts); for (int d=0; d<D; ++d) { - if (h.outer_boundaries.at(rl).at(c)[d][0]) ldist[d] = 0; - if (h.outer_boundaries.at(rl).at(c)[d][1]) udist[d] = 0; + if (h.outer_boundaries().at(rl).at(c)[d][0]) ldist[d] = 0; + if (h.outer_boundaries().at(rl).at(c)[d][1]) udist[d] = 0; } b.exterior = intr.expand(ldist, udist); diff --git a/Carpet/CarpetLib/src/gh.cc b/Carpet/CarpetLib/src/gh.cc index 26f831337..bce6afc92 100644 --- a/Carpet/CarpetLib/src/gh.cc +++ b/Carpet/CarpetLib/src/gh.cc @@ -41,9 +41,9 @@ void gh<D>::recompose (const rexts& exts, { DECLARE_CCTK_PARAMETERS; - extents = exts; - outer_boundaries = outer_bounds; - processors = procs; + _extents = exts; + _outer_boundaries = outer_bounds; + _processors = procs; // Consistency checks @@ -76,11 +76,11 @@ void gh<D>::recompose (const rexts& exts, template<int D> void gh<D>::check_processor_number_consistency () { for (int rl=0; rl<reflevels(); ++rl) { - assert (processors.size() == extents.size()); - assert (outer_boundaries.size() == extents.size()); + assert (processors().size() == extents().size()); + assert (outer_boundaries().size() == extents().size()); for (int c=0; c<components(rl); ++c) { - assert (processors.at(rl).size() == extents.at(rl).size()); - assert (outer_boundaries.at(rl).size() == extents.at(rl).size()); + assert (processors().at(rl).size() == extents().at(rl).size()); + assert (outer_boundaries().at(rl).size() == extents().at(rl).size()); } } } @@ -91,14 +91,14 @@ void gh<D>::check_multigrid_consistency () { for (int c=0; c<components(rl); ++c) { assert (mglevels(rl,c)>0); for (int ml=1; ml<mglevels(rl,c); ++ml) { - assert (all(extents.at(rl).at(c).at(ml).stride() - == ivect(mgfact) * extents.at(rl).at(c).at(ml-1).stride())); + assert (all(extents().at(rl).at(c).at(ml).stride() + == ivect(mgfact) * extents().at(rl).at(c).at(ml-1).stride())); // TODO: put the check back in, taking outer boundaries into // account #if 0 - assert (extents.at(rl).at(c).at(ml) - .contracted_for(extents.at(rl).at(c).at(ml-1)) - .is_contained_in(extents.at(rl).at(c).at(ml-1))); + assert (extents().at(rl).at(c).at(ml) + .contracted_for(extents().at(rl).at(c).at(ml-1)) + .is_contained_in(extents().at(rl).at(c).at(ml-1))); #endif } } @@ -111,12 +111,12 @@ void gh<D>::check_component_consistency () { assert (components(rl)>0); for (int c=0; c<components(rl); ++c) { for (int ml=0; ml<mglevels(rl,c); ++ml) { - ibbox &b = extents.at(rl).at(c).at(ml); - ibbox &b0 = extents.at(rl).at(0).at(ml); + const ibbox &b = extents().at(rl).at(c).at(ml); + const ibbox &b0 = extents().at(rl).at(0).at(ml); assert (all(b.stride() == b0.stride())); assert (b.is_aligned_with(b0)); for (int cc=c+1; cc<components(rl); ++cc) { - assert ((b & extents.at(rl).at(cc).at(ml)).empty()); + assert ((b & extents().at(rl).at(cc).at(ml)).empty()); } } } @@ -130,7 +130,7 @@ void gh<D>::check_base_grid_extent () { // TODO: put the check back in, taking outer boundaries into // account #if 0 - assert (extents.at(0).at(c).at(0).is_contained_in(baseextent)); + assert (extents().at(0).at(c).at(0).is_contained_in(baseextent)); #endif } } @@ -139,19 +139,19 @@ void gh<D>::check_base_grid_extent () { template<int D> void gh<D>::check_refinement_levels () { for (int rl=1; rl<reflevels(); ++rl) { - assert (all(extents.at(rl-1).at(0).at(0).stride() - == ivect(reffact) * extents.at(rl).at(0).at(0).stride())); + assert (all(extents().at(rl-1).at(0).at(0).stride() + == ivect(reffact) * extents().at(rl).at(0).at(0).stride())); // Check contained-ness: // first take all coarse grids ... bboxset<int,D> all; for (int c=0; c<components(rl-1); ++c) { - all |= extents.at(rl-1).at(c).at(0); + all |= extents().at(rl-1).at(c).at(0); } // ... remember their size ... const int sz = all.size(); // ... then add the coarsified fine grids ... for (int c=0; c<components(rl); ++c) { - all |= extents.at(rl).at(c).at(0).contracted_for(extents.at(rl-1).at(0).at(0)); + all |= extents().at(rl).at(c).at(0).contracted_for(extents().at(rl-1).at(0).at(0)); } // ... and then check the sizes: assert (all.size() == sz); @@ -160,17 +160,17 @@ void gh<D>::check_refinement_levels () { template<int D> void gh<D>::calculate_base_extents_of_all_levels () { - bases.resize(reflevels()); + _bases.resize(reflevels()); for (int rl=0; rl<reflevels(); ++rl) { if (components(rl)==0) { - bases.at(rl).resize(0); + _bases.at(rl).resize(0); } else { - bases.at(rl).resize(mglevels(rl,0)); + _bases.at(rl).resize(mglevels(rl,0)); for (int ml=0; ml<mglevels(rl,0); ++ml) { - bases.at(rl).at(ml) = ibbox(); - ibbox &bb = bases.at(rl).at(ml); + _bases.at(rl).at(ml) = ibbox(); + ibbox &bb = _bases.at(rl).at(ml); for (int c=0; c<components(rl); ++c) { - bb = bb.expanded_containing(extents.at(rl).at(c).at(ml)); + bb = bb.expanded_containing(extents().at(rl).at(c).at(ml)); } } } @@ -222,9 +222,9 @@ void gh<D>::do_output_bboxes (ostream& os) const { os << endl; os << "gh bboxes:" << endl; os << "rl=" << rl << " c=" << c << " ml=" << ml << endl; - os << "extent=" << extents.at(rl).at(c).at(ml) << endl; - os << "outer_boundary=" << outer_boundaries.at(rl).at(c) << endl; - os << "processor=" << processors.at(rl).at(c) << endl; + os << "extent=" << extents().at(rl).at(c).at(ml) << endl; + os << "outer_boundary=" << outer_boundaries().at(rl).at(c) << endl; + os << "processor=" << processors().at(rl).at(c) << endl; } } } @@ -238,7 +238,7 @@ void gh<D>::do_output_bases (ostream& os) const { os << endl; os << "gh bases:" << endl; os << "rl=" << rl << " ml=" << ml << endl; - os << "base=" << bases.at(rl).at(ml) << endl; + os << "base=" << bases().at(rl).at(ml) << endl; } } } @@ -249,9 +249,9 @@ ostream& gh<D>::output (ostream& os) const { os << "gh<" << D << ">:" << "reffactor=" << reffact << ",refcentering=" << refcent << "," << "mgfactor=" << mgfact << ",mgcentering=" << mgcent << "," - << "extents=" << extents << "," - << "outer_boundaries=" << outer_boundaries << "," - << "processors=" << processors << "," + << "extents=" << extents() << "," + << "outer_boundaries=" << outer_boundaries() << "," + << "processors=" << processors() << "," << "dhs={"; int cnt=0; for (typename list<dh<D>*>::const_iterator d = dhs.begin(); diff --git a/Carpet/CarpetLib/src/gh.hh b/Carpet/CarpetLib/src/gh.hh index 0bad3540a..462564f5c 100644 --- a/Carpet/CarpetLib/src/gh.hh +++ b/Carpet/CarpetLib/src/gh.hh @@ -62,14 +62,15 @@ public: // should be readonly const centering mgcent; // default (vertex or cell centered) const ibbox baseextent; - vector<vector<ibbox> > bases; // [rl][ml] - // TODO: invent structure for this - rexts extents; // extents of all grids - rbnds outer_boundaries; // boundary descriptions of all grids - rprocs processors; // processor numbers of all grids private: + vector<vector<ibbox> > _bases; // [rl][ml] + // TODO: invent structure for this + rexts _extents; // extents of all grids + rbnds _outer_boundaries; // boundary descriptions of all grids + rprocs _processors; // processor numbers of all grids + list<th<D>*> ths; // list of all time hierarchies list<dh<D>*> dhs; // list of all data hierarchies @@ -87,26 +88,42 @@ public: void recompose (const rexts& exts, const rbnds& outer_bounds, const rprocs& procs, const bool do_prolongate); + + const rexts & extents() const { + return _extents; + } + + const rbnds & outer_boundaries() const { + return _outer_boundaries; + } + + const rprocs & processors() const { + return _processors; + } + + const vector<vector<ibbox> > & bases() const { + return _bases; + } // Accessors int reflevels () const { - return (int)extents.size(); + return (int)_extents.size(); } int components (const int rl) const { - return (int)extents.at(rl).size(); + return (int)_extents.at(rl).size(); } int mglevels (const int rl, const int c) const { - return (int)extents.at(rl).at(c).size(); + return (int)_extents.at(rl).at(c).size(); } bvect outer_boundary (const int rl, const int c) const { - return outer_boundaries.at(rl).at(c); + return _outer_boundaries.at(rl).at(c); } int proc (const int rl, const int c) const { - return processors.at(rl).at(c); + return _processors.at(rl).at(c); } bool is_local (const int rl, const int c) const { @@ -137,6 +154,7 @@ private: void calculate_base_extents_of_all_levels (); void do_output_bboxes (ostream& os) const; void do_output_bases (ostream& os) const; + }; diff --git a/Carpet/CarpetReduce/src/mask_carpet.cc b/Carpet/CarpetReduce/src/mask_carpet.cc index 7a223d693..912fbda8a 100644 --- a/Carpet/CarpetReduce/src/mask_carpet.cc +++ b/Carpet/CarpetReduce/src/mask_carpet.cc @@ -50,22 +50,22 @@ namespace CarpetMask { gh<dim> const & hh = *vhh.at(Carpet::map); dh<dim> const & dd = *vdd.at(Carpet::map); - ibbox const & base = hh.bases.at(reflevel).at(mglevel); + ibbox const & base = hh.bases().at(reflevel).at(mglevel); // Calculate the union of all refined regions ibset refined; for (int c=0; c<hh.components(reflevel); ++c) { - refined |= hh.extents.at(reflevel).at(c).at(mglevel); + refined |= hh.extents().at(reflevel).at(c).at(mglevel); } refined.normalize(); // Calculate the union of all coarse regions ibset parent; for (int c=0; c<hh.components(reflevel-1); ++c) { -// parent |= hh.extents.at(reflevel-1).at(c).at(mglevel).expanded_for(base); - parent |= hh.extents.at(reflevel-1).at(c).at(mglevel).expand(ivect(reffact-1),ivect(reffact-1)).contracted_for(base); +// parent |= hh.extents().at(reflevel-1).at(c).at(mglevel).expanded_for(base); + parent |= hh.extents().at(reflevel-1).at(c).at(mglevel).expand(ivect(reffact-1),ivect(reffact-1)).contracted_for(base); } parent.normalize(); diff --git a/Carpet/CarpetRegrid/src/automatic.cc b/Carpet/CarpetRegrid/src/automatic.cc index 775175db1..8549b3875 100644 --- a/Carpet/CarpetRegrid/src/automatic.cc +++ b/Carpet/CarpetRegrid/src/automatic.cc @@ -125,7 +125,7 @@ namespace CarpetRegrid { list<ibbox> bbl; for (int c=0; c<hh.components(rl); ++c) { - const ibbox region = hh.extents.at(rl).at(c).at(ml); + const ibbox region = hh.extents().at(rl).at(c).at(ml); assert (! region.empty()); const data<CCTK_REAL,dim>& errordata = *errorgf(tl,rl,c,ml); @@ -162,7 +162,7 @@ namespace CarpetRegrid { // Create obs from bbs obs.resize (bbs.size()); for (size_t c=0; c<bbs.size(); ++c) { - assert (hh.bases.size()>0 && hh.bases.at(0).size()>0); + assert (hh.bases().size()>0 && hh.bases().at(0).size()>0); obs.at(c) = zip ((vect<bool,2> (*) (bool, bool)) &vect<bool,2>::make, bbs.at(c).lower() == hh.baseextent.lower(), bbs.at(c).upper() == hh.baseextent.upper()); |