new bounds on the size of optimal meshes

139
New Bounds on the Size of Optimal Meshes Don Sheehy Geometrica INRIA

Upload: don-sheehy

Post on 11-May-2015

137 views

Category:

Documents


2 download

DESCRIPTION

The theory of optimal size meshes gives a method for analyzing the output size (number of simplices) of a Delaunay refinement mesh in terms of the integral of a sizing function over the input domain. The input points define a maximal such sizing function called the feature size. This paper presents a way to bound the feature size integral in terms of an easy to compute property of a suitable ordering of the point set. The key idea is to consider the pacing of an ordered point set, a measure of the rate of change in the feature size as points are added one at a time. In previous work, Miller et al.\ showed that if an ordered point set has pacing $\phi$, then the number of vertices in an optimal mesh will be $O(\phi^dn)$, where $d$ is the input dimension. We give a new analysis of this integral showing that the output size is only $\Theta(n + n\log \phi)$. The new analysis tightens bounds from several previous results and provides matching lower bounds. Moreover, it precisely characterizes inputs that yield outputs of size $O(n)$.

TRANSCRIPT

Page 1: New Bounds on the Size of Optimal Meshes

New Boundson the

Size of Optimal Meshes

Don Sheehy

GeometricaINRIA

Page 2: New Bounds on the Size of Optimal Meshes

Mesh Generation

Page 3: New Bounds on the Size of Optimal Meshes

Mesh Generation

1 Decompose a volume into simplices.

Page 4: New Bounds on the Size of Optimal Meshes

Mesh Generation

1 Decompose a volume into simplices.

2 Simplices should be quality.

Page 5: New Bounds on the Size of Optimal Meshes

Mesh Generation

1 Decompose a volume into simplices.

2 Simplices should be quality.

Page 6: New Bounds on the Size of Optimal Meshes

Mesh Generation

1 Decompose a volume into simplices.

2 Simplices should be quality.

3 Output should conform to input.

Page 7: New Bounds on the Size of Optimal Meshes

Mesh Generation

1 Decompose a volume into simplices.

2 Simplices should be quality.

3 Output should conform to input.

Page 8: New Bounds on the Size of Optimal Meshes

Mesh Generation

Page 9: New Bounds on the Size of Optimal Meshes

Mesh Generation

Uses:

Page 10: New Bounds on the Size of Optimal Meshes

Mesh Generation

Uses:PDEs via FEM

Page 11: New Bounds on the Size of Optimal Meshes

Mesh Generation

Uses:PDEs via FEMData Analysis

Page 12: New Bounds on the Size of Optimal Meshes

Mesh Generation

Uses:PDEs via FEMData Analysis

Good Codes:

Page 13: New Bounds on the Size of Optimal Meshes

Mesh Generation

Uses:PDEs via FEMData Analysis

Good Codes:Triangle

Page 14: New Bounds on the Size of Optimal Meshes

Mesh Generation

Uses:PDEs via FEMData Analysis

Good Codes:TriangleCGAL

Page 15: New Bounds on the Size of Optimal Meshes

Mesh Generation

Uses:PDEs via FEMData Analysis

Good Codes:TriangleCGALTetGen

Page 16: New Bounds on the Size of Optimal Meshes

Mesh Generation

Uses:PDEs via FEMData Analysis

Good Codes:TriangleCGALTetGen

Theoretical Guarantees:

Page 17: New Bounds on the Size of Optimal Meshes

Mesh Generation

Uses:PDEs via FEMData Analysis

Good Codes:TriangleCGALTetGen

Theoretical Guarantees:Sliver Removal

Page 18: New Bounds on the Size of Optimal Meshes

Mesh Generation

Uses:PDEs via FEMData Analysis

Good Codes:TriangleCGALTetGen

Theoretical Guarantees:Sliver RemovalSurface Reconstruction

Page 19: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 20: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 21: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 22: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 23: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 24: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 25: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 26: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 27: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 28: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 29: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 30: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 31: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 32: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 33: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 34: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 35: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 36: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 37: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 38: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 39: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Page 40: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:

Page 41: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:Easy to implement

Page 42: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:Easy to implementOften Parallel

Page 43: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:Easy to implementOften Parallel

Cons:

Page 44: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:Easy to implementOften Parallel

Cons:Termination?

Page 45: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:Easy to implementOften Parallel

Cons:Termination?Accumulations?

Page 46: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:Easy to implementOften Parallel

Cons:Termination?Accumulations?

Page 47: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:Easy to implementOften Parallel

Cons:Termination?Accumulations?

Page 48: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:Easy to implementOften Parallel

Cons:Termination?Accumulations?How many points?

Page 49: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:Easy to implementOften Parallel

