aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ML_ADMConstraints/schedule.ccl13
-rw-r--r--ML_ADMConstraints_MP/schedule.ccl13
-rw-r--r--ML_ADMConstraints_O2/schedule.ccl13
-rw-r--r--ML_ADMQuantities/schedule.ccl13
-rw-r--r--ML_ADMQuantities_MP/schedule.ccl13
-rw-r--r--ML_ADMQuantities_O2/schedule.ccl13
-rw-r--r--ML_BSSN/schedule.ccl20
-rw-r--r--ML_BSSN_Helper/src/SetGroupTags.c43
-rw-r--r--m/Makefile32
-rw-r--r--m/McLachlan_ADMConstraints.m1
-rw-r--r--m/McLachlan_ADMQuantities.m1
-rw-r--r--m/McLachlan_BSSN.m32
-rw-r--r--m/prototype/ML_BSSN_Helper/src/SetGroupTags.c43
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;
}
diff --git a/m/Makefile b/m/Makefile
index 48c7197..6c6bde5 100644
--- a/m/Makefile
+++ b/m/Makefile
@@ -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;
}