360 likes | 560 Views
Mesh G eneration and Delaunay-Based Meshes. Jernej Barbic Computer Science Department Carnegie Mellon University. Outline Introduction Delaunay triangulation Ruppert’s algorithm Result on runtime analysis of Ruppert’s algorithm Conclusion.
E N D
Mesh Generation and Delaunay-Based Meshes Jernej Barbic Computer Science Department Carnegie Mellon University
Outline • Introduction • Delaunay triangulation • Ruppert’s algorithm • Result on runtime analysis of Ruppert’s algorithm • Conclusion
Motivation: Temperature on the Surface of a Lake No analytical solution Need to approximate…
How to approximate? First guess: uniformly. Runs too slow!
No need to consider only uniform meshes… Too much computation Computation fast, but inaccurate Optimal solution BUT MUST AVOID SMALL ANGLES !!
Outline • Introduction • Delaunay triangulation • Ruppert’s algorithm • Result on runtime analysis of Ruppert’s algorithm • Conclusion
How to connect the dots into triangles? One possibility:
How to connect the dots into triangles? Another possibility: Which triangulation makes minimum angle as large as possible?
Boris Nikolaevich Delaunay (1890-1980) : Include a triangle iff there are no vertices inside its circumcircle.
Delaunay Triangulation Further example:
Delaunay Triangulation Negative example:
Let’s try it for Lake Superior… Delaunay triangulationof Lake Superior … and we get Lake Inferior …
Outline • Introduction • Delaunay triangulation • Ruppert’s algorithm • Result on runtime analysis of Ruppert’s algorithm • Conclusion
How to avoid skinny triangles? Ruppert’s idea (1993) : Add triangle’s circumcenter into the mesh. Why does this make sense?
How to avoid skinny triangles? Ruppert’s idea (1993) : Add triangle’s circumcenter into the mesh. Why does this make sense?
Ruppert’s Algorithm Input: a set of points in the plane, minimum angle 0 Output: a triangulation, with all angles 0
Ruppert’s Algorithm Input: a set of points in the plane, minimum angle 0 Output: a triangulation, with all angles 0 • Algorithm always terminates for 0< 20.7º. • Bigger minimum angles 0are harder. • Size of mesh is optimal up to a constant factor.
Progress of Ruppert’s algorithm minimum allowed angle = 13 º Algorithm completed its task.
Outline • Introduction • Delaunay triangulation • Ruppert’s algorithm • Result on runtime analysis of Ruppert’s algorithm • Conclusion
Running Time Analysis Delaunay triangulation O(n log n)
Running Time Analysis Delaunay triangulation O(n log n) Ruppert’s algorithm My result: (m2)
We proved: worst-case bound of O(m2) is tight. Input point set (no edges in the input): Number of input points: n Number of output points: m=O(n)
Delaunay triangulation of the input: Lots of skinny triangles. We choose to split theone shaded in grey.
Total work proven to be: (m2) Number of input points: O(n) Number of output points: m=O(n)
However, in practice algorithm works well. Let’s try Ruppert on Lake Superior…
Ruppert’s Algorithm on Lake Superior 0 = 25º
Outline • Introduction • Delaunay triangulation • Ruppert’s algorithm • Result on runtime analysis of Ruppert’s algorithm • Conclusion
Conclusion • Worst-case behavior of Ruppert’s algorithm is quadratic. • In practice, Ruppert’s algorithm performs well. • Main Delaunay idea: maximize minimum angle • Generating good meshes is an important problem.
Applications and Future Work • Triangle software http://www-2.cs.cmu.edu/~quake/triangle.html • Find good strategies for selecting skinny triangles • Characterize input meshes that exhibit slow runtime