File Formats - UGrid Element Connectivity
UG_IO : 3D INPUT GRIDS
----------------------
Input grids for all UG related routines, such as AFLR3, assume a consistent
ordering of the connectivity. Input grids for AFLR3 use the optional
reconnection flag, grid boundary condition, and initial normal spacing data if
it is included.
UG_IO : SURFACE GRID CONNECTIVITY
---------------------------------
The node indices for the boundary face connectivity must be numbered one
through Number_of_Nodes. For AFLR3, all boundary surface faces on a closed
surface should be ordered so that their normals all point out of or into the
surface. This is not required if all surfaces are simply connected. If they are
not and there are areas where more than two faces share an edge then continuous
ordering must be maintained. Each closed surface may have a different ordering
(some may point out and some in). All nodes must be unique in physical space
(a given coordinate location may not have two or more different node numbers).
Also, each possible node index must correspond to an actual node on the boundary
surface triangulation.
The node connectivity for boundary surface tria faces is ordered as shown below.
inode3
/\
/ \
/ \
/ \
/ \
/ \
inode1-------inode2
where
itria : Tria face index between one and Number_of_Surf_Trias
inode1 = Surf_Tria_Connectivity[itria][0];
inode2 = Surf_Tria_Connectivity[itria][1];
inode3 = Surf_Tria_Connectivity[itria][2];
Indices for nodes (inode1,...) are numbered one through Number_of_Nodes.
The node connectivity for boundary surface quad faces is ordered as shown below.
inode4---inode3
| |
| |
| |
| |
| |
inode1---inode2
where
iquad : Quad face index between one and Number_of_Surf_Quads
inode1 = Surf_Quad_Connectivity[iquad][0];
inode2 = Surf_Quad_Connectivity[iquad][1];
inode3 = Surf_Quad_Connectivity[iquad][2];
inode4 = Surf_Quad_Connectivity[iquad][3];
Indices for nodes (inode1,...) are numbered one through Number_of_Nodes. Input
boundary surface grid quad faces are automatically converted to tria faces.
UG_IO : AFLR3 SURFACE FACE RECONNECTION FLAG
--------------------------------------------
In AFLR3 the reconnection flag for each boundary surface tria face controls
reconnection of the surface triangulation during boundary recovery. If the flag
is zero then the face can be reconnected with any of its three neighbors. This
allows reconnection of the face during boundary recovery. If the flag is
positive then the face can not be reconnected with one or more "restricted
neighbors" in specified directions. The "restricted neighbors" are specified as
follows.
Reconnection Flag Restricted Neighbor(s)
----------------- ----------------------
0 none
1 itria1
2 itria2
3 itria1 itria2
4 itria3
5 itria1 itria3
6 itria2 itria3
7 itria1 itria2 itria3
For a boundary surface tria face, "itria" contains nodes "inode1, inode2,
inode3" and has neighbors "itria1, itria2, itria3" as shown below.
*
/ \
/ \
/ \
/itria2 \
inode1-----inode3
/ \ / \
/ \itria/ \
/ \ / \
/itria3 \ /itria1 \
*-------inode2------*
If faces "itria and itria3" should not be reconnected with each other than the
appropriate flag for boundary face "itria" would have a value of four. The flag
for boundary face "itria3" does not have to be set. AFLR3 will reset the
reconnection flag for neighbor faces so each has compatible flags. Priority is
always given to restricting reconnection whenever the reconnection flag is
reset.
For boundary surface quad faces the reconnection flag is set by AFLR3. The value
obtained from the input file is ignored. Within AFLR3 all quads are converted to
trias and the reconnection flag is set such that the quad edges are preserved.
In general, reconnection of the surface grid should be allowed wherever
possible. AFLR3 will reconnect only if necessary for boundary recovery and if
the resulting quality is within specified limits or better then that of the
existing grid. The resulting volume grids are usually of optimal quality if
surface reconnection is allowed. If part of a surface grid must be connected to
another grid with a prescribed triangulation then limit reconnection only on
those faces which must match up. The default value for the reconnection flag is
zero.
UG_IO : AFLR3 SURFACE FACE ID
-----------------------------
In AFLR3 the surface ID is used to group boundary surface faces. It defines a
"surface". Boundary reconnection between faces on different "surfaces" is
restricted (the reconnection flag is automatically set within AFLR3). Surface
ID's are also used with grid boundary condition flag (see grid boundary
condition flag description). And, surface ID's are used to set grid boundary
conditions with the batch/script version of AFLR3.
UG_IO : AFLR3 SURFACE FACE GRID BOUNDARY CONDITION FLAG
-------------------------------------------------------
In AFLR3 the grid boundary condition flag magnitude identifies special types of
surfaces. If the magnitude is 1 then the surface is a normal boundary surface.
If it is 3 then the surface is an embedded or transparent surface (grid domain
on both sides). The sign of the grid boundary condition flag controls which
boundary faces will have an adjacent boundary-layer or structured-layer type
volume grid. If the grid boundary condition flag is negative then that boundary
face is included in a list of faces for boundary-layer or structured-layer type
generation. The sign of the grid boundary condition flag is only used if either
the boundary-layer or structured-layer option is selected. Surfaces designated
as planar surfaces can be treated specially with the boundary-layer or
structured-layer option. A grid boundary condition flag value of 2 specifies a
planar or symmetry boundary surface (that could be represented by a single point
on the plane and a normal vector). A boundary surface with a grid boundary
condition flag with a value is 2 and which is adjacent to a surface with a
negative flag (value is -1, -2, or -3) will be re-generated to match the
boundary-layer or structured-layer volume grid. The planar/symmetry plane
boundary condition is only applicable if boundary-layer or structured-layer
grid generation is selected. Multiple planar/symmetry planes are allowed.
However, a planar/symmetry plane can not be adjacent to another. All adjacent
surfaces must have a grid boundary condition flag not equal to 2. A "surface" is
defined as a group of faces with the same boundary id flag. The default value
for the grid boundary condition flag is -1.
UG_IO : AFLR3 INITIAL NORMAL SPACING
------------------------------------
In AFLR3 the initial normal spacing for boundary-layer elements can be specified
as part of an input surface grid. If it is specified then a value must be given
for every surface node. Only those values for nodes on a boundary face with a
negative grid boundary condition flag will actually be used. The initial normal
spacing is only used if the boundary-layer option is selected. The default value
for the initial normal spacing is zero.
UG_IO : VOLUME GRID TET ELEMENT CONNECTIVITY
--------------------------------------------
The node connectivity for tet elements is ordered as shown below.
inode4-------------inode3
/ \ . /
/ \ . /
/ \ . /
/ \ . /
/ .\ /
/ . \ /
/ . \ /
/ . \ /
/. \/
inode1-------------inode2
where
itet : Tet element index between one and Number_of_Vol_Tets
inode1 = Vol_Tet_Connectivity[itet][0];
inode2 = Vol_Tet_Connectivity[itet][1];
inode3 = Vol_Tet_Connectivity[itet][2];
inode4 = Vol_Tet_Connectivity[itet][3];
Indices for nodes (inode1,...) are numbered one through Number_of_Nodes.
UG_IO : VOLUME GRID FIVE NODE PENT ELEMENT CONNECTIVITY
-------------------------------------------------------
The node connectivity for five node pent elements is ordered as shown below.
inode4------------inode5
| . | \
| . | \
| . | \
| . | \
| .| \
| | . \
| | . \
| | inode3
| | . /
| | . /
| |. /
| . | /
| . | /
| . | /
| . | /
| . | /
|. |/
inode1------------inode2
where
ipent5 : Five node pent element index between one and Number_of_Vol_Pents_5
inode1 = Vol_Pent_Connectivity[ipent5][0];
inode2 = Vol_Pent_Connectivity[ipent5][1];
inode3 = Vol_Pent_Connectivity[ipent5][2];
inode4 = Vol_Pent_Connectivity[ipent5][3];
inode5 = Vol_Pent_Connectivity[ipent5][4];
Indices for nodes (inode1,...) are numbered one through Number_of_Nodes.
UG_IO : VOLUME GRID SIX NODE PENT ELEMENT CONNECTIVITY
------------------------------------------------------
The node connectivity for six node pent elements is ordered as shown below.
inode6
. /|
. / |
. / |
. / |
. / |
. / |
. / |
. / |
. / |
inode4------------inode5 inode3
| | . /
| | . /
| |. /
| . | /
| . | /
| . | /
| . | /
| . | /
|. |/
inode1------------inode2
where
ipent6 : Six node pent element index between one and Number_of_Vol_Pents_6
index = Number_of_Vol_Pents_5 + ipent6;
inode1 = Vol_Pent_Connectivity[index][0];
inode2 = Vol_Pent_Connectivity[index][1];
inode3 = Vol_Pent_Connectivity[index][2];
inode4 = Vol_Pent_Connectivity[index][3];
inode5 = Vol_Pent_Connectivity[index][4];
inode6 = Vol_Pent_Connectivity[index][5];
Indices for nodes (inode1,...) are numbered one through Number_of_Nodes.
UG_IO : VOLUME GRID HEX ELEMENT CONNECTIVITY
--------------------------------------------
The node connectivity for hex elements is ordered as shown below.
inode8------------inode7
/. /|
/ . / |
/ . / |
/ . / |
/ . / |
/ . / |
/ . / |
/ . / |
inode5------------inode6 |
| inode4.....|......inode3
| . | /
| . | /
| . | /
| . | /
| . | /
| . | /
| . | /
|. |/
inode1------------inode2
where
ihex : Hex element index between one and Number_of_Vol_Hexs
inode1 = Vol_Hex_Connectivity[ihex][0];
inode2 = Vol_Hex_Connectivity[ihex][1];
inode3 = Vol_Hex_Connectivity[ihex][2];
inode4 = Vol_Hex_Connectivity[ihex][3];
inode5 = Vol_Hex_Connectivity[ihex][4];
inode6 = Vol_Hex_Connectivity[ihex][5];
inode7 = Vol_Hex_Connectivity[ihex][6];
inode8 = Vol_Hex_Connectivity[ihex][7];
Indices for nodes (inode1,...) are numbered one through Number_of_Nodes.