diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2012-01-11 16:00:56 -0500 |
---|---|---|
committer | Barry Wardell <barry.wardell@gmail.com> | 2012-09-11 18:15:41 +0100 |
commit | e18cbfdb7272168dc7ecd765c3c7e7ce752a1f98 (patch) | |
tree | 313601349b2627deaaae1a6de742cab7aa3b21c6 /Carpet/CarpetLib/src/prolongate_3d_cc_eno_rf2.cc | |
parent | 603b8b1ce46ccd507475ef04282fbe020d947521 (diff) |
CarpetLib: Extend operator API to allow hyperslabbing
Extend API of grid operators and of gdata::copy_from,
gdata::transfer_from to allow hyperslabbing
Implement hyperslabbing in copy_3d.cc
Diffstat (limited to 'Carpet/CarpetLib/src/prolongate_3d_cc_eno_rf2.cc')
-rw-r--r-- | Carpet/CarpetLib/src/prolongate_3d_cc_eno_rf2.cc | 70 |
1 files changed, 38 insertions, 32 deletions
diff --git a/Carpet/CarpetLib/src/prolongate_3d_cc_eno_rf2.cc b/Carpet/CarpetLib/src/prolongate_3d_cc_eno_rf2.cc index a1d3b2809..e9a64ecc8 100644 --- a/Carpet/CarpetLib/src/prolongate_3d_cc_eno_rf2.cc +++ b/Carpet/CarpetLib/src/prolongate_3d_cc_eno_rf2.cc @@ -950,8 +950,12 @@ namespace CarpetLib { ivect3 const & restrict dstext, ibbox3 const & restrict srcbbox, ibbox3 const & restrict dstbbox, - ibbox3 const & restrict regbbox) + ibbox3 const & restrict, + ibbox3 const & restrict regbbox, + void * extraargs) { + assert (not extraargs); + static_assert (ORDER>=0, "ORDER must be non-negative"); typedef typename typeprops<T>::real RT; @@ -1274,7 +1278,6 @@ namespace CarpetLib { #define TYPECASE(N,T) \ \ - \ template <> \ void \ prolongate_3d_cc_eno_rf2<T,2> (T const * restrict const src, \ @@ -1283,7 +1286,9 @@ namespace CarpetLib { ivect3 const & restrict dstext, \ ibbox3 const & restrict srcbbox, \ ibbox3 const & restrict dstbbox, \ - ibbox3 const & restrict regbbox) \ + ibbox3 const & restrict, \ + ibbox3 const & restrict regbbox, \ + void * extraargs) \ { \ CCTK_WARN (CCTK_WARN_ABORT, \ "ENO operators are not supported for CCTK_COMPLEX"); \ @@ -1297,12 +1302,13 @@ namespace CarpetLib { ivect3 const & restrict dstext, \ ibbox3 const & restrict srcbbox, \ ibbox3 const & restrict dstbbox, \ - ibbox3 const & restrict regbbox) \ + ibbox3 const & restrict, \ + ibbox3 const & restrict regbbox, \ + void * extraargs) \ { \ CCTK_WARN (CCTK_WARN_ABORT, \ "ENO operators are not supported for CCTK_COMPLEX"); \ - } - + } #define CARPET_COMPLEX #include "typecase.hh" @@ -1311,38 +1317,38 @@ namespace CarpetLib { -#define TYPECASE(N,T) \ - \ - \ - template \ - void \ - prolongate_3d_cc_eno_rf2<T,2> (T const * restrict const src, \ - ivect3 const & restrict srcext, \ - T * restrict const dst, \ - ivect3 const & restrict dstext, \ - ibbox3 const & restrict srcbbox, \ - ibbox3 const & restrict dstbbox, \ - ibbox3 const & restrict regbbox); \ - \ - \ - template \ - void \ - prolongate_3d_cc_eno_rf2<T,3> (T const * restrict const src, \ - ivect3 const & restrict srcext, \ - T * restrict const dst, \ - ivect3 const & restrict dstext, \ - ibbox3 const & restrict srcbbox, \ - ibbox3 const & restrict dstbbox, \ - ibbox3 const & restrict regbbox); \ - \ +#define TYPECASE(N,T) \ + \ + template \ + void \ + prolongate_3d_cc_eno_rf2<T,2> (T const * restrict const src, \ + ivect3 const & restrict srcext, \ + T * restrict const dst, \ + ivect3 const & restrict dstext, \ + ibbox3 const & restrict srcbbox, \ + ibbox3 const & restrict dstbbox, \ + ibbox3 const & restrict, \ + ibbox3 const & restrict regbbox, \ + void * extraargs); \ + \ + \ + template \ + void \ + prolongate_3d_cc_eno_rf2<T,3> (T const * restrict const src, \ + ivect3 const & restrict srcext, \ + T * restrict const dst, \ + ivect3 const & restrict dstext, \ + ibbox3 const & restrict srcbbox, \ + ibbox3 const & restrict dstbbox, \ + ibbox3 const & restrict, \ + ibbox3 const & restrict regbbox, \ + void * extraargs); #define CARPET_NO_INT #define CARPET_NO_COMPLEX #include "typecase.hh" #undef TYPECASE - - } // namespace CarpetLib |