diff options
Diffstat (limited to 'src/GRHydro_Reconstruct_drv_cxx.hh')
-rw-r--r-- | src/GRHydro_Reconstruct_drv_cxx.hh | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/GRHydro_Reconstruct_drv_cxx.hh b/src/GRHydro_Reconstruct_drv_cxx.hh new file mode 100644 index 0000000..57fb0bf --- /dev/null +++ b/src/GRHydro_Reconstruct_drv_cxx.hh @@ -0,0 +1,64 @@ +#ifndef _GRHYDRO_RECONSTRUCT_DRV_CXX_H +#define _GRHYDRO_RECONSTRUCT_DRV_CXX_H + +#include "cctk.h" + +/* + Cases that must be considered: + * basic hydro + * hydro + temperature + ye + * hydro + ye + * basic mhd + * mhd + temperature + ye + * mhd + ye + */ + +template <bool do_mhd, + bool do_Ye, + bool do_temp, + bool do_reconstruct_Wv, + bool do_clean_divergence, + class RECONSTRUCT> // the reconstruction operator +void GRHydro_Reconstruct_drv_cxx(cGH const * const restrict & restrict cctkGH); + +// helper macro to instantiate all required permuations of the template options +// this must match GRHydro_Reconstruct's reconstruct::select routine +#define INSTANTIATE_RECONSTRUCTION_OPERATOR(RECONSTRUCT) \ +template void \ +GRHydro_Reconstruct_drv_cxx <false, false, false, true, false, RECONSTRUCT> ( \ + cGH const * const restrict & restrict cctkGH); \ +template void \ +GRHydro_Reconstruct_drv_cxx <true, false, false, true, false, RECONSTRUCT> ( \ + cGH const * const restrict & restrict cctkGH); \ +template void \ +GRHydro_Reconstruct_drv_cxx <true, true, true, true, false, RECONSTRUCT> ( \ + cGH const * const restrict & restrict cctkGH); \ +template void \ +GRHydro_Reconstruct_drv_cxx <true, false, false, true, true, RECONSTRUCT> ( \ + cGH const * const restrict & restrict cctkGH); \ +template void \ +GRHydro_Reconstruct_drv_cxx <true, true, true, true, true, RECONSTRUCT> ( \ + cGH const * const restrict & restrict cctkGH); \ +template void \ +GRHydro_Reconstruct_drv_cxx <false, true, true, true, false, RECONSTRUCT> ( \ + cGH const * const restrict & restrict cctkGH); \ +template void \ +GRHydro_Reconstruct_drv_cxx <false, false, false, false, false, RECONSTRUCT> ( \ + cGH const * const restrict & restrict cctkGH); \ +template void \ +GRHydro_Reconstruct_drv_cxx <true, false, false, false, false, RECONSTRUCT> ( \ + cGH const * const restrict & restrict cctkGH); \ +template void \ +GRHydro_Reconstruct_drv_cxx <true, true, true, false, false, RECONSTRUCT> ( \ + cGH const * const restrict & restrict cctkGH); \ +template void \ +GRHydro_Reconstruct_drv_cxx <true, false, false, false, true, RECONSTRUCT> ( \ + cGH const * const restrict & restrict cctkGH); \ +template void \ +GRHydro_Reconstruct_drv_cxx <true, true, true, false, true, RECONSTRUCT> ( \ + cGH const * const restrict & restrict cctkGH); \ +template void \ +GRHydro_Reconstruct_drv_cxx <false, true, true, false, false, RECONSTRUCT> ( \ + cGH const * const restrict & restrict cctkGH); + +#endif // _GRHYDRO_RECONSTRUCT_DRV_CXX_H |