From b1f19a754bd95eaa06cd253783ad8dca063e367a Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Sun, 16 Sep 2012 21:13:15 -0400 Subject: CarpetLib: Store level_boxes in dh structure --- Carpet/CarpetLib/src/defs.cc | 5 ++++ Carpet/CarpetLib/src/dh.cc | 54 +++++++++++++++++++++++++++++++++++++++++++- Carpet/CarpetLib/src/dh.hh | 19 ++++++++++++++++ 3 files changed, 77 insertions(+), 1 deletion(-) 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 > const & v); template size_t memoryof (vector > const & v); template size_t memoryof (vector > const & v); template size_t memoryof (vector > const & v); +template size_t memoryof (vector > const & v); template size_t memoryof (vector > const & v); template size_t memoryof (vector > const & v); template size_t memoryof (vector > const & v); template size_t memoryof (vector > > const & v); template size_t memoryof (vector > > const & v); template size_t memoryof (vector > > const & v); +template size_t memoryof (vector > > const & v); template size_t memoryof (vector > > const & v); template size_t memoryof (vector > > const & v); template size_t memoryof (vector > > const & v); @@ -409,6 +411,7 @@ template ostream& output (ostream& os, const vector& v); template ostream& output (ostream& os, const vector& v); template ostream& output (ostream& os, const vector & v); template ostream& output (ostream& os, const vector & v); +template ostream& output (ostream& os, const vector & v); template ostream& output (ostream& os, const vector & v); template ostream& output (ostream& os, const vector & v); template ostream& output (ostream& os, const vector& v); @@ -423,6 +426,7 @@ template ostream& output (ostream& os, const vector >& v); template ostream& output (ostream& os, const vector >& v); template ostream& output (ostream& os, const vector > & b); template ostream& output (ostream& os, const vector > & b); +template ostream& output (ostream& os, const vector > & b); template ostream& output (ostream& os, const vector > & b); template ostream& output (ostream& os, const vector > & b); template ostream& output (ostream& os, const vector >& v); @@ -430,6 +434,7 @@ template ostream& output (ostream& os, const vector > > template ostream& output (ostream& os, const vector > >& v); template ostream& output (ostream& os, const vector > > & b); template ostream& output (ostream& os, const vector > > & b); +template ostream& output (ostream& os, const vector > > & b); template ostream& output (ostream& os, const vector > > & b); template ostream& output (ostream& os, const vector > > & b); template ostream& output (ostream& os, const vector > >& 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); } @@ -2428,6 +2437,15 @@ memory () memoryof (fine_boundary); } +size_t +dh::level_dboxes:: +memory () + const +{ + return + memoryof (active); +} + size_t dh::full_dboxes:: memory () @@ -2568,6 +2586,26 @@ input (istream & is) return 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={"; { @@ -2736,6 +2776,18 @@ output (ostream & os) return 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) 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::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); -- cgit v1.2.3