49
Optimal- time Dynamic Mesh Refinemen t Benoît Hudson, CMU Joint work with Umut Acar, TTI-C www.cs.cmu.edu/bhudson

Optimal-time Dynamic Mesh Refinement

  • Upload
    gayle

  • View
    35

  • Download
    1

Embed Size (px)

DESCRIPTION

Optimal-time Dynamic Mesh Refinement. Benoît Hudson, CMU Joint work with Umut Acar, TTI-C www.cs.cmu.edu/bhudson. credit: SCEC. The mesh. credit: CMU quake project. Fine elements to resolve fine features: topography surface effects Coarse elements for coarse features deep underground - PowerPoint PPT Presentation

Citation preview

Page 1: Optimal-time Dynamic Mesh Refinement

Optimal-time Dynamic

Mesh Refinement

Benoît Hudson, CMUJoint work with Umut Acar, TTI-C

www.cs.cmu.edu/bhudson

Page 2: Optimal-time Dynamic Mesh Refinement

credit: SCEC

Page 3: Optimal-time Dynamic Mesh Refinement

The mesh

credit: CMU quake project

Page 4: Optimal-time Dynamic Mesh Refinement

• Fine elementsto resolvefine features:– topography– surface effects

• Coarse elementsfor coarse features– deep underground– hard rock

Page 5: Optimal-time Dynamic Mesh Refinement

Formal problem: Meshing• Input:

– Point set 2 Rd

– Fixed quality bound: angle • Output: Triangulation that is:

– Conforming: All input points appear– Quality: No angle smaller than – Optimal size: Not too many elements

DrivesSimulation Accuracy Drives

Simulation Runtime

Page 6: Optimal-time Dynamic Mesh Refinement

Mesh size near Riverside:how big?

Page 7: Optimal-time Dynamic Mesh Refinement

Adaptive Mesh Refinement• Adapt the mesh during the

simulation• Refine steep gradients• Coarsen flat gradients

• Use dynamic mesh refinement!

Page 8: Optimal-time Dynamic Mesh Refinement

Formal problem: Meshing• Input:

– Point set 2 Rd

– Fixed quality bound: angle • Output: Triangulation that is:

– Conforming: All input points appear– Quality: No angle smaller than – Optimal size: Not too many elements

Page 9: Optimal-time Dynamic Mesh Refinement

Formal problem: Dynamic Meshing• Input:

– Dynamic point set 2 Rd

– Fixed quality bound: angle • Maintain: Triangulation that is:

– Conforming: All input points appear– Quality: No angle smaller than – Optimal size: Not too many elements

AdditionsDeletions

Page 10: Optimal-time Dynamic Mesh Refinement

Outline

1. Precise problem description

2. Static meshing using quadtrees3. Dynamic4. Applications5. Generating tiny meshes in 2-d

Page 11: Optimal-time Dynamic Mesh Refinement

Quadtree refinement

[BEG90, MV92, BET93]

Page 12: Optimal-time Dynamic Mesh Refinement

Crowded• two points

in cell, or• one point in

cell, one in neighbour

Quadtree [BEG90] rulesUnbalanced• Neighbor is small

My rule:Order the work

largest first.

Page 13: Optimal-time Dynamic Mesh Refinement

Quadtree: Build Overlay

Page 14: Optimal-time Dynamic Mesh Refinement

Quadtree: Warp

Page 15: Optimal-time Dynamic Mesh Refinement

Quadtree: Triangulate

Page 16: Optimal-time Dynamic Mesh Refinement

Guarantees

• Conforming: All input points appear• Quality: No angle smaller than • Optimal size: Not too many elements• Fast: O(n lg L/s) time

– in any fixed dimension d

Page 17: Optimal-time Dynamic Mesh Refinement

L (longest)

s

Sizes of cells:L

