aboutsummaryrefslogtreecommitdiff
path: root/src/RegisterSymmetries.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/RegisterSymmetries.c')
-rw-r--r--src/RegisterSymmetries.c41
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");
+ }
+}