aboutsummaryrefslogtreecommitdiff
path: root/doc/documentation.tex
blob: 02fc64098f0eef877f94513fd47606d965362187 (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
\documentclass{article}

% Use the Cactus ThornGuide style file
% (Automatically used from Cactus distribution, if you have a
%  thorn without the Cactus Flesh download this from the Cactus
%  homepage at www.cactuscode.org)
\usepackage{../../../../doc/ThornGuide/cactus}

\begin{document}

\title{FlexIO}
\author{John Shalf}
\date{$ $Date$ $}

\maketitle

% Do not delete next line
% START CACTUS THORNGUIDE

\section{Purpose}

Thorn FlexIO provides a library for writing multidimensional data from
Cactus using the IEEEIO data format. The advantage of using this library
is that it is distributed with Cactus and needs no additional libraries
to be installed on a machine.

Writing in the FlexIO-IEEEIO format is currently implemented in thorn
CactusPUGHIO/IOFlexIO.

\section{FlexIO}

FlexIO is a compact API for storing multidimensional scientific
data. It hides the differences between underlying file formats
including HDF-SDS, IEEEIO, and network socket connections. (Support
for HDF5 will be added soon). It is designed to allow you to use
exactly the same subroutine/method calls to store your data regardless
of the underlying file format. FlexIO includes C++, C, and
Fortran77/F90 interfaces and it has been ported to Sun-Solaris,
Digital Unix, Cray-Unicos, SGI-Irix (32 and 64 bit), Windows95 and NT.

FlexIO borrows its terminology and storage-style from HDF and
NetCDF. The file stores a sequence of multidimesional arrays which are
referred to generically as datasets. The dimensions and datatype are
stored with each dataset so that the data is completely
self-describing. In addition, NetCDF-style named attributes can be
stored with each dataset to add information like coordinates, units,
and other auxillary information.

A set of higher level API's sit on top of FlexIO which permit
simplified access to complex datastructures like Finite-Element,
Adaptive Mesh Refinement, and Unigrid datastructures. In addition the
MPIO interface provides access to parallel IO for MPI codes.

\section{More Information}

For more information the reader is directed to the web pages for
FlexIO at
\begin{itemize}
  \item \verb|http://infinite-entropy.lbl.gov/FlexIO/|
  \item \verb|http://zeus.ncsa.uiuc.edu/~jshalf/FlexIO/|
  \item in the thorn's directory \verb|CactusExternal/FlexIO/doc/html/|
\end{itemize}

Information can be found on these web pages about
\begin{itemize}
  \item{} Programming interfaces, including C, C++ and Fortran
  \item{} Utilities, for finding information about IEEEIO data files
  \item{} Data converters, between IEEEIO and HDF
\end{itemize}

% Do not delete next line
% END CACTUS THORNGUIDE

\end{document}