SlideShare a Scribd company logo
1 of 82
Download to read offline
A BOUNDARY REPRESENTATION SOLID MODELLING DATA
STRUCTURE FOR GENERAL NUMERICAL
GRID GENERATION
By
Adam Gaither
A Thesis
Submitted to the Faculty of
Mississippi State University
in Partial Fulfillment of the Requirements
for the Degree of Master of Science
in Computer Science
in the Department of Computer Science
Mississippi State, Mississippi
December 1997
A BOUNDARY REPRESENTATION SOLID
MODELLING DATA STRUCTURE FOR
GENERAL NUMERICAL
GRID GENERATION
By
Adam Gaither
Approved:
__________________________________ __________________________________
Donna S. Reese David L. Marcum
Associate Professor of Professor of Mechanical Engineering
Computer Science (Committee member)
(Director of Thesis)
__________________________________ __________________________________
Bradley D. Carter Susan M. Bridges
Professor of Computer Science Computer Science Graduate
(Committee member) Coordinator
__________________________________ __________________________________
A. Wayne Bennett Richard D. Koshel
Dean of the College of Engineering Dean of the Graduate School
Name: Adam Gaither
Date of Degree: December 12, 1997
Institution: Mississippi State University
Major Field: Computer Science
Major Professor: Dr. Donna S. Reese
Title of Study: A BOUNDARY REPRESENTATION SOLID MODELLING
DATA STRUCTURE FOR GENERAL NUMERICAL GRID
GENERATION
Pages in Study: 71
Candidate for Degree of Master of Science
The purpose of this thesis is to develop a topology data structure that
supports both structured and unstructured grid generation methods. This to-
pology data structure directly supports the method of building edge grids, sur-
face grids and volume grids in order to construct high quality computational
fluid dynamics (CFD) grids. The minimal topological information needed for
computing both structured and unstructured grids is used to determine that a
non–manifold boundary–representation topology data structure must be used.
A search of published data structures led to the adoption of the radial–edge
non–manifold (RENM) boundary–representation data structure as the basis
for our implementation. An explanation of the data structure details as well
as behavior of the data structures is presented. The grid topology modelling
(GTM) data structure has been implemented and is used in two different pro-
duction grid generation systems, SolidMesh and GUM–B. Several examples
of high quality CFD grids are presented.
ii
DEDICATION
To Kelly, Morgan and Jack.
iii
ACKNOWLEDGMENTS
Thanks go out to all of my co–workers who have helped guide my efforts
in developing the GTM data structures as well as SolidMesh: Kelly Gaither,
Mike Remotigue, Brian Jean, John Whitmire, Mongomery Hughson, Kidambi
Sreenivas and Dave Marcum.
I would also like to thank Dr. Nigel Weatherill for his guidence and
leadership through some very difficult times. It was Nigel who stood up for
me when no one else would. I will always be loyal to him for that, and I hope
that in my career I will be able to do the same for someone else.
Adam Gaither
Mississippi State University
November 1997.
iv
TABLE OF CONTENTS
Page
DEDICATION ii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ACKNOWLEDGMENTS iii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LIST OF FIGURES vi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LIST OF TABLES ix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHAPTER
I. INTRODUCTION 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Numerical grids 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Grid quality 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The grid generation process 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Generating a three-dimensional structured grid 5. . . . . . . . . . . . . . . . . . .
Generating a two-dimensional structured grid 6. . . . . . . . . . . . . . . . . . . .
Generating a three-dimensional unstructured grid using
the hierarchical boundary method 7. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Generating a two-dimensional unstructured grid using
the hierarchical boundary method 9. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Generating a three-dimensional unstructured grid using the
oct-tree method 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Problems with current grid generation systems 10. . . . . . . . . . . . . . . . . . . . . . .
Thesis statement 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Approach for selecting a data structure design 12. . . . . . . . . . . . . . . . . . . . . . .
II. THE MINIMUM TOPOLOGY INFORMATION NEEDED
TO COMPUTE GENERAL NUMERICAL GRIDS 14. . . . . . . . . . . . . . . . .
Geometric topological forms 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
III. A SURVEY OF EXISTING PUBLIC DOMAIN SOLID
MODELLING DATA STRUCTURES 16. . . . . . . . . . . . . . . . . . . . . . . . . . . .
The winged-edge manifold solid-modelling data structure 16. . . . . . . . . . .
The radial-edge non-manifold solid modelling (RENM) data
structure 17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sufficiency of the non-manifold topology model 20. . . . . . . . . . . . . . . . .
v
CHAPTER Page
Efficiency of REMN adjacency traversals 21. . . . . . . . . . . . . . . . . . . . . . . .
Commercial CAD systems 21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Grid generation systems 22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summary 23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IV. THE GRID TOPOLOGY MODEL DATA STRUCTURE 24. . . . . . . . . . . .
GTM implementation 26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gluing the geometry 26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Deletion criteria for derived vertices and edges 29. . . . . . . . . . . . . . . . . . . . . .
Degenerate geometry 30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Orientation 30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sufficiency of the GTM 33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Efficiency of the GTM adjacency traversals 33. . . . . . . . . . . . . . . . . . . . . .
V. STRUCTURED GRID GENERATION USING THE GTM 35. . . . . . . . . .
Types of structured grids 39. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Propagating grid information 39. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Grid point information storage 39. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summary 40. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VI. UNSTRUCTURED GRID GENERATION USING THE GTM 42. . . . . . .
Edge grid generation 42. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vector normalization 43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Trimmed surfaces 44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multi-volume unstructured grids 44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summary 45. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VII. RESULTS 46. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SolidMesh 46. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GUM-B 62. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VIII. CONCLUSION 65. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REFERENCES 68. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi
LIST OF FIGURES
Figure Page
1. Structured grid 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Untructured grid 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. 2D multi-block topology 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. 3D multi-block topology 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Three steps of the grid generation process 4. . . . . . . . . . . . . . . . . . . . .
6. The three dimensional structured grid generation process 5. . . . . . . .
7. The two-dimensional structured grid generation process 7. . . . . . . .
8. The hierarchical unstructured grid generation process 8. . . . . . . . . . .
9. Point spacings and the computed point distribution 8. . . . . . . . . . . . . .
10. The hierarchical unstructured grid generation process 9. . . . . . . . . . .
11. The oct-tree unstructured grid generation process 10. . . . . . . . . . . . .
12. Winged edge data structure 17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13. RENM hierarchy and relationship of topology elements 19. . . . . . . .
14. RENM example of three shells sharing an edge 19. . . . . . . . . . . . . . . .
15. RENM example of three faces sharing an edge 20. . . . . . . . . . . . . . . .
16. GTM topology hierarchy. 25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17. GTM example of three shells sharing an edge 27. . . . . . . . . . . . . . . . .
18. GTM example of three faces sharing an edge 28. . . . . . . . . . . . . . . . . .
19. Two surfaces before and after gluing on an edge 28. . . . . . . . . . . . . . .
20. 3D point search to determine adjacency 29. . . . . . . . . . . . . . . . . . . . . .
21. Resulting topology from gluing four four-sided surfaces 29. . . . . . . .
vii
Figure Page
22. Hierarchy of degenerate geometries 31. . . . . . . . . . . . . . . . . . . . . . . . .
23. Resulting topology from gluing three four-sided surfaces
to a degenerate surface 31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24. Orientations of an edge that is shared by two faces 32. . . . . . . . . . . . .
25. Curve orientations 32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26. Surface orientations 33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27. 2D block detection algorithm 36. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28. Linear progression of actual run times 38. . . . . . . . . . . . . . . . . . . . . . .
29. A point spacing that is larger than the adjacent curves 43. . . . . . . . . .
30. Effect of matching point spacings. 43. . . . . . . . . . . . . . . . . . . . . . . . . . .
31. Vector normalization 44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32. Topology of three faces sharing an edge 45. . . . . . . . . . . . . . . . . . . . . .
33. NASA space shuttle grid, solution and quality measures 49. . . . . . . .
34. Boeing Delta II grid, solution and quality measures 50. . . . . . . . . . . .
35. McDonnell Douglas experimental fighterr grid, solution and
quality measures 51. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36. Aim9x sidewinder missile grid, solution and quality measures 52. . . .
37. NASA 1.15 pressure ratio fan stage grid and quality measures 53. . . .
38. United Technologies jet engine combustor grid and quality
measures 54. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39. Generic submarine grid, solution and quality measures 55. . . . . . . . .
40. Generic ship hull and propeller grid and quality measures 56. . . . . . .
41. General Motors Corvette grid and quality measures 57. . . . . . . . . . . .
42. General Motors exhaust manifold grid and quality measures 58. . . . .
43. Ford Explorer grid and quality measures 59. . . . . . . . . . . . . . . . . . . . .
44. General Motors generic crankshaft grid and quality measures 60. . . .
viii
Figure Page
45. General Motors generic pump housing grid and quality
measures. 61. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46. MIT notional geometry grid and solution 63. . . . . . . . . . . . . . . . . . . . .
47. Tip vortex grid and solution 64. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ix
LIST OF TABLES
Table Page
1. Minimum topology information by grid generation method 14. . . . . . .
2. Minimum topology information by geometric topology form 15. . . . . .
3. Efficiency of RENM adjacency traversals 21. . . . . . . . . . . . . . . . . . . . . . .
4. Efficiency of GTM adjacency traversals 34. . . . . . . . . . . . . . . . . . . . . . . . .
5. Actual run times and number of topology elements 38. . . . . . . . . . . . . .
6. Unstructured grid generation results 48. . . . . . . . . . . . . . . . . . . . . . . . . . . .
7. Structured grid generation results 63. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
CHAPTER I
INTRODUCTION
Computational field simulation (CFS) involves the analysis of physical
phenomenon in two or three dimensions. CFS is used to solve a broad spectrum of
engineering and scientific problems including computational electro-magnetics
(CEM), computational thermo-mechanics (CTM), and computational fluid
dynamics (CFD). Most CFS solvers use partial differential equations (PDEs) on
discrete numerical grids (or meshes).
Numerical grids
A numerical grid is the discretization of a two-dimensional (2D) or
three-dimensional (3D) field into a collection of points or elements (elemental
volumes or cells) (Thompson, Warsi and Mastin 1988). A system of PDEs can be
approximated by a set of algebraic equations on these discretized points or elements
(Thompson, Warsi and Mastin 1988). The discretization of the field requires that the
points and cells be organized to readily identify adjacent points and elements in order
to make the solution of the PDE system efficient (Thompson, Warsi and Mastin 1988).
There are two types of numerical grids: structured and unstructured.
Structured grids, illustrated in figure 1, consist of intersecting curvilinear coordinate
lines, and are composed of quadrilateral (2D) and hexahedral (3D) logically
rectangular elements. The connectivity of a structured grid provides for trivial
identification of neighboring points by incrementing coordinate indices (Thompson
1992). Unstructured grids, shown in figure 2, consist of elements of any shape
2
(commonly triangles, quadrilaterals, tetrahedra, and hexahedra), but do not have
trivial identification of neighbors by incrementing an index. For unstructured grids, a
set of points and an associated connectivity table is generated to define unstructured
element shapes and neighboring points (Weatherill 1993).
Figure 1. Structured grid. Figure 2. Unstructured grid.
A multi-block structured grid has multiple regions (blocks) within a single
geometry that have their own corresponding local orientation and coordinate system.
Multi-block face-face matching grids (the only case used in this study) ensures that
each block matches adjacent blocks at their end vertices as illustrated in figures 3 and
4. In two dimensions (2D), a cycle of four edges determines a face (from this point on
the definition of a 2D block). In three dimensions (3D), a cycle of four faces with
closing end faces (a logical cube) determines a block.
Figure 3. 2D multi-block topology.
Block 1
Block 2
Block 3
Block 4
Figure 4. 3D multi-block topology.
Block 1
Block 2
Block 3
Block 4
Grid quality
For CFD solutions, a numerical grid must accurately conform to the boundary
in order to model the PDE boundary conditions correctly (Thompson, Warsi and
3
Mastin 1988). Structured and unstructured grid generation methods that follow the
method of building edge grids, then surface grids and then volume grids produce
accurate (within some tolerance) boundary conforming grids. Other methods such as
quad-tree or oct-tree decompositions may not model the boundary accurately or
correctly (Thomspon, Warsi and Mastin 1988; Shephard and Georges 1991).
It is difficult to determine if a grid is suitable for a CFD solver. In most cases,
a cycle of generating the grid, then generating the CFD solution is iterated until an
appropriate solution is achieved (Shirayama 1991). The only tools available to the grid
generation engineer are local grid metrics and the statistical evaluation of these local
metrics on a global scale.
There are a variety of numerical grid quality metrics that measure the local
geometric quality of a numerical grid. The overall geometric quality of a grid can
evaluated statistically from the summation of local quality measures (Marcum 1997).
Depending on the solver, there is a finite range of element shapes that can be used to
accurately model a CFD solution. There are a number of geometry-based quality
metrics that measure local grid quality (Gaither, Dannenhoffer and Weatherill 1993):
S Element angle. Minimum and/or maximum element angle in a triangle
or tetrahedron.
S Aspect ratio. (Average edge length)3
/ volume or (Mean edge length)3
/ volume of a hexahedron or tetrahedron. Notice that if an aspect ratio
has a negative value, this indicates a negative volume and will cause a faĆ
tal error in any CFD solver.
S Orthogonality. For structured grids only. Orthogonality of grid lines
close to the boundaries (not to exceed 45 degrees in critical areas) and
between elements (not to exceed 10 to 15 degrees in critical areas) (JacĆ
quotte 1991).
S Adjacent volumes. Ratio of minimum-to-maximum adjacent volĆ
umes.
S Stretch. Ratio between minimum-to-maximum side lengths.
S Dihedral angle. Minimum normalized dihedral (included) element
angle.
4
S Number of edges connected to a point.
S Solid angle between surface elements. Determines the geometric accuĆ
racy of surface grids.
The primary geometric metrics used for unstructured grid generation are
minimum and maximum angles (Marcum and Weatherill 1994). The primary
geometric metrics used for structured grids are aspect ratio, orthogonality and adjacent
volumes (Jacquotte 1991; Lu and Eiseman 1991). All of the other geometric metrics
are dependant on the CFD solver being used. Other metrics based on suitability to a
specific CFD solver such as variational optimization theory (Jacquotte 1991; Saouab
and Vandromme 1991), statistical methods (Shirayama 1991) and direct elliptic
solution adaption methods (Hoffmann, Siddiqui and Rutledge 1991; Soni 1991) are not
covered here.
The grid generation process
For many years, CFS engineers built grids using command line interfaces and
scripting languages (Thompson 1988). Many new grid generation systems are changing
to graphical user interfaces (Akdag and Wulf 1992; Boerstoel and Spekreyse 1991;
Dener and Hirsch 1992; Fujitana and Himeno 1991; Jacquotte 1991; Soni 1991;
Sorenson and McCann 1992; Stienbrenner and Chawner 1993). The three steps in the
grid generation process are shown in figure 5.
Define geometry
Figure 5. Three steps of the grid generation process.
Repair geometry Build grid
Whichever grid generation method or interface the engineer uses, the first two
steps of the grid generation process are still the same:
5
1. Define the geometry. Either import the geometry from CAD models,
discreet points, cross-section curves, bathymetry data, or create the geĆ
ometry within the grid generation system.
2. Repair the geometry into a form that is accurate enough to model the deĆ
sired CFD solution. Most geometry is not in a form that is ready for grid
generation. Traditionally, CAD data is generated for computer aided
manufacturing (CAD/CAM), and the surface-to-surface tolerances
used for machining parts in a CAD/CAM model are not sufficient for
grid generation purposes. That means that a good CAD/CAM model
will still have gaps and overlaps that must be fixed in the grid generation
system (Soni 1991).
Step 3 of the grid generation process varies due to the grid generation methods.
The following section describes the grid generation process for several methods.
Generating a three-dimensional structured grid
The process for computing structured grids is shown in figure 6. The details of
the process steps are as follows:
Map boundary geometry
Figure 6. The three dimensional structured grid generation process.
Build block topology Apply grid control
Compute surface grids Evaluate surface grids Compute volume grids Evaluate volume grids
Apply boundary
conditions
1. Map the boundary geometry into a form that is applicable to structured
grid generation. The entire surface geometry must be mapped into
three and four sided surfaces.
2. Build a block topology. The user must determine how to decompose the
field into a network of hexahedra in 3D (or quadrilaterals in 2D). The
traditional method is for the engineer to sit down at a desk and manually
6
draw out a blocking strategy for the desired geometry. Once the blocking
strategy is done, the engineer manually builds geometry for each face
and block in the field (keeping track of all edge, surface and block orienĆ
tations and connectivities). Blocking strategies demand considerable
experience with the type of CFD solution being generated (Soni 1991).
3. Apply the grid control information. The engineer now applies the numĆ
bers of points and point distributions on block boundaries. It should be
noted that in many grid generators, the number of points and point disĆ
tributions must be added during the block topology construction phase.
4. Compute the surface grids. Each surface grid can be computed using eiĆ
ther transfinite interpolation or hyperbolic methods. Each face, or the
entire system of surface grids, can then be elliptically smoothed.
5. Evaluate the surface grid quality. If the quality metrics identify probĆ
lems, the engineer may have to iterate back to the boundary mapping
phase to solve any problems with the surface grid.
6. Compute the volume grids. Each block grid is computed using either a
transfinite interpolation or hyperbolic method. Each block or the entire
system of volume grids can then be elliptically smoothed.
7. Evaluate the volume grid quality. Like the surface grids, the engineer
may have to iterate back to the surface mapping phase to solve any probĆ
lems with the volume grids.
8. Apply the boundary conditions, material properties and initial values.
This information is used by the CFD solver. Traditionally this is written
as a text file that is separate from the grid. These files use surface numĆ
bers and block numbers to map solver information to the grid.
Generating a two-dimensional structured grid
The process for computing two-dimensional structured grids is shown in figure
7. The details of the process steps are as follows:
1. Map the boundary geometry into a form that is applicable to structured
grid generation. The entire surface geometry must be mapped into
three and four sided surfaces.
2. Build a surface block topology. The user must determine how to decomĆ
pose the field into a network of quadrilaterals in two dimensions. Once
the blocking strategy is done, the engineer manually builds geometry for
each face in the field (keeping track of all edge and surface orientations
and surface connectivities)..
7
Figure 7. The two-dimensional structured grid generation process.
Build surface block
topology Apply grid control
Compute surface grids Evaluate surface grids
Apply boundary
conditions
3. Apply the grid control information. The engineer now applies the numĆ
bers of points and point distributions on block boundaries. It should be
noted that in many grid generators, the number of points and point disĆ
tributions must be added during the block topology construction phase.
4. Compute the surface grids. Each surface grid can be computed using eiĆ
ther transfinite interpolation or hyperbolic methods. Each face, or the
entire system of surface grids, can then be elliptically smoothed.
5. Evaluate the surface grid quality. If the quality metrics identify probĆ
lems, the engineer may have to iterate back to the boundary mapping
phase to solve any problems with the surface grid.
6. Apply the boundary conditions, material properties and initial values.
This information is used by the CFD solver. Traditionally this is written
as a text file that is separate from the grid. These files use surface numĆ
bers and block numbers to map solver information to the grid.
Generating a three-dimensional unstructured grid using
the hierarchical boundary method
The process for computing hierarchical three-dimensional unstructured grids
is shown in figure 8. The details of the hierarchical unstructured grid generation
process steps are as follows:
8
Figure 8. The hierarchical unstructured grid generation process.
Apply grid control
Compute surface grids Evaluate surface grids Compute volume grids Evaluate volume grids
Apply boundary
conditions
1. Apply the grid control information. Point spacings are applied to edges.
A 1D advancing front algorithm (illustrated in figure 9) is used to comĆ
pute the number of points and point distribution on a given curve (MarĆ
cum 1997). Traditionally, edge grids were built using the same method
as structured grids, i.e. the engineer had to specify the number of points
on each edge as well as a point distribution on each edge.
Figure 9. Point spacings and the computed point distribution.
2. Compute the surface grids. Surface grids can be computed in the paraĆ
metric space of a surface via a Delauney triangulation algorithm (WeaĆ
therill, Gaither and Gaither 1995) or an advancing front algorithm (MarĆ
cum 1997). Another method that can be used to create surface grids is
the mapped space approximation (MSA) algorithm (Marcum 1997).
3. Evaluate the surface grid quality. If the quality metrics identify probĆ
lems, the engineer may have to iterate back to the grid control phase to
solve any problems with the surface grid.
4. Compute the volume grid. The volume grid is computed using either a
Delauney triangulation algorithm (Weatherill, Gaither and Gaither
1995) or advancing front algorithm (Marcum 1997).
9
5. Evaluate the volume grid quality. Like the surface grids, the engineer
may have to iterate back to the grid control phase to solve any problems
with the volume grid.
6. Apply the boundary conditions, material properties and initial values.
This information is used by the CFD solver, and is traditionally written
as a text file that is separate from the file containing the grid. These files
use surface (group) numbers to map solver information to the grid.
Generating a two-dimensional unstructured grid using
the hierarchical boundary method
The process for computing hierarchical two-dimensional unstructured grids is
shown in figure 10. The details of the two-dimensional hierarchical unstructured grid
generation process steps are as follows:
Figure 10. The hierarchical unstructured grid generation process.
Apply grid control Compute surface grids Evaluate surface grids Apply boundary
conditions
1. Apply the grid control information. Point spacings are applied to edges
and edge growths are applied to loops.
2. Compute the two-dimensional grid. Surface grids are computed in
physical space via a Delauney triangulation algorithm (Weatherill,
Gaither and Gaither 95) or an advancing front algorithm (Marcum
1997).
3. Evaluate the two-dimensional grid quality. If the quality metrics identiĆ
fy problems, the engineer may have to iterate back to the grid control
phase to solve any problems with the grid.
4. Apply the boundary conditions, material properties and initial values.
Generating a three-dimensional unstructured grid using the
oct-tree method
The process for computing oct-tree three-dimensional unstructured grids is
shown in figure 11. The details of the oct-tree unstructured grid generation process
steps are as follows:
10
Figure11. Theoct-treeunstructuredgridgenerationprocess.
Apply grid control
Compute volume grids Evaluate volume grids
Apply boundary
conditions
1. Applythegridcontrolinformation. Pointspacingsareapplieddirectly
tothevolume.
2. Computethevolumegrid. Thevolumegridiscomputedusingtheoct-
treedecompositionalgorithm(ShephardandGeorges1991).
3. Evaluate the volume grid quality. Unlike the boundary method used
withtheAFLRgridgenerators,thereisnowaytoimprovevolumegrid
qualityotherthansmoothingandpointinsertionanddeletion.
4. Applytheboundaryconditions,materialpropertiesandinitialvalues.
Problemswithcurrentgridgenerationsystems
Currently, the human time needed to generate a grid for a complex 3D
configuration is unacceptable for most industrial applications (Thompson and
Weatherill1993). Generatingagridmaytakeupto90%oftheoveralltimeneededto
compute a CFD solution on a complex geometry (Soni 1991). In order for CFD
analysistobeconsideredasacost-effectivedesigntool,thetimerequiredtogenerate
complicatedgridsmustbereduced. Inordertospeedupthegridgeneration,theuser
must be abstracted from geometric complexity (orientations and connectivity) and
givenspecificfunctionalitythatautomatesthegridgenerationprocess(Thompsonand
Weatherill1993). Thisismostevidentinstructuredgridgenerationsystemswherea
significantportionoftimeisspentmanuallybuildingthemulti-blocktopology.
11
Most structured grid generation data structures (Akdag and Wulf 1992;
Boerstoel and Spekreyse 1991; Dener and Hirsch 1992; Fujitana and Himeno 1991;
Jacquotte 1991; Soni 1991; Sorenson and McCann 92; Stienbrenner, Chawner and
Fouts 1990) do not explicitly keep track of surface-to-surface and block-to-block
connectivity. The user is forced to manually keep track of grid and geometric
orientations during the block construction process. These same structured grid
generation data structures also duplicate points at block boundaries. While easier to
implement, duplicating points at block boundaries can introduce errors into the final
grid. If the number of points at a block-to-block boundary are different or an
orientation change is overlooked, point-to-point mismatching can occur. This will
cause an error in the solver that is very hard to find (Thompson 1992).
Most unstructured grid generation systems do not use geometric adjacency
information (topology data structures), but instead they use very efficient oct-tree
decomposition methods to generate tetrahedral grids (Shephard and Georges 1991,
Spatial Technology Incorporated 1996; Akdag and Wulf 1992; Lawry 1996) on the
original geometry. Using the oct-tree method allows the user to ignore topological
problems with the surfaces (gaps and overlaps). However, the elements with the worst
quality (using the element-based quality metrics discussed earlier) of oct-tree based
unstructured grids are at the boundary (Marcum 1995).
Transferring geometry data between CAD and grid generation systems is prone
to errors due to underlying geometry representations and round-off errors (Gaither
et al. 1995; Soni 1991). Most CAD systems expect the users to start with data generated
within the CAD system. However, even the CAD system's solid models (that are
acceptable for mechanical CAD/CAM design) may have topology problems that are
unacceptable for CFD grid generation. In many cases, these topology problems are too
expensive to fix on the CAD system and must be fixed after it is imported into the grid
12
generation system (Fricker 1996). Imported data almost always has tolerance
problems (gaps and overlaps) in the surfaces. A tolerance-based topology data
structure enables the user to specify a tolerance that will fix some of the numerical
round-off problems associated with importing data.
Thesis statement
The purpose of this thesis is to develop a topology data structure that supports
advancing front local reconnection (AFLR) unstructured grids (Marcum and
Weatherill 1994) as well as transfinite interpolation, elliptic and hyperbolic structured
grids (Thompson 1992). This topology data structure will directly support the method
of building edge grids, surface grids and volume grids (hierarchical boundary method)
in order to construct high quality computational fluid dynamics (CFD) grids. In
conducting this research, the following questions are answered:
S What is the minimum topological information needed to generate strucĆ
tured and unstructured grids?
S What are alternative data structures for representing this information?
S What changes need to be made (if any) to the existing data structure to
meet the grid generation requirements?
S Which of the alternative data structures have the most efficient adjacenĆ
cy traversals?
S What topology-based functionality can be implemented that will imĆ
prove the grid generation process?
Approach for selecting a data structure design
After determining the minimum topological information needed to generate
structured and unstructured grids, alternative data structures that meet the minimum
topological requirements will be evaluated to determine which one provides the most
efficient adjacency traversals needed for both structured and unstructured grid
generation. The evaluation must consider accessing adjacent topological elements in
all facets of grid generation, including:
13
S determining adjacent end points of curves when gluing edges;
S determining orientations on shared topological entities;
S eliminating point duplication in a grid it is necessary for curves to access
adjacent points, surfaces to access adjacent curves and blocks to access
adjacent surfaces;
S propagating structured grid information in a computational direction;
S determining right-handed loop orientations;
S automatically trimming surfaces;
S determining structured grid four-sided wire-frame faces and six-
sided wire-frame blocks; and
S normalizing surface orientations in a shell.
The geometry representation for our system will use non-uniform rational
b-splines (NURBS). Since the amount of topological information is much smaller
than the amount of information needed to model NURBS, memory size of the
topology data structures will be negligible and will not be considered as a major factor
in choosing a data structure. However, every effort will be made to make the data
structures as small as possible.
The topology data structure that is chosen needs to be flexible enough to be able
to support both structured and unstructured grid generation. In the next chapter, we
introduce the minimal topological requirements for general grid generation. We will
then survey a set of existing (published) data structures, and evaluate these data
structures in the context of the minimal topological requirements. Once an existing
data structure has been selected as the basis for the proposed grid generation data
structures, we will determine what changes need to be made in order to support general
grid generation.
14
CHAPTER II
THE MINIMUM TOPOLOGY INFORMATION NEEDED TO COMPUTE
GENERAL NUMERICAL GRIDS
The minimum topological adjacency information required for the explicit
topological representation of both structured and unstructured grids is presented
below. The requirements are derived from a common body of knowledge
incorporating structured and unstructured grid generation processes. The
requirements are derived from the grid generation domain and stated in terms of
topological adjacencies between geometry. From table 1 we can conclude that the
proposed data structure must support all adjacencies between topological elements.
Table 1. Minimum topology information by grid generation method.
Grid Generation
Methods
Topological adjacencies
VE VL VF VS EL EF ES LF LS FS
2D unstructured x x x
Single-volume
3D unstructured
x x x x x x x
Multi-volume
3D unstructured
ÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄ
x
ÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄ
x
ÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄ
x
ÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄ
x
ÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄ
x
ÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄ
x
ÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄ
x
ÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄ
x
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄ
x
ÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄ
x
2D structured x x x
3D structured x x x x x x
15
Geometric topological forms
Geometric modelling topology data structures are used to represent adjacency
of three dimensional objects. Geometric modelling topology forms include:
1. wire-frame modelling,
2. surface modelling,
3. manifold solid modelling, and
4. non-manifold solid modelling.
The minimum topology information supported by each geometric modelling
form are shown in table 2. We can conclude that only the non-manifold solid
modelling geometry form is sufficient for general grid generation.
Table 2. Minimum topology information by geometric topology form.
Geometry topology
forms
Topological adjacencies
VE VL VF VS EL EF ES LF LS FS
Wire-frame x x
Surface x x x x
Manifold solid x x x x x x
Non-manifold
solid
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
x
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
x
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
x
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
x
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
x
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
x
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
x
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
x
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
x
ÄÄÄÄÄÄ
ÄÄÄ
ÄÄÄÄÄÄ
x
16
CHAPTER III
A SURVEY OF EXISTING PUBLIC DOMAIN SOLID MODELLING DATA
STRUCTURES
The only true source of literature available on solid modelling data structures
is academic research papers. However, this is not where the majority of the work is
being done in the field. Commercial CAD companies have been developing solid
modelling data structures for many years. Unfortunately, these CAD companies do
not publish their research and design documents due to software copyright laws. The
following is a mixture of academic research papers and inferred information from the
commercial CAD user and programmer manuals.
The winged-edge manifold solid-modelling
data structure
The winged-edge data structure is a manifold (involving a maximum of two
surfaces adjacent to an edge) solid modelling data structure used in early solid
modelling systems (Baumgart 1974). The winged-edge data structure's name is
derived from the graphical appearance of an edge and its adjacent edge neighbors (see
figure 12) (Weiler 85). The winged-edge data structure is insufficient for 3D
structured multi-block grid topologies and was therefore eliminated as a candidate
data structure.
17
E1
V1 V2
E2
E3
E4
E5
Figure 12. Winged edge data structure
The radial-edge non-manifold solid modelling (RENM)
data structure
Perhaps the most important work published in solid modelling topology is by
Kevin Weiler. (Weiler 1985, 1986 and 1987). His Ph.D. thesis Topological structures
for geometric modeling (Weiler 1986) is cited in almost every publication involving
solid modelling topology and geometric based grid generation. Derivatives of Weiler's
radial-edge non-manifold (RENM) data structure design has been used by almost
every commercial CAD system that uses a boundary representation (B-Rep)
non-manifold data structure for solid modelling applications. The RENM data
structure consists of models, regions, shells, faces, loops, edges, vertices, face-uses,
edge-uses, and vertex-uses. These terms are defined in (Weiler 1986) as follows:
S Model: A model is a single three-dimensional space. It consists of one
or more distinct regions of space. A model can be viewed as a container
for all topological elements in that region of space.
S Region: A region is a volume that is contained by a model. A region may
have infinite extent, however only one region may be infinite, all others
are finite. All regions in a model (if finite) have boundaries.
S Shell: A shell is an oriented boundary of a region. A region may have
zero to many shells. A region has no shell if no topology has been defined
within it (which occurs in the initial state or when all topology elements
have been deleted). A shell is composed of zero to many faces, vertices
and edges. The shell may be open, closed or consist of a single element
such as a face, edge or vertex.
18
S Face: A face is a bounded element of a shell. A face is not oriented, but
the face must have an orientation with respect to adjacent shells. A face
is composed of an entire surface or a portion of a surface, but does not
include the surface's boundaries.
S Loop: A loop is a boundary of a face. A face must have at least one outer
boundary loop, but may have multiple interior boundary loops. Loops
consist of an alternating sequence of edges and vertices in a complete cirĆ
cuit, but may consist of only a single vertex. Loops are not oriented, but
the loop must have an orientation with respect to adjacent faces.
S Edge: An edge is a bounding curve segment for a loop boundary. An
edge may be used by zero or many adjacent faces. An edge is bounded
by a vertex at each end (possibly the same one). An edge is not oriented;
however, the edge must have an orientation with respect to adjacent
loops.
S Vertex: A vertex is a unique point in space. A vertex may serve as a
boundary for faces, edges, loops and shells.
S Face-use: A face-use is the use of a face. Face-uses are used by a shell
and are oriented with respect to the face geometry.
S Loop-use: A loop-use is one of the use of a loop. Loop-uses are assoĆ
ciated with one of the two uses of a face. The loop-use is oriented with
respect to the associated face-use.
S Edge-use: An edge-use is an oriented bounding curve segment on a
loop-use of a face-use. The edge-use is the use of an edge by a loop-
use, or if a wire-frame edge, by endpoint vertices. Edge-use orientaĆ
tion is specified with respect to edge geometry.
S Vertex-use: A vertex-use is the use of a vertex by an edge as an endĆ
point, by a loop in the case of a single vertex loop, or by a shell in the case
of a single vertex shell.
The hierarchy of topology and geometry elements defines the classes of
information contained in the RENM data structure. As shown in figures 13, 14 and 15,
each level of the hierarchy represents a level of abstraction between geometry and
adjacency elements. Models and regions in the RENM data structure are simply a
means of organizing the topological data for API functions and have therefor have
been omitted from the following discussions.
19
Surface
Face
Curve
Vertex
EdgeUse
FaceUse
Edge
Surface
Topology
Volume
Topology
Geometry
Abstraction
Point
VertexUse
Shell
Geometry
LoopUse
Figure 13. RENM hierarchy and relationship of topology elements.
Loop
ÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇÇÇÇ
ÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇÇÇÇ
ËËËËËË
ËËË
ËËË
F1
F2
F3
E
E
F2F3
F1
eu3
eu4
fu3
fu4fu5
fu6
fu1 fu2
eu2eu1
eu6
eu5
Figure 14. RENM example of three shells sharing an edge.
S Shell
F Face
E Edge
V Vertex
fu face-use
L Loop
eu edge-use
S1 S2
S3
L3
L4
L2L1
L5
L6
20
F2
F1
F3
fu
1
fu2fu3
eu1
eu2eu3
F1
F2F3
Figure 15. RENM example of three faces sharing an edge.
E
F Face
E Edge
L loop-use
fu face-use
eu edge-use
E
lu1
lu2lu3
Sufficiency of the non-manifold topology model
A practical implementation of a non-manifold topology data structure does
not only include information related to the sufficient set of adjacency relationships, but
also includes information associating all element types (Weiler 1985). All topology
elements are uniquely labeled and non-topological entities (geometry and grid) can
be unambiguously associated with the topology model (Weiler 1985). A non-manifold
solid modelling data structure requires at least n-1 adjacency relationships (where n
is the number of basic topology element types) to associate all element types. In this
case n= 5, so at least four adjacency relationships are the minimum required to define
a complete set (Weiler 1985). The four minimum upward adjacency relationships
(downward adjacency relationships are directly accessible through components) that
need to be modelled are:
21
1. vertex adjacent edge (V{E}),
2. edge adjacent loop (E{L}),
3. loop adjacent face (L{F}), and
4. face adjacent shell (F{S}).
Efficiency of REMN adjacency traversals
Due to the explicit adjacency information, all adjacency traversals within the
RENM data structure are linear. The asymptotic efficiency of adjacent element
traversals are defined in table 3.
Table 3. Efficiency of RENM adjacency traversals.
(adjacent) Vertex Edge Loop Face Shell
Vertex - VE =
Θ|V{E}|
VL =
Θ|V{EL}|_
VF =
Θ|V{EF}|
VS =
Θ|V{ES}|
Edge EV = 2 - EL =
Θ|E{L}|
EF =
Θ|E{LF}|
ES =
Θ|E{LS}|
Loop LV =
Θ|L{EV}|
LE =
Θ|L{E}|
- LF =
Θ|L{F}|
LS =
Θ|L{FS}|
Face FV =
Θ|F{LV}|
FE =
Θ|F{LE}|
FL =
Θ|F{L}|
- FS =
Θ|F{S}|
Shell SV =
Θ|S{FV}|
SE =
Θ|S{FE}|
SL =
Θ|S{FL}|
SF =
Θ|S{F}|
-
Commercial CAD systems
A concerted effort was made to find publications on commercial CAD topology
designs (Akdag and Wulf 1992; Spatial Technology Incorporated 1996; Lawry 1996;
Parametric Technology Corporation 1997). In every case, this information was not
available. The only information available was user manuals and application
programmer manuals. The CAD systems provide application programmers interfaces
(APIs) that hide the underlying complexity of their internal data structures. From
these APIs, we have tried to discern the underlying solid modelling topology
22
implementations. Since we cannot prove our guesses, we will not include them in this
paper. But we can say that all of the commercial CAD systems we reviewed had very
similar APIs that would support a topological data structure based on Weiler's original
work.
Grid generation systems
A much richer environment for gathering information on this topic is in grid
generation. Most research in grid generation (and therefore published materials)
comes from universities and research centers. Unfortunately, the only information we
could obtain from these papers were either the commercial CAD systems they were
using for their geometry engines, or the actual geometry formulations their systems
were based on (Akdag and Wulf 1992; Boerstoel and Spekreyse 1991; Dener and
Hirsch 1992; Fujitana and Himeno 1991; Jacquotte 1991; Luh, Pierce and Yip 1992;
Soni 1991; Sorenson and McCann 92; Stienbrenner and Chawner 1993). The only
exceptions to this rule were multi-block grid generation systems that use FORTRAN
(array based) implementations (Thompson 1988; Stienbrenner and Chawner 1990;
Soni 1992; Sorensen and McCann 1992). There are three major drawbacks to these
structured grid implementations:
1. the grid generation system depends on the user to keep track of geometĆ
ric orientations;
2. these data structures do not support unstructured grid generation; and
3. duplicate grid points on shared entities.
For these three reasons, the data structures were deemed inadequate for
general grid generation. However, since the mathematical structured grid generation
routines from Thompson (1988) are being used, the topological functionality for that
system had to be mirrored and were taken into account as basic requirements of the
GTM data structure and API.
23
Summary
It has been determined that the most important features needed for grid
generation (non-manifold geometry and explicit access of adjacent elements) are
contained in the RENM data structure. But in order to generate general grids
efficiently, several modifications to the RENM data structure must be made.
The major changes that need to be made to the RENM data structure are the
addition of blocks, explicit four sided surfaces and the elimination of topological
degeneracies. Blocks (explicit six sided volumes) and explicit four sided surfaces
change the basic structure of topology hierarchy. The elimination of topological
degeneracies (for example a surface adjacent to another surface at a point on the
interior of the surface) simply changes the behavior of the topology operations.
24
CHAPTER IV
THE GRID TOPOLOGY MODEL DATA STRUCTURE
In order to generate grids efficiently using the RENM data structure, a number
of modifications (both simplifications and extensions) have been made. The primary
topological elements added to the RENM data structure are explicit four-sided
surfaces and six-sided blocks. These additional topological elements allow quick
construction and efficient traversal of multi-block structured grids. The addition of
these elements to the grid topology model (GTM) data structure as well as the
elimination of the loop-use gives provides a new topology hierarchy illustrated in
figure 16 (Gaither 1994; Gaither et al. 1995; Gaither 1996; Gaither et al. 1996).
The volume topology elements define the orientation of a 3D space and its
associated grid information. Surface topology elements explicitly define adjacency inĆ
formation between all elements in the GTM data structure as well as grid information
on the surfaces. The geometry abstraction layer insulates the topology portion of the
GTM data structure from the geometry implementation. The geometry layer is not
relevant to this discussion and is only included for completeness. The following are defĆ
initions of the elements currently included in the GTM data structure. These definiĆ
tions are quite different from the RENM elements in that degenerate topological
conditions (true non-manifold conditions such as points adjacent to surfaces in the
middle of the surface) are not allowed.
S Shell: A shell is an oriented volume bounded by any number of faces.
It is an element in both unstructured and hybrid grid topologies. A face
is connected to a shell through a face-use. The face-use's orientation
is determined by the direction of the associated surface geometry's norĆ
mal direction. All surface normals point consistently either inwards or
outwards from the interior of the shell's volume.
25
Surface
Face
Curve
Vertex
Edge Use
Face Use
Edge
Surface
Topology
Volume
Topology
Geometry
Abstraction
Point
Vertex Use
Block Shell
Geometry
Loop
Figure 16. GTM topology hierarchy.
The GTM data structure definitions are:
S Block: A block is a right-handed (positive Jacobian) oriented volume
bounded by six (logical) faces. Blocks are elements in structured multi-
block grid topologies. A face is connected to a block through a face-use.
A face-use's orientation is determined from its location on the block
and the orientation of the face geometry. Orientations from one face to
another on a block are implied from the location on the block.
S Face: A face is an orientable 2D abstraction of a surface. A face can be
bounded by either four edges associated with the derived curves from the
original surface geometry, or by any number of non-degenerate oriĆ
ented trimming loops that are defined as sets of edges with associated
parametric curves on the surface. A face's orientation is determined by
any number of face-uses that share the face.
S Loop: A loop is an oriented collection of non-degenerate edges in eiĆ
ther 2D space or the parametric space of a parent trimmed surface.
Loops run in a counter-clockwise direction whether in 2D space or in
the parametric space of the surface.
S Edge: An edge is an orientable 1D abstraction of a curve. An edge is
connected to a face either directly to a face-use as one of four derived
edges of the original surface, or through a loop as a part of a trimming
loop. The edge's orientation is determined by any number of associated
26
edge-uses. An edge is orientable, though not oriented; it is the use of
an edge which is oriented.
S Vertex: A vertex is an abstraction of a point in space.
S Face-use: A face-use is an element that defines the use of a face by a
shell or block. The face-use provides adjacency information for the
face, defines the orientation of the face with respect to the volume that
is using it, and stores the face grid information.
S Edge-use: An edge-use is an element that defines the use of an edge
by a face. The edge-use provides adjacency information for the edge,
defines the orientation of the edge with respect to the face that is using
it, and stores the edge grid information.
S Vertex-use: A vertex-use is an element that defines the use of a vertex
by an edge. The vertex-use provides adjacency information for the verĆ
tex and stores the vertex grid information.
GTM implementation
For this study, the GTM data structures are implemented in the programming
language C. All adjacent elements in the GTM data structure are directly accessible
via pointers. Searching is limited to traversing a doubly-linked circular list with length
equal to the number of adjacent elements. Grid generation applications utilize the adĆ
jacency elements to store and access grid points on shared geometries. CAD utilities
utilize the adjacency and geometry abstraction elements to determine degeneracies,
orientations, and adjacencies as shown in figures 17 and 18.
Gluing the geometry
Once the topology is created for the individual geometry element, adjacency is
achieved by gluing geometry elements together. Gluing is a means of attaching more
than one use to a single geometry. For example, if two surfaces are glued together at
an edge, one of the derived edges and two of the derived vertices are deleted and the
uses for the deleted edges and vertices are attached to the other edge and vertices as
shown in figure 19.
Gluing makes two geometrical entities (that are within a specified tolerance) a
single entity. Gluing is fundamental in building a topologically valid geometry from a
27
set of disjoint geometry. The faces, edges, and vertices are automatically glued (given
some user-defined tolerance) to other surrounding geometries as they are input into
the system. The tolerance is set (interactively or in a resource file) by the user to define
the volume search that determines if two elements are to be glued. Automatically
gluing elements as they are created simplifies CAD operations and further abstracts
the user from the complexities of the geometry.
ÇÇÇÇÇÇÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇÇÇÇ
ÇÇÇÇÇÇ
ËËË
ËËËËËË
ËËË
F1
F2
F3
E
E
F2
F3
F1
eu3
eu4
fu3
fu4
fu5
fu6
fu1 fu2
eu2eu1
eu6
eu5
Figure 17. GTM example of three shells sharing an edge.
S Shell
F Face
E Edge
V Vertex
fu face-use
L Loop
eu edge-use
S1 S2
S3
L3
L4
If the automated gluing has failed to achieve a valid bounded space without gaps
between geometries, a set of manual and semi-automated gluing tools are available
to the user. The user can manually glue two elements by selecting them interactively,
or may utilize a semi-automated approach by specifying a tolerance (as either a physiĆ
cal dimension or a percentage of the overall maximum model dimension).
The automated gluing traverses all geometries in the configuration. As each
vertex is traversed, a 3D search for all other vertices within the specified tolerance is
28
performed. If a vertex is found that is within the tolerance, the vertices are glued as
shown in figure 20. Once all vertices are glued, a check is made to determine if edges
between the glued vertices should be glued. Figure 21 illustrates the resulting topology
from gluing together four four-sided surfaces at their edges.
F2
F1
F3
fu
1
fu2fu3
eu1
eu2eu3
F1
F2F3
Figure 18. GTM example of three faces sharing an edge.
E
F Face
E Edge
fu face-use
eu edge-use
E
ÉÉÉÉÉÉÉÉ
ÉÉÉÉ
ÉÉÉÉÉÉÉÉ
ÇÇ
Ç
ÇÇ
ÇÇÇÇ
ÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÉÉÉÉ
ÉÉÉÉÉÉÉÉ
ÉÉÉÉ
ÉÉÉÉÉÉÉÉ
ÉÉÉÉ
ÉÉÉÉÉÉÉÉ
ÉÉÉÉ
ÉÉÉÉÉÉÉÉ
ÇÇ
ÇÇÇÇ
ÇÇ
ÇÇÇÇ
Ç
ÇÇ
Ç
ÇÇ
Ç
ÇÇ
Ç
ÇÇ
ÇÇ
ÇÇÇÇ
ÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÇÇÇÇ
ÇÇ
ÇÇÇÇ
ÇÇ
Ç
ÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
Figure 19. Two surfaces before and after gluing on an edge.
Vertex
Edge
Vertex use
ÇÇ
Ç Edge use
É
ÉÉ Face use
Glue
Topological gluing does not alter the geometry. If there are gaps less than the
specified tolerance, topologically gluing the surfaces does not close them, it only indiĆ
29
cates that the geometries are adjacent. When grid generation occurs, only one derived
curve between two adjacent surfaces will govern the grid point creation. Grid lines will
span the gap, but stretching and deformations of the grids in these local areas are unacĆ
ceptable if the gaps are too large.
ÇÇÇÇÇÇÇÇÇÇÇÇ
ÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇÇÇÇ
ÇÇÇÇÇÇ
Figure 20. 3D point search to determine adjacency.
ÁÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁÁÁ
ÉÉÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉÉ
ÉÉÉÉÉÉÉÉ
ÉÉÉÉÉÉÉÉ
ÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉ
ÇÇ
ÇÇ
Ç
ÇÇ
ÇÇ
Ç
ÇÇ
ÇÇ
Ç
ÇÇ
ÇÇ
ÇÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÉÉÉÉÉÉÉÉ
ÉÉÉÉ
ÉÉÉÉÉÉÉÉ
ÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉ
ÇÇ
Ç
ÇÇ
Ç
ÇÇ
Ç
ÇÇ
Ç
ÇÇ
Ç
ÇÇ
Ç
ÇÇ
Ç
ÇÇ
Ç
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÇÇÇÇ
Vertex
Edge
Vertex use
ÇÇÇÇ
ÇÇEdge use
ÉÉÉÉ
ÉÉface use
Geometry
Figure 21. Resulting topology from gluing four four-sided surfaces.
Deletion criteria for derived vertices and edges
Deletion criteria for derived edges and vertices are ambiguous for two faces
glued at an edge. However, if a curve is glued to a surface at an edge, the element that
is lower in the topology hierarchy (in this case the curve) is preserved. The same princiĆ
30
ple applies to a point glued to a curve or surface. This allows construction curves and
points to be preserved throughout the CAD manipulation phase.
Degenerate geometry
The introduction of degenerate geometry (curves that collapse into points and
surfaces that collapse into curves or points) into the GTM data structure allows the grid
generators to identify and handle these special geometries. The RENM data structures
are not designed to explicitly identify degenerate geometries, but allow degenerate
topological conditions that grid generators would not be able to cope with. An obvious
example of these degenerate topological conditions is allowing a degenerate loop (a
loop defined as a point on a surface). There is no way to generate grids within this
degenerate loop and would produce grid elements with zero volume. There are several
different types of degenerate geometry with which a grid generation system must cope.
Figure 22 shows the hierarchy of such geometries. Figure 23 shows the resulting
topology when 3 four-sided surfaces and a degenerate surface are glued together.
Orientation
The GTM data structure abstracts the user from the complexities of the underlyĆ
ing geometry orientations. Orientations follow the hierarchy of topology elements with
the block defining the orientation of a volume, a face-use defining the orientation of
a surface, and an edge-use defining the orientation of a curve.
In the GTM, orientation of surface and curve geometries are defined by the
direction from which you access them. The orientation follows the hierarchy of topoloĆ
gy elements (shellshave no orientation). The block(topmost element in a structured
grid) defines the logical orientation of a 3D space. The face-usesthat bound the block
derive their orientation from the "logical block face" they lie on. Edge-uses derive
31
their orientation from their logical location on a face. Each orientation is specified in
terms of how the underlying geometry is accessed.
Volumes
Surfaces
Curves
Figure 22. Hierarchy of degenerate geometries.
ÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉ
ÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉ
ÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
ÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇÇ
ÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÇÇÇÇ
ÇÇÇÇ
ÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇ
ÇÇÇÇÇÇÇÇ
Geometry
ÉÉÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉÉÉ
ÇÇÇÇÇÇ
ÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇ
ÇÇÇ
ÇÇÇÇÇÇ
ÉÉÉ
ÉÉÉ
ÉÉÉÉÉÉ
ÉÉÉ
ÉÉÉ
ÉÉÉÉÉÉ
ÉÉÉ
ÉÉÉÉÉÉ
Figure 23. Resulting topology from gluing three four-sided surfaces to a
degenerate surface.
When multiple topology entities share a single geometry entity, orientations in
in the topology determine how the geometry is accessed. For example, two surfaces
that share a curve (two faces that share an edge) may need to access the curve geometry
in different directions. Figure 24 shows how different orientations between two faces
affect how an edge is accessed.
32
Edge-useorientations are coded using a binary flag to determine how a neighĆ
boring face-useor loop accesses the edge. If the edge is running in the same direction
as the surface does, the binary flag is set to false. Figure 25 illustrates how if the edge
is running in the opposite direction of the face-use or loop, the flag is set to true.
V
U
V
U
F1
F2
Figure 24. Orientations of an edge that is shared by two faces.
E1
eu2
eu1
eu1
eu2
V
U
V
U
+–
0 1 1 0
TrueFalse
Surface
Figure 25. Curve orientations.
Face-useorientations are coded using binary representations between 0 and 7.
The left most bit determines a right handed (0), or left handed (1) orientation. The
right two bits determine the location of the surface origin relative to the face-use as
shown in figure 26.
33
Sufficiency of the GTM
Since the GTM data structure includes all topological elements in the RENM
data structure, the GTM data structure is sufficient for modelling non-manifold
topologies and is therefore sufficient for modelling general grid generation topologies.
U
V
U min U max
V max
V min
(U,V)
(U,v)(u,v)
(u,V)
0
0
3
3
0
0
3
3
3
3
0
0
3 0
000
110
011
101
001
111
010
100
(0)
(4)
(2)
(6)
(3)
(5)
(1)
(7)
03
Figure 26. Surface orientations.
1
2
1
2
1
2 1
2
1
21
2
1
2
1
2
Efficiency of the GTM adjacency traversals
Due to the explicit adjacency information, all adjacency traversals within the
GTM data structure are linear. The addition of explicitly defined edges on faces and
explicitly defined faces on blocks does not change Weiler's original upward adjacency
requirements. Instead, additional relationships within the original matrix needs to be
added in order to model the explicit number of edges on a face and faces on a block
(remember a block is just a specialized form of the shell).
The additional relationships state that a four-edged face can directly access its
four adjacent edges and vertices without have to traverse through a loop. However, if
the surface is trimmed, the same relationship as in the a loop will have to be traversed
before accessing adjacent edges. The same additional type of relationship is also
34
present in shells. The asymptotic efficiency of adjacent element traversals are defined
in table 4.
Table 4. Efficiency of GTM adjacency traversals.
(adjacent) Vertex Edge Loop Face Shell
Vertex - VE =
Θ|V{E}|
VL =
Θ|V{EL}|_
VF =
Θ|V{EF}|
VS =
Θ|V{ES}|
Edge EV = 2 - EL =
Θ|E{L}|
EF =
Θ|E{LF}|
or
Θ|E{F}|
ES =
Θ|E{LS}|
or
Loop LV =
Θ|L{EV}|
LE =
Θ|L{E}|
- LF =
Θ|L{F}|
LS =
Θ|L{FS}|
Face FV =
Θ|F{LV}|
or
4
FE =
Θ|F{LE}|
or
4
FL =
Θ|F{L}|
- FS =
Θ|F{S}|
Shell SV =
Θ|S{FV}|
or
8
SE =
Θ|S{FE}|
or
12
SL =
Θ|S{FL}|
SF =
Θ|S{F}|
or
6
-
35
CHAPTER V
STRUCTURED GRID GENERATION USING THE GTM
A multi-block structured grid has multiple regions (blocks) within a single geĆ
ometry that have their own corresponding local orientation and coordinate system. For
face-to-face matching multi-block topologies, each block must match other blocks
at their end vertices as illustrated in Figures 3 and 4. In two dimensions (2D), a cycle
of four edges determines a face. In three dimensions (3D), a cycle of four faces with
closing end faces (a logical cube) determines a block. Currently, most grid generation
systems force their users to manually build block orientations (Akdag and Wulf 1992;
Boerstoel and Spekreyse 1991; Dener and Hirsch 1992; Fujitana and Himeno 1991;
Jacquotte 1991; Soni 1991; Sorenson and McCann 1992; Stienbrenner, Chawner and
Fouts 1990; Thompson 1988). Automatically detecting and building these blocks from
a graph of faces, edges and vertices that correspond to the geometry of a configuration
is a primary contribution of the GTM to structured grid generation. The only thing the
user must do is build the geometry that forms the wire-frame model of the blocking.
Automatically detecting faces and blocks assigns a local right-handed coordiĆ
nate system to each one. This abstracts the user from having to specify block and face
orientations manually. Automatic block detection uses a number of recursive depth
first search algorithms (Aho, Hopcroft and Ullman 1974) to quickly build a block topolĆ
ogy from a set of wire-frame geometries. The recursive form of the depth first search
was chosen since the depth of the call stack never exceeds four (for both faces and
blocks) and the nature of the automated block detection problem itself is recursive.
36
Orientations between volumes (more specifically block-block orientations)
must be added to the face-use elements in order to abstract the user from keeping
track of these orientations manually. These orientations are determined locally for
each block using a combination of topological connectivities and statistical evaluation
of Jacobian volumes within each block. After local block orientations are determined,
global re-orientation routines have been implemented that provide consistent
orientations through given sets of blocks.
The pseudo-code in figure 27 describes the algorithm for determining four-
edge faces (2D blocks). Notice that all the searches begin and end with vertices. The
3D form of this algorithm is exactly the same except that the search begins and ends
with edges and the algorithm queries the GTM to see if there are faces at each end to
close the volume. The algorithm in figure 27 determines four-sided faces with or withĆ
out degeneracies.
BuildAllFourEdgeFaces()
For each vertex
BuildFourEdgeFaces(vertex)
VisitAllEdgesAdjacent(vertex)
Build FourEdgeFaces(vertex)
For each Edge adjacent to the vertex
If the Edge has not been visited
Increment the number of edges
Visit the edge
Get the Opposite vertex
If a cycle of four edges is formed
If UniqueFace(Cycle Of edges)
Create a new face
else
If the number of edges < 4
BuildFourEdgeFaces(Opposite vertex)
Decrement the number of edges in the cycle
Remove the visit from the edge
Figure 27. 2D block detection algorithm.
37
Theanalysisofthealgorithminfigure27isstraightforwardsincethenumber
of vertices is always less than two times the number of edges. Also, checking face
uniquenessonlyoccurswhenavalidcycleisdetected. AftereachsetofcyclesisdeterĆ
mined from a vertex, all of the vertex's adjacent edges are removed from the graph.
Thisguaranteesthatallcyclesadjacenttothecurrentvertexarenottraversedagain.
Thereforetheexpectedrunningtimecanbeexpressedas
C1(Θ(VadjE))+ C2Θ(EadjF)
wherethenumberofadjacentedgestoavertexis
Θ(VadjE)=Σ |Adj[E]|=Θ(Ε)
andthenumberofadjacentfacestoanedgeis
Θ(EadjF)=Σ |Adj[F]|=Θ(F)
therebysimplifyingtheexpressionfortheoriginalexpectedrunningtimeto:
C1Θ(Ε) + C2Θ(F).
The constants associated with Θ(Ε) are much larger than the constants
associatedwithΘ(F) becauseoftheamountofworkindeterminingacycle. IfweasĆ
sumethattheC2Θ(F) doesnotsignificantlyfigureintothecalculationofthetruerun
time,itmatchestheexpectedrunningtimeoftherecursivedepthfirstsearchin(Aho,
HopcroftandUllman1974). Theactualrunningtimesinfigure28supportthetheory
thatthenumberoffaceshasnoeffectontheorderofthealgorithm.
Actual running times were computed using a Silicon Graphics R4000 Indigo.
Eachmodelwaschosenforitstopologicaluniqueness. Figure28andtable5showthat
a linear expansion of expected run time matches the actual run times. It should be
notedthatapproximately94%oftheactualrunningtimeintheblockdetectionalgoĆ
rithmisspentdeterminingright-handednessofindividualblocks.
38
0
10
20
30
40
50
60
70
Seconds
Number of edges
100 200 300 400 500 600 700
Figure 28. Linear progression of actual run times.
Table 5. Actual run times and number of topology elements.
Seconds Vertices Edges Faces
7 48 104 80
15 94 204 156
30 161 363 273
42 220 508 415
61 292 676 576
Unfortunately, there are topological conditions that create unwanted faces and
blocks. Detecting certain classes of surfaces that are inconsistent topologically (such
as more than one face that share overlapping edges), are highlighted for the user to post
process manually. Geometric checks within the detection algorithms are time consumĆ
ing and do not correctly pick the correct surfaces to save. The geometric complexity
of a blocking topology will usually produce unwanted faces and blocks. However, it is
much faster for a user to post-process an automatically detected blocking system than
to build it from scratch.
The automated block detection algorithm is an efficient tool for producing mulĆ
ti-block structured grids for very large topologies. The automated block detection alĆ
gorithm replaces many hours of human effort with a single push of a button and a few
seconds (or minutes for very large grids) of machine time. However, the user must still
39
build the block geometry and post process the resulting blocks and faces for geometric
errors. Keep in mind this is an automatic block detection algorithm, not an automated
blocking algorithm. Automated blocking is an open research issue and not within the
scope of our work.
Types of structured grids
Point matching and face matching determine how structured grids share inĆ
formation across topology boundaries. Point matching determines whether or not grid
points must align exactly on a shared geometry, and face matching determines whether
or not adjacent grids must align along an entire geometry. The GTM data structure
supports full-face matching, point matching, and non-point matching.
Propagating grid information
Taking advantage of four-sided surfaces allows for quick propagation of grid
point dimensions and distributions in a computational direction. For structured grid
generation, the number of points on an edge must be consistent in a computational
plane. A propagation function allows the user to specify points on a single edge, and
the system automatically propagates this dimension to all other edges in the plane.
Propagation can be done manually in other applications as well. The propagation funcĆ
tion determines opposite sides of faces and blocks by a simple array index calculation,
not a search of edges on that surface, or a complex set of coded fields.
Grid point information storage
A dimension determines the number of grid points on a topology element. An
edge has a single dimension, a face has two dimensions, and a block or shell has three
dimensions. The user may specify grid dimensions for each edge in a geometry configuĆ
ration. The edges are then used to compute face, block, and shell dimensions. These
dimensions are stored in the edge-use, face-use, block, and shell elements, respecĆ
40
tively. When the structured grid generation process begins, all dimensions are comĆ
puted to determine the total number of grid points in the configuration. This allows
dynamic memory allocation for all grid points in the configuration. A minimum index
and a maximum index (in the array) are associated with each edge-use, face-use, and
block. A single index into the global array is associated with each vertex. Once this is
done, each edge and face is gridded, and their values placed into the array in the index
locations specified by the vertex-uses, edge-uses, and face-uses. Since multiple uses
of a face, edge or vertex can have the same indices, the requirement of no grid point
duplication is met. Unstructured grid generation is similar, but the total number of grid
points cannot be computed prior to generation. Currently, unstructured grid generaĆ
tion utilizes a fixed-dimensioned array to store grid points.
A grid point distribution can be specified by applying a distribution type and a
point spacing at the beginning, end, or both ends of an edge. Distribution types currentĆ
ly supported include hyperbolic tangent, hyperbolic sine, exponential or uniform, and
are stored on the edge-use. Point spacings can be parametric or physical values and
are stored in the vertex-use elements.
When the edge grid is computed, the dimension and distribution are used in
conjunction with the edge's geometry to define the grid point locations in both paraĆ
metric and physical space. Parametric values for each face that share the edge are comĆ
puted for surface grid generation. Only one set of parametric values is used to compute
the physical XYZ values. As noted before, this is a serious problem if the geometries
are not close along the shared edge.
Summary
It has been determined that the most important features needed for structured
grid generation (non-manifold geometry and explicit access of adjacent elements) are
contained in the GTM data structure. The addition of explicit four-sided surfaces and
41
six-sided blocks allow quick construction and efficient traversal of multi-block
structured grids. The ability to model degenerate geometry allows for all types of
structured grid block topologies. The GTM data structures explicitly define adjacency
between 2D and 3D geometry and structured grid entities, abstracts the grid from the
geometry, and eliminates duplicated grid points
42
CHAPTER VI
UNSTRUCTURED GRID GENERATION USING THE GTM
In order to compute an unstructured grid, the geometry must be in a topological
form that is expected by the grid generator. For 2D unstructured grids, a set of loops
(a cycle of non-overlapping topologically adjacent curves) define the boundaries of
the domain. Loops are automatically detected topologically without regard for geoĆ
metric inconsistencies (intersections within loops or intersection with other loops). A
loop self-intersection routine has been implemented to help identify regions where
edge grids intersect. Multiple loop intersections are identified by the grid generator.
Edge grid generation
Specifying grid control attributes on an edge grid is much easier than structured
grid generation. A user simply selects the end vertices of all edges and specifies some
global spacing. All of the edge grids are computed using a 1D advancing front algoĆ
rithm. The user then specifies coarser or finer point spacings as needed on any point
(end or interior) on each edge. Additional control features include growth factors for
both edge and surface algorithms that affect the growth of spacings from the boundĆ
aries.
An important contribution of the GTM to setting point spacings is the ability to
match a point spacing to the shortest length curve adjacent to a vertex. For example,
on a large configuration where hundreds of surfaces are used to represent the model,
there are certain to be regions where very short curves share the same vertex as very
long curves. If, as shown in figure 29, a global spacing is specified that is much larger
than
43
the shortest curve, poor quality triangles may be created in the surrounding region.
An automatic solution to this problem is to check surrounding curves to determine if
the point spacing is larger than the shortest curve. If a shorter curve is found, as
shown in figure 29, then the point spacing is automatically matched to the arc-length
of the curve. This eliminates small angled elements (caused by point spacing differĆ
ences on curves) around the vertex. An undesirable side effect of matching point
spacings may be that too many points are created in a region as shown in figure 30.
The user must decide between increasing the number of points in a region or creating
small angled elements.
Figure 29. A point spacing that is larger than the adjacent curves.
df1
Figure 30. Effect of matching point spacings.
dfm
Vector normalization
A 3D unstructured grid needs a topologically valid shell of non-overlapping,
non-intersecting adjacent surfaces that form a complete solid. The surfaces in the
shell must have all have normal vectors that either point into the domain or out of the
domain. The algorithm, as illustrated in figure 31, to compute these consistent normal
44
vectors starts with an arbitrary surface as a starting point, then normalizes all other
adjacent surfaces normal vectors to have the same direction.
ÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇÇÇÇ
ÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇÇÇÇ
Figure 31. Vector normalization.
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁÁÁ
ÉÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉÉ
ÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇÇÇÇ
ÇÇÇÇÇÇ
ÇÇÇÇÇÇÇÇÇÇÇÇ
ÁÁÁÁÁ
ÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁ
ÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉÉÉÉÉÉ
ÉÉÉÉÉ
Normalize
Trimmed surfaces
Three dimensional unstructured grids utilize trimmed surface topologies. A
trimmed surface has an arbitrary number of holes or bounding edges. The trimming
curves are parametric curves of the parent surface. Where trimmed surfaces are adjaĆ
cent to other trimmed surfaces, the parent surfaces must have their own parametric
definition associated with the shared edge. This is accomplished by associating the
parametric definition of a curve with the use of an edge as illustrated in figure 32.
Multi-volume unstructured grids
At least one valid shell must exist to create a volume grid. Multiple valid shells
may exist when computing a multi-material problem. Multiple shells allow the user
to specify different boundary conditions to each shell and shell boundary. Automated
shell detection has not been implemented, since it is assumed that only a single volume
grid will be generated. Multiple shell detection needs to be implemented before mulĆ
ti-volume unstructured grids can be automatically generated.
45
F2
F1
F3fu
1
fu2fu3
eu1
eu2eu3
F1
F2F3
Figure 32. Topology of three faces sharing an edge.
E
F Face
E Edge
fu face-use
eu edge-use
PC Parametric
Curve
E
PC3 PC2
PC1
Summary
It has been determined that the most important features needed for
unstructured grid generation (non-manifold geometry and explicit access of adjacent
elements) are contained in the GTM data structure. We have shown that the GTM data
structure efficiently supports 2D and 3D advancing front local reconnection (AFLR)
unstructured grids (Marcum and Weatherill 1994). The GTM data structure directly
supports the method of incrementally building edge grids, surface grids and volume
grids, and has constructed high quality unstructured computational fluid dynamics
(CFD) grids. The GTM models non-manifold topologies with degenerate geometry,
explicitly defines adjacency between 2D and 3D geometry and grid entities, abstracts
the grid from the geometry, eliminates duplicated grid points and provides surface
direction normalization for unstructured grid generation.
46
CHAPTER VII
RESULTS
A variety of complex geometric configurations have been successfully gridded
using both structured and unstructured grid generators based on the GTM data
structures. Aerospace, mechanical, automotive, nautical and oceanographic
disciplines make up the majority of geometries gridded. Different configurations are
presented to show that the GTM data structures are able to model extremely complex
CFD and mechanical configurations. Each configuration was chosen to represent a
class of problems that the GTM data structures could model.
All of the configurations presented in this chapter have been gridded using
either the SolidMesh unstructured grid generator or GUM-B the general
unstructured multi-block structured grid generator. Every configuration has a
representative picture of the grid and a description of the geometry. There is no
particular topological uniqueness to any of the configurations and there is no way to
quantify what is geometrically complex and what is not. These configurations are
presented in order to show the generality of the GTM data structures as well as the high
quality grids that have been built using the data structures.
SolidMesh
SolidMesh is an unstructured grid generation system that uses the GTM data
structures. SolidMesh incorporates a small CAD system for surface repair, and both
2D and 3D unstructured surface grid generators. Over sixty 2D and 3D unstructured
grids have been computed using SolidMesh to both test and prove the feasibility of the
GTM data structures.
47
A large number of grids have been generated by the Boeing Aerospace CFD
group. SolidMesh grids have played a major role in the Delta II and Delta III satellite
launch vehicle programs. Darren Fricker, a lead engineer for the Boeing Aerospace
CFD group says:
The SolidMesh software package is a very powerful and
user-friendly system for the generation of unstructured grids for
computational field simulation. Many software systems either sacrifice
capabilities to provide a user-friendly environment or sacrifice
user-friendly features to provide a generalized, powerful system. The
developers of SolidMesh have created a user-friendly environment
without sacrificing the important capabilities desired in a generalized
grid generation system. Every aspect of the unstructured grid generation
process can be performed efficiently within the SolidMesh system. Also,
for occasions where the geometry was generated externally to
SolidMesh, SolidMesh has the capability to read a variety of file formats
which define the surface geometry, such as IGES and PLOT3D formats.
The CAD repair tools are relatively easy to use for correcting
inconsistencies and flaws in externally-generated geometry data sets
and the CAD utilities provide the capability to create trimmed surfaces
from intersecting surface patches. The system provides the flexibility
required to tackle most CFD problems.
Additionally, by incorporating the Advancing Front Local
Reconnection (AFLR) unstructured grid generation algorithms for the
mesh generation, extremely high-quality grids are created very rapidly.
Large surface grids (approximately 100,000 triangles) are generated in
a matter of seconds, up to an order of magnitude faster than some other
systems. The speed of the surface mesh generation combined with the
"toggling" features of the system enables the user to optimize the surface
grid rapidly and interactively.
Darren Fricker, Boeing Aerospace (Fricker 1997)
Each of the unstructured configurations presented below detail the number of
curves and surfaces that make up the geometry, the number of triangles, points and
tetrahedra in the volume grid and pictures of the surface and volume grid maximum
angle quality measure statistical bar charts. Some of the configurations show a
representative solution to show that the grids have been used for production CFD.
The grid quality measures presented with the configurations show the
maximum angles in surface triangles and tetrahedra. An acceptable isotropic
unstructured surface grid for CFD calculations has a maximum angle of 120 degrees
or less with a standard deviation of 7 degrees or less. Most triangles (99.5%) will have
48
anglesbetween30and90degrees. Anacceptableisotropicunstructuredvolumegrid
hasamaximumangleof160degreesorlesswithastandarddeviationof17degreesor
less. Mosttetrahedra(99.5%)willhavemaximumanglesbetween30and120degrees.
Theminimumanglesinsurfaceandvolumegridsareusuallydictatedbythegeometry
and cannot be changed by grid point placement (Marcum 1997). All of the
configurationsbelowhavegridsthatmeetthesecriteria. Themaximumanglequality
measurestatisticalbarchartsarepresentedtobackupthisclaim.
Table6presentsthegridgenerationresultsfortheunstructuredconfigurations.
The numbers of curves and surfaces determines the geometry size. The number of
points and tetrahedra (tets.) the grid size. The minimun and maximum tetrahedra
angles indicate the grid quality. The time indicates the number of hours (or weeks)
spentpreparingthegeometryandcomputingthegrid.
Table6. Unstructuredgridgenerationresults.
Configuration VolumeGridResults
Curves SurĆ
faces
Points Tets. Min.
Angle
Max.
Angle
Time
Orbiter 629 215 150,206 1,673,755 1.917 155.303 33hrs.
DeltaII 399 172 774,972 4,341,558 8.571 156.832 -
Fighter 71 33 64,924 349,018 6.514 153.843 16hrs.
Aim9x
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
96
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
32
ÄÄÄÄÄ
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ
153,269
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
828,231
ÄÄÄÄÄ
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ
12.677
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
158.845
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
8hrs.
Turbofan
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄ
96
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄ
52
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄ
ÄÄÄÄÄ
253,987
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄ
1,367,140
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄ
ÄÄÄÄÄ
11.690
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄ
159.386
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄ
16hrs.
Combustor
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ746
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ139
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄ85,476
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ431,406
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄ5.665
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ156.561
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ48hrs.
Submarine
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ110
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ48
ÄÄÄÄÄ
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ215,999
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ1,211,577
ÄÄÄÄÄ
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ14.151
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ152.798
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ6hrs.
Destroyer
ÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄ98
ÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄ66
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ154,438
ÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄ787,633
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ8.472
ÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄ156.142
ÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄ6hrs.
Corvette
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
359
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
103
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ
61,103
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
288,720
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ
10.900
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
159.420
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
48hrs.
Manifold
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
148
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
80
ÄÄÄÄÄ
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ
78,667
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
394,805
ÄÄÄÄÄ
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ
12.986
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
152.992
ÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
14hrs.
Explorer
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄ665
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄ340
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄ
ÄÄÄÄÄ159,037
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄ841,888
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄ
ÄÄÄÄÄ7.035
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄ155.807
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ
ÄÄÄÄ4wks.
Pump
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ1,932
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ336
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄ30,908
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ123,470
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄ1.179
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ155.297
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ2wks.
Crankshaft
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ308
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ147
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄ8,008
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ31,729
ÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄ10.430
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ149.074
ÄÄÄÄ
ÄÄÄÄÄÄÄÄ
ÄÄÄÄ16hrs.
49
The NASA space shuttle orbiter grid and solution were computed on a
geometry contributed the the ERC by NASA Johnson's CFD group (Gomez 1995).
The geometry, grid and solution shown in figure 33 were prepared internally using
SolidMesh and FUN3D (Anderson 1994). The initial topology repair and grid
generation took approximately 33 hours. The original geometry was split from a full
3D model consisting of 371 surfaces with no curves to a symmetrical geometry
consisting of 215 surfaces and 629 curves. The volume grid consists of 150,206 surface
triangles, 319,319 points and 1,673,755 tetrahedra.
Figure 33 NASA space shuttle grid, solution and quality measures.
50
The Boeing Delta II satellite launch vehicle is built under the Medium
Expendable Launch Vehicle Services (MELVS) contract for NASA. The geometry,
grid and solution shown in figure 34 were prepared by Darren Fricker at the Boeing
using SolidMesh and MSFENS (Fricker 1996). The geometry consists of 172 surfaces
and 399 trimming curves. The volume grid consists of 184,978 surface triangles,
774,972 points and 4,341,558 tetrahedra.
Figure 34. Boeing Delta II grid, solution and quality measures.
51
The Boeing experimental fighter configuration has no formal classification and
was used a proof of concept test for grid generation tools (Gatzke 1993). The initial
topology repair and grid generation took approximately 16 hours. The geometry, grid
and solution shown in figure 35 were prepared internally using SolidMesh and
MSFENS. The fighter geometry consists of 33 surfaces and 71 trimming curves. The
volume grid consists of 24,322 surface triangles, 64,924 points and 349,018 tetrahedra.
Figure 35. McDonnell Douglas experimental fighterr grid, solution and
quality measures.
52
The aim9x geometry, grid and solution shown in figure 36 were prepared
internally using SolidMesh and FUN3D (Anderson 1994). The initial topology repair
and grid generation took approximately 8 hours. The geometry consists of 52 surfaces
and 96 trimming curves. The volume grid consists of 55,028 surface triangles, 153,269
points and 828,231 tetrahedra.
Figure 36. Aim9x sidewinder missile grid, solution and quality measures.
53
The turbofan geometry and grid shown in figure 37 were prepared internally
using SolidMesh (Janus 1996). The initial topology repair and grid generation took
approximately 16 hours. The geometry consists of 52 surfaces and 96 trimming curves.
The volume grid consists of 98,950 surface triangles, 253,987 points and 1,367,140
tetrahedra.
Figure 37. NASA 1.15 pressure ratio fan stage grid and quality measures.
54
The grid shown in figure 38 is a 1/18 symmetric section of a United Technologies
jet engine combustor. The geometry and grid were prepared internally using
SolidMesh and took approximately 48 hours (Dannenhoffer 1992). The geometry
consists of 139 surfaces and 746 trimming curves. The volume grid consists of 52,476
surface triangles, 85,756 points and 431,406 tetrahedra.
Figure 38. United Technologies jet engine combustor grid and quality measures.
55
The grid shown in figure 39 is a generic submarine for grid generation and flow
solver proof of concept testing (Whitfield 1997). The geometry, grid and solution were
prepared internally using SolidMesh and FUN3D (Anderson 1994). The initial
topology repair and grid generation took approximately 6 hours. The geometry
consists of 48 surfaces and 110 trimming curves. The volume grid consists of 47,428
surface triangles, 215,999 points and 1,211,577 tetrahedra.
Figure 39. Generic submarine grid, solution and quality measures.
56
The grid shown in figure 40 is a generic destroyer for grid generator proof of
concept testing (Whitfield 1997). The geometry and grid were prepared internally
using SolidMesh. The initial topology repair and grid generation took approximately
6 hours. The geometry consists of 66 surfaces and 98 trimming curves. The volume grid
consists of 87,514 surface triangles, 154,438 points and 787,633 tetrahedra.
Figure 40. Generic ship hull and propeller grid and quality measures.
57
The General Motors Corvette geometry and grid shown in figure 41 were
prepared internally using SolidMesh (Johnson 1994). The initial topology repair and
grid generation took approximately 48 hours. The geometry consists of 103 surfaces
and 359 trimming curves. The volume grid consists of 50,054 surface triangles, 61,103
points and 288,720 tetrahedra.
Figure 41. General Motors Corvette grid and quality measures.
58
The General Motors exhaust manifold geometry and grid shown in figure 42
were prepared internally using SolidMesh (Johnson 1994). The initial topology repair
and grid generation took approximately 14 hours. The geometry consists of 80 surfaces
and 148 trimming curves. The volume grid consists of 48,282 surface triangles, 78,667
points and 394,805 tetrahedra.
Figure 42. General Motors exhaust manifold grid and quality measures.
59
The Ford Explorer geometry and grid shown in figure 43 were prepared
internally using SolidMesh (Gilda 1994). The initial topology repair and grid
generation took approximately 1 month. The geometry consists of 340 surfaces and 665
trimming curves. The volume grid consists of 69,744 surface triangles, 159,037 points
and 841,888 tetrahedra.
Figure 43. Ford Explorer grid and quality measures.
60
The General Motors crankshaft geometry and grid shown in figure 44 were
prepared internally using SolidMesh (Johnson 1994). The initial topology repair and
grid generation took approximately 16 hours. The geometry consists of 147 surfaces
and 308 trimming curves. The volume grid consists of 9,980 surface triangles, 8,008
points and 31,729 tetrahedra.
Figure 44. General Motors generic crankshaft grid and quality measures.
61
The General Motors pump housing geometry and grid shown in figure 45 were
prepared internally using SolidMesh (Johnson 1994). The initial topology repair and
grid generation took approximately 80 hours. The geometry consists of 336 surfaces
and 1,932 trimming curves. The volume grid consists of 40,534 surface triangles, 30,908
points and 123,470 tetrahedra.
Figure 45. General Motors generic pump housing grid and quality measures.
62
GUM–B
GUM-B is a structured grid generation system that uses the GTM data
structures. GUM-B incorporates a small CAD system for surface repair, and a 3D
structured surface grid generator. Many structured grids have been computed to both
test and prove the feasibility of the GTM data structures.
Mike Remotigue, the main developer for the GUM-B system says:
The topology data structure, developed by Adam Gaither, has
helped evolve structured grid generation towards automation.
Automatic structured grid generation has been accomplished by the
abstraction of the geometry and the associated orientation and by the
explicit knowledge of adjacent elements. The abstraction and the
adjacency unburdens the user from keeping track of this information
when decomposing the geometric domain. The user ultimately needs to
concentrate their efforts on creating a valid decomposition of the
complex geometry. Point propagation, face-to-face or
block-to-block connectivities, and grid regeneration are all
determined through the topology.
Further benefit of the topology data structure allowed for
automatic grid alignment both in visualization and overall block
orientation. Through the edges/faces, the adjoining faces/blocks
orientation are known. This allows information of a block to pass
through the face into an adjoining block, such as grid plane sweeping or
the orientation of a block.
Mike Remotigue (Remotigue 1997)
A substantial number of GUM-B users have been established at NASA
Johnson, Penn State University's Advanced Research Lab (ARL), Eglin Air Force base
and the CFD Lab here in the ERC. Two configurations were selected as representitive
types of grids that can be computed using GUM-B: The MIT notional geometry and
the tip vertex geometries. They were selected to show complex topological blocking
schemes and a well convereged solutions.
The MIT notional geometry, grid and solution shown in figure 47 were prepared
internally using GUM-B (Whitfield 1997) and UNCLE (Sheng et al. 1997). The initial
topology repair and grid generation took approximately 2 weeks. The geometry
consists of 120 surfaces and 26 blocks. The volume grid consists of 500,000 points.
63
Table 7. Structured grid generation results.
Configuration Volume Grid Results
Surfaces Blocks Points Time
MIT Notional 120 26 500,000 2 weeks
Tip Vortex 100 8 3,000,000 24 hours
Figure 46. MIT notional geometry grid and solution.
The tip vortex geometry, grid and solution in figure 48 were prepared internally
using GUM-B (Whitfield 1997) and UNCLE (Sheng et al. 1996). The initial topology
repair and grid generation took approximately 24 hours. The geometry consists of 100
surfaces and 8 blocks. The volume grid consists of 3,000,000 poiints.
64
Figure 47. Tip vortex grid and solution.
65
CHAPTER VIII
CONCLUSION
It has been determined that the most important features needed for grid
generation (non-manifold geometry and explicit access of adjacent elements) are
contained in the RENM data structure. We have modified the original RENM data
structure to produce the GTM data structure. The addition of explicit four-sided
surfaces and six-sided blocks to the GTM data structure allows for quick construction
and efficient traversal of multi-block structured grids. Other modifications to the
GTM data structure include the elimination of the loop-use entity as well as the ability
to model degenerate geometry conditions. The loop-use entity was eliminated since
both the loop and loop-use were redundant for grid generation purposes. Modelling
degenerate geometry conditions is not covered by the RENM data structure but was
added to the GTM data structure.
We have shown that the GTM data structure efficiently supports 2D and 3D
advancing front local reconnection (AFLR) unstructured grids (Marcum and
Weatherill 1994) as well as 3D transfinite interpolation, elliptic and hyperbolic
structured grids (Thompson 1992). The GTM data structure directly supports the
method of incrementally building edge grids, surface grids and volume grids, and has
constructed high quality computational fluid dynamics (CFD) grids. The GTM models
non-manifold topologies, explicitly defines adjacency between 2D and 3D geometry
and grid entities, abstracts the grid from the geometry, eliminates duplicated grid
points, provides explicit four sided surfaces and six-sided blocks and provides surface
direction normalization for unstructured grid generation.
A BOUNDARY REPRESENTATION SOLID MODELLING DATA STRUCTURE FOR GENERAL NUMERICAL GRID GENERATION
A BOUNDARY REPRESENTATION SOLID MODELLING DATA STRUCTURE FOR GENERAL NUMERICAL GRID GENERATION
A BOUNDARY REPRESENTATION SOLID MODELLING DATA STRUCTURE FOR GENERAL NUMERICAL GRID GENERATION
A BOUNDARY REPRESENTATION SOLID MODELLING DATA STRUCTURE FOR GENERAL NUMERICAL GRID GENERATION
A BOUNDARY REPRESENTATION SOLID MODELLING DATA STRUCTURE FOR GENERAL NUMERICAL GRID GENERATION
A BOUNDARY REPRESENTATION SOLID MODELLING DATA STRUCTURE FOR GENERAL NUMERICAL GRID GENERATION

