aboutsummaryrefslogtreecommitdiff
path: root/doc/html/AMRreaderBase.html
blob: 7f3d1ea8932c2fe9e5bda3ba56f110ff19793c12 (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
98
99
100
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
  <head>
    <title>Basic AMR Reader</title>
  </head>

  <body bgcolor="#F0F0F0">
    <font face="arial,helvetica"><h1>Basic AMR Reader</h1></font>
    This reads the file format written by the 
    <a href="AMRwriter.html">AMRwriter API</a>.  It does not care if
    the underlying file format is <a href="IEEEIO.html">IEEEIO</a> or 
    <a href="http://hdf.ncsa.uiuc.edu">HDF-SDS/NetCDF</a>.<p>
      This very simplistic API reads information about each grid
      stored in the AMR file into a list of
      <a href="AmrGrid.html">AmrGrid datastructures</a> without
      actually loading the associated grid data.  The user can
      then use this information to tell the AMRreader which grids to
      load data for.  The higher-level <a href="AMRfileReader.html">AmrFileReader</a> 
      provides its own filtering system for selecting grids by level
      and timestep.  At this time only a C++ interface is released.
      C and F77 interfaces are available on request.<p>
      <hr>
       <font face="arial,helvetica" color="#555588"><h2>The API</h2></font>
    <UL>
      <LI><a href="#CPP">C++ Interface</a>
      <LI><a href="#C">C Interface</a>
      <LI><a href="#F77">F77/F90 Interface</a>
    </UL>
    <hr>
     <u><h3><a name="CPP">C++ Interface</a></h3></u>
    <DL>
      <DT><font color="#888888"><b>Constructors/Destructors</b></font>
      <DD><DL>
	  <DT><b>AmrGridReader::AmrGridReader(IObase
		&filehandle)</b> <i>constructor</i>
	  <DD>The <i>filehandle</i> is an already
	    <a href="UsingC++.html#Opening">open IEEEIO or HDFIO
	    file</a>.  This initializes the reader and attaches it to that
	    datafile.
	  <DT><b>AmrGridReader::~AmrGridReader()</b> <i>destructor</i>
	  <DD>This flushes all of the necessary file buffers.
	    The filehandle that the writer was bound to must be
	    closed separately though.
	</DL><p>
      <DT><font color="#888888"><b>Reading/Stepping through the
	    Data</b></font><br>
	<DD>
	Grids are indexed from 0 to nDatasets-1 (where nDatasets are
	the total number of grids stored in the file).  The grids are
	indexed in exactly the order they are stored in the file
	(there is no sorting of indices here).  So its up to the user
	of the API to use the <a href="AmrGrid.html">AmrGrid</a>
	datastructures to select which grids to actually load data for.<p>
	There are two different types of <i>"get"</i> requests that
	can be filled.  When you <i>"getGridInfo"</i>, only the
	informational portions of the 
	<a href="AmrGrid.html">AmrGrid</a> datastructure are filled
	out.  When you <i>"getGridData"</i> then both the
	grid information and associated data will be loaded into the
	<a href="AmrGrid.html">AmrGrid</a> datastructure.<p>
      <DT><DL>
      <DT><b>AmrGrid *AmrGridReader::getGridInfo(AmrGrid &grid,int index)</b>
      <DD>Fills out the informational portions of the 
		<a href="AmrGrid.html">AmrGrid</a> datastructure.
	The <code>data</code> member of the structure is left NULL.  Returns 
	a pointer to the AmrGrid if it is successful and a NULL if it fails.
      <DT><b>AmrGrid *AmrGridReader::getGridData(AmrGrid &grid,int index)</b>
      <DD>Fills out the informational portions of the
	<a href="AmrGrid.html">AmrGrid</a> datastructure and also
	loads the associated grid data into the <code>data</code> member of
	the AmrGrid datastructure.  If the <code>data</code> member is NULL, 
	it will allocate storage for it (which the user is responsible 
	for freeing), otherwise it will load the data directly into
	existing storage pointed to by that member.  Returns pointer
	to the AmrGrid if it is successful and returns NULL if it fails.
      <DT><b>AmrGrid *AmrGridReader::getGrid(AmrGrid &grid,int index)</b>
      <DD>Performs the same function as 
	<code>AmrGridReader::getGridData()</code>.  Just a more
	convenient name.
      <DT><b>AmrGrid *AmrGridReader::getGrid(int index)</b>
      <DD>Performs the same function as 
	<code>AmrGridReader::getGridData()</code> except that it
	allocates a new AmrGrid datastructure to store the information 
	and data in.  The user is responsible for freeing this
	structure when they are done with it though.
    </DL>
    <hr>
    <h3><u><a name="C">C Interface</a></u></h3>
    Not ready for primetime yet but available on request.
    <hr>    
    <h3><u><a name="F77">F77/F90 Interface</a></u></h3>
    Not ready for primetime yet but available on request.
    <hr>
    <address><a href="mailto:jshalf@ariel.ncsa.uiuc.edu"></a></address>
<!-- Created: Wed Feb  3 22:06:21 CST 1999 -->
<!-- hhmts start -->
Last modified: Thu Feb  4 15:45:03 CST 1999
<!-- hhmts end -->
  </body>
</html>