22
Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Embed Size (px)

Citation preview

Page 1: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Computing the Delaunay triangulation for PDB data

Yuanxin(‘Leo’) Liu Jack Snoeyink

Page 2: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

GoalImprove the performance of 3D Delaunay tessellation software

for Protein applications

Yuanxin Liu
ana.surface volume packing,4-body potential
Page 3: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Delaunay Tessellation in 3D• Theory

– output size: O(n2)

• Practice– distribution

– locality of reference

– numeric precision

Page 4: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Delaunay Tessellation in 3D• Existing technologies

– CGAL [J.-D. Boissonnat, O. Devillers, S. Pion, M. Teillaud, and M. Yvinec 02]

– Qhull [Barber, Dobkin, and Huhdanpaa 96]

– ProShape [P. Koehl, M. Levitt, and H. Edelsbrunner 02 ]

– BRIO [N. Amenta, S. Choi and G. Rote 03]

Page 5: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Delaunay Tessellation in 3D• What’s New?

– Orders the points based on space filling curve.

– Stores spheres to reduce the

number of multiplications.

– Compact, table-based data structures

– Avoid the numerical problems by “leveling”.

Page 6: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Space-Filling Curve• Hilbert Curve

2D

Page 7: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Space-Filling Curve• Hilbert Curve

3D

Page 8: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Space-Filling Curve• Cache-friendly permutation

– First pass: • count • prefix sum

– Second pass:• Permute the points

Page 9: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Space-Filling Curve• Cache-friendly permutation

– First pass: • count • prefix sum

– Second pass:• Permute the points 1

3

2

1

Page 10: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Space-Filling Curve• Cache-friendly permutation

– First pass: • count • prefix sum

– Second pass:• Permute the points 0

1

4

6

Page 11: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Space-Filling Curve• Cache-friendly permutation

– First pass: • count • prefix sum

– Second pass:• Permute the points 0

1

4

6

0 1 2 3 4 5 6

Page 12: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Space-Filling Curve• Cache-friendly permutation

– First pass: • count • prefix sum

– Second pass:• Permute the points 0

1

4

6

0 1 2 3 4 5 6

Page 13: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Space-Filling Curve• Other curves

row-major snake

Z-order spiral

Gray-code data-dependent

Page 14: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Sphere-based Computations• InSphere test: S q

• Orientation test with plane : P12 q

S

S2

S1

q

Page 15: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Sphere-based Computations• Orientation test

with plane : P12 q

P12 = ( S1 ∞ ) S2 - ( S2 ∞ ) S1

P12 q = (( S1 ∞ ) S2) q – (( S2 ∞ ) S1 ) q = (( S1 ∞ )(S2 q) – (( S2 ∞ )(S1

q )

S2

S1

q

Page 16: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Compact Data structures• Vertex Array

• Corner Array

• Sphere Array

{x1 y1 z1}

{x2 y2 z2}

… …

… …

Tetra1 Tetra2

S1 S2 … …

S2S1

Corners are ordered “canonically”.

Page 17: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Compact Data structures• Canonical Ordering of Corners

a b c d b a c e… …

Tetra1 Tetra2d

Canonical order: lexigraphically smallest ordering thatgives positive orientation

e

a

b

c

Page 18: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

“Leveling”• Grouping points together that have

the same trailing bit pattern

101000 101100 111100 111000 100010 111110

1st level

2nd level

3rd level

Page 19: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Experiments• Comparison against Qhull

20000 40000 60000 80000 100000 120000

2

4

6

8 Qhull

Our program

Page 20: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Experiments• Comparison against Qhull

0 200000 400000 600000 800000

0

100

200

300

400 Qhull

Our program

Page 21: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

Experiments• Comparison between space filling

curves

1 2 3 4 5 6 7 8

0.00001

0.00002

0.00003

0.00004

Hilbert rowmajor gray zorder snake random data dependentspiral

Page 22: Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink

On-going Experiments•

tetras created

time