aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetIOHDF5/doc
diff options
context:
space:
mode:
authorschnetter <>2004-03-03 08:44:00 +0000
committerschnetter <>2004-03-03 08:44:00 +0000
commitc337c4f7839d1fb7b97224feae1ba73025f6d145 (patch)
tree1a28c5ec745724beaf9326b2851cf23d271fb9b5 /Carpet/CarpetIOHDF5/doc
parentaaf469aa8f8fadd7fb046daf02aeb61327e7f05e (diff)
A thorn for HDF5 output without using the FlexIO library.
darcs-hash:20040303084459-07bb3-4aed4fedaa19c030886252e05b792452f0c92671.gz
Diffstat (limited to 'Carpet/CarpetIOHDF5/doc')
-rw-r--r--Carpet/CarpetIOHDF5/doc/documentation.tex208
1 files changed, 17 insertions, 191 deletions
diff --git a/Carpet/CarpetIOHDF5/doc/documentation.tex b/Carpet/CarpetIOHDF5/doc/documentation.tex
index b07dd73d1..c08164240 100644
--- a/Carpet/CarpetIOHDF5/doc/documentation.tex
+++ b/Carpet/CarpetIOHDF5/doc/documentation.tex
@@ -2,7 +2,7 @@
% Cactus Thorn template for ThornGuide documentation
% Author: Ian Kelley
% Date: Sun Jun 02, 2002
-% $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOHDF5/doc/documentation.tex,v 1.4 2004/06/22 11:56:20 tradke Exp $
+% $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOHDF5/doc/documentation.tex,v 1.1 2004/03/03 09:44:26 schnetter Exp $
%
% Thorn documentation in the latex file doc/documentation.tex
% will be included in ThornGuides built with the Cactus make system.
@@ -64,7 +64,7 @@
% *======================================================================*
% If you are using CVS use this line to give version information
-% $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOHDF5/doc/documentation.tex,v 1.4 2004/06/22 11:56:20 tradke Exp $
+% $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOHDF5/doc/documentation.tex,v 1.1 2004/03/03 09:44:26 schnetter Exp $
\documentclass{article}
@@ -77,15 +77,15 @@
\begin{document}
% The author of the documentation
-\author{Erik Schnetter $<$schnetter@uni-tuebingen.de$>$, Christian D. Ott $<$cott@aei.mpg.de$>$}
+\author{Erik Schnetter $<$schnetter@uni-tuebingen.de$>$}
% The title of the document (not necessarily the name of the Thorn)
-\title{CarpetIOHDF5}
+\title{}
% the date your document was last changed, if your document is in CVS,
% please use:
-% \date{$ $Date: 2004/06/22 11:56:20 $ $}
-\date{March 18, 2004}
+% \date{$ $Date: 2004/03/03 09:44:26 $ $}
+\date{November 11 2002}
\maketitle
@@ -97,9 +97,7 @@
% Add an abstract for this thorn's documentation
\begin{abstract}
-CarpetIOHDF5 provides HDF5 based 3-D output to the Cactus mesh refinement driver Carpet.
-This document explains CarpetIOHDF5's usage and contains a specification of the
-CarpetIOHDF5 file format that was adapted from John Shalf's FlexIO library.
+
\end{abstract}
% The following sections are suggestive only.
@@ -107,207 +105,35 @@ CarpetIOHDF5 file format that was adapted from John Shalf's FlexIO library.
\section{Introduction}
-Having encountered various problems with CarpetIOFlexIO and the underlying FlexIO library,
-Erik Schnetter decided to create CarpetIOHDF5. CarpetIOHDF5 provides 3-D output for the
-Carpet Mesh Refinement driver within the Cactus Code. Christian D. Ott added
-file reader (analogous to Erik Schnetter's implementation present in CarpetIOFlexIO)
-and checkpoint/recovery features to CarpetIOHDF5.
-
-Right now, CarpetIOHDF5 only uses serial I/O - all data are copied to processor 0 for I/O.
-
-This document aims at giving the user a first handle on how to use
-CarpetIOHDF5. It also documents the HDF5 file layout used.
+\section{Physical System}
+\section{Numerical Implementation}
\section{Using This Thorn}
-
\subsection{Obtaining This Thorn}
-You can get a checkout from
-
-{\tt cvs.carpetcode.org:/home/cvs Carpet/CarpetIOHDF5}
-
\subsection{Basic Usage}
-First, you have to activate the thorn in your Cactus parameter file:
-
-{\tt ActiveThorns = "CarpetIOHDF5"}
-
-\subsubsection{3-D Output}
-
-\begin{itemize}
- \item {\tt iohdf5::out3D\_vars = "your list of Cactus grid functions to output"}
- \item {\tt iohdf5::out3D\_every = n} : Output every {\tt n} time steps
- \item {\tt iohdf5::out3D\_dir = "your preferred 3-D output directory"}
- \item {\tt IO::out\_single\_precision = "yes/no (output double-precision data in single precision)"}
-\end{itemize}
-
-\subsubsection{3-D Input}
-
-There are two ways to use the 3-D input capabilities:
-
-\begin{enumerate}
- \item For evolutions using ADMBase, one may use the thorn IDFileADM and the following parameter settings:
- \begin{itemize}
- \item {\tt ADMBase::initial\_data = "read from file"}
- \item {\tt IO::filereader\_ID\_files = "space separated list of files containing the ADM variables"}
- \item {\tt IO::filereader\_ID\_vars = "space separated list of variables to be read in"}
- \end{itemize}
- \item For evolutions not using ADMBase one may try to read in data by setting
- \begin{itemize}
- \item {\tt iohdf5::in3D\_dir = "directory from where to read data"}
- \item {\tt iohdf5::in3D\_vars = "space separated list of variables to be read in"}
- \end{itemize}
-\end{enumerate}
-
-
-\subsubsection{Checkpointing}
-
-CarpetIOHDF5 uses the Cactus checkpoint/recovery infrastructure provided by
-CactusBase/IOUtil.
-
-\begin{itemize}
- \item {\tt iohdf5::checkpoint = "yes"} : Turns on checkpointing
- \item {\tt iohdf5::checkpoint\_every = n} : Checkpointing every {\tt n} time steps
- \item {\tt iohdf5::checkpoint\_ID = "yes"} : Turns on checkpointing after initial data
- \item {\tt io::checkpoint\_dir = "your preferred checkpoint directory"}
- \item {\tt iohdf5::checkpoint\_keep = n} : Keep {\tt n} checkpoint files around
-\end{itemize}
-
-
-\subsubsection{Recover}
-
-CarpetIOHDF5 uses the Cactus checkpoint/recovery infrastructure provided by
-CactusBase/IOUtil. Currently all the checkpoint information is copied onto processor 0 and
- written into a single file whose name is invented by IOUtil. Unfortunately, single cpu
-checkpoint files have a different name (a missing \_file\_0 tag) than checkpoint
-files from multi-cpu runs. Somebody should tweek IOBase...
-
-In principle, CarpetIOHDF5 is able to restart on any number
-of cpus from a checkpoint file of a run using any (other or same) number of cpus.
-
-\begin{itemize}
- \item {\tt iohdf5::recover = "auto"} : Recover from the most recent Checkpoint file. This bombs,
- if no checkpoint file is found.
- \item {\tt iohdf5::recover = "autoprobe"} : Recover from the most recent Checkpoint file. This continues
- without recovering if no checkpoint file is found.
- \item {\tt iohdf5::recover\_dir = "directory containing the checkpoint file"}
- \item {\tt iohdf5::recover = "manual"} : Recover from a file specified by {\tt iohdf5::recover\_file}. This
- bombs if the file is not found.
- \item {\tt iohdf5::recover\_file = "file you want to recover from"} : Only needs to be set if
- {\tt iohdf5::recover = "manual"}.
-
-\end{itemize}
-
-
-
\subsection{Special Behaviour}
-\begin{itemize}
- \item {\tt iohdf5::h5verbose = "yes"} : Makes CarpetIOHDF5 very talkative.
-\end{itemize}
-
-
-\section{CarpetIOHDF5's HDF5 file layout}
+\subsection{Interaction With Other Thorns}
-The HDF5 file layout of CarpetIOHDF5 is quite simple. There are no groups besides the
-standard HDF5 root data object group:
+\subsection{Support and Feedback}
-\begin{itemize}
- \item Each dataset is named according to this template: \\
- {\tt \small [Full Variable Name] it=[Iteration] tl=[Timelevel] ml=[mglevel] rl=[reflevel] m=[map] c=[component]}
-
- \item Each dataset has the following (largely redundant!) attributes associated with it:
+\section{History}
- \begin{itemize}
- \item {\tt level} : Carpet::reflevel
- \item {\tt origin} : 1-D array of length Carpet::dim. \\ origin[d]=CCTK\_ORIGIN\_SPACE(d) +
- cctk\_lbnd[d] * delta[d]
- \item {\tt delta} : 1-D array of length Carpet::dim. \\ delta[d] = CCTK\_DELTA\_SPACE(d)
- \item {\tt min\_ext} : 1-D array of length Carpet::dim. \\ min\_ext[d] = delta[d]
- \item {\tt max\_ext} : 1-D array of length Carpet::dim. \\ origin[d] + cctk\_lsh[d] * delta[d]
- \item {\tt time} : cctk\_time
- \item {\tt timestep} : cctk\_iteration
- \item {\tt level\_timestep} : cctk\_iteration / Carpet::reflevelfact
- \item {\tt persistence} : cctk\_iteration / Carpet::reflevelfact
- \item {\tt time\_refinement} : Carpet::time\_refinement
- \item {\tt spatial\_refinement} : 1-D array of length Carpet::dim. \\ spatial\_refinement[d] = Carpet::reflevelfact
- \item {\tt grid\_placement\_refinement} : 1-D array of length Carpet::dim. \\ grid\_placement\_refinement[d] = Carpet::reflevelfact
- \item {\tt iorigin} : 1-D array of length Carpet::dim. \\ iorigin[d] = (Carpet::ext.lower() / Carpet::ext.stride())[d]
- \item {\tt name} : CCTK\_FullName(variable index)
- \item {\tt group\_version} : 1
- \item {\tt group\_fullname} : CCTK\_FullName(variable index)
- \item {\tt group\_varname} : CCTK\_VarName(variable index)
- \item {\tt group\_groupname} : CCTK\_GroupName(group index)
- \item {\tt group\_grouptype} : CCTK\_GF, CCTK\_ARRAY or CCTK\_SCALAR
- \item {\tt group\_dim} : CCTK\_GroupDimI(group index)
- \item {\tt group\_timelevel} : tl (current timelevel)
- \item {\tt group\_numtimelevels} : CCTK\_NumTimeLevelsI(group index)
- \item {\tt cctk\_version} : 1
- \item {\tt cctk\_dim} : cctk\_dim
- \item {\tt cctk\_iteration} : cctk\_iteration
- \item {\tt cctk\_gsh} : 1-D array of length Carpet::dim. cctk\_gsh
- \item {\tt cctk\_lsh} : 1-D array of length Carpet::dim. cctk\_lsh
- \item {\tt cctk\_lbnd} : 1-D array of length Carpet::dim. cctk\_lbnd
- \item {\tt cctk\_delta\_time} : 1-D array of length Carpet::dim. cctk\_delta\_time
- \item {\tt cctk\_delta\_space} : 1-D array of length Carpet::dim. cctk\_delta\_space
- \item {\tt cctk\_origin\_space} : 1-D array of length Carpet::dim. cctk\_origin\_space
- \item {\tt cctk\_bbox} : 1-D array of length 2*Carpet::dim. cctk\_box
- \item {\tt cctk\_levfac} : 1-D array of length Carpet::dim. cctk\_levfac
- \item {\tt cctk\_levoff} : 1-D array of length Carpet::dim. cctk\_levoff
- \item {\tt cctk\_levoffdenom} : 1-D array of length Carpet::dim. cctk\_levoffdenom
- \item {\tt cctk\_timefac} : cctk\_timefac
- \item {\tt cctk\_convlevel} : cctk\_convlevel
- \item {\tt cctk\_convfac} : cctk\_convfac
- \item {\tt cctk\_nghostzones} : 1-D array of length Carpet::dim. cctk\_nghostzones
- \item {\tt cctk\_time} : cctk\_time
- \item {\tt carpet\_version} : 1
- \item {\tt carpet\_dim} : Carpet::dim
- \item {\tt carpet\_basemglevel} : Carpet::basemglevel
- \item {\tt carpet\_mglevel} : Carpet::mglevel
- \item {\tt carpet\_mglevels} : Carpet::mglevels
- \item {\tt carpet\_mgface} : Carpet::mgfact
- \item {\tt carpet\_reflevel} : Carpet::reflevel
- \item {\tt carpet\_reflevels} : Carpet::reflevels
- \item {\tt carpet\_reffact} : Carpet::reffact
- \item {\tt carpet\_map} : Carpet::map
- \item {\tt carpet\_maps} : Carpet::maps
- \item {\tt carpet\_component} : Carpet::component
- \item {\tt carpet\_components} : Carpet::vhh.at(Carpet::map)->components(reflevel))
+\subsection{Thorn Source Code}
- \end{itemize}
-\end{itemize}
+\subsection{Thorn Documentation}
-\subsection{Attributes needed by the file reader}
+\subsection{Acknowledgements}
-The number of attributes needed by the CarpetIOHDF5 file reader is much smaller then the total
-number of attributes attached to each dataset:
-\begin{itemize}
- \item {\tt name}
- \item {\tt level}
- \item {\tt iorigin}
-\end{itemize}
+\begin{thebibliography}{9}
+\end{thebibliography}
-%\subsection{Interaction With Other Thorns}
-%
-%\subsection{Support and Feedback}
-%
-%\section{History}
-%
-%\subsection{Thorn Source Code}
-%
-%\subsection{Thorn Documentation}
-%
-%\subsection{Acknowledgements}
-%
-%
-%\begin{thebibliography}{9}
-%
-%\end{thebibliography}
-%
% Do not delete next line
% END CACTUS THORNGUIDE