diff options
Diffstat (limited to 'src/SymBase.h')
-rw-r--r-- | src/SymBase.h | 88 |
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 */ |