diff options
Diffstat (limited to 'src/RegisterSymmetries.c')
-rw-r--r-- | src/RegisterSymmetries.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/RegisterSymmetries.c b/src/RegisterSymmetries.c new file mode 100644 index 0000000..c679f3f --- /dev/null +++ b/src/RegisterSymmetries.c @@ -0,0 +1,41 @@ +/* $Header$ */ + +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" + +#include "Symmetry.h" + +void DecodeSymParameters3D(int sym[6]); + +void RegisterSymmetryBoundaries (CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + int sym[6]; + int n; + CCTK_INT faces[6]; + CCTK_INT width[6]; + CCTK_INT handle; + CCTK_INT ierr; + + DecodeSymParameters3D (sym); + + for (n=0; n<6; ++n) { + faces[n] = sym[n]; + width[n] = cctk_nghostzones[n/2]; + } + + handle = SymmetryRegister ("reflection_symmetry"); + if (handle < 0) + { + CCTK_WARN (0, "Could not register symmetry boundary condition"); + } + + ierr = SymmetryRegisterGrid (cctkGH, handle, faces, width); + if (ierr < 0) + { + CCTK_WARN (0, "Could not register the symmetry boundaries -- probably some other thorn has already registered the same boundary faces for a different symmetry"); + } +} |