Ordered Line Integral Methods for Solving the Eikonal Equation - - PowerPoint PPT Presentation

ordered line integral methods for solving the eikonal
SMART_READER_LITE
LIVE PREVIEW

Ordered Line Integral Methods for Solving the Eikonal Equation - - PowerPoint PPT Presentation

Ordered Line Integral Methods for Solving the Eikonal Equation Samuel F. Potter Maria K. Cameron July 17, 2019 The eikonal equation Solve u ( x ) = s ( x ) for u , where s is the slowness function ( c = 1 /s is speed of sound/light )


slide-1
SLIDE 1

Ordered Line Integral Methods for Solving the Eikonal Equation

Samuel F. Potter Maria K. Cameron July 17, 2019

slide-2
SLIDE 2

The eikonal equation

Solve ∇u(x) = s(x) for u, where s is the slowness function (c = 1/s is speed of sound/light) Where does it come from? Reduced wave (Helmholtz) equation: ∆ + ω2

c2 w = 0

Ansatz (WKB): w(x) ∼ A(x)eiωu(x) → yields eikonal (and transport equation)

1/25

slide-3
SLIDE 3

Ordered line integral methods (OLIMs)

Use local characteristic information to skip updates (important in 3D) Higher accuracy through use of midpoint quadrature rules and increased directional coverage Semi-Lagrangian = ⇒ parametrize local characteristics More tricks that work for the eikonal equation but not the quasipotential concurrent: quasipotential OLIM in 3D [YPC ‘19] OLIMs for computing the quasipotential [DC ‘18]

Related work

2/25

slide-4
SLIDE 4

History of related algorithms

eikonal solvers label-setting algorithms Dijkstra-like Dial-like iterative solvers Bou´ e & Dupuis [‘99] fast sweeping method [Zhao] Tsitsiklis [‘95] Sethian [‘96] OLIMs for eikonal [PC ‘19]

3/25

slide-5
SLIDE 5

Semi-Lagrangian updates

∂Ω x y ϕ Ω u(y) = minx,ϕ

  • u(x) +
  • ϕ s
  • Approximate and minimize

Approximate using simple quadrature rules over straight line segments Minimize using linear algebra + geometry or numerical optimization 4/25

slide-6
SLIDE 6

Stencils, neighborhoods, other methods

FMM (2D) Tsitsiklis (2D) Tsitsiklis (3D) FMM (3D)

5/25

slide-7
SLIDE 7

A generic Dijkstra-like eikonal solver

Until done: → Remove minimum node from priority queue → Set node state to valid → Set far node neighbors’ states to trial → Update neighbors

  • ur focus

far, trial, valid Grid of N d nodes (d = 2, 3) Compute numerical eikonal U Boundary data: U ≡ 0 on a subset of grid points States: Use a priority queue to sort trial nodes by U value trial

6/25

slide-8
SLIDE 8

Contributions

Approximate with simple quadrature rules: mp0, mp1, rhr Update using efficient algorithms: top-down and bottom-up Exact semi-Lagrangian solution for mp0/rhr in all dimensions Numerical results + code profiling Theorem relating mp0 and mp1

7/25 Skip redundant updates

slide-9
SLIDE 9

OLIM Classification

top-down bottom-up mp0 mp1 rhr mp0 mp1 rhr

6 18 26 6 18 26 6 18 26 26 26 26

  • l

i m 6 m p

  • l

i m 1 8 m p

  • l

i m 2 6 m p

  • l

i m 6 m p 1

  • l

i m 1 8 m p 1

  • l

i m 2 6 m p 1

  • l

i m 6 r h r

  • l

i m 1 8 r h r

  • l

i m 2 6 r h r

  • l

i m 3 d m p

  • l

i m 3 d m p 1

  • l

i m 3 d r h r

eikonal OLIMs

update alg.

  • quad. rule
  • num. neighb.

OLIM name 8/25

slide-10
SLIDE 10

OLIM Classification

top-down bottom-up mp0 mp1 rhr mp0 mp1 rhr

6 18 26 6 18 26 6 18 26 26 26 26

  • l

i m 6 m p

  • l

i m 1 8 m p

  • l

i m 2 6 m p

  • l

i m 6 m p 1

  • l

