3.9 Newton-Raphson Method¶
The Newton-Raphson method (also known as “Newton's method”, “Full Newton method” or “the Newton method”) is the basis for solving the nonlinear finite element equations. This section will describe the Full Newton method and the Broyden-Fletcher-Goldfarb-Shanno (BFGS) method 1. The latter variation is actually a quasi-Newton method. It is important since it provides several advantages over the full Newton method and it is this method that is implemented in FEBio 1.
Full Newton Method¶
The Newton-Raphson equation (3.1-3) can be written in terms of the discretized equilibrium equations that were derived in the previous section as follows:
Since the virtual velocities \(\delta\mathbf{v}\) are arbitrary, a discretized Newton-Raphson scheme can be formulated as follows:
This is the basis of the Newton-Raphson method. For each iteration \(k\), both the stiffness matrix and the residual vector are re-evaluated and a displacement increment u is calculated by pre-multiplying both sides of the above equation by \(\mathbf{K}^{-1}\). This procedure is repeated until some convergence criteria are satisfied.
The formation of the stiffness matrix and, especially, calculation of its inverse, are computationally expensive. Quasi-Newton methods do not require the reevaluation of the stiffness matrix for every iteration. Instead, a quick update is calculated. One particular method that has been quite successful in the field of computational solid mechanics is the BFGS method, which is described in the next section.
BFGS Method¶
The BFGS method updates the stiffness matrix (or rather its inverse) to provide an approximation to the exact matrix. A displacement increment is defined as
and an increment in the residual is defined as
The updated matrix \(\mathbf{K}_{k}\) should satisfy the quasi-Newton equation:
In order to calculate this update, as displacement increment is first calculated:
This displacement vector defines a “direction” for the actual displacement increment. A line search (see next section) can now be applied to determine the optimal displacement increment:
where \(s\) is determined from the line search. With the updated position calculated, \(\mathbf{R}_{k}\) can be evaluated. Also, using equations \eqref{eq357} and \eqref{eq358}, \(\mathbf{d}_{k}\) and \(\mathbf{G}_{k}\) can be evaluted. The stiffness update can now be expressed as
where the matrix \(\mathbf{A}\) is an \(n\times n\) matrix of the simple form:
The vectors \(\mathbf{v}\) and \(\mathbf{w}\) are given by
The vector \(\mathbf{K}_{k-1}\mathbf{d}_{k}\) is equal to \(s\mathbf{R}_{k-1}\) and has already been calculated.
To avoid numerically dangerous updates, the condition number \(c\) of the updating matrix \(\mathbf{A}\) is calculated:
The update is not performed when this number exceeds a preset tolerance.
Considering the actual computations involved, it should be noted that using the matrix updates defined above, the calculation of the search direction in \eqref{eq360} can be rewritten as,
Hence, the search direction can be computed without explicitly calculating the updated matrices or performing any additional costly matrix factorizations as required in the full Newton-Raphson method.
Line Search Method¶
A powerful technique often used to improve the convergence rate of Newton based methods is the line search method. In this method, the direction of the displacement vector \(\mathbf{u}\) is considered as optimal, but the magnitude is controlled by a parameter \(s\):
The value of \(s\) is usually chosen so that the total potential energy \(W\left(s\right)=W\left(\mathbf{x}_{k}+s\mathbf{u}\right)\) at the end of the iteration is minimized in the direction of \(\mathbf{u}\). This is equivalent to the requirement that the residual force \(\mathbf{R}\left(\mathbf{x}_{k}+s\mathbf{u}\right)\) at the end of the iteration is orthogonal to \(\mathbf{u}\):
However, in practice it is sufficient to obtain a value of \(s\) such that,
where typically a value of \(\rho=0.9\) is used. Under normal conditions the value \(s=1\) automatically satisfies equation \eqref{eq369} and therefore few extra operations are involved. However, when this is not the case, a more suitable value for \(s\) needs to be obtained. For this reason it is convenient to approximate \(R\left(s\right)\) as a quadratic in \(s\):
which yields a value for \(s\) as
If \(r<0\), the square root is positive and a first improved value for \(s\) is obtained:
If \(r>0\) the \(s\) can be obtained by using the value that minimizes the quadratic function, that is, \(s_{1}=r/2\). This procedure is now repeated with \(R\left(1\right)\) replaced by \(R\left(s_{1}\right)\) until equation \eqref{eq369} is satisfied.
Conjugate gradient solution method¶
The Newton-Raphson solution algorithms are highly effective for nearly linear problems, but they have two major limitations. Firstly, for very large models, the size of the stiffness matrix K can grow very large as well. The factorization of this matrix, which is needed when using direct linear solvers, can become very time consuming and requires a large amount of memory. This is the main factor that limits the size of model that can be solved on a given computer. Secondly, where the stiffness is small, it can overestimate the displacement, resulting in excessive distortion of the mesh and the familiar negative Jacobian failure. This can occur when a material has a low initial stiffness that increases at higher strains (we work around this by using a large number of small timesteps to reduce the nonlinearity on each increment), when buckling causes a temporary low or negative stiffness, when a part of the model is not sufficiently constrained, or when contacts cause sudden changes of stiffness. For these reasons the Newton-Raphson algorithms often fail to converge for very nonlinear materials, models with contacts or unstable structures that can buckle or crumple under load.
An alternative strategy is to estimate a direction to move each node directly from the residual R:
Then a line search is needed to find the appropriate distance to move in that direction. This is the steepest descent method, which has the disadvantage that it converges slowly in a series of decreasing zig-zag steps. Its convergence is much improved by adding a fraction β of the previous step:
There are many different ways to calculate β; one method which has excellent convergence for nonlinear problems is due to Hager and Zhang:
A limitation of this method is that the distance each node moves is proportional to the residual; stiffer nodes produce a larger residual for a given displacement and therefore move further, whereas in fact they need to move less than more compliant nodes. This results in mesh distortion where the element size varies, for midside nodes in quadratic elements or for mixed materials. This problem can be reduced by using a preconditioner, dividing the residual at each node by an estimate of its stiffness. This requires changes also to the calculation of β:
The preconditioner P can be found in various ways; a convenient approximation is to use the reciprocal of the main diagonal of the stiffness matrix:
This is calculated once at the beginning of the solution.