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

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

Jan 18, 2016

Download

Documents

Dinah Hill
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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