diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2008-01-31 20:05:31 -0600 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2008-01-31 20:05:31 -0600 |
commit | e15648c1f38adf016e54adbc21328ed122116c95 (patch) | |
tree | c8cf33b1c31671130a52abf97845845418a90211 /ML_BSSN_Helper | |
parent | 314fd5d52fa09e0d5c8b5259f7cf8e25803b4ebd (diff) |
Don't calculate ADMBase variables on the boundaries
Don't calculate ADMBase variables on the boundaries, since they require
derivatives. Instead, select and apply boundary conditions after
converting from BSSN to ADM.
Diffstat (limited to 'ML_BSSN_Helper')
-rw-r--r-- | ML_BSSN_Helper/interface.ccl | 5 | ||||
-rw-r--r-- | ML_BSSN_Helper/param.ccl | 4 | ||||
-rw-r--r-- | ML_BSSN_Helper/schedule.ccl | 13 | ||||
-rw-r--r-- | ML_BSSN_Helper/src/SelectBCsADMBase.c | 28 | ||||
-rw-r--r-- | ML_BSSN_Helper/src/make.code.defn | 2 |
5 files changed, 51 insertions, 1 deletions
diff --git a/ML_BSSN_Helper/interface.ccl b/ML_BSSN_Helper/interface.ccl index 0e82975..2d1899c 100644 --- a/ML_BSSN_Helper/interface.ccl +++ b/ML_BSSN_Helper/interface.ccl @@ -1,3 +1,8 @@ IMPLEMENTS: ML_BSSN_Helper INHERITS: ADMBase CoordGauge ML_BSSN + + + +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) +USES FUNCTION Boundary_SelectGroupForBC diff --git a/ML_BSSN_Helper/param.ccl b/ML_BSSN_Helper/param.ccl index 97850ba..d43cadf 100644 --- a/ML_BSSN_Helper/param.ccl +++ b/ML_BSSN_Helper/param.ccl @@ -1,3 +1,7 @@ SHARES: ADMBase USES KEYWORD evolution_method + +SHARES: GenericFD + +USES CCTK_INT boundary_width diff --git a/ML_BSSN_Helper/schedule.ccl b/ML_BSSN_Helper/schedule.ccl index ec388d1..a81d31c 100644 --- a/ML_BSSN_Helper/schedule.ccl +++ b/ML_BSSN_Helper/schedule.ccl @@ -45,4 +45,17 @@ if (CCTK_EQUALS (evolution_method, "ML_BSSN")) { TRIGGERS: ML_BSSN::Ham TRIGGERS: ML_BSSN::mom } "Calculate BSSN constraints" + + + + SCHEDULE ML_BSSN_SelectBCsADMBase IN MoL_PostStep AFTER ML_BSSN_convertToADMBase + { + LANG: C + OPTIONS: level + } "Apply boundary conditions to ADMBase variables" + + SCHEDULE GROUP ApplyBCs AS ML_BSSN_ApplyBCsADMBase IN MoL_PostStep AFTER ML_BSSN_SelectBCsADMBase + { + } "Apply boundary conditions to ADMBase variables" + } diff --git a/ML_BSSN_Helper/src/SelectBCsADMBase.c b/ML_BSSN_Helper/src/SelectBCsADMBase.c new file mode 100644 index 0000000..2a10844 --- /dev/null +++ b/ML_BSSN_Helper/src/SelectBCsADMBase.c @@ -0,0 +1,28 @@ +#include <cctk.h> +#include <cctk_Arguments.h> +#include <cctk_Parameters.h> + +static void +select_bcs (cGH const * restrict cctkGH, char const * restrict gn); + +void +ML_BSSN_SelectBCsADMBase (CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + + select_bcs (cctkGH, "ADMBase::metric"); + select_bcs (cctkGH, "ADMBase::curv"); + select_bcs (cctkGH, "ADMBase::lapse"); + select_bcs (cctkGH, "ADMBase::shift"); + select_bcs (cctkGH, "ADMBase::dtlapse"); + select_bcs (cctkGH, "ADMBase::dtshift"); +} + +static void +select_bcs (cGH const * restrict const cctkGH, char const * restrict const gn) +{ + DECLARE_CCTK_PARAMETERS; + + Boundary_SelectGroupForBC + (cctkGH, CCTK_ALL_FACES, boundary_width, -1, gn, "none"); +} diff --git a/ML_BSSN_Helper/src/make.code.defn b/ML_BSSN_Helper/src/make.code.defn index ec09a08..12fb65d 100644 --- a/ML_BSSN_Helper/src/make.code.defn +++ b/ML_BSSN_Helper/src/make.code.defn @@ -1,2 +1,2 @@ # -*-Makefile-*- -SRCS = RegisterSlicing.c UnsetCheckpointTags.c +SRCS = SelectBCsADMBase.c RegisterSlicing.c UnsetCheckpointTags.c |