12.3     Nonlinear Iteration Requests

 

NONLINEAR_ITERATIONS

 

            NONLINEAR_ITERATIONS       iteration_type = list , etc...

 

Specify the parameters for nonlinear iterations to use for all equations in all sub-domains/element groups belonging to any given solution stagger.

 

Note

Variable Name

Type

Default

Description

 

 

 

 

 

 (1)

Iteration_type

list

[*]

Nonlinear Iteration procedure:

 

   modified_Newton_Raphson

 

   Modified Newton-Raphson iterations

 

   Newton_Raphson

 

 

   Newton-Raphson iterations

 

   quasi_Newton_BFGS

 

 

   Quasi-Newton iterations

         (BFGS update)

 

   quasi_Newton_Strang_BFGS

 

   Quasi-Newton iterations

         (BFGS product)

 

   quasi_Newton_Broyden

 

 

   Quasi-Newton iterations

         (Broyden update)

 

   Linear

 

 

   Linear iterations

 

 

 

 

 

 (2)

Max_number_of_iterations

integer

[0]

Maximum number of iterations

 

 

 

 

 

 

Min_number_of_iterations

integer

[0]

Minimum number of iterations.

 

 

 

 

 

 

Convergence_check

list

[on]

Convergence check

 

   on / off

 

 

 

 

 

 

 

 

 

Convergence_tol_rhs

real

[1.E-3]

Convergence tolerance for residual  0.0

 

 

Convergence_tol_sol

real

[1.E-3]

Convergence tolerance for solution  0.0

 

 (7)

Convergence_norm

     L2_norm

     infinite_norm

     other

list

[*]

Convergence norm

 

 

 

 

 

 

Relative_tolerance

real

[1.E-3]

Relative tolerance Rtol

 

 

 

 

 

 

Absolute_tolerance

real

[0.0]

Absolute tolerance Atol

 

 

 

 

 

 (3)

Jacobian_matrix

    on / off

list

[off]

Jacobian matrix

 

 

 

 

 

 

 

                                             (cont’d)


(cont’d)

 

 

Note

Variable Name

Type

Default

Description

 

 

 

 

 

 

 

(3)

Jacobian_derivative

list

(*)

Jacobian derivative option

 

 

   backward

 

 

 

 

 

   forward

 

 

 

 

 

   central

 

 

 

 

 (4)

Reform_lhs_step

integer

[0]

Step number at which left-hand side

 

 

 

 

 

   (Stiffness) reforms are to be initiated.

 

 

 

 

 

 

 

 (4)

Reform_lhs_freq

integer

[0]

Left-hand side (Stiffness) reform frequency

 (4)

Reform_lhs_iter

integer

[0]

Left-hand side (Stiffness) reform frequency during iterations

 

 

 

 

 

 

Max_update_vectors

integer

[0]

Maximum number of updating

 

 

 

 

   vectors (only applicable to Quasi-

   Newton iterations)

 

 

 

 

 

(5)

Line_search_type

list

[none]

Line search requests

 

   Strang

 

 

 

 

   line_minimization

 

 

 

 

   backtracking

 

 

 

 

   backtrack_line_minimization

 

 

 

   backtrack_Strang

 

 

 

 

 

 

 

 

 

Line_search_freq

integer

[1]

Line search frequency

 

 

 

 

   (Default: every time step)

 

 

 

 

 

 (6)

Scaling

   on / off

list

[off]

Scaling

 

 

EXAMPLE

            Nonlinear_Iterations  /         

            Iteration_type = Quasi_Newton_BFGS /    # Quasi-Newton BFGS iterations request

            Max_number_of_iterations = 10 /               # up to 10 iterations per time step

            Convergence_tol_rhs = 1.E-6 /                    # specified convergence tolerance for residual

            Convergence_tol_sol = 1.E-6 /                    # specified convergence tolerance for solution

            Reform_lhs_freq = 2 /                                  # reform lhs every 2 time step

            Max_update_vectors = 5 /                           # maximum number of BFGS vectors

            Line_search_type = Strang /                        # perform line search with Strang's algorithm

            Line_search_freq = 1                                   # line search every time step

 


 

