Title: Mesh refinement: sequential, parallel, and dynamic
1Mesh refinementsequential, parallel,and dynamic
- Benoît Hudson, CMU
- Joint work with Umut Acar, TTI-CGary Miller and
Todd Phillips, CMU
Papers available at http//www.cs.cmu.edu/bhudson
2Mesh refinementsequential, parallel,and dynamic
- Benoît Hudson, CMU
- Joint work with Umut Acar, TTI-CGary Miller and
Todd Phillips, CMU
Papers available at http//www.cs.cmu.edu/bhudson
3(No Transcript)
4(No Transcript)
5Finite Element Simulation Overview
Partial Diff. Eqs.
Model
6Our results
- First optimal-time sequential mesher
- Fast in implementation
- First provably fast parallel mesher
- First optimal-time dynamic mesher
7Outline
- Precise problem description
- Prior solutions
- Sequential
- Parallel
- Dynamic
- Many open problems
8Outline
- Precise problem description
- Prior solutions
- Sequential
- Parallel
- Dynamic
- Many open problems
9Input
Points
Segments
Polygons
10Input
Points
Segments
Polygons
P courtesy of Shewchuk
11Output
ConformingAll features appear (subdivided)
P courtesy of Shewchuk
12Big angles are bad
13No small angle ) no big angle
14Need Steiner Points
15Sizing
Size-optimality Output O(mopt) points
16Formal problem
- Input
- Points 2 Rd, Segments, Polygons,
- Quality bound angle ³ a
- Output
- Conforms All features appear
- Quality No angle smaller than a
- Size-optimal O(mopt) vertices
17Outline
- Precise problem description
- Prior solutions
- Sequential
- Parallel
- Dynamic
- Many open problems
18Outline
- Precise problem description
- Prior solutions
- Sequential
- Parallel
- Dynamic
- Many open problems
19Delaunay Triangulation
Maximizes minimumangle
20Delaunay Triangulation
Maximizes minimumangle
May not be good enough
21Ruppert (1992)
22Ruppert Identify skinny triangle
23Ruppert Find circumcenter
24Ruppert Snap to segment
25Ruppert Insert, retriangulate
26Ruppert Repeat until done
27Evaluation criteria
polygons
segments
Miller04
Ruppert92
Feature handling
3d points
2d points
n2
n lg n
n polylog(n)
Runtime
28Ruppert 3D a bad example
29Ruppert 3D a bad example
30Ruppert 3D W(n2)
n/2 points along line
n/2 points around circle
Delaunay has n2/4 tets
31(No Transcript)
32Evaluation criteria
polygons
Shewchuk98
segments
Mil04
Feature handling
3d points
2d points
n2
n lg n
n polylog(n)
Runtime
33Quadtree Bern et al (1990)
34Quadtree Bern et al (1990)
35Quadtree Bern et al (1990)
36Quadtree Bern et al (1990)
37Evaluation criteria
She98
polygons
MV92
segments
Mil04
BEG90
Feature handling
3d points
2d points
n2
n lg n
n polylog(n)
Runtime
38Compare and contrast
86 triangles, 17
55 triangles, 30
39Outline
- Precise problem description
- Prior solutions
- Sequential
- Parallel
- Dynamic
- Many open problems
40Outline
- Precise problem description
- Prior solutions
- Sequential
- Parallel
- Dynamic
- Many open problems
41Fast sequential meshing
- Hudson, Miller, Phillips 2006Sparse Voronoi
Refinement15th International Meshing Roundtable
42The intuition
Quadtrees fast runtime top-down. Intermediate
meshes are good quality.
SVR always good quality, find features quickly
Rupperts small size bottom-up,good feature
recovery.
43Sparse Delaunay Refinement
44Add a bounding box
45Triangulate just the box!
46Apply splitting rules
- If a triangle is skinny,split it.
- If a triangle containsinput, split it.
47Apply splitting rules
- If a triangle is skinny,split it.
- If a triangle containsinput, split it.
48Split
- If a triangle is skinny,split it.
- If a triangle containsinput, split it.
Split(t)
1. Draw circle
2. Shrink by k
3. Choose a point
4. Insert it, retriangulate
49Apply splitting rules
- If a triangle is skinny,split it.
- If a triangle containsinput, split it.
Split(t)
1. Draw circle
2. Shrink by k
3. Choose a point
4. Insert it, retriangulate
50Apply splitting rules
- If a triangle is skinny,split it.
- If a triangle containsinput, split it.
51Apply splitting rules
- If a triangle is skinny,split it.
- If a triangle containsinput, split it.
52Apply splitting rules
- If a triangle is skinny,split it.
- If a triangle containsinput, split it.
53Apply splitting rules
- If a triangle is skinny,split it.
- If a triangle containsinput, split it.
54General flavour
Like quadtree, refine top-down Like Ruppert, use
input points, circumcenters Warp to input
whenpossible.
55Runtime proof
- (1) Quality always good
- Never warp close tomesh vertex
- No angle smaller than
56Runtime proof
- (1) Quality always good
- (2) Quality ) bounded degree
- 360 degrees
- degree 360/
57Runtime proof
- (1) Quality always good
- (2) Quality ) bounded degree
- (3) Bounded degree ) O(1) operations
- insertions
- range queries
58Runtime proof
- (1) Quality always good
- (2) Quality ) bounded degree
- (3) Bounded degree ) O(1) operations
- (4) Quality ) divide conquer
- !!!
59Quality ) divide conquer
p
60Quality ) divide conquer
e0(p)
e1(p)
p
61Quality ) divide conquer
e0(p)
p
e2(p)
62Quality ) divide conquer
e0(p)
p
ei(p)
63Quality ) divide conquer
farthest(p)
?k
e0(p)
nearest(p)
p
ei(p)
64Quality ) divide conquer
farthest(p)
q
?2k
nearest(q)
p
65Packing Lemma
At most O(1) qibefore farthest(p)falls by half.
p
66Packing Lemma
At most O(1) qibefore farthest(p)falls by half.
farthest(p) falls by half at most log (L/s) times
67Runtime proof
- (1) Quality always good
- (2) Quality ) bounded degree
- (3) Bounded degree ) O(1) operations
- (4) Quality ) divide conquer
- O(m n log L/s)
68Evaluation criteria
SVR (HMP06)
She98
polygons
MV92
segments
Mil04
BEG90
Feature handling
3d points
2d points
n2
n lg n
n polylog(n)
Runtime
69In practice point clouds
Stanford Bunny (34834 points)
Preparata (N103, 104)
N points around ring
N points on line
70In practice N1,000
N points along line
N points around circle
71In practice N10,000
(Calculate (104)2 108 tets in Delaunay, each
tet is 8 pointers Þ 3.2 GB)
SVR outputs 722K tets in 22s Pyramid thrashes,
c after 4 hours
N points along line
N points around circle
72In practice the bunny
73Outline
- Precise problem description
- Prior solutions
- Sequential
- Parallel
- Dynamic
- Many open problems
74Outline
- Precise problem description
- Prior solutions
- Sequential
- Parallel
- Dynamic
- Many open problems
75Parallel SVR
- Hudson, Miller, Phillips 2007Sparse Parallel
Delaunay RefinementTo appear, SPAA.
76Why parallel?
- My laptop two cores today
- Paterson expect 100 cores in 10 years
- National Labs 41,000 cores last week
- Understanding the dependencies
- Helps with constant factors in sequential case
- Helps with out-of-core, distributed, compression,
dynamic case,
77Parallel Algorithms Comparison
L largest distance s smallest distance L/s º
spread Normally L/s Î poly(n) lg L/s lg n
Depth
Work
Dimension
Algorithm
SVR HMP07 Quadtree BET93 Ruppert
STU02 Ruppert STU02
any d 2d 2d 3d
O(lg (L/s) lg(m)) O(lg n) O(polylog(L/s)) O(polylo
g(L/s))
O(n lg L/s m) O(n lg n m) O(m
polylog(L/s)) W(n2)
n number of input points, segments, m number
of output points L/s spread of the input
78Outline
- Precise problem description
- Prior solutions
- Sequential
- Parallel
- Dynamic
- Many open problems
79Outline
- Precise problem description
- Prior solutions
- Sequential
- Parallel
- Dynamic
- Many open problems
80Dynamic meshing
- Acar, Hudson, 2007 (in submission)Dynamic mesh
refinement using Quadtrees and Off-centers
81OBrien, Hodgins 1999
82Stability
83Stability
84Stability
85Stability
86Stability
87Stability bound O(log L/s)
Proof in paper Newly split cells pack around new
point
88Self-adjusting computation Acar et al, 2006
- Update speed O( stability)
- Insert / delete are exactly symmetric
- Stability is O(log L/s)
- ) Quadtree update is O(log L/s)
- Implementation in SML
89Outline
- Precise problem description
- Prior solutions
- Sequential
- Parallel
- Dynamic
- Many open problems
90Outline
- Precise problem description
- Prior solutions
- Sequential
- Parallel
- Dynamic
- Many open problems
91(1) Dynamic Simulation
Partial Diff. Eqs.
Model
92(1) Dynamic Simulation
Mesh
Partial Diff. Eqs.
Model
Visualize
Solve
93(1) Dynamic Simulation
Mesh
Partial Diff. Eqs.
Model
Visualize
Solve
94(1) Dynamic Simulation
- New requirements
- Dynamic matrix assembly
- Dynamic linear solver
- Dynamic visualizer
- Dynamic AMR
Mesh
Partial Diff. Eqs.
Model
Visualize
Solve
95(2) Dynamic with Features
- Dynamic algorithmdoes not handle segments,
polygons, ... - Dynamic SVR?
- Likely coming soon
96(3) Out of core refinement
- Engineers want billions of elements
- Doesnt fit in memory
- Dynamic refinementallows partial meshing
97(4) Distributed refinement
- Engineers want billions of elements
- Engineers have supercomputers
- Need to address
- Mesh partitioning
- Load balancing
98(5) Surface reconstruction
- Traditional approach
- Compute Delaunay
- Skinny tet ) surface
- Refinement
- Compute Delaunay
- Skinny tet ) refine
99Summary
- Everyone needs a mesher
- Sequential First optimal-time mesher
- First sub-quadratic in 3d!
- Implementation in progress
- Parallel First optimal-work, shallow-depth
- Dynamic First optimal-time mesher
100Bibliography
- 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