diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2008-08-01 16:29:23 -0700 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2008-08-01 16:29:23 -0700 |
commit | f30882426de08468265ff693fd8be08e6330a3d6 (patch) | |
tree | 88ca5a3cc1e3d6e7424fa6fef597db10e4b4c4f1 /ML_BSSN_Helper | |
parent | 9c1c9c787b183dba5ef41fbfb9028dbbf8b986e5 (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.ccl | 2 | ||||
-rw-r--r-- | ML_BSSN_Helper/interface.ccl | 2 | ||||
-rw-r--r-- | ML_BSSN_Helper/schedule.ccl | 6 | ||||
-rw-r--r-- | ML_BSSN_Helper/src/RegisterSymmetries.c | 66 | ||||
-rw-r--r-- | ML_BSSN_Helper/src/make.code.defn | 2 |
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 |