diff options
Diffstat (limited to 'doc/html/AmrGrid.html')
-rw-r--r-- | doc/html/AmrGrid.html | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/doc/html/AmrGrid.html b/doc/html/AmrGrid.html new file mode 100644 index 0000000..f0b5a82 --- /dev/null +++ b/doc/html/AmrGrid.html @@ -0,0 +1,164 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<html> + <head> + <title>AMR Grid Data Structure</title> + </head> + + <body> + + <body bgcolor="#F0F0F0"> + <font face="arial,helvetica"><h1>AMR Grid Datastructure</h1></font> + + Common to all of the AMR readers is an <b>AmrGrid</b> + informational datastructure. This datastructure is <i>not</i> + necessary for the <a href="AMRwriter.html">AMRwriter</a>. + This structure stores all of the + AMR parameters related to the grid that enable you to determine + where it should fit into the AMR hierarchy, the type of data + that it stores and the rank, dimensions, and physical size of + the grid. It also has a pointer which can be used optionally + to store the grid data.<p> + + The structure has both a C and a C++ representation. The only + difference between the two is that the C structure represents + the datatype as an integer and the C++ version represents the + datatype as an enum. Since the C++ struct is inherited + directly from the C version, the two interoperate + seamlessly.<p> +<font face="arial,helvetica" color="#555588"> + <h2>Datastructure Specification</h2> + </font> + +<table border=1><tr> +<td> + <font face="arial,helvetica" color="#885555"><b>C Datastructure</b></font> +</td> +<td> + <font face="arial,helvetica" color="#885555"><b>C++ Datastructure</b></font> +</td> +</tr> +<tr><td> +<pre> +typedef struct AmrGrid { + int level; + int maxlevel; + int maxtime; + int timestep; + int persistence; + int rank; + int dims[3]; + double delta[3]; + double origin[3]; + int timerefinement; + int nbytes; + int dataveclen; + int datatype; + void *data; +} AmrGrid; +</pre> +</td><td> + <pre> +struct AmrGrid { + // Members inherited from C AmrGrid + int level; + int maxlevel; + int maxtime; + int timestep; + int persistence; + int rank; + int dims[3]; + double delta[3]; + double origin[3]; + int timerefinement; + int nbytes; + int dataveclen; + void *data; + // Members specific to C++ AmrGrid + IObase::DataType datatype; +}; +</pre></td></tr></table> + + <font face="arial,helvetica" color="#555588"> + <h2>Datastructure Member Descriptions</h2> + </font> +<DL> +<DT><i>int</i> <b>level</b> +<DD>The level in the AMR hierarchy. Level 0 is the Top (least refined) + level. +<DT><i>int</i> <b>maxlevel</b> +<DD>The maximum number of levels in the AMR hierarchy for all + timesteps stored in this file. Levels are numbered from 0 + to maxlevel-1. +<DT><i>int</i> <b>maxtime</b> +<DD>Maximum timestep in the datafile. This parameter is optional + <i>(and generally unused)</i> and will be removed from + future releases. +<DT><i>int</i> <b>timestep</b> +<DD>This is the current integer timestep with respect to the finest + granularity timestep that can occur in the file. It is not + necessarily uniform in time. It simply delineates the order + in which things change in the file. It is a fundamental + parameter written by the <a href="AMRwriter.html">AMRwriter</a>. +<DT><i>int</i> <b>persistence</b> +<DD>This is the number of timesteps that the grid remains active from + the timestep that it is created. Like the <b>timestep</b> + parameter, it can also be non-uniform. It is an optional + parameter that is often automatically computed by the + AMRreader class from available data. +<DT><i>int</i> <b>rank</b> +<DD>The number of dimensions for the grid. Currently you cannot mix + grids of different dimensions together (ie. a 2D grid cannot + be embedded in a 3D grid), so if one grid is rank=3, then + all of the grids in the file must have the same rank. +<DT><i>int</i> <b>dims[3]</b> +<DD>The dimensions of the grid (only the first <i>rank</i> values of + this array will be filled). +<DT><i>double</i> <b>delta[3]</b> +<DD>The physical spacing between gridpoints. This is actually + redundant information since the same information can be + inferred/computed from the <b>origin</b> and integer + refinement information. It is there for convenience though + even though it is not as precise as the integer specification. +<DT><i>double</i> <b>origin[3]</b> +<DD>The physical origin (minimum extent in 3-space) of the grid. +<DT><i>int</i> <b>timerefinement</b> +<DD>The rate at which the grid steps at this level with respect to the + topgrid. This is an optional parameter and will likely be + dropped from future implementations of this system. +<DT><i>int</i> <b>nbytes</b> +<DD>Number of bytes of storage required for the grid data if it were loaded + into memory.. This is useful for memory allocation/management. +<DT><i>int</i> <b>dataveclen</b> +<DD>The number of elements-per-point in the data. For instance a + 3D vector velocity field would have a dataveclen=3 for the i,j,k + direction of the vector components. dataveclen=1 for all + scalar values like density and temperature. + Currently this is not + used, but will be in future implementations of the readers. +<DT><i>int/IObase::DataType</i> <b>datatype</b> +<DD>The type of the data as it is stored on disk. This is represented + as an <i>integer</i> for C and as an <i>enum</i> of type + <i>IObase::DataType</i> for C++. The definitions for the + <a href="DataTypes.html">datatypes are defined + by the FlexIO libraries</a>. + Integer datatypes are implemented in <a href="src/IO.h">IO.h</a> + and the C++ <i>IObase::DataType</i> is implemented in + <a href="src/IO.hh">IO.hh</a>. + <DT><i>void *</i><b>data</b> + <DD>Pointer to memory array storing the data. This is NULL + if the data has not been loaded into memory. So you can use + this datastructure just to aquire information about the + grids and then load the data only when it is needed. +</DL> + + + + + <hr> + <address><a href="mailto:jshalf@ncsa.uiuc.edu"></a></address> +<!-- Created: Thu Jan 28 12:40:39 CST 1999 --> +<!-- hhmts start --> +Last modified: Thu Jan 28 17:14:34 CST 1999 +<!-- hhmts end --> + </body> +</html> |