L/2...s/4{O(lg(L/s))

Page 18: Optimal-time Dynamic Mesh Refinement

Runtime: O(n lg L/s)

• Want to show: O(n lg L/s) splits performed.– Namely, O(lg L/s) splits per input point

• ... ?

Page 19: Optimal-time Dynamic Mesh Refinement

Runtime: O(n lg L/s)

• Want to show: O(n lg L/s) splits performed.– Namely, O(lg L/s) splits per input point

• Account separately for splits due to:– Crowding– Balance

Page 20: Optimal-time Dynamic Mesh Refinement

Runtime: # crowded cellsCrowded cellsblamed on p if:- Cell contains p- Cell neighbours p p

- Max 9 neighbours of each size.

Page 21: Optimal-time Dynamic Mesh Refinement

Runtime: # unbalanced cellsUnbalanced cellsblamed on p if:- Cell unbalanced by cell blamed on p p

How to count these?

Page 22: Optimal-time Dynamic Mesh Refinement

Runtime: # unbalanced cells

• Unbalanced cell blamed on p with size k ?

) Distance · 4 k Blamed2 on pUnbalancedSize 4 |c|Distance · |c| + 4 |c|

Blamed3 on pUnbalanced Size 42 |c|Distance · |c| + 4 |c|

+ 42 |c|

Blamed on pSize |c|Distance |c|

Page 23: Optimal-time Dynamic Mesh Refinement

Packing Lemma

O(1) objects of size k fit in distance O(k)

[Worst case: 42] 4 k

Page 24: Optimal-time Dynamic Mesh Refinement

Runtime: O(n lg L/s)

• For each point p,– For each size i

• 16 unbalanced splits• 9 crowded splits

lg(L/s)+2 sizes

n points

25n [lg(L/s) + 2]

25 splits each

Page 25: Optimal-time Dynamic Mesh Refinement

Guarantees: BEG90

• Conforming: All input points appear• Quality: No angle smaller than • Optimal size: Not too many elements• Fast: O(n lg L/s) time

– in any fixed dimension d

Page 26: Optimal-time Dynamic Mesh Refinement

Outline

1. Precise problem description2. Static meshing using quadtrees

3. Dynamic meshing4. Applications5. Generating tiny meshes in 2-d

Page 27: Optimal-time Dynamic Mesh Refinement

Dynamic Tracemain

init splitsplitsplit

Page 28: Optimal-time Dynamic Mesh Refinement

Dynamic Tracemain

init split splitsplit

warp

Page 29: Optimal-time Dynamic Mesh Refinement

Dynamic Tracemain

init split splitsplit

warpwarp

Page 30: Optimal-time Dynamic Mesh Refinement

Dynamic Tracemain

init split splitsplit

warpwarp

triang

triang

Page 31: Optimal-time Dynamic Mesh Refinement

init

Comparing tracesmain

splitsplitsplit

main

splitinit

split

splitsplit

split splitsplit

Trace stability: How much red?

Page 32: Optimal-time Dynamic Mesh Refinement

Self-adjusting computation: Acar et al, 2006

• Update speed = O(# stability)

) Quadtree update is O(log L/s)• History-independent:

– Retain guarantees from static algorithm• Insert / delete are exactly symmetric• Implementation in SML

Page 33: Optimal-time Dynamic Mesh Refinement

Outline

1. Precise problem description2. Static meshing using quadtrees3. Dynamic meshing

4. Applications5. Generating tiny meshes in 2-d

Page 34: Optimal-time Dynamic Mesh Refinement

Visualize

(1) Dynamic Simulation

Model

Partial Diff. Eqs.Mesh

Solve

Page 35: Optimal-time Dynamic Mesh Refinement

Visualize

(1) Dynamic Simulation

Model

Partial Diff. Eqs.Mesh

Solve

Page 36: Optimal-time Dynamic Mesh Refinement

Visualize

(1) Dynamic Simulation

Model

Partial Diff. Eqs.Mesh

Solve

Page 37: Optimal-time Dynamic Mesh Refinement

Visualize

(1) Dynamic Simulation

Model

Partial Diff. Eqs.Mesh

Solve

New requirements:(1)Dynamic matrix assembly(2)Dynamic linear solver(3)Dynamic visualizer(4)Dynamic AMR

Page 38: Optimal-time Dynamic Mesh Refinement

