Title: Joaquim Bento
1A Brief Survey on Mesh Generation
- Joaquim Bento
- CAVALCANTE-NETO
Computer Graphics, Virtual Reality and Animation
Group www.crab.ufc.br
Federal University of Ceará www.ufc.br
2Summary
- Meshing Algorithms
- Tri/Tet Methods
- Quad/Hex Methods
- Hybrid Methods
- Mesh Post Processing
- Smoothing
- Topology Improvement
3Meshing Algorithms(Owen, 2003)
4Tri/Tet Methods
Octree Advancing Front Delaunay
5Octree/Quadtree
- Define intial bounding box (root of quadtree)
- Recursively break into 4 leaves per root to
resolve geometry - Find intersections of leaves with geometry
boundary - Mesh each leaf using corners, side nodes and
intersections with geometry - Delete Outside
- (Yerry and Shephard, 84), (Shepherd and Georges,
91)
6Octree/Quadtree
QMG, Cornell University
7Octree/Quadtree
QMG, Cornell University
8Advancing Front
- Begin with boundary mesh - define as initial
front - For each edge (face) on front, locate ideal node
C based on front AB
9Advancing Front
D
A
B
- Determine if any other nodes on current front are
within search radius r of ideal location C
(Choose D instead of C)
10Advancing Front
D
- Book-Keeping New front edges added and deleted
from front as triangles are formed - Continue until no front edges remain on front
11Advancing Front
- Book-Keeping New front edges added and deleted
from front as triangles are formed - Continue until no front edges remain on front
12Advancing Front
- Book-Keeping New front edges added and deleted
from front as triangles are formed - Continue until no front edges remain on front
13Advancing Front
- Book-Keeping New front edges added and deleted
from front as triangles are formed - Continue until no front edges remain on front
14Advancing Front
r
C
A
B
- Where multiple choices are available, use best
quality (closest shape to equilateral) - Reject any that would intersect existing front
- Reject any inverted triangles (AB X AC gt 0)
- (Lohner,8896)(Lo,91)
15Delaunay
Empty Circle (Sphere) Property No other vertex
is contained within the circumcircle
(circumsphere) of any triangle (tetrahedron)
16 Delaunay
Delaunay Triangulation Obeys empty-circle
(sphere) property
17 Delaunay
Non-Delaunay Triangulation
18 Delaunay
X
- Lawson Algorithm
- Locate triangle containing X
- Subdivide triangle
- Recursively check adjoining triangles to ensure
empty-circle property. Swap diagonal if needed - (Lawson,77)
19 Delaunay
X
- Lawson Algorithm
- Locate triangle containing X
- Subdivide triangle
- Recursively check adjoining triangles to ensure
empty-circle property. Swap diagonal if needed - (Lawson,77)
20 Delaunay
- Bowyer-Watson Algorithm
- Locate triangle that contains the point
- Search for all triangles whose circumcircle
contain the point (dltr) - Delete the triangles (creating a void in the
mesh) - Form new triangles from the new point and the
void boundary - (Watson,81)
X
21 Delaunay
- Bowyer-Watson Algorithm
- Locate triangle that contains the point
- Search for all triangles whose circumcircle
contain the point (dltr) - Delete the triangles (creating a void in the
mesh) - Form new triangles from the new point and the
void boundary - (Watson,81)
X
22Delaunay
- Begin with Bounding Triangles (or Tetrahedra)
23Delaunay
- Insert boundary nodes using Delaunay method
(Lawson or Bowyer-Watson)
24Delaunay
- Insert boundary nodes using Delaunay method
(Lawson or Bowyer-Watson)
25Delaunay
- Insert boundary nodes using Delaunay method
(Lawson or Bowyer-Watson)
26Delaunay
- Insert boundary nodes using Delaunay method
(Lawson or Bowyer-Watson)
27Delaunay
- Insert boundary nodes using Delaunay method
(Lawson or Bowyer-Watson)
28Delaunay
- Recover boundary
- Delete outside triangles
- Insert internal nodes
29Delaunay
h
- Grid Based
- Nodes introduced based on a regular lattice
- Lattice could be rectangular, triangular,
quadtree, etc - Outside nodes ignored
Node Insertion
30Delaunay
- Grid Based
- Nodes introduced based on a regular lattice
- Lattice could be rectangular, triangular,
quadtree, etc - Outside nodes ignored
Node Insertion
31Delaunay
- Centroid
- Nodes introduced at triangle centroids
- Continues until edge length,
Node Insertion
32Delaunay
l
- Centroid
- Nodes introduced at triangle centroids
- Continues until edge length,
Node Insertion
33Delaunay
- Circumcenter (Guaranteed Quality)
- Nodes introduced at triangle circumcenters
- Order of insertion based on minimum angle of any
triangle - Continues until minimum angle gt predefined
minimum
Node Insertion
(Chew,Ruppert,Shewchuk)
34Delaunay
- Circumcenter (Guaranteed Quality)
- Nodes introduced at triangle circumcenters
- Order of insertion based on minimum angle of any
triangle - Continues until minimum angle gt predefined
minimum
Node Insertion
(Chew,Ruppert,Shewchuk)
35Delaunay
A
B
C
- Advancing Front
- Front structure maintained throughout
- Nodes introduced at ideal location from current
front edge
(Marcum,95)
Node Insertion
36Delaunay
- Advancing Front
- Front structure maintained throughout
- Nodes introduced at ideal location from current
front edge
(Marcum,95)
Node Insertion
37Delaunay
- Voronoi-Segment
- Nodes introduced at midpoint of segment
connecting the circumcircle centers of two
adjacent triangles
(Rebay,93)
Node Insertion
38Delaunay
- Voronoi-Segment
- Nodes introduced at midpoint of segment
connecting the circumcircle centers of two
adjacent triangles
(Rebay,93)
Node Insertion
39Delaunay
h
h
h
- Edges
- Nodes introduced at along existing edges at lh
- Check to ensure nodes on nearby edges are not too
close
(George,91)
Node Insertion
40Delaunay
- Edges
- Nodes introduced at along existing edges at lh
- Check to ensure nodes on nearby edges are not too
close
(George,91)
Node Insertion
41Delaunay
- Boundary Intersection
- Nodes and edges introduced where Delaunay edges
intersect boundary
Boundary Constrained
42Delaunay
- Boundary Intersection
- Nodes and edges introduced where Delaunay edges
intersect boundary
Boundary Constrained
43Delaunay
- Local Swapping
- Edges swapped between adjacent pairs of triangles
until boundary is maintained
Boundary Constrained
44Delaunay
- Local Swapping
- Edges swapped between adjacent pairs of triangles
until boundary is maintained
Boundary Constrained
45Delaunay
- Local Swapping
- Edges swapped between adjacent pairs of triangles
until boundary is maintained
Boundary Constrained
46Delaunay
- Local Swapping
- Edges swapped between adjacent pairs of triangles
until boundary is maintained
Boundary Constrained
47Delaunay
- Local Swapping
- Edges swapped between adjacent pairs of triangles
until boundary is maintained
(George,91)(Owen,99)
Boundary Constrained
48Delaunay
C
D
- Local Swapping Example
- Recover edge CD at vector Vs
Boundary Constrained
49Delaunay
E3
C
D
E2
E1
- Local Swapping Example
- Make a list (queue) of all edges Ei, that
intersect Vs
Boundary Constrained
50Delaunay
E3
C
D
E2
- Local Swapping Example
- Swap the diagonal of adjacent triangle pairs for
each edge in the list
Boundary Constrained
51Delaunay
E3
C
D
- Local Swapping Example
- Check that resulting swaps do not cause
overlapping triangles. I they do, then place
edge at the back of the queue and try again later
52Delaunay
C
D
- Local Swapping Example
- Check that resulting swaps do not cause
overlapping triangles. If they do, then place
edge at the back of the queue and try again later
53Delaunay
C
D
- Local Swapping Example
- Final swap will recover the desired edge.
- Resulting triangle quality may be poor if
multiple swaps were necessary - Does not maintain Delaunay criterion!
54Quad/Hex Methods
Structured
Unstructured
- Requires geometry to conform to specific
characteristics - Regular patterns of quads/hexes formed based on
characteristics of geometry
- No specific requirements for geometry
- quads/hexes placed to conform to geometry.
- No connectivity requirement (although
optimization of connectivity is beneficial)
- Internal nodes always attached to same number of
elements
55Structured
Algorithm
Geometry Requirements
- Trans-finite Interpolation (TFI)
- maps a regular lattice of quads onto polygon
- 4 topological sides
- opposite sides must have similar intervals
(Thompson,8899)
(Cook,82)
Mapped Meshing
56Structured
Geometry Requirements
- 6 topological surfaces
- opposite surfaces must have similar mapped meshes
3D Mapped Meshing
57Structured
Block-Structured
http//www.gridpro.com/gridgallery/tmachinery.html
http//www.pointwise.com/case/747.htm
Mapped Meshing
58Structured
- Geometry Requirements
- source and target surfaces topologicaly similar
- linking surfaces mapable or submapable
Sweeping
59Structured
linking surfaces
target
source
- Geometry Requirements
- source and target surfaces topologicaly similar
- linking surfaces mapable or submapable
Sweeping
60Structured
- Geometry Requirements
- source and target surfaces topologicaly similar
- linking surfaces mapable or submapable
Sweeping
61Structured
- Geometry Requirements
- source and target surfaces topologicaly similar
- linking surfaces mapable or submapable
Sweeping
62Structured
- Geometry Requirements
- source and target surfaces topologicaly similar
- linking surfaces mapable or submapable
Sweeping
63Structured
- Geometry Requirements
- source and target surfaces topologicaly similar
- linking surfaces mapable or submapable
Sweeping
64Structured
- Geometry Requirements
- source and target surfaces topologicaly similar
- linking surfaces mapable or submapable
Sweeping
65Structured
- Geometry Requirements
- source and target surfaces topologicaly similar
- linking surfaces mapable or submapable
Sweeping
66Structured
Gambit, Fluent Inc.
Sweeping
Cubit, Sandia National Labs
67Unstructured Hex
- Tetrahedra splitting
- Each tetrahedtra split into 4 hexahedra
- Typically results in poor angles
68Unstructured Hex
- Tetrahedra splitting
- Each tetrahedtra split into 4 hexahedra
- Typically results in poor angles
(Taniguchi, 96)
69Unstructured Hex
Example of geometry meshed by tetrahedra splitting
70Unstructured-Quad
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
71Unstructured-Quad
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
72Unstructured-Quad
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
73Unstructured-Quad
Form new row and check for overlap
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
74Unstructured-Quad
Insert Wedge
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
75Unstructured-Quad
Seams
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
76Unstructured-Quad
Close Loops and smooth
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
77Unstructured-Hex
Plastering
- 3D extension of paving
- Row-by row or element-by-element
(Blacker, 93)
78Unstructured-Hex
Plastering
- 3D extension of paving
- Row-by row or element-by-element
(Blacker, 93)
79Unstructured-Hex
Plastering
- 3D extension of paving
- Row-by row or element-by-element
(Blacker, 93)
80Unstructured-Hex
Plastering
- 3D extension of paving
- Row-by row or element-by-element
(Blacker, 93)
81Unstructured-Hex
Plastering
- 3D extension of paving
- Row-by row or element-by-element
(Blacker, 93)
82Unstructured-Hex
Plastering
- 3D extension of paving
- Row-by row or element-by-element
(Blacker, 93)
83Unstructured-Hex
Plastering
- 3D extension of paving
- Row-by row or element-by-element
(Blacker, 93)
84Unstructured-Hex
Exterior Hex mesh
Remaining Void
Ford Crankshaft
PlasteringTet Meshing
Hex-Dominant Meshing
85 Unstructured-Quad
Q-Morph
86 Unstructured-Quad
Q-Morph
87 Unstructured-Quad
Q-Morph
88 Unstructured-Quad
Q-Morph
89 Unstructured-Quad
Q-Morph
90 Unstructured-Quad
Q-Morph
91Unstructured-Hex
(Owen and Saigal, 00)
H-Morph
Hex-Dominant Meshing
92Unstructured-Hex
(Owen and Saigal, 00)
H-Morph
Hex-Dominant Meshing
93Unstructured-Hex
94Direct
Grid-Based
- Generate regular grid of quads/hexes on the
interior of model - Fit elements to the boundary by projecting
interior faces towards the surfaces - Lower quality elements near boundary
- Non-boundary conforming
95Direct
Grid-Based
- Generate regular grid of quads/hexes on the
interior of model - Fit elements to the boundary by projecting
interior faces towards the surfaces - Lower quality elements near boundary
- Non-boundary conforming
96Direct
Grid-Based
- Generate regular grid of quads/hexes on the
interior of model - Fit elements to the boundary by projecting
interior faces towards the surfaces - Lower quality elements near boundary
- Non-boundary conforming
97 Direct
Grid-Based
- Generate regular grid of quads/hexes on the
interior of model - Fit elements to the boundary by projecting
interior faces towards the surfaces - Lower quality elements near boundary
- Non-boundary conforming
98Direct
(Schneiders,96)
Grid-Based
99Unstructured-Hex
Grid-Based
100Direct
Medial Axis
- Medial Object - Roll a Maximal circle or sphere
through the model. The center traces the medial
object - Medial Object used as a tool to automatically
decompose model into simpler mapable or sweepable
parts
(Price, 9597)(Tam,91)
101Direct
Medial Axis
- Medial Object - Roll a Maximal circle or sphere
through the model. The center traces the medial
object - Medial Object used as a tool to automatically
decompose model into simpler mapable or sweepable
parts
(Price, 9597)(Tam,91)
102Direct
Medial Axis
- Medial Object - Roll a Maximal circle or sphere
through the model. The center traces the medial
object - Medial Object used as a tool to automatically
decompose model into simpler mapable or sweepable
parts
(Price, 9597)(Tam,91)
103Direct
Medial Axis
- Medial Object - Roll a Maximal circle or sphere
through the model. The center traces the medial
object - Medial Object used as a tool to automatically
decompose model into simpler mapable or sweepable
parts
(Price, 9597)(Tam,91)
104Direct
Medial Axis
- Medial Object - Roll a Maximal circle or sphere
through the model. The center traces the medial
object - Medial Object used as a tool to automatically
decompose model into simpler mapable or sweepable
parts
(Price, 9597)(Tam,91)
105Direct
Medial Axis
- Medial Object - Roll a Maximal circle or sphere
through the model. The center traces the medial
object - Medial Object used as a tool to automatically
decompose model into simpler mapable or sweepable
parts
(Price, 9597)(Tam,91)
106Direct
Medial Axis
- Medial Object - Roll a Maximal circle or sphere
through the model. The center traces the medial
object - Medial Object used as a tool to automatically
decompose model into simpler mapable or sweepable
parts
(Price, 9597)(Tam,91)
107Direct
3D Medial Object examples (from FEGS website,
URL http//www.fegs.co.uk/medial.html)
108Direct
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
109Direct
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
110Direct
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
111Direct
Form new row and check for overlap
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
112Direct
Insert Wedge
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
113Direct
Seams
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
114Direct
Close Loops and smooth
Paving
- Advancing Front Begins with front at boundary
- Forms rows of elements based on front angles
- Must have even number of intervals for all-quad
mesh
(Blacker,92)(Cass,96)
115Direct
Paving
- Row Choice - beginning and ending node of next
sequence or row of elements to be added is found - Closure Check - Check that more than six nodes
remain in paving boundary (Use special closure
techniques) - Row Generation - Add the row to the boundary
- Smooth - smooth the floating nodes to improve
mesh quality - Seam - Small interior angles are seamed by
connecting opposing elements - Row adjustment - insert tucks or wedges into the
row to prevent elements from becoming too large
or too small - Intersection - Paving boundary is checked for
intersection with itself or with another paving
boundary. Intersection are connected to form new
paving boundaries - Cleanup - Completed mesh is adjusted to improve
local quality or topology
(Blacker,91)
116Hybrid Methods
CFD Meshing
Image courtesy of Roy P. Koomullil, Engineering
Research Center, Mississippi State University,
http//www.erc.msstate.edu/roy/
Image courtesy of acelab, University of Texas,
Austin, http//acelab.ae.utexas.edu
117Hybrid Methods
Heat sink meshed with hexes, tets and pyramids
118Hybrid Methods
Pyramid Elements for maintaining compatibility
between hex and tet elements (Owen,00)
119Mesh Post-Processing
Smoothing
Topological Improvement
120Post-Processing
Smoothing
Adjust locations of nodes without changing mesh
topology (element connectivity)
Topological Improvement
Change connectivity without affecting node
locations
121Post-Processing
Smoothing
- Averaging Methods
- Optimization Based
- Distortion Metrics
- Combined Laplacian/Optimization based smoothing
122Smoothing
P4
Averaging Methods
P3
P
P5
P2
P1
Laplacian
(Field, 1988)
123Smoothing
P4
Averaging Methods
P3
P
P5
Centroid of attached nodes
Can create inverted elements
P2
P1
Laplacian
(Field, 1988)
124Smoothing
P4
Averaging Methods
P
Centroid of attached nodes
P5
P1
Can create inverted elements
P3
P6
P2
Laplacian
125Smoothing
P4
Averaging Methods
Centroid of attached nodes
P5
P1
Can create inverted elements
P3
P
P6
P2
Laplacian
126Smoothing
P4
Averaging Methods
Constrained Laplacian Do not move node unless
minimum distortion metric is improved
P
Centroid of attached nodes
P5
P1
Can create inverted elements
P3
P6
P2
Laplacian
127Smoothing
Averaging Methods
Weighted average of triangle centroids
C4
C4
P
C3
C1
A1
C2
Aiarea of triangle i
A2
Cicentroid of triangle i
Area Centroid Weighted
128Smoothing
P4
P3
Averaging Methods
Average of ideal triangles
P
P5
P2
Average Equilateral
P1
129Post-Processing
Smoothing
- Averaging Methods
- Optimization Based
- Distortion Metrics
- Combined Laplacian/Optimization based smoothing
Topological Improvement
- Triangles
- Tetrahedra
- Quads
130Topology Improvement
Diagonal Flip
Possible Criteria
Comparison before/after
Delaunay criterion
Distortion metrics
Node valence
Deviation from surface
(Edelsbrunner, Shah, 1996)
(Canann, Muthukrishnan, Phillips, 1996)
131Topology Improvement
Diagonal Flip
Possible Criteria
Comparison before/after
Delaunay criterion
Distortion metrics
Node valence
Deviation from surface
(Edelsbrunner, Shah, 1996)
132Topology Improvement
Node valence number of edges connected to node
7
6
7
6
Ideal node valence for triangle mesh is 6
edges/node
Swapping can improve node valence
Allowing Smoothing to do a better job
(Canann, Muthukrishnan, Phillips, 1996)
133Topology Improvement
Deviation from Surface
d
Swapping can enforce better geometric conformity
to surface
134Topology Improvement
2-3 Swap
2-2 Swap
Edge Suppress
Terahedral Transformations
abce, acbd
aceb, adcb
Criteria for swaps comparison before/after
distortion metrics
abnini1 i1N
(Joe, 1995)
abde, bcde, cade
adeb, edcb
nm,knm.jnm.ia, nm,knm.jnm.ib m1M
M no. unique trias in polygon Pn1,n2,n3
135Topology Improvement
Quad Topology Improvement
6
Example Element Open
Criteria 6 valent node on interior of mesh
(Staten, Canann, 1997)
136Topology Improvement
Element Open
Two-Edge Node Elimination
Diagonal Swap
Two-Edge Node Insertion
Element Close
Five Basic Quad Clean-up Operations
(Staten, Canann, 1997)
137Topology Improvement
Multi-Step Quad Cleanup
3
5
5
3
Criteria 5 valent nodes on opposite nodes of quad
(Staten, Canann, 1997)
138References
139References
140References
141References
142References
143Acknowledgements
- Steve Owen, www.andrew.cmu.edu/user/sowen
- Nikos Chrisochoides, www.cs.wm.edu/nikos
- Michael Wolf, www.cs.uiuc.edu/homes/mmwolf
- Daniel Siqueira, www.crab.ufc.br