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

New Bounds on the Size of Optimal Meshes

Embed Size (px)

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)$.

Citation preview

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