aboutsummaryrefslogtreecommitdiff
path: root/src/GRHydro_Reconstruct_drv_cxx.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/GRHydro_Reconstruct_drv_cxx.hh')
-rw-r--r--src/GRHydro_Reconstruct_drv_cxx.hh64
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