Decomposed Optimization Time Integrator for Large-Step - - PowerPoint PPT Presentation

decomposed optimization time integrator for large step
SMART_READER_LITE
LIVE PREVIEW

Decomposed Optimization Time Integrator for Large-Step - - PowerPoint PPT Presentation

(a) (d) Decomposed Optimization Time Integrator for Large-Step Elastodynamics Minchen Li 1,2 , Ming Gao 1 , Timothy Langlois 2 , Chenfanfu Jiang 1 , Danny Kaufman 2 1. University of Pennsylvania 2. Adobe Research Time Stepping DOT: Time


slide-1
SLIDE 1

Decomposed Optimization Time Integrator for Large-Step Elastodynamics

Minchen Li1,2, Ming Gao1, Timothy Langlois2, Chenfanfu Jiang1, Danny Kaufman2

  • 1. University of Pennsylvania
  • 2. Adobe Research

(a) (d)

slide-2
SLIDE 2

Time steps

Time

Time Stepping

Substeps

DOT:

slide-3
SLIDE 3

E(x) = 1

2 (x − xp)TM(x − xp)+

Optimization Time Integrator

!3

Incremental potential [Ortiz and Stainier 1999] Inertia term Deformation Energy (Elasticity Potential)

W(x) Challenging for:

  • large deformation and high-speeds

For each time step t Provide robust simulation

  • Large time step sizes h

New node positions Predictive position Time step Size

: )

Quadratic Nonlinear, nonconvex! Hard!

h2

Mass matrix

* for implicit Euler

xp = xt + hvt + h2M−1f

xt+1 = argminx

slide-4
SLIDE 4

Desiderata

!4

Robustness Efficiency Scalability Accuracy

ML [Lee et al. 2018], VR/AR, and games VFX [Smith et al. 2019] Fabrication Engineering

slide-5
SLIDE 5

Line-Search Methods

!5

  • 1. Precondition: pi = − Pi−1∇E(xi)
  • 2. Line Search:

ensures

xi+1 = xi + αpi E(xi+1) ≤ E(xi)

Methods vary in :

Pi

Projected Newton (PN) [Teran et al. 2005] Pi = ∇2E(xi) L-BFGS-H [Brown et al. 2013]

  • quasi-Newton initialized with

Pi = ∇2E(xt)

L-BFGS-PD [Liu et al. 2017]

  • quasi-Newton initialized with

Pi = M + h2L

Efficiency Scalability Accuracy

L-BFGS

slide-6
SLIDE 6

ADMM-PD [Narain et al. 2016]

!6

Efficiency Scalability Accuracy

Laplacian X Y Z X Y Z

M + h2L =

  • 1. Elasticity solve on element soup in parallel

Ω " = { }

  • 2. Global solve with (M + h2L)−1 }

xt+1 = argminxE(x) = 1

2 (x − xp)TM(x − xp)+

W(x) h2

Not convergent!

slide-7
SLIDE 7

Feature Table

!7

Efficiency Scalability Accuracy LBFGS-PD LBFGS-H PN ADMM-PD DOT

: (

slide-8
SLIDE 8

!8

100K tetrahedra, Time step size: 10ms, Converged to ! 1.9 sec/frame, 10−5CN

slide-9
SLIDE 9

Observations

Deformations are local

!9

Domain Decomposition Articulated Structure

slide-10
SLIDE 10

Ω, " = { }

Domain Decomposition

!10

Original simulation domain

Ω" Ω# Ω$

Subdomains after decomposition

Subdomain copy of interface nodes

slide-11
SLIDE 11

!11

Domain Decomposition

Ω, " = { }

Original simulation domain

Ω" Ω# Ω$

Subdomains after decomposition

Domain Decomposition

  • Domain decomposition preconditions iterative linear solvers
  • Extensions to nonlinear systems with slow convergence
slide-12
SLIDE 12

DOT Algorithm

slide-13
SLIDE 13

!13

Domain Decomposition

Ω, " = { }

Original simulation domain

Ω" Ω# Ω$

Subdomains after decomposition

Subdomain copy of interface nodes

Domain Decomposition

slide-14
SLIDE 14

Domain Decomposition

!14

Ω, " = { , }

Ω" Ω# Ω$

Subdomains after decomposition Original simulation domain

Subdomain copy of interface nodes Subdomain copy of interface nodes Original copy of interface nodes

slide-15
SLIDE 15

Domain Decomposition

!15

Ω, " = { , }

Ω" Ω# Ω$

Subdomains after decomposition Original simulation domain

Subdomain copy of interface nodes Original copy of interface nodes

slide-16
SLIDE 16

Decomposed Penalty Lagrangian

!16

min ΣΩjEj(

, )

s . t . =

L( , , ) = ΣΩi(Ej( , ) + 1 2 ( − )T ( − ))

Ω, " = { , }

Ω" Ω# Ω$

Kj

ill-conditioning!!

slide-17
SLIDE 17

Decomposed Initializer

!17

∂2L ∂{ , }2 = H1 H2 H3

For inner initializer Of LBFGS!

Ω, " = { , }

Ω" Ω# Ω$

Number of DOFs do not match!!

The penalty Hessian:

slide-18
SLIDE 18

Decomposed Initializer

!18

q

Ω, " = { , }

Ω" Ω# Ω$

Vector defined on original domain

slide-19
SLIDE 19

Decomposed Initializer

!19

q S

Ω, " = { , }

Ω" Ω# Ω$

Vector from original domain to subdomains

slide-20
SLIDE 20

Decomposed Initializer

!20

q S

H−1

1

H−1

2

H−1

3

Ω, " = { , }

Ω" Ω# Ω$

Independent per domain back solves

slide-21
SLIDE 21

Decomposed Initializer

!21

q S

H−1

1

H−1

2

H−1

3

ST B r =

Ω, " = { , }

Ω" Ω# Ω$

Vector back to original domain

slide-22
SLIDE 22

L( , , ) = ΣΩi(Ej( , ) + 1 2 ( − )T ( − ))

Penalty Stiffness

!22

?

Kj

slide-23
SLIDE 23

Penalty Stiffness

Subdomain Hessian:

!23

Hj = ∂2L ∂{

j, j}2 = ∂2Ej ∂

2 j

∂2Ej ∂

j∂ j

∂2Ej ∂

j∂ j

∂2Ej ∂

2 j + Kj

∂2E ∂

2

Ω, " = { , }

Ω" Ω# Ω$

∂2Ej ∂

2

Use

for Kj

slide-24
SLIDE 24

DOT Pseudo-code

While // gradient residual convergence check [Zhu et al. 2018]

||∇E(xi)||2 ≥ ϵCN

!24

  • // 1st quasi-Newton update

q ← lowRankUpdate( − ∇E(xi))

  • // Separate full DoFs to subdomains

(q1, q2, . . . , qs) ← separate(q)

  • // Back-solve subdomains in parallel

rj ← backsolve(qj), ∀j ∈ [1,s]

  • // Merge subdomain to full coordinates

r ← merge(r1, r2, . . . , rs)

  • // 2nd quasi-Newton update

p ← lowRankUpdate(r)

  • // Line-search and update

xi+1 ← xi + αp

Decomposed Initialier

slide-25
SLIDE 25

Experiments and Results

slide-26
SLIDE 26

Testing Examples

!26

slide-27
SLIDE 27

DOT Iteration Growth with Subdomain Count

!27

50 100 150 200 250 300

Number of Blocks

10 20 30 40 50 60 70 80 90

Iteration Count

horse-7K(S) horse-38K(S) horse-79K(S) horse-7K(SS) horse-38K(SS) kingkong-18K(SS) kingkong-48K(SS) bunny-30K(SS) kongkong-18K(TSS) monkey-18K(TSS) elf-23K(TSS) hollowCat-24K(TSS) horse-38K(TSS)

Decompose meshes with METIS [Karypis and Kumar 2009]

Sub-linear growth!

slide-28
SLIDE 28

!28

DOT Iteration Process

A Visualization of DOT’s decomposition:

slide-29
SLIDE 29

!29

Before DOT iterations:

DOT Iteration Process

slide-30
SLIDE 30

!30

DOT iterations:

DOT Iteration Process

slide-31
SLIDE 31

!31

Elf tests

PN L-BFGS-PD DOT

63K nodes, 361K elements, Time step size: 25ms, Converged to !10−5CN

slide-32
SLIDE 32

!32

Horse test

PN L-BFGS-PD DOT

136K nodes, 642K elements, Time step size: 25ms, Converged to !10−5CN

slide-33
SLIDE 33

Performance

!33

5 10 15 20 25 30 10-1 100 101 102 103 104 5 10 15 20 25 30 10-1 100 101 102 103 104

DOT (ours) PN LBFGS-H LBFGS-PD

With 3.7M elements Log scale

slide-34
SLIDE 34

!34

100K tetrahedra, Time step size: 10ms, Converged to ! 1.9 sec/frame, 10−5CN

slide-35
SLIDE 35

!35

147K tetrahedra, Time step size: 10ms, Converged to ! 3.7 sec/frame, 10−5CN

slide-36
SLIDE 36

Conclusion

DOT, optimization time step solver that enables Robust, efficient, and accurate frame-size time stepping for challenging large and high-speed deformations with nonlinear materials.

!36

slide-37
SLIDE 37

Thanks!

(Source code coming soon)