Title: Optimal-time Dynamic Mesh Refinement
1Optimal-time Dynamic Mesh Refinement
- Benoît Hudson, CMU
- Joint work with Umut Acar, TTI-C
- www.cs.cmu.edu/bhudson
2credit SCEC
3The mesh
credit CMU quake project
4- Fine elementsto resolvefine features
- topography
- surface effects
- Coarse elementsfor coarse features
- deep underground
- hard rock
5Formal problem Meshing
Drives Simulation Accuracy
Drives Simulation Runtime
- Input
- Point set 2 Rd
- 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
6Mesh size near Riversidehow big?
7Adaptive Mesh Refinement
- Adapt the mesh during the simulation
- Refine steep gradients
- Coarsen flat gradients
- Use dynamic mesh refinement!
8Formal problem Meshing
- Input
- Point set 2 Rd
- 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
9Formal problem Dynamic Meshing
AdditionsDeletions
- Input
- Dynamic point set 2 Rd
- 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
10Outline
- Precise problem description
- Static meshing using quadtrees
- Dynamic
- Applications
- Generating tiny meshes in 2-d
11Quadtree refinement
BEG90, MV92, BET93
Þ
12Quadtree 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.
13Quadtree Build Overlay
14Quadtree Warp
15Quadtree Triangulate
16Guarantees
- 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
17(No Transcript)
18Optimal spacing No overly small elements
Define closest distance s Smallest cell size
s / 4 ) timesteps not too small.
19Runtime O(n lg L/s)
- Want to show O(n lg L/s) splits performed.
- Namely, O(lg L/s) splits per input point
- ... ?
20Runtime 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
21Runtime crowded cells
- Crowded cellsblamed on p if
- Cell contains p
- Cell neighbours p
p
- Max 9 neighbours of each size.
22Runtime unbalanced cells
- Unbalanced cellsblamed on p if
- Cell unbalanced by cell blamed on p
p
How to count these?
23Runtime unbalanced cells
- Unbalanced cell blamed on p with size k ?
- ) Distance 4 k
24Packing Lemma
O(1) objects of size k fit in distance
O(k) Worst case 42
4 k
25Runtime O(n lg L/s)
- For each point p,
- For each size i
- 16 unbalanced splits
- 9 crowded splits
26Guarantees 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
27Outline
- Precise problem description
- Static meshing using quadtrees
- Dynamic meshing
- Applications
- Generating tiny meshes in 2-d
28Dynamic Trace
main
29Dynamic Trace
main
init
split
split
warp
split
30Dynamic Trace
main
init
split
split
warp
split
warp
31Dynamic Trace
main
init
split
split
warp
triang
split
warp
triang
32Comparing traces
main
main
Trace stability How much red?
33Self-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
34Outline
- Precise problem description
- Static meshing using quadtrees
- Dynamic meshing
- Applications
- Generating tiny meshes in 2-d
35(1) Dynamic Simulation
Partial Diff. Eqs.
Model
36(1) Dynamic Simulation
Mesh
Partial Diff. Eqs.
Model
Visualize
Solve
37(1) Dynamic Simulation
Mesh
Partial Diff. Eqs.
Model
Visualize
Solve
38(1) Dynamic Simulation
- New requirements
- Dynamic matrix assembly
- Dynamic linear solver
- Dynamic visualizer
- Dynamic AMR
Mesh
Partial Diff. Eqs.
Model
Visualize
Solve
39(2) Dynamic with Features
- Dynamic algorithmdoes not handle segments,
polygons, ... - Dynamic SVR?
- Coming soon
40(3) Out of core refinement
- Engineers want billions of elements
- Doesnt fit in memory
- Dynamic refinementallows partial meshing
41Outline
- Precise problem description
- Static meshing using quadtrees
- Dynamic meshing
- Applications
- Generating tiny meshes in 2-d
42Delaunay Refinement
- Quadtree criticism generates very (constant
factor) large meshes.
- Har-Peled, Üngör 05
- Dont insert every point in the quadtree
43Üngör off-centers
Any third point in circle forms a quality triangle
44Har-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
45Har-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
46Har-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
47Har-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
48Dynamic 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
49Conclusions
- 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
50Bibliography
- 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