490 likes | 586 Views
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
E N D
Optimal-time Dynamic Mesh Refinement Benoît Hudson, CMU Joint work with Umut Acar, TTI-C www.cs.cmu.edu/bhudson
The mesh credit: CMU quake project
Fine elementsto resolvefine features: • topography • surface effects • Coarse elementsfor coarse features • deep underground • hard rock
Drives SimulationAccuracy Formal problem: Meshing Drives Simulation Runtime • Input: • Point set 2Rd • Fixed quality bound: angle ³a • Output: Triangulation that is: • Conforming: All input points appear • Quality: No angle smaller than a • Optimal size: Not too many elements
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 2Rd • Fixed quality bound: angle ³a • Output: Triangulation that is: • Conforming: All input points appear • Quality: No angle smaller than a • Optimal size: Not too many elements
AdditionsDeletions Formal problem: Dynamic Meshing • Input: • Dynamicpoint set 2Rd • Fixed quality bound: angle ³a • Maintain: Triangulation that is: • Conforming: All input points appear • Quality: No angle smaller than a • Optimal size: Not too many elements
Outline • Precise problem description • Static meshing using quadtrees • Dynamic • Applications • Generating tiny meshes in 2-d
Quadtree refinement [BEG90, MV92, BET93] Þ
Quadtree [BEG90] rules • Unbalanced • Neighbor is small Crowded • two points in cell, or • one point in cell, one in neighbour My rule: Order the work largest first.
Guarantees • Conforming: All input points appear • Quality: No angle smaller than a • Optimal size: Not too many elements • Fast: O(n lg L/s) time • in any fixed dimension d
L (longest) Sizes of cells: L L/2 ... s/4 { s 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 cells • Crowded cellsblamed on p if: • Cell contains p • Cell neighbours p p • Max 9 neighbours of each size.
Runtime: # unbalanced cells • Unbalanced cellsblamed on p if: • Cell unbalanced by cell blamed on p p How to count these?
Blamed3 on p Unbalanced Size 42 |c| Distance · |c| + 4 |c| + 42 |c| Blamed2 on p Unbalanced Size 4 |c| Distance · |c| + 4 |c| Blamed on p Size |c| Distance |c| Runtime: # unbalanced cells • Unbalanced cell blamed on p with size k ? ) Distance · 4 k
Packing Lemma O(1) objects of size k fit in distance O(k) [Worst case: 42] 4 k
n points 25 splits each lg(L/s)+2 sizes 25n [lg(L/s) + 2] Runtime: O(n lg L/s) • For each point p, • For each size i • 16 unbalanced splits • 9 crowded splits
Guarantees: BEG90 • Conforming: All input points appear • Quality: No angle smaller than a • Optimal size: Not too many elements • Fast: O(n lg L/s) time • in any fixed dimension d
Outline • Precise problem description • Static meshing using quadtrees • Dynamic meshing • Applications • Generating tiny meshes in 2-d
init split split split Dynamic Trace main
Dynamic Trace main init split split warp split
Dynamic Trace main init split split warp split warp
Dynamic Trace main init split split warp triang split warp triang
init init split split split split split split split split split split Comparing traces main main 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 • Precise problem description • Static meshing using quadtrees • Dynamic meshing • Applications • Generating tiny meshes in 2-d
Mesh Visualize Solve (1) Dynamic Simulation Partial Diff. Eqs. Model
(1) Dynamic Simulation Mesh Partial Diff. Eqs. Model Visualize Solve
(1) Dynamic Simulation Mesh Partial Diff. Eqs. Model Visualize Solve
(1) Dynamic Simulation New requirements: Dynamic matrix assembly Dynamic linear solver Dynamic visualizer Dynamic AMR Mesh Partial Diff. Eqs. Model Visualize Solve
Dynamic algorithmdoes not handle segments, polygons, ... Dynamic SVR? Coming soon (2) Dynamic with Features
Engineers want billions of elements Doesn’t fit in memory Dynamic refinementallows partial meshing (3) Out of core refinement
Outline • Precise problem description • Static meshing using quadtrees • Dynamic meshing • Applications • 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
® Refinement algorithm: For all pairs, If 9 p 2 circle Choose p Otherwise Create p at off-center Üngör: off-centers Any third point in circle forms a quality triangle
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: • features • 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