\begin{frame}[containsverbatim]\frametitle{Writing A Hello World Thorn} \begin{itemize} \item To make a new thorn, navigate to your Cactus directory and type: \end{itemize} \end{frame} \begin{frame}[containsverbatim]\frametitle{Writing A Hello World Thorn} \begin{itemize} \item To make a new thorn, navigate to your Cactus directory and type \item make newthorn \end{itemize} \end{frame} \begin{frame}[containsverbatim]\frametitle{Writing A Hello World Thorn} \begin{itemize} \item To make a new thorn, navigate to your Cactus directory and type \item make newthorn \item Title both your thorn and arrangement as HelloWorld at the prompt, and then navigate to Cactus/arrangements/HelloWorld/HelloWorld \end{itemize} \end{frame} \begin{frame}[containsverbatim]\frametitle{Writing A Hello World Thorn} \begin{itemize} \item To make a new thorn, navigate to your Cactus directory and type \item make newthorn \item Title both your thorn and arrangement as "HelloWorld" at the prompt, and then navigate to Cactus/arrangements/HelloWorld/HelloWorld \item A stand alone Hello World application written in C: \end{itemize} \begin{verbatim} #include int main(void) { printf("Hello World!\n"); return 0; } \end{verbatim} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item For our Cactus implementation, the Hello World thorn's administrative files will look as follows: \end{itemize} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item For our Cactus implementation, the Hello World thorn's administrative files will look as follows: \item interface.ccl: \end{itemize} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item For our Cactus implementation, the Hello World thorn's administrative files will look as follows: \item interface.ccl: \end{itemize} \begin{verbatim} implements: HelloWorld \end{verbatim} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item For our Cactus implementation, the Hello World thorn's administrative files will look as follows: \item interface.ccl: \end{itemize} \begin{verbatim} implements: HelloWorld \end{verbatim} \begin{itemize} \item schedule.ccl: \end{itemize} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item For our Cactus implementation, the Hello World thorn's administrative files will look as follows: \item interface.ccl: \end{itemize} \begin{verbatim} implements: HelloWorld \end{verbatim} \begin{itemize} \item schedule.ccl: \end{itemize} \begin{verbatim} schedule HelloWorld at CCTK_EVOL { LANG: C } "Prints Hello World" \end{verbatim} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item For our Cactus implementation, the Hello World thorn's administrative files will look as follows: \item interface.ccl: \end{itemize} \begin{verbatim} implements: HelloWorld \end{verbatim} \begin{itemize} \item schedule.ccl: \end{itemize} \begin{verbatim} schedule HelloWorld at CCTK_EVOL { LANG: C } "Prints Hello World" \end{verbatim} \begin{itemize} \item param.ccl: Empty \end{itemize} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item For our Cactus implementation, the Hello World thorn's administrative files will look as follows: \item interface.ccl: \end{itemize} \begin{verbatim} implements: HelloWorld \end{verbatim} \begin{itemize} \item schedule.ccl: \end{itemize} \begin{verbatim} schedule HelloWorld at CCTK_EVOL { LANG: C } "Prints Hello World" \end{verbatim} \begin{itemize} \item param.ccl: Empty \item configuration.ccl: Empty \end{itemize} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item Move to the /src subdirectory \end{itemize} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item Move to the /src subdirectory \item Create a HelloWorld.c file, and implement: \end{itemize} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item Move to the /src subdirectory \item Create a HelloWorld.c file, and implement: \end{itemize} \begin{verbatim} #include "cctk.h" #include "cctk_Arguments.h" void HelloWorld(CCTK_ARGUMENTS) { DECLARE_CCTK_ARGUMENTS CCTK_INFO("Hello World!"); return; } \end{verbatim} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item Move to the /src subdirectory \item Create a HelloWorld.c file, and implement: \end{itemize} \begin{verbatim} #include "cctk.h" #include "cctk_Arguments.h" void HelloWorld(CCTK_ARGUMENTS) { DECLARE_CCTK_ARGUMENTS CCTK_INFO("Hello World!"); return; } \end{verbatim} \begin{itemize} \item Now open your "make.code.defn" file and implement: \end{itemize} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item Move to the /src subdirectory \item Create a HelloWorld.c file, and implement: \end{itemize} \begin{verbatim} #include "cctk.h" #include "cctk_Arguments.h" void HelloWorld(CCTK_ARGUMENTS) { DECLARE_CCTK_ARGUMENTS CCTK_INFO("Hello World!"); return; } \end{verbatim} \begin{itemize} \item Now open your "make.code.defn" file and implement: \end{itemize} \begin{verbatim} SRCS = HelloWorld.c \end{verbatim} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item Now return to your Cactus directory and create a parameter file. \end{itemize} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item Now return to your Cactus directory and create a parameter file. \item HelloWorld.par: \end{itemize} \end{frame} \begin{frame}[containsverbatim] \frametitle{Writing A Hello World Thorn} \begin{itemize} \item Now return to your Cactus directory and create a parameter file. \item HelloWorld.par: \end{itemize} \begin{verbatim} ActiveThorns = "HelloWorld" Cactus::cctk_itlast = 10 \end{verbatim} \end{frame} \begin{frame}\frametitle{Writing A Hello World Thorn} \begin{itemize} \item Return to your Cactus directory and type: \end{itemize} \end{frame} \begin{frame}\frametitle{Writing A Hello World Thorn} \begin{itemize} \item Return to your Cactus directory and type: \item gmake HelloWorld-config \end{itemize} \end{frame} \begin{frame}\frametitle{Writing A Hello World Thorn} \begin{itemize} \item Return to your Cactus directory and type: \item gmake HelloWorld-config \item gmake HelloWorld \end{itemize} \end{frame}