i m 1 8 m p 1

  • l

i m 2 6 m p 1

  • l

i m 6 r h r

  • l

i m 1 8 r h r

  • l

i m 2 6 r h r

  • l

i m 3 d m p

  • l

i m 3 d m p 1

  • l

i m 3 d r h r

FMM 3D Tsitsiklis 3D

eikonal OLIMs

update alg.

  • quad. rule
  • num. neighb.

OLIM name 8/25

slide-11
SLIDE 11

OLIM Classification

top-down bottom-up mp0 mp1 rhr mp0 mp1 rhr

6 18 26 6 18 26 6 18 26 26 26 26

  • l

i m 6 m p

  • l

i m 1 8 m p

  • l

i m 2 6 m p

  • l

i m 6 m p 1

  • l

i m 1 8 m p 1

  • l

i m 2 6 m p 1

  • l

i m 6 r h r

  • l

i m 1 8 r h r

  • l

i m 2 6 r h r

  • l

i m 3 d m p

  • l

i m 3 d m p 1

  • l

i m 3 d r h r

eikonal OLIMs

update alg.

  • quad. rule
  • num. neighb.

OLIM name best 8/25

slide-12
SLIDE 12

Quadrature Rules: Setup

U(ˆ x) = min0≤λ≤1

  • (1 − λ)U(x0) + λU(x1) + Q

L

0 s(ϕ)dl

ˆ U

ˆ x, ˆ s, ˆ U x0, s0, U0 x1, s1, U1 xλ, sλ, Uλ ϕ Approximate integral with quadrature rule Q:

rhr mp0 mp1 ˆ sˆ x − xλ ˆ

s+sλ 2

  • ˆ

x − xλ

  • ˆ

s+ s0+s1

2

2

  • ˆ

x − xλ

approximate U linearly 9/25

slide-13
SLIDE 13

Quadrature Rules: Cost Functions

Frhr(λ) = uλ + ˆ sˆ x − xλ Fmp0(λ) = uλ +

  • ˆ

s+

1 d+1

d

i=0 si

2

  • ˆ

x − xλ Fmp1(λ) = uλ + ˆ

s+sλ 2

  • ˆ

x − xλ U(ˆ x) = minλ∈∆d

  • Uλ + Q

L

0 s(ϕ)dl

  • ˆ

U = minλ∈∆d F(λ)

With ∆d = {λ ∈ Rd : λi ≥ 0 for i = 1, . . . , d and d

i=1 λi ≤ 1}:

=: F(λ) For each quadrature rule (rhr, mp0, mp1):

10/25

slide-14
SLIDE 14

Quadrature Rules: θ-rules

F0(λ) = uλ +

  • (1 − θ)ˆ

s +

θ d+1

d

i=0 si

  • ˆ

x − xλ F1(λ) = uλ + [(1 − θ)ˆ s + θsλ] ˆ x − xλ Frhr = F0, θ = 0 Fmp0 = F0, θ = 1/2 Fmp1 = F1, θ = 1/2

λ s0 sλ

s0+s1 2

s1 sθ ˆ s θ = 0 θ = 1/2

= ⇒ Cost functions Frhr, Fmp0, Fmp1 generalized by: Specifically:

11/25

slide-15
SLIDE 15

E.g., setup for tetrahedron update

ˆ p

p1 p2 p0 δp1 δp2 pλ = p0 + δPλ sθ sθ

λ

ˆ s = s(ˆ p) s1 s2 s0 sλ = s(pλ) 12/25 si = s(pi) δP = p1 − p0 p2 − p0

  • =

δp1 δp2

slide-16
SLIDE 16

Exact solution for F0 (Frhr and Fmp0)

Theorem: Let δP = p1 − p0 · · · pd − p0

  • , and let

QR = qr(δP, 0) and λ∗ = argminλ∈RdF0(λ). Then: pλ∗ =

  • p⊤

0 (I − QQ⊤)p0

1 −

  • R−⊤ δU

sθh

  • 2

λ∗ = −R−1

  • Q⊤p0 + pλ∗R−⊤ δU

sθh

  • ˆ

U = F(λ∗)

Works in any dimension for any simplex, parametrizes local characteristic in addition to computing ˆ

  • U. Proof: geometry & linear

