# Schedule definitions for thorn AHFinderDirect # $Header$ # # setup # schedule AHFinderDirect_setup at CCTK_BASEGRID \ after SpatialCoordinates { lang: C options: global } "setup data structures" # # 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" } 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" } if (run_at_CCTK_POSTINITIAL != 0) { schedule AHFinderDirect_update at CCTK_POSTINITIAL \ before AHFinderDirect_find_horizons { lang: C options: global } "update internal data structures from steerable parameters" schedule AHFinderDirect_find_horizons at CCTK_POSTINITIAL { lang: C options: global } "maybe find apparent horizon(s) after this time step" } # # announce horizon positions to other thorns # if (run_at_CCTK_ANALYSIS != 0) { schedule AHFinderDirect_announce at CCTK_ANALYSIS \ before DriftCorrect \ after AHFinderDirect_find_horizons { lang: C } "maybe announce horizon position(s) to other thorns" } if (run_at_CCTK_POSTSTEP != 0) { schedule AHFinderDirect_announce at CCTK_POSTSTEP \ before DriftCorrect \ after 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 { lang: C } "maybe announce horizon position(s) to other thorns" } # # store horizon info in SphericalSurface variables # if (run_at_CCTK_ANALYSIS != 0) { schedule AHFinderDirect_store_SS_info at CCTK_ANALYSIS \ 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 \ after AHFinderDirect_find_horizons { lang: C options: global } "maybe store horizon info in SphericalSurface variables" } if (run_at_CCTK_POSTINITIAL != 0) { schedule AHFinderDirect_store_SS_info at CCTK_POSTINITIAL \ after AHFinderDirect_find_horizons { lang: C options: global } "maybe store horizon info in SphericalSurface variables" } # # 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 group for working with the excision mask(s)" } if (run_at_CCTK_POSTSTEP != 0) { schedule group group_for_mask_stuff \ at CCTK_POSTSTEP \ after AHFinderDirect_find_horizons { } "schedule group for working with the excision mask(s)" } if (run_at_CCTK_POSTINITIAL != 0) { schedule group group_for_mask_stuff \ at CCTK_POSTINITIAL \ after AHFinderDirect_find_horizons { } "schedule group for working with the excision mask(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 \ 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 options: global loop-local } "maybe set mask(s) based on apparent horizon position(s)" ######################################## ## ## uncomment this if you want to use the test driver ## src/util/test_patch_system.cc ## ##schedule test_patch_system at CCTK_POSTINITIAL ##{ ##LANG: C ##OPTIONS: global ##} "test driver to verify that src/util/ and src/jtutil/ code works properly"