More Related Content

What's hot

Reconstruction of Surfaces from Three-Dimensional Unorganized Point Sets / Ro...
Reconstruction of Surfaces from Three-Dimensional Unorganized Point Sets / Ro...Reconstruction of Surfaces from Three-Dimensional Unorganized Point Sets / Ro...
Reconstruction of Surfaces from Three-Dimensional Unorganized Point Sets / Ro...Robert Mencl
 
Error correcting codes and cryptology
Error correcting codes and cryptologyError correcting codes and cryptology
Error correcting codes and cryptologyRosemberth Rodriguez
 
spss Amos 20 user_guide
spss Amos 20 user_guidespss Amos 20 user_guide
spss Amos 20 user_guideSaroj Suwal
 
The-effct-of-load-on-tyre-temperature-and-contact-patch
The-effct-of-load-on-tyre-temperature-and-contact-patchThe-effct-of-load-on-tyre-temperature-and-contact-patch
The-effct-of-load-on-tyre-temperature-and-contact-patchMichael McManus
 
Bridge project
Bridge projectBridge project
Bridge projectDuy Huynh
 
Modern introduction to_grid-generation
Modern introduction to_grid-generationModern introduction to_grid-generation
Modern introduction to_grid-generationRohit Bapat
 
Efficiency Optimization of Realtime GPU Raytracing in Modeling of Car2Car Com...
Efficiency Optimization of Realtime GPU Raytracing in Modeling of Car2Car Com...Efficiency Optimization of Realtime GPU Raytracing in Modeling of Car2Car Com...
Efficiency Optimization of Realtime GPU Raytracing in Modeling of Car2Car Com...Alexander Zhdanov
 
