Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

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


Download ppt "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."

Similar presentations


Ads by Google