aboutsummaryrefslogtreecommitdiff
path: root/CarpetDev/CarpetIOF5/src/writer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'CarpetDev/CarpetIOF5/src/writer.cc')
-rw-r--r--CarpetDev/CarpetIOF5/src/writer.cc38
1 files changed, 36 insertions, 2 deletions
diff --git a/CarpetDev/CarpetIOF5/src/writer.cc b/CarpetDev/CarpetIOF5/src/writer.cc
index e4ef100f6..df1949369 100644
--- a/CarpetDev/CarpetIOF5/src/writer.cc
+++ b/CarpetDev/CarpetIOF5/src/writer.cc
@@ -164,8 +164,9 @@ namespace CarpetIOF5 {
int const reflevel = 0;
int const myproc = CCTK_MyProc (m_cctkGH);
dh * const dd = Carpet::arrdata.at(group).at(map).dd;
- bbox<int, dim> const & region
- = dd->boxes.at(Carpet::mglevel).at(reflevel).at(myproc).exterior;
+ dh::dboxes const & boxes
+ = dd->boxes.at(Carpet::mglevel).at(reflevel).at(myproc);
+ bbox<int, dim> const & region = determine_region (boxes);
if (have_metafile)
{
@@ -320,4 +321,37 @@ namespace CarpetIOF5 {
}
}
+
+
+ bbox<int,dim> const & writer_t::
+ determine_region (dh::dboxes const & boxes)
+ const
+ {
+ DECLARE_CCTK_PARAMETERS;
+
+ bbox<int,dim> dh::dboxes::* boxptr;
+ if (CCTK_EQUALS (output_regions, "exterior"))
+ {
+ boxptr = & dh::dboxes::exterior;
+ }
+ else if (CCTK_EQUALS (output_regions, "communicated"))
+ {
+ boxptr = & dh::dboxes::communicated;
+ }
+ else if (CCTK_EQUALS (output_regions, "owned"))
+ {
+ boxptr = & dh::dboxes::owned;
+ }
+ else if (CCTK_EQUALS (output_regions, "interior"))
+ {
+ boxptr = & dh::dboxes::interior;
+ }
+ else
+ {
+ assert (0);
+ }
+
+ return boxes.*boxptr;
+ }
+
} // namespace CarpetIOF5