• No results found

Implicit Time Integration Methods

3.4 Temporal Discretization

3.4.2 Implicit Time Integration Methods

As oppose to forward Euler as an explicit method, one stable approximation of Eq.3.19

constant quantities evaluated at the end of each timestep:

xn+1 = xn+hvn+1 (3.25)

vn+1 = vn+hM−1(fint(xn+1) +fext) (3.26)

This integration scheme is called backward Euler orimplicit Euler because the un- knowns are now on both sides of the equations. It has the opposite Hamiltonian behavior with forward Euler where the long-term behavior of the total energy of a system simulated by backward Euler is going down. It means backward Euler introduces artificial damping into the simulations, stabilizing those simulations even in large timesteps. In the 1D toy example shown in Figure3.5, backward Euler approximates the integral using the area of the blue box in figure (c).

If a long-term energy conservation behavior is needed, one might want a symplectic version of an implicit time integration method. Implicit midpoint can be used for those applications with the following update rules:

xn+1 = xn+h vn+vn+1 2 (3.27) vn+1 = vn+hM−1 fint xn+xn+1 2 +fext (3.28) In the 1D toy case, implicit midpoint estimates the integral using the green box as shown in figure (d) in Figure3.5. Note that going implicit is not a safeguard for unconditional stability. Although implicit midpoint method behaves more stable compared to symplectic Euler, it is not unconditionally stable even solved perfectly. That is why implicit Euler is used more often in computer graphics applications given the stability concerns.

If we substitute Eq. 3.26 into Eq. 3.25, we will get a single nonlinear root finding problem with one single unknown variablexn+1:

xn+1 =xn+hvn+h2M−1fext+h2M−1fint(xn+1) (3.29)

Given the assumption that we are simulating hyperelastic materials whose force is conservative, we can represent the internal force asfint(x) = −∇xE(x). We can then

plug this into Eq.3.29and anti-differentiate the entire equation onxn+1. Once it is done, computingxn+1is equivalent to minimize the following problem:

g(x) = 1 2h2||x−y|| 2 M | {z } inertia +E(x) | {z } elasticity (3.30)

wherey=xn+hvn+h2M−1fextis an aggregated vector encoding the history and external

forces andE(x)is the elastic energy of the system. By definition, the state ofarg minxg(x)

is automatically a root for Eq.3.29which is the solution of the backward Euler integration. Intuitively, the first term in Eq.3.30can be interpreted as “inertial potential”, attracting

x towards y, where y corresponds to a state predicted by Newton’s first law – motion without the presence of any internal forces. The second term penalizexwith large elastic deformations. Minimizing thisg(x)function corresponds to finding a compromise between the inertia and elasticity. Similarly we can also express the solution for implicit midpoint as the minimum of:

˜ g(x) = 1 2h2||x−y˜|| 2 M+E x+xn 2 (3.31) wherey˜ =xn+hvn+ h 2 2 M −1f

extis a modified inertia term, and the energy is evaluated

at a interpolated place between the current state and the unknown.

Those formulae are sometimes called “variational implicit time integrators” [Martin et al.,2011], and can be solved with state-of-art numerical solvers such as Newton-Raphson method. We will temporarily leave the formulae here, and defer the numerical solutions to the next chapter.

Chapter 4

State-of-art Numerical Methods

4.1

General Descent Method

Let us begin with the variational form of Implicit Euler integration described using Eq.3.30, other implicit integrators can be solved in similar ways too. The first term in Eq.3.30is the inertia term, which is a pure quadratic term overxand has a global minimum point atx = y. This term simply means that the next state positionxwill be attracted to the inertia variable yif there is no internal force at all. The second elastic energy term is non-linear and usually even non-convex, making the minimization of Eq.3.30difficult. For an arbitrary non-linear functiong(x), since we can not find an analytically solution to minimize it, we shall resort to numerical methods. As long as a deterministic algorithm can produce a sequencex(1),x(2), . . . ,x(k),x(k+1), . . . that procedurally reduces the energy function:g(x(k+1))< g(x(k)), we can run that algorithm until convergence. This kind of algorithm is usually called a descent method that can be briefly described in Alg.1, where

δx(k)is a descent direction determined by a certain algorithm,αis a positive step size to make sure the descent progress is sufficient and the step criterion is usually measured by either the norm of the residual||∇g(x(k))||or the decrement −∇g(x(k))Tδx(k) is small enough. Note that for any descent directionδx(k) the decrement−∇g(x(k))Tδx(k)must be positive, indicating that the angle between the descent directionδx(k)and the infinitesimal

steepest descent direction−∇g(x(k))is acute. Of course setting the descent direction to be always the steepest descent directionδx(k)=−∇g(x(k))is a trivial way to satisfy this. This is usually called steepest descent methodor gradient descent method which is the simplest descent method to implement. But it is also notorious for its slow convergence behavior: a typical non-linear problem usually requires more than thousands of gradient descent iterations to converge.

Algorithm 1:General Descent Method.

x(1) := Initial guess;

fork = 1, . . . ,numIterations&& Stop criterion is not satisfieddo

Find a descent direction: δx(k);

Line search, find a proper step size: α >0; Update: x(k+1) =x(k)+αδx(k);

end

Overshooting is another problem in general descent methods, that is why we need an extra line search procedure to safeguard the descent process. For simple cases in low dimension spaces, an exact line search can be applied. The key idea of an exact line search is to find a value α to minimize g(x) by setting: α = argminα>0g(x+αδx). It is normally not applicable for complicated scenarios because of the non-linearity of

g(x) itself. Backtracking line search is another alternative to approximately estimate the step size. A backtracking line search usually starts with a initial guess of step size equals to1, and constantly reduce it by a fixed faction of β, until the Armijo condition

g(x+α)< g(x)+γα∇g(x)Tδxis satisfied. Whereβ (0,1)decides how crude the search

is, the lower the more crude, andγ ∈ (0,0.5)is a non-zero constant to ensure sufficient descent progress for every descent step. As suggested by Boyd and Vandenberghe [2004], we usually setβ = 0.5andγ = 0.03in most of our implementations of descent methods.

Related documents