What is the best way to enforce a quality tetrahedral mesh? My simulator needs to have Delaunay tetrahedra in order for the volume and surface integration in my finite volume method to work out correctly.
There are a few things you can do, I’ll lay them out in no particular order:
-
Use the “Advanced” settings in the
tetmesh
scheme, in particular:Minimize Over-Constrained Tets
Minimize Over-Constrained Edges
Minimize Sliver Tets
- And the heaviest optimization level that you can afford.
-
One of the nice thing about tet-elements is their ability to adapt their size. This can drastically reduce the number of elements required in your simulation, but often can reduce the quality of your mesh. The counter to this is to try to pick a uniform mesh size that won’t feature a lot of element growth or shrinkage. For example, in the below example I’ve reduced the volume’s mesh size from its default (~2.2) by 1/4. It’s not perfect, but I have pretty good quality across a large portion of my domain (but almost 10x as many elements).
-
Look around your meshed model for “tet-bombs” / “black-holes”, where the mesh suddenly becomes drastically more dense:
Which usually means you have a very small geometric feature that you might want to remove or ignore:
- For example, with a
collapse curve
operation:
- For example, with a
-
Avoid tangent, or nearly-tangent curves:
- You can use the
composite
functionality to ignore these entities:
Which will improve mesh quality at the expense of geometric accuracy:
- You can use the
Essentially, getting a good tet-mesh will take a combination of modifying geometry, creating “virtual topology” (e.g. compositing/tweaking), and playing with the mesh parameters. There’s (unfortunately) no “easy button” (yet). There are some exciting things in the works for tet-meshing, so stay tuned!