Cons:Termination?Accumulations?How many points?

Page 50: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:Easy to implementOften Parallel

Cons:Termination?Accumulations?How many points?

Yes.

Page 51: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:Easy to implementOften Parallel

Cons:Termination?Accumulations?How many points?

Yes.No.

Page 52: New Bounds on the Size of Optimal Meshes

Local Refinement Algorithms

Pros:Easy to implementOften Parallel

Cons:Termination?Accumulations?How many points?

Yes.No.

This is what we’ll answer.

Page 53: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

Page 54: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

lfsP (x) := Distance to second nearest neighbor in P .

Page 55: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

lfsP (x) := Distance to second nearest neighbor in P .

Page 56: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

lfsP (x) := Distance to second nearest neighbor in P .

Page 57: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

x

lfsP (x) := Distance to second nearest neighbor in P .

Page 58: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

lfs(x)

x

lfsP (x) := Distance to second nearest neighbor in P .

Page 59: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

x

lfsP (x) := Distance to second nearest neighbor in P .

Page 60: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

lfs(x)x

lfsP (x) := Distance to second nearest neighbor in P .

Page 61: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

lfs(x)x

lfsP (x) := Distance to second nearest neighbor in P .

Optimal Mesh Size = !!

"

!dx

lfs(x)d

#

Page 62: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

lfs(x)x

lfsP (x) := Distance to second nearest neighbor in P .

Optimal Mesh Size = !!

"

!dx

lfs(x)d

#

number of vertices

Page 63: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

lfs(x)x

lfsP (x) := Distance to second nearest neighbor in P .

Optimal Mesh Size = !!

"

!dx

lfs(x)d

#

hides simple exponential in d

number of vertices

Page 64: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

lfs(x)x

lfsP (x) := Distance to second nearest neighbor in P .

Optimal Mesh Size = !!

"

!dx

lfs(x)d

#

hides simple exponential in d

number of vertices

µP (!) =

!!

dx

lfsP (x)dThe Feature Size Measure:

Page 65: New Bounds on the Size of Optimal Meshes

The size of an optimal mesh is given by the feature size measure.

lfsP (x) := Distance to second nearest neighbor in P .

Optimal Mesh Size = !!

"

!dx

lfs(x)d

#

hides simple exponential in d

number of vertices

µP (!) =

!!

dx

lfsP (x)dThe Feature Size Measure:

When is µP (!) = O(n)?

Page 66: New Bounds on the Size of Optimal Meshes

A canonical bad case for meshing is two points in a big empty space.

Page 67: New Bounds on the Size of Optimal Meshes

A canonical bad case for meshing is two points in a big empty space.

Page 68: New Bounds on the Size of Optimal Meshes

A canonical bad case for meshing is two points in a big empty space.

Page 69: New Bounds on the Size of Optimal Meshes

A canonical bad case for meshing is two points in a big empty space.

Page 70: New Bounds on the Size of Optimal Meshes

A canonical bad case for meshing is two points in a big empty space.

Page 71: New Bounds on the Size of Optimal Meshes

A canonical bad case for meshing is two points in a big empty space.

Page 72: New Bounds on the Size of Optimal Meshes

A canonical bad case for meshing is two points in a big empty space.

Page 73: New Bounds on the Size of Optimal Meshes

A canonical bad case for meshing is two points in a big empty space.

Page 74: New Bounds on the Size of Optimal Meshes

A canonical bad case for meshing is two points in a big empty space.

Page 75: New Bounds on the Size of Optimal Meshes

A canonical bad case for meshing is two points in a big empty space.

Page 76: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.

Page 77: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.Order the points.

Page 78: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.Order the points.

Page 79: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.Order the points.

Page 80: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.Order the points.

Page 81: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.Order the points.

Page 82: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.Order the points.

Page 83: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.

piOrder the points.

Page 84: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.

a = !pi "NN(pi)!

piOrder the points.

Page 85: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.

b = !pi " 2NN(pi)!

a = !pi "NN(pi)!

piOrder the points.

Page 86: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.

b = !pi " 2NN(pi)!

a = !pi "NN(pi)!

pi

The pacing of the ith point is !i =b

a.

Order the points.

Page 87: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.

b = !pi " 2NN(pi)!

a = !pi "NN(pi)!

pi

The pacing of the ith point is !i =b

a.

Let ! be the geometric mean, so!

log !i = n log !.

Order the points.

Page 88: New Bounds on the Size of Optimal Meshes

The feature size measure can be bounded in terms of the pacing.

b = !pi " 2NN(pi)!

a = !pi "NN(pi)!

pi

The pacing of the ith point is !i =b

a.

Let ! be the geometric mean, so!

