Combinatorial Problems that Make
Hex-Meshing Hard
Kilian Verhetsel
Why do we care?
- Subdividing the above into hex would be nice
- Requires mesh with a very specific boundary Schneiders 1995
Conditions for Topological Meshes
- Degenerate example
- can still be used for topological invariant computation
- Not useful for numerical computations
- Need rules to exclude these cases
Rule Ⅰ: Distinct faces
We refer to elements by their vertices:
- Edges connect 2 distinct vertices
- Quads bounded by 4 distinct edges
- Cubes bounded by 6 distinct quads
Rule Ⅱ: Intersections
Two distinct cubes can share:
- Nothing
- A vertex
- An edge
- A quadrangular facet
Rule Ⅲ: Interior & Boundary Faces
- Boundary facet: in exactly one hex
- All other facets: in exactly two hex
Topological Rules
Which mesh respects our rules?
Homology-Based Rules
- For disks: every cycle bounds a set of quads
- For balls: every closed surface bounds a set of hexahedra
- Useful rule, though still insufficient
Is it even possible?
Yes if:
- Even number of quads
Thurston 1993, Mitchell 1995
- No interior surface bounded by
odd number of
edges Erickson 2014
How do we build a solution?
- Subdivide a tet-mesh into hex
Constructing a Solution
- The mesh is almost complete…
- Only issue: boundary was refined
Finishing the Construction:
Buffer Cells
- Each buffer cell must have even number of quads
Meshing the Buffer Cells
It is an amusing exercise to fill out these cases by hand
Eppstein 1999
It is not difficult to construct explicit hex meshes for
these subdivided cubes by hand
Erickson 2014
First explicit solution:
76 881 hex Carbonera 2010, Weill 2016
Meshing the Buffer Cells, Practically
- $\le 40$ hex, but too hard for humans to find
Attempt Ⅰ: Try Everything
Verhetsel 2018
- Pick a boundary quad $Q$
- Try every hex containing $Q$
Problems with a Simple Approach
- Non-manifold boundary after hex insertion
- Difficult to maintain topological invariants
Attempt Ⅱ: A nicer construction
- Boundary always remains a sphere
Müller-Hanneman 1999, Xiang 2018, Verhetsel 2019
- Equivalence between boundary transformation and hex insertion
Right Before a Solution…
- The end of the search is always the same
Remembering Small Meshes Helps
- Precompute all meshes with up to $n$ hexahedra
- Compare them with unmeshed region
- Skips the last $n$ levels of the search tree
Remembering Small Meshes Helps a Lot
- Precomputed solutions don't always fit
- We skip more than $n$ levels!
Meshing Small Inputs
- Topological mesh computed for all small quadrangulations ($n \le
20$)
- Most are harder than the above
Hex-Dominant Meshing
- Subdividing tets and pyramids generates bad elements
- Can compute mesh of larger cavity instead
Combinatorial Constraints in
Block Decompositions
- Compute block structure from boundary decomposition
- Some boundaries are much harder than others