Discrete Mathematics - Mathematics For Computer Science
Discrete Mathematics -  Mathematics For Computer ScienceDiscrete Mathematics -  Mathematics For Computer Science
Discrete Mathematics - Mathematics For Computer ScienceRam Sagar Mourya
 
[Sapienza] Development of the Flight Dynamics Model of a Flying Wing Aircraft
[Sapienza] Development of the Flight Dynamics Model of a Flying Wing Aircraft[Sapienza] Development of the Flight Dynamics Model of a Flying Wing Aircraft
[Sapienza] Development of the Flight Dynamics Model of a Flying Wing AircraftJacopo Tonti
 
Lecture notes on hybrid systems
Lecture notes on hybrid systemsLecture notes on hybrid systems
Lecture notes on hybrid systemsAOERA
 
Coding interview preparation
Coding interview preparationCoding interview preparation
Coding interview preparationSrinevethaAR
 
07 jpnt fzk_f4_module1
07 jpnt fzk_f4_module107 jpnt fzk_f4_module1
07 jpnt fzk_f4_module1kogiess871
 
Jual shear connector 081281000409
Jual shear connector 081281000409Jual shear connector 081281000409
Jual shear connector 081281000409shear connector
 

What's hot (20)

Reconstruction of Surfaces from Three-Dimensional Unorganized Point Sets / Ro...
Reconstruction of Surfaces from Three-Dimensional Unorganized Point Sets / Ro...Reconstruction of Surfaces from Three-Dimensional Unorganized Point Sets / Ro...
Reconstruction of Surfaces from Three-Dimensional Unorganized Point Sets / Ro...
 
