summaryrefslogtreecommitdiff
path: root/doc/UsersGuide/Appendices.tex
diff options
context:
space:
mode:
authoreschnett <eschnett@17b73243-c579-4c4c-a9d2-2d5706c11dac>2012-05-17 02:54:13 +0000
committereschnett <eschnett@17b73243-c579-4c4c-a9d2-2d5706c11dac>2012-05-17 02:54:13 +0000
commitc55875e78d0b866a22f4ad79063a9e7c559d7f8e (patch)
tree17fc909ea0fb1026f2e0477e474c513deda5438e /doc/UsersGuide/Appendices.tex
parentfab6d3734a4e2e6782750b551339f0b8f0fa7c91 (diff)
Describe OPTIONS and TAGS in schedule.ccl
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4825 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'doc/UsersGuide/Appendices.tex')
-rw-r--r--doc/UsersGuide/Appendices.tex47
1 files changed, 47 insertions, 0 deletions
diff --git a/doc/UsersGuide/Appendices.tex b/doc/UsersGuide/Appendices.tex
index 111f54a3..9287274b 100644
--- a/doc/UsersGuide/Appendices.tex
+++ b/doc/UsersGuide/Appendices.tex
@@ -859,7 +859,11 @@ schedule [GROUP] <\var{function name}|\var{group name}> AT|IN <\var{time}> \verb
[BEFORE|AFTER <\var{function name}>|(<\var{function name}> <\var{function name}> ...)] \verb|\|
\{
[LANG: <\var{language}>]
+ [OPTIONS: <\var{option}>,<\var{option}>...]
+ [TAGS: <\var{keyword=value}>,<\var{keyword=value}>...]
[STORAGE: <\var{group}>[\var{timelevels}],<\var{group}>[\var{timelevels}]...]
+ [READS: <\var{group}>,<\var{group}>...]
+ [WRITES: <\var{group}>,<\var{group}>...]
[TRIGGER: <\var{group}>,<\var{group}>...]
[SYNCHRONISE: <\var{group}>,<\var{group}>...]
[OPTIONS: <\var{option}>,<\var{option}>...]
@@ -913,6 +917,35 @@ schedule [GROUP] <\var{function name}|\var{group name}> AT|IN <\var{time}> \verb
\item[{\tt LANG}] The code language for the function (either {\tt C} or {\tt
FORTRAN}). No language should be specified for a schedule group.
+ \item[\texttt{OPTIONS}] Schedule options are used for mesh
+ refinement and multi-block simulations, and they determine
+ ``where'' a routine executes. Possible options are:
+ \begin{description}
+ \item[\texttt{meta}]
+ \item[\texttt{meta\_early}]
+ \item[\texttt{meta\_late}]
+ \item[\texttt{global}]
+ \item[\texttt{global\_early}]
+ \item[\texttt{global\_late}]
+ \item[\texttt{level}]
+ \item[\texttt{singlemap}]
+ \item[\texttt{local}] (default, may be omitted)
+ \end{description}
+ (Only one of these options may be used.)
+ These options can be combined with the following:
+ \begin{description}
+ \item[\texttt{loop\_meta}]
+ \item[\texttt{loop\_global}]
+ \item[\texttt{loop\_level}]
+ \item[\texttt{loop\_singlemap}]
+ \item[\texttt{loop\_local}]
+ \end{description}
+ (At most one of the \texttt{loop\_...} options may be used.)
+
+ \item[\texttt{TAGS}] Schedule tags. These tags must have the form
+ \texttt{keyword=value}, and must be in a syntax accepted by
+ \texttt{Util\_TableCreateFromString}.
+
\item[{\tt 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,
@@ -925,6 +958,20 @@ schedule [GROUP] <\var{function name}|\var{group name}> AT|IN <\var{time}> \verb
case 0 (zero) \var{timelevels} can be requested, which is equivalent to
the {\tt STORAGE} statement being absent.
+\item[\texttt{READS}] \texttt{READS} is used to declare which grid
+ variables are read by the routine. This information is used e.g.\ to
+ determine which variables need to be copied between host and device
+ for OpenCL or CUDA kernel. This information can also be used to
+ ensure that all variables that are read have previously been written
+ by another routine.
+
+\item[\texttt{WRITES}] \texttt{WRITES} is used to declare which grid
+ variables are written by the routine. This information is used e.g.\ to
+ determine which variables need to be copied between host and device
+ for OpenCL or CUDA kernel. This information can also be used to
+ ensure that all variables that are read have previously been written
+ by another routine.
+
\item[{\tt TRIGGER}] List of grid variables or groups to be used as
triggers for causing an {\tt ANALYSIS} function or group to be
executed. Any schedule block for an analysis function or analysis