aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2012-09-16 21:13:15 -0400
committerErik Schnetter <schnetter@gmail.com>2012-09-16 21:13:15 -0400
commitb1f19a754bd95eaa06cd253783ad8dca063e367a (patch)
treed2dd3492baf459c1e12834cf73ebd66c696e4f6a
parent6452bcc36e08f09b9ea723ce19ee15873d16b2a1 (diff)
CarpetLib: Store level_boxes in dh structure
-rw-r--r--Carpet/CarpetLib/src/defs.cc5
-rw-r--r--Carpet/CarpetLib/src/dh.cc54
-rw-r--r--Carpet/CarpetLib/src/dh.hh19
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);