optimal-time dynamic mesh refinement
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 PresentationTRANSCRIPT
![Page 1: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/1.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/2.jpg)
credit: SCEC
![Page 3: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/3.jpg)
The mesh
credit: CMU quake project
![Page 4: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/4.jpg)
• Fine elementsto resolvefine features:– topography– surface effects
• Coarse elementsfor coarse features– deep underground– hard rock
![Page 5: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/5.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/6.jpg)
Mesh size near Riverside:how big?
![Page 7: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/7.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/8.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/9.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/10.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/11.jpg)
Quadtree refinement
[BEG90, MV92, BET93]
![Page 12: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/12.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/13.jpg)
Quadtree: Build Overlay
![Page 14: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/14.jpg)
Quadtree: Warp
![Page 15: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/15.jpg)
Quadtree: Triangulate
![Page 16: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/16.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/17.jpg)
L (longest)
s
Sizes of cells:L
L/2...s/4{O(lg(L/s))
![Page 18: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/18.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/19.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/20.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/21.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/22.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/23.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/24.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/25.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/26.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/27.jpg)
Dynamic Tracemain
init splitsplitsplit
![Page 28: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/28.jpg)
Dynamic Tracemain
init split splitsplit
warp
![Page 29: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/29.jpg)
Dynamic Tracemain
init split splitsplit
warpwarp
![Page 30: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/30.jpg)
Dynamic Tracemain
init split splitsplit
warpwarp
triang
triang
![Page 31: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/31.jpg)
init
Comparing tracesmain
splitsplitsplit
main
splitinit
split
splitsplit
split splitsplit
Trace stability: How much red?
![Page 32: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/32.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/33.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/34.jpg)
Visualize
(1) Dynamic Simulation
Model
Partial Diff. Eqs.Mesh
Solve
![Page 35: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/35.jpg)
Visualize
(1) Dynamic Simulation
Model
Partial Diff. Eqs.Mesh
Solve
![Page 36: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/36.jpg)
Visualize
(1) Dynamic Simulation
Model
Partial Diff. Eqs.Mesh
Solve
![Page 37: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/37.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/38.jpg)
(2) Dynamic with Features
• Dynamic algorithmdoes not handle segments, polygons, ...
• Dynamic SVR?– Coming soon
![Page 39: Optimal-time Dynamic Mesh Refinement](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/39.jpg)
(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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/40.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/41.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/42.jpg)
®
Ü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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/43.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/44.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/45.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/46.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/47.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/48.jpg)
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](https://reader038.vdocuments.site/reader038/viewer/2022102809/56816790550346895ddcc0fb/html5/thumbnails/49.jpg)
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