View
218
Download
1
Category
Preview:
Citation preview
1
Mesh Generation and Delaunay-Based Meshes
Jernej BarbicComputer Science Department
Carnegie Mellon University
2
Outline
• Introduction
• Delaunay triangulation
• Ruppert’s algorithm
• Result on runtime analysis of Ruppert’s algorithm
• Conclusion
3
Motivation: Temperature on the Surface of a Lake
No analytical solution
Need to approximate…
4
How to approximate?
5
How to approximate?
Runs too slow!
First guess: uniformly.
6
Too much computation
Computation fast, but inaccurate
No need to consider only uniform meshes…
Optimal solution
BUT MUST AVOID SMALL ANGLES !!
7
Outline
• Introduction
• Delaunay triangulation
• Ruppert’s algorithm
• Result on runtime analysis of Ruppert’s algorithm
• Conclusion
8
How to connect the dots into triangles?
9
How to connect the dots into triangles?
One possibility:
10
How to connect the dots into triangles?
Another possibility:
Which triangulation makes minimum angle as large as possible?
11
Include a triangle iff there are no vertices inside its circumcircle.
Boris Nikolaevich Delaunay (1890-1980) :
12
Delaunay Triangulation
Further example:
13
Delaunay Triangulation
Negative example:
14
Let’s try it for Lake Superior…
… and we get Lake Inferior …
Delaunay triangulationof Lake Superior
15
Outline
• Introduction
• Delaunay triangulation
• Ruppert’s algorithm
• Result on runtime analysis of Ruppert’s algorithm
• Conclusion
16
How to avoid skinny triangles?
Ruppert’s idea (1993) :
Add triangle’s circumcenter into the mesh.
Why does this make sense?
17
How to avoid skinny triangles?
Ruppert’s idea (1993) :
Add triangle’s circumcenter into the mesh.
Why does this make sense?
18
Ruppert’s Algorithm
Input: a set of points in the plane, minimum angle 0
Output: a triangulation, with all angles 0
19
• Algorithm always terminates for 0 < 20.7º.
• Bigger minimum angles 0 are harder.
• Size of mesh is optimal up to a constant factor.
Ruppert’s Algorithm
Input: a set of points in the plane, minimum angle 0
Output: a triangulation, with all angles 0
20
Let’s demonstrate Ruppert on an example…
21
Progress of Ruppert’s algorithm minimum allowed angle = 13 º
Algorithm completed its task.
22
Outline
• Introduction
• Delaunay triangulation
• Ruppert’s algorithm
• Result on runtime analysis of Ruppert’s algorithm
• Conclusion
23
Running Time Analysis
Delaunay triangulation
O(n log n)
24
Running Time Analysis
Delaunay triangulation
O(n log n)
Ruppert’s algorithm
My result:(m2)
25
We proved: worst-case bound of O(m2) is tight.
Number of input points: nNumber of output points: m=O(n)
Input point set (no edges in the input):
26
Delaunay triangulation of the input:
Lots of skinny triangles. We choose to split the one shaded in grey.
27
Big “fan” of triangles appears: high cost
28
We have established a self-repeating pattern …
29
Lots of work continues…
30
Total work proven to be: (m2)
Number of input points: O(n)Number of output points: m=O(n)
31
However, in practice algorithm works well.
Let’s try Ruppert on Lake Superior…
32
Ruppert’s Algorithm on Lake Superior
0 = 25º
33
Solve for temperature…
34
Outline
• Introduction
• Delaunay triangulation
• Ruppert’s algorithm
• Result on runtime analysis of Ruppert’s algorithm
• Conclusion
35
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.
36
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
Recommended