Error correcting codes and cryptology
Error correcting codes and cryptologyError correcting codes and cryptology
Error correcting codes and cryptology
 
spss Amos 20 user_guide
spss Amos 20 user_guidespss Amos 20 user_guide
spss Amos 20 user_guide
 
The-effct-of-load-on-tyre-temperature-and-contact-patch
The-effct-of-load-on-tyre-temperature-and-contact-patchThe-effct-of-load-on-tyre-temperature-and-contact-patch
The-effct-of-load-on-tyre-temperature-and-contact-patch
 
Master Thesis
Master ThesisMaster Thesis
Master Thesis
 
Bridge project
Bridge projectBridge project
Bridge project
 
MSC-2013-12
MSC-2013-12MSC-2013-12
MSC-2013-12
 
Final Report_491
Final Report_491Final Report_491
Final Report_491
 
Modern introduction to_grid-generation
Modern introduction to_grid-generationModern introduction to_grid-generation
Modern introduction to_grid-generation
 
Efficiency Optimization of Realtime GPU Raytracing in Modeling of Car2Car Com...
Efficiency Optimization of Realtime GPU Raytracing in Modeling of Car2Car Com...Efficiency Optimization of Realtime GPU Raytracing in Modeling of Car2Car Com...
Efficiency Optimization of Realtime GPU Raytracing in Modeling of Car2Car Com...
 
Discrete Mathematics - Mathematics For Computer Science
Discrete Mathematics -  Mathematics For Computer ScienceDiscrete Mathematics -  Mathematics For Computer Science
Discrete Mathematics - Mathematics For Computer Science
 
diplomarbeit
diplomarbeitdiplomarbeit
diplomarbeit
 
[Sapienza] Development of the Flight Dynamics Model of a Flying Wing Aircraft
[Sapienza] Development of the Flight Dynamics Model of a Flying Wing Aircraft[Sapienza] Development of the Flight Dynamics Model of a Flying Wing Aircraft
[Sapienza] Development of the Flight Dynamics Model of a Flying Wing Aircraft
 
Lecture notes on hybrid systems
Lecture notes on hybrid systemsLecture notes on hybrid systems
Lecture notes on hybrid systems
 
Thats How We C
Thats How We CThats How We C
Thats How We C
 
Coding interview preparation
Coding interview preparationCoding interview preparation
Coding interview preparation
 
07 jpnt fzk_f4_module1
07 jpnt fzk_f4_module107 jpnt fzk_f4_module1
07 jpnt fzk_f4_module1
 
General physics
General physicsGeneral physics
General physics
 
Jual shear connector 081281000409
Jual shear connector 081281000409Jual shear connector 081281000409
Jual shear connector 081281000409
 
Rlecturenotes
RlecturenotesRlecturenotes
Rlecturenotes
 

Viewers also liked

11 X1 T03 05 regions in the plane (2010)
11 X1 T03 05 regions in the plane (2010)11 X1 T03 05 regions in the plane (2010)
11 X1 T03 05 regions in the plane (2010)Nigel Simmons
 
Pp ts triple-layer smart grid business model- a comparison between sub-sahara...
Pp ts triple-layer smart grid business model- a comparison between sub-sahara...Pp ts triple-layer smart grid business model- a comparison between sub-sahara...
Pp ts triple-layer smart grid business model- a comparison between sub-sahara...Zheng Ma
 
Solid modeling
Solid modelingSolid modeling
Solid modelingKRvEsL
 
