diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2009-07-03 23:07:56 +0200 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2009-07-03 23:07:56 +0200 |
commit | 4c1c8380bb17b075f59f636492bed2d6c644046b (patch) | |
tree | 82aa55429321233896f952d91ff7c65b1236ea1c /ML_BSSN_Helper | |
parent | 83f09cb5384e902bb43ce07b0c3ee9f6acba3f61 (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.ccl | 11 | ||||
-rw-r--r-- | ML_BSSN_Helper/schedule.ccl | 20 | ||||
-rw-r--r-- | ML_BSSN_Helper/src/RegisterConstrained.c | 32 | ||||
-rw-r--r-- | ML_BSSN_Helper/src/make.code.defn | 3 |
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 |