aboutsummaryrefslogtreecommitdiff
path: root/ML_BSSN_Helper
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2008-08-01 16:29:23 -0700
committerErik Schnetter <schnetter@cct.lsu.edu>2008-08-01 16:29:23 -0700
commitf30882426de08468265ff693fd8be08e6330a3d6 (patch)
tree88ca5a3cc1e3d6e7424fa6fef597db10e4b4c4f1 /ML_BSSN_Helper
parent9c1c9c787b183dba5ef41fbfb9028dbbf8b986e5 (diff)
Set CartGrid3D symmetries of McLachlan's variables
This allows using octant mode and other symmetries of CartGrid3D.
Diffstat (limited to 'ML_BSSN_Helper')
-rw-r--r--ML_BSSN_Helper/configuration.ccl2
-rw-r--r--ML_BSSN_Helper/interface.ccl2
-rw-r--r--ML_BSSN_Helper/schedule.ccl6
-rw-r--r--ML_BSSN_Helper/src/RegisterSymmetries.c66
-rw-r--r--ML_BSSN_Helper/src/make.code.defn2
5 files changed, 76 insertions, 2 deletions
diff --git a/ML_BSSN_Helper/configuration.ccl b/ML_BSSN_Helper/configuration.ccl
index aecb1c4..edaa5b7 100644
--- a/ML_BSSN_Helper/configuration.ccl
+++ b/ML_BSSN_Helper/configuration.ccl
@@ -1 +1 @@
-REQUIRES THORNS: CoordGauge
+REQUIRES THORNS: CartGrid3D CoordGauge
diff --git a/ML_BSSN_Helper/interface.ccl b/ML_BSSN_Helper/interface.ccl
index 2d1899c..8ad9ba2 100644
--- a/ML_BSSN_Helper/interface.ccl
+++ b/ML_BSSN_Helper/interface.ccl
@@ -2,6 +2,8 @@ IMPLEMENTS: ML_BSSN_Helper
INHERITS: ADMBase CoordGauge ML_BSSN
+USES INCLUDE: Symmetry.h
+
CCTK_INT FUNCTION Boundary_SelectGroupForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT IN faces, CCTK_INT IN boundary_width, CCTK_INT IN table_handle, CCTK_STRING IN group_name, CCTK_STRING IN bc_name)
diff --git a/ML_BSSN_Helper/schedule.ccl b/ML_BSSN_Helper/schedule.ccl
index 74ec69e..06cd875 100644
--- a/ML_BSSN_Helper/schedule.ccl
+++ b/ML_BSSN_Helper/schedule.ccl
@@ -29,6 +29,12 @@ if (CCTK_EQUALS (evolution_method, "ML_BSSN")) {
OPTIONS: meta
} "Register slicing"
+ SCHEDULE ML_BSSN_RegisterSymmetries IN SymmetryRegister
+ {
+ LANG: C
+ OPTIONS: meta
+ } "Register grid function symmetries"
+
SCHEDULE ML_BSSN_UnsetCheckpointTags AT basegrid
{
LANG: C
diff --git a/ML_BSSN_Helper/src/RegisterSymmetries.c b/ML_BSSN_Helper/src/RegisterSymmetries.c
new file mode 100644
index 0000000..6812079
--- /dev/null
+++ b/ML_BSSN_Helper/src/RegisterSymmetries.c
@@ -0,0 +1,66 @@
+#include <assert.h>
+
+#include <cctk.h>
+#include <cctk_Arguments.h>
+
+#include <Symmetry.h>
+
+static void
+setcartsym (cGH const * restrict cctkGH, char const * restrict vn, int symdesc);
+
+void
+ML_BSSN_RegisterSymmetry (CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+
+ setcartsym (cctkGH, "ML_BSSN::phi" , 0);
+ setcartsym (cctkGH, "ML_BSSN::gt11" , 11);
+ setcartsym (cctkGH, "ML_BSSN::gt12" , 12);
+ setcartsym (cctkGH, "ML_BSSN::gt13" , 13);
+ setcartsym (cctkGH, "ML_BSSN::gt22" , 22);
+ setcartsym (cctkGH, "ML_BSSN::gt23" , 23);
+ setcartsym (cctkGH, "ML_BSSN::gt33" , 33);
+ setcartsym (cctkGH, "ML_BSSN::trK" , 0);
+ setcartsym (cctkGH, "ML_BSSN::At11" , 11);
+ setcartsym (cctkGH, "ML_BSSN::At12" , 12);
+ setcartsym (cctkGH, "ML_BSSN::At13" , 13);
+ setcartsym (cctkGH, "ML_BSSN::At22" , 22);
+ setcartsym (cctkGH, "ML_BSSN::At23" , 23);
+ setcartsym (cctkGH, "ML_BSSN::At33" , 33);
+ setcartsym (cctkGH, "ML_BSSN::Xt1" , 1);
+ setcartsym (cctkGH, "ML_BSSN::Xt2" , 2);
+ setcartsym (cctkGH, "ML_BSSN::Xt3" , 3);
+ setcartsym (cctkGH, "ML_BSSN::alpha", 0);
+ setcartsym (cctkGH, "ML_BSSN::beta1", 1);
+ setcartsym (cctkGH, "ML_BSSN::beta2", 2);
+ setcartsym (cctkGH, "ML_BSSN::beta3", 3);
+ setcartsym (cctkGH, "ML_BSSN::A" , 0);
+ setcartsym (cctkGH, "ML_BSSN::B1" , 1);
+ setcartsym (cctkGH, "ML_BSSN::B2" , 2);
+ setcartsym (cctkGH, "ML_BSSN::B3" , 3);
+}
+
+void
+setcartsym (cGH const * restrict const cctkGH,
+ char const * restrict const vn,
+ int symdesc)
+{
+ int sym[3];
+
+ for (int d=0; d<3; ++d) {
+ sym[d] = +1;
+ }
+
+ assert (symdesc >= 0);
+ while (symdesc > 0) {
+ int const d = symdesc % 10;
+ assert (d>=1 && d<=3);
+ sym[d-1] *= -1;
+ symdesc /= 10;
+ }
+
+ int const ierr = SetCartSymVN (cctkGH, sym, vn);
+ if (ierr != 0) {
+ CCTK_WARN (CCTK_WARN_ABORT, "internal error");
+ }
+}
diff --git a/ML_BSSN_Helper/src/make.code.defn b/ML_BSSN_Helper/src/make.code.defn
index 12fb65d..60cb539 100644
--- a/ML_BSSN_Helper/src/make.code.defn
+++ b/ML_BSSN_Helper/src/make.code.defn
@@ -1,2 +1,2 @@
# -*-Makefile-*-
-SRCS = SelectBCsADMBase.c RegisterSlicing.c UnsetCheckpointTags.c
+SRCS = RegisterSlicing.c RegisterSymmetries.c SelectBCsADMBase.c UnsetCheckpointTags.c