Inroduction to grid computing by gargi shankar verma
Inroduction to grid computing by gargi shankar vermaInroduction to grid computing by gargi shankar verma
Inroduction to grid computing by gargi shankar vermagargishankar1981
 
Grid computing Seminar PPT
Grid computing Seminar PPTGrid computing Seminar PPT
Grid computing Seminar PPTUpender Upr
 

Viewers also liked (6)

11 X1 T03 05 regions in the plane (2010)
11 X1 T03 05 regions in the plane (2010)11 X1 T03 05 regions in the plane (2010)
11 X1 T03 05 regions in the plane (2010)
 
Pp ts triple-layer smart grid business model- a comparison between sub-sahara...
Pp ts triple-layer smart grid business model- a comparison between sub-sahara...Pp ts triple-layer smart grid business model- a comparison between sub-sahara...
Pp ts triple-layer smart grid business model- a comparison between sub-sahara...
 
Grid computing
Grid computingGrid computing
Grid computing
 
Solid modeling
Solid modelingSolid modeling
Solid modeling
 
Inroduction to grid computing by gargi shankar verma
Inroduction to grid computing by gargi shankar vermaInroduction to grid computing by gargi shankar verma
Inroduction to grid computing by gargi shankar verma
 
Grid computing Seminar PPT
Grid computing Seminar PPTGrid computing Seminar PPT
Grid computing Seminar PPT
 

Similar to A BOUNDARY REPRESENTATION SOLID MODELLING DATA STRUCTURE FOR GENERAL NUMERICAL GRID GENERATION

Virtual Environments as Driving Schools for Deep Learning Vision-Based Sensor...
Virtual Environments as Driving Schools for Deep Learning Vision-Based Sensor...Virtual Environments as Driving Schools for Deep Learning Vision-Based Sensor...
Virtual Environments as Driving Schools for Deep Learning Vision-Based Sensor...Artur Filipowicz
 
Math for programmers
Math for programmersMath for programmers
Math for programmersmustafa sarac
 
Towards Digital Twin of a Flexible manufacturing system with AGV
Towards Digital Twin of a Flexible manufacturing system with AGV Towards Digital Twin of a Flexible manufacturing system with AGV
Towards Digital Twin of a Flexible manufacturing system with AGV YasmineBelHajsalah
 
Efficient Model-based 3D Tracking by Using Direct Image Registration
Efficient Model-based 3D Tracking by Using Direct Image RegistrationEfficient Model-based 3D Tracking by Using Direct Image Registration
Efficient Model-based 3D Tracking by Using Direct Image RegistrationEnrique Muñoz Corral
 
Designing Countermeasures For Tomorrows Threats : Documentation
Designing Countermeasures For Tomorrows Threats : DocumentationDesigning Countermeasures For Tomorrows Threats : Documentation
Designing Countermeasures For Tomorrows Threats : DocumentationDarwish Ahmad
 
Guide for the design of crane supporting steel structures
Guide for the design of crane supporting steel structuresGuide for the design of crane supporting steel structures
Guide for the design of crane supporting steel structuresTimóteo Rocha
 
Thesis - Umberto Morelli (83190)
Thesis - Umberto Morelli (83190)Thesis - Umberto Morelli (83190)
Thesis - Umberto Morelli (83190)Umberto Morelli
 
Gdfs sg246374
Gdfs sg246374Gdfs sg246374
Gdfs sg246374Accenture
 
Mac crimmon r.a. crane-supporting steel structures- design guide (2005)
Mac crimmon r.a.   crane-supporting steel structures- design guide (2005)Mac crimmon r.a.   crane-supporting steel structures- design guide (2005)
Mac crimmon r.a. crane-supporting steel structures- design guide (2005)Kritam Maharjan
 
Machine learning solutions for transportation networks
Machine learning solutions for transportation networksMachine learning solutions for transportation networks
Machine learning solutions for transportation networksbutest
 
Machine learning solutions for transportation networks
Machine learning solutions for transportation networksMachine learning solutions for transportation networks
Machine learning solutions for transportation networksbutest
 
nasa-safer-using-b-method
nasa-safer-using-b-methodnasa-safer-using-b-method
nasa-safer-using-b-methodSylvain Verly
 
A Study of Traffic Management Detection Methods & Tools
A Study of Traffic Management Detection Methods & ToolsA Study of Traffic Management Detection Methods & Tools
A Study of Traffic Management Detection Methods & ToolsMartin Geddes
 
AERODYNAMIC DEVELOPMENT OF THE SEGURACING F1-R01 PROTOTYPE USING CFD
AERODYNAMIC DEVELOPMENT OF THE SEGURACING F1-R01 PROTOTYPE USING CFDAERODYNAMIC DEVELOPMENT OF THE SEGURACING F1-R01 PROTOTYPE USING CFD
AERODYNAMIC DEVELOPMENT OF THE SEGURACING F1-R01 PROTOTYPE USING CFDmouhamedakremmouffouk
 

Similar to A BOUNDARY REPRESENTATION SOLID MODELLING DATA STRUCTURE FOR GENERAL NUMERICAL GRID GENERATION (20)

Virtual Environments as Driving Schools for Deep Learning Vision-Based Sensor...
Virtual Environments as Driving Schools for Deep Learning Vision-Based Sensor...Virtual Environments as Driving Schools for Deep Learning Vision-Based Sensor...
Virtual Environments as Driving Schools for Deep Learning Vision-Based Sensor...
 
Math for programmers
Math for programmersMath for programmers
Math for programmers
 
10.1.1.652.4894
10.1.1.652.489410.1.1.652.4894
10.1.1.652.4894
 
Towards Digital Twin of a Flexible manufacturing system with AGV
Towards Digital Twin of a Flexible manufacturing system with AGV Towards Digital Twin of a Flexible manufacturing system with AGV
Towards Digital Twin of a Flexible manufacturing system with AGV
 
Master_Thesis
Master_ThesisMaster_Thesis
Master_Thesis
 
Efficient Model-based 3D Tracking by Using Direct Image Registration
Efficient Model-based 3D Tracking by Using Direct Image RegistrationEfficient Model-based 3D Tracking by Using Direct Image Registration
Efficient Model-based 3D Tracking by Using Direct Image Registration
 
Designing Countermeasures For Tomorrows Threats : Documentation
Designing Countermeasures For Tomorrows Threats : DocumentationDesigning Countermeasures For Tomorrows Threats : Documentation
Designing Countermeasures For Tomorrows Threats : Documentation
 
Guide for the design of crane supporting steel structures
Guide for the design of crane supporting steel structuresGuide for the design of crane supporting steel structures
Guide for the design of crane supporting steel structures
 
Thesis - Umberto Morelli (83190)
Thesis - Umberto Morelli (83190)Thesis - Umberto Morelli (83190)
Thesis - Umberto Morelli (83190)
 
Graduation Report
Graduation ReportGraduation Report
Graduation Report
 
cdo.pdf
cdo.pdfcdo.pdf
cdo.pdf
 
Gdfs sg246374
Gdfs sg246374Gdfs sg246374
Gdfs sg246374
 
Final_report
Final_reportFinal_report
Final_report
 
Mac crimmon r.a. crane-supporting steel structures- design guide (2005)
Mac crimmon r.a.   crane-supporting steel structures- design guide (2005)Mac crimmon r.a.   crane-supporting steel structures- design guide (2005)
Mac crimmon r.a. crane-supporting steel structures- design guide (2005)
 
Machine learning solutions for transportation networks
Machine learning solutions for transportation networksMachine learning solutions for transportation networks
Machine learning solutions for transportation networks
 
Machine learning solutions for transportation networks
Machine learning solutions for transportation networksMachine learning solutions for transportation networks
Machine learning solutions for transportation networks
 
nasa-safer-using-b-method
nasa-safer-using-b-methodnasa-safer-using-b-method
nasa-safer-using-b-method
 
A Study of Traffic Management Detection Methods & Tools
A Study of Traffic Management Detection Methods & ToolsA Study of Traffic Management Detection Methods & Tools
A Study of Traffic Management Detection Methods & Tools
 
AERODYNAMIC DEVELOPMENT OF THE SEGURACING F1-R01 PROTOTYPE USING CFD
AERODYNAMIC DEVELOPMENT OF THE SEGURACING F1-R01 PROTOTYPE USING CFDAERODYNAMIC DEVELOPMENT OF THE SEGURACING F1-R01 PROTOTYPE USING CFD
AERODYNAMIC DEVELOPMENT OF THE SEGURACING F1-R01 PROTOTYPE USING CFD
 
Ivis
IvisIvis
Ivis
 

