aboutsummaryrefslogtreecommitdiff
path: root/ML_BSSN_Helper
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2009-07-03 23:07:56 +0200
committerErik Schnetter <schnetter@cct.lsu.edu>2009-07-03 23:07:56 +0200
commit4c1c8380bb17b075f59f636492bed2d6c644046b (patch)
tree82aa55429321233896f952d91ff7c65b1236ea1c /ML_BSSN_Helper
parent83f09cb5384e902bb43ce07b0c3ee9f6acba3f61 (diff)
Register ADM variables as constrained variables, so that MoL copies them
before the first time step if they have multiple time levels.
Diffstat (limited to 'ML_BSSN_Helper')
-rw-r--r--ML_BSSN_Helper/param.ccl11
-rw-r--r--ML_BSSN_Helper/schedule.ccl20
-rw-r--r--ML_BSSN_Helper/src/RegisterConstrained.c32
-rw-r--r--ML_BSSN_Helper/src/make.code.defn3
4 files changed, 58 insertions, 8 deletions
diff --git a/ML_BSSN_Helper/param.ccl b/ML_BSSN_Helper/param.ccl
index 8669144..605ea7a 100644
--- a/ML_BSSN_Helper/param.ccl
+++ b/ML_BSSN_Helper/param.ccl
@@ -1,3 +1,7 @@
+SHARES: MethodofLines
+
+USES CCTK_INT MoL_Num_Constrained_Vars
+
SHARES: ADMBase
USES KEYWORD evolution_method
@@ -10,3 +14,10 @@ SHARES: ML_BSSN
USES CCTK_INT timelevels
USES KEYWORD calculate_ADMBase_variables_at
+
+PRIVATE:
+
+CCTK_INT ML_BSSN_MaxNumConstrainedVars "Number of constrained variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Constrained_Vars
+{
+ 20:20 :: "Number of constrained variables used by this thorn"
+} 20
diff --git a/ML_BSSN_Helper/schedule.ccl b/ML_BSSN_Helper/schedule.ccl
index 08c8e1e..a2134a1 100644
--- a/ML_BSSN_Helper/schedule.ccl
+++ b/ML_BSSN_Helper/schedule.ccl
@@ -35,6 +35,12 @@ if (CCTK_EQUALS (evolution_method, "ML_BSSN")) {
OPTIONS: meta
} "Don't checkpoint ADMBase variables"
+ SCHEDULE ML_BSSN_RegisterConstrained IN MoL_Register
+ {
+ LANG: C
+ OPTIONS: meta
+ } "Register ADMBase variables as constrained"
+
SCHEDULE GROUP ML_BSSN_evolCalcGroup IN MoL_CalcRHS
@@ -62,13 +68,13 @@ if (CCTK_EQUALS (evolution_method, "ML_BSSN")) {
if (CCTK_EQUALS (calculate_ADMBase_variables_at, "MoL_PostStep"))
{
- if (timelevels > 1)
- {
- SCHEDULE ML_BSSN_CopyADMBase AT CCTK_PRESTEP
- {
- LANG: C
- } "Copy ADMBase variables to current time level"
- }
+ # if (timelevels > 1)
+ # {
+ # SCHEDULE ML_BSSN_CopyADMBase AT CCTK_PRESTEP
+ # {
+ # LANG: C
+ # } "Copy ADMBase variables to current time level"
+ # }
SCHEDULE GROUP ML_BSSN_convertToADMBaseGroupWrapper IN MoL_PostStep AFTER (ML_BSSN_ApplyBCs ML_BSSN_enforce) BEFORE (ADMBase_SetADMVars Whisky_PostStep)
{
} "Calculate ADM variables"
diff --git a/ML_BSSN_Helper/src/RegisterConstrained.c b/ML_BSSN_Helper/src/RegisterConstrained.c
new file mode 100644
index 0000000..e6bdb5a
--- /dev/null
+++ b/ML_BSSN_Helper/src/RegisterConstrained.c
@@ -0,0 +1,32 @@
+#include <assert.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <cctk.h>
+#include <cctk_Arguments.h>
+
+static void
+register_constrained (char const * restrict const gn);
+
+void
+ML_BSSN_RegisterConstrained (CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+
+ register_constrained ("ADMBase::metric");
+ register_constrained ("ADMBase::curv");
+ register_constrained ("ADMBase::lapse");
+ register_constrained ("ADMBase::shift");
+ register_constrained ("ADMBase::dtlapse");
+ register_constrained ("ADMBase::dtshift");
+}
+
+static void
+register_constrained (char const * restrict const gn)
+{
+ assert (gn);
+
+ int const gi = CCTK_GroupIndex (gn);
+ int const ierr = MoLRegisterConstrainedGroup (gi);
+ assert (! ierr);
+}
diff --git a/ML_BSSN_Helper/src/make.code.defn b/ML_BSSN_Helper/src/make.code.defn
index 86aceb8..dcfe66e 100644
--- a/ML_BSSN_Helper/src/make.code.defn
+++ b/ML_BSSN_Helper/src/make.code.defn
@@ -1,2 +1,3 @@
# -*-Makefile-*-
-SRCS = CopyADMBase.c RegisterSlicing.c SelectBCsADMBase.c UnsetCheckpointTags.c
+SRCS = RegisterConstrained.c RegisterSlicing.c SelectBCsADMBase.c UnsetCheckpointTags.c
+# CopyADMBase.c