\begin{frame} \frametitle{An Overview of Application Thorns}
 \begin{centering}
  \begin{figure}[h]
   \centering
   \includegraphics[height=3cm]{thorn.png}
  \end{figure}
 \end{centering}
\end{frame}


\begin{frame} \frametitle{Basic Thorn Anatomy}
 \begin{itemize}[<+->]
  \item Each thorn consists of a subdirectory containing four files:
  \item interface.ccl - This file defines the Cactus interface. It will include a header block which gives 
                        details about the thorns interactions with other thorns, if any. It will also 
                        include a block defining the thorn's global variables, if any.
  \item param.ccl - This file includes the parameters introduced by this thorn, as well as the parameters
                    needed from other thorn interactions, as defined in the interface.ccl file. This file
                    can also detail the scope of the given parameters (i.e. global, private, etc.)
  \item configuration.ccl - This file is optional. It contains capabilities which a thorn provides, requires,
                            or may use if available. For example, this file can provide access to external 
                            libraries, provide access to functions for other thorns, or split a thorn into 
                            several thorns, all of which require some commone (not aliased) functions.
 \end{itemize}
\end{frame}


\begin{frame} \frametitle{Continued}
 \begin{itemize}[<+->]
  \item schedule.ccl - This file contains scheduling information for routines called by the flesh. This 
                       will determine which routines will be run in which order; via:
   \begin{itemize}
    \item Assignment Statements - switch on grid variable storage for the duration of the program's execution.
    \item Schedule Blocks - schedule a given subroutine from a thorn to be called at given time's in the program's execution.
    \item Conditional Statements - Allow both assignment statements and schedule blocks to be processed given
                                   conditional parameter values.
   \end{itemize}
 \end{itemize}
\end{frame}


\begin{frame} \frametitle{Continued}
 \begin{itemize}[<+->]
  \item The thorn will also include a README file with a brief description of the thorn, as well as
        several subdirectories, including:
   \begin{itemize}
    \item /src - For holding source files, as well as compilation instructions.
    \item /src/include - For include files.
    \item /doc - For documentation.
    \item /par - For example parameter files.
    \item /test - For holding the thorn's test suite.
   \end{itemize}
 \end{itemize}
\end{frame}

