aboutsummaryrefslogtreecommitdiff
path: root/schedule.ccl
diff options
context:
space:
mode:
Diffstat (limited to 'schedule.ccl')
-rw-r--r--schedule.ccl61
1 files changed, 40 insertions, 21 deletions
diff --git a/schedule.ccl b/schedule.ccl
index 206df40..ae51c7a 100644
--- a/schedule.ccl
+++ b/schedule.ccl
@@ -122,42 +122,61 @@ if (run_at_CCTK_POSTINITIAL != 0)
#
# set excision mask
# FIXME: the name AHFinderDirect_maybe_do_masks is archaic,
-# AHFinderDirect_do_makss would be more apt
+# AHFinderDirect_do_masks would be more apt
+#
+# We use two Cactus Groups here:
+# group_for_mask_stuff
+# group_where_mask_is_set
+# AHFinderDirect_maybe_do_masks
+# this way other thorns can schedule routines which need to run immediately
+# before/after we set the mask in group_for_mask_stuff before/after
+# group_where_mask_is_set, without having to know in what higher-level
+# Cactus schedule bins/groups this thorn runs.
#
if (run_at_CCTK_ANALYSIS != 0)
{
- schedule AHFinderDirect_maybe_do_masks at CCTK_ANALYSIS \
- after AHFinderDirect_find_horizons
- {
- lang: C
- options: global loop-local
- } "maybe set mask(s) based on apparent horizon position(s)"
+ schedule group group_for_mask_stuff \
+ at CCTK_ANALYSIS \
+ after AHFinderDirect_find_horizons
+ {
+ } "schedule group for working with the excision mask(s)"
}
if (run_at_CCTK_POSTSTEP != 0)
{
- schedule AHFinderDirect_maybe_do_masks at CCTK_POSTSTEP \
- after AHFinderDirect_find_horizons
+ schedule group group_for_mask_stuff \
+ at CCTK_POSTSTEP \
+ after AHFinderDirect_find_horizons
{
- lang: C
- options: global loop-local
- } "maybe set mask(s) based on apparent horizon position(s)"
+ } "schedule group for working with the excision mask(s)"
}
if (run_at_CCTK_POSTINITIAL != 0)
{
- schedule AHFinderDirect_maybe_do_masks at CCTK_POSTINITIAL \
- after AHFinderDirect_find_horizons
+ schedule group group_for_mask_stuff \
+ at CCTK_POSTINITIAL \
+ after AHFinderDirect_find_horizons
{
- lang: C
- options: global loop-local
- } "maybe set mask(s) based on apparent horizon position(s)"
+ } "schedule group for working with the excision mask(s)"
}
# if using mesh refinement, reset the mask after regridding
-# if not using mesh refinement, POSTREGRID is ignored so this is a no-op
-schedule AHFinderDirect_maybe_do_masks at POSTREGRID \
-after (MaskOne MaskZero)
+# if not using mesh refinement, CCTK_POSTREGRID is ignored so this is a no-op
+schedule group group_for_mask_stuff \
+ at CCTK_POSTREGRID \
+ after (MaskOne MaskZero)
+ {
+ } "schedule group for working with the excision mask(s)"
+
+schedule group \
+ group_where_mask_is_set \
+ in group_for_mask_stuff
+ {
+ } "schedule group where we set the excision mask(s)"
+
+schedule AHFinderDirect_maybe_do_masks \
+ in group_where_mask_is_set
{
lang: C
- } "regrid ==> maybe reset mask(s) based on apparent horizon position(s)"
+ options: global loop-local
+ } "maybe set mask(s) based on apparent horizon position(s)"
########################################