/*@@ @file SymBase.h @author Erik Schnetter @date 2004/03/07 09:48:53 @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 */