diff options
author | Erik Schnetter <schnetter@gmail.com> | 2012-09-16 21:13:15 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2012-09-16 21:13:15 -0400 |
commit | b1f19a754bd95eaa06cd253783ad8dca063e367a (patch) | |
tree | d2dd3492baf459c1e12834cf73ebd66c696e4f6a | |
parent | 6452bcc36e08f09b9ea723ce19ee15873d16b2a1 (diff) |
CarpetLib: Store level_boxes in dh structure
-rw-r--r-- | Carpet/CarpetLib/src/defs.cc | 5 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/dh.cc | 54 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/dh.hh | 19 |
3 files changed, 77 insertions, 1 deletions
diff --git a/Carpet/CarpetLib/src/defs.cc b/Carpet/CarpetLib/src/defs.cc index b142b331f..d9501aa1f 100644 --- a/Carpet/CarpetLib/src/defs.cc +++ b/Carpet/CarpetLib/src/defs.cc @@ -356,12 +356,14 @@ template size_t memoryof (vector<vector<CCTK_REAL> > const & v); template size_t memoryof (vector<vector<ibbox> > const & v); template size_t memoryof (vector<vector<dh::fast_dboxes> > const & v); template size_t memoryof (vector<vector<dh::full_dboxes> > const & v); +template size_t memoryof (vector<vector<dh::level_dboxes> > const & v); template size_t memoryof (vector<vector<dh::light_dboxes> > const & v); template size_t memoryof (vector<vector<dh::local_dboxes> > const & v); template size_t memoryof (vector<vector<region_t> > const & v); template size_t memoryof (vector<vector<vector<CCTK_REAL> > > const & v); template size_t memoryof (vector<vector<vector<dh::fast_dboxes> > > const & v); template size_t memoryof (vector<vector<vector<dh::full_dboxes> > > const & v); +template size_t memoryof (vector<vector<vector<dh::level_dboxes> > > const & v); template size_t memoryof (vector<vector<vector<dh::light_dboxes> > > const & v); template size_t memoryof (vector<vector<vector<dh::local_dboxes> > > const & v); template size_t memoryof (vector<vector<vector<region_t> > > const & v); @@ -409,6 +411,7 @@ template ostream& output (ostream& os, const vector<bbvect>& v); template ostream& output (ostream& os, const vector<i2vect>& v); template ostream& output (ostream& os, const vector<dh::fast_dboxes> & v); template ostream& output (ostream& os, const vector<dh::full_dboxes> & v); +template ostream& output (ostream& os, const vector<dh::level_dboxes> & v); template ostream& output (ostream& os, const vector<dh::light_dboxes> & v); template ostream& output (ostream& os, const vector<dh::local_dboxes> & v); template ostream& output (ostream& os, const vector<region_t>& v); @@ -423,6 +426,7 @@ template ostream& output (ostream& os, const vector<vector<bbvect> >& v); template ostream& output (ostream& os, const vector<vector<i2vect> >& v); template ostream& output (ostream& os, const vector<vector<dh::fast_dboxes> > & b); template ostream& output (ostream& os, const vector<vector<dh::full_dboxes> > & b); +template ostream& output (ostream& os, const vector<vector<dh::level_dboxes> > & b); template ostream& output (ostream& os, const vector<vector<dh::light_dboxes> > & b); template ostream& output (ostream& os, const vector<vector<dh::local_dboxes> > & b); template ostream& output (ostream& os, const vector<vector<region_t> >& v); @@ -430,6 +434,7 @@ template ostream& output (ostream& os, const vector<vector<vector<CCTK_REAL> > > template ostream& output (ostream& os, const vector<vector<vector<ibbox> > >& v); template ostream& output (ostream& os, const vector<vector<vector<dh::fast_dboxes> > > & b); template ostream& output (ostream& os, const vector<vector<vector<dh::full_dboxes> > > & b); +template ostream& output (ostream& os, const vector<vector<vector<dh::level_dboxes> > > & b); template ostream& output (ostream& os, const vector<vector<vector<dh::light_dboxes> > > & b); template ostream& output (ostream& os, const vector<vector<vector<dh::local_dboxes> > > & b); template ostream& output (ostream& os, const vector<vector<vector<region_t> > >& v); diff --git a/Carpet/CarpetLib/src/dh.cc b/Carpet/CarpetLib/src/dh.cc index 799bae113..911355e34 100644 --- a/Carpet/CarpetLib/src/dh.cc +++ b/Carpet/CarpetLib/src/dh.cc @@ -281,7 +281,6 @@ regrid (bool const do_init) light_mboxes old_light_boxes; swap (light_boxes, old_light_boxes); - level_mboxes level_boxes; full_mboxes full_boxes; fast_boxes.clear(); @@ -2067,6 +2066,13 @@ regrid (bool const do_init) cout << box; } // for lc + { + level_dboxes const & box = level_boxes.AT(ml).AT(rl); + cout << eol; + cout << "ml=" << ml << " rl=" << rl << eol; + cout << box; + } + fast_dboxes const & fast_box = fast_boxes.AT(ml).AT(rl); cout << eol; cout << "ml=" << ml << " rl=" << rl << eol; @@ -2080,6 +2086,7 @@ regrid (bool const do_init) cout << "memoryof(dh)=" << memoryof(*this) << eol; cout << "memoryof(dh.light_boxes)=" << memoryof(light_boxes) << eol; cout << "memoryof(dh.local_boxes)=" << memoryof(local_boxes) << eol; + cout << "memoryof(dh.level_boxes)=" << memoryof(level_boxes) << eol; cout << "memoryof(dh.fast_boxes)=" << memoryof(fast_boxes) << eol; int gfcount = 0; size_t gfmemory = 0; @@ -2374,6 +2381,8 @@ memory () memoryof (overlap_widths) + memoryof (prolongation_orders_space) + memoryof (light_boxes) + + memoryof (local_boxes) + + memoryof (level_boxes) + memoryof (fast_boxes) + memoryof (gfs); } @@ -2429,6 +2438,15 @@ memory () } size_t +dh::level_dboxes:: +memory () + const +{ + return + memoryof (active); +} + +size_t dh::full_dboxes:: memory () const @@ -2569,6 +2587,26 @@ input (istream & is) } istream & +dh::level_dboxes:: +input (istream & is) +{ + // Regions: + try { + skipws (is); + consume (is, "dh::level_dboxes:{"); + skipws (is); + consume (is, "active:"); + is >> active; + skipws (is); + consume (is, "}"); + } catch (input_error & err) { + cout << "Input error while reading a dh::level_dboxes" << endl; + throw err; + } + return is; +} + +istream & dh::full_dboxes:: input (istream & is) { @@ -2680,6 +2718,8 @@ output (ostream & os) << "overlap_widths=" << overlap_widths << "," << "prolongation_orders_space=" << prolongation_orders_space << "," << "light_boxes=" << light_boxes << "," + << "local_boxes=" << local_boxes << "," + << "level_boxes=" << level_boxes << "," << "fast_boxes=" << fast_boxes << "," << "gfs={"; { @@ -2737,6 +2777,18 @@ output (ostream & os) } ostream & +dh::level_dboxes:: +output (ostream & os) + const +{ + // Regions: + os << "dh::level_dboxes:{" << eol + << " active: " << active << eol + << "}" << eol; + return os; +} + +ostream & dh::full_dboxes:: output (ostream & os) const diff --git a/Carpet/CarpetLib/src/dh.hh b/Carpet/CarpetLib/src/dh.hh index e0c78fd2a..3ee014006 100644 --- a/Carpet/CarpetLib/src/dh.hh +++ b/Carpet/CarpetLib/src/dh.hh @@ -100,6 +100,9 @@ public: ibset active; // ibset bndref; + size_t memory () const CCTK_MEMBER_ATTRIBUTE_PURE; + istream & input (istream & is); + ostream & output (ostream & os) const; }; struct full_dboxes { @@ -238,6 +241,7 @@ public: // should be readonly light_mboxes light_boxes; // grid hierarchy [ml][rl][c] local_mboxes local_boxes; // grid hierarchy [ml][rl][lc] + level_mboxes level_boxes; // grid hierarchy [ml][rl] fast_mboxes fast_boxes; // grid hierarchy [ml][rl][p] typedef list<ggf*>::iterator ggf_handle; @@ -308,6 +312,11 @@ inline size_t memoryof (dh::local_dboxes const & b) return b.memory (); } +inline size_t memoryof (dh::level_dboxes const & b) +{ + return b.memory (); +} + inline size_t memoryof (dh::full_dboxes const & b) { return b.memory (); @@ -333,6 +342,11 @@ inline istream & operator>> (istream & is, dh::local_dboxes & b) return b.input (is); } +inline istream & operator>> (istream & is, dh::level_dboxes & b) +{ + return b.input (is); +} + inline istream & operator>> (istream & is, dh::full_dboxes & b) { return b.input (is); @@ -353,6 +367,11 @@ inline ostream & operator<< (ostream & os, dh::local_dboxes const & b) return b.output (os); } +inline ostream & operator<< (ostream & os, dh::level_dboxes const & b) +{ + return b.output (os); +} + inline ostream & operator<< (ostream & os, dh::full_dboxes const & b) { return b.output (os); |