Optimal-time Dynamic Mesh Refinement

Preview:

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

Optimal-time Dynamic

Mesh Refinement

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

www.cs.cmu.edu/bhudson

credit: SCEC

The mesh

credit: CMU quake project

• Fine elementsto resolvefine features:– topography– surface effects

• Coarse elementsfor coarse features– deep underground– hard rock

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

Mesh size near Riverside:how big?

Adaptive Mesh Refinement• Adapt the mesh during the

simulation• Refine steep gradients• Coarsen flat gradients

• Use 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

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

Outline

1. Precise problem description

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

Quadtree refinement

[BEG90, MV92, BET93]

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.

Quadtree: Build Overlay

Quadtree: Warp

Quadtree: Triangulate

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

L (longest)

s

Sizes of cells:L

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

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

• ... ?

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

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

- Max 9 neighbours of each size.

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

How to count these?

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|

Packing Lemma

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

[Worst case: 42] 4 k

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

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

Outline

1. Precise problem description2. Static meshing using quadtrees

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

Dynamic Tracemain

init splitsplitsplit

Dynamic Tracemain

init split splitsplit

warp

Dynamic Tracemain

init split splitsplit

warpwarp

Dynamic Tracemain

init split splitsplit

warpwarp

triang

triang

init

Comparing tracesmain

splitsplitsplit

main

splitinit

split

splitsplit

split splitsplit

Trace stability: How much red?

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

Outline

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

4. Applications5. Generating tiny meshes in 2-d

Visualize

(1) Dynamic Simulation

Model

Partial Diff. Eqs.Mesh

Solve

Visualize

(1) Dynamic Simulation

Model

Partial Diff. Eqs.Mesh

Solve

Visualize

(1) Dynamic Simulation

Model

Partial Diff. Eqs.Mesh

Solve

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

(2) Dynamic with Features

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

• Dynamic SVR?– Coming soon

(3) Out of core refinement

• Engineers want billions of elements

• Doesn’t fit in memory• Dynamic refinement

allows partial meshing

Outline

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

5. Generating tiny meshes in 2-d

Delaunay Refinement

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

• Har-Peled, Üngör 05:

• Don’t insert every point in the quadtree

®

Ü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

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

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

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

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

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

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

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

Recommended