aboutsummaryrefslogtreecommitdiff
path: root/src/SymBase.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/SymBase.h')
-rw-r--r--src/SymBase.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/SymBase.h b/src/SymBase.h
new file mode 100644
index 0000000..d343fee
--- /dev/null
+++ b/src/SymBase.h
@@ -0,0 +1,88 @@
+/*@@
+ @file $RCSfile$
+ @author $Author$
+ @date $Date$
+ @desc
+ Declarations for thorn SymBase
+ @version $Header$
+ @enddesc
+@@*/
+
+#ifndef SYMBASE_H
+#define SYMBASE_H
+
+
+
+#include "cctk.h"
+
+
+
+/* SymBase's GH extension */
+struct SymBase
+{
+ /* Grid symmetry table handle */
+ int sym_table;
+
+ /* Grid array symmetry table handles */
+ int *array_sym_tables;
+};
+
+
+
+/* Number of registered symmetries */
+extern size_t SymBase_num_symmetries;
+
+/* The names of these symmetries */
+extern const char **SymBase_symmetry_names;
+
+
+
+/* Startup.c */
+int SymBase_Startup (void);
+void *SymBase_Setup (tFleshConfig * const config,
+ int const convlev, cGH * const cctkGH);
+
+/* Handles.c */
+CCTK_INT SymBase_SymmetryRegister (CCTK_STRING const sym_name);
+CCTK_INT SymBase_SymmetryHandleOfName (CCTK_STRING const sym_name);
+CCTK_POINTER_TO_CONST SymBase_SymmetryNameOfHandle (CCTK_INT const
+ sym_handle);
+
+/* Faces.c */
+CCTK_INT
+SymBase_SymmetryRegisterFaces (CCTK_INT const sym_table,
+ CCTK_INT const group_dim,
+ CCTK_INT const sym_handle,
+ CCTK_INT const *const which_faces,
+ CCTK_INT const *const new_symmetry_zone_width);
+CCTK_INT
+SymBase_SymmetryRegisterGrid (CCTK_POINTER const cctkGH_,
+ CCTK_INT const sym_handle,
+ CCTK_INT const *const which_faces,
+ CCTK_INT const *const new_symmetry_zone_width);
+CCTK_INT
+SymBase_SymmetryRegisterGI (CCTK_POINTER const cctkGH_,
+ CCTK_INT const sym_handle,
+ CCTK_INT const *const which_faces,
+ CCTK_INT const *const new_symmetry_zone_width,
+ CCTK_INT const group_index);
+CCTK_INT
+SymBase_SymmetryRegisterGN (CCTK_POINTER const cctkGH_,
+ CCTK_INT const sym_handle,
+ CCTK_INT const *const which_faces,
+ CCTK_INT const *const new_symmetry_zone_width,
+ CCTK_STRING const group_name);
+
+/* Table.c */
+CCTK_INT
+SymBase_SymmetryTableHandleForGrid (CCTK_POINTER_TO_CONST const cctkGH_);
+CCTK_INT
+SymBase_SymmetryTableHandleForGI (CCTK_POINTER_TO_CONST const cctkGH_,
+ CCTK_INT const group_index);
+CCTK_INT
+SymBase_SymmetryTableHandleForGN (CCTK_POINTER_TO_CONST const cctkGH_,
+ CCTK_STRING const group_name);
+
+
+
+#endif /* ! defined SYMBASE_H */