summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/UsersGuide/RunningCactus.tex28
-rw-r--r--doc/UsersGuide/ThornWriters.tex62
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}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%