Notes /

(1)        Given the solution un at time tn and a time increment , the object is to find the solution  vector u at time , which satisfies equilibrium.  We write the resulting system of equations to be solved at each time/load step as:

 

                                                                                (1)

 

where the unknowns u are the nodal values at time tn+1, and the equations express a balance between external (fn+1) and internal (n(u)) forces.  Both r and u are vectors, and the residual r is a system of nonlinear functionals of the solution u and of the parameters un and .  This system is solved for u by performing a linearization via a truncated Taylor's series expansion of r as:

                                                    (2)

 

where  and

 

                                                                      (3)

 

with .  The matrix of the first derivatives  in Eq. 2 is the consistent (tangent) Jacobian matrix (e.g.,  for second-order systems). The linear system of equations to be solved (Eq. 2) can be written as:

 

                                                                                               (4)

 

·         If the system of equations (Eq. 1) is linear, the expansion in Eq. 2 is exact, and the solution at step n+1 is obtained as:

 

                                                                  (5)

 

·         If the system of equations (Eq. 1) is nonlinear, it is solved for u by performing a succession of linearizations, leading to Newton's algorithm.  This is done via a truncated Taylor series expansion for r:

 

                                              (6)

 

where the solution increment p(i) is given by:

 

                                                                                                                 (7)


