diff options
-rw-r--r-- | ML_ADMConstraints/schedule.ccl | 13 | ||||
-rw-r--r-- | ML_ADMConstraints_MP/schedule.ccl | 13 | ||||
-rw-r--r-- | ML_ADMConstraints_O2/schedule.ccl | 13 | ||||
-rw-r--r-- | ML_ADMQuantities/schedule.ccl | 13 | ||||
-rw-r--r-- | ML_ADMQuantities_MP/schedule.ccl | 13 | ||||
-rw-r--r-- | ML_ADMQuantities_O2/schedule.ccl | 13 | ||||
-rw-r--r-- | ML_BSSN/schedule.ccl | 20 | ||||
-rw-r--r-- | ML_BSSN_Helper/src/SetGroupTags.c | 43 | ||||
-rw-r--r-- | m/Makefile | 32 | ||||
-rw-r--r-- | m/McLachlan_ADMConstraints.m | 1 | ||||
-rw-r--r-- | m/McLachlan_ADMQuantities.m | 1 | ||||
-rw-r--r-- | m/McLachlan_BSSN.m | 32 | ||||
-rw-r--r-- | m/prototype/ML_BSSN_Helper/src/SetGroupTags.c | 43 |
13 files changed, 118 insertions, 132 deletions
diff --git a/ML_ADMConstraints/schedule.ccl b/ML_ADMConstraints/schedule.ccl index 74b3d66..9840015 100644 --- a/ML_ADMConstraints/schedule.ccl +++ b/ML_ADMConstraints/schedule.ccl @@ -23,7 +23,7 @@ schedule ML_ADMConstraints_RegisterSymmetries in SymmetryRegister OPTIONS: meta } "register symmetries" -schedule group ML_ADMConstraints_group in MoL_PseudoEvolution +schedule group ML_ADMConstraints_group in MoL_PseudoEvolution after MoL_PostStep { # no language specified } "ML_ADMConstraints" @@ -51,17 +51,12 @@ schedule group ML_ADMConstraints_bc_group in ML_ADMConstraints_group after ML_AD # no language specified } "ML_ADMConstraints" -schedule group ML_ADMConstraints_bc_group at CCTK_POSTRESTRICT +schedule group ML_ADMConstraints_bc_group in MoL_PseudoEvolutionBoundaries after MoL_PostStep { # no language specified } "ML_ADMConstraints" -schedule group ML_ADMConstraints_bc_group at CCTK_POSTRESTRICTINITIAL -{ - # no language specified -} "ML_ADMConstraints" - -schedule ML_ADMConstraints_SelectBoundConds in MoL_PseudoEvolution +schedule ML_ADMConstraints_SelectBoundConds in MoL_PostStep { LANG: C OPTIONS: level @@ -73,7 +68,7 @@ schedule ML_ADMConstraints_CheckBoundaries at BASEGRID OPTIONS: meta } "check boundaries treatment" -schedule group ApplyBCs as ML_ADMConstraints_ApplyBCs in MoL_PseudoEvolution after ML_ADMConstraints_SelectBoundConds +schedule group ApplyBCs as ML_ADMConstraints_ApplyBCs in MoL_PostStep after ML_ADMConstraints_SelectBoundConds { # no language specified } "Apply boundary conditions controlled by thorn Boundary" diff --git a/ML_ADMConstraints_MP/schedule.ccl b/ML_ADMConstraints_MP/schedule.ccl index 28964ab..08dbab9 100644 --- a/ML_ADMConstraints_MP/schedule.ccl +++ b/ML_ADMConstraints_MP/schedule.ccl @@ -23,7 +23,7 @@ schedule ML_ADMConstraints_MP_RegisterSymmetries in SymmetryRegister OPTIONS: meta } "register symmetries" -schedule group ML_ADMConstraints_MP_group in MoL_PseudoEvolution +schedule group ML_ADMConstraints_MP_group in MoL_PseudoEvolution after MoL_PostStep { # no language specified } "ML_ADMConstraints_MP" @@ -51,17 +51,12 @@ schedule group ML_ADMConstraints_MP_bc_group in ML_ADMConstraints_MP_group after # no language specified } "ML_ADMConstraints_MP" -schedule group ML_ADMConstraints_MP_bc_group at CCTK_POSTRESTRICT +schedule group ML_ADMConstraints_MP_bc_group in MoL_PseudoEvolutionBoundaries after MoL_PostStep { # no language specified } "ML_ADMConstraints_MP" -schedule group ML_ADMConstraints_MP_bc_group at CCTK_POSTRESTRICTINITIAL -{ - # no language specified -} "ML_ADMConstraints_MP" - -schedule ML_ADMConstraints_MP_SelectBoundConds in MoL_PseudoEvolution +schedule ML_ADMConstraints_MP_SelectBoundConds in MoL_PostStep { LANG: C OPTIONS: level @@ -73,7 +68,7 @@ schedule ML_ADMConstraints_MP_CheckBoundaries at BASEGRID OPTIONS: meta } "check boundaries treatment" -schedule group ApplyBCs as ML_ADMConstraints_MP_ApplyBCs in MoL_PseudoEvolution after ML_ADMConstraints_MP_SelectBoundConds +schedule group ApplyBCs as ML_ADMConstraints_MP_ApplyBCs in MoL_PostStep after ML_ADMConstraints_MP_SelectBoundConds { # no language specified } "Apply boundary conditions controlled by thorn Boundary" diff --git a/ML_ADMConstraints_O2/schedule.ccl b/ML_ADMConstraints_O2/schedule.ccl index f89b3cd..f7f2fd9 100644 --- a/ML_ADMConstraints_O2/schedule.ccl +++ b/ML_ADMConstraints_O2/schedule.ccl @@ -23,7 +23,7 @@ schedule ML_ADMConstraints_O2_RegisterSymmetries in SymmetryRegister OPTIONS: meta } "register symmetries" -schedule group ML_ADMConstraints_O2_group in MoL_PseudoEvolution +schedule group ML_ADMConstraints_O2_group in MoL_PseudoEvolution after MoL_PostStep { # no language specified } "ML_ADMConstraints_O2" @@ -51,17 +51,12 @@ schedule group ML_ADMConstraints_O2_bc_group in ML_ADMConstraints_O2_group after # no language specified } "ML_ADMConstraints_O2" -schedule group ML_ADMConstraints_O2_bc_group at CCTK_POSTRESTRICT +schedule group ML_ADMConstraints_O2_bc_group in MoL_PseudoEvolutionBoundaries after MoL_PostStep { # no language specified } "ML_ADMConstraints_O2" -schedule group ML_ADMConstraints_O2_bc_group at CCTK_POSTRESTRICTINITIAL -{ - # no language specified -} "ML_ADMConstraints_O2" - -schedule ML_ADMConstraints_O2_SelectBoundConds in MoL_PseudoEvolution +schedule ML_ADMConstraints_O2_SelectBoundConds in MoL_PostStep { LANG: C OPTIONS: level @@ -73,7 +68,7 @@ schedule ML_ADMConstraints_O2_CheckBoundaries at BASEGRID OPTIONS: meta } "check boundaries treatment" -schedule group ApplyBCs as ML_ADMConstraints_O2_ApplyBCs in MoL_PseudoEvolution after ML_ADMConstraints_O2_SelectBoundConds +schedule group ApplyBCs as ML_ADMConstraints_O2_ApplyBCs in MoL_PostStep after ML_ADMConstraints_O2_SelectBoundConds { # no language specified } "Apply boundary conditions controlled by thorn Boundary" diff --git a/ML_ADMQuantities/schedule.ccl b/ML_ADMQuantities/schedule.ccl index 76e5a43..273f2d7 100644 --- a/ML_ADMQuantities/schedule.ccl +++ b/ML_ADMQuantities/schedule.ccl @@ -23,7 +23,7 @@ schedule ML_ADMQuantities_RegisterSymmetries in SymmetryRegister OPTIONS: meta } "register symmetries" -schedule group ML_ADMQuantities_group in MoL_PseudoEvolution +schedule group ML_ADMQuantities_group in MoL_PseudoEvolution after MoL_PostStep { # no language specified } "ML_ADMQuantities" @@ -51,17 +51,12 @@ schedule group ML_ADMQuantities_bc_group in ML_ADMQuantities_group after ML_ADMQ # no language specified } "ML_ADMQuantities" -schedule group ML_ADMQuantities_bc_group at CCTK_POSTRESTRICT +schedule group ML_ADMQuantities_bc_group in MoL_PseudoEvolutionBoundaries after MoL_PostStep { # no language specified } "ML_ADMQuantities" -schedule group ML_ADMQuantities_bc_group at CCTK_POSTRESTRICTINITIAL -{ - # no language specified -} "ML_ADMQuantities" - -schedule ML_ADMQuantities_SelectBoundConds in MoL_PseudoEvolution +schedule ML_ADMQuantities_SelectBoundConds in MoL_PostStep { LANG: C OPTIONS: level @@ -73,7 +68,7 @@ schedule ML_ADMQuantities_CheckBoundaries at BASEGRID OPTIONS: meta } "check boundaries treatment" -schedule group ApplyBCs as ML_ADMQuantities_ApplyBCs in MoL_PseudoEvolution after ML_ADMQuantities_SelectBoundConds +schedule group ApplyBCs as ML_ADMQuantities_ApplyBCs in MoL_PostStep after ML_ADMQuantities_SelectBoundConds { # no language specified } "Apply boundary conditions controlled by thorn Boundary" diff --git a/ML_ADMQuantities_MP/schedule.ccl b/ML_ADMQuantities_MP/schedule.ccl index 1a66d54..f764cba 100644 --- a/ML_ADMQuantities_MP/schedule.ccl +++ b/ML_ADMQuantities_MP/schedule.ccl @@ -23,7 +23,7 @@ schedule ML_ADMQuantities_MP_RegisterSymmetries in SymmetryRegister OPTIONS: meta } "register symmetries" -schedule group ML_ADMQuantities_MP_group in MoL_PseudoEvolution +schedule group ML_ADMQuantities_MP_group in MoL_PseudoEvolution after MoL_PostStep { # no language specified } "ML_ADMQuantities_MP" @@ -51,17 +51,12 @@ schedule group ML_ADMQuantities_MP_bc_group in ML_ADMQuantities_MP_group after M # no language specified } "ML_ADMQuantities_MP" -schedule group ML_ADMQuantities_MP_bc_group at CCTK_POSTRESTRICT +schedule group ML_ADMQuantities_MP_bc_group in MoL_PseudoEvolutionBoundaries after MoL_PostStep { # no language specified } "ML_ADMQuantities_MP" -schedule group ML_ADMQuantities_MP_bc_group at CCTK_POSTRESTRICTINITIAL -{ - # no language specified -} "ML_ADMQuantities_MP" - -schedule ML_ADMQuantities_MP_SelectBoundConds in MoL_PseudoEvolution +schedule ML_ADMQuantities_MP_SelectBoundConds in MoL_PostStep { LANG: C OPTIONS: level @@ -73,7 +68,7 @@ schedule ML_ADMQuantities_MP_CheckBoundaries at BASEGRID OPTIONS: meta } "check boundaries treatment" -schedule group ApplyBCs as ML_ADMQuantities_MP_ApplyBCs in MoL_PseudoEvolution after ML_ADMQuantities_MP_SelectBoundConds +schedule group ApplyBCs as ML_ADMQuantities_MP_ApplyBCs in MoL_PostStep after ML_ADMQuantities_MP_SelectBoundConds { # no language specified } "Apply boundary conditions controlled by thorn Boundary" diff --git a/ML_ADMQuantities_O2/schedule.ccl b/ML_ADMQuantities_O2/schedule.ccl index 449cc06..fe37d31 100644 --- a/ML_ADMQuantities_O2/schedule.ccl +++ b/ML_ADMQuantities_O2/schedule.ccl @@ -23,7 +23,7 @@ schedule ML_ADMQuantities_O2_RegisterSymmetries in SymmetryRegister OPTIONS: meta } "register symmetries" -schedule group ML_ADMQuantities_O2_group in MoL_PseudoEvolution +schedule group ML_ADMQuantities_O2_group in MoL_PseudoEvolution after MoL_PostStep { # no language specified } "ML_ADMQuantities_O2" @@ -51,17 +51,12 @@ schedule group ML_ADMQuantities_O2_bc_group in ML_ADMQuantities_O2_group after M # no language specified } "ML_ADMQuantities_O2" -schedule group ML_ADMQuantities_O2_bc_group at CCTK_POSTRESTRICT +schedule group ML_ADMQuantities_O2_bc_group in MoL_PseudoEvolutionBoundaries after MoL_PostStep { # no language specified } "ML_ADMQuantities_O2" -schedule group ML_ADMQuantities_O2_bc_group at CCTK_POSTRESTRICTINITIAL -{ - # no language specified -} "ML_ADMQuantities_O2" - -schedule ML_ADMQuantities_O2_SelectBoundConds in MoL_PseudoEvolution +schedule ML_ADMQuantities_O2_SelectBoundConds in MoL_PostStep { LANG: C OPTIONS: level @@ -73,7 +68,7 @@ schedule ML_ADMQuantities_O2_CheckBoundaries at BASEGRID OPTIONS: meta } "check boundaries treatment" -schedule group ApplyBCs as ML_ADMQuantities_O2_ApplyBCs in MoL_PseudoEvolution after ML_ADMQuantities_O2_SelectBoundConds +schedule group ApplyBCs as ML_ADMQuantities_O2_ApplyBCs in MoL_PostStep after ML_ADMQuantities_O2_SelectBoundConds { # no language specified } "Apply boundary conditions controlled by thorn Boundary" diff --git a/ML_BSSN/schedule.ccl b/ML_BSSN/schedule.ccl index 9477f4a..9c0fddb 100644 --- a/ML_BSSN/schedule.ccl +++ b/ML_BSSN/schedule.ccl @@ -340,7 +340,7 @@ if (CCTK_EQUALS(my_rhs_boundary_condition, "static")) } "ML_BSSN_RHSStaticBoundary" } -schedule ML_BSSN_enforce IN MoL_PostStep BEFORE ML_BSSN_SelectBoundConds +schedule ML_BSSN_enforce IN MoL_PostStepModify { LANG: C } "ML_BSSN_enforce" @@ -388,7 +388,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "noLapseShiftAdvection")) } "ML_BSSN_convertToADMBaseFakeDtLapseShift" } -schedule group ML_BSSN_constraints1_group in MoL_PseudoEvolution +schedule group ML_BSSN_constraints1_group in MoL_PseudoEvolution after MoL_PostStep { # no language specified } "ML_BSSN_constraints1" @@ -415,17 +415,12 @@ schedule group ML_BSSN_constraints1_bc_group in ML_BSSN_constraints1_group after # no language specified } "ML_BSSN_constraints1" -schedule group ML_BSSN_constraints1_bc_group at CCTK_POSTRESTRICT +schedule group ML_BSSN_constraints1_bc_group in MoL_PseudoEvolutionBoundaries after MoL_PostStep { # no language specified } "ML_BSSN_constraints1" -schedule group ML_BSSN_constraints1_bc_group at CCTK_POSTRESTRICTINITIAL -{ - # no language specified -} "ML_BSSN_constraints1" - -schedule group ML_BSSN_constraints2_group in MoL_PseudoEvolution +schedule group ML_BSSN_constraints2_group in MoL_PseudoEvolution after MoL_PostStep { # no language specified } "ML_BSSN_constraints2" @@ -455,12 +450,7 @@ schedule group ML_BSSN_constraints2_bc_group in ML_BSSN_constraints2_group after # no language specified } "ML_BSSN_constraints2" -schedule group ML_BSSN_constraints2_bc_group at CCTK_POSTRESTRICT -{ - # no language specified -} "ML_BSSN_constraints2" - -schedule group ML_BSSN_constraints2_bc_group at CCTK_POSTRESTRICTINITIAL +schedule group ML_BSSN_constraints2_bc_group in MoL_PseudoEvolutionBoundaries after MoL_PostStep { # no language specified } "ML_BSSN_constraints2" diff --git a/ML_BSSN_Helper/src/SetGroupTags.c b/ML_BSSN_Helper/src/SetGroupTags.c index 4b24e56..7ae24bb 100644 --- a/ML_BSSN_Helper/src/SetGroupTags.c +++ b/ML_BSSN_Helper/src/SetGroupTags.c @@ -15,29 +15,30 @@ ML_BSSN_SetGroupTags (void) { DECLARE_CCTK_PARAMETERS; - set_group_tags (0, 0, 1, "ADMBase::metric"); - set_group_tags (0, 0, 1, "ADMBase::curv"); - set_group_tags (0, 0, 1, "ADMBase::lapse"); - set_group_tags (0, 0, 1, "ADMBase::shift"); - set_group_tags (0, 0, 1, "ADMBase::dtlapse"); - set_group_tags (0, 0, 1, "ADMBase::dtshift"); + int const checkpoint = timelevels > 1; + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::metric"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::curv"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::lapse"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::shift"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::dtlapse"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::dtshift"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_cons_detg"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_cons_Gamma"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_cons_traceA"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_Ham"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_mom"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_cons_detg"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_cons_Gamma"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_cons_traceA"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_Ham"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_mom"); - int const checkpoint = rhs_timelevels > 1; - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_log_confacrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_metricrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_Gammarhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_trace_curvrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_curvrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_lapserhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_dtlapserhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_shiftrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_dtshiftrhs"); + int const rhs_checkpoint = rhs_timelevels > 1; + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_log_confacrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_metricrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_Gammarhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_trace_curvrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_curvrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_lapserhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_dtlapserhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_shiftrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_dtshiftrhs"); return 0; } @@ -8,54 +8,52 @@ all: McLachlan_ADM.out McLachlan_BSSN.out McLachlan_ADMConstraints.out McLachlan McLachlan_ADM.out: McLachlan_ADM.m rm -rf ML_ADM* ./runmath.sh $^ - for thorn in ML_ADM*; do \ - ./copy-if-changed.sh $$thorn ../$$thorn; \ + for thorn in ML_ADM*; do \ + ./copy-if-changed.sh $$thorn ../$$thorn; \ done McLachlan_BSSN.out: McLachlan_BSSN.m rm -rf ML_BSSN* ./runmath.sh $^ - for thorn in ML_BSSN*; do \ - ./copy-if-changed.sh $$thorn ../$$thorn; \ - ./create-helper-thorn.sh $$thorn; \ + for thorn in ML_BSSN*; do \ + ./copy-if-changed.sh $$thorn ../$$thorn && \ + ./create-helper-thorn.sh $$thorn && \ ./copy-if-changed.sh $${thorn}_Helper ../$${thorn}_Helper; \ done McLachlan_ADMConstraints.out: McLachlan_ADMConstraints.m rm -rf ML_ADMConstraints* ./runmath.sh $^ - perl -pi -e 's/MoL_PostStep/MoL_PseudoEvolution/g' ML_ADMConstraints*/schedule.ccl - for thorn in ML_ADMConstraints*; do \ - ./copy-if-changed.sh $$thorn ../$$thorn; \ + for thorn in ML_ADMConstraints*; do \ + ./copy-if-changed.sh $$thorn ../$$thorn; \ done McLachlan_ADMQuantities.out: McLachlan_ADMQuantities.m rm -rf ML_ADMQuantities* ./runmath.sh $^ - perl -pi -e 's/MoL_PostStep/MoL_PseudoEvolution/g' ML_ADMQuantities*/schedule.ccl - for thorn in ML_ADMQuantities*; do \ - ./copy-if-changed.sh $$thorn ../$$thorn; \ + for thorn in ML_ADMQuantities*; do \ + ./copy-if-changed.sh $$thorn ../$$thorn; \ done WaveToy.out: WaveToy.m rm -rf ML_WaveToy ./runmath.sh $^ - for thorn in ML_WaveToy; do \ - ./copy-if-changed.sh $$thorn ../$$thorn; \ + for thorn in ML_WaveToy; do \ + ./copy-if-changed.sh $$thorn ../$$thorn; \ done WaveToyFO.out: WaveToyFO.m rm -rf ML_WaveToyFO ./runmath.sh $^ - for thorn in ML_WaveToyFO; do \ - ./copy-if-changed.sh $$thorn ../$$thorn; \ + for thorn in ML_WaveToyFO; do \ + ./copy-if-changed.sh $$thorn ../$$thorn; \ done hydro.out: hydro.m rm -rf ML_hydro ./runmath.sh $^ - for thorn in ML_hydro; do \ - ./copy-if-changed.sh $$thorn ../$$thorn; \ + for thorn in ML_hydro; do \ + ./copy-if-changed.sh $$thorn ../$$thorn; \ done clean: diff --git a/m/McLachlan_ADMConstraints.m b/m/McLachlan_ADMConstraints.m index 1abb5ae..bb9447b 100644 --- a/m/McLachlan_ADMConstraints.m +++ b/m/McLachlan_ADMConstraints.m @@ -138,6 +138,7 @@ ADMConstraintsCalc = Name -> ADMConstraints, Schedule -> Automatic, Where -> Interior, + After -> "MoL_PostStep", Shorthands -> {detg, gu[ua,ub], G[ua,lb,lc], R[la,lb], trR, Km[la,lb], trK, rho, S[la]}, diff --git a/m/McLachlan_ADMQuantities.m b/m/McLachlan_ADMQuantities.m index dfa5d22..14131f8 100644 --- a/m/McLachlan_ADMQuantities.m +++ b/m/McLachlan_ADMQuantities.m @@ -212,6 +212,7 @@ ADMQuantitiesCalc = Name -> ADMQuantities, Schedule -> Automatic, Where -> Interior, + After -> "MoL_PostStep", Shorthands -> {detgt, gtu[ua,ub], dgtu[ua,ub,lc], Gtl[la,lb,lc], Gtlu[la,lb,uc], Gt[ua,lb,lc], Xtn[ua], Rt[la,lb], trRt, diff --git a/m/McLachlan_BSSN.m b/m/McLachlan_BSSN.m index b05c8aa..927b894 100644 --- a/m/McLachlan_BSSN.m +++ b/m/McLachlan_BSSN.m @@ -808,7 +808,6 @@ evolCalc2 = PartialCalculation[evolCalc, "2", dot[At[la,lb]] }]; - dissCalc = { Name -> BSSN <> "_Dissipation", @@ -826,6 +825,24 @@ dissCalc = } }; +dissCalcs = +Table[ +{ + Name -> BSSN <> "_Dissipation_" <> ToString[var /. {Tensor[n_,__] -> n}], + Schedule -> {"IN " <> BSSN <> "_evolCalcGroup " <> + "AFTER (" <> BSSN <> "_RHS1 " <> BSSN <> "_RHS2)"}, + ConditionalOnKeyword -> {"apply_dissipation", "always"}, + Where -> InteriorNoSync, + Shorthands -> {epsdiss[ua]}, + Equations -> + { + epsdiss[ua] -> EpsDiss, + dot[var] -> dot[var] + epsdiss[ux] PDdiss[var,lx] + } +}, + {var, {phi, gt[la,lb], Xt[ui], trK, At[la,lb], alpha, A, beta[ua], B[ua]}} +]; + RHSStaticBoundaryCalc = { Name -> BSSN <> "_RHSStaticBoundary", @@ -910,11 +927,14 @@ RHSRadiativeBoundaryCalc = enforceCalc = { Name -> BSSN <> "_enforce", - Schedule -> {"IN MoL_PostStep BEFORE " <> BSSN <> "_SelectBoundConds"}, + Schedule -> {"IN MoL_PostStepModify"}, Shorthands -> {detgt, gtu[ua,ub], trAt}, Equations -> { - (* Enforcing the constraints needs to be a projection, because it + (* The following comment is still interesting, but is not correct + any more since it is now scheduled in MoL_PostStepModify instead: + + Enforcing the constraints needs to be a projection, because it is applied in MoL_PostStep and may thus be applied multiple times, not only during time evolution. Therefore detgt has to be calculated correctly, without assuming that det gt_ij = 1, @@ -963,6 +983,7 @@ constraintsCalc = { Name -> BSSN <> "_constraints", Schedule -> Automatic, + After -> "MoL_PostStep", Where -> Interior, Shorthands -> {detgt, ddetgt[la], gtu[ua,ub], Gt[ua,lb,lc], Gtl[la,lb,lc], Gtlu[la,lb,uc], Xtn[ua], @@ -1293,6 +1314,7 @@ realParameters = (******************************************************************************) calculations = +Join[ { initialCalc, convertFromADMBaseCalc, @@ -1314,7 +1336,9 @@ calculations = convertToADMBaseFakeDtLapseShiftCalc, (* constraintsCalc, *) constraintsCalc1, constraintsCalc2 -}; +}, + {} (*dissCalcs*) +]; CreateKrancThornTT [groups, ".", BSSN, Calculations -> calculations, diff --git a/m/prototype/ML_BSSN_Helper/src/SetGroupTags.c b/m/prototype/ML_BSSN_Helper/src/SetGroupTags.c index 4b24e56..7ae24bb 100644 --- a/m/prototype/ML_BSSN_Helper/src/SetGroupTags.c +++ b/m/prototype/ML_BSSN_Helper/src/SetGroupTags.c @@ -15,29 +15,30 @@ ML_BSSN_SetGroupTags (void) { DECLARE_CCTK_PARAMETERS; - set_group_tags (0, 0, 1, "ADMBase::metric"); - set_group_tags (0, 0, 1, "ADMBase::curv"); - set_group_tags (0, 0, 1, "ADMBase::lapse"); - set_group_tags (0, 0, 1, "ADMBase::shift"); - set_group_tags (0, 0, 1, "ADMBase::dtlapse"); - set_group_tags (0, 0, 1, "ADMBase::dtshift"); + int const checkpoint = timelevels > 1; + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::metric"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::curv"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::lapse"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::shift"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::dtlapse"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::dtshift"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_cons_detg"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_cons_Gamma"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_cons_traceA"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_Ham"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_mom"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_cons_detg"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_cons_Gamma"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_cons_traceA"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_Ham"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_mom"); - int const checkpoint = rhs_timelevels > 1; - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_log_confacrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_metricrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_Gammarhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_trace_curvrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_curvrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_lapserhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_dtlapserhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_shiftrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_dtshiftrhs"); + int const rhs_checkpoint = rhs_timelevels > 1; + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_log_confacrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_metricrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_Gammarhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_trace_curvrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_curvrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_lapserhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_dtlapserhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_shiftrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_dtshiftrhs"); return 0; } |