/** \page hierarchy CCMIO Hierarchy
<br>
The CCMIO API presupposes a certain conceptual layout of the data.&nbsp;
This layout is consists of a hierarchical collection of entites.  Each entity
stores a particular type of information and is decribed below:<br>
\image html "../hierarchy.png"
<br><br>
All entities are conceptually of the same nature and are often interchangeable.
Ideally the API would provide one general set of functions for handling entites.
However some entites must be referred to by a specific name or number.  Because
of C's strict typing system it is necessary to divide entities into several
types:  regular entities, indexed entities, and special entities.  Regular
entities do not have any identifying information visible outside the API.
For instance, each map is indistiguishable (but not interchangeable!) from
another map as far as the API is concerned.  Indexed entities are referred to
by a user-specified ID.  They are marked with a blue number on the diagram.
Indexed entities are created with CCMIONewIndexedEntity() and are retrieved with
CCMIOGetEntity() or, probably more commonly, with CCMIONextEntity().  The special
entities contain information that is conceptually part of the entity itself
and they are created and retrieved with special functions CCMIONew*(), CCMIOGet*(),
where * is the entity type name.  Special entities are marked with thick
borders.
<br><br>
Some entities contain references to other entities.  The border of the referrer
is colored the color as the text of the referree.
<br><br>
The entity type names are taken from the CCMIO specification.  Although they are
largely self-explanatory, a more complete description of several entities
follows:<br>
<table cellpadding="2" cellspacing="0" border="0"
 style="text-align: left; width: 100%; margin-left: 40px;">
    <tr>
      <td style="vertical-align: top;">State</td>
      <td style="vertical-align: top;">Each state describes everything
necessary to solve a mesh at a given instant in time.&nbsp; Multiple
states will be required for moving or morphing meshes.<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">Processor</td>
      <td style="vertical-align: top;">Contains the mesh, solution, and
initial conditions for the state.<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">Field Set</td>
      <td style="vertical-align: top;">A field set is the collection of
post data.  It may (and probably will) contain many fields. <br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">Field</td>
      <td style="vertical-align: top;">One post data variable (e.g. "Pressure").<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">Field&nbsp;Data</td>
      <td style="vertical-align: top;">Either the cell, vertex, or face values
for a particular post data variable.<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">Map</td>
      <td style="vertical-align: top;">The map converts a data index into an ID.
For instance given vertex data { (0, 0, 0), (0, 1, 0), (1, 1, 0) } and the
map { 3, 1, 4 }, we know that <br><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vertex 1&nbsp;&nbsp;&nbsp;&nbsp;(0, 1, 0)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vertex 3&nbsp;&nbsp;&nbsp;&nbsp;(0, 0, 0)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vertex 4&nbsp;&nbsp;&nbsp;&nbsp;(1, 1, 0)<br>
      </td>
    </tr>
</table>
*/
