Title: Gary%20Miller
1Size Competitive Meshing without Large Angles
Gary L. Miller Carnegie Mellon Computer
Science Joint work with Todd Phillips and Don
Sheehy
2The Problem
Input A Planar Straight Line Graph
3The Problem
Input A Planar Straight Line Graph
Output A Conforming Triangulation
4The Problem
Input A Planar Straight Line Graph
Output A Conforming Triangulation
5The Problem
Input A Planar Straight Line Graph
Output A Conforming Triangulation
Quality
6What is a quality triangle?
7What is a quality triangle?
No Large Angles
No Small Angles
8What is a quality triangle?
No Large Angles
No Small Angles
Implies triangles have bounded aspect ratio.
9What is a quality triangle?
No Large Angles
No Small Angles
Implies triangles have bounded aspect ratio.
Implies triangles have bounded largest angles.
10What is a quality triangle?
No Large Angles
No Small Angles
Implies triangles have bounded aspect ratio.
Implies triangles have bounded largest angles.
Can be efficiently computed by Delaunay Refinement
11What is a quality triangle?
No Large Angles
No Small Angles
Sufficient for many applications.
Implies triangles have bounded aspect ratio.
Implies triangles have bounded largest angles.
Can be efficiently computed by Delaunay Refinement
12What is a quality triangle?
No Large Angles
No Small Angles
Sufficient for many applications.
Implies triangles have bounded aspect ratio.
Can be asymptotically smaller then Delaunay
Refinement triangulations.
Implies triangles have bounded largest angles.
Can be efficiently computed by Delaunay Refinement
13What is a quality triangle?
No Large Angles
No Small Angles
Sufficient for many applications.
Implies triangles have bounded aspect ratio.
Can be asymptotically smaller then Delaunay
Refinement triangulations.
Implies triangles have bounded largest angles.
More difficult to analyze.
Can be efficiently computed by Delaunay Refinement
14In Defense of Quality
15In Defense of Quality
16In Defense of Quality
17In Defense of Quality
What went wrong?
18In Defense of Quality
What went wrong?
19Interpolation Problem
No Large Angles
Large Angles
Large angles give large H1 errors that FEMs try
to minimize.
20Paying for the spread
21Paying for the spread
Spread L/s
L
s
22Paying for the spread
Optimal No-Large-Angle Triangulation
23Paying for the spread
What if we dont allow small angles?
24Paying for the spread
What if we dont allow small angles?
25Paying for the spread
What if we dont allow small angles?
O(L/s) triangles!
26Paying for the spread
What if we dont allow small angles?
O(L/s) triangles!
27Delaunay Refinement
28Delaunay Refinement
29Delaunay Refinement
- Theorem Delaunay Refinement on point sets
terminates and returns a triangulation with - all angles at least 30-e degrees
- O(n log L/s) triangles
30Patersons Example
O(n) points
O(n) lines
31Patersons Example
O(n) points
O(n) lines
32Patersons Example
O(n) points
O(n) lines
33Patersons Example
O(n) points
O(n) lines
34Patersons Example
O(n) points
O(n) lines
35Patersons Example
O(n) points
O(n) lines
36Past Results
- O(n) triangles with 90o largest angles for
polygons with holes. Bern, Mitchell, Ruppert,
95 - ?(n2) lower bound for arbitrary PLSGs.
Paterson - O(n2) triangles with 132o angles on PSLGs. Tan,
96
37Past Results
Delaunay Refinement Methods
No-Large-Angle Methods
Cons
Pros
Cons
Pros
Smaller Meshes Not well-graded Complicated to
Implement
Good Theory Optimal Runtime Graded Mesh Simple to
Implement Esthetically Nice
Huge Meshes O(L/s) Require Hacks to handle small
input angles. Size depends on smallest angle.
Smaller Meshes Worst-Case Optimal
38Past Results
OUR
Delaunay Refinement Methods
No-Large-Angle Methods
Cons
Pros
Cons
Pros
Smaller Meshes Not well-graded Complicated to
Implement
Good Theory Optimal Runtime Graded Mesh Simple to
Implement Esthetically Nice
Huge Meshes O(L/s) Require Hacks to handle small
input angles. Size depends on smallest angle.
Smaller Meshes Worst-Case Optimal
39Past Results
OUR
Delaunay Refinement Methods
No-Large-Angle Methods
Cons
Pros
Cons
Pros
Only Worst-Case Bounds Not well-graded Complicated
to Implement
Good Theory Optimal Runtime Graded Mesh Simple to
Implement Esthetically Nice
Huge Meshes O(L/s) Require Hacks to handle small
input angles. Size depends on smallest angle.
Smaller Meshes Worst-Case Optimal
40Past Results
OUR
Delaunay Refinement Methods
No-Large-Angle Methods
Cons
Pros
Cons
Pros
Only Worst-Case Bounds Not well-graded Complicated
to Implement
Good Theory Optimal Runtime Graded Mesh Simple to
Implement Esthetically Nice
Huge Meshes O(L/s) Require Hacks to handle small
input angles. Size depends on smallest angle.
Smaller Meshes Worst-Case Optimal size
Log L/s -competitive
Graded on Average
41Past Results
OUR
Delaunay Refinement Methods
No-Large-Angle Methods
Cons
Pros
Cons
Pros
Only Worst-Case Bounds Not well-graded Complicated
to Implement
Good Theory Optimal Runtime Graded Mesh Simple to
Implement Esthetically Nice
Huge Meshes O(L/s) Require Hacks to handle small
input angles. Size depends on smallest angle.
Smaller Meshes Worst-Case Optimal size
Log L/s -competitive
Graded on Average
Our Angle bounds are not as good, 170o versus
140o
42Local Feature Size
lfs(x) distance to second nearest vertex.
Note lfs is defined on the whole plane.
x
lfs(x)
43The OSM Algorithm(Overlay Stitch Meshing)
44The OSM Algorithm(Overlay Stitch Meshing)
45The OSM Algorithm(Overlay Stitch Meshing)
46The OSM Algorithm(Overlay Stitch Meshing)
47The OSM Algorithm(Overlay Stitch Meshing)
48The OSM Algorithm(Overlay Stitch Meshing)
49The OSM Algorithm(Overlay Stitch Meshing)
50The OSM Algorithm(Overlay Stitch Meshing)
51The OSM Algorithm(Overlay Stitch Meshing)
52The OSM Algorithm(Overlay Stitch Meshing)
53The OSM Algorithm(Overlay Stitch Meshing)
54The OSM Algorithm(Overlay Stitch Meshing)
55The OSM Algorithm(Overlay Stitch Meshing)
56The OSM Algorithm(Overlay Stitch Meshing)
- An Overlay Edge is kept if
- 1. It does not intersect the input,
- OR
57The OSM Algorithm(Overlay Stitch Meshing)
- An Overlay Edge is kept if
- 1. It does not intersect the input,
- OR
- 2. It forms any good intersection with the input.
58The OSM Algorithm(Overlay Stitch Meshing)
- An Overlay Edge is kept if
- 1. It does not intersect the input,
- OR
- 2. It forms any good intersection with the input.
at least 30o
59Angle Guarantees
60Angle Guarantees
We want to prove that the stitch vertices that we
keep do not form bad angles.
61Angle Guarantees
An Overlay Triangle
62Angle Guarantees
An Overlay Triangle
An Overlay Edge
63Angle Guarantees
Gap Ball
An Overlay Triangle
An Overlay Edge
64Angle Guarantees
A Good Intersection
65Angle Guarantees
A Bad Intersection
66Angle Guarantees
A Bad Intersection
67Angle Guarantees
A Bad Intersection
68Angle Guarantees
How Bad can it be?
A Bad Intersection
69Angle Guarantees
How Bad can it be?
70Angle Guarantees
How Bad can it be?
71Angle Guarantees
How Bad can it be?
About 10o
72Angle Guarantees
How Bad can it be?
Theorem If any input edge makes a good
intersection with an overlay edge then any other
intersection on that edge is not too bad.
About 10o
73Size Bounds
How big is the resulting triangulation?
74Size Bounds
How big is the resulting triangulation?
Goal log(L/s)-competitive with optimal
75Size Bounds
How big is the resulting triangulation?
Goal log(L/s)-competitive with optimal
Overlay Phase O(n log L/s) points added
76Size Bounds
How big is the resulting triangulation?
Goal log(L/s)-competitive with optimal
Overlay Phase O(n log L/s) points
Stitching Phase O(sE lfs0-1(z)dz)
77Rupperts Idea
- r Q(lfs(c))
- area(D) Q(lfs(c)2)
- of triangles ?(ss lfs(x,y)-2 dxdy)
r
c
78Rupperts Idea
- r Q(lfs(c))
- area(D) Q(lfs(c)2)
- of triangles ?(ss lfs(x,y)-2 dxdy)
r
c
Caveat Only Works for well-graded meshes with
bounded smallest angle.
79Extending Rupperts Idea
of triangles ?(ss lfs(x,y)-2 dxdy)
80Extending Rupperts Idea
of triangles ?(ss lfs(x,y)-2 dxdy)
An input edge e intersecting the overlay mesh
81Extending Rupperts Idea
of triangles ?(ss lfs(x,y)-2 dxdy)
of triangles along e ?(sz2 e lfs(z)-1 dz)
An input edge e intersecting the overlay mesh
82Extending Rupperts Idea
of triangles ?(ss lfs(x,y)-2 dxdy)
of triangles along e ?(sz2 e lfs(z)-1 dz)
Now we can compute the size of our output mesh.
We just need to compare these integrals with
optimal.
83Competitive Analysis
Warm-up
84Competitive Analysis
Warm-up
90o
85Competitive Analysis
Warm-up
?o
86Competitive Analysis
Warm-up
87Competitive Analysis
Warm-up
88Competitive Analysis
Warm-up
89Competitive Analysis
Warm-up
90Competitive Analysis
Warm-up
91Competitive Analysis
Warm-up
Suppose we have a triangulation with all angles
at least 170o.
92Competitive Analysis
Warm-up
Suppose we have a triangulation with all angles
at least 170o.
an optimal
93Competitive Analysis
Warm-up
Suppose we have a triangulation with all angles
at least 170o.
an optimal
Every input edge is covered by empty lenses.
94Competitive Analysis
This is what we will integrate over to get a
lower bound.
Suppose we have a triangulation with all angles
at least 170o.
the optimal
Every input edge is covered by empty lenses.
95Competitive Analysis
This is what we will integrate over to get a
lower bound.
We show that in each lens, we put O(log (L/s))
points on the edge.
96Competitive Analysis
This is what we will integrate over to get a
lower bound.
e
We show that in each lens, we put O(log (L/s))
points on the edge.
97Conclusion
- A new algorithm for no-large-angle triangulation.
- The output has bounded degree triangles.
- The first log-competitive analysis for such an
algorithm.
98Conclusion
- A new algorithm for no-large-angle triangulation.
- The output has bounded degree triangles.
- The first log-competitive analysis for such an
algorithm. - We used simple calculus to bound mesh sizes.
99Where to go from here?
100Where to go from here?
101Where to go from here?
- 3D?
- Better angle bounds?
- Find a constant competitive algorithm.
102Where to go from here?
- 3D?
- Better angle bounds?
- Find a constant competitive algorithm.
Thanks
103Competitive Analysis
sz2 e 1/lfs(z) dz O(log (L/s))
e
104Competitive Analysis
sz2 e 1/lfs(z) dz O(log (L/s))
e
Parametrize e as 0, l where l length(e)
105Competitive Analysis
sz2 e 1/lfs(z) dz O(log (L/s))
e
Parametrize e as 0, l
1st trick lfs \ge s everywhere
106Competitive Analysis
sz2 e 1/lfs(z) dz O(log (L/s))
t
e
Parametrize e as e(t) for t2 0, l l
length(e)
1st trick lfs s everywhere
2nd trick lfs ct for t2 0,l/2
107Competitive Analysis
sz2 e 1/lfs(z) dz O(log (L/s))
t
e
Parametrize e as e(t)
? z2 e 1/lfs(z) dz 2 ?s 0 1/s 2 ? sl/2 1/x
dx O(1) O(log(l/2) log s) O(log l/s)
O(log L/s)
1st trick lfs s everywhere
2nd trick lfs ct for t2 0,l/2