|
|
|
|
|
|
|
|
|
|
|
|
|
(multiple components) |
|
|
|
|
(multiple components) |
|
|
|
|
(wetted surface + nodal quantities) |
|
The Good News: While the information contained in these files is different its all based on the same file format. This gives backward compatibility down the hierarchy. For example a "*.triq" file could be read as a single component file, you just would stop reading before you hit the flow variables.
What's in the files?
1. Component file format :: The file format for a component may be either (fortran) unformatted or ascii, and it is currently a "standard" finite element type data format. Triangles should be oriented such that the circuit v1,v2,v3 is COUNTERCLOCKWISE as viewed from an observer on the FLOW side of the surface.
nVerts, nTri <- integer, integer x_1, y_1, z_1 <- Geometry of Vertex 1 (float, float, float) x_2, y_2, z_2 <- Geometry of Vertex 2 (float, float, float) x_3, y_3, z_3 <- ... . . . x_nVerts, y_nVerts, z_nVerts <- geom of last unique vertex (nVerts) v1_t1, v2_t1, v3_t1 <- Vertices of triangle 1 (int, int, int) v1_t2, v2_t2, v3_t2 <- Vertices of triangle 2 (int, int, int) v1_t3, v2_t3, v3_t3 <- Vertices of triangle 3 (int, int, int) . . . v1_nTri, v2_nTri, v3_nTri <-Vertices of last triangle (int, int, int)
Example of F77 code for reading a *.tri file
read(iUnit,*) nVerts, nTri read(iUnit,*) ( x(j), y(j), z(j) ,j=1,nVerts) read(iUnit,*) ( v1(j),v2(j),v3(j) ,j=1,nTri )
(top)2. Configuration file format :: The file format for a configuration is an extention of that used for individual components. It may be either (fortran) unformatted or ascii. These files are exactly the same as component triangulations, but with component information for each triangle appended onto the triangle list. The triangles for all the components in a configuration are sequentially numbered into global triangle and vertex lists. Triangles should be oriented such that the circuit v1,v2,v3 is COUNTERCLOCKWISE as viewed from an observer on the FLOW side of the surface.
nVerts, nTri <- total # of unique verts/tris, (int, int) x_1, y_1, z_1 <- Geometry of Vertex 1 (float, float, float) x_2, y_2, z_2 <- Geometry of Vertex 2 (float, float, float) x_3, y_3, z_3 <- ... . . . x_nVerts, y_nVerts, z_nVerts <- geom of last unique vertex (nVerts) v1_t1, v2_t1, v3_t1 <- Vertices of triangle 1 (int, int, int) v1_t2, v2_t2, v3_t2 <- Vertices of triangle 2 (int, int, int) v1_t3, v2_t3, v3_t3 <- Vertices of triangle 3 (int, int, int) . . . v1_nTri, v2_nTri, v3_nTri <- Vertices of last triangle (int,int,int) 1 1 1 1 1 . . . 1 1 1 2 2 2 . . . 2 2 2 <-component numbers of all triangles in the configuraiton sequentially starting at "1"
Example of F77 code for reading a *.tri fileread(iUnit,*) nVerts, nTri read(iUnit,*) ( x(j), y(j), z(j) ,j=1,nVerts) read(iUnit,*) ( v1(j),v2(j),v3(j) ,j=1,nTri ) read(iUnit,*) ( comp(j) ,j=1,nTri )
(top)3. Wetted Surface Triangulation Format :: This format is IDENTICAL to that for a CONFIGURATION file. So, why call it a different file? Well, a Configuration file, has multiple components, each of which has a unique set of vertices and triangles. So, in a "configuration file", a triangle on one component will never share a common vertex with a triangle from a different component. In other words, in a "configuration file" the index spaces of the different components are completely disjoint. In a "Wetted surface file" the index spaces of different components are free to overlap. So a triangle on one component may use one or more of the vertices from another component. Think of the intersection between two components, vertices along the line of intersection, will be used in the triangle lists of BOTH of the components. For this reason these triangulations are often called "Intersected Triangulations".
Example of F77 code for reading a *.i.tri fileread(iUnit,*) nVerts, nTri read(iUnit,*) ( x(j), y(j), z(j) ,j=1,nVerts) read(iUnit,*) ( v1(j),v2(j),v3(j) ,j=1,nTri ) read(iUnit,*) ( comp(j) ,j=1,nTri )
(top)4. Annotated Triangulation:: This is a triangulation that has been annotated by attaching a list of scalar quantities to each vertex. The filename "*.triq" indicates that the "tri" file has been appended with the solution vector or "q" information. By convention the first scalar is always the pressure coefficient.
nVerts nTri nScal --> # of vertices, # of triangles, # of scalars x1 y1 z1 --> coordinates of the vertices x2 y2 z2 x3 y3 z3 ..... ..... v11 v12 v13 --> triangles connectivity (3 integers) v21 v22 v23 ..... ..... ..... 1 1 1 1 1 2 2 2 3 3 3 3 1 2... --> component number for each tri ..... 0.0000 0.0000 0.0000 .....-->scalars values (1,..,nScal) for each vertex ..... .....
Example of F77 code for reading a *.triq fileread(iUnit,*) nVerts, nTri, nScal read(iUnit,*) ( x(j), y(j), z(j) ,j=1,nVerts) read(iUnit,*) ( v1(j),v2(j),v3(j) ,j=1,nTri ) read(iUnit,*) ( comp(j) ,j=1,nTri ) read(iUnit,*) ((scalar(j,k),k=1,nScal),j=1,nVerts)(top)
last update 7 Jun 00, M. Aftosmis