new GPU mesh generator

Everyone hates meshing. Well that’s about to change…

To give a brief taste of what’s to come (for you scientists and engineers), here’s a short intro to our brand-new hardware-accelerated mesh generator. What’s really cool about it is that it creates near-optimal tetrahedral (and eventually hybrid) meshes essentially automatically. There are only a few knobs to turn. It does this by defining shape with implicit Signed Distance Field (SDF) — other refinement controls (grading, curvature, feature size) can be derived directly from the background’s SDF. The SDF can be defined with analytical functions or with triangular faceted surface references. We describe the process in our recent ICCFD10-145 paper:

So nodes use Delaunay triangulation to find associativity to repel neighboring nodes along each interior edge. Pseudo time integration displaces all node positions… though those near boundaries or SDF surfaces are iteratively projected back (normal) to the interface to conform. As the nodes rearrange and move more than a characteristic radius, the set is re-triangulated to update associativity and the process repeats. After many iterations, all elements are annealed to their local size function and the shape is resolved. The last step is to remove illegal hulls from the Delaunay-defined convex hulls in a surface unwrapping procedure.

The process is illustrated with the infamous Stanford Bunny:

Stochastic meshing process with 20K nodes, unrefined: a) Shape is defined by reference surfaces used to solve SDF background. b) Nodes are injected into valid SDF locations and equalized. c) Triangulation updates topology with over-wrapped mesh (comprised of convex hulls). d) Elements are evaluated and cleaned against SDF while surfaces are unwrapped. e) Original (darker) mesh superimposed over new mesh to visualize spatial deviation. f) Close-up showing error around high-curvature features.

Assuming adequate background SDF resolution, this technique proves to be fairly agnostic to complexity. It’s a robust method, but requires some serious parallel computing when converting from discrete geometries. For F number of reference faces, the winding number calculation scales on order of F log F to determine inside vs outside — something very easy for humans but heavy for machines! Here’s a slightly more realistic engineering component example:

In this test, a tet mesh of 40,000 nodes (about 200,000 cells) is generated for finite element analysis (FEA) of liquid hydrocarbon rocket engine injector (quarter). Slices through the SDF-derived size field are shown, followed by the resulting mesh. Curvature refinement is not present, showing lack of size refinement around fine features…

To learn more, please visit

Leave a Reply