diff options
Diffstat (limited to 'CarpetDev/CarpetIOF5/src/writer.cc')
-rw-r--r-- | CarpetDev/CarpetIOF5/src/writer.cc | 38 |
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 |