diff options
author | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2006-06-09 10:58:42 +0000 |
---|---|---|
committer | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2006-06-09 10:58:42 +0000 |
commit | fe4e962d3e30527e164e194af8f360c701134e04 (patch) | |
tree | 6f5a0fdd31b5561fcfbc12c261488b9fb8dc49b6 | |
parent | 56375fda6ef0bc0043ad426bba5864ca48cf2496 (diff) |
redo the way mask-setting is scheduled:
it's now inside two new groups
group_for_mask_stuff
group_where_mask_is_set
so other thorns (like AEIDevelopment/PreviousMask) can schedule
stuff in group_for_mask_stuff before/after group_where_mask_is_set
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@1456 f88db872-0e4f-0410-b76b-b9085cfa78c5
-rw-r--r-- | doc/documentation.tex | 20 | ||||
-rw-r--r-- | schedule.ccl | 61 |
2 files changed, 59 insertions, 22 deletions
diff --git a/doc/documentation.tex b/doc/documentation.tex index 21785a9..be8db7c 100644 --- a/doc/documentation.tex +++ b/doc/documentation.tex @@ -334,7 +334,7 @@ section~\ref{AHFinderDirect/sect-parameters/communicating-with-other-thorns}. \section{Obtaining and Compiling \thorn{AHFinderDirect}} You should be able to obtain the source code for this thorn via the -usual procedures for anonymous cvs checkout; at present it lives inu +usual procedures for anonymous cvs checkout; at present it lives in the \arrangement{AEIThorns} arrangement. This thorn is written primarily in \Cplusplus{}, calling C and @@ -1151,6 +1151,24 @@ Note that \thorn{AHFinderDirect} doesn't itself register any bitfields or states with \thorn{SpaceMask} -- you must arrange for some other thorn(s) to do this before \thorn{AHFinderDirect} tries to find the horizon(s). +If \thorn{AHFinderDirect} sets a mask or masks, this happens in the +same schedule bin(s) as the horizon finding +(see section~\ref{AHFinderDirect/sect-parameters/other-parameters} +for a discussion of the parameters which control this). +More precisely, \thorn{AHFinderDirect} creates two schedule groups +for this purpose: +\begin{itemize} +\item The schedule group \verb|group_for_mask_stuff| is + scheduled to run just after the horizon is found. +\item The schedule group \verb|group_where_mask_is_set| + is scheduled in (the schedule group) \verb|group_for_mask_stuff|. +\item The actual setting of the mask is scheduled in + (the schedule group) \verb|group_where_mask_is_set|. +\end{description} +Thorn \thorn{PreviousMask} uses these schedule groups to keep a +``previous'' as well as a ``current'' mask. See that thorn's thorn +guide for further details. + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Communicating with Other Thorns} 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)" ######################################## |