algebra. 13/25

slide-17
SLIDE 17

Problem with continuity for Fmp0

ˆ p p2 p2 p1 p0

14/25

slide-18
SLIDE 18

Problem with continuity for Fmp0

ˆ p p2 p2 p1 p0

14/25

Set ˆ U = Fmp1(λ∗

mp0)

slide-19
SLIDE 19

Validating mp0

Proof: Kantorovich’s theorem + 3 lemmas for verification of conditions. Theorem: Let h be small enough that F1 is strictly convex, let λ∗

0 and λ∗ 1 be (unconstrained) minimizers of θ-rules F0 and

  • F1. Then |F1(λ∗

1) − F1(λ∗ 0)| = O(h3).

Compute λ∗

0 using QR

decomposition, then set ˆ U ← Fmp1(λ∗

0) (i.e., use

Fmp1 to evaluate).

∆2 15/25

slide-20
SLIDE 20

Solution for mp1

Nothing fancy: − → For tri updates, use hybrid method − → For tetra updates, use sequential quadratic programming

∆2 Our implementation is carefully tested and reasonably optimized 16/25

slide-21
SLIDE 21

A few other things...

Some relevant things in the paper which I won’t go into here Causality (of individual updates) for F0 and F1 Convexity of θ-rules F0 and F1 General formula for the update gap of a simplex in d dimensions (for Dial-like algorithm) Simple idea: ∇2F1 = ∇2F0 + “small indefinite perturbation” Hence, perturbation = O(h2) lets proofs for F0 apply to F1 for h small enough

17/25

slide-22
SLIDE 22

Local Factoring

At point sources and rarefaction fans, order of convergence can degrade from O(h) to O(h log 1

h) — see also Qi’s talk

Very easy to modify our cost functions to work with the additively factored eikonal equation

point source

rarefaction fan

  • bstacle

Qi, Dongping, and Alexander Vladimirsky. ”Corner cases, singularities, and dynamic factoring.” Journal of Scientific Computing 79.3 (2019): 1456-1476. 18/25

slide-23
SLIDE 23

Enumerating Updates (top-down)

ˆ p Manually enumerate update tetrahedra and triangles = olim6 neighbors + + + = olim18 neighbors = olim26 neighbors Consider only one octant at a time (by symmetry) Can then enumerate small number of tetrahedra (hence triangle) updates 19/25

slide-24
SLIDE 24

Enumerating Updates (top-down)

ˆ p I II III IVa IVb V VIa VIb ˆ p 19/25

slide-25
SLIDE 25

Enumerating Updates (top-down)

ˆ p I II III IVa IVb V VIa VIb ˆ p

  • lim6

19/25

slide-26
SLIDE 26

Enumerating Updates (top-down)

ˆ p I II III IVa IVb V VIa VIb ˆ p

  • lim18

19/25

slide-27
SLIDE 27

Enumerating Updates (top-down)

ˆ p I II III IVa IVb V VIa VIb ˆ p

  • lim26

19/25

slide-28
SLIDE 28

Skipping Updates (top-down)

Case 1: F0 (i.e. Frhr and mp0) = ⇒ exact solution via QR Case 2: F1 (i.e. Fmp1) = ⇒ constrained optimization

Skip all incident lower-dimensional updates (i.e., after a tetra update, skip all incident tri and line updates (6 total))

∆2 2 2 2 1 1 1

λ1 λ2

skip

λ∗ p0

p1

p2 If λ∗

0 /

∈ ∆d, check its location For d = 2, easy to divide R2\∆2 into disjoint “skip zones” Skip zone tells us which lower-dimensional updates to skip 20/25

slide-29
SLIDE 29

Enumerating Updates (bottom-up)

p0 = pnew

ˆ p p2 p1

Check if tri update minimizer λ∗ is minimizer of for adjacent tetrahedron updates (using KKT conditions) λ ∈ ∆d is a simple linear matrix inequality Check if tri update argmin is argmin

  • f tetra update by computing only
  • ne Lagrange multiplier

Start with p0 = pnew, do line update Check gradient to see if line update “minimizer” is minimizer of adjacent triangle updates (olim3d) 21/25

slide-30
SLIDE 30

Enumerating Updates (bottom-up)

p0 = pnew

ˆ p p2 p1

Check if tri update minimizer λ∗ is minimizer of for adjacent tetrahedron updates (using KKT conditions) λ ∈ ∆d is a simple linear matrix inequality Check if tri update argmin is argmin

  • f tetra update by computing only
  • ne Lagrange multiplier

Start with p0 = pnew, do line update Check gradient to see if line update “minimizer” is minimizer of adjacent triangle updates (olim3d) 21/25 minimizer of triangle update?

slide-31
SLIDE 31

Enumerating Updates (bottom-up)

p0 = pnew

ˆ p p2 p1

Check if tri update minimizer λ∗ is minimizer of for adjacent tetrahedron updates (using KKT conditions) λ ∈ ∆d is a simple linear matrix inequality Check if tri update argmin is argmin

  • f tetra update by computing only
  • ne Lagrange multiplier

Start with p0 = pnew, do line update Check gradient to see if line update “minimizer” is minimizer of adjacent triangle updates (olim3d) 21/25 minimizer of tetra update?

slide-32
SLIDE 32

Enumerating Updates (bottom-up)

p0 = pnew

ˆ p p2 p1

Check if tri update minimizer λ∗ is minimizer of for adjacent tetrahedron updates (using KKT conditions) λ ∈ ∆d is a simple linear matrix inequality Check if tri update argmin is argmin

  • f tetra update by computing only
  • ne Lagrange multiplier

Start with p0 = pnew, do line update Check gradient to see if line update “minimizer” is minimizer of adjacent triangle updates (olim3d) 21/25 minimizer!

slide-33
SLIDE 33

Enumerating Updates (bottom-up)

p0 = pnew

ˆ p p2 p1

Check if tri update minimizer λ∗ is minimizer of for adjacent tetrahedron updates (using KKT conditions) λ ∈ ∆d is a simple linear matrix inequality Check if tri update argmin is argmin

  • f tetra update by computing only
  • ne Lagrange multiplier

Start with p0 = pnew, do line update Check gradient to see if line update “minimizer” is minimizer of adjacent triangle updates Only try higher-dim updates if λ∗ in interior = ⇒ only one constraint active (olim3d) 21/25

slide-34
SLIDE 34

Test Problem (Single Point Source)

u(x) = 1

2x⊤A1/2x

s(x) = xA = √ x⊤Ax A is spd 22/25

slide-35
SLIDE 35

Test Problem (Single Point Source)

u(x) = 1

2x⊤A1/2x

s(x) = xA = √ x⊤Ax A is spd 22/25

slide-36
SLIDE 36

Profiling Using Valgrind

Too little “heap” time to measure when running olim26 and olim3d FMM and olim6 rhr spend smallest amount of time updating = ⇒ can detect time spent in heap Very sensitive to how state is stored (valid, trial, far) Related: “Fast Methods for Eikonal Equations: an Experimental Survey”, G´

  • mez, ´

Alvarez, Garrido, Moreno. 2015. 23/25

slide-37
SLIDE 37

Summary

OLIMs are fast and accurate, especially in 3D

  • lim3d mp0 best overall: rhr speed + mp1 accuracy

Improved directional coverage leads to improved accuracy—midpoint quadrature rule important here Bottom-up algorithm generally faster and a bit more accurate, but top-down may be useful for multiple arrivals. Data structures just as important as algorithms, but little emphasis on them in the literature

24/25

slide-38
SLIDE 38

Future Work

Dahiya, Daisy, and Maria Cameron. “Ordered line integral methods for computing the quasi-potential.” Journal of Scientific Computing (2018). Potter, Samuel F., and Maria K. Cameron. “Ordered Line Integral Methods for Solving the Eikonal Equation.” arXiv:1902.06825 (2019). In revision. Yang, Shuo, Samuel F. Potter, and Maria K. Cameron. “Computing the quasipotential for nongradient SDEs in 3D.” Journal of Computational Physics 379 (2019). more details Higher order semi-Lagrangian Dijkstra-like algorithm Use two-level grid or quad-tree to store front states Detect multiple arrivals (caustics...) — HF acoustics application Use update gap to allow some parallelization (at least SIMD...)

References

memory savings 25/25