32 KiB
AN INTRODUCTION TO SOME NONLINEAR PROBLEMS
Solution methods for nonlinear equations are discussed. Selected problems are described and given a finite element formulation. Emphasis is given to nonlinearities arising from material properties and changes in geometry.
17.1 INTRODUCTION
In structural mechanics, a problem is nonlinear if the stiffness matrix or the load vector depends on the displacements. Nonlinearity in structures can be classed as material nonlinearity (associated with changes in material properties, as in plasticity) or as geometric nonlinearity (associated with changes in configuration, as in large deflections of a slender elastic beam). In heat transfer, nonlinearity may arise from temperature-dependent conductivity (which makes the coefficient matrix depend on temperature) and from radiation (which makes the radiative heat flux a nonlinear function of temperature). In general, for a time-independent problem symbolized as [K]\{D\} = \{R\} , in linear analysis both [K] and \{R\} are regarded as independent of \{D\} , whereas in nonlinear analysis [K] and/or \{R\} are regarded as functions of \{D\} .
The classifications “linear” and “nonlinear” are artificial in that physical reality presents various problems, some of which can be satisfactorily approximated by linear equations. We are fortunate that linear approximations are quite good for many problems of stress analysis and heat conduction. Nonlinear approximations are more difficult to formulate, and solving the resulting equations may cost 10 to 100 times as much as a linear approximation having the same number of d.o.f.
Many physical situations present nonlinearities too large to be ignored. Stress–strain relations may be nonlinear in either a time-dependent or a time-independent way. A change in configuration may cause loads to alter their distribution and magnitude or cause gaps to open or close. Mating parts may stick or slip. Welding and casting processes cause the material to change in conductivity, modulus, and phase. The generation and shedding of vortices in fluid flow past a structure produces oscillatory loads on the structure. Pre-buckling rotations alter the effective stiffness of a shell and change its buckling load. Thus we see that nonlinear effects may vary in type and may be mild or severe.
An analyst must understand the physical problem and must be acquainted with various solution strategies. A single strategy will not always work well, and may not work at all for some problems. Several attempts may be needed in order to obtain a satisfactory result.
Nevertheless, nonlinear analyses are undertaken more often than in the past. In part, this is because computing costs have declined and capable software has
become available. In addition, more demands are placed on structures: they must function at higher temperatures and pressures, offer earthquake resistance, and provide crashworthiness. Forming and extrusion processes must be analyzed in an attempt to reduce production costs. Plastics, elastomers, and composites are used with increasing frequency as structural materials; they display material nonlinearity well below the limits of their useful strengths [17.1].
A comprehensive discussion of nonlinearity, even in structural mechanics alone, would require at least one complete volume. The following introductory treatment contains a sampling of nonlinear problems and presents some of the basic procedures for solving the associated equations.
17.2 SOME SOLUTION METHODS
A representative time-independent nonlinear problem can be stated as [K]\{D\} = \{R\} , where \{R\} is known and [K] is a function of \{D\} that can be computed for a given \{D\} . We are required to compute \{D\} —for example, to compute the displacement state associated with known loads. In what follows we introduce some of the available computational methods. For simplicity, a one-dimensional problem is chosen as the principal example.
Consider a nonlinear spring, Fig. 17.2-1. The source of the nonlinearity is unimportant in the present discussion. We imagine that the spring stiffness k is composed of a constant term k_{0} and a term k_{N} that depends on deformation. Displacement u is caused by load P and is given by the equation
(k _ {0} + k _ {N}) u = P \quad \text { where } \quad k _ {N} = f (u) \tag {17.2-1}
We ask for the value of u when P is given. In order to mimic a realistic problem, we assume that k_{N} is known in terms of u, and therefore that P can be calculated in terms of u, but that an explicit solution for u in terms of P is not available. Instead, iterative methods are needed to determine u, as follows.
Direct Substitution. Let a load P_{A} be applied to a softening spring (for which k_{N} < 0 ). For the first iteration, assume that k_{N} = 0 . Therefore, as the first approximation of displacement u_{A} produced by P_{A} , we compute u_{1} = P_{A}/k_{0} . Using u_{1} we compute the new stiffness approximation k_{0} + k_{N1} = k_{0} + f(u_{1}) , and then the new displacement approximation u_{2} . Thus we generate the sequence of approximations
text_image
k = k₀ + kₙ, where k₀ = constant kₙ = function of u (a)
line
| u | Hardening (k_N > 0) | Softening (k_N < 0) | | ---- | ------------------- | ------------------- | | Low | 0 | 0 | | Mid | ~0.5 | ~0.2 | | High | >0.5 | ~0.3 |Figure 17.2-1. (a) A nonlinear spring. (b) When u > 0, there is hardening if k_{N} > 0 and softening if k_{N} < 0 . When u = 0, we assume that k_{N} = 0 .
u _ {1} = k _ {0} ^ {- 1} P _ {A}, u _ {2} = \left(k _ {0} + k _ {N 1}\right) ^ {- 1} P _ {A}, \dots , u _ {i + 1} = \left(k _ {0} + k _ {N i}\right) ^ {- 1} P _ {A} \tag {17.2-2}
These calculations are interpreted graphically in Fig. 17.2-2a. We see that the approximate stiffnesses k_{0} + k_{Ni} can be regarded as secants of the actual curve, each emanating from P = u = 0. After several iterations, the secant stiffness is k_{0} + k_{N} \approx P_{A}/u_{A} , and the correct solution u = u_{A} is closely approximated.
In an alternative form of direct substitution, nonlinear terms k_{Nu} are taken to the right-hand side. Thus, instead of Eq. 17.2-2, we have the sequence
u _ {1} = k _ {0} ^ {- 1} P _ {A}, u _ {2} = k _ {0} ^ {- 1} (P _ {A} - k _ {N 1} u _ {1}), \dots , u _ {i + 1} = k _ {0} ^ {- 1} (P _ {A} - k _ {N i} u _ {i}) \tag {17.2-3}
(Equations 17.2-2 and 17.2-3 will not yield the same values of u_{2}, u_{3} , etc., but upon convergence both will yield the result u_{\infty} = u_{A} .) Equation 17.2-3 is interpreted graphically in Fig. 17.2-2b. The effective loads applied in the second and third iterations in Fig. 17.2-2b are
P _ {A} - k _ {N 1} u _ {1} = P _ {A} + \left(k _ {0} u _ {1} - \left[ k _ {0} + k _ {N 1} \right] u _ {1}\right) = P _ {A} + \left(P _ {a} - P _ {1}\right) \tag {17.2-4a}
P _ {A} - k _ {N 2} u _ {2} = P _ {A} + \left(k _ {0} u _ {2} - \left[ k _ {0} + k _ {N 2} \right] u _ {2}\right) = P _ {A} + \left(P _ {I} - P _ {2}\right) \tag {17.2-4b}
It may be helpful to note that P_{a} - P_{1} = P_{I} - P_{A} and P_{I} - P_{2} = P_{II} - P_{A} . The sequence of pseudoloads P_{a} - P_{1}, P_{I} - P_{2}, \ldots , must converge if Eq. 17.2-3 is to converge to u = u_{A} . Failure to converge is more likely with hardening structures than with softening structures.
If convergence difficulties arise, underrelaxation may help. Thus, rather than updating a calculated value u_{i+1} to its full value, we update instead to
u _ {i + 1} = u _ {i} + \beta (\Delta u _ {i + 1}) \tag {17.2-5a}
or, changing the form by the substitution \Delta u_{i+1} = u_{i+1} - u_i , we have
u _ {i + 1} = \beta u _ {i + 1} + (1 - \beta) u _ {i} \tag {17.2-5b}
line
| Point | u | P | |-------|------|------| | a | u1 | P_A | | b | u2 | P_A | | A | uA | P_A | | 1 | u1 | P1 | | 2 | u2 | P1 |
Figure 17.2-2. Graphical interpretations of direct substitution. (a) According to Eq. 17.2-2. (b) According to Eq. 17.2-3. Lines aI and 1b are parallel.
where “=” means “is replaced by,” as in Fortran, and \beta is a number in the range 0 < \beta < 1 .
Note that for a multi-d.o.f. structure, k is a stiffness matrix rather than a scalar. Thus Eq. 17.2-2 requires that a new matrix [K_{0} + K_{N}] be formed and reduced in each iteration, whereas Eq. 17.2-3 requires but one formation and reduction of [K_{0}] . However, Eq. 17.2-3 will require more iterative cycles than Eq. 17.2-2 in order to reach a prescribed accuracy.
Newton-Raphson (N-R). Imagine that we have applied load P_A and somehow determined the corresponding displacement u_A . That is, from Eq. 17.2-1,
(k _ {0} + k _ {N A}) u _ {A} = P _ {A} \quad \text { where } \quad k _ {N A} = f (u _ {A}) \tag {17.2-6}
The load is now increased to a value P_B and the corresponding displacement u_B is sought. A truncated Taylor series expansion of P = f(u) about u_A is
f (u _ {A} + \Delta u _ {1}) = f (u _ {A}) + \left(\frac {d P}{d u}\right) _ {A} \Delta u _ {1} \tag {17.2-7}
where
\frac {d P}{d u} = \frac {d}{d u} \left(k _ {0} u + k _ {N} u\right) = k _ {0} + \frac {d}{d u} \left(k _ {N} u\right) = k _ {t} \tag {17.2-8}
and k_{t} is called the tangent stiffness. We seek \Delta u_{1} for which f(u_{A} + \Delta u_{1}) = P_{B} . Thus, with f(u_{A}) = P_{A} and k_{t} evaluated at A , Eq. 17.2-7 becomes
P _ {B} = P _ {A} + (k _ {t}) _ {A} \Delta u _ {1} \quad \text { or } \quad (k _ {t}) _ {A} \Delta u _ {1} = P _ {B} - P _ {A} \tag {17.2-9}
where P_{B} - P_{A} can be interpreted as a load imbalance—that is, as the difference between the applied load P_{B} and the force P_{A} = (k_{0} + k_{NA})u_{A} in the spring when its stretch is u_{A} . The solution process is depicted in Fig. 17.2-3. After computing
line
| Point | Pressure (P) | Pressure (P_A) | Pressure (P_B) | Pressure (P_B - P_A) | Pressure (P_B) | Pressure (P_A) | Pressure (P_B - P_A) | Pressure (P_B) | Pressure (P_B - P_A) | Pressure (Δu₁) | Pressure (Δu₂) | |-------|--------------|----------------|----------------|----------------------|----------------|----------------|----------------------|----------------|----------------------|----------------|----------------| | 1 | ~0.8 | ~0.6 | ~0.9 | ~0.7 | ~0.7 | ~0.6 | ~0.5 | ~0.8 | ~0.6 | ~0.8 | ~0.6 | | 2 | ~0.9 | ~0.7 | ~0.95 | ~0.8 | ~0.8 | ~0.7 | ~0.6 | ~0.9 | ~0.7 | ~0.9 | ~0.7 | | 3 | ~0.95 | ~0.75 | ~0.98 | ~0.85 | ~0.85 | ~0.75 | ~0.65 | ~0.95 | ~0.75 | ~0.95 | ~0.75 | | 4 | ~0.98 | ~0.8 | ~0.99 | ~0.9 | ~0.9 | ~0.8 | ~0.7 | ~0.98 | ~0.8 | ~0.98 | ~0.8 | | 5 | ~0.99 | ~0.85 | ~0.995 | ~0.95 | ~0.95 | ~0.85 | ~0.75 | ~0.99 | ~0.85 | ~0.99 | ~0.85 | | 6 | ~0.995 | ~0.9 | ~0.998 | ~0.98 | ~0.98 | ~0.9 | ~0.8 | ~0.995 | ~0.9 | ~0.995 | ~0.9 | | 7 | ~0.998 | ~0.95 | ~0.999 | ~0.99 | ~0.99 | ~0.95 | ~0.85 | ~0.998 | ~0.95 | ~0.998 | ~0.95 | | 8 | ~0.999 | ~0.98 | ~0.9995 | ~0.995 | ~0.995 | ~0.98 | ~0.9 | ~0.999 | ~0.98 | ~0.999 | ~0.98 | | 9 | ~0.9995 | ~0.99 | ~0.9998 | ~0.998 | ~0.998 | ~0.99 | ~0.95 | ~0.9995 | ~0.99 | ~0.9995 | ~0.99 | | 10 | ~0.9998 | ~0.995 | ~0.9999 | ~0.999 | ~0.999 | ~0.995 | ~0.98 | ~0.9998 | ~0.995 | ~0.9998 | ~0.995 |Figure 17.2-3. N-R solution for u_{B} caused by P_{B} , starting from point A.
line
| Point | u | P | Label |
|---|---|---|---|
| A | u_A | P_A | A |
| b | u_1 | P_B | a |
| b | u_2 | P_B | b |
| 1 | u_1 | P_A | 1 |
| 2 | u_2 | P_B | 2 |
Figure 17.2-4. Modified N–R solution for u_{B} caused by P_{B} , starting from point A.
\Delta u_{1} , we update the displacement estimate to u_{1}=u_{A}+\Delta u_{1} . For the next iteration, we obtain a new tangent stiffness (k_{t})_{1} by use of Eq. 17.2-8 with u=u_{1} , and obtain a new load imbalance P_{B}-P_{1} , where P_{1} comes from Eq. 17.2-1 with u=u_{1} . The updated displacement estimate is u_{2}=u_{1}+\Delta u_{2} , where \Delta u_{2} is obtained by solving (k_{t})_{1}\Delta u_{2}=P_{B}-P_{1} .
Remarks. Methods discussed in this section extend directly to multiple d.o.f., where k = k_{0} + k_{N} becomes [K] = [K_{0} + K_{N}] , P becomes \{R\} , and u becomes \{D\} . In one dimension, if the stiffness can be stated as k = k_{0} + k_{N} , the tangent stiffness k_{t} is easily obtained (Eq. 17.2-8). Such a simple expression is not available if there are multiple d.o.f. However, in practice, the physics of the problem usually allows us to calculate the tangent-stiffness matrix [K_{t}] . Neither [K] nor [K_{t}] need be symmetric in a nonlinear problem, but in some situations symmetry prevails or can be achieved by manipulation.
In a multi-d.o.f. context, N-R iteration involves repeated solution of the equations [K_{t}]_{i}\{\Delta D\}_{i+1} = \{\Delta R\}_{i+1} , where tangent-stiffness matrix [K_{t}] and load imbalance \{\Delta R\} are updated after each cycle. The solution process seeks to reduce the load imbalance, and consequently \{\Delta D\} , to zero.
Modified Newton–Raphson. This method differs from the N–R method only in that the tangent stiffness either is not updated or is updated infrequently. Thus, in multi-d.o.f. problems, we avoid the expensive repetitions of forming and reducing the tangent-stiffness matrix [K_{r}] . However, more iterative cycles are needed in order to reach a prescribed accuracy. The process is depicted one-dimensionally in Fig. 17.2-4.
If [K_{i}] is referred to the initial configuration, the modified N–R method becomes almost identical to the direct substitution method of Eq. 17.2-3. The only difference is that modified N–R computes u_{i+1} by adding \Delta u_{i+1} to u_{i} , and Eq. 17.2-3 computes u_{i+1} directly.
Incremental Methods. The foregoing discussion is concerned with locating a single point on the curve of P versus u. If the entire curve is required, one can approximate it as a series of points by applying an iterative process repeatedly: for example, in Fig. 17.2-3, after convergence under load P_{B} , increase the load to P_{C} and again iterate until convergence, then increase the load to P_{D} , and so on. If instead the load is increased in each computational cycle, the solution method may be called incremental rather than iterative.
The simplest incremental method is Euler's method of solving a first-order differential equation. To explain Euler's method we write Eq. 17.2-1 as P = f(u) , define k_{t} = dP/du , and consider load increments \Delta P . Starting from P = 0 at u = 0, we compute successively
u _ {1} = 0 + \left(k _ {t}\right) _ {0} ^ {- 1} \Delta P _ {1} \quad \text { where } \quad \left(k _ {t}\right) _ {0} = k _ {t} \text { at } u = 0 \tag {17.2-10a}
u _ {2} = u _ {1} + \left(k _ {t}\right) _ {1} ^ {- 1} \Delta P _ {2} \quad \text { where } \quad \left(k _ {t}\right) _ {1} = k _ {t} \text { at } u = u _ {1} \tag {17.2-10b}
u _ {3} = u _ {2} + \left(k _ {t}\right) _ {2} ^ {- 1} \Delta P _ {3} \quad \text { where } \quad \left(k _ {t}\right) _ {2} = k _ {t} \text { at } u = u _ {2} \tag {17.2-10c}
and in general u_{i+1} = u_i + (k_i)_{i}^{-1} \Delta P_{i+1} . The process is depicted in Fig. 17.2-5.
A disadvantage of the foregoing method is apparent in Fig. 17.2-5: the approximate solution drifts further from the exact solution with every step. Progressive
line
| Point | u | P1 | P2 | P3 |
|---|---|---|---|---|
| 1 | u1 | (k1)0 | ||
| 2 | u2 | (k1)2 | ||
| 3 | u3 |
Figure 17.2-5. Purely incremental solution of the equation P = f(u) .