(Notes / (cont'd)

 

u(i+1) and u(i) are approximations of u at iterations i and i+1, respectively. Denote

 

                                                                                              (8)

 

                                                                        (9)

 

The linear system of equations (Eq.6) can be written as:

 

                                                                                                                   (10)

 

and the new solution is obtained as:

 

                                                                                                                (11)

 

Use of the consistent Jacobian J(i) as the left-hand side yields in general the fastest convergence provided the initial guess is within the radius of convergence of the Newton's algorithm.  However, it is often more convenient and computationally more expedient to use an approximation to the Jacobian matrix.  In general the consistent Jacobian J(i) in Eq. 10 is thus replaced by a Jacobian-like matrix J (i), and the linear systems of equations that need to be solved at each iteration reads:

 

                                                                                         (12)

 

            An effective representation of the tangent (Jacobian) matrix is required in order to accurately capture the solution of the nonlinear problem.  This can of course be accomplished through a strict Newton consistent tangent method, but this entails unattractive computational costs since each iteration requires the computation and assembly of the tangent matrix at the current state followed by solution of the linear system of Eq. 10.  Further, it requires that the analytic form of the consistent Jacobian derivative be available (the cost of a finite-difference determination of the Jacobian is deemed to be prohibitive).  However, certain amounts of tangent information can be inferred from the solution and residual iterates computed within any Newton-like method.  Quasi-Newton updates [2,5], also referred to as secant updates, exploit just such information.

 

            Various Newton-like iterative procedures and quasi-Newton updates are available as listed.

   - Newton-Raphson Iterations: the tangent matrix is recomputed (and assembled if applicable) at every time step and at every iteration.  If the consistent Jacobian derivative is returned by all the subdomains/element groups belonging to the given

solution stagger, then the method reduces to a true Newton algorithm.  Otherwise, a Newton-like iterative algorithm is obtained.


(Notes / (cont'd)

 

   - Modified Newton-Raphson Iterations: the iterations are performed with the original matrix available at the beginning of the time/load step.  The matrix may be updated by requesting a reform at the beginning of the time/load step (Reform_lhs_freq command).

 

   - Quasi-Newton Iterations: both BFGS and Broyden rank two updates are available.  The number of updating vectors to be stored is controlled by the command: Max_update_vectors.  The number of updating vectors must be less or equal to the number of requested maximum number of iterations.

 

            Two implementations of the BFGS rank two update are available.  The Strang_BFGS implementation [12] is restricted to symmetric positive definite matrices, whereas the other BFGS implementation follows its original (and equivalent) form but avoids computing square roots which could be troublesome in the indefinite case.  The Broyden update [3] is the most general and is not restricted to symmetric matrices.  However, if applied to symmetric matrices, it may not preserve the original symmetry of the system of equations.

 

Quasi-Newton Methods

 

            Newton's method as described above is quite powerful, but it still has several disadvantages.  One major drawback is that the Jacobian matrix is needed.  In many cases analytic derivatives are not available, and the cost of a finite-difference approximation of the Jacobian is deemed to be prohibitive.  Quasi-Newton methods provide cheap approximations to the Jacobian.  These methods are often call secant methods, since they reduce to the secant method in one-dimension.  Let us denote the approximate Jacobian by J.  Then the ith quasi-Newton step  is the solution of

 

                                                                                                                (13)

 

where  (Eq. 11).  The quasi-Newton or secant condition is that J(i+1) satisfy the following equation:

 

                                                                                                            (14)

 

where  This is the generalization to multidimension of the one-dimensional secant approximation to the derivative .  However, Eq. 14 does not determine J(i+1) uniquely in more than one dimension.  Many different auxiliary conditions to nail down J(i+1) have been explored, but one of the best-performing algorithms in practice results from Broyden's formula [3].  Another update formula was devised by Broyden, Fletcher, Goldfarb and Shanno and is referred to as the BFGS update (see e.g. [5]).


(Notes / (cont'd)

 

Broyden Update Formula:  The formula is based on the idea of getting J(i+1) by making the least change to J(i) consistent with the secant equation (Eq. 14).  Broyden showed that the resulting formula is :

 

                                                                                                                                 (15)

 

The formula can be expressed in terms of the inverse by using the Sherman-Morrison formula [14, 15] to invert Eq. 15 analytically as:

 

                                                              (16)

 

BFGS Formula:  It is most conveniently written directly in terms of [J(i)]-1 rather than J(i), and has the form [12]:

 

                                                      (17)

 

where v(i) and w(i) are update vectors.  Note that the product structure of the BFGS update formula implies that [J(i+1)]-1 inherits the symmetry (if applicable) of [J(i)]-1 since the two new factors are transposes of one another.  Also, if [J(i)]-1 is positive-definite and , then [J(i+1)]-1 is also positive-definite.  Multiplying out the right-hand side of Eq. 17 shows that [J(i+1)]-1 is the sum of [J(i)]-1 and two rank-one matrices.  For this reason, the BFGS update is called a "rank-two update."  Formula for the explicit definitions for the update vectors v(i) and w(i) can be found in [12] as:

 

                                                                                                             (18)

 

                                                                                                       (19)

 

where

 

                                                                                                  (20)


(Notes / (cont'd)

 

Note that the line search parameter s(i) enters the definition of .  This factor arises when a line search procedure is incorporated within the nonlinear solution strategy [see Note 4].  Otherwise, s(i) = 1.0 by default.

 

            The above definition of the BFGS update formula is referred to as the Strang_BFGS and is restricted to symmetric positive definite matrices.  For problems in which the matrix is not positive definite, another implementation of the BFGS update is available which follows its original (and equivalent) form but avoids computing the square root in Eq. 20 which can be troublesome in the indefinite case.  The update formula in that case is defined as:

 

      (21)

 

where

 

                                                                                                             (22)

 

Implementation Issues:  The use of inverse matrices in the update formula (Eqs. 16, 17, and 21) is purely formal.  The actual computation of the inverse is never carried out.  Only means of replicating its action upon any vector is required.  With J(i) unaltered, the only additional storage required consists of two sets of update vectors (e.g. {v(i) , w(i)}i=1, k for the Strang_BFGS). Typically, a strategy is adopted which limits the maximum number of

updates k to some practical value, e.g. kmax = 10, and is a user-specified parameter value Max_update_vectors, restricted to be less than 20.  The default is min (max_number_iter, 20).

 

Attaining this limit is viewed as a signal to the nonlinear solution driver that the matrix should be reformed.  Depending upon the situation, the update procedure is either reinitialized and the set of Quasi-Newton update vectors overwritten as new pairs are generated, or the new update vectors are accumulated over the old ones by sliding down the set of vectors loosing the oldest ones.

 

 

(2)        Up to the prescribed maximum number of iterations will be performed, unless convergence is detected earlier, i.e. if both:

 

           

 


(Notes / (cont'd)

 

where r(u(i)) = f - n(u(i)) = residual, u(i) = solution at iteration i,  || . || = denotes the Euclidean norm and q is a contraction factor:

 

           

 

where tol_rhs and tol_sol are user-specified convergence tolerances for the residual and the solution, respectively (see Command).

 

 

(3)        Numerical differentiation is used to compute the consistent Jacobian effective stiffness matrix.

 

 

(4)        In order to speed up convergence, reform of the effective stiffness matrix may be requested to be performed with a certain time step frequency. Note that by default, for Newton-Raphson iterations a reform is performed at every time/load step for  every iteration.

 

 

(5)        Line searches may be used to speed up convergence in nonlinear analyses.  Line search iterations involve a single free parameter s which is determined by means of a scalar-valued objective function or metric.  The strategy is then to move to a new point u(i) along the direction of the Newton-like step p(i) (not necessarily all the way) as:

 

           

 

such that the scalar-valued function has "decreased" sufficiently.  For simplicity in the notation, we drop subscript (step number) and superscript (iteration number) in the following.

 

            Line Searches with Strang Option:  The function employed in this case [12] is the inner product of the solution increment with the recomputed residual, viz.,

 

           

 

The goal is then to find the root of:

 

            g(s) = 0

 

and a method of successive approximations is used to obtain the solution to this equation.  Trial values of s are selected based upon an interpolation/extrapolation procedure that Dahlquist and Bjork [4] refer to as the "Illinois Algorithm."  Additional logic has been added to increase the robustness of the nonlinear iterations.  Note that each evaluation of g(s)


(Notes / (cont'd)

 

requires the computation of a new residual corresponding to a new trial update.  Although the line search iteration is formally motivated by finding the root of g(s) = 0, in practice seeking this condition is too computationally intensive.  More typically, a relaxed convergence criterion is used:

 

           

 

where the convergence tolerance  may be of the order of 0.5.  In our implementation the value  has been adopted.  Once the line search iteration has converged, the last trial update of the solution variables is accepted as the update for the ongoing Newton-like iteration.

 

            In order to increase the robustness and/or efficiency of the Newton-like algorithm, a control over the step length p may be used during the iterations.  Several techniques for unconstrained optimization have been studied in recent years; see Ref.[6,11] for an overview of these techniques.  The idea is to determine the step length sp by performing the minimization of a univariate function representing a measure of the residual.  The function is defined as follows.  Let

 

and

           

 

where u is the current solution, p is the step given by the Newton-like algorithm, and s is the line search parameter.  We have trivially:

 

           

 

Moreover the first derivative of f at  s = 0  is:

 

           

 

where  J(u) is the Jacobian of  r(u).  The matrix-vector product J(u)p is computed via the central finite difference approximation:

 

           

 

with  = machine precision.  The approximation yields higher accuracy for the evaluation of the matrix-vector  product than a simpler (and cheaper) forward difference stencil  but is twice as expensive.  The objective of the line search is to find s such


(Notes / (cont'd)

 

that f (s) = f(u + sp) has decreased sufficiently. It is always possible to find such a s when p is a descent direction, i.e., fT(u)p = (0) < 0.  When Newton iterations are performed with the consistent Jacobian, p is always a descent direction since

 

            (0) =  fT(u)p = rT(u)J(u)p = rT(u)J(u)(-J-1r) = -rT r < 0

 

However, use of Quasi-Newton updates or Modified Newton Raphson iterations do not always yield a descent direction.  If p is found not to be a descent direction, the solution is stopped and a restart is created to allow repeat of the load step with a smaller time increment .

 

            Line Searches with Backtracking:  The objective of the line search in this case is to find  s  ] 0, 1] such that the Goldstein-Armijo condition

 

f (s)  f (0) + s(0)

 

is satisfied. Here  ] 0, 1/2] and we use  = 10-4.  Our implementation of the Backtracking algorithm follows essentially the one presented in [13] (see also [10]).

 

            Line Searches with Line Minimization: The objective of the line search in this case is to find s such that u = u + sp minimizes f(s) in the direction p.  The minimization is performed with Brent's method [1]. Our implementation of Brent's method follows essentially the one presented in [13].  Line minimization searches are initiated if the relaxed convergence condition:

 

           

 

is satisfied.  The convergence tolerance  may be of the order of 0.5.  In our implementation the value  = 0.5 has been adopted.

 

(6)        Only applicable to linear iterations.

 

(7)        If convergence_norm  =  other, then convergence is checked according to

 

           

           

              

References / Bibliography

 

1.      Brent, R.P., Algorithms for Minimization without Derivatives, Chapter 5, Prentice Hall, Englewood Cliffs, NJ, (1973).

 

2.      Brodlie, K.W., Gourlay, A.R., and Greenstadt, J., "Rank-one and Rank-two Corrections to Positive Definite Matrices Expressed in Product Form," J. Inst. Maths Applics, 11, (1973), 73-82.

 

3.      Broyden, C.G. Mathematics of Computation, 19, (1965), 577-593.

 

4.      Dahlquist, G. and A. Bjork, Numerical Methods, Prentice Hall, Englewood Cliffs, NJ, (1974).

 

5.      Dennis, J.E. and J.J. More, "Quasi-Newton Methods, Motivation and Theory," SIAM Rev., 19, (1977), 46-89.

 

6.      Dennis, J.E. and R.B. Schnabel, Numerical Methods for Unconstrained Optimization and Nonlinear Equations, Prentice Hall, Englewood Cliffs, NJ, (1983).

 

7       Fletcher, R., Practical  Methods of Optimization, John Wiley, (2nd edition), (1987).

 

8.      Gill, P.E. and W. Murray, Numerical Methods for Constrained Optimization, Academic Press, London, (1974).

 

9.      Gill, P.E., W. Murray and M.H. Wright, Practical Optimization, Academic Press, London, (1981).

 

10.    Johan, Z., T.J.R. Hughes and F. Shakib, "A Globally Convergent Matrix-Free Algorithm for Implicit Time-Marching Schemes Arising in Finite Element Analysis in Fluids," Comp. Meth. Appl. Mech. Eng., 87, (1991), 281-304.

 

11.    Luenberger, D.G., Linear and Nonlinear Programming, Addison-Wesley, (2nd edition), (1984).

 

12.    Matthies, H. and G. Strang, "The Solution of Nonlinear Finite Element Equations," Int. J. Num. Meth. Eng., 14, (1979), 1613-1626.

 

13.    Press, W.H., S.A. Teukolsky, W.T. Vetterling, and B.P. Flannery, Numerical Recipes: The Art of Scientific Computing, Cambridge University Press, (2nd edition), (1992).

 

14.    Sherman, J. and W. J. Morrison, "Adjustment of an Inverse Matrix Corresponding to Changes in the Elements of a Given Column or a Given Row of the Original Matrix," Ann. Math. Stat., 20, (1949), 621.

 

15.    Woodbury, M., Inverting Modified Matrices, Memorandum 42, Statistics Research Group, Princeton, NJ, (1950).


 

 

Notes . .