Hex-Meshing Hard

**Kilian Verhetsel**

- Subdividing the above into hex would be nice
- Requires mesh with a very specific boundary Schneiders 1995

- Degenerate example
- can still be used for topological invariant computation
- Not useful for numerical computations
- Need rules to exclude these cases

We refer to elements by their vertices:

- Edges connect 2 distinct vertices
- Quads bounded by 4 distinct edges
- Cubes bounded by 6 distinct quads

Two distinct cubes can share:

- Nothing
- A vertex
- An edge
- A quadrangular facet

- Boundary facet: in exactly one hex
- All other facets: in exactly two hex

Which mesh respects our 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

Yes if:

- Even number of quads

Thurston 1993, Mitchell 1995 - No interior surface bounded by

odd number of edges Erickson 2014

- Subdivide a tet-mesh into hex

- The mesh is almost complete…
- Only issue: boundary was refined

Buffer Cells

- Each buffer cell must have even number of quads
- Need two variants

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

- $\le 40$ hex, but too hard for humans to find

Verhetsel 2018

- Pick a boundary quad $Q$
- Try every hex containing $Q$

- Non-manifold boundary after hex insertion
- Difficult to maintain topological invariants

- Boundary always remains a sphere

Müller-Hanneman 1999, Xiang 2018, Verhetsel 2019 - Equivalence between boundary transformation and hex insertion

- The end of the search is always the same

- Precompute all meshes with up to $n$ hexahedra
- Compare them with unmeshed region
- Skips the last $n$ levels of the search tree

- Precomputed solutions don't always fit
- We skip
*more*than $n$ levels!

- Topological mesh computed for all small quadrangulations ($n \le
20$)
- Most are harder than the above

- Subdividing tets and pyramids generates bad elements
- Can compute mesh of larger cavity instead

Block Decompositions

- Compute block structure from boundary decomposition
- Some boundaries are much harder than others