**UG_IO SimSys SURF 3D Grid File Type**

A SURF file contains a tria/quad face boundary surface grid.

{ Number_of_Surf_Trias, Number_of_Surf_Quads, Number_of_Nodes } { [ ( X for node 1, Y for node 1, Z for node 1, *{initial normal spacing for node 1}*, *{boundary-layer thickness for node 1}* ), ( X for node 2, Y for node 2, Z for node 2, *{initial normal spacing for node 2}*, *{boundary-layer thickness for node 2}* ), ... ( X for node Number_of_Nodes, Y for node Number_of_Nodes, Z for node Number_of_Nodes, *{initial normal spacing for node Number_of_Nodes}*, *{boundary-layer thickness for node Number_of_Nodes}* ) ] } { [ ( index for node 1 of tria boundary face 1, index for node 2 of tria boundary face 1, index for node 3 of tria boundary face 1, surface ID for tria boundary face 1, reconnection flag for tria boundary face 1, grid boundary condition flag for tria boundary face 1 ), ( index for node 1 of tria boundary face 2, index for node 2 of tria boundary face 2, index for node 3 of tria boundary face 2, surface ID for tria boundary face 2, reconnection flag for tria boundary face 2, grid boundary condition flag for tria boundary face 2 ), ... ( index for node 1 of tria boundary face Number_of_Surf_Trias, index for node 2 of tria boundary face Number_of_Surf_Trias, index for node 3 of tria boundary face Number_of_Surf_Trias, surface ID for tria boundary face Number_of_Surf_Trias, reconnection flag for tria boundary face Number_of_Surf_Trias, grid boundary condition flag for tria boundary face Number_of_Surf_Trias ) ] } { [ ( index for node 1 of quad boundary face 1, index for node 2 of quad boundary face 1, index for node 3 of quad boundary face 1, index for node 4 of quad boundary face 1, surface ID for quad boundary face 1, reconnection flag for quad boundary face 1, grid boundary condition flag for quad boundary face 1 ), ( index for node 1 of quad boundary face 2, index for node 2 of quad boundary face 2, index for node 3 of quad boundary face 2, index for node 4 of quad boundary face 2, surface ID for quad boundary face 2, reconnection flag for quad boundary face 2, grid boundary condition flag for quad boundary face 2 ), ... ( index for node 1 of quad boundary face Number_of_Surf_Quads, index for node 2 of quad boundary face Number_of_Surf_Quads, index for node 3 of quad boundary face Number_of_Surf_Quads, index for node 4 of quad boundary face Number_of_Surf_Quads, surface ID for quad boundary face Number_of_Surf_Quads, reconnection flag for quad boundary face Number_of_Surf_Quads, grid boundary condition flag for quad boundary face Number_of_Surf_Quads ) ] } Number_of_Surf_Quads : Number of quadrilateral boundary surface faces. Number_of_Surf_Trias : Number of triangular boundary surface faces. 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 starred braces *{ ... }* are optional items for boundary-layer grid generation. The reader attempts to read the file with both the optional "initial normal spacing" and "boundary-layer thickness" items. If that fails the reader attempts to read the file using only the optional "initial normal spacing" item. If that fails the reader reads the file using neither of the optional items.

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.

An example SURF grid file can easily be created for the cube case shown below. There are four tria surface faces, four quad, surface faces, and eight nodes.

The SURF grid file representing the cube can be written as shown below without any BL parameters.

4 4 8 0.0 0.0 1.0 1.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 1.0 0.0 1 2 3 1 0 -1 1 3 4 1 0 -1 2 3 7 2 0 -1 2 7 6 2 0 -1 1 2 6 5 5 0 -1 1 4 8 5 4 0 -1 4 3 7 8 3 0 -1 5 6 7 8 6 0 -1

Also, the SURF grid file representing the cube can be written as shown below with the BL initial normal spacing specified.

4 4 8 0.0 0.0 1.0 0.001 1.0 0.0 1.0 0.001 1.0 0.0 0.0 0.001 0.0 0.0 0.0 0.001 0.0 1.0 1.0 0.001 1.0 1.0 1.0 0.001 1.0 1.0 0.0 0.001 0.0 1.0 0.0 0.001 1 2 3 1 0 -1 1 3 4 1 0 -1 2 3 7 2 0 -1 2 7 6 2 0 -1 1 2 6 5 5 0 -1 1 4 8 5 4 0 -1 4 3 7 8 3 0 -1 5 6 7 8 6 0 -1

In addition, the SURF grid file representing the cube can be written as shown below with the BL initial normal spacing and BL thickness specified.

4 4 8 0.0 0.0 1.0 0.001 0.1 1.0 0.0 1.0 0.001 0.1 1.0 0.0 0.0 0.001 0.1 0.0 0.0 0.0 0.001 0.1 0.0 1.0 1.0 0.001 0.1 1.0 1.0 1.0 0.001 0.1 1.0 1.0 0.0 0.001 0.1 0.0 1.0 0.0 0.001 0.1 1 2 3 1 0 -1 1 3 4 1 0 -1 2 3 7 2 0 -1 2 7 6 2 0 -1 1 2 6 5 5 0 -1 1 4 8 5 4 0 -1 4 3 7 8 3 0 -1 5 6 7 8 6 0 -1