% Thorn documentation template
\documentclass{article}
\begin{document}

\title{IOFlexIO}
\author{Paul Walker}
\date{1998-1999}
\maketitle

\abstract{Thorn IOFlexIO provides IO methods for 2D and 3D output of variables
using John Shalf's FlexIO library ({\tt http://bach.ncsa.uiuc.edu/FlexIO/}).\\
It also implements checkpointing/recovery functionality.}
%
\section{Purpose}
%
Thorn IOFlexIO registers 2 IO methods with the IO interface in the flesh:
%
\begin{itemize}
  \item {\tt IOFlexIO\_2D} creates two-dimensional output of grid functions
    extracting the xy, xz, yz planes by slicing through the edge (in the octant
    case) or center (in all origin centered cases).
  \item {\tt IOFlexIO\_3D} creates three-dimensional output of grid functions
    as well as plain output of scalar variables.
\end{itemize}
%
Data for both methods is written in IEEEIO binary file format
({\tt http://bach.ncsa.uiuc.edu/IEEEIO/}) and goes into files named
{\tt "<varname>\_2D.ieee"} and {\tt "<varname>\_3D.ieee"} respectively.\\
Further processing of these data can be done with visualization tools like
Amira, AVS, and IDL.\\
%
\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}
%
%
IOFlexIO 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 IEEEIO file format.\\
     To write this file the thorn's IO method {\tt IOFlexIO\_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 IEEEIO 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 IOFlexIO uses parameters and the recovery function interface from IOUtil
it also needs this I/O skeleton thorn compiled into Cactus and activated.\\
%
%
% Automatically created from the ccl files 
% Do not worry for now.
\include{interface}
\include{param}
\include{schedule}

\end{document}
