Download presentation
Presentation is loading. Please wait.
Published bySabina Armstrong Modified over 9 years ago
1
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
2 Steve Owen An 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
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
4 Geometry vertices: x,y,z location
5
5 Geometry vertices: x,y,z location curves: bounded by two vertices
6
6 Geometry vertices: x,y,z location surfaces: closed set of curves curves: bounded by two vertices
7
7 Geometry vertices: x,y,z location surfaces: closed set of curves volumes: closed set of surfaces curves: bounded by two vertices
8
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
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
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
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
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
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
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 Smooth/Cleanup volume mesh For each surface For each volume The Mesh Generation Process Apply Manual Sizing, Match Intervals
15
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
16 Meshing Algorithms
17
17 Tri/Tet Methods http://www.simulog.fr/mesh/gener2.htm Octree Advancing Front Delaunay http://www.ansys.com
18
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
19 Octree/Quadtree QMG, Cornell University
20
20 Octree/Quadtree QMG, Cornell University
21
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
22 Advancing Front A B C r Determine if any other nodes on current front are within search radius r of ideal location C (Choose D instead of C) D
23
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
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
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
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
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
28 Advancing Front Ansys, Inc. www.ansys.com
29
29 Delaunay Triangle Jonathon Shewchuk http://www-2.cs.cmu.edu/~quake/triangle.html Tetmesh-GHS3D INRIA, France http://www.simulog.fr/tetmesh/
30
30 Delaunay circumcircle Empty Circle (Sphere) Property: No other vertex is contained within the circumcircle (circumsphere) of any triangle (tetrahedron)
31
31 Delaunay Triangulation: Obeys empty-circle (sphere) property Delaunay
32
32 Non-Delaunay Triangulation Delaunay
33
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
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
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 c d Given a Delaunay Triangulation of n nodes, How do I insert node n+1 ? Delaunay
36
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
37 Begin with Bounding Triangles (or Tetrahedra) Delaunay
38
38 Delaunay Insert boundary nodes using Delaunay method (Lawson or Bowyer-Watson)
39
39 Delaunay Insert boundary nodes using Delaunay method (Lawson or Bowyer-Watson)
40
40 Delaunay Insert boundary nodes using Delaunay method (Lawson or Bowyer-Watson)
41
41 Delaunay Insert boundary nodes using Delaunay method (Lawson or Bowyer-Watson)
42
42 Delaunay Insert boundary nodes using Delaunay method (Lawson or Bowyer-Watson)
43
43 Delaunay Recover boundary Delete outside triangles Insert internal nodes
44
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
45 Delaunay Node Insertion Grid Based Nodes introduced based on a regular lattice Lattice could be rectangular, triangular, quadtree, etc… Outside nodes ignored
46
46 Delaunay Node Insertion Centroid Nodes introduced at triangle centroids Continues until edge length,
47
47 Delaunay Node Insertion Centroid Nodes introduced at triangle centroids Continues until edge length, l
48
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 (Chew,Ruppert,Shewchuk)
49
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 Node Insertion (Chew,Ruppert,Shewchuk)
50
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
51 Delaunay Advancing Front “Front” structure maintained throughout Nodes introduced at ideal location from current front edge Node Insertion (Marcum,95)
52
52 Delaunay Voronoi-Segment Nodes introduced at midpoint of segment connecting the circumcircle centers of two adjacent triangles Node Insertion (Rebay,93)
53
53 Delaunay Voronoi-Segment Nodes introduced at midpoint of segment connecting the circumcircle centers of two adjacent triangles Node Insertion (Rebay,93)
54
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
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
56 Delaunay Boundary Constrained Boundary Intersection Nodes and edges introduced where Delaunay edges intersect boundary
57
57 Delaunay Boundary Constrained Boundary Intersection Nodes and edges introduced where Delaunay edges intersect boundary
58
58 Delaunay Boundary Constrained Local Swapping Edges swapped between adjacent pairs of triangles until boundary is maintained
59
59 Delaunay Boundary Constrained Local Swapping Edges swapped between adjacent pairs of triangles until boundary is maintained
60
60 Delaunay Boundary Constrained Local Swapping Edges swapped between adjacent pairs of triangles until boundary is maintained
61
61 Delaunay Boundary Constrained Local Swapping Edges swapped between adjacent pairs of triangles until boundary is maintained
62
62 Boundary Constrained Local Swapping Edges swapped between adjacent pairs of triangles until boundary is maintained (George,91)(Owen,99)
63
63 DELAUNAY IN 3D
64
64 DELAUNAY: INSERT A POINT
65
65 Delaunay 2-3 Swap2-2 Swap Face Split Edge Split Edge Suppress abce, acbd abde, bcde, cade aceb, adcb adeb, edcb abce, acbd abfe, bcfe, cafe bafd, cbfd, acfd abn i n i+1 {i=1…N} abn i n i+1, cbn i n i+1 {i=1…N} abn i n i+1 {i=1…N} n m,k n m.j n m.i a, n m,k n m.j n m.i b {m=1…M} N = no. adj. tets at edge ab M = no. unique trias in polygon P={n 1,n 2,n 3 }
66
66 Qianqian Fan’s iso2mesh package
67
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
68 Surface mesh extraction
69
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
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].BO05 –First, the meshing algorithm is proved to terminate if the lower bound on facets angles is not bigger than 30 degrees. –Second…
71
71 3D volumetric mesh generation (function name: surf2mesh)
72
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
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].Che93Rup95She98b It uses the notion of restricted Delaunay triangulation to approximate 1-dimensional curve segments and surface patches [BO05].BO05
74
74 3D mesh generation (function name: tetgen)
75
75 Iso2mesh: other routines
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.