Figure 17.2-6. Incremental solution of P = f(u) with load corrections (P_{i} - P_{iR}) .
drift can be eliminated by introducing the load imbalance as a corrective term. Load imbalance has the same meaning in the present context as in the N-R method. With this corrective term we obtain
u _ {i + 1} = u _ {i} + (k _ {t}) _ {i} ^ {- 1} \left[ \Delta P _ {i + 1} + (P _ {i} - P _ {i R}) \right] \tag {17.2-11}
where P_{i} is the externally applied load at step i ( P_{i} = \Sigma \Delta P_{i} summed through step i), and P_{iR} is the resisting load of the spring, P_{iR} = (k_{0} + k_{Ni})u_{i} from Eq. 17.2-1. This method has been called “incremental with one-step N–R correction.” It is depicted in Fig. 17.2-6. Computed points 1, 2, . . . , do not lie on the curve, but they do not progressively drift away from the curve as in Fig. 17.2-5.
Quasi-Newton Methods. Inverse-Broyden. In Fig. 17.2-7, displacements u_{1} and u_{2} are computed by two cycles of modified N–R iteration. Then a secant to the curve is established through points 1 and 2, and a step is taken along the secant. The next step, not shown, would be along a secant through points 2 and 3. With more iterations, leading to convergence, the secant stiffness approaches the exact tangent stiffness at A. Steps in secant directions are not quite as profitable as steps in tangent directions, as in the N–R method, but secant-stiffness steps are much cheaper and are more stable than tangent-stiffness steps.
One expression of the quasi-Newton concept is the inverse-Broyden method.
line
| Point | u | P | |-------|------|------| | a | u1 | k0 | | b | u2 | k0 | | c | u3 | 3 | | 1 | u1 | 1 | | 2 | u2 | 2 | | 3 | u3 | 3 | | A | uA | 3 |Figure 17.2-7. Two modified N-R iterations, followed by a secant step along a line through points 1 and 2.
The label “inverse” means that the inverse of the stiffness matrix is updated, not the stiffness matrix itself. A complete explanation is beyond the scope of this text. References include [17.2–17.6] . In outline, the method operates as follows. Imagine that a given load \{R\}_{A} has been applied; we now wish to determine the corresponding \{D\} by iteration. We write
\{\mathbf {D} \} _ {i + 1} = \{\mathbf {D} \} _ {i} + \{\Delta \mathbf {D} \} _ {i + 1} \quad \text { where } \quad \{\Delta \mathbf {D} \} _ {i + 1} = [ \mathbf {K} ] _ {i} ^ {- 1} \{\Delta \mathbf {R} \} _ {i + 1} \tag {17.2-12}
where \{\Delta R\}_{i+1} is the load imbalance (as in Eq. 17.2-9) and [K]_{i} can be regarded as a secant-stiffness matrix. After several iterations i, both \{\Delta R\}_{i+1} and \{\Delta D\}_{i+1} become small, and \{D\}_{i+1} is a good approximation of \{D\} under loads \{R\}_{A} . The second of Eqs. 17.2-12 is expanded as follows,
[ \mathbf {K} ] _ {i} ^ {- 1} \{\Delta \mathbf {R} \} _ {i + 1} = [ \mathbf {K} ] _ {I} ^ {- 1} \{\Delta \mathbf {R} \} _ {i + 1} + \sum_ {k = 1} ^ {i} [ \mathbf {p} ] _ {k} ^ {T} [ \mathbf {v} ] _ {k} \{\Delta \mathbf {R} \} _ {i + 1} \tag {17.2-13}
where [K]_{i}^{-1} is an estimate of [K]^{-1} at the outset of iteration at a given load level. Thus, in each iteration, [K]_{i}^{-1} is improved by the addition of one more rank 1 matrix [p]^{T}[v] . Update matrices [p]^{T}[v] are in general unsymmetric, but with continued updating and eventual convergence, a symmetric [K]_{i}^{-1} may be approached.
The computational efficiency of the procedure, which may make it the method of choice, arises as follows. Neither [K]_{i} nor [K]_{i}^{-1} is ever written out as a square matrix. Matrix [K]_{I} is forward-reduced, to act as [K]_{I}^{-1} , only once. Thereafter, as i increases, only imbalances \{\Delta R\}_{i+1} are treated, by forward-reduction and back-substitution. Also, each product \left[p\right]_{k}^{T}\left[v\right]_{k}\{\Delta R\}_{i+1} requires one vector-times-vector multiplication and one vector-times-scalar multiplication. Thus the procedure is “vectorizable” on vector-processing computers.
In nonstructural problems, the negative of [K] may be called the Jacobian and \{\Delta R\} called the residual. ^{1} In some problems, nothing may be known about [K]_{I} . Then a unit matrix might be assumed, [K]_{I} = [I] . However, the better the estimate of [K]_{I} , the faster the convergence. Similarly, starting with a good estimate of the solution \{D\} will reduce the residual and speed convergence. If more than roughly 30 to 60 iterations are used, depending on the machine precision, the method may fail because successive updates [p]^{T}[v] become linearly dependent. Then one can discard the updates and start afresh with a new [K]_{I} , even if it is again [K]_{I} = [I] . A fresh start is also recommended when starting to iterate with a new \{R\} . As a termination criterion, Eq. 17.2-16 below is recommended.
A Fortran version of the algorithm appears in Fig. 17.2-8.
If [K_{i}] is known to be symmetric and positive definite, one may apply the “BFGS method,” which is a powerful quasi-Newton method related to the inverse-Broyden-method [17.4, 17.5].
Termination. The efficiency of a nonlinear solution method can be measured by its “order of termination.” Let e_{i} represent a measure of the error after the ith iterative cycle. If e_{i} is sufficiently small, it is often possible to bound e_{i+1} . Practical possibilities include the following, illustrated here for a single d.o.f.
^{1} The Jacobian is the negative of the tangent stiffness because of our choice of sign in writing the residual as external force minus internal force and our desire that tangent stiffness reduce to conventional stiffness in the linear case. Other conventions are possible.
SUBROUTINE INVBDN (K,A,Q,U,DU,NEQ,MBAND,V,DV,NBRY,ROI,IER)
C Subroutine to carry out ONE inverse-Broyden iteration.
C K = current iteration number, A = initial estimate of Jacobian (e.g.
C stiffness) matrix, Q = current residual, U = current solution, DU =
C increment to update U, NEQ = number of unknowns, MBAND = semiband-
C width of A, V and DV = saved Broyden vectors, NBRY = number of Broy-
C den vectors allowed = number of iterations allowed, ROI = saved con-
C stant, IER = 132 if error detected in current iteration.
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
C--- In DIMENSION line, Q(1), U(1), etc. act as Q(NEQ), U(NEQ), etc.
DIMENSION A(NEQ,1),Q(1),U(1),DU(1),V(NBRY,1),DV(NBRY,1),ROI(1)
DATA EPS /1.D-12/
IER = 0
C--- Calling program has computed residual Q and REDUCED form of A.
C--- Call SOLVER to do only reduction and back-substitution of Q.
CALL SOLVER (A,Q,NEQ,MBAND,2)
IF (K .GT. 1) GO TO 150
DO 100 I=1,NEQ
100 DU(I) = Q(I)
GO TO 500
C--- Update U using the K-1 Broyden vectors already established.
150 KMI = K - 1
DO 400 I=1,KMI
CK = 0.D0
DO 200 J=1,NEQ
200 CK = CK + DV(I,J)*Q(J)
CONS = CK*ROI(I)
DO 300 J=1,NEQ
300 Q(J) = Q(J) + CONS*(DV(I,J)-V(I,J))
400 CONTINUE
C--- Establish the Kth Broyden vectors. Use them to further update U.
500 DENO = 0.D0
DO 600 J=1,NEQ
V(K,J) = Q(J) + DU(J)
DV(K,J) = DU(J)
600 DENO = DENO + DU(J)*V(K,J)
C--- If DENO < EPS, we may have a singular Jacobian, or may have con-
C--- verged but not recognized it due to faulty termination criterion.
IF (DABS(DENO) .GE. EPS) GO TO 650
IER = 132
RETURN
650 CK = 0.D0
ROI(K) = 1.D0/DENO
DO 700 J=1,NEQ
700 CK = CK + DU(J)*Q(J)
CONS = ROI(K)*CK - 1.D0
DO 800 J=1,NEQ
DU(J) = Q(J)*CONS
800 U(J) = U(J) + DU(J)
RETURN
END
Figure 17.2-8. Fortran coding of the inverse-Broyden algorithm. Subroutine SOLVER appears in Appendix B as Fig. B.2-3 (note that SOLVER is for a band-symmetric matrix). The best equation solver available should be used and can easily be substituted.
\text { linear: } \quad | e _ {i + 1} | \leq C _ {1} | e _ {i} | \tag {17.2-14a}
\text { superlinear: } \quad | e _ {i + 1} | \leq C _ {2} | e _ {i} | | e _ {i - 1} | = C _ {3} | e _ {i} | ^ {1. 6} \tag {17.2-14b}
\text { quadratic: } \quad | e _ {i + 1} | \leq C _ {4} e _ {i} ^ {2} \tag {17.2-14c}
where C_{1} through C_{4} are constants. Of the methods we have discussed, only N–R exhibits quadratic termination. The inverse-Broyden method exhibits a generalized superlinear termination. Note that both N–R and inverse-Broyden methods will fail if P = f(u) exhibits zero slope at the intended solution u_{A} (i.e., if f'(u_{A}) = 0 , which is a “limit point”).
A termination criterion for an iterative process can be of various forms. One that is usually good is as follows. We define [17.4]
\mathrm{CNORM} = \left(\sum \Delta D _ {j} ^ {2}\right) ^ {1 / 2} \left(\sum D _ {j} ^ {2}\right) ^ {- 1 / 2} \tag {17.2-15a}
\mathrm{RNORM} = \left(\sum \Delta R _ {j} ^ {2}\right) ^ {1 / 2} \left(\sum R _ {j} ^ {2}\right) ^ {- 1 / 2} \tag {17.2-15b}
where, in structural problems, \Delta D_{j} , D_{j} , \Delta R_{j} , and R_{j} mean respectively displacement increment, displacement, load increment, and load. Summations span all terms (NEQ in Fig. 17.2-8). Thus CNORM and RNORM are ratios of Euclidean norms. In a nonstructural problem, (\Sigma R_{j}^{2})^{1/2} might become the product of a modulus and the square of a characteristic length, or the product of viscosity, the reciprocal of a characteristic time, and the square of a characteristic length. We terminate when
\max (\text { CNORM }, \text { RNORM }) \leq t o l \tag {17.2-16}
where tol is chosen to balance accuracy requirements against machine precision. Possible choices are tol = 10^{-5} in 64-bit arithmetic and tol = 10^{-3} in 32-bit arithmetic. For the inverse-Broyden method at least, it is recommended that both CNORM and RNORM be less than tol, as Eq. 17.2-16 requires. In the rare case that \{D\} = \{0\} is a possible solution or iterate, the denominator of CNORM becomes very small. Then one can safely set the denominator to unity.
Concluding Remarks. Hardening structures are usually more difficult to analyze than softening structures. Iterative processes are more likely to converge slowly or fail to converge (Fig. 17.2-9).
There is no need to maintain strict separation between solution methods. For example, we could adopt a modified N-R strategy, but occasionally update the tangent-stiffness matrix. Often such an update is most effective when done immediately after one iteration at a new load level using the old stiffness. Apparently this approach would work well in Fig. 17.2-9b. Underrelaxation would also help in this example.
Two-dimensional sketches in the present section, for P versus u, are representative of multi-d.o.f. problems if the structure carries a single load R_{i} = P and
text_image
P (a) (b_t)a B (b_t)a P_B P_A 0 0 u
{a}
text_image
P k₀ P_B B A k₀ P_A 0 0 u
(b)
Figure 17.2-9. Hardening P versus u curves, attacked by (a) N–R, and (b) modified N–R methods.
text_image
P u u₁ P₁
{a}
line
| Point | u | P |
|---|---|---|
| A | 0 | 0 |
| B | u_B | 0 |
(b)
Figure 17.2-10. (a) Shallow arch under load P. (b) Load versus displacement plot, showing limit point at A.
D_{i} = u is its displacement. In effect, the structure then acts as a single nonlinear spring in resisting R_{i} . If there is more than one d.o.f., a two-dimensional sketch provides an incomplete and possibly misleading representation.
One can provide displacement increments rather than load increments—that is, use “displacement control” rather than “load control.” However, in a typical problem one does not know in advance how the D_{i} in \{D\} will be related, so the appropriate increments \Delta D_{i} are unknown.
In Fig. 17.2-10, displacement control yields the entire curve of P versus u. Under load control, the physical structure will experience a sudden “snap” from A to B when the limit point at A is reached. Computational methods of traversing limit points have been devised [17.7, 17.8].
Another way to traverse limit points is called viscous relaxation. In Fig. 17.2-10, imagine that displacement u_{1} corresponding to load P_{1} is required, but that the entire curve for 0 < u < u_{1} is not required. One can imagine that the structure is immersed in a viscous fluid. When load P_{1} is applied, the structure moves slowly and without snapping. When motion ceases, the static displacement u_{1} is achieved. Computationally, we solve a dynamic problem using step-by-step integration in time, including the nonlinear stiffness matrix and a damping matrix but omitting the mass matrix [17.9,17.10]. The method is most useful when there are strong geometric nonlinearities.
17.3 ONE-DIMENSIONAL
ELASTIC-PLASTIC ANALYSIS
Plastic Action. A material is called nonlinear if stresses \{\sigma\} and strains \{\epsilon\} are related by a strain-dependent matrix rather than a matrix of constants. Thus the computational difficulty is that equilibrium equations must be written using material properties that depend on strains, but strains are not known in advance. Plastic flow is often a cause of material nonlinearity. In the present section we use the case of uniaxial stress to introduce the formulation and solution of elastic-plastic problems.
Imagine that yielding has already occurred; then a strain increment d\epsilon takes place (Fig. 17.3-1a). This strain increment can be regarded as composed of an elastic contribution d\epsilon^{e} and a plastic contribution d\epsilon^{p} , so that d\epsilon = d\epsilon^{e} + d\epsilon^{p} . The corresponding stress increment d\sigma can be written in various ways,










