diff options
Diffstat (limited to 'schedule.ccl')
-rw-r--r-- | schedule.ccl | 61 |
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)" ######################################## |