This document is a thesis submitted by Adam Gaither to Mississippi State University in partial fulfillment of the requirements for a Master of Science degree in Computer Science. The thesis develops a topology data structure called the Grid Topology Model (GTM) that supports both structured and unstructured grid generation methods for computational fluid dynamics. The GTM is based on the non-manifold Radial-Edge topology data structure and has been implemented and used in the SolidMesh and GUM-B grid generation systems. Several examples of high quality computational fluid dynamics grids generated with these systems are presented.
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.
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.
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
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.
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.