(2) Dynamic with Features

• Dynamic algorithmdoes not handle segments, polygons, ...

• Dynamic SVR?– Coming soon

Page 39: Optimal-time Dynamic Mesh Refinement

(3) Out of core refinement

• Engineers want billions of elements

• Doesn’t fit in memory• Dynamic refinement

allows partial meshing

Page 40: Optimal-time Dynamic Mesh Refinement

Outline

1. Precise problem description2. Static meshing using quadtrees3. Dynamic meshing4. Applications

5. Generating tiny meshes in 2-d

Page 41: Optimal-time Dynamic Mesh Refinement

Delaunay Refinement

• Quadtree criticism: generates “very” (constant factor) large meshes.

• Har-Peled, Üngör 05:

• Don’t insert every point in the quadtree

Page 42: Optimal-time Dynamic Mesh Refinement

®

Üngör: off-centersAny third point in circle forms a quality triangle

Refinement algorithm:For all pairs, If 9 p 2 circle Choose p Otherwise Create p at off-center

Page 43: Optimal-time Dynamic Mesh Refinement

Har-Peled, Üngör 2005

• Goal: O(n lg L/s) runtime• Question : how to do

point location?

Refinement algorithm:For all pairs, If 9 p 2 circle Choose p Otherwise Create p at off-center

Page 44: Optimal-time Dynamic Mesh Refinement

Har-Peled, Üngör 2005• Use quad-tree overlay• For all pairs (a, b) with

a in smallest cell,b in neighbouring cell

– If 9 p 2 circle• Choose p

– Otherwise• Create p at off-center

Page 45: Optimal-time Dynamic Mesh Refinement

Har-Peled, Üngör 2005• Use quad-tree overlay• For all pairs (a, b) with

a in smallest cell,b in neighbouring cell

– If 9 p 2 circle• Choose p

– Otherwise• Create p at off-center

Page 46: Optimal-time Dynamic Mesh Refinement

Har-Peled, Üngör 2005• Use quad-tree overlay• For all pairs (a, b) with

a in 2nd - smallest cell,b in neighbouring cell

– If 9 p 2 circle• Choose p

– Otherwise• Create p at off-center

Page 47: Optimal-time Dynamic Mesh Refinement

Dynamic stability of HPÜ:• Use quad-tree overlay

– O(lg L/s)-stable• Off-center “blames” (a,b)

– Blame is transitive– Same analysis as balance– O(lg L/s)-stable

HPÜ is O(lg L/s)-stable

Page 48: Optimal-time Dynamic Mesh Refinement

Conclusions• Dynamic Meshing in O(lg L/s) per update

– Simple algorithm, optimal time– Implementation near-trivial

• Output guarantees: same mesh as static• In 2-d: maintain mesh as small as known• To-do:

(1) features(2) dynamize the rest of the world

Page 49: Optimal-time Dynamic Mesh Refinement

Bibliography[Che89]: Chew “Guaranteed quality triangular meshes”, 1989[BEG90]: Bern, Eppstein, Gilbert “Provably good mesh generation”, 1994[MV92]: Mitchell, Vavasis “Quality mesh generation …”, 2000[Rup92]: Ruppert “A Delaunay refinement algorithm for …”, 1995[BET93]: Bern, Eppstein, Teng “Parallel construction …”, 1999[She97]: Shewchuk “Delaunay refinement mesh generation”, 1997[MPW02]: Miller, Pav, Walkington “Fully incremental …”, 2002[STU02]: Spielman, Teng, Ungor “Parallel Delaunay …”, 2002[Mil04]: Miller, “A time-efficient Delaunay Refinement …”, 2004[HPU05]: Har-Peled, Ungor, “A time-optimal Delaunay …”, 2005[HMP06]: Hudson, Miller, Phillips, “Sparse Voronoi Refinement”, 2006[HMP07]: ~, “Sparse Parallel Delaunay Refinement”, 2007[MPS07]: Miller, Phillips, Sheehy, “Size competitive …”, 2007[HA07]: Acar, Hudson, “Dynamic quad-tree mesh refinement ...”, submitted