Upload
sabina-armstrong
View
214
Download
0
Embed Size (px)
Citation preview
1
Outline of this talk
• Part of the survey presentation from Steve Owen (Owen IMR’05)– Terminology & overview of mesh generation – Algorithms based on triangulation and
tetrahedralization
• Qianqian Fan’s iso2mesh package (ISBI’09 paper)– Mesh generation work-flow – Surface mesh extraction, using CGAL calgsurf
function (CGAL: Computational Geometry Algorithms Library)
– Volume mesh generation; two options• CGAL mesh generation • TetGen developed by Si and Gaertner (IMR’2005).
2
Steve Owen
An Introduction to Mesh Generation AlgorithmsAn Introduction to Mesh Generation Algorithms
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000.
3
Overview
• The Simulation Process• Geometry Basics• The Mesh Generation
Process• Meshing Algorithms
– Tri/Tet Methods– Quad/Hex Methods– Hybrid Methods– Surface Meshing
• Algorithm Characteristics
4
Geometry
vertices: x,y,z location
5
Geometry
vertices: x,y,z location
curves: bounded by two vertices
6
Geometry
vertices: x,y,z location
surfaces: closed set of curves
curves: bounded by two vertices
7
Geometry
vertices: x,y,z location
surfaces: closed set of curves
volumes: closed set of surfaces
curves: bounded by two vertices
8
Geometry
body: collection of volumes
vertices: x,y,z location
surfaces: closed set of curves
volumes: closed set of surfaces
curves: bounded by two vertices
9
Geometry
body: collection of volumes
vertices: x,y,z location
volumes: closed set of surfaces
surfaces: closed set of curves
loops: ordered set of curves on surface
curves: bounded by two vertices
10
Geometry
body: collection of volumes
vertices: x,y,z location
volumes: closed set of surfaces
loops: ordered set of curves on surface
surfaces: closed set of curves (loops)
coedges: orientation of curve w.r.t. loop
curves: bounded by two vertices
11
Geometry
body: collection of volumes
vertices: x,y,z location
volumes: closed set of surfaces (shells)
surfaces: closed set of curves (loops)
loops: ordered set of curves on surface
coedges: orientation of curve w.r.t. loop
shell: oriented set of surfaces comprising a volume
curves: bounded by two vertices
12
Geometry
body: collection of volumes
vertices: x,y,z location
volumes: closed set of surfaces (shells)
surfaces: closed set of curves (loops)
loops: ordered set of curves on surface
coedges: orientation of curve w.r.t. loop
shell: oriented set of surfaces comprising a volume
curves: bounded by two vertices
13
Geometry
body: collection of volumes
vertices: x,y,z location
volumes: closed set of surfaces (shells)
surfaces: closed set of curves (loops)
loops: ordered set of curves on surface
coedges: orientation of curve w.r.t. loop
shell: oriented set of surfaces comprising a volume
coface: oriented surface w.r.t. shell
curves: bounded by two vertices
14
Mesh Generation Process
Mesh Vertices
Mesh Curves
Verify/correct for sizing criteria on
curves
Set up sizing function for
surface
Mesh surface
Set up sizing function for
volume
Mesh volume
Smooth/Cleanup surface mesh
Verify Quality
Verify Quality
Smooth/Cleanup volume mesh
For each surface
For each volume
The Mesh Generation Process
Apply Manual Sizing, Match
Intervals
15
Meshing Algorithms
• Structured mesh • all interior nodes of the mesh have an equal number of adjacent elements. • Typically quad or hexahedral meshes.
• Unstructured mesh• allow any number of elements to meet at a single node.• Triangle and tetrahedral meshes are commonly thought (though quadrilateral and hexahedral meshes can also be unstructured)
16
Meshing Algorithms
17
Tri/Tet Methods
http://www.simulog.fr/mesh/gener2.htm
OctreeAdvancing FrontDelaunay
http://www.ansys.com
18
Octree/Quadtree
•Define initial bounding box (root of quadtree)•Recursively break into 4 leaves per root to resolve geometry (until the desired resolution is reached)•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)
19
Octree/Quadtree
QMG, Cornell University
20
Octree/Quadtree
QMG, Cornell University
21
Advancing Front
A B
C
•Begin with boundary mesh - define as initial front•For each edge (face) on front, locate ideal node C based on front AB
22
Advancing Front
A B
Cr
•Determine if any other nodes on current front are within search radius r of ideal location C (Choose D instead of C)
D
23
Advancing Front
•Book-Keeping: New front edges added and deleted from front as triangles are formed•Continue until no front edges remain on front
D
24
Advancing Front
•Book-Keeping: New front edges added and deleted from front as triangles are formed•Continue until no front edges remain on front
25
Advancing Front
•Book-Keeping: New front edges added and deleted from front as triangles are formed•Continue until no front edges remain on front
26
Advancing Front
•Book-Keeping: New front edges added and deleted from front as triangles are formed•Continue until no front edges remain on front
27
Advancing Front
A
B
C
•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| > 0)•(Lohner,88;96)(Lo,91)
r
28
Advancing Front
Ansys, Inc.www.ansys.com
29
Delaunay
TriangleJonathon Shewchukhttp://www-2.cs.cmu.edu/~quake/triangle.html
Tetmesh-GHS3DINRIA, Francehttp://www.simulog.fr/tetmesh/
30
Delaunay
circumcircle
Empty Circle (Sphere) Property: No other vertex is contained within the circumcircle (circumsphere) of any triangle (tetrahedron)
31
Delaunay Triangulation: Obeys empty-circle (sphere) property
Delaunay
32
Non-Delaunay Triangulation
Delaunay
33
Lawson Algorithm•Locate triangle containing X•Subdivide triangle•Recursively check adjoining triangles to ensure empty-circle property. Swap diagonal if needed•(Lawson,77)
X
Given a Delaunay Triangulation of n nodes, How do I insert node n+1 ?
Delaunay
34
X
Lawson Algorithm•Locate triangle containing X•Subdivide triangle•Recursively check adjoining triangles to ensure empty-circle property. Swap diagonal if needed•(Lawson,77)
Delaunay
35
Bowyer-Watson Algorithm•Locate triangle that contains the point•Search for all triangles whose circumcircle contain the point (d<r)•Delete the triangles (creating a void in the mesh)•Form new triangles from the new point and the void boundary•(Watson,81)
X
r cd
Given a Delaunay Triangulation of n nodes, How do I insert node n+1 ?
Delaunay
36
X
Bowyer-Watson Algorithm•Locate triangle that contains the point•Search for all triangles whose circumcircle contain the point (d<r)•Delete the triangles (creating a void in the mesh)•Form new triangles from the new point and the void boundary•(Watson,81)
Given a Delaunay Triangulation of n nodes, How do I insert node n+1 ?
Delaunay
37
•Begin with Bounding Triangles (or Tetrahedra)
Delaunay
38
Delaunay
•Insert boundary nodes using Delaunay method (Lawson or Bowyer-Watson)
39
Delaunay
•Insert boundary nodes using Delaunay method (Lawson or Bowyer-Watson)
40
Delaunay
•Insert boundary nodes using Delaunay method (Lawson or Bowyer-Watson)
41
Delaunay
•Insert boundary nodes using Delaunay method (Lawson or Bowyer-Watson)
42
Delaunay
•Insert boundary nodes using Delaunay method (Lawson or Bowyer-Watson)
43
Delaunay
•Recover boundary•Delete outside triangles•Insert internal nodes
44
Delaunay
Node Insertion
Grid Based•Nodes introduced based on a regular lattice•Lattice could be rectangular, triangular, quadtree, etc…•Outside nodes ignored
h
45
Delaunay
Node Insertion
Grid Based•Nodes introduced based on a regular lattice•Lattice could be rectangular, triangular, quadtree, etc…•Outside nodes ignored
46
Delaunay
Node Insertion
Centroid•Nodes introduced at triangle centroids•Continues until edge length, hl
47
Delaunay
Node Insertion
Centroid•Nodes introduced at triangle centroids•Continues until edge length, hl
l
48
Delaunay
Node Insertion
Circumcenter (“Guaranteed Quality”)•Nodes introduced at triangle circumcenters•Order of insertion based on minimum angle of any triangle•Continues until minimum angle > predefined minimum
)30( (Chew,Ruppert,Shewchuk)
49
Delaunay
Circumcenter (“Guaranteed Quality”)•Nodes introduced at triangle circumcenters•Order of insertion based on minimum angle of any triangle•Continues until minimum angle > predefined minimum )30(
Node Insertion (Chew,Ruppert,Shewchuk)
50
Delaunay
Advancing Front•“Front” structure maintained throughout•Nodes introduced at ideal location from current front edge
Node Insertion
A B
C
(Marcum,95)
51
Delaunay
Advancing Front•“Front” structure maintained throughout•Nodes introduced at ideal location from current front edge
Node Insertion(Marcum,95)
52
Delaunay
Voronoi-Segment•Nodes introduced at midpoint of segment connecting the circumcircle centers of two adjacent triangles
Node Insertion(Rebay,93)
53
Delaunay
Voronoi-Segment•Nodes introduced at midpoint of segment connecting the circumcircle centers of two adjacent triangles
Node Insertion(Rebay,93)
54
Delaunay
Edges•Nodes introduced at along existing edges at l=h•Check to ensure nodes on nearby edges are not too close
Node Insertion
h
h
h
(George,91)
55
Delaunay
Edges•Nodes introduced at along existing edges at l=h•Check to ensure nodes on nearby edges are not too close
Node Insertion(George,91)
56
Delaunay
Boundary Constrained
Boundary Intersection•Nodes and edges introduced where Delaunay edges intersect boundary
57
Delaunay
Boundary Constrained
Boundary Intersection•Nodes and edges introduced where Delaunay edges intersect boundary
58
Delaunay
Boundary Constrained
Local Swapping•Edges swapped between adjacent pairs of triangles until boundary is maintained
59
Delaunay
Boundary Constrained
Local Swapping•Edges swapped between adjacent pairs of triangles until boundary is maintained
60
Delaunay
Boundary Constrained
Local Swapping•Edges swapped between adjacent pairs of triangles until boundary is maintained
61
Delaunay
Boundary Constrained
Local Swapping•Edges swapped between adjacent pairs of triangles until boundary is maintained
62
Boundary Constrained
Local Swapping•Edges swapped between adjacent pairs of triangles until boundary is maintained
(George,91)(Owen,99)
63
DELAUNAY IN 3D
64
DELAUNAY: INSERT A POINT
66
Qianqian Fan’s iso2mesh package
67
Iso2mesh: major components
• Surface mesh extraction (function name: vol2mesh)• provide by CGAL
• 3D mesh generation (function name: surf2mesh)• provided by CGAL
• 3D mesh generation (function name: tetgen) • provided by Si and Gaertner; published in IMR’05• uses constrained Delaunary tetrahedral
• other routines • surface mesh repairing• surface smoothing• sub-region labeling and hole specification
68
Surface mesh extraction
69
Major surface mesh generators
• Afont:an advancing-front triangulation algorithm that makes use of a guidance field to determine triangle sizing that is adaptive to the curvature of the input surface, but also maintains smooth gradation to prevent poor quality triangles from being created.
• Marching Cubes: the algorithm proceeds through the scalar field, taking eight neighbor locations at the corners of each cube within the base mesh, and determining the triangles needed to represent the part of the isosurface that passes through each cube. The individual triangles are fused into the desired surface.
• Macet• Dual Contouring • CGAL: surface mesh generation technique based on
Delaunay triangulation to build triangulated surfaces that are topologically equivalent and geometrically close to the original surface
70
Surface mesh extraction in CGAL (function name: vol2mesh)
• The meshing algorithm is based on the notion of the restricted Delaunay triangulation. – Basically the algorithm computes a set of sample points on
the surface, and extract an interpolating surface mesh from the three dimensional triangulation of these sample points.
– Points are iteratively added to the sample, as in a Delaunay refinement process, until some size and shape criteria on the elements of the surface mesh are satisfied.
• The size and shape criteria guide the behavior of the refinement process and control its termination.
• Meshing Criteria, Guarantees and Variations– The guarantees on the output mesh depend on the mesh
criteria. Theoretical guarantees are given in [BO05]. – First, the meshing algorithm is proved to terminate if the
lower bound on facets angles is not bigger than 30 degrees. – Second…
71
3D volumetric mesh generation (function name: surf2mesh)
72
Major Tetrahedral (volume) mesh generators
• TetGen: corresponds to a suite of techniques to generate different tetrahedral meshes from three-dimensional point sets or domains with piecewise linear boundaries.
• Uses Constrained Delaunay Tetrahedralization (CDT) (based on the incremental edge flipping algorithm) from the isosurface mesh.
• NetGen: NetGen is an automatic 3D advancing-front tetrahedral mesh generator that accepts input from constructive solid geometry (CSG) or boundary representations (BRep) from the STL file format.
• CAMAL:…
73
•3D mesh generation (function name: surf2mesh)
• Boundary and subdivision surfaces are either smooth or piecewise smooth surfaces, formed with planar or curved surface patches.
• The meshing engine used in this mesh generator is based on Delaunay refinement [Che93, Rup95, She98b].
• It uses the notion of restricted Delaunay triangulation to approximate 1-dimensional curve segments and surface patches [BO05].
74
3D mesh generation (function name: tetgen)
75
Iso2mesh: other routines