A BOUNDARY REPRESENTATION SOLID MODELLING DATA STRUCTURE FOR GENERAL NUMERICAL GRID GENERATION

  • 1. A BOUNDARY REPRESENTATION SOLID MODELLING DATA STRUCTURE FOR GENERAL NUMERICAL GRID GENERATION By Adam Gaither A Thesis Submitted to the Faculty of Mississippi State University in Partial Fulfillment of the Requirements for the Degree of Master of Science in Computer Science in the Department of Computer Science Mississippi State, Mississippi December 1997
  • 2. A BOUNDARY REPRESENTATION SOLID MODELLING DATA STRUCTURE FOR GENERAL NUMERICAL GRID GENERATION By Adam Gaither Approved: __________________________________ __________________________________ Donna S. Reese David L. Marcum Associate Professor of Professor of Mechanical Engineering Computer Science (Committee member) (Director of Thesis) __________________________________ __________________________________ Bradley D. Carter Susan M. Bridges Professor of Computer Science Computer Science Graduate (Committee member) Coordinator __________________________________ __________________________________ A. Wayne Bennett Richard D. Koshel Dean of the College of Engineering Dean of the Graduate School
  • 3. Name: Adam Gaither Date of Degree: December 12, 1997 Institution: Mississippi State University Major Field: Computer Science Major Professor: Dr. Donna S. Reese Title of Study: A BOUNDARY REPRESENTATION SOLID MODELLING DATA STRUCTURE FOR GENERAL NUMERICAL GRID GENERATION Pages in Study: 71 Candidate for Degree of Master of Science The purpose of this thesis is to develop a topology data structure that supports both structured and unstructured grid generation methods. This to- pology data structure directly supports the method of building edge grids, sur- face grids and volume grids in order to construct high quality computational fluid dynamics (CFD) grids. The minimal topological information needed for computing both structured and unstructured grids is used to determine that a non–manifold boundary–representation topology data structure must be used. A search of published data structures led to the adoption of the radial–edge non–manifold (RENM) boundary–representation data structure as the basis for our implementation. An explanation of the data structure details as well as behavior of the data structures is presented. The grid topology modelling (GTM) data structure has been implemented and is used in two different pro- duction grid generation systems, SolidMesh and GUM–B. Several examples of high quality CFD grids are presented.
  • 5. iii ACKNOWLEDGMENTS Thanks go out to all of my co–workers who have helped guide my efforts in developing the GTM data structures as well as SolidMesh: Kelly Gaither, Mike Remotigue, Brian Jean, John Whitmire, Mongomery Hughson, Kidambi Sreenivas and Dave Marcum. I would also like to thank Dr. Nigel Weatherill for his guidence and leadership through some very difficult times. It was Nigel who stood up for me when no one else would. I will always be loyal to him for that, and I hope that in my career I will be able to do the same for someone else. Adam Gaither Mississippi State University November 1997.
  • 6. iv TABLE OF CONTENTS Page DEDICATION ii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ACKNOWLEDGMENTS iii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LIST OF FIGURES vi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LIST OF TABLES ix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPTER I. INTRODUCTION 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Numerical grids 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grid quality 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The grid generation process 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Generating a three-dimensional structured grid 5. . . . . . . . . . . . . . . . . . . Generating a two-dimensional structured grid 6. . . . . . . . . . . . . . . . . . . . Generating a three-dimensional unstructured grid using the hierarchical boundary method 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . Generating a two-dimensional unstructured grid using the hierarchical boundary method 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . Generating a three-dimensional unstructured grid using the oct-tree method 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Problems with current grid generation systems 10. . . . . . . . . . . . . . . . . . . . . . . Thesis statement 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Approach for selecting a data structure design 12. . . . . . . . . . . . . . . . . . . . . . . II. THE MINIMUM TOPOLOGY INFORMATION NEEDED TO COMPUTE GENERAL NUMERICAL GRIDS 14. . . . . . . . . . . . . . . . . Geometric topological forms 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III. A SURVEY OF EXISTING PUBLIC DOMAIN SOLID MODELLING DATA STRUCTURES 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . The winged-edge manifold solid-modelling data structure 16. . . . . . . . . . . The radial-edge non-manifold solid modelling (RENM) data structure 17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sufficiency of the non-manifold topology model 20. . . . . . . . . . . . . . . . .
  • 7. v CHAPTER Page Efficiency of REMN adjacency traversals 21. . . . . . . . . . . . . . . . . . . . . . . . Commercial CAD systems 21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grid generation systems 22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary 23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV. THE GRID TOPOLOGY MODEL DATA STRUCTURE 24. . . . . . . . . . . . GTM implementation 26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gluing the geometry 26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deletion criteria for derived vertices and edges 29. . . . . . . . . . . . . . . . . . . . . . Degenerate geometry 30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Orientation 30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sufficiency of the GTM 33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Efficiency of the GTM adjacency traversals 33. . . . . . . . . . . . . . . . . . . . . . V. STRUCTURED GRID GENERATION USING THE GTM 35. . . . . . . . . . Types of structured grids 39. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Propagating grid information 39. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grid point information storage 39. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary 40. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI. UNSTRUCTURED GRID GENERATION USING THE GTM 42. . . . . . . Edge grid generation 42. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vector normalization 43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Trimmed surfaces 44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multi-volume unstructured grids 44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary 45. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VII. RESULTS 46. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SolidMesh 46. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GUM-B 62. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIII. CONCLUSION 65. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REFERENCES 68. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  • 8. vi LIST OF FIGURES Figure Page 1. Structured grid 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Untructured grid 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 2D multi-block topology 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 3D multi-block topology 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. Three steps of the grid generation process 4. . . . . . . . . . . . . . . . . . . . . 6. The three dimensional structured grid generation process 5. . . . . . . . 7. The two-dimensional structured grid generation process 7. . . . . . . . 8. The hierarchical unstructured grid generation process 8. . . . . . . . . . . 9. Point spacings and the computed point distribution 8. . . . . . . . . . . . . . 10. The hierarchical unstructured grid generation process 9. . . . . . . . . . . 11. The oct-tree unstructured grid generation process 10. . . . . . . . . . . . . 12. Winged edge data structure 17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13. RENM hierarchy and relationship of topology elements 19. . . . . . . . 14. RENM example of three shells sharing an edge 19. . . . . . . . . . . . . . . . 15. RENM example of three faces sharing an edge 20. . . . . . . . . . . . . . . . 16. GTM topology hierarchy. 25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17. GTM example of three shells sharing an edge 27. . . . . . . . . . . . . . . . . 18. GTM example of three faces sharing an edge 28. . . . . . . . . . . . . . . . . . 19. Two surfaces before and after gluing on an edge 28. . . . . . . . . . . . . . . 20. 3D point search to determine adjacency 29. . . . . . . . . . . . . . . . . . . . . . 21. Resulting topology from gluing four four-sided surfaces 29. . . . . . . .
  • 9. vii Figure Page 22. Hierarchy of degenerate geometries 31. . . . . . . . . . . . . . . . . . . . . . . . . 23. Resulting topology from gluing three four-sided surfaces to a degenerate surface 31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24. Orientations of an edge that is shared by two faces 32. . . . . . . . . . . . . 25. Curve orientations 32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26. Surface orientations 33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27. 2D block detection algorithm 36. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28. Linear progression of actual run times 38. . . . . . . . . . . . . . . . . . . . . . . 29. A point spacing that is larger than the adjacent curves 43. . . . . . . . . . 30. Effect of matching point spacings. 43. . . . . . . . . . . . . . . . . . . . . . . . . . . 31. Vector normalization 44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32. Topology of three faces sharing an edge 45. . . . . . . . . . . . . . . . . . . . . . 33. NASA space shuttle grid, solution and quality measures 49. . . . . . . . 34. Boeing Delta II grid, solution and quality measures 50. . . . . . . . . . . . 35. McDonnell Douglas experimental fighterr grid, solution and quality measures 51. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36. Aim9x sidewinder missile grid, solution and quality measures 52. . . . 37. NASA 1.15 pressure ratio fan stage grid and quality measures 53. . . . 38. United Technologies jet engine combustor grid and quality measures 54. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39. Generic submarine grid, solution and quality measures 55. . . . . . . . . 40. Generic ship hull and propeller grid and quality measures 56. . . . . . . 41. General Motors Corvette grid and quality measures 57. . . . . . . . . . . . 42. General Motors exhaust manifold grid and quality measures 58. . . . . 43. Ford Explorer grid and quality measures 59. . . . . . . . . . . . . . . . . . . . . 44. General Motors generic crankshaft grid and quality measures 60. . . .
  • 10. viii Figure Page 45. General Motors generic pump housing grid and quality measures. 61. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46. MIT notional geometry grid and solution 63. . . . . . . . . . . . . . . . . . . . . 47. Tip vortex grid and solution 64. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  • 11. ix LIST OF TABLES Table Page 1. Minimum topology information by grid generation method 14. . . . . . . 2. Minimum topology information by geometric topology form 15. . . . . . 3. Efficiency of RENM adjacency traversals 21. . . . . . . . . . . . . . . . . . . . . . . 4. Efficiency of GTM adjacency traversals 34. . . . . . . . . . . . . . . . . . . . . . . . . 5. Actual run times and number of topology elements 38. . . . . . . . . . . . . . 6. Unstructured grid generation results 48. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. Structured grid generation results 63. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  • 12. 1 CHAPTER I INTRODUCTION Computational field simulation (CFS) involves the analysis of physical phenomenon in two or three dimensions. CFS is used to solve a broad spectrum of engineering and scientific problems including computational electro-magnetics (CEM), computational thermo-mechanics (CTM), and computational fluid dynamics (CFD). Most CFS solvers use partial differential equations (PDEs) on discrete numerical grids (or meshes). Numerical grids A numerical grid is the discretization of a two-dimensional (2D) or three-dimensional (3D) field into a collection of points or elements (elemental volumes or cells) (Thompson, Warsi and Mastin 1988). A system of PDEs can be approximated by a set of algebraic equations on these discretized points or elements (Thompson, Warsi and Mastin 1988). The discretization of the field requires that the points and cells be organized to readily identify adjacent points and elements in order to make the solution of the PDE system efficient (Thompson, Warsi and Mastin 1988). There are two types of numerical grids: structured and unstructured. Structured grids, illustrated in figure 1, consist of intersecting curvilinear coordinate lines, and are composed of quadrilateral (2D) and hexahedral (3D) logically rectangular elements. The connectivity of a structured grid provides for trivial identification of neighboring points by incrementing coordinate indices (Thompson 1992). Unstructured grids, shown in figure 2, consist of elements of any shape
  • 13. 2 (commonly triangles, quadrilaterals, tetrahedra, and hexahedra), but do not have trivial identification of neighbors by incrementing an index. For unstructured grids, a set of points and an associated connectivity table is generated to define unstructured element shapes and neighboring points (Weatherill 1993). Figure 1. Structured grid. Figure 2. Unstructured grid. A multi-block structured grid has multiple regions (blocks) within a single geometry that have their own corresponding local orientation and coordinate system. Multi-block face-face matching grids (the only case used in this study) ensures that each block matches adjacent blocks at their end vertices as illustrated in figures 3 and 4. In two dimensions (2D), a cycle of four edges determines a face (from this point on the definition of a 2D block). In three dimensions (3D), a cycle of four faces with closing end faces (a logical cube) determines a block. Figure 3. 2D multi-block topology. Block 1 Block 2 Block 3 Block 4 Figure 4. 3D multi-block topology. Block 1 Block 2 Block 3 Block 4 Grid quality For CFD solutions, a numerical grid must accurately conform to the boundary in order to model the PDE boundary conditions correctly (Thompson, Warsi and
  • 14. 3 Mastin 1988). Structured and unstructured grid generation methods that follow the method of building edge grids, then surface grids and then volume grids produce accurate (within some tolerance) boundary conforming grids. Other methods such as quad-tree or oct-tree decompositions may not model the boundary accurately or correctly (Thomspon, Warsi and Mastin 1988; Shephard and Georges 1991). It is difficult to determine if a grid is suitable for a CFD solver. In most cases, a cycle of generating the grid, then generating the CFD solution is iterated until an appropriate solution is achieved (Shirayama 1991). The only tools available to the grid generation engineer are local grid metrics and the statistical evaluation of these local metrics on a global scale. There are a variety of numerical grid quality metrics that measure the local geometric quality of a numerical grid. The overall geometric quality of a grid can evaluated statistically from the summation of local quality measures (Marcum 1997). Depending on the solver, there is a finite range of element shapes that can be used to accurately model a CFD solution. There are a number of geometry-based quality metrics that measure local grid quality (Gaither, Dannenhoffer and Weatherill 1993): S Element angle. Minimum and/or maximum element angle in a triangle or tetrahedron. S Aspect ratio. (Average edge length)3 / volume or (Mean edge length)3 / volume of a hexahedron or tetrahedron. Notice that if an aspect ratio has a negative value, this indicates a negative volume and will cause a faĆ tal error in any CFD solver. S Orthogonality. For structured grids only. Orthogonality of grid lines close to the boundaries (not to exceed 45 degrees in critical areas) and between elements (not to exceed 10 to 15 degrees in critical areas) (JacĆ quotte 1991). S Adjacent volumes. Ratio of minimum-to-maximum adjacent volĆ umes. S Stretch. Ratio between minimum-to-maximum side lengths. S Dihedral angle. Minimum normalized dihedral (included) element angle.
  • 15. 4 S Number of edges connected to a point. S Solid angle between surface elements. Determines the geometric accuĆ racy of surface grids. The primary geometric metrics used for unstructured grid generation are minimum and maximum angles (Marcum and Weatherill 1994). The primary geometric metrics used for structured grids are aspect ratio, orthogonality and adjacent volumes (Jacquotte 1991; Lu and Eiseman 1991). All of the other geometric metrics are dependant on the CFD solver being used. Other metrics based on suitability to a specific CFD solver such as variational optimization theory (Jacquotte 1991; Saouab and Vandromme 1991), statistical methods (Shirayama 1991) and direct elliptic solution adaption methods (Hoffmann, Siddiqui and Rutledge 1991; Soni 1991) are not covered here. The grid generation process For many years, CFS engineers built grids using command line interfaces and scripting languages (Thompson 1988). Many new grid generation systems are changing to graphical user interfaces (Akdag and Wulf 1992; Boerstoel and Spekreyse 1991; Dener and Hirsch 1992; Fujitana and Himeno 1991; Jacquotte 1991; Soni 1991; Sorenson and McCann 1992; Stienbrenner and Chawner 1993). The three steps in the grid generation process are shown in figure 5. Define geometry Figure 5. Three steps of the grid generation process. Repair geometry Build grid Whichever grid generation method or interface the engineer uses, the first two steps of the grid generation process are still the same:
  • 16. 5 1. Define the geometry. Either import the geometry from CAD models, discreet points, cross-section curves, bathymetry data, or create the geĆ ometry within the grid generation system. 2. Repair the geometry into a form that is accurate enough to model the deĆ sired CFD solution. Most geometry is not in a form that is ready for grid generation. Traditionally, CAD data is generated for computer aided manufacturing (CAD/CAM), and the surface-to-surface tolerances used for machining parts in a CAD/CAM model are not sufficient for grid generation purposes. That means that a good CAD/CAM model will still have gaps and overlaps that must be fixed in the grid generation system (Soni 1991). Step 3 of the grid generation process varies due to the grid generation methods. The following section describes the grid generation process for several methods. Generating a three-dimensional structured grid The process for computing structured grids is shown in figure 6. The details of the process steps are as follows: Map boundary geometry Figure 6. The three dimensional structured grid generation process. Build block topology Apply grid control Compute surface grids Evaluate surface grids Compute volume grids Evaluate volume grids Apply boundary conditions 1. Map the boundary geometry into a form that is applicable to structured grid generation. The entire surface geometry must be mapped into three and four sided surfaces. 2. Build a block topology. The user must determine how to decompose the field into a network of hexahedra in 3D (or quadrilaterals in 2D). The traditional method is for the engineer to sit down at a desk and manually
  • 17. 6 draw out a blocking strategy for the desired geometry. Once the blocking strategy is done, the engineer manually builds geometry for each face and block in the field (keeping track of all edge, surface and block orienĆ tations and connectivities). Blocking strategies demand considerable experience with the type of CFD solution being generated (Soni 1991). 3. Apply the grid control information. The engineer now applies the numĆ bers of points and point distributions on block boundaries. It should be noted that in many grid generators, the number of points and point disĆ tributions must be added during the block topology construction phase. 4. Compute the surface grids. Each surface grid can be computed using eiĆ ther transfinite interpolation or hyperbolic methods. Each face, or the entire system of surface grids, can then be elliptically smoothed. 5. Evaluate the surface grid quality. If the quality metrics identify probĆ lems, the engineer may have to iterate back to the boundary mapping phase to solve any problems with the surface grid. 6. Compute the volume grids. Each block grid is computed using either a transfinite interpolation or hyperbolic method. Each block or the entire system of volume grids can then be elliptically smoothed. 7. Evaluate the volume grid quality. Like the surface grids, the engineer may have to iterate back to the surface mapping phase to solve any probĆ lems with the volume grids. 8. Apply the boundary conditions, material properties and initial values. This information is used by the CFD solver. Traditionally this is written as a text file that is separate from the grid. These files use surface numĆ bers and block numbers to map solver information to the grid. Generating a two-dimensional structured grid The process for computing two-dimensional structured grids is shown in figure 7. The details of the process steps are as follows: 1. Map the boundary geometry into a form that is applicable to structured grid generation. The entire surface geometry must be mapped into three and four sided surfaces. 2. Build a surface block topology. The user must determine how to decomĆ pose the field into a network of quadrilaterals in two dimensions. Once the blocking strategy is done, the engineer manually builds geometry for each face in the field (keeping track of all edge and surface orientations and surface connectivities)..
  • 18. 7 Figure 7. The two-dimensional structured grid generation process. Build surface block topology Apply grid control Compute surface grids Evaluate surface grids Apply boundary conditions 3. Apply the grid control information. The engineer now applies the numĆ bers of points and point distributions on block boundaries. It should be noted that in many grid generators, the number of points and point disĆ tributions must be added during the block topology construction phase. 4. Compute the surface grids. Each surface grid can be computed using eiĆ ther transfinite interpolation or hyperbolic methods. Each face, or the entire system of surface grids, can then be elliptically smoothed. 5. Evaluate the surface grid quality. If the quality metrics identify probĆ lems, the engineer may have to iterate back to the boundary mapping phase to solve any problems with the surface grid. 6. Apply the boundary conditions, material properties and initial values. This information is used by the CFD solver. Traditionally this is written as a text file that is separate from the grid. These files use surface numĆ bers and block numbers to map solver information to the grid. Generating a three-dimensional unstructured grid using the hierarchical boundary method The process for computing hierarchical three-dimensional unstructured grids is shown in figure 8. The details of the hierarchical unstructured grid generation process steps are as follows:
  • 19. 8 Figure 8. The hierarchical unstructured grid generation process. Apply grid control Compute surface grids Evaluate surface grids Compute volume grids Evaluate volume grids Apply boundary conditions 1. Apply the grid control information. Point spacings are applied to edges. A 1D advancing front algorithm (illustrated in figure 9) is used to comĆ pute the number of points and point distribution on a given curve (MarĆ cum 1997). Traditionally, edge grids were built using the same method as structured grids, i.e. the engineer had to specify the number of points on each edge as well as a point distribution on each edge. Figure 9. Point spacings and the computed point distribution. 2. Compute the surface grids. Surface grids can be computed in the paraĆ metric space of a surface via a Delauney triangulation algorithm (WeaĆ therill, Gaither and Gaither 1995) or an advancing front algorithm (MarĆ cum 1997). Another method that can be used to create surface grids is the mapped space approximation (MSA) algorithm (Marcum 1997). 3. Evaluate the surface grid quality. If the quality metrics identify probĆ lems, the engineer may have to iterate back to the grid control phase to solve any problems with the surface grid. 4. Compute the volume grid. The volume grid is computed using either a Delauney triangulation algorithm (Weatherill, Gaither and Gaither 1995) or advancing front algorithm (Marcum 1997).
  • 20. 9 5. Evaluate the volume grid quality. Like the surface grids, the engineer may have to iterate back to the grid control phase to solve any problems with the volume grid. 6. Apply the boundary conditions, material properties and initial values. This information is used by the CFD solver, and is traditionally written as a text file that is separate from the file containing the grid. These files use surface (group) numbers to map solver information to the grid. Generating a two-dimensional unstructured grid using the hierarchical boundary method The process for computing hierarchical two-dimensional unstructured grids is shown in figure 10. The details of the two-dimensional hierarchical unstructured grid generation process steps are as follows: Figure 10. The hierarchical unstructured grid generation process. Apply grid control Compute surface grids Evaluate surface grids Apply boundary conditions 1. Apply the grid control information. Point spacings are applied to edges and edge growths are applied to loops. 2. Compute the two-dimensional grid. Surface grids are computed in physical space via a Delauney triangulation algorithm (Weatherill, Gaither and Gaither 95) or an advancing front algorithm (Marcum 1997). 3. Evaluate the two-dimensional grid quality. If the quality metrics identiĆ fy problems, the engineer may have to iterate back to the grid control phase to solve any problems with the grid. 4. Apply the boundary conditions, material properties and initial values. Generating a three-dimensional unstructured grid using the oct-tree method The process for computing oct-tree three-dimensional unstructured grids is shown in figure 11. The details of the oct-tree unstructured grid generation process steps are as follows:
  • 21. 10 Figure11. Theoct-treeunstructuredgridgenerationprocess. Apply grid control Compute volume grids Evaluate volume grids Apply boundary conditions 1. Applythegridcontrolinformation. Pointspacingsareapplieddirectly tothevolume. 2. Computethevolumegrid. Thevolumegridiscomputedusingtheoct- treedecompositionalgorithm(ShephardandGeorges1991). 3. Evaluate the volume grid quality. Unlike the boundary method used withtheAFLRgridgenerators,thereisnowaytoimprovevolumegrid qualityotherthansmoothingandpointinsertionanddeletion. 4. Applytheboundaryconditions,materialpropertiesandinitialvalues. Problemswithcurrentgridgenerationsystems Currently, the human time needed to generate a grid for a complex 3D configuration is unacceptable for most industrial applications (Thompson and Weatherill1993). Generatingagridmaytakeupto90%oftheoveralltimeneededto compute a CFD solution on a complex geometry (Soni 1991). In order for CFD analysistobeconsideredasacost-effectivedesigntool,thetimerequiredtogenerate complicatedgridsmustbereduced. Inordertospeedupthegridgeneration,theuser must be abstracted from geometric complexity (orientations and connectivity) and givenspecificfunctionalitythatautomatesthegridgenerationprocess(Thompsonand Weatherill1993). Thisismostevidentinstructuredgridgenerationsystemswherea significantportionoftimeisspentmanuallybuildingthemulti-blocktopology.
  • 22. 11 Most structured grid generation data structures (Akdag and Wulf 1992; Boerstoel and Spekreyse 1991; Dener and Hirsch 1992; Fujitana and Himeno 1991; Jacquotte 1991; Soni 1991; Sorenson and McCann 92; Stienbrenner, Chawner and Fouts 1990) do not explicitly keep track of surface-to-surface and block-to-block connectivity. The user is forced to manually keep track of grid and geometric orientations during the block construction process. These same structured grid generation data structures also duplicate points at block boundaries. While easier to implement, duplicating points at block boundaries can introduce errors into the final grid. If the number of points at a block-to-block boundary are different or an orientation change is overlooked, point-to-point mismatching can occur. This will cause an error in the solver that is very hard to find (Thompson 1992). Most unstructured grid generation systems do not use geometric adjacency information (topology data structures), but instead they use very efficient oct-tree decomposition methods to generate tetrahedral grids (Shephard and Georges 1991, Spatial Technology Incorporated 1996; Akdag and Wulf 1992; Lawry 1996) on the original geometry. Using the oct-tree method allows the user to ignore topological problems with the surfaces (gaps and overlaps). However, the elements with the worst quality (using the element-based quality metrics discussed earlier) of oct-tree based unstructured grids are at the boundary (Marcum 1995). Transferring geometry data between CAD and grid generation systems is prone to errors due to underlying geometry representations and round-off errors (Gaither et al. 1995; Soni 1991). Most CAD systems expect the users to start with data generated within the CAD system. However, even the CAD system's solid models (that are acceptable for mechanical CAD/CAM design) may have topology problems that are unacceptable for CFD grid generation. In many cases, these topology problems are too expensive to fix on the CAD system and must be fixed after it is imported into the grid
  • 23. 12 generation system (Fricker 1996). Imported data almost always has tolerance problems (gaps and overlaps) in the surfaces. A tolerance-based topology data structure enables the user to specify a tolerance that will fix some of the numerical round-off problems associated with importing data. Thesis statement The purpose of this thesis is to develop a topology data structure that supports advancing front local reconnection (AFLR) unstructured grids (Marcum and Weatherill 1994) as well as transfinite interpolation, elliptic and hyperbolic structured grids (Thompson 1992). This topology data structure will directly support the method of building edge grids, surface grids and volume grids (hierarchical boundary method) in order to construct high quality computational fluid dynamics (CFD) grids. In conducting this research, the following questions are answered: S What is the minimum topological information needed to generate strucĆ tured and unstructured grids? S What are alternative data structures for representing this information? S What changes need to be made (if any) to the existing data structure to meet the grid generation requirements? S Which of the alternative data structures have the most efficient adjacenĆ cy traversals? S What topology-based functionality can be implemented that will imĆ prove the grid generation process? Approach for selecting a data structure design After determining the minimum topological information needed to generate structured and unstructured grids, alternative data structures that meet the minimum topological requirements will be evaluated to determine which one provides the most efficient adjacency traversals needed for both structured and unstructured grid generation. The evaluation must consider accessing adjacent topological elements in all facets of grid generation, including:
  • 24. 13 S determining adjacent end points of curves when gluing edges; S determining orientations on shared topological entities; S eliminating point duplication in a grid it is necessary for curves to access adjacent points, surfaces to access adjacent curves and blocks to access adjacent surfaces; S propagating structured grid information in a computational direction; S determining right-handed loop orientations; S automatically trimming surfaces; S determining structured grid four-sided wire-frame faces and six- sided wire-frame blocks; and S normalizing surface orientations in a shell. The geometry representation for our system will use non-uniform rational b-splines (NURBS). Since the amount of topological information is much smaller than the amount of information needed to model NURBS, memory size of the topology data structures will be negligible and will not be considered as a major factor in choosing a data structure. However, every effort will be made to make the data structures as small as possible. The topology data structure that is chosen needs to be flexible enough to be able to support both structured and unstructured grid generation. In the next chapter, we introduce the minimal topological requirements for general grid generation. We will then survey a set of existing (published) data structures, and evaluate these data structures in the context of the minimal topological requirements. Once an existing data structure has been selected as the basis for the proposed grid generation data structures, we will determine what changes need to be made in order to support general grid generation.
  • 25. 14 CHAPTER II THE MINIMUM TOPOLOGY INFORMATION NEEDED TO COMPUTE GENERAL NUMERICAL GRIDS The minimum topological adjacency information required for the explicit topological representation of both structured and unstructured grids is presented below. The requirements are derived from a common body of knowledge incorporating structured and unstructured grid generation processes. The requirements are derived from the grid generation domain and stated in terms of topological adjacencies between geometry. From table 1 we can conclude that the proposed data structure must support all adjacencies between topological elements. Table 1. Minimum topology information by grid generation method. Grid Generation Methods Topological adjacencies VE VL VF VS EL EF ES LF LS FS 2D unstructured x x x Single-volume 3D unstructured x x x x x x x Multi-volume 3D unstructured ÄÄÄ ÄÄÄ ÄÄÄÄÄÄ ÄÄÄ ÄÄÄ x ÄÄÄ ÄÄÄ ÄÄÄÄÄÄ ÄÄÄ ÄÄÄ x ÄÄÄ ÄÄÄ ÄÄÄÄÄÄ ÄÄÄ ÄÄÄ x ÄÄÄ ÄÄÄ ÄÄÄÄÄÄ ÄÄÄ ÄÄÄ x ÄÄÄ ÄÄÄ ÄÄÄÄÄÄ ÄÄÄ ÄÄÄ x ÄÄÄ ÄÄÄ ÄÄÄÄÄÄ ÄÄÄ ÄÄÄ x ÄÄÄ ÄÄÄ ÄÄÄÄÄÄ ÄÄÄ ÄÄÄ x ÄÄÄ ÄÄÄ ÄÄÄÄÄÄ ÄÄÄ ÄÄÄ x ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄ x ÄÄÄ ÄÄÄ ÄÄÄÄÄÄ ÄÄÄ ÄÄÄ x 2D structured x x x 3D structured x x x x x x
  • 26. 15 Geometric topological forms Geometric modelling topology data structures are used to represent adjacency of three dimensional objects. Geometric modelling topology forms include: 1. wire-frame modelling, 2. surface modelling, 3. manifold solid modelling, and 4. non-manifold solid modelling. The minimum topology information supported by each geometric modelling form are shown in table 2. We can conclude that only the non-manifold solid modelling geometry form is sufficient for general grid generation. Table 2. Minimum topology information by geometric topology form. Geometry topology forms Topological adjacencies VE VL VF VS EL EF ES LF LS FS Wire-frame x x Surface x x x x Manifold solid x x x x x x Non-manifold solid ÄÄÄÄÄÄ ÄÄÄ ÄÄÄÄÄÄ x ÄÄÄÄÄÄ ÄÄÄ ÄÄÄÄÄÄ x ÄÄÄÄÄÄ ÄÄÄ ÄÄÄÄÄÄ x ÄÄÄÄÄÄ ÄÄÄ ÄÄÄÄÄÄ x ÄÄÄÄÄÄ ÄÄÄ ÄÄÄÄÄÄ x ÄÄÄÄÄÄ ÄÄÄ ÄÄÄÄÄÄ x ÄÄÄÄÄÄ ÄÄÄ ÄÄÄÄÄÄ x ÄÄÄÄÄÄ ÄÄÄ ÄÄÄÄÄÄ x ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ x ÄÄÄÄÄÄ ÄÄÄ ÄÄÄÄÄÄ x
  • 27. 16 CHAPTER III A SURVEY OF EXISTING PUBLIC DOMAIN SOLID MODELLING DATA STRUCTURES The only true source of literature available on solid modelling data structures is academic research papers. However, this is not where the majority of the work is being done in the field. Commercial CAD companies have been developing solid modelling data structures for many years. Unfortunately, these CAD companies do not publish their research and design documents due to software copyright laws. The following is a mixture of academic research papers and inferred information from the commercial CAD user and programmer manuals. The winged-edge manifold solid-modelling data structure The winged-edge data structure is a manifold (involving a maximum of two surfaces adjacent to an edge) solid modelling data structure used in early solid modelling systems (Baumgart 1974). The winged-edge data structure's name is derived from the graphical appearance of an edge and its adjacent edge neighbors (see figure 12) (Weiler 85). The winged-edge data structure is insufficient for 3D structured multi-block grid topologies and was therefore eliminated as a candidate data structure.
  • 28. 17 E1 V1 V2 E2 E3 E4 E5 Figure 12. Winged edge data structure The radial-edge non-manifold solid modelling (RENM) data structure Perhaps the most important work published in solid modelling topology is by Kevin Weiler. (Weiler 1985, 1986 and 1987). His Ph.D. thesis Topological structures for geometric modeling (Weiler 1986) is cited in almost every publication involving solid modelling topology and geometric based grid generation. Derivatives of Weiler's radial-edge non-manifold (RENM) data structure design has been used by almost every commercial CAD system that uses a boundary representation (B-Rep) non-manifold data structure for solid modelling applications. The RENM data structure consists of models, regions, shells, faces, loops, edges, vertices, face-uses, edge-uses, and vertex-uses. These terms are defined in (Weiler 1986) as follows: S Model: A model is a single three-dimensional space. It consists of one or more distinct regions of space. A model can be viewed as a container for all topological elements in that region of space. S Region: A region is a volume that is contained by a model. A region may have infinite extent, however only one region may be infinite, all others are finite. All regions in a model (if finite) have boundaries. S Shell: A shell is an oriented boundary of a region. A region may have zero to many shells. A region has no shell if no topology has been defined within it (which occurs in the initial state or when all topology elements have been deleted). A shell is composed of zero to many faces, vertices and edges. The shell may be open, closed or consist of a single element such as a face, edge or vertex.
  • 29. 18 S Face: A face is a bounded element of a shell. A face is not oriented, but the face must have an orientation with respect to adjacent shells. A face is composed of an entire surface or a portion of a surface, but does not include the surface's boundaries. S Loop: A loop is a boundary of a face. A face must have at least one outer boundary loop, but may have multiple interior boundary loops. Loops consist of an alternating sequence of edges and vertices in a complete cirĆ cuit, but may consist of only a single vertex. Loops are not oriented, but the loop must have an orientation with respect to adjacent faces. S Edge: An edge is a bounding curve segment for a loop boundary. An edge may be used by zero or many adjacent faces. An edge is bounded by a vertex at each end (possibly the same one). An edge is not oriented; however, the edge must have an orientation with respect to adjacent loops. S Vertex: A vertex is a unique point in space. A vertex may serve as a boundary for faces, edges, loops and shells. S Face-use: A face-use is the use of a face. Face-uses are used by a shell and are oriented with respect to the face geometry. S Loop-use: A loop-use is one of the use of a loop. Loop-uses are assoĆ ciated with one of the two uses of a face. The loop-use is oriented with respect to the associated face-use. S Edge-use: An edge-use is an oriented bounding curve segment on a loop-use of a face-use. The edge-use is the use of an edge by a loop- use, or if a wire-frame edge, by endpoint vertices. Edge-use orientaĆ tion is specified with respect to edge geometry. S Vertex-use: A vertex-use is the use of a vertex by an edge as an endĆ point, by a loop in the case of a single vertex loop, or by a shell in the case of a single vertex shell. The hierarchy of topology and geometry elements defines the classes of information contained in the RENM data structure. As shown in figures 13, 14 and 15, each level of the hierarchy represents a level of abstraction between geometry and adjacency elements. Models and regions in the RENM data structure are simply a means of organizing the topological data for API functions and have therefor have been omitted from the following discussions.
  • 30. 19 Surface Face Curve Vertex EdgeUse FaceUse Edge Surface Topology Volume Topology Geometry Abstraction Point VertexUse Shell Geometry LoopUse Figure 13. RENM hierarchy and relationship of topology elements. Loop ÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇÇÇÇ ÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇÇÇÇ ËËËËËË ËËË ËËË F1 F2 F3 E E F2F3 F1 eu3 eu4 fu3 fu4fu5 fu6 fu1 fu2 eu2eu1 eu6 eu5 Figure 14. RENM example of three shells sharing an edge. S Shell F Face E Edge V Vertex fu face-use L Loop eu edge-use S1 S2 S3 L3 L4 L2L1 L5 L6
  • 31. 20 F2 F1 F3 fu 1 fu2fu3 eu1 eu2eu3 F1 F2F3 Figure 15. RENM example of three faces sharing an edge. E F Face E Edge L loop-use fu face-use eu edge-use E lu1 lu2lu3 Sufficiency of the non-manifold topology model A practical implementation of a non-manifold topology data structure does not only include information related to the sufficient set of adjacency relationships, but also includes information associating all element types (Weiler 1985). All topology elements are uniquely labeled and non-topological entities (geometry and grid) can be unambiguously associated with the topology model (Weiler 1985). A non-manifold solid modelling data structure requires at least n-1 adjacency relationships (where n is the number of basic topology element types) to associate all element types. In this case n= 5, so at least four adjacency relationships are the minimum required to define a complete set (Weiler 1985). The four minimum upward adjacency relationships (downward adjacency relationships are directly accessible through components) that need to be modelled are:
  • 32. 21 1. vertex adjacent edge (V{E}), 2. edge adjacent loop (E{L}), 3. loop adjacent face (L{F}), and 4. face adjacent shell (F{S}). Efficiency of REMN adjacency traversals Due to the explicit adjacency information, all adjacency traversals within the RENM data structure are linear. The asymptotic efficiency of adjacent element traversals are defined in table 3. Table 3. Efficiency of RENM adjacency traversals. (adjacent) Vertex Edge Loop Face Shell Vertex - VE = Θ|V{E}| VL = Θ|V{EL}|_ VF = Θ|V{EF}| VS = Θ|V{ES}| Edge EV = 2 - EL = Θ|E{L}| EF = Θ|E{LF}| ES = Θ|E{LS}| Loop LV = Θ|L{EV}| LE = Θ|L{E}| - LF = Θ|L{F}| LS = Θ|L{FS}| Face FV = Θ|F{LV}| FE = Θ|F{LE}| FL = Θ|F{L}| - FS = Θ|F{S}| Shell SV = Θ|S{FV}| SE = Θ|S{FE}| SL = Θ|S{FL}| SF = Θ|S{F}| - Commercial CAD systems A concerted effort was made to find publications on commercial CAD topology designs (Akdag and Wulf 1992; Spatial Technology Incorporated 1996; Lawry 1996; Parametric Technology Corporation 1997). In every case, this information was not available. The only information available was user manuals and application programmer manuals. The CAD systems provide application programmers interfaces (APIs) that hide the underlying complexity of their internal data structures. From these APIs, we have tried to discern the underlying solid modelling topology
  • 33. 22 implementations. Since we cannot prove our guesses, we will not include them in this paper. But we can say that all of the commercial CAD systems we reviewed had very similar APIs that would support a topological data structure based on Weiler's original work. Grid generation systems A much richer environment for gathering information on this topic is in grid generation. Most research in grid generation (and therefore published materials) comes from universities and research centers. Unfortunately, the only information we could obtain from these papers were either the commercial CAD systems they were using for their geometry engines, or the actual geometry formulations their systems were based on (Akdag and Wulf 1992; Boerstoel and Spekreyse 1991; Dener and Hirsch 1992; Fujitana and Himeno 1991; Jacquotte 1991; Luh, Pierce and Yip 1992; Soni 1991; Sorenson and McCann 92; Stienbrenner and Chawner 1993). The only exceptions to this rule were multi-block grid generation systems that use FORTRAN (array based) implementations (Thompson 1988; Stienbrenner and Chawner 1990; Soni 1992; Sorensen and McCann 1992). There are three major drawbacks to these structured grid implementations: 1. the grid generation system depends on the user to keep track of geometĆ ric orientations; 2. these data structures do not support unstructured grid generation; and 3. duplicate grid points on shared entities. For these three reasons, the data structures were deemed inadequate for general grid generation. However, since the mathematical structured grid generation routines from Thompson (1988) are being used, the topological functionality for that system had to be mirrored and were taken into account as basic requirements of the GTM data structure and API.
  • 34. 23 Summary It has been determined that the most important features needed for grid generation (non-manifold geometry and explicit access of adjacent elements) are contained in the RENM data structure. But in order to generate general grids efficiently, several modifications to the RENM data structure must be made. The major changes that need to be made to the RENM data structure are the addition of blocks, explicit four sided surfaces and the elimination of topological degeneracies. Blocks (explicit six sided volumes) and explicit four sided surfaces change the basic structure of topology hierarchy. The elimination of topological degeneracies (for example a surface adjacent to another surface at a point on the interior of the surface) simply changes the behavior of the topology operations.
  • 35. 24 CHAPTER IV THE GRID TOPOLOGY MODEL DATA STRUCTURE In order to generate grids efficiently using the RENM data structure, a number of modifications (both simplifications and extensions) have been made. The primary topological elements added to the RENM data structure are explicit four-sided surfaces and six-sided blocks. These additional topological elements allow quick construction and efficient traversal of multi-block structured grids. The addition of these elements to the grid topology model (GTM) data structure as well as the elimination of the loop-use gives provides a new topology hierarchy illustrated in figure 16 (Gaither 1994; Gaither et al. 1995; Gaither 1996; Gaither et al. 1996). The volume topology elements define the orientation of a 3D space and its associated grid information. Surface topology elements explicitly define adjacency inĆ formation between all elements in the GTM data structure as well as grid information on the surfaces. The geometry abstraction layer insulates the topology portion of the GTM data structure from the geometry implementation. The geometry layer is not relevant to this discussion and is only included for completeness. The following are defĆ initions of the elements currently included in the GTM data structure. These definiĆ tions are quite different from the RENM elements in that degenerate topological conditions (true non-manifold conditions such as points adjacent to surfaces in the middle of the surface) are not allowed. S Shell: A shell is an oriented volume bounded by any number of faces. It is an element in both unstructured and hybrid grid topologies. A face is connected to a shell through a face-use. The face-use's orientation is determined by the direction of the associated surface geometry's norĆ mal direction. All surface normals point consistently either inwards or outwards from the interior of the shell's volume.
  • 36. 25 Surface Face Curve Vertex Edge Use Face Use Edge Surface Topology Volume Topology Geometry Abstraction Point Vertex Use Block Shell Geometry Loop Figure 16. GTM topology hierarchy. The GTM data structure definitions are: S Block: A block is a right-handed (positive Jacobian) oriented volume bounded by six (logical) faces. Blocks are elements in structured multi- block grid topologies. A face is connected to a block through a face-use. A face-use's orientation is determined from its location on the block and the orientation of the face geometry. Orientations from one face to another on a block are implied from the location on the block. S Face: A face is an orientable 2D abstraction of a surface. A face can be bounded by either four edges associated with the derived curves from the original surface geometry, or by any number of non-degenerate oriĆ ented trimming loops that are defined as sets of edges with associated parametric curves on the surface. A face's orientation is determined by any number of face-uses that share the face. S Loop: A loop is an oriented collection of non-degenerate edges in eiĆ ther 2D space or the parametric space of a parent trimmed surface. Loops run in a counter-clockwise direction whether in 2D space or in the parametric space of the surface. S Edge: An edge is an orientable 1D abstraction of a curve. An edge is connected to a face either directly to a face-use as one of four derived edges of the original surface, or through a loop as a part of a trimming loop. The edge's orientation is determined by any number of associated
  • 37. 26 edge-uses. An edge is orientable, though not oriented; it is the use of an edge which is oriented. S Vertex: A vertex is an abstraction of a point in space. S Face-use: A face-use is an element that defines the use of a face by a shell or block. The face-use provides adjacency information for the face, defines the orientation of the face with respect to the volume that is using it, and stores the face grid information. S Edge-use: An edge-use is an element that defines the use of an edge by a face. The edge-use provides adjacency information for the edge, defines the orientation of the edge with respect to the face that is using it, and stores the edge grid information. S Vertex-use: A vertex-use is an element that defines the use of a vertex by an edge. The vertex-use provides adjacency information for the verĆ tex and stores the vertex grid information. GTM implementation For this study, the GTM data structures are implemented in the programming language C. All adjacent elements in the GTM data structure are directly accessible via pointers. Searching is limited to traversing a doubly-linked circular list with length equal to the number of adjacent elements. Grid generation applications utilize the adĆ jacency elements to store and access grid points on shared geometries. CAD utilities utilize the adjacency and geometry abstraction elements to determine degeneracies, orientations, and adjacencies as shown in figures 17 and 18. Gluing the geometry Once the topology is created for the individual geometry element, adjacency is achieved by gluing geometry elements together. Gluing is a means of attaching more than one use to a single geometry. For example, if two surfaces are glued together at an edge, one of the derived edges and two of the derived vertices are deleted and the uses for the deleted edges and vertices are attached to the other edge and vertices as shown in figure 19. Gluing makes two geometrical entities (that are within a specified tolerance) a single entity. Gluing is fundamental in building a topologically valid geometry from a
  • 38. 27 set of disjoint geometry. The faces, edges, and vertices are automatically glued (given some user-defined tolerance) to other surrounding geometries as they are input into the system. The tolerance is set (interactively or in a resource file) by the user to define the volume search that determines if two elements are to be glued. Automatically gluing elements as they are created simplifies CAD operations and further abstracts the user from the complexities of the geometry. ÇÇÇÇÇÇÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇÇÇÇ ÇÇÇÇÇÇ ËËË ËËËËËË ËËË F1 F2 F3 E E F2 F3 F1 eu3 eu4 fu3 fu4 fu5 fu6 fu1 fu2 eu2eu1 eu6 eu5 Figure 17. GTM example of three shells sharing an edge. S Shell F Face E Edge V Vertex fu face-use L Loop eu edge-use S1 S2 S3 L3 L4 If the automated gluing has failed to achieve a valid bounded space without gaps between geometries, a set of manual and semi-automated gluing tools are available to the user. The user can manually glue two elements by selecting them interactively, or may utilize a semi-automated approach by specifying a tolerance (as either a physiĆ cal dimension or a percentage of the overall maximum model dimension). The automated gluing traverses all geometries in the configuration. As each vertex is traversed, a 3D search for all other vertices within the specified tolerance is
  • 39. 28 performed. If a vertex is found that is within the tolerance, the vertices are glued as shown in figure 20. Once all vertices are glued, a check is made to determine if edges between the glued vertices should be glued. Figure 21 illustrates the resulting topology from gluing together four four-sided surfaces at their edges. F2 F1 F3 fu 1 fu2fu3 eu1 eu2eu3 F1 F2F3 Figure 18. GTM example of three faces sharing an edge. E F Face E Edge fu face-use eu edge-use E ÉÉÉÉÉÉÉÉ ÉÉÉÉ ÉÉÉÉÉÉÉÉ ÇÇ Ç ÇÇ ÇÇÇÇ ÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÉÉÉÉ ÉÉÉÉÉÉÉÉ ÉÉÉÉ ÉÉÉÉÉÉÉÉ ÉÉÉÉ ÉÉÉÉÉÉÉÉ ÉÉÉÉ ÉÉÉÉÉÉÉÉ ÇÇ ÇÇÇÇ ÇÇ ÇÇÇÇ Ç ÇÇ Ç ÇÇ Ç ÇÇ Ç ÇÇ ÇÇ ÇÇÇÇ ÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÇÇÇÇ ÇÇ ÇÇÇÇ ÇÇ Ç ÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇ Figure 19. Two surfaces before and after gluing on an edge. Vertex Edge Vertex use ÇÇ Ç Edge use É ÉÉ Face use Glue Topological gluing does not alter the geometry. If there are gaps less than the specified tolerance, topologically gluing the surfaces does not close them, it only indiĆ
  • 40. 29 cates that the geometries are adjacent. When grid generation occurs, only one derived curve between two adjacent surfaces will govern the grid point creation. Grid lines will span the gap, but stretching and deformations of the grids in these local areas are unacĆ ceptable if the gaps are too large. ÇÇÇÇÇÇÇÇÇÇÇÇ ÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇÇÇÇ ÇÇÇÇÇÇ Figure 20. 3D point search to determine adjacency. ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÉÉÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉÉ ÉÉÉÉÉÉÉÉ ÉÉÉÉÉÉÉÉ ÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉ ÇÇ ÇÇ Ç ÇÇ ÇÇ Ç ÇÇ ÇÇ Ç ÇÇ ÇÇ ÇÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÉÉÉÉÉÉÉÉ ÉÉÉÉ ÉÉÉÉÉÉÉÉ ÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉ ÇÇ Ç ÇÇ Ç ÇÇ Ç ÇÇ Ç ÇÇ Ç ÇÇ Ç ÇÇ Ç ÇÇ Ç ÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÇÇÇÇ Vertex Edge Vertex use ÇÇÇÇ ÇÇEdge use ÉÉÉÉ ÉÉface use Geometry Figure 21. Resulting topology from gluing four four-sided surfaces. Deletion criteria for derived vertices and edges Deletion criteria for derived edges and vertices are ambiguous for two faces glued at an edge. However, if a curve is glued to a surface at an edge, the element that is lower in the topology hierarchy (in this case the curve) is preserved. The same princiĆ
  • 41. 30 ple applies to a point glued to a curve or surface. This allows construction curves and points to be preserved throughout the CAD manipulation phase. Degenerate geometry The introduction of degenerate geometry (curves that collapse into points and surfaces that collapse into curves or points) into the GTM data structure allows the grid generators to identify and handle these special geometries. The RENM data structures are not designed to explicitly identify degenerate geometries, but allow degenerate topological conditions that grid generators would not be able to cope with. An obvious example of these degenerate topological conditions is allowing a degenerate loop (a loop defined as a point on a surface). There is no way to generate grids within this degenerate loop and would produce grid elements with zero volume. There are several different types of degenerate geometry with which a grid generation system must cope. Figure 22 shows the hierarchy of such geometries. Figure 23 shows the resulting topology when 3 four-sided surfaces and a degenerate surface are glued together. Orientation The GTM data structure abstracts the user from the complexities of the underlyĆ ing geometry orientations. Orientations follow the hierarchy of topology elements with the block defining the orientation of a volume, a face-use defining the orientation of a surface, and an edge-use defining the orientation of a curve. In the GTM, orientation of surface and curve geometries are defined by the direction from which you access them. The orientation follows the hierarchy of topoloĆ gy elements (shellshave no orientation). The block(topmost element in a structured grid) defines the logical orientation of a 3D space. The face-usesthat bound the block derive their orientation from the "logical block face" they lie on. Edge-uses derive
  • 42. 31 their orientation from their logical location on a face. Each orientation is specified in terms of how the underlying geometry is accessed. Volumes Surfaces Curves Figure 22. Hierarchy of degenerate geometries. ÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉ ÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉ ÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ ÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇÇ ÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÇÇÇÇ ÇÇÇÇ ÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇ ÇÇÇÇÇÇÇÇ Geometry ÉÉÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉÉÉ ÇÇÇÇÇÇ ÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇ ÇÇÇ ÇÇÇÇÇÇ ÉÉÉ ÉÉÉ ÉÉÉÉÉÉ ÉÉÉ ÉÉÉ ÉÉÉÉÉÉ ÉÉÉ ÉÉÉÉÉÉ Figure 23. Resulting topology from gluing three four-sided surfaces to a degenerate surface. When multiple topology entities share a single geometry entity, orientations in in the topology determine how the geometry is accessed. For example, two surfaces that share a curve (two faces that share an edge) may need to access the curve geometry in different directions. Figure 24 shows how different orientations between two faces affect how an edge is accessed.
  • 43. 32 Edge-useorientations are coded using a binary flag to determine how a neighĆ boring face-useor loop accesses the edge. If the edge is running in the same direction as the surface does, the binary flag is set to false. Figure 25 illustrates how if the edge is running in the opposite direction of the face-use or loop, the flag is set to true. V U V U F1 F2 Figure 24. Orientations of an edge that is shared by two faces. E1 eu2 eu1 eu1 eu2 V U V U +– 0 1 1 0 TrueFalse Surface Figure 25. Curve orientations. Face-useorientations are coded using binary representations between 0 and 7. The left most bit determines a right handed (0), or left handed (1) orientation. The right two bits determine the location of the surface origin relative to the face-use as shown in figure 26.
  • 44. 33 Sufficiency of the GTM Since the GTM data structure includes all topological elements in the RENM data structure, the GTM data structure is sufficient for modelling non-manifold topologies and is therefore sufficient for modelling general grid generation topologies. U V U min U max V max V min (U,V) (U,v)(u,v) (u,V) 0 0 3 3 0 0 3 3 3 3 0 0 3 0 000 110 011 101 001 111 010 100 (0) (4) (2) (6) (3) (5) (1) (7) 03 Figure 26. Surface orientations. 1 2 1 2 1 2 1 2 1 21 2 1 2 1 2 Efficiency of the GTM adjacency traversals Due to the explicit adjacency information, all adjacency traversals within the GTM data structure are linear. The addition of explicitly defined edges on faces and explicitly defined faces on blocks does not change Weiler's original upward adjacency requirements. Instead, additional relationships within the original matrix needs to be added in order to model the explicit number of edges on a face and faces on a block (remember a block is just a specialized form of the shell). The additional relationships state that a four-edged face can directly access its four adjacent edges and vertices without have to traverse through a loop. However, if the surface is trimmed, the same relationship as in the a loop will have to be traversed before accessing adjacent edges. The same additional type of relationship is also
  • 45. 34 present in shells. The asymptotic efficiency of adjacent element traversals are defined in table 4. Table 4. Efficiency of GTM adjacency traversals. (adjacent) Vertex Edge Loop Face Shell Vertex - VE = Θ|V{E}| VL = Θ|V{EL}|_ VF = Θ|V{EF}| VS = Θ|V{ES}| Edge EV = 2 - EL = Θ|E{L}| EF = Θ|E{LF}| or Θ|E{F}| ES = Θ|E{LS}| or Loop LV = Θ|L{EV}| LE = Θ|L{E}| - LF = Θ|L{F}| LS = Θ|L{FS}| Face FV = Θ|F{LV}| or 4 FE = Θ|F{LE}| or 4 FL = Θ|F{L}| - FS = Θ|F{S}| Shell SV = Θ|S{FV}| or 8 SE = Θ|S{FE}| or 12 SL = Θ|S{FL}| SF = Θ|S{F}| or 6 -
  • 46. 35 CHAPTER V STRUCTURED GRID GENERATION USING THE GTM A multi-block structured grid has multiple regions (blocks) within a single geĆ ometry that have their own corresponding local orientation and coordinate system. For face-to-face matching multi-block topologies, each block must match other blocks at their end vertices as illustrated in Figures 3 and 4. In two dimensions (2D), a cycle of four edges determines a face. In three dimensions (3D), a cycle of four faces with closing end faces (a logical cube) determines a block. Currently, most grid generation systems force their users to manually build block orientations (Akdag and Wulf 1992; Boerstoel and Spekreyse 1991; Dener and Hirsch 1992; Fujitana and Himeno 1991; Jacquotte 1991; Soni 1991; Sorenson and McCann 1992; Stienbrenner, Chawner and Fouts 1990; Thompson 1988). Automatically detecting and building these blocks from a graph of faces, edges and vertices that correspond to the geometry of a configuration is a primary contribution of the GTM to structured grid generation. The only thing the user must do is build the geometry that forms the wire-frame model of the blocking. Automatically detecting faces and blocks assigns a local right-handed coordiĆ nate system to each one. This abstracts the user from having to specify block and face orientations manually. Automatic block detection uses a number of recursive depth first search algorithms (Aho, Hopcroft and Ullman 1974) to quickly build a block topolĆ ogy from a set of wire-frame geometries. The recursive form of the depth first search was chosen since the depth of the call stack never exceeds four (for both faces and blocks) and the nature of the automated block detection problem itself is recursive.
  • 47. 36 Orientations between volumes (more specifically block-block orientations) must be added to the face-use elements in order to abstract the user from keeping track of these orientations manually. These orientations are determined locally for each block using a combination of topological connectivities and statistical evaluation of Jacobian volumes within each block. After local block orientations are determined, global re-orientation routines have been implemented that provide consistent orientations through given sets of blocks. The pseudo-code in figure 27 describes the algorithm for determining four- edge faces (2D blocks). Notice that all the searches begin and end with vertices. The 3D form of this algorithm is exactly the same except that the search begins and ends with edges and the algorithm queries the GTM to see if there are faces at each end to close the volume. The algorithm in figure 27 determines four-sided faces with or withĆ out degeneracies. BuildAllFourEdgeFaces() For each vertex BuildFourEdgeFaces(vertex) VisitAllEdgesAdjacent(vertex) Build FourEdgeFaces(vertex) For each Edge adjacent to the vertex If the Edge has not been visited Increment the number of edges Visit the edge Get the Opposite vertex If a cycle of four edges is formed If UniqueFace(Cycle Of edges) Create a new face else If the number of edges < 4 BuildFourEdgeFaces(Opposite vertex) Decrement the number of edges in the cycle Remove the visit from the edge Figure 27. 2D block detection algorithm.
  • 48. 37 Theanalysisofthealgorithminfigure27isstraightforwardsincethenumber of vertices is always less than two times the number of edges. Also, checking face uniquenessonlyoccurswhenavalidcycleisdetected. AftereachsetofcyclesisdeterĆ mined from a vertex, all of the vertex's adjacent edges are removed from the graph. Thisguaranteesthatallcyclesadjacenttothecurrentvertexarenottraversedagain. Thereforetheexpectedrunningtimecanbeexpressedas C1(Θ(VadjE))+ C2Θ(EadjF) wherethenumberofadjacentedgestoavertexis Θ(VadjE)=Σ |Adj[E]|=Θ(Ε) andthenumberofadjacentfacestoanedgeis Θ(EadjF)=Σ |Adj[F]|=Θ(F) therebysimplifyingtheexpressionfortheoriginalexpectedrunningtimeto: C1Θ(Ε) + C2Θ(F). The constants associated with Θ(Ε) are much larger than the constants associatedwithΘ(F) becauseoftheamountofworkindeterminingacycle. IfweasĆ sumethattheC2Θ(F) doesnotsignificantlyfigureintothecalculationofthetruerun time,itmatchestheexpectedrunningtimeoftherecursivedepthfirstsearchin(Aho, HopcroftandUllman1974). Theactualrunningtimesinfigure28supportthetheory thatthenumberoffaceshasnoeffectontheorderofthealgorithm. Actual running times were computed using a Silicon Graphics R4000 Indigo. Eachmodelwaschosenforitstopologicaluniqueness. Figure28andtable5showthat a linear expansion of expected run time matches the actual run times. It should be notedthatapproximately94%oftheactualrunningtimeintheblockdetectionalgoĆ rithmisspentdeterminingright-handednessofindividualblocks.
  • 49. 38 0 10 20 30 40 50 60 70 Seconds Number of edges 100 200 300 400 500 600 700 Figure 28. Linear progression of actual run times. Table 5. Actual run times and number of topology elements. Seconds Vertices Edges Faces 7 48 104 80 15 94 204 156 30 161 363 273 42 220 508 415 61 292 676 576 Unfortunately, there are topological conditions that create unwanted faces and blocks. Detecting certain classes of surfaces that are inconsistent topologically (such as more than one face that share overlapping edges), are highlighted for the user to post process manually. Geometric checks within the detection algorithms are time consumĆ ing and do not correctly pick the correct surfaces to save. The geometric complexity of a blocking topology will usually produce unwanted faces and blocks. However, it is much faster for a user to post-process an automatically detected blocking system than to build it from scratch. The automated block detection algorithm is an efficient tool for producing mulĆ ti-block structured grids for very large topologies. The automated block detection alĆ gorithm replaces many hours of human effort with a single push of a button and a few seconds (or minutes for very large grids) of machine time. However, the user must still
  • 50. 39 build the block geometry and post process the resulting blocks and faces for geometric errors. Keep in mind this is an automatic block detection algorithm, not an automated blocking algorithm. Automated blocking is an open research issue and not within the scope of our work. Types of structured grids Point matching and face matching determine how structured grids share inĆ formation across topology boundaries. Point matching determines whether or not grid points must align exactly on a shared geometry, and face matching determines whether or not adjacent grids must align along an entire geometry. The GTM data structure supports full-face matching, point matching, and non-point matching. Propagating grid information Taking advantage of four-sided surfaces allows for quick propagation of grid point dimensions and distributions in a computational direction. For structured grid generation, the number of points on an edge must be consistent in a computational plane. A propagation function allows the user to specify points on a single edge, and the system automatically propagates this dimension to all other edges in the plane. Propagation can be done manually in other applications as well. The propagation funcĆ tion determines opposite sides of faces and blocks by a simple array index calculation, not a search of edges on that surface, or a complex set of coded fields. Grid point information storage A dimension determines the number of grid points on a topology element. An edge has a single dimension, a face has two dimensions, and a block or shell has three dimensions. The user may specify grid dimensions for each edge in a geometry configuĆ ration. The edges are then used to compute face, block, and shell dimensions. These dimensions are stored in the edge-use, face-use, block, and shell elements, respecĆ
  • 51. 40 tively. When the structured grid generation process begins, all dimensions are comĆ puted to determine the total number of grid points in the configuration. This allows dynamic memory allocation for all grid points in the configuration. A minimum index and a maximum index (in the array) are associated with each edge-use, face-use, and block. A single index into the global array is associated with each vertex. Once this is done, each edge and face is gridded, and their values placed into the array in the index locations specified by the vertex-uses, edge-uses, and face-uses. Since multiple uses of a face, edge or vertex can have the same indices, the requirement of no grid point duplication is met. Unstructured grid generation is similar, but the total number of grid points cannot be computed prior to generation. Currently, unstructured grid generaĆ tion utilizes a fixed-dimensioned array to store grid points. A grid point distribution can be specified by applying a distribution type and a point spacing at the beginning, end, or both ends of an edge. Distribution types currentĆ ly supported include hyperbolic tangent, hyperbolic sine, exponential or uniform, and are stored on the edge-use. Point spacings can be parametric or physical values and are stored in the vertex-use elements. When the edge grid is computed, the dimension and distribution are used in conjunction with the edge's geometry to define the grid point locations in both paraĆ metric and physical space. Parametric values for each face that share the edge are comĆ puted for surface grid generation. Only one set of parametric values is used to compute the physical XYZ values. As noted before, this is a serious problem if the geometries are not close along the shared edge. Summary It has been determined that the most important features needed for structured grid generation (non-manifold geometry and explicit access of adjacent elements) are contained in the GTM data structure. The addition of explicit four-sided surfaces and
  • 52. 41 six-sided blocks allow quick construction and efficient traversal of multi-block structured grids. The ability to model degenerate geometry allows for all types of structured grid block topologies. The GTM data structures explicitly define adjacency between 2D and 3D geometry and structured grid entities, abstracts the grid from the geometry, and eliminates duplicated grid points
  • 53. 42 CHAPTER VI UNSTRUCTURED GRID GENERATION USING THE GTM In order to compute an unstructured grid, the geometry must be in a topological form that is expected by the grid generator. For 2D unstructured grids, a set of loops (a cycle of non-overlapping topologically adjacent curves) define the boundaries of the domain. Loops are automatically detected topologically without regard for geoĆ metric inconsistencies (intersections within loops or intersection with other loops). A loop self-intersection routine has been implemented to help identify regions where edge grids intersect. Multiple loop intersections are identified by the grid generator. Edge grid generation Specifying grid control attributes on an edge grid is much easier than structured grid generation. A user simply selects the end vertices of all edges and specifies some global spacing. All of the edge grids are computed using a 1D advancing front algoĆ rithm. The user then specifies coarser or finer point spacings as needed on any point (end or interior) on each edge. Additional control features include growth factors for both edge and surface algorithms that affect the growth of spacings from the boundĆ aries. An important contribution of the GTM to setting point spacings is the ability to match a point spacing to the shortest length curve adjacent to a vertex. For example, on a large configuration where hundreds of surfaces are used to represent the model, there are certain to be regions where very short curves share the same vertex as very long curves. If, as shown in figure 29, a global spacing is specified that is much larger than
  • 54. 43 the shortest curve, poor quality triangles may be created in the surrounding region. An automatic solution to this problem is to check surrounding curves to determine if the point spacing is larger than the shortest curve. If a shorter curve is found, as shown in figure 29, then the point spacing is automatically matched to the arc-length of the curve. This eliminates small angled elements (caused by point spacing differĆ ences on curves) around the vertex. An undesirable side effect of matching point spacings may be that too many points are created in a region as shown in figure 30. The user must decide between increasing the number of points in a region or creating small angled elements. Figure 29. A point spacing that is larger than the adjacent curves. df1 Figure 30. Effect of matching point spacings. dfm Vector normalization A 3D unstructured grid needs a topologically valid shell of non-overlapping, non-intersecting adjacent surfaces that form a complete solid. The surfaces in the shell must have all have normal vectors that either point into the domain or out of the domain. The algorithm, as illustrated in figure 31, to compute these consistent normal
  • 55. 44 vectors starts with an arbitrary surface as a starting point, then normalizes all other adjacent surfaces normal vectors to have the same direction. ÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇÇÇÇ ÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇÇÇÇ Figure 31. Vector normalization. ÁÁÁÁÁÁ ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÉÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉÉ ÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇÇÇÇ ÇÇÇÇÇÇ ÇÇÇÇÇÇÇÇÇÇÇÇ ÁÁÁÁÁ ÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉ Normalize Trimmed surfaces Three dimensional unstructured grids utilize trimmed surface topologies. A trimmed surface has an arbitrary number of holes or bounding edges. The trimming curves are parametric curves of the parent surface. Where trimmed surfaces are adjaĆ cent to other trimmed surfaces, the parent surfaces must have their own parametric definition associated with the shared edge. This is accomplished by associating the parametric definition of a curve with the use of an edge as illustrated in figure 32. Multi-volume unstructured grids At least one valid shell must exist to create a volume grid. Multiple valid shells may exist when computing a multi-material problem. Multiple shells allow the user to specify different boundary conditions to each shell and shell boundary. Automated shell detection has not been implemented, since it is assumed that only a single volume grid will be generated. Multiple shell detection needs to be implemented before mulĆ ti-volume unstructured grids can be automatically generated.
  • 56. 45 F2 F1 F3fu 1 fu2fu3 eu1 eu2eu3 F1 F2F3 Figure 32. Topology of three faces sharing an edge. E F Face E Edge fu face-use eu edge-use PC Parametric Curve E PC3 PC2 PC1 Summary It has been determined that the most important features needed for unstructured grid generation (non-manifold geometry and explicit access of adjacent elements) are contained in the GTM data structure. We have shown that the GTM data structure efficiently supports 2D and 3D advancing front local reconnection (AFLR) unstructured grids (Marcum and Weatherill 1994). The GTM data structure directly supports the method of incrementally building edge grids, surface grids and volume grids, and has constructed high quality unstructured computational fluid dynamics (CFD) grids. The GTM models non-manifold topologies with degenerate geometry, explicitly defines adjacency between 2D and 3D geometry and grid entities, abstracts the grid from the geometry, eliminates duplicated grid points and provides surface direction normalization for unstructured grid generation.
  • 57. 46 CHAPTER VII RESULTS A variety of complex geometric configurations have been successfully gridded using both structured and unstructured grid generators based on the GTM data structures. Aerospace, mechanical, automotive, nautical and oceanographic disciplines make up the majority of geometries gridded. Different configurations are presented to show that the GTM data structures are able to model extremely complex CFD and mechanical configurations. Each configuration was chosen to represent a class of problems that the GTM data structures could model. All of the configurations presented in this chapter have been gridded using either the SolidMesh unstructured grid generator or GUM-B the general unstructured multi-block structured grid generator. Every configuration has a representative picture of the grid and a description of the geometry. There is no particular topological uniqueness to any of the configurations and there is no way to quantify what is geometrically complex and what is not. These configurations are presented in order to show the generality of the GTM data structures as well as the high quality grids that have been built using the data structures. SolidMesh SolidMesh is an unstructured grid generation system that uses the GTM data structures. SolidMesh incorporates a small CAD system for surface repair, and both 2D and 3D unstructured surface grid generators. Over sixty 2D and 3D unstructured grids have been computed using SolidMesh to both test and prove the feasibility of the GTM data structures.
  • 58. 47 A large number of grids have been generated by the Boeing Aerospace CFD group. SolidMesh grids have played a major role in the Delta II and Delta III satellite launch vehicle programs. Darren Fricker, a lead engineer for the Boeing Aerospace CFD group says: The SolidMesh software package is a very powerful and user-friendly system for the generation of unstructured grids for computational field simulation. Many software systems either sacrifice capabilities to provide a user-friendly environment or sacrifice user-friendly features to provide a generalized, powerful system. The developers of SolidMesh have created a user-friendly environment without sacrificing the important capabilities desired in a generalized grid generation system. Every aspect of the unstructured grid generation process can be performed efficiently within the SolidMesh system. Also, for occasions where the geometry was generated externally to SolidMesh, SolidMesh has the capability to read a variety of file formats which define the surface geometry, such as IGES and PLOT3D formats. The CAD repair tools are relatively easy to use for correcting inconsistencies and flaws in externally-generated geometry data sets and the CAD utilities provide the capability to create trimmed surfaces from intersecting surface patches. The system provides the flexibility required to tackle most CFD problems. Additionally, by incorporating the Advancing Front Local Reconnection (AFLR) unstructured grid generation algorithms for the mesh generation, extremely high-quality grids are created very rapidly. Large surface grids (approximately 100,000 triangles) are generated in a matter of seconds, up to an order of magnitude faster than some other systems. The speed of the surface mesh generation combined with the "toggling" features of the system enables the user to optimize the surface grid rapidly and interactively. Darren Fricker, Boeing Aerospace (Fricker 1997) Each of the unstructured configurations presented below detail the number of curves and surfaces that make up the geometry, the number of triangles, points and tetrahedra in the volume grid and pictures of the surface and volume grid maximum angle quality measure statistical bar charts. Some of the configurations show a representative solution to show that the grids have been used for production CFD. The grid quality measures presented with the configurations show the maximum angles in surface triangles and tetrahedra. An acceptable isotropic unstructured surface grid for CFD calculations has a maximum angle of 120 degrees or less with a standard deviation of 7 degrees or less. Most triangles (99.5%) will have
  • 59. 48 anglesbetween30and90degrees. Anacceptableisotropicunstructuredvolumegrid hasamaximumangleof160degreesorlesswithastandarddeviationof17degreesor less. Mosttetrahedra(99.5%)willhavemaximumanglesbetween30and120degrees. Theminimumanglesinsurfaceandvolumegridsareusuallydictatedbythegeometry and cannot be changed by grid point placement (Marcum 1997). All of the configurationsbelowhavegridsthatmeetthesecriteria. Themaximumanglequality measurestatisticalbarchartsarepresentedtobackupthisclaim. Table6presentsthegridgenerationresultsfortheunstructuredconfigurations. The numbers of curves and surfaces determines the geometry size. The number of points and tetrahedra (tets.) the grid size. The minimun and maximum tetrahedra angles indicate the grid quality. The time indicates the number of hours (or weeks) spentpreparingthegeometryandcomputingthegrid. Table6. Unstructuredgridgenerationresults. Configuration VolumeGridResults Curves SurĆ faces Points Tets. Min. Angle Max. Angle Time Orbiter 629 215 150,206 1,673,755 1.917 155.303 33hrs. DeltaII 399 172 774,972 4,341,558 8.571 156.832 - Fighter 71 33 64,924 349,018 6.514 153.843 16hrs. Aim9x ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 96 ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 32 ÄÄÄÄÄ ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ 153,269 ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 828,231 ÄÄÄÄÄ ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ 12.677 ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 158.845 ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 8hrs. Turbofan ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄ 96 ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄ 52 ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ ÄÄÄÄÄ 253,987 ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄ 1,367,140 ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ ÄÄÄÄÄ 11.690 ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄ 159.386 ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄ 16hrs. Combustor ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ746 ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ139 ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ85,476 ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ431,406 ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ5.665 ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ156.561 ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ48hrs. Submarine ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ110 ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ48 ÄÄÄÄÄ ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ215,999 ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ1,211,577 ÄÄÄÄÄ ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ14.151 ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ152.798 ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ6hrs. Destroyer ÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄ98 ÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄ66 ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ154,438 ÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄ787,633 ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ8.472 ÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄ156.142 ÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄ6hrs. Corvette ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 359 ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 103 ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ 61,103 ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 288,720 ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ 10.900 ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 159.420 ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 48hrs. Manifold ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 148 ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 80 ÄÄÄÄÄ ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ 78,667 ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 394,805 ÄÄÄÄÄ ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ 12.986 ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 152.992 ÄÄÄÄ ÄÄÄÄ ÄÄÄÄÄÄÄÄ 14hrs. Explorer ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄ665 ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄ340 ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ ÄÄÄÄÄ159,037 ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄ841,888 ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ ÄÄÄÄÄ7.035 ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄ155.807 ÄÄÄÄÄÄÄÄ ÄÄÄÄ ÄÄÄÄ4wks. Pump ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ1,932 ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ336 ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ30,908 ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ123,470 ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ1.179 ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ155.297 ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ2wks. Crankshaft ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ308 ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ147 ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ8,008 ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ31,729 ÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ10.430 ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ149.074 ÄÄÄÄ ÄÄÄÄÄÄÄÄ ÄÄÄÄ16hrs.
  • 60. 49 The NASA space shuttle orbiter grid and solution were computed on a geometry contributed the the ERC by NASA Johnson's CFD group (Gomez 1995). The geometry, grid and solution shown in figure 33 were prepared internally using SolidMesh and FUN3D (Anderson 1994). The initial topology repair and grid generation took approximately 33 hours. The original geometry was split from a full 3D model consisting of 371 surfaces with no curves to a symmetrical geometry consisting of 215 surfaces and 629 curves. The volume grid consists of 150,206 surface triangles, 319,319 points and 1,673,755 tetrahedra. Figure 33 NASA space shuttle grid, solution and quality measures.
  • 61. 50 The Boeing Delta II satellite launch vehicle is built under the Medium Expendable Launch Vehicle Services (MELVS) contract for NASA. The geometry, grid and solution shown in figure 34 were prepared by Darren Fricker at the Boeing using SolidMesh and MSFENS (Fricker 1996). The geometry consists of 172 surfaces and 399 trimming curves. The volume grid consists of 184,978 surface triangles, 774,972 points and 4,341,558 tetrahedra. Figure 34. Boeing Delta II grid, solution and quality measures.
  • 62. 51 The Boeing experimental fighter configuration has no formal classification and was used a proof of concept test for grid generation tools (Gatzke 1993). The initial topology repair and grid generation took approximately 16 hours. The geometry, grid and solution shown in figure 35 were prepared internally using SolidMesh and MSFENS. The fighter geometry consists of 33 surfaces and 71 trimming curves. The volume grid consists of 24,322 surface triangles, 64,924 points and 349,018 tetrahedra. Figure 35. McDonnell Douglas experimental fighterr grid, solution and quality measures.
  • 63. 52 The aim9x geometry, grid and solution shown in figure 36 were prepared internally using SolidMesh and FUN3D (Anderson 1994). The initial topology repair and grid generation took approximately 8 hours. The geometry consists of 52 surfaces and 96 trimming curves. The volume grid consists of 55,028 surface triangles, 153,269 points and 828,231 tetrahedra. Figure 36. Aim9x sidewinder missile grid, solution and quality measures.
  • 64. 53 The turbofan geometry and grid shown in figure 37 were prepared internally using SolidMesh (Janus 1996). The initial topology repair and grid generation took approximately 16 hours. The geometry consists of 52 surfaces and 96 trimming curves. The volume grid consists of 98,950 surface triangles, 253,987 points and 1,367,140 tetrahedra. Figure 37. NASA 1.15 pressure ratio fan stage grid and quality measures.
  • 65. 54 The grid shown in figure 38 is a 1/18 symmetric section of a United Technologies jet engine combustor. The geometry and grid were prepared internally using SolidMesh and took approximately 48 hours (Dannenhoffer 1992). The geometry consists of 139 surfaces and 746 trimming curves. The volume grid consists of 52,476 surface triangles, 85,756 points and 431,406 tetrahedra. Figure 38. United Technologies jet engine combustor grid and quality measures.
  • 66. 55 The grid shown in figure 39 is a generic submarine for grid generation and flow solver proof of concept testing (Whitfield 1997). The geometry, grid and solution were prepared internally using SolidMesh and FUN3D (Anderson 1994). The initial topology repair and grid generation took approximately 6 hours. The geometry consists of 48 surfaces and 110 trimming curves. The volume grid consists of 47,428 surface triangles, 215,999 points and 1,211,577 tetrahedra. Figure 39. Generic submarine grid, solution and quality measures.
  • 67. 56 The grid shown in figure 40 is a generic destroyer for grid generator proof of concept testing (Whitfield 1997). The geometry and grid were prepared internally using SolidMesh. The initial topology repair and grid generation took approximately 6 hours. The geometry consists of 66 surfaces and 98 trimming curves. The volume grid consists of 87,514 surface triangles, 154,438 points and 787,633 tetrahedra. Figure 40. Generic ship hull and propeller grid and quality measures.
  • 68. 57 The General Motors Corvette geometry and grid shown in figure 41 were prepared internally using SolidMesh (Johnson 1994). The initial topology repair and grid generation took approximately 48 hours. The geometry consists of 103 surfaces and 359 trimming curves. The volume grid consists of 50,054 surface triangles, 61,103 points and 288,720 tetrahedra. Figure 41. General Motors Corvette grid and quality measures.
  • 69. 58 The General Motors exhaust manifold geometry and grid shown in figure 42 were prepared internally using SolidMesh (Johnson 1994). The initial topology repair and grid generation took approximately 14 hours. The geometry consists of 80 surfaces and 148 trimming curves. The volume grid consists of 48,282 surface triangles, 78,667 points and 394,805 tetrahedra. Figure 42. General Motors exhaust manifold grid and quality measures.
  • 70. 59 The Ford Explorer geometry and grid shown in figure 43 were prepared internally using SolidMesh (Gilda 1994). The initial topology repair and grid generation took approximately 1 month. The geometry consists of 340 surfaces and 665 trimming curves. The volume grid consists of 69,744 surface triangles, 159,037 points and 841,888 tetrahedra. Figure 43. Ford Explorer grid and quality measures.
  • 71. 60 The General Motors crankshaft geometry and grid shown in figure 44 were prepared internally using SolidMesh (Johnson 1994). The initial topology repair and grid generation took approximately 16 hours. The geometry consists of 147 surfaces and 308 trimming curves. The volume grid consists of 9,980 surface triangles, 8,008 points and 31,729 tetrahedra. Figure 44. General Motors generic crankshaft grid and quality measures.
  • 72. 61 The General Motors pump housing geometry and grid shown in figure 45 were prepared internally using SolidMesh (Johnson 1994). The initial topology repair and grid generation took approximately 80 hours. The geometry consists of 336 surfaces and 1,932 trimming curves. The volume grid consists of 40,534 surface triangles, 30,908 points and 123,470 tetrahedra. Figure 45. General Motors generic pump housing grid and quality measures.
  • 73. 62 GUM–B GUM-B is a structured grid generation system that uses the GTM data structures. GUM-B incorporates a small CAD system for surface repair, and a 3D structured surface grid generator. Many structured grids have been computed to both test and prove the feasibility of the GTM data structures. Mike Remotigue, the main developer for the GUM-B system says: The topology data structure, developed by Adam Gaither, has helped evolve structured grid generation towards automation. Automatic structured grid generation has been accomplished by the abstraction of the geometry and the associated orientation and by the explicit knowledge of adjacent elements. The abstraction and the adjacency unburdens the user from keeping track of this information when decomposing the geometric domain. The user ultimately needs to concentrate their efforts on creating a valid decomposition of the complex geometry. Point propagation, face-to-face or block-to-block connectivities, and grid regeneration are all determined through the topology. Further benefit of the topology data structure allowed for automatic grid alignment both in visualization and overall block orientation. Through the edges/faces, the adjoining faces/blocks orientation are known. This allows information of a block to pass through the face into an adjoining block, such as grid plane sweeping or the orientation of a block. Mike Remotigue (Remotigue 1997) A substantial number of GUM-B users have been established at NASA Johnson, Penn State University's Advanced Research Lab (ARL), Eglin Air Force base and the CFD Lab here in the ERC. Two configurations were selected as representitive types of grids that can be computed using GUM-B: The MIT notional geometry and the tip vertex geometries. They were selected to show complex topological blocking schemes and a well convereged solutions. The MIT notional geometry, grid and solution shown in figure 47 were prepared internally using GUM-B (Whitfield 1997) and UNCLE (Sheng et al. 1997). The initial topology repair and grid generation took approximately 2 weeks. The geometry consists of 120 surfaces and 26 blocks. The volume grid consists of 500,000 points.
  • 74. 63 Table 7. Structured grid generation results. Configuration Volume Grid Results Surfaces Blocks Points Time MIT Notional 120 26 500,000 2 weeks Tip Vortex 100 8 3,000,000 24 hours Figure 46. MIT notional geometry grid and solution. The tip vortex geometry, grid and solution in figure 48 were prepared internally using GUM-B (Whitfield 1997) and UNCLE (Sheng et al. 1996). The initial topology repair and grid generation took approximately 24 hours. The geometry consists of 100 surfaces and 8 blocks. The volume grid consists of 3,000,000 poiints.
  • 75. 64 Figure 47. Tip vortex grid and solution.
  • 76. 65 CHAPTER VIII CONCLUSION It has been determined that the most important features needed for grid generation (non-manifold geometry and explicit access of adjacent elements) are contained in the RENM data structure. We have modified the original RENM data structure to produce the GTM data structure. The addition of explicit four-sided surfaces and six-sided blocks to the GTM data structure allows for quick construction and efficient traversal of multi-block structured grids. Other modifications to the GTM data structure include the elimination of the loop-use entity as well as the ability to model degenerate geometry conditions. The loop-use entity was eliminated since both the loop and loop-use were redundant for grid generation purposes. Modelling degenerate geometry conditions is not covered by the RENM data structure but was added to the GTM data structure. We have shown that the GTM data structure efficiently supports 2D and 3D advancing front local reconnection (AFLR) unstructured grids (Marcum and Weatherill 1994) as well as 3D transfinite interpolation, elliptic and hyperbolic structured grids (Thompson 1992). The GTM data structure directly supports the method of incrementally building edge grids, surface grids and volume grids, and has constructed high quality computational fluid dynamics (CFD) grids. The GTM models non-manifold topologies, explicitly defines adjacency between 2D and 3D geometry and grid entities, abstracts the grid from the geometry, eliminates duplicated grid points, provides explicit four sided surfaces and six-sided blocks and provides surface direction normalization for unstructured grid generation.