log !i = n log !.

! is the pacing of the ordering.

Order the points.

Page 89: New Bounds on the Size of Optimal Meshes

The trick is to write the feature size measure as a telescoping sum.

Page 90: New Bounds on the Size of Optimal Meshes

The trick is to write the feature size measure as a telescoping sum.

Pi = {p1, . . . , pi}

Page 91: New Bounds on the Size of Optimal Meshes

The trick is to write the feature size measure as a telescoping sum.

Pi = {p1, . . . , pi}

µP = µP2+

n!

i=3

"

µPi! µPi!1

#

Page 92: New Bounds on the Size of Optimal Meshes

The trick is to write the feature size measure as a telescoping sum.

Pi = {p1, . . . , pi}

effect of adding the ith point.

µP = µP2+

n!

i=3

"

µPi! µPi!1

#

Page 93: New Bounds on the Size of Optimal Meshes

The trick is to write the feature size measure as a telescoping sum.

Pi = {p1, . . . , pi}

effect of adding the ith point.

µP = µP2+

n!

i=3

"

µPi! µPi!1

#

µPi(!)! µPi!1

(!) = "(1 + log !i)

Page 94: New Bounds on the Size of Optimal Meshes

The trick is to write the feature size measure as a telescoping sum.

Pi = {p1, . . . , pi}

effect of adding the ith point.

n!

i=3

log !i = n log !

µP = µP2+

n!

i=3

"

µPi! µPi!1

#

µPi(!)! µPi!1

(!) = "(1 + log !i)

Page 95: New Bounds on the Size of Optimal Meshes

The trick is to write the feature size measure as a telescoping sum.

Pi = {p1, . . . , pi}

effect of adding the ith point.

n!

i=3

log !i = n log !

µP = µP2+

n!

i=3

"

µPi! µPi!1

#

µPi(!)! µPi!1

(!) = "(1 + log !i)

!(n+ n log !)

Page 96: New Bounds on the Size of Optimal Meshes

The trick is to write the feature size measure as a telescoping sum.

Pi = {p1, . . . , pi}

effect of adding the ith point.

n!

i=3

log !i = n log !

Previous bound: O(n+ !dn).

µP = µP2+

n!

i=3

"

µPi! µPi!1

#

µPi(!)! µPi!1

(!) = "(1 + log !i)

!(n+ n log !)

Page 97: New Bounds on the Size of Optimal Meshes

Pacing analysis has already led to new results.

Page 98: New Bounds on the Size of Optimal Meshes

Pacing analysis has already led to new results.

The Scaffold Theorem (SODA 2009)

Given n points well-spaced on a surface, the volume mesh has size O(n).

Page 99: New Bounds on the Size of Optimal Meshes

Pacing analysis has already led to new results.

The Scaffold Theorem (SODA 2009)

Given n points well-spaced on a surface, the volume mesh has size O(n).

Time-Optimal Point Meshing (SoCG 2011)

Build a mesh in O(n log n + m) time.Algorithm explicitly computes the pacing for each insertion.

Page 100: New Bounds on the Size of Optimal Meshes

Some takeaway messages:

Page 101: New Bounds on the Size of Optimal Meshes

Some takeaway messages:

1 The amortized change in the number of vertices in a mesh as a result of adding one new point is determined by the pacing of that point.

Page 102: New Bounds on the Size of Optimal Meshes

Some takeaway messages:

1 The amortized change in the number of vertices in a mesh as a result of adding one new point is determined by the pacing of that point.

2 Point sets that admit linear size meshes are exactly those with constant pacing.

Page 103: New Bounds on the Size of Optimal Meshes

Some takeaway messages:

1 The amortized change in the number of vertices in a mesh as a result of adding one new point is determined by the pacing of that point.

2 Point sets that admit linear size meshes are exactly those with constant pacing.

Thank you.

Page 104: New Bounds on the Size of Optimal Meshes
Page 105: New Bounds on the Size of Optimal Meshes
Page 106: New Bounds on the Size of Optimal Meshes

Mesh Generation 13

Page 107: New Bounds on the Size of Optimal Meshes

Mesh GenerationDecompose a domain into simple elements.

13

Page 108: New Bounds on the Size of Optimal Meshes

Mesh GenerationDecompose a domain into simple elements.

13

Page 109: New Bounds on the Size of Optimal Meshes

Mesh Generation

Mesh Quality

Radius/Edge < const

Decompose a domain into simple elements.

13

Page 110: New Bounds on the Size of Optimal Meshes

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

Decompose a domain into simple elements.

13

Page 111: New Bounds on the Size of Optimal Meshes

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

Conforming to InputDecompose a domain into simple elements.

13

Page 112: New Bounds on the Size of Optimal Meshes

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

Conforming to InputDecompose a domain into simple elements.

13

Page 113: New Bounds on the Size of Optimal Meshes

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

Conforming to InputDecompose a domain into simple elements.

13

Page 114: New Bounds on the Size of Optimal Meshes

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

Conforming to InputDecompose a domain into simple elements.

13

Page 115: New Bounds on the Size of Optimal Meshes

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

Conforming to InputDecompose a domain into simple elements.

Voronoi Diagram

13

Page 116: New Bounds on the Size of Optimal Meshes

Mesh Generation

X X✓

Mesh Quality

Radius/Edge < const

OutRadius/InRadius < const

Conforming to InputDecompose a domain into simple elements.

Voronoi Diagram

13

Page 117: New Bounds on the Size of Optimal Meshes

Mesh Generation

X X✓

✓X

Mesh Quality

Radius/Edge < const

OutRadius/InRadius < const

Conforming to InputDecompose a domain into simple elements.

Voronoi Diagram

13

Page 118: New Bounds on the Size of Optimal Meshes

Mesh Generation

X X✓

✓X

Mesh Quality

Radius/Edge < const

OutRadius/InRadius < const

Conforming to InputDecompose a domain into simple elements.

Voronoi Diagram

13

Page 119: New Bounds on the Size of Optimal Meshes

Optimal meshing adds the fewest points to make all Voronoi cells fat.*

* Equivalent to radius-edge condition on Delaunay simplices.

Page 120: New Bounds on the Size of Optimal Meshes

Optimal meshing adds the fewest points to make all Voronoi cells fat.*

* Equivalent to radius-edge condition on Delaunay simplices.

Page 121: New Bounds on the Size of Optimal Meshes

Optimal meshing adds the fewest points to make all Voronoi cells fat.*

* Equivalent to radius-edge condition on Delaunay simplices.

Page 122: New Bounds on the Size of Optimal Meshes

Optimal meshing adds the fewest points to make all Voronoi cells fat.*

* Equivalent to radius-edge condition on Delaunay simplices.

Page 123: New Bounds on the Size of Optimal Meshes

Meshing Points 15Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

n = |P |,m = |M |

Page 124: New Bounds on the Size of Optimal Meshes

Meshing Points 15Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

n = |P |,m = |M |

Page 125: New Bounds on the Size of Optimal Meshes

Meshing Points 15Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

n = |P |,m = |M |

Page 126: New Bounds on the Size of Optimal Meshes

Meshing Points 15Input: P ! Rd

Output: M " P with a “nice” Voronoi diagram

n = |P |,m = |M |

Page 127: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16

Page 128: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16The Ruppert Feature Size: fP (x) := distance to 2nd NN of x in P

Page 129: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16The Ruppert Feature Size: fP (x) := distance to 2nd NN of x in P

Page 130: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16The Ruppert Feature Size: fP (x) := distance to 2nd NN of x in P

x

Page 131: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16The Ruppert Feature Size: fP (x) := distance to 2nd NN of x in P

fP (x)x

Page 132: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16The Ruppert Feature Size: fP (x) := distance to 2nd NN of x in P

x

Page 133: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16The Ruppert Feature Size: fP (x) := distance to 2nd NN of x in P

fP(x)

x

Page 134: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16The Ruppert Feature Size: fP (x) := distance to 2nd NN of x in P

Page 135: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16The Ruppert Feature Size: fP (x) := distance to 2nd NN of x in P

For all v ! M, fM (v) " KfP (v) m = !

! "!!

dx

fP (x)d

Page 136: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16The Ruppert Feature Size: fP (x) := distance to 2nd NN of x in P

For all v ! M, fM (v) " KfP (v)

“No 2 points too close together” “Optimal Size Output”

m = !

! "!!

dx

fP (x)d

Page 137: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16The Ruppert Feature Size: fP (x) := distance to 2nd NN of x in P

For all v ! M, fM (v) " KfP (v)

“No 2 points too close together” “Optimal Size Output”

m = !

! "!!

dx

fP (x)d

v

Page 138: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16The Ruppert Feature Size: fP (x) := distance to 2nd NN of x in P

For all v ! M, fM (v) " KfP (v)

“No 2 points too close together” “Optimal Size Output”

m = !

! "!!

dx

fP (x)d

fM (v)

v

Page 139: New Bounds on the Size of Optimal Meshes

How to prove a meshing algorithm is optimal.16The Ruppert Feature Size: fP (x) := distance to 2nd NN of x in P

For all v ! M, fM (v) " KfP (v)

“No 2 points too close together” “Optimal Size Output”

m = !

! "!!

dx

fP (x)d

fP(v) fM (v)

v