1.39k likes | 1.45k Views
Technical History of Hex Mesh Generation. Scott A. Mitchell Sandia National Labs. Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract DE-AC04-94AL85000. Outline. Introduction
E N D
Technical History of Hex Mesh Generation Scott A. Mitchell Sandia National Labs Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company,for the United States Department of Energy under contract DE-AC04-94AL85000.
Outline • Introduction • Relationship Map • Sweep-like techniques • 3d techniques • Synthesis • Where are we now? • Hopes
Introduction • What I will cover • What I won’t cover • Why is hex meshing hard
What I will cover • Asked to give technical talk • Unstructed hex meshing algorithms and ideas • Relationships between algorithms • Technical threads from one technique to another • Focus on assembly meshing problems • Multiple interlocking parts • Focus on connectivity problem • 3d Algorithms • A little sweeping
What I won’t cover • Tools, packaging, ease of use… • Nodal positioning for good quality • Bias and sizing control • Except as approach to connectivity problem • I’ll get some names right, but not all, and leave some people out. Sorry, no offense intended.
What I won’t cover • Techniques involving • Mixed elements • Hex-dominant methods • Non-conforming meshes • Overset grids • Primitives and Special algorithms for restricted classes of geometries • Sphere-like assemblies (Hex3d at LANL…) • Air around airplanes, cars,… • CFD block primitives • Medial-axis and Midpoint Subdivision
Why is Hex Meshing Hard? • Connectivity of tet meshing is “easy” • Delaunay triangulations • Given set of points, can connect them up to form triangles, tetrahedra, d-simplices • Empty-sphere property shows you how • Caveats • Good quality is difficult in 3 dimensions • Boundary constraints is difficult in 3 dimensions • Octree (subdivision) techniques • Keep dividing polyhedron until you get simplices • No new points on the boundary are necessary • Advancing front techniques • Remaining space always dividable into tetrahedra
q q ? ? Euler: Why is Hex Meshing Hard? • Quads harder than tris (i.e. even 2d is harder) • Can’t just divide polygons into quads • New points on the boundary may be necessary • In practice, an even number of boundary edges can be divided into quads (with new interior points). • Necessary and sufficient
3D Approaches • Assume: assembly problem • Fixed boundary mesh • Geometry first • constrained by topology • Topology first • unconstrained • fix-up afterwards • constrained by geometry
Relationship Map • Will refer to these map for context throughout talk
Sweep Relationship Map 2D 1-1 Sweeping / Projection / Rotation (lots) Sweeping Node Placement Strategies M-1 Sweeping (several) 2.5D Good Source Surface Mesh Strategies Cooper Tool M-M Sweeping Inside-out 3d Multi-axis Cooper Tool 2.75D Grafting
samitch: be careful to imply conceptual relationship, not cause and effect of efforts or people 3D Relationship Map Paving/Plastering THEX STC dual structure rediscovered discovery Hex-to-void Schneider’s open problem Existence Proofs Slicing doughnuts Dual cycle Elimination & Shelling Whisker Weavingcurve contraction Dual- Particle Methods Whisker Weavingstate list construction STC folds Recursive bisection Linear-size geometry first topology first THEX Sweep-like techniques Geode ? Hex dominant? Refinement andcoarsening Local reconnection and smoothing Flipping, (planar faces) Inside-out techniques clean-up Geode betweenshells Prepare the boundary mesh:splicing
3D Relationship Map Paving/Plastering THEX STC dual structure rediscovered discovery Hex-to-void Schneider’s open problem Existence Proofs Slicing doughnuts Dual cycle Elimination & Shelling Whisker Weavingcurve contraction Dual- Particle Methods Whisker Weavingstate list construction STC folds Recursive bisection Linear-size geometry first topology first THEX Sweep-like techniques Geode ? Hex dominant? Refinement andcoarsening Local reconnection and smoothing Flipping, (planar faces) Inside-out techniques clean-up Geode betweenshells Prepare the boundary mesh:splicing
Paving/Plastering • ~12 years ago • Blacker, Stephenson, Cass, Benzley • Paving • 2d advancing front • Advance based on geometric criteria • Merge connectivity when fronts collide • Theme: geometry first, connectivity second
Paving Paving • Advancing Front: Begins with front at boundary • Forms rows or single of elements based on front angles • Must have even number of intervals for all-quad mesh (Blacker,92)(Cass,96)
Paving 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)
Paving 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)
Paving 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)
Paving 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)
Paving 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)
Paving • Interesting / relevant details for later • Single loop: if seaming, keep two resulting loops even ? • Multiple loops? • Finesse by having each loop even at all stage ?
Plastering • ~10 years ago, Blacker, Canann, Stephenson • Paving worked so well, why not try paving in 3d? = Plastering • Start with fixed surface mesh • Add proto-hexes (faces) one by one, conforming to bdy • Seam together nearby points, edges, faces • Build hexes
Plastering • Kind of worked • Could fill up most of space
Plastering • Difficulties • Advancing fronts rarely seemed to close • Seams and Wedges (knives) Blacker et al. Remove from front for now Drive or collapse later • Ted Blacker to Pete Murdoch • Find some way of closing up remaining region
3D Relationship Map Paving/Plastering THEX STC dual structure rediscovered discovery Hex-to-void Schneider’s open problem Existence Proofs Slicing doughnuts Dual cycle Elimination & Shelling Whisker Weavingcurve contraction Dual- Particle Methods Whisker Weavingstate list construction STC folds Recursive bisection Linear-size geometry first topology first THEX Sweep-like techniques Geode ? Hex dominant? Refinement andcoarsening Local reconnection and smoothing Flipping, (planar faces) Inside-out techniques clean-up Geode betweenshells Prepare the boundary mesh:splicing
Plastering as hex dominant • Years later • Knives are ok finite elements, as are pyramids • Leave knives in? • vaporware • Hex-tet interface, fill remaining void with pyramids and tets • Geode transition template • Developed but not used • We’ll leave this thread and come back to it later • Ted Blacker to Pete Murdoch (Meyers, Stephenson, Benzley) • Find some way of closing up remaining region
3D Relationship Map Paving/Plastering THEX STC dual structure rediscovered discovery Hex-to-void Schneider’s open problem Existence Proofs Slicing doughnuts Dual cycle Elimination & Shelling Whisker Weavingcurve contraction Dual- Particle Methods Whisker Weavingstate list construction STC folds Recursive bisection Linear-size geometry first topology first THEX Sweep-like techniques Geode ? Hex dominant? Refinement andcoarsening Local reconnection and smoothing Flipping, (planar faces) Inside-out techniques clean-up Geode betweenshells Prepare the boundary mesh:splicing
STC Dual Structure Rediscovered for Engr. • Dual of tri / tet mesh • is just the dual! • Dual of quad / hex mesh • is structure of arrangement of curves or surfaces • Murdoch, 16 September 1993
STC Dual Structure Rediscovered • Rediscovered a couple of times • Physicists: divide high-dimensional space into cubes to study relativity • A.B. Zamalodchikov: Tetrahedron equations and the relativistic S-matrix of straight strings in 2+1 dimensions, Comm. Math. Phys. 79, 489-505 (1981) • Mathematics: arrangements • B. Grünbaum: Arrangements and Spreads, Reg. Conf. Ser. in Math. no 10, Amer. Math Soc. (1972) • Topology: geometric • I. R. Aitchison, J. H. Rubinstein: An introduction to polyhedral metrics of nonpositive curvature on 3-manifolds, Geometry of manifolds, ed S Donaldson and C Thomas, Cambridge Univ. Press 1990
Plastering’s downfall • Seaming and connecting together based on geometry won’t create this nice structure.
3D Relationship Map Paving/Plastering THEX STC dual structure rediscovered discovery Hex-to-void Schneider’s open problem Existence Proofs Slicing doughnuts Dual cycle Elimination & Shelling Whisker Weavingcurve contraction Dual- Particle Methods Whisker Weavingstate list construction STC folds Recursive bisection Linear-size geometry first topology first THEX Sweep-like techniques Geode ? Hex dominant? Refinement andcoarsening Local reconnection and smoothing Flipping, (planar faces) Inside-out techniques clean-up Geode betweenshells Prepare the boundary mesh:splicing
Murdoch’s thesis (1995) • “The Spatial Twist Continuum (S.T.C.) is a dual representation of the hexahedral mesh. The S.T.C. method of representing a mesh inherently captures the global connectivity constraint of all hexahedral meshes and thereby allows the construction of the mesh in a robust ordered or random manner” • Ideas • Geometric curvature and continuity of twist planes • Envision mostly regular arrangement, with careful attention paid to few places of irregular connectivity, and how to combine them together
Murdoch’s vaporware STC fold algorithm • “…a valid hexahedral mesh will have a valid S.T.C., the question is then whether to create the S.T.C. first or use it as a tool to guide the internal mesh connectivity” • Suggested creating surface and volume mesh simultaneously by inserting geometric twist planes one by one, guided by desired mesh density functions • Seemed hard • Could you do that for an assembly? Or just single volume? • How to define geometry of twist-planes? • How to ensure dual of surface mesh captured the topology of the model? Compare to octree, inside out method by Schneiders (which hadn’t been done yet): ½ time spent on surface isomorphism!
Murdoch’s vaporware STC fold algorithm • To my knowledge, no serious investment in simultaneous surface and volume approach. They all create the surface mesh, then try to get the volume mesh • If it worked for fixed surface mesh, it would solve the assembly problem • Refinement and coarsening, mesh improvement, flipping, sheet pushing = after initial arrangement, mostly topology • Ostenson’s idea • Thuston’s minimal energy surface (soap bubble) idea to define geometry • Get a good surface mesh – visit later • Shepherd’s splicing • Mattias Muller-Hanneman • WW surface mesh fixup • WW add geode templates • Surface mesh first, then volume, turned out to be hard, too!
3D Relationship Map Paving/Plastering THEX STC dual structure rediscovered discovery Hex-to-void Schneider’s open problem Existence Proofs Slicing doughnuts Dual cycle Elimination & Shelling Whisker Weavingcurve contraction Dual- Particle Methods Whisker Weavingstate list construction STC folds Recursive bisection Linear-size geometry first topology first THEX Sweep-like techniques Geode ? Hex dominant? Refinement andcoarsening Local reconnection and smoothing Flipping, (planar faces) Inside-out techniques clean-up Geode betweenshells Prepare the boundary mesh:splicing
Whisker Weaving State List • Instead of Plastering hexes, • With so much structure capturing these implicit constraints, why not start with the STC, then dualize to get hexes? • Blacker, Tautges, Mitchell
Whisker Weaving State List Ideas • Main ideas of state list Whisker Weaving • Start with fixed surface mesh • This defines “boundary loops” of the sheets = twist-planes purple green red blue
Whisker Weaving State List Ideas • Add dual of hex (STC vertex) from bdy inward, one at a time • Compare to plastering… • Each sheet is 2d: did we reduce this 3d problem to a set of 2d problems? I think not…although it is easier to understand and visualize than free-floating primal edges. crossing = weaving
Whisker Weaving State List Ideas • Now it’s different than Plastering • Try to get good local connectivity • Connectivity Rules about where to add, when to seam, … • Easily identify seaming = joining cases • Rarely join two loops together • Keep sheets as disk • Hmm, knives=wedges sometimes show up at the end of chords where loops self-intersect…try tracing a knife • Geometric rules: consider geometric dihedral angles of faces near surface mesh, no flat hexes • Heroic effort by Tautges to build rules for good all-hexes and close the weave • In practice, often unclosed region left-over, like Plastering • In practice, very complicated sheets
edge w/ 10 hexes WW complicated sheets • One or two sheets going through • most of the surface quads • Related to expected connectivity • of random graphs on lattice? • Red = knives (wedges)
3D Relationship Map Paving/Plastering THEX STC dual structure rediscovered discovery Hex-to-void Schneider’s open problem Existence Proofs Slicing doughnuts Dual cycle Elimination & Shelling Whisker Weavingcurve contraction Dual- Particle Methods Whisker Weavingstate list construction STC folds Recursive bisection Linear-size geometry first topology first THEX Sweep-like techniques Geode ? Hex dominant? Refinement andcoarsening Local reconnection and smoothing Flipping, (planar faces) Inside-out techniques clean-up Geode betweenshells Prepare the boundary mesh:splicing
Schneiders Open Problem • Can anyone create an all-hex mesh conforming to the following surface mesh? • http://www-users.informatik.rwth-aachen.de/~roberts/open.html • He didn’t really say why you’d want to. But, if you could, then for any model, you could Plaster a while, add these, fill with tets, then divide into all-hex mesh. • Are there “bad” surface meshes that aren’t fillable?
3D Relationship Map Paving/Plastering THEX STC dual structure rediscovered discovery Hex-to-void Schneider’s open problem Existence Proofs Slicing doughnuts Dual cycle Elimination & Shelling Whisker Weavingcurve contraction Dual- Particle Methods Whisker Weavingstate list construction STC folds Recursive bisection Linear-size geometry first topology first THEX Sweep-like techniques Geode ? Hex dominant? Refinement andcoarsening Local reconnection and smoothing Flipping, (planar faces) Inside-out techniques clean-up Geode betweenshells Prepare the boundary mesh:splicing
Existence Proofs • Parallel thread, unknown at the time to Murdoch, Blacker, Mitchell • Mac Casel, of PDA, posting to sci-math: • Under what conditions can you hex-mesh a polyhedron without modifying its boundary? • Bill Thurston (world’s best topologist) • 25 Oct 1993, 39 days after Murdoch rediscovered the STC, knew about “STC” all along, answers in 1 ½ pages: • If the dual curves (loops) intersect an even number of times, then there is a topological hex mesh • “As for the geometric question: My first guess is it can be done geometrically if it can be done topologically, but it looks very tricky…. Which question are you really trying to answer?”
Existence Proofs • Mitchell’s proof, very similar to Thurston’s outline, a couple years later (mid 1995) • Map surface mesh to a sphere (smooth) • Form STC loops – smooth closed curves • Extend loops into closed surfaces • Fix arrangement of surfaces to avoid degenerate elements • Dualize to form hexes • Map back to original object.
Aside: What about tet meshing? • Tet’s have 4 (even) triangles, so all tet meshes are bounded by an even number of tets, too! • But triangle’s have 3 (odd) edges, so any triangle surface mesh has same parity of triangles as bounding edges • Any triangle mesh of a closed volume is even 1,3 2,4 Any triangle mesh of top has same parity as any triangle mesh of bottom. Hence sum is even
Sufficient Conditions • Every pair of loops on sphere intersect each other even number of times • A single loop can self-intersect an even or odd number of times • Recall trouble with knives and self-intersecting loops…
Sufficient Conditions • Topology theorems • For any single curve with even # self-intersections, can construct a surface • For any pair of curves with odd # self-intersections, can construct a surface • (Proof is constructive: rumor that non-constructive is false)