A FGRID or UFAST file contains a triangulated boundary surface grid and (optionally) a tetrahedral volume grid. The UFAST file type is identical to the FAST (PLOT3D) unstructured grid file type. FGRID and FAST files are the same except for optional FGRID boundary reconnection, boundary condition, and initial normal spacing, and boundary-layer thickness data records. The optional boundary data records are identical for FGRID and UGRID file types.
{ Number_of_Nodes, Number_of_Surf_Trias, Number_of_Vol_Tets }
{ [ X for node 1, X for node 2, ... X for node Number_of_Nodes ],
[ Y for node 1, Y for node 2, ... Y for node Number_of_Nodes ],
[ Z for node 1, Z for node 2, ... Z for node Number_of_Nodes ]
[ ( index for node 1 of boundary face 1,
index for node 2 of boundary face 1,
index for node 3 of boundary face 1 ),
( index for node 1 of boundary face 2,
index for node 2 of boundary face 2,
index for node 3 of boundary face 2 ),
...
( index for node 1 of boundary face Number_of_Surf_Trias,
index for node 2 of boundary face Number_of_Surf_Trias,
index for node 3 of boundary face Number_of_Surf_Trias ) ]
[ surface ID for boundary face 1,
surface ID for boundary face 2,
...
surface ID for boundary face Number_of_Surf_Trias ]
[ ( index for node 1 of element 1,
index for node 2 of element 1,
index for node 3 of element 1,
index for node 4 of element 1 ),
( index for node 1 of element 2,
index for node 2 of element 2,
index for node 3 of element 2,
index for node 4 of element 2 ),
...
( index for node 1 of element Number_of_Vol_Tets,
index for node 2 of element Number_of_Vol_Tets,
index for node 3 of element Number_of_Vol_Tets,
index for node 4 of element Number_of_Vol_Tets ) ] }
+{ Number_of_BL_Vol_Tets }+
+{ [ volume ID for element 1,
volume ID for element 2,
...
volume ID for element
Number_of_Vol_Tets ] }+
*{ [ reconnection flag for boundary face 1,
reconnection flag for boundary face 2,
...
reconnection flag for boundary face
Number_of_Surf_Trias ] }*
*{ [ grid boundary condition flag for boundary face 1,
grid boundary condition flag for boundary face 2,
...
grid boundary condition flag for boundary face
Number_of_Surf_Trias ] }*
**{ [ initial normal spacing for node 1,
initial normal spacing for node 2,
...
initial normal spacing for node Number_of_Nodes ] }**
**{ [ boundary-layer thickness for node 1,
boundary-layer thickness for node 2,
...
boundary-layer thickness for node Number_of_Nodes ] }**
Number_of_Surf_Trias : Number of triangular boundary surface faces.
Number_of_Vol_Tets : Number of tetrahedral volume elements.
Number_of_Nodes : Number of grid nodes.
In the above description, the parentheses ( ... ) are for grouping, the
brackets [ ... ] enclose items in a loop, and braces { ... } enclose
items in a
single logical record.
The
items in plus
braces +{ ... }+ are optional records for grid files that describe a
volume
grid. If Number_of_Vol_Tets is greater than zero (the grid is a volume
grid and
not a
surface grid) then this data is read in and written out. The
optional records
can be included in whole or in part as long as they are in the correct
order.
The UG_IO grid file reader will attempt to read the
"Number_of_BL_Vol_Tets"
first.
If it is not found then reading of the file will end. Next, the reader
will
attempt to read the "volume ID". If it is not found then
reading
of the file will end.
The items in
starred
braces *{ ... }* are optional records for grid files that describe
either a
surface
or volume grid. The items in
double starred
braces **{ ... }** are optional records for grid files that describe
only a
surface
grid. If
Number_of_Vol_Tets is greater than zero (the grid is a volume grid and
not a
surface grid) then the douuble starred brace data is not read in or
written out. The
optional records
can be included in whole or in part as long as they are in the correct
order.
The UG_IO grid file reader will attempt to read the "reconnection flag"
first.
If it is not found then reading of the file will end. Next, the reader
will
attempt to read the "grid boundary condition". If it is not found then
reading
of the file will end. Then the reader will attempt to read the "initial
normal
spacing". If it is not found then reading of the file will end.
Finally, the
reader will attempt to read the "boundary-layer thickness". If it is
not found then
reading
of the file will end.
In FORTRAN unformatted form, the data must be written out or read in using the record format defined above. The floating point data items must all be either real*4 or real*8 data.
In C binary form, the data may be written out or read in using records the length of loops or of the individual data items. The floating point data items must all be either float or double data.
In ASCII formatted form, the data may be written out or read in using records the length of loops or of the individual data items. Data items may be written out in free format of any specific form.