summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/UsersGuide/Infrastructure.tex43
-rw-r--r--doc/UsersGuide/RunningCactus.tex139
2 files changed, 121 insertions, 61 deletions
diff --git a/doc/UsersGuide/Infrastructure.tex b/doc/UsersGuide/Infrastructure.tex
index cf236421..5c0d7362 100644
--- a/doc/UsersGuide/Infrastructure.tex
+++ b/doc/UsersGuide/Infrastructure.tex
@@ -74,6 +74,10 @@
\end{itemize}
\end{enumerate}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\begin{CCTKroutine}
\CCTKname{CCTK\_EnableGroupStorage}
@@ -81,7 +85,7 @@
\end{CCTKroutine}
\begin{CCTKsyn}
-\hfill {\bf C} && int storage = {\t CCTK\_EnableGroupStorage( cGH *GH, const char *group )}\\
+\hfill {\bf C} && {\t int storage = CCTK\_EnableGroupStorage( cGH *GH, const char *group )}\\
\hfill {\bf Fortran} &&
{\t call CCTK\_EnableGroupStorage( storage, GH, group ) }\\
&& CCTK\_POINTER GH \\
@@ -126,6 +130,43 @@ This routine is overloadable in the flesh, and must be provided by a thorn
&& {\bf FIXME} here will be stuff like can return CCTK\_ERROR\_STORAGEERROR
\end{tabular}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\begin{CCTKroutine}
+\CCTKname{CCTK\_RegisterReductionOperator}
+\CCTKdesc{Registers a function as providing a CCTK reduction operator with a given name}
+\end{CCTKroutine}
+
+\begin{CCTKsyn}
+\hfill {\bf C} && {\t int handle = CCTK\_RegisterReductionOperator(void (*function)(cGH *, int, int, int, void *, int, int *), const char *name)}
+\\
+\hfill {\bf Fortran} && Not available. Use a C wrapper function.
+\end{CCTKsyn}
+
+\begin{CCTKpar}
+\hfill {\t handle}&-&integer returning the handle for the function or an error code.
+\\
+\hfill {\t function}&-&pointer to the reduction operator.
+\\
+\hfill {\t name}&-&the name with which the reduction operator should be called.
+\end{CCTKpar}
+
+\noindent
+\begin{tabular}{p{14cm}}
+\\
+{\bf Discussion} \hfill
+\\
+\end{tabular}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+
+
\section{Group and Variable Utility Routines}
The CCTK provides a number of utility routines for dealing
diff --git a/doc/UsersGuide/RunningCactus.tex b/doc/UsersGuide/RunningCactus.tex
index a6d71a9e..c730dff3 100644
--- a/doc/UsersGuide/RunningCactus.tex
+++ b/doc/UsersGuide/RunningCactus.tex
@@ -208,8 +208,8 @@ in a single processor mode. Please refer to the architecture section
To use the CCTK, with the default driver (CactusBase/PUGH) on multiple
processes you also need:
\begin{itemize}
-\item{\tt MPI} PUGH uses the {\it Message Passing Interface (MPI)} to
-provide inter-processor communication. {\it (QUERY: Version Number? Gab)}
+\item{\tt MPI} the {\it Message Passing Interface (MPI)}
+provides inter-processor communication.
Supercomputering sites often supply a native MPI implementation with
which the CCTK is very likely to be compatible. Otherwise the {\tt MPICH}
version of MPI is available for various architectures and operating
@@ -299,14 +299,28 @@ thorns used. The flesh on its own requires less than 1 MB.
\noindent
If you want to compile the CCTK with thorns, you now need to checkout separately
- the required packages. These must be checked out in the
- ./CCTK/packages directory. For a list of available packages check the
-web pages at http://cactus.aei-potsdam.mpg.de . The default package which
-contains various infrastructure thorns is {\tt CactusBase}, to obtain this
-{\t
- cd packages
- cvs checkout CactusBase
+ the required packages into the {\t ./CCTK/packages} directory. To see the
+ available Cactus packages and thorns type
+ {\t
+ cvs -d :pserver:cvs\_anon@cvs.cactuscode.org:/usr/users/cactus checkout -s
+ }
+ To check out a package or thorn type go to the packages directory, {\t cd ./CCTK/packages},
+ and for a package type
+{\t
+ cvs checkout <package\_name>
+ }
+ or for just one thorn
+{\t
+cvs checkout <package\_name/thorn\_name>
}
+
+
+
+
+A target of
+ the make system exists to help with checking out packages and thorns, to use this
+type {\t gmake checkout} in the CCTK home directory.
+
\item{\bf Update}: To update an existing CCTK checkout (to patch in
possible changes, etc.), do the following {\em within} the {\tt ./CCTK} directory.
@@ -372,7 +386,7 @@ Configurations are descibed in detail in section \ref{sec:coaco}.
%\begin{itemize}
-%\item {\tt ActiveThorns}
+%\item {\tt ThornList}
%\item {\tt datestamp.o}
@@ -445,24 +459,24 @@ Configurations are descibed in detail in section \ref{sec:coaco}.
Cactus can be built in different configurations from the same copy of
the source files, and these different configurations coexist in the
-{\tt cactus/} directory. Here are several cases, where this can be
+{\tt ./CCTK/} directory. Here are several cases, where this can be
useful:
\begin{enumerate}
\item{}Different configurations can be for {\em different
architectures}. You can keep executables for multiple architecures
-based on a single copy of soiruce code, shared on a common file
+based on a single copy of source code, shared on a common file
system.
\item{} You can compare different {\em compiler options, debug-modes}.
- You migth want to compile different communication protocols
+ You might want to compile different communication protocols
(MPI/GLOBUS) or leave them out all together.
-\item{} You can have different configuration for {\em different thorns
+\item{} You can have different configurations for {\em different thorns
collections} compiled into your executable.
\end{enumerate}
-Once a configuration has been created, by {\tt gmake <confname>} as described
+Once a configuration has been created, by {\tt gmake <configuration name>} as described
in detail in the next section, a single call to {\tt gmake} will compile the
-code. The first time will display your ActiveThorns list, and give you the
+code. The first time will display your compile ThornList, and give you the
chance to edit it before continuing.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -471,7 +485,7 @@ chance to edit it before continuing.
At its simplest, this is done by {\tt gmake <confname>}. This will generate
a configuration with the specified name, doing its best to automatically
-determine the compilers and compilation flags suitable for the current
+determine the default compilers and compilation flags suitable for the current
architecture.
There are a number of additional command line arguments which may be supplied
@@ -481,9 +495,30 @@ to override some parts of the procedure.
There are two ways to pass options to the configuration process from the
gmake command line.
+\begin{enumerate}
+\item{} Add the options to a configuration file and use,
+
+{\tt gmake <configuration name>-config options=<filename>}
-Either you can say {\tt options=<file>} and specify a file containing the
-options, or you can pass them in individually on the command line.
+All available configuration options may be set in the file, any
+which are not set will take the default value. The options file
+should contain lines of the form:
+
+{\tt <option> [=] ...}
+
+The equals sign is optional.
+
+\item{} Pass the options individually on the command line,
+
+{\tt gmake <configuration name>-config <option name>=<chosen value>, ...}
+Not all configurarion options can be set on the command line. Those than can
+be set are indicated in the table below.
+
+\end{enumerate}
+
+Note that if a configuration file is used, and options are also passed
+on the command line, the configuration file will currently override the command line
+options, although this behaviour will soon change.
All options may be specified in the options file, an a subset of them on
the command line.
@@ -495,19 +530,20 @@ There are a plethora of available options.
\begin{itemize}
\item {\tt Compiler and tool specification}
-These are used to specify which compilers and other tools to use:
+These are used to specify which compilers and other tools to use. Entries followed
+by [CL] may be specified on the command line.
\begin{itemize}
\item {\tt CC}
-The C compiler
+[CL] The C compiler.
\item {\tt CXX}
The C++ compiler
\item {\tt F90}
-The Fortran 90 compiler
+[CL] The Fortran 90 compiler
\item {\tt F77}
-The FORTRAN 77 compiler.
+[CL] The FORTRAN 77 compiler.
\item {\tt LD}
-The linker.
+[CL] The linker.
\item {\tt AR}
The archiver used for generating libraries.
\item {\tt Ranlib}
@@ -531,13 +567,13 @@ Flags for the C compiler
Flags for the C++ compiler
\item {\tt F90FLAGS}
-Flags for the Fortran 90 compiler
+[CL] Flags for the Fortran 90 compiler
\item {\tt F77FLAGS}
-Flags for the FORTRAN 77 compiler
+[CL] Flags for the FORTRAN 77 compiler
\item {\tt LDFLAGS}
-Flags for the linker
+[CL] Flags for the linker
\item {\tt ARLAGS}
Flags for the archiver
@@ -584,10 +620,10 @@ specified as the number of bytes the data takes up. Note that not all
values will be valid on all architectures.
\item {\tt REAL\_PRECISION}
-Allowed values are 16,8,4 .
+[CL] Allowed values are 16,8,4 .
\item {INTEGER\_PRECISION}
-Allowed values are 8,4 and 2 .
+[CL] Allowed values are 8,4 and 2 .
\end{itemize}
@@ -600,27 +636,6 @@ The name of the executable.
\end{itemize}
-\subsection{The options file}
-
-This file can contain all the above options. It consists of lines of the form
-\begin{verbatim}
-<option> [=] ...
-\end{verbatim}
-
-where the = sign is optional.
-
-\subsection{Command line configuration options}
-
-The following options may be passed directly on the command line via
-
-\begin{verbatim}
-<option>=...
-\end{verbatim}
-
-CC,F90,F77,LD,CFLAGS,F90FLAGS,F77FLAGS,
-LDFLAGS,REAL\_PRECISION,INTEGER\_PRECISION .
-
-
\subsection{File layout after a configuration has been created }
The configuration process sets up various subdirectories and files in the
@@ -695,12 +710,12 @@ configuration, and preprocessed source files.
\subsection{Notes and Caveats}
\begin{itemize}
\item{} Instead of using the editor to specify the thorns you want to
- have compiled, you can {\em edit} the {\em ActiveThorns List} outside
- the make process. It is located in {\tt configs/CONF/ActiveThorns},
+ have compiled, you can {\em edit} the {\em ThornList} outside
+ the make process. It is located in {\tt configs/CONF/ThornList},
wher {\tt CONF} refers to the name of your configuration.
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
+\item{} The {\em ThornList} can also contain the name of a
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
@@ -731,7 +746,7 @@ is to do.
\item {\tt gmake <CONF>-realclean} removes from a configuration
all object and dependency files,
as well as files generated from the CST (that is, only the files
- generated by configure and the ActiveThorns files remain)
+ generated by configure and the ThornList files remain)
\item {\tt gmake <CONF>-cleanobjs} removes all object files from
a configuration
@@ -742,11 +757,11 @@ is to do.
\item {\tt gmake <CONF>-rebuild} rebuilds a configuration (reruns the CST)
-\item {\tt gmake <CONF>-reconfig} reconfigures a configuration
+\item {\tt gmake <CONF>-config} creates a new configuration or reconfigures an old one
\item {\tt gmake <CONF>-delete} deletes a configuration ({\tt rm -r configs/<CONF>})
-\item {\tt gmake <CONF>-activethorns} regenerates the ActiveThorns list for a configuration
+\item {\tt gmake <CONF>-activethorns} regenerates the ThornList for a configuration
\item {\tt gmake help} lists all make options
@@ -756,6 +771,10 @@ is to do.
\item {\tt gmake TAGS} creates an Emacs style TAGS file. See section
\ref{sec:usta} for using TAGS within Cactus.
+\item {\tt gmake doc} places a postscript version of the Users Guide documentation in your Cactus home directory.
+
+\item {\tt gmake checkout} allows you to easily checkout Cactus packages and thorns.
+
\item {\tt gmake distclean} nukes your configs directory.
\item {\tt gmake downsize} removes non essential files as documents
@@ -791,10 +810,10 @@ the same.
\section{Compiling in thorns}
\label{sec:cointh}
-Cactus compiles in all thorns listed in {\tt configs/CONF/ActiveThorns},
+Cactus compiles in all thorns listed in {\tt configs/CONF/ThornList},
if they have been checked out.
-The {\tt ActiveThorns} file is simply a list of the form
+The {\tt ThornList} file is simply a list of the form
<package>/<thorn>. All text on appearing on a line after a \# sign
is ignored, so comments can be included.
@@ -829,8 +848,8 @@ simple make and test suite
\begin{tabular}{ll}
{\t -O, -describe-all-parameters} &List all parameters and their descriptions\\
{\t -o, -describe-parameter <param>} & List description for one parameter\\
-{\t -A, -list-active-thorns}& List all compiled thorns\\
-{\t -a, -test-thorn-active <package/thorn>}& Query presence of a thorn\\
+{\t -T, -list-active-thorns}& List all compiled thorns\\
+{\t -t, -test-thorn-active <package/thorn>}& Query presence of a thorn\\
{\t -h, -help, -?} & Provide help on command line options\\
{\t -v, -version} & Compilation date of code\\
{\t -x, -test-parameters [<nprocs>]} & Run code as far a parameter checking, simulating being on {\t nprocs} processors\\