aboutsummaryrefslogtreecommitdiff
path: root/ML_BSSN_Helper
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2008-01-31 20:05:31 -0600
committerErik Schnetter <schnetter@cct.lsu.edu>2008-01-31 20:05:31 -0600
commite15648c1f38adf016e54adbc21328ed122116c95 (patch)
treec8cf33b1c31671130a52abf97845845418a90211 /ML_BSSN_Helper
parent314fd5d52fa09e0d5c8b5259f7cf8e25803b4ebd (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.ccl5
-rw-r--r--ML_BSSN_Helper/param.ccl4
-rw-r--r--ML_BSSN_Helper/schedule.ccl13
-rw-r--r--ML_BSSN_Helper/src/SelectBCsADMBase.c28
-rw-r--r--ML_BSSN_Helper/src/make.code.defn2
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