diff options
Diffstat (limited to 'doc/UsersGuide')
-rw-r--r-- | doc/UsersGuide/RunningCactus.tex | 28 | ||||
-rw-r--r-- | doc/UsersGuide/ThornWriters.tex | 62 |
2 files changed, 63 insertions, 27 deletions
diff --git a/doc/UsersGuide/RunningCactus.tex b/doc/UsersGuide/RunningCactus.tex index 9434963b..059aec2c 100644 --- a/doc/UsersGuide/RunningCactus.tex +++ b/doc/UsersGuide/RunningCactus.tex @@ -24,7 +24,7 @@ This documentation splits naturally into these parts: advanced part, we talk about user supplied infrastructure routines as {\em additional output routines, boundary conditions, etc.} -\item {\bf The standard toolkit.} +\item {\bf The standard package.} \end{itemize} @@ -32,7 +32,7 @@ Other topics will be discussed in separate documents: \begin{itemize} -\item The numerical relativity toolkit. +\item The numerical relativity package. \item A description of the flesh, for the maintainers. @@ -149,9 +149,9 @@ $y$ and $z$. (These could be spherical type coordinates, although that was not the original intention.) Grid functions can be two or one-dimensional as well as three dimensional. -Routines are grouped in thorns, and thorns informally in toolkits, -such as the standard toolkit, and the general relativity -toolkit. The routines inside a thorn can interact in any way, but +Routines are grouped in thorns, and thorns informally in packages, +such as the base package, and the general relativity +package. The routines inside a thorn can interact in any way, but thorns interact with the flesh and with each other only through a well-defined interface. Confirming to this interface guarantees that thorns will be compatible with, and useful for, all future extensions @@ -161,7 +161,7 @@ understand what a given thorn does. The flesh and many thorns are public and can be used by anyone, assuming ethical behavior. Public thorns and the flesh are distributed by CVS (see {\q where?} below). Public thorns are checked out in -toolkits. The flesh may change in the future but this should never +packages. The flesh may change in the future but this should never affect users, as Cactus 4.0 is making every effort to codify and freeze the interface. Public thorns should of course not lose important functionality they once had. (Nevertheless, CVS gives the @@ -212,7 +212,7 @@ basic CCTK installation on track. Its listed in the order of importance. operating systems at {\tt http://www-unix.mcs.anl.gov/mpi/}. \item{\tt TAGS}: Tags enables you browse through the calling structure of a program by help of function call database. Navigating the CCTK and - Toolkits becomes very easy. Emacs and vi both support this database. See + packages becomes very easy. Emacs and vi both support this database. See \ref{sec:tags} how to install ``tags''. \end{itemize} @@ -287,7 +287,7 @@ The installation requires about {\q HOW MANY MEGS ? }. See section within the CCTK tree. To update only certain directories, change into these directories and issue the update command. \item{\bf CVS status}: to obtain a status report on the ``age'' of your - CCTK or Toolkit routines (from your current directory position + CCTK or package routines (from your current directory position downward), type {\t cvs -d :pserver:cvs\_anon@hod.aei-potsdam.mpg.de:/usr/users/cactus status @@ -297,7 +297,7 @@ The installation requires about {\q HOW MANY MEGS ? }. See section {\em non-anonymously}, replace {\tt cvs\_anon} by your login name and provide the appropriate password during the CVS login process. Depending on your permissions, you may then make commits to the CCTK - or its Toolkits. + or its packages. \item{\bf Commits}: you need to perform a personalized login and have proper permissions to commit code to the repository. \end{itemize} @@ -320,11 +320,11 @@ following files substructure: \item{\tt ./src/} contains the source code for the CCTK -\item {\tt ./toolkits/} contains the Cactus toolkits. The toolkits - (the actual ``physics'') is not supplied by the CCTK. If the toolkits +\item {\tt ./packages/} contains the Cactus packages. The packages + (the actual ``physics'') is not supplied by the CCTK. If the packages you want to use are part of the central repository, they can be checked out in similar way the CCTK. Each directory inside {\tt - toolkits/} contains thorns. {\q ??} + packages/} contains thorns. {\q ??} \end{itemize} When Cactus is first compiled it creates a new directory {\tt @@ -425,7 +425,7 @@ system. \end{enumerate} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Compilation and configuartions of the CCTK and its Toolkits} +\section{Compilation and configuartions of the CCTK and its Packages} Building the code with GNU make is easy. Use gmake with the following syntax: {\t gmake [configuration options] <CONF>} @@ -477,7 +477,7 @@ structure is For a completely new configuration, this directory exists {\em after} the first make phase. \item{} The {\em ActiveThorns List} can also contain the name of a - CACTUS Toolkit. In this case all thorns of the Toolkit will be + CACTUS package. In this case all thorns of the package will be compiled into the executable. \item{} If the CCTK {\em cannot find a thorn} you specified, it will repartition you hard disk amd install Windows. diff --git a/doc/UsersGuide/ThornWriters.tex b/doc/UsersGuide/ThornWriters.tex index fe4dfb99..d31d20c4 100644 --- a/doc/UsersGuide/ThornWriters.tex +++ b/doc/UsersGuide/ThornWriters.tex @@ -12,7 +12,7 @@ those arising from plausible but incorrect assumptions about the behavior of someone else's thorn.) a) Again probably emphasize collaboration, what are thorns, - toolkits, how to share them. + packages, how to share them. b) Things to think about before you start programming: Language, read all the documentation, emphasize use of standard supported Cactus infrastructure @@ -29,8 +29,8 @@ behavior of someone else's thorn.) \chapter{Anatomy of a thorn} -Each thorn must be in a toolkit. Toolkits are fairly informal. If you -want, you can just make your own toolkit directory, and stick your new +Each thorn must be in a package. Packages are fairly informal. If you +want, you can just make your own package directory, and stick your new thorn into it. a) Creating a thorn (gmake new thorn) @@ -46,16 +46,52 @@ thorn into it. \chapter{Putting code into your thorn} - a) What the flesh basically provides (header files, macros, ...) - b) Argument lists and parameters - c) A simple example (Baloney) - d) Differences between F and C with the interface - e) A more complex example (Wavetoy) - f) Error handling and code stopping - g) Calling C from F, F from C, (C++ from F? ....) - h) Good Cactus Style Programming Guidelines - i) Adding a test suite - j) Sharing your thorn with the world. +\section{What the F***h provides} + +Header files, macros ... + +\section{Argument lists and parameters} + +\section{A First Example (Baloney)} + +\section{Programming language differences} + +\section{A more complex example (WaveToy)} + +\section{Error handling, Warnings and Code Termination} + +There are two CCTK commands to use for stopping the code +from within your thorn: +\begin{itemize} +\item{} To shut the code down cleanly, use +{\t +\begin{verbatim} +CCTK_Stop(pointer GH, INTEGER return_code) +CCTK_Stop(cGH *GH, int return_code); +\end{verbatim} +} +\item{} To shut the code down more violently, use +{\t +\begin{verbatim} +CCTK_Abort(pointer GH, INTEGER return_code) +CCTK_Abort(cGH *GH, int return_code); +\end{verbatim} +} +\end{itemize} +In both cases, an error code should be returned indicating the +error that you trapped which precipitated the code shutdown. +The error codes are detailed in the following table: +{\bf ACTION: Fill in the table QUERY}. + +\section{Calls between different programming languages} +\subsection{Calling C routines from FORTRAN} +\subsection{Calling FORTRAN routines from C} + +\section{Programming Style Guidelines and Recommendations} + +\section{Adding a test suite} + +\section{Sharing your thorns/packages with others} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |