Variational Time Integrators
Symposium on Geometry Processing Course 2015 Andrew Sageman-Furnas University of Göttingen
1
Sunday, July 5, 15
Variational Time Integrators Symposium on Geometry Processing - - PowerPoint PPT Presentation
Variational Time Integrators Symposium on Geometry Processing Course 2015 Andrew Sageman-Furnas University of Gttingen 1 Sunday, July 5, 15 Time Integrator Differential equations in time describe physical paths Solve for these paths on
Symposium on Geometry Processing Course 2015 Andrew Sageman-Furnas University of Göttingen
1
Sunday, July 5, 15
2
Sunday, July 5, 15
3
Explicit Variational Implicit “artificial driving” “artificial damping” “reasonable”
Sunday, July 5, 15
3
Explicit Variational Implicit “artificial driving” “artificial damping” “reasonable”
Sunday, July 5, 15
4
Sunday, July 5, 15
http://www.nobelprize.org/nobel_prizes/physics/laureates/1965/feynman-bio.html
5
Sunday, July 5, 15
6
Sunday, July 5, 15
force mass acceleration
7
Sunday, July 5, 15
8
Sunday, July 5, 15
time position
9
t1 t2 “Throw a ball in the air from ( , A) catch at ( , B)” t1 t2
Sunday, July 5, 15
time position
10
t1 t2
Sunday, July 5, 15
time position
11
t1 t2
Sunday, July 5, 15
time position
12
t1 t2
Sunday, July 5, 15
time position
13
t1 t2
Sunday, July 5, 15
time position
14
Sunday, July 5, 15
15
t1
Sunday, July 5, 15
t1
L(q, ˙ q) = T( ˙ q) − U(q)
16
Sunday, July 5, 15
17
Sunday, July 5, 15
18
t1 t2
η
εη
Sunday, July 5, 15
19
t1 t2
η
εη
Sunday, July 5, 15
20
t1 t2
η
εη
Sunday, July 5, 15
t1
21
Sunday, July 5, 15
t1
21
Sunday, July 5, 15
S(q) = Z t2
t1
˙ q(t)2 2 − U(q(t)) dt = Z t2
t1
d dε ✓( ˙ q + ε ˙ η)2 2 − U(q + εη) ◆
= Z t2
t1
( ˙ q + ε ˙ η) ˙ η − U 0(q + εη)η
= Z t2
t1
˙ q(t) ˙ η(t) − U 0(q(t))η(t) dt
22
t1 t2
η
q ˜ q
εη
δηS(q) = d dεS(q + εη)
Sunday, July 5, 15
S(q) = Z t2
t1
˙ q(t)2 2 − U(q(t)) dt = Z t2
t1
d dε ✓( ˙ q + ε ˙ η)2 2 − U(q + εη) ◆
= Z t2
t1
( ˙ q + ε ˙ η) ˙ η − U 0(q + εη)η
= Z t2
t1
˙ q(t) ˙ η(t) − U 0(q(t))η(t) dt
22
t1 t2
η
q ˜ q
εη
δηS(q) = d dεS(q + εη)
Sunday, July 5, 15
S(q) = Z t2
t1
˙ q(t)2 2 − U(q(t)) dt = Z t2
t1
d dε ✓( ˙ q + ε ˙ η)2 2 − U(q + εη) ◆
= Z t2
t1
( ˙ q + ε ˙ η) ˙ η − U 0(q + εη)η
= Z t2
t1
˙ q(t) ˙ η(t) − U 0(q(t))η(t) dt
22
t1 t2
η
q ˜ q
εη
δηS(q) = d dεS(q + εη)
Sunday, July 5, 15
S(q) = Z t2
t1
˙ q(t)2 2 − U(q(t)) dt = Z t2
t1
d dε ✓( ˙ q + ε ˙ η)2 2 − U(q + εη) ◆
= Z t2
t1
( ˙ q + ε ˙ η) ˙ η − U 0(q + εη)η
= Z t2
t1
˙ q(t) ˙ η(t) − U 0(q(t))η(t) dt
22
t1 t2
η
q ˜ q
εη
δηS(q) = d dεS(q + εη)
Sunday, July 5, 15
S(q) = Z t2
t1
˙ q(t)2 2 − U(q(t)) dt = Z t2
t1
d dε ✓( ˙ q + ε ˙ η)2 2 − U(q + εη) ◆
= Z t2
t1
( ˙ q + ε ˙ η) ˙ η − U 0(q + εη)η
= Z t2
t1
˙ q(t) ˙ η(t) − U 0(q(t))η(t) dt
22
t1 t2
η
q ˜ q
εη
δηS(q) = d dεS(q + εη)
Sunday, July 5, 15
Z t2
t1
˙ q(t) ˙ η(t)dt = ˙ q(t)η(t)
t1
− Z t2
t1
¨ q(t)η(t) dt
23
δηS(q) = Z t2
t1
˙ q(t) ˙ η(t) − U 0(q(t))η(t) dt δηS(q) = − Z t2
t1
(¨ q(t) + U 0(t))η(t)dt
Sunday, July 5, 15
Z t2
t1
˙ q(t) ˙ η(t)dt = ˙ q(t)η(t)
t1
− Z t2
t1
¨ q(t)η(t) dt
23
δηS(q) = Z t2
t1
˙ q(t) ˙ η(t) − U 0(q(t))η(t) dt δηS(q) = − Z t2
t1
(¨ q(t) + U 0(t))η(t)dt
Sunday, July 5, 15
Z t2
t1
˙ q(t) ˙ η(t)dt = ˙ q(t)η(t)
t1
− Z t2
t1
¨ q(t)η(t) dt
23
δηS(q) = Z t2
t1
˙ q(t) ˙ η(t) − U 0(q(t))η(t) dt δηS(q) = − Z t2
t1
(¨ q(t) + U 0(t))η(t)dt
Sunday, July 5, 15
Z t2
t1
˙ q(t) ˙ η(t)dt = ˙ q(t)η(t)
t1
− Z t2
t1
¨ q(t)η(t) dt
23
δηS(q) = Z t2
t1
˙ q(t) ˙ η(t) − U 0(q(t))η(t) dt δηS(q) = − Z t2
t1
(¨ q(t) + U 0(t))η(t)dt
Sunday, July 5, 15
Z t2
t1
˙ q(t) ˙ η(t)dt = ˙ q(t)η(t)
t1
− Z t2
t1
¨ q(t)η(t) dt
23
δηS(q) = Z t2
t1
˙ q(t) ˙ η(t) − U 0(q(t))η(t) dt δηS(q) = − Z t2
t1
(¨ q(t) + U 0(t))η(t)dt
Sunday, July 5, 15
24
Z t2
t1
˙ q(t) ˙ η(t)dt = ˙ q(t)η(t)
t1
− Z t2
t1
¨ q(t)η(t) dt δηS(q) = Z t2
t1
˙ q(t) ˙ η(t) − U 0(q(t))η(t) dt δηS(q) = − Z t2
t1
(¨ q(t) + U 0(t))η(t)dt
Sunday, July 5, 15
25
t1
Sunday, July 5, 15
t1
26
Sunday, July 5, 15
t1
26
Sunday, July 5, 15
t1 t2
27
t1
Sunday, July 5, 15
t1 t2
28
t1
Sunday, July 5, 15
29
t1
t1 t2
Sunday, July 5, 15
30
t1
t1 t2
Sunday, July 5, 15
t1 t2
31
t1
Sunday, July 5, 15
t1 t2
32
t1
Sunday, July 5, 15
t1 t2
33
t1
Sunday, July 5, 15
t1 t2
34
t1
Sunday, July 5, 15
t1 t2
35
t1
Sunday, July 5, 15
36
t1 t2
η
q ˜ q
εη
t1
Sunday, July 5, 15
37
t1
Sunday, July 5, 15
t1
38
Sunday, July 5, 15
39
Sunday, July 5, 15
39
Sunday, July 5, 15
39
Sunday, July 5, 15
Fundamental Lemma
t1
40
Sunday, July 5, 15
Fundamental Lemma
41
Sunday, July 5, 15
Fundamental Lemma
42
Sunday, July 5, 15
Translational Linear momentum Rotational (one dimensional) Angular momentum Time Total energy
43
Sunday, July 5, 15
44
position momentum (mass x velocity)
Sunday, July 5, 15
44
position momentum (mass x velocity)
Sunday, July 5, 15
45
position momentum (mass x velocity)
Image from Hairer, Lubich, and Wanner 2006
(in higher dimensions implies volume conservation)
Sunday, July 5, 15
46
Sunday, July 5, 15
47
Sunday, July 5, 15
48
(for not too large time steps)
true conserved energy
Sunday, July 5, 15
49
image from openclipart.org
Sunday, July 5, 15
50
Sunday, July 5, 15
A B
51
Sunday, July 5, 15
52
Sunday, July 5, 15
53
(for not too large time steps)
Sunday, July 5, 15
54
(for not too large time steps)
true conserved energy
Sunday, July 5, 15
55
(for not too large time steps)
true conserved energy
Sunday, July 5, 15
56
Sunday, July 5, 15
forward backward central
56
Sunday, July 5, 15
forward backward central
56
Sunday, July 5, 15
rectangular midpoint trapezoid forward backward central
56
Sunday, July 5, 15
rectangular midpoint trapezoid
forward backward central
56
Sunday, July 5, 15
forward rectangular
57
k
Z t+∆t
t
L(q, ˙ q) dt ≈ ∆t L(qk, ˙ qk)
t1
N
k=0
Sunday, July 5, 15
forward rectangular
N + 1
57
k
Z t+∆t
t
L(q, ˙ q) dt ≈ ∆t L(qk, ˙ qk)
t1
N
k=0
Sunday, July 5, 15
forward rectangular
58
k
Z t+∆t
t
L(q, ˙ q) dt ≈ ∆t L(qk, ˙ qk)
t1
N
k=0
Sunday, July 5, 15
forward rectangular
N + 1
58
k
Z t+∆t
t
L(q, ˙ q) dt ≈ ∆t L(qk, ˙ qk)
t1
N
k=0
Sunday, July 5, 15
59
N + 1
˙ qk = qk+1 − qk ∆t
N
k=0
k − U(qk)
N
k=0
✓ ˙ ηk = ηk+1 − ηk ∆t ◆
Sunday, July 5, 15
59
N + 1
˙ qk = qk+1 − qk ∆t
N
k=0
k − U(qk)
N
k=0
✓ ˙ ηk = ηk+1 − ηk ∆t ◆
Sunday, July 5, 15
59
N + 1
˙ qk = qk+1 − qk ∆t
N
k=0
k − U(qk)
N
k=0
✓ ˙ ηk = ηk+1 − ηk ∆t ◆
Sunday, July 5, 15
60
N
k=0
Sunday, July 5, 15
60
N
k=0
Sunday, July 5, 15
60
N
k=0
N
k=0
N
k=0
Sunday, July 5, 15
60
N
k=0
N
k=0
N
k=0
Sunday, July 5, 15
61
N
k=0
N
k=0
N
k=0
N
k=0
N
k=0
Sunday, July 5, 15
61
N
k=0
N
k=0
N
k=0
N
k=0
N
k=0
Sunday, July 5, 15
61
N
k=0
N
k=0
N
k=0
N
k=0
N
k=0
Sunday, July 5, 15
61
N
k=0
N
k=0
N
k=0
N
k=0
N
k=0
Sunday, July 5, 15
62
N
k=0
Sunday, July 5, 15
63
forward
Sunday, July 5, 15
64
forward (left) rectangular
Sunday, July 5, 15
65
(left) rectangular
backward
Sunday, July 5, 15
66
Sunday, July 5, 15
67
Sunday, July 5, 15
68
Sunday, July 5, 15
68
Sunday, July 5, 15
69
Sunday, July 5, 15
70
2−6
step size in seconds
Sunday, July 5, 15
2−6 2−7 2−8 2−9 2−10 2−11
step size in seconds
71
Sunday, July 5, 15
72
Sunday, July 5, 15
73
Sunday, July 5, 15
74
2−6
step size in seconds
Sunday, July 5, 15
2−6 2−7 2−8 2−9 2−10 2−11
step size in seconds
75
Sunday, July 5, 15
76
Sunday, July 5, 15
77
Sunday, July 5, 15
78
2−6
step size in seconds
Sunday, July 5, 15
2−6 2−7 2−8 2−9 2−10 2−11
step size in seconds
79
Sunday, July 5, 15
position momentum (mass x velocity) implicit symplectic explicit
80
Sunday, July 5, 15
position momentum (mass x velocity) implicit symplectic explicit
80
Sunday, July 5, 15
81
explicit symplectic implicit
2−11 2−11 2−6 2−6 2−6
Sunday, July 5, 15
82
explicit symplectic implicit
Sunday, July 5, 15
83
Sunday, July 5, 15
2−6 2−5 2−4 2−3
∆t
84
Sunday, July 5, 15
Explicit Variational Implicit
85
artificial driving good energy unstable cheap unstable for large cheap more expensive artificial damping stable
∆t
momenta conserved
Sunday, July 5, 15
Explicit Variational Implicit
85
artificial driving good energy unstable cheap unstable for large cheap more expensive artificial damping stable
∆t
momenta conserved
Sunday, July 5, 15
Explicit Variational Implicit
86
artificial driving good energy unstable cheap unstable for large cheap more expensive artificial damping stable
∆t
momenta conserved
Sunday, July 5, 15
δη Z t2
t1
L(q(t), ˙ q(t)) dt + Z t2
t1
f(q(t), ˙ q(t)) · η dt = 0
integral of force in direction of variation, eta variation of action in direction eta
modification of Principle of Stationary Action
87
m¨ q = −U 0(q) + f(q, ˙ q)
Sunday, July 5, 15
δη Z t2
t1
L(q(t), ˙ q(t)) dt + Z t2
t1
f(q(t), ˙ q(t)) · η dt = 0
88
forward rectangular
k
Sunday, July 5, 15
89
qk−1 qk qk+1 fk−1(qk−1, ˙ qk−1) fk(qk, ˙ qk)
Sunday, July 5, 15
89
qk−1 qk qk+1 fk−1(qk−1, ˙ qk−1) fk(qk, ˙ qk)
Sunday, July 5, 15
90
Sunday, July 5, 15
90
Sunday, July 5, 15
91
Sunday, July 5, 15
92
Sunday, July 5, 15
92
Sunday, July 5, 15
93
Sunday, July 5, 15
rectangular
forward
94
Sunday, July 5, 15
rectangular
forward
94
Sunday, July 5, 15
rectangular
forward
95
Sunday, July 5, 15
96
trapezoid forward
Sunday, July 5, 15
97
forward
midpoint
Sunday, July 5, 15
98
2 4 6 8 −2 2 2 4 6 8 −2 2 2 4 6 8 −2 2 2 4 6 8 −2 2 2 4 6 8 −2 2 2 4 6 8 −2 2 2 4 6 8 −2 2 2 4 6 8 −2 2 2 4 6 8 −2 2 2 4 6 8 −2 2 2 4 6 8 −2 2 2 4 6 8 −2 2
explicit Euler Runge, order 2 symplectic Euler Verlet implicit Euler midpoint rule
Image from Hairer, Lubich, and Wanner 2006
Sunday, July 5, 15
99
Sunday, July 5, 15
100
time energy
Sunday, July 5, 15
101
Sunday, July 5, 15
102
Geometric Numerical Integration: Structure-preserving Algorithms for Ordinary Differential Equations. Hairer E, Lubich C, Wanner G. Springer; 2002. Speculative parallel asynchronous contact mechanics. Samantha Ainsley, Etienne Vouga, Eitan Grinspun, and Rasmus Tamstorf. 2012. ACM Trans. Graph. 31, 6, Article 151 (November 2012), 8 pages. DOI=10.1145/2366145.2366170 Geometric, variational integrators for computer animation.
SIGGRAPH/Eurographics symposium on Computer animation (SCA '06). Variational integrators. West, Matthew (2004) Dissertation (Ph.D.), California Institute of Technology. Principle of Least Action Feynman Lectures on Physics II.19 http://www.feynmanlectures.caltech.edu/II_19.html
Sunday, July 5, 15
103
−U 0(q) = − sin(q)
˙ q(0) = 0 q(0) = π/4
Sunday, July 5, 15