From 9716af1598ddfd2ab8ee7198b35cca1df312c4fd Mon Sep 17 00:00:00 2001 From: svnadmin Date: Thu, 26 Jun 2008 13:51:26 +0000 Subject: Make "Erik" branch the default trunk for AHFinderDirect. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@1526 f88db872-0e4f-0410-b76b-b9085cfa78c5 --- schedule.ccl | 274 ++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 177 insertions(+), 97 deletions(-) (limited to 'schedule.ccl') diff --git a/schedule.ccl b/schedule.ccl index 3617d3b..7e46213 100644 --- a/schedule.ccl +++ b/schedule.ccl @@ -1,6 +1,9 @@ # Schedule definitions for thorn AHFinderDirect # $Header$ +storage: ah_radius ah_origin ah_centroid ah_flags +storage: ahmask[3] + # # setup # @@ -11,172 +14,249 @@ schedule AHFinderDirect_setup at CCTK_BASEGRID \ options: global } "setup data structures" +# +# checkpoint/recover support +# +schedule AHFinderDirect_recover at CCTK_POST_RECOVER_VARIABLES + { + lang: C + options: global + } "import horizon data from Cactus variables" + # # find horizons # if (run_at_CCTK_ANALYSIS != 0) { - schedule AHFinderDirect_update at CCTK_ANALYSIS \ - before AHFinderDirect_find_horizons - { - lang: C - options: global - } "update internal data structures from steerable parameters" schedule AHFinderDirect_find_horizons at CCTK_ANALYSIS { lang: C options: global - } "maybe find apparent horizon(s) after this time step" + } "find apparent horizon(s) after this time step" } if (run_at_CCTK_POSTSTEP != 0) { - schedule AHFinderDirect_update at CCTK_POSTSTEP \ - before AHFinderDirect_find_horizons - { - lang: C - options: global - } "update internal data structures from steerable parameters" schedule AHFinderDirect_find_horizons at CCTK_POSTSTEP { lang: C options: global - } "maybe find apparent horizon(s) after this time step" + } "find apparent horizon(s) after this time step" } if (run_at_CCTK_POSTINITIAL != 0) { - schedule AHFinderDirect_update at CCTK_POSTINITIAL \ - before AHFinderDirect_find_horizons + schedule AHFinderDirect_find_horizons at CCTK_POSTINITIAL { lang: C options: global - } "update internal data structures from steerable parameters" - schedule AHFinderDirect_find_horizons at CCTK_POSTINITIAL + } "find apparent horizon(s) after this time step" + } +if (run_at_CCTK_POST_RECOVER_VARIABLES != 0) + { + schedule AHFinderDirect_find_horizons at CCTK_POST_RECOVER_VARIABLES { lang: C options: global - } "maybe find apparent horizon(s) after this time step" + } "find apparent horizon(s) after this time step" } # -# announce horizon positions to other thorns +# find horizons, set excision mask, maybe announce centroid to other thorns +# +# FIXME: the name AHFinderDirect_maybe_do_masks is archaic, +# 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_announce at CCTK_ANALYSIS \ - before DriftCorrect \ + schedule AHFinderDirect_import_mask at CCTK_ANALYSIS \ + before AHFinderDirect_find_horizons + { + lang: C + options: global loop-local + } "import the excision mask" + + schedule AHFinderDirect_store at CCTK_ANALYSIS \ + after AHFinderDirect_find_horizons \ + before SphericalSurface_HasBeenSet + { + lang: C + options: global + } "store apparent horizon(s) into spherical surface(s)" + + schedule AHFinderDirect_save at CCTK_ANALYSIS \ + after AHFinderDirect_find_horizons \ + { + lang: C + options: global + } "save apparent horizon(s) into Cactus variables" + + if (which_horizon_to_announce_centroid != 0) + { + schedule AHFinderDirect_announce at CCTK_ANALYSIS \ + before DriftCorrect \ + after AHFinderDirect_find_horizons + { + lang: C + options: global + } "announce horizon position(s) to other thorns" + } + + schedule AHFinderDirect_maybe_do_masks at CCTK_ANALYSIS \ after AHFinderDirect_find_horizons { lang: C - } "maybe announce horizon position(s) to other thorns" + options: global loop-local + } "set mask(s) based on apparent horizon position(s)" } if (run_at_CCTK_POSTSTEP != 0) { - schedule AHFinderDirect_announce at CCTK_POSTSTEP \ - before DriftCorrect \ - after AHFinderDirect_find_horizons + schedule AHFinderDirect_import_mask at CCTK_POSTSTEP \ + before AHFinderDirect_find_horizons { lang: C - } "maybe announce horizon position(s) to other thorns" - } -if (run_at_CCTK_POSTINITIAL != 0) - { - schedule AHFinderDirect_announce at CCTK_POSTINITIAL \ - before DriftCorrect \ - after AHFinderDirect_find_horizons + options: global loop-local + } "import the excision mask" + + schedule AHFinderDirect_store at CCTK_POSTSTEP \ + after AHFinderDirect_find_horizons \ + before SphericalSurface_HasBeenSet { lang: C - } "maybe announce horizon position(s) to other thorns" - } + options: global + } "store apparent horizon(s) into spherical surface(s)" -# -# store horizon info in SphericalSurface variables -# -if (run_at_CCTK_ANALYSIS != 0) - { - schedule AHFinderDirect_store_SS_info at CCTK_ANALYSIS \ - after AHFinderDirect_find_horizons + schedule AHFinderDirect_save at CCTK_POSTSTEP \ + after AHFinderDirect_find_horizons \ { lang: C options: global - } "maybe store horizon info in SphericalSurface variables" - } -if (run_at_CCTK_POSTSTEP != 0) - { - schedule AHFinderDirect_store_SS_info at CCTK_POSTSTEP \ + } "save apparent horizon(s) into Cactus variables" + + if (which_horizon_to_announce_centroid != 0) + { + schedule AHFinderDirect_announce at CCTK_POSTSTEP \ + before DriftCorrect \ + after AHFinderDirect_find_horizons + { + lang: C + options: global + } "announce horizon position(s) to other thorns" + } + + schedule AHFinderDirect_maybe_do_masks at CCTK_POSTSTEP \ after AHFinderDirect_find_horizons { lang: C - options: global - } "maybe store horizon info in SphericalSurface variables" + options: global loop-local + } "set mask(s) based on apparent horizon position(s)" } if (run_at_CCTK_POSTINITIAL != 0) { - schedule AHFinderDirect_store_SS_info at CCTK_POSTINITIAL \ - after AHFinderDirect_find_horizons + schedule AHFinderDirect_import_mask at CCTK_POSTINITIAL \ + before AHFinderDirect_find_horizons + { + lang: C + options: global loop-local + } "import the excision mask" + + schedule AHFinderDirect_store at CCTK_POSTINITIAL \ + after AHFinderDirect_find_horizons \ + before SphericalSurface_HasBeenSet { lang: C options: global - } "maybe store horizon info in SphericalSurface variables" - } + } "store apparent horizon(s) into spherical surface(s)" -# -# set excision mask -# FIXME: the name AHFinderDirect_maybe_do_masks is archaic, -# 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 group group_for_mask_stuff \ - at CCTK_ANALYSIS \ - after AHFinderDirect_find_horizons + schedule AHFinderDirect_save at CCTK_POSTINITIAL \ + after AHFinderDirect_find_horizons \ + { + lang: C + options: global + } "save apparent horizon(s) into Cactus variables" + + if (which_horizon_to_announce_centroid != 0) { - } "schedule group for working with the excision mask(s)" - } -if (run_at_CCTK_POSTSTEP != 0) - { - schedule group group_for_mask_stuff \ - at CCTK_POSTSTEP \ + schedule AHFinderDirect_announce at CCTK_POSTINITIAL \ + before DriftCorrect \ + after AHFinderDirect_find_horizons + { + lang: C + options: global + } "announce horizon position(s) to other thorns" + } + + schedule AHFinderDirect_maybe_do_masks at CCTK_POSTINITIAL \ after AHFinderDirect_find_horizons { - } "schedule group for working with the excision mask(s)" + lang: C + options: global loop-local + } "set mask(s) based on apparent horizon position(s)" } -if (run_at_CCTK_POSTINITIAL != 0) +if (run_at_CCTK_POST_RECOVER_VARIABLES != 0) { - schedule group group_for_mask_stuff \ - at CCTK_POSTINITIAL \ + schedule AHFinderDirect_import_mask at CCTK_POST_RECOVER_VARIABLES \ + before AHFinderDirect_find_horizons + { + lang: C + options: global loop-local + } "import the excision mask" + + schedule AHFinderDirect_store at CCTK_POST_RECOVER_VARIABLES \ + after AHFinderDirect_find_horizons \ + before SphericalSurface_HasBeenSet + { + lang: C + options: global + } "store apparent horizon(s) into spherical surface(s)" + + schedule AHFinderDirect_save at CCTK_POST_RECOVER_VARIABLES \ + after AHFinderDirect_find_horizons \ + { + lang: C + options: global + } "save apparent horizon(s) into Cactus variables" + + if (which_horizon_to_announce_centroid != 0) + { + schedule AHFinderDirect_announce at CCTK_POST_RECOVER_VARIABLES \ + before DriftCorrect \ + after AHFinderDirect_find_horizons + { + lang: C + options: global + } "announce horizon position(s) to other thorns" + } + + schedule AHFinderDirect_maybe_do_masks at CCTK_POST_RECOVER_VARIABLES \ after AHFinderDirect_find_horizons { - } "schedule group for working with the excision mask(s)" + lang: C + options: global loop-local + } "set mask(s) based on apparent horizon position(s)" } -# if using mesh refinement, reset the mask after regridding -# if not using mesh refinement, CCTK_POSTREGRID is ignored so this is a no-op -schedule group group_for_mask_stuff \ - at CCTK_POSTREGRID \ + +# TODO: Don't call this, since no horizon has been found yet +schedule AHFinderDirect_maybe_do_masks at CCTK_POSTREGRIDINITIAL \ 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)" + lang: C + options: global loop-local + } "set mask(s) based on apparent horizon position(s)" -schedule AHFinderDirect_maybe_do_masks \ - in group_where_mask_is_set +schedule AHFinderDirect_maybe_do_masks at CCTK_POSTREGRID \ + after (MaskOne MaskZero) { lang: C options: global loop-local - } "maybe set mask(s) based on apparent horizon position(s)" + } "set mask(s) based on apparent horizon position(s)" ######################################## -- cgit v1.2.3