next up previous contents
Next: Allowed Options Up: schedule.ccl Previous: Assignment Statements   Contents

Schedule Blocks

Each schedule block in the file schedule.ccl must have the syntax

schedule [GROUP] <function name|group name> AT|IN <time> \
     [AS <alias>] \
     [WHILE <variable>] [IF <variable>] \
     [BEFORE|AFTER <function name>|(<function name> <function name> ...)] \
{
  [LANG: <language>]
  [STORAGE:       <group>[timelevels],<group>[timelevels]...]
  [TRIGGER:       <group>,<group>...]
  [SYNCHRONISE:   <group>,<group>...]
  [OPTIONS:       <option>,<option>...]
} "Description of function"

GROUP
Schedule a schedule group with the same options as a schedule function. The schedule group will be created if it doesn't exist.

<function name|group name>
The name of a function or a schedule group to be scheduled. Function and schedule group names are case sensitive

<group>
A group of grid variables. Variable groups inherited from other thorns may be used, but they must then be fully qualified with the implementation name.

AT
Functions can be scheduled to run at the Cactus schedule bins, for example CCTK_EVOL, CCTK_STARTUP. A complete list and description of these is provided in Appendix E3. The initial letters CCTK_ are optional. Grid variables cannot be used in the CCTK_STARTUP and CCTK_SHUTDOWN timebins.

IN
Schedules a function or schedule group to run in a schedule group rather than in a Cactus timebin.

AS
Provides an alias for a function or schedule group which should be used for scheduling before, after or in. This can be used to provide thorn independence for other thorns scheduling functions or schedule groups relative to this one.

WHILE
Executes a function or schedule group until the given variable (which must be a fully qualified integer grid scalar) has the value zero.

IF
Executes a function or schedule group only if the given variable (which must be a fully qualified integer grid scalar) has a non-zero value.

BEFORE/AFTER
Takes a function name, a function alias, a schedule group name, or a parentheses-enclosed whitespace-separated list of these. (Any names that are not provided by an active thorn are ignored.) Note that a single schedule block may have multiple BEFORE/AFTER clauses.

LANG
The code language for the function (either C or FORTRAN). No language should be specified for a schedule group.

STORAGE
List of variable groups which should have storage switched on for the duration of the function or schedule group. Each group must specify how many timelevels to activate storage for, from 1 up to the maximum number for the group as specified in the defining interface.ccl file. If the maximum is 1 (the default) this number may be omitted.

TRIGGER
List of grid variables or groups to be used as triggers for causing an ANALYSIS function or group to be executed. Any schedule block for an analysis function or analysis group may contain a TRIGGER line.

SYNCHRONISE
List of groups to be synchronised as soon as the function or schedule group is exited.

OPTIONS
List of additional options (see Section E2.4.2) for the scheduled function or group of functions



Subsections
next up previous contents
Next: Allowed Options Up: schedule.ccl Previous: Assignment Statements   Contents