aboutsummaryrefslogtreecommitdiff
path: root/doc/documentation.tex
blob: 1a617ab85381b14649fecfab10683f6f5030b130 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
% Thorn documentation template
\documentclass{article}
\begin{document}

\title{IOHDF5}
\author{Thomas Radke}
\date{1999}
\maketitle

\abstract{Thorn IOHDF5 provides an IO method for output of variables in HDF5,
the Hierarchical Data Format version 5 ({\tt http://hdf.ncsa.uiuc.edu/whatishdf5.html}).\\
It also implements checkpointing/recovery functionality using HDF5.}
%
\section{Purpose}
%
Thorn IOHDF5 makes HDF5 available to the Cactus user by registering an IO method
called {\tt IOHDF5\_3D} with the IO interface in the flesh.\\
This method creates three-dimensional output of 3D grid functions as well as
plane output of scalar variables.
Data is written in HDF5 file format and goes into files named
{\tt "<varname>\_3D.h5"}. Such datafiles can be further processed by
visualization tools like Amira or AVS.\\
%
\newline
%
You obtain output by an IO method by either
%
\begin{itemize}
  \item setting the appropriate IO parameters
  \item calling one the routines of the IO function interface provided by the flesh
\end{itemize}
%
%
IOHDF5 also provides checkpointing/recovery functionality by registering
%
\begin{itemize}
  \item a checkpoint method with the Runtime Function Repository in the flesh
     if checkpointing was requested for this thorn.
     This method is then scheduled at {\em CCTK\_CPINITIAL} and/or
     {\em CCTK\_CHECKPOINT} (to checkpoint initial and/or evolution data).\\
     Controled via checkpoint parameters, it decides when to save the current
     state of simulation by dumping the contents of all Cactus variables and
     parameters into a checkpoint file which is in HDF5 file format.\\
     To write this file the thorn's IO method {\tt IOHDF5\_3D} is used.
  \item a recovery method with the generic recovery function interface of thorn IOUtil.\\
     At recovery time this method is called by IOUtil's generic recovery
     routine. It gets passed a filename which is tested to identify a checkpoint
     file in HDF5 format. If successful the method will then restore the
     contents of all Cactus variables and parameters from the given checkpoint
     file.
\end{itemize}
%
For a description of IO and checkpoint/recovery parameters and the generic
recovery function interface please see also the documentation of thorn IOUtil.\\
For a description of IO function interface to invoke IO methods by application
thorns please see the flesh documentation.
%
%
\section{Comments}

Since IOHDF5 uses parameters and the recovery function interface from IOUtil
it also needs this I/O skeleton thorn compiled into Cactus and activated.\\
%
%
\newline
{\bf Building Cactus with HDF5}\\
%
The Cactus distribution does not contain the HDF5 header files and library which
is used by thorn IOHDF5. So you need to configure it as an external software
package via:
%
\begin{verbatim}
  make <configuration>-config HDF5=YES
                             [HDF5_DIR=<path to HDF5 package>]
\end{verbatim}
%
The configuration script will look in some default places for an installed
HDF5 package. If nothing is found this way you can explicitely specify it with
the {\tt HDF5\_DIR} option.\\
%
Configure also checks which library version is contained within the HDF5
package: it can be either serial or parallel. The latter version includes the parallel IO extensions of the MPI 2 standard. To make use of these extensions
you need to configure Cactus with both HDF5 and MPI. Please make also sure then
that the parallel HDF5 library was built with the same MPI version as is used
for Cactus.\\
%
If Cactus was not configured to use HDF5 but has thorn IOHDF5 compiled in
it will give a warning message each time a thorn's routine is called
saying HDF5 I/O is not available.
%
% Automatically created from the ccl files 
% Do not worry for now.
\include{interface}
\include{param}
\include{schedule}

\end{document}