ASTF 15 Rewind the file on which the stiffness matrix of each element will be stored.
ASTF 16 Loop over each element.
ASTF 17 Identify the material property of each element.
ASTF 18 Set STERM equal to $K_0$ in (2.27).
ASTF 19 Set GRADU equal to $b$ in (2.27).
ASTF 20-21 Identify the node numbers of the element.
ASTF 22 Calculate the element length.
ASTF 23 Calculate the element temperature as the average of the nodal values.
ASTF 24 Calculate the multiplying term in (2.25) by use of FUNCTION statement VARIA.
ASTF 25–26 Evaluate the multiplying term in (2.29).
ASTF 27–30 Compute the components of the total stiffness matrix.
ASTF 31 Write the clement stiffness matrix on to disc file.
ASTF 32 Termination of DO LOOP over each element.
# 3.10.2 Residual force calculation subroutine REFOR1
The residual forces after any step of the process are obtained from (2.4). The applied nodal forces, $f$ , are known and it only remains to evaluate the 'equivalent nodal forces', $H\varphi$ , which are the nodal forces consistent with the unknowns, $\varphi$ . It should be noted that $H$ is the linear symmetric matrix defined in (2.25). The equivalent nodal forces at the nodes 1 and 2 of the linear element can be explicitly written, using (2.25), as
$$
f _ {1} = \frac {K}{L} (\phi_ {1} - \phi_ {2}),
$$
$$
f _ {2} = - \frac {K}{L} (\phi_ {1} - \phi_ {2}). \tag {3.26}
$$
The subroutine which evaluates these forces for each element is now presented.
```txt
SUBROUTINE REFOR1 RFR1 1
C************************** RFR1 2
C RFR1 3
C *** CALCULATES INTERNAL EQUIVALENT NODAL FORCES RFR1 4
C RFR1 5
C************************** RFR1 6
COMMON/UNIM1/NPOIN.NELEM,NBOUN,NLOAD,NPROP,NNODE.IINCS,IITER, RFR1 7
. KRESL,NCHEK,TOLER,NALGO.NSVAB,NDOFN,NINCS.NEVAB, RFR1 8
. NITER,NOUTP,FACTO,PVALU RFR1 9
COMMON/UNIM2/PROPS(5.4),COORD(26),LNODS(25,2),IFPRE(52), RFR1 10
. FIXED(52),TLOAD(25,4),RLOAD(25,4),ELOAD(25,4), RFR1 11
. MATNO(25),STRES(25,2),PLAST(25),XDISP(52), RFR1 12
. TDISP(26.2),TREAC(26.2),ASTIF(52,52),ASLOD(52), RFR1 13
. REACT(52),FRESV(1352),PEFIX(52),ESTIF(4.4) RFR1 14
DO 10 IELEM=1,NELEM RFR1 15
DO 10 IEVAB=1,NEVAB RFR1 16
```
| 10 | ELOAD(IELEM,IEVAB)=0.0 | RFR1 | 17 |
| DO 20 IELEM=1.NELEM | RFR1 | 18 |
| LPROP=MATNO(IELEM) | RFR1 | 19 |
| STERM=PROPS(LPROP,1) | RFR1 | 20 |
| NODE1=LNODS(IELEM,1) | RFR1 | 21 |
| NODE2=LNODS(IELEM,2) | RFR1 | 22 |
| ELENG=ABS(COORD(NODE1)-COORD(NODE2)) | RFR1 | 23 |
| AVERG=(TDISP(NODE1.1)+TDISP(NODE2,1))/2.0 | RFR1 | 24 |
| STIFF=STERM*VARIA(AVERG)/ELENG | RFR1 | 25 |
| ELOAD(IELEM,1)=STIFF*(TDISP(NODE1,1)-TDISP(NODE2,1)) | RFR1 | 26 |
| 20 | ELOAD(IELEM,2)=-STIFF*(TDISP(NODE1,1)-TDISP(NODE2,1)) | RFR1 | 27 |
| RETURN | RFR1 | 28 |
| END | RFR1 | 29 |
RFR1 15–17 Initialise to zero the array in which the equivalent nodal forces for each element will be stored.
RFR1 18 Loop over each element.
RFR1 19 Identify the material property of each element.
RFR1 20 Set STERM equal to $K_0$ in (2.27).
RFR1 21–22 Identify the node numbers of the element.
RFR1 23 Calculate the element length.
RFR1 24 Calculate the element temperature as the average of the nodal values.
RFR1 25 Calculate the multiplying term in (2.25).
RFR1 26–27 Compute the equivalent nodal forces according to (3.26).
# 3.10.3 Solution convergence monitoring subroutine, CONUND
This subroutine must essentially differ from subroutine MONITR described in Section 3.9.2 since convergence is now based on the residual force values rather than values of the unknowns. The convergence criterion employed is similar to that described in (3.21) and is
$$
\frac {\sqrt {\left[ \sum_ {i = 1} ^ {N} \left(\psi_ {i} ^ {r}\right) ^ {2} \right]}}{\sqrt {\left[ \sum_ {i = 1} ^ {N} \left(f _ {i}\right) ^ {2} \right]}} \times 1 0 0 \leqslant \text { TOLER }, \tag {3.27}
$$
where N is the total number of nodal points in the problem and r denotes the iteration number. This criterion states that convergence occurs if the norm of the residual forces becomes less than TOLER times the norm of the total applied forces. Again the parameter NCHEK is used to indicate whether or not convergence has occurred. Three values of NCHEK are utilised:
NCHEK = 0 Solution has converged.
= 1 Solution converging, with the norm of the residual forces being less for the $r^{th}$ iteration than the $(r-1)^{th}$ iteration.
= 999 Solution diverging. The norm of the residual forces is greater for the $r^{\text{th}}$ iteration than the $(r - 1)^{\text{th}}$ iteration.
Subroutine CONUND is now listed and descriptive notes provided.
| SUBROUTINE CONUND | COND | 1 |
| C | ********** | COND | 2 |
| C | | COND | 3 |
| C *** | CHECKS FOR SOLUTION CONVERGENCE | COND | 4 |
| C | | COND | 5 |
| C | ********** | COND | 6 |
| COMMON/UNIM1/NPOIN,NELEM,NBOUN,NLOAD,NPROP,NNODE.IINCS.IITER, | COND | 7 |
| KRESL,NCHEK,TOLER,NALGO,NSVAB,NDOFN,NINCS,NEVAB, | COND | 8 |
| NITER,NOUTP,FACTO,PVALU | COND | 9 |
| COMMON/UNIM2/PROPS(5,4),COORD(26),LNODS(25,2),IFPRE(52), | COND | 10 |
| FIXED(52),TLOAD(25,4),RLOAD(25,4),ELOAD(25,4), | COND | 11 |
| MATNO(25),STRES(25,2),PLAST(25),XDISP(52), | COND | 12 |
| TDISP(26,2),TREAC(26,2),ASTIF(52,52),ASLOD(52), | COND | 13 |
| REACT(52),FRESV(1352),PEFIX(52),ESTIF(4,4) | COND | 14 |
| DIMENSION STFOR(52),TOFOR(52) | COND | 15 |
| NCHEK=0 | COND | 16 |
| RESID=0.0 | COND | 17 |
| RETOT=0.0 | COND | 18 |
| DO 10 ISVAB=1,NSVAB | COND | 19 |
| STFOR(ISVAB)=0.0 | COND | 20 |
| 10 | TOFOR(ISVAB)=0.0 | COND | 21 |
| DO 20 IELEM=1,NELEM | COND | 22 |
| IEVAB=0 | COND | 23 |
| DO 20 INODE=1,NNODE | COND | 24 |
| NODNO=LNODS(IELEM,INODE) | COND | 25 |
| DO 20 IDOFN=1,NDOFN | COND | 26 |
| IEVAB=IEVAB+1 | COND | 27 |
| NPOSN=(NCDNO-1)*NDOFN+IDOFN | COND | 28 |
| STFOR(NPOSN)=STFOR(NPOSN)+ELOAD(IELEM,IEVAB) | COND | 29 |
| 20 | TOFOR(NPOSN)=TOFOR(NPOSN)+TLOAD(IELEM,IEVAB) | COND | 30 |
| DO 30 ISVAB=1,NSVAB | COND | 31 |
| REFOR=TOFOR(ISVAB)-STFOR(ISVAB) | COND | 32 |
| RESID=RESID+REFOR*REFOR | COND | 33 |
| 30 | RETOT=RETOT+TOFOR(ISVAB)*TOFOR(ISVAB) | COND | 34 |
| DO 40 IELEM=1,NELEM | COND | 35 |
| DO 40 IEVAB=1,NEVAB | COND | 36 |
| 40 | ELOAD(IELEM,IEVAB)=TLOAD(IELEM,IEVAB)-ELOAD(IELEM,IEVAB) | COND | 37 |
| RATIO=100.0*SQRT(RESID/RETOT) | COND | 38 |
| IF(RATIO.GT.TOLER) NCHEK=1 | COND | 39 |
| IF(IITER.EQ.1) GO TO 50 | COND | 40 |
| IF(RATIO.GT.PVALU) NCHEK=999 | COND | 41 |
| 50 | PVALU=RATIO | COND | 42 |
| WRITE(6,900) IITER,NCHEK,RATIO | COND | 43 |
| 900 | FORMAT(1HO,5X,'ITERATION NUMBER=',I5/ | COND | 44 |
| 1HO,5X,'CONVERGENCE CODE=',I4,3X, | COND | 45 |
| 'NORM OF RESIDUAL SUM RATIO=',E14.6) | COND | 46 |
| RETURN | COND | 47 |
| END | COND | 48 |
COND 16 Initialise the convergence indicator to zero. If convergence has not occurred during this iteration this value will be reset later in the subroutine.
COND 17 Initialise to zero the norm of the residual forces.
COND 18 Initialise to zero the norm of the total applied loads.
COND 19–21 Initialise the arrays which will contain the equivalent nodal forces and the applied loads for each nodal point.
| COND 22-30 | Assemble the equivalent nodal forces and applied load contributions of each element to give the total nodal values, as required for use in (3.27). This manipulation is necessary as we have decided to associate loads with an element rather than nodal points. |
| COND 32 | Calculate the nodal residual force according to (2.4). |
| COND 33 | Evaluate the norm of the residual forces. |
| COND 34 | Evaluate the norm of the total applied forces. |
| COND 35-37 | Calculate the residual nodal forces for each element, for application as forces for the next iteration according to (2.12). |
| COND 38 | Compute the left-hand side of (3.27)—the residual sum ratio. |
| COND 39 | If (3.27) is not satisfied reset NCHEK = 1 to indicate that convergence has not yet occurred. |
| COND 40-41 | For second and subsequent iterations check to see if the residual sum ratio has decreased from the previous iteration. If not, set NCHEK = 999. |
| COND 42 | Store the residual sum ratio, in order to perform the check indicated in COND 41 during the next iteration. |
| COND 43-46 | Write the convergence code and the residual sum ratio. |
# 3.10.4 Numerical examples
The numerical example considered in Section 3.9.3 and illustrated in Fig. 3.3, was reanalysed using the Newton–Raphson approach. The process converged to the nonlinear solution in 5 iterations compared to the 10 cycles required for the direct iteration method. The reduction in the number of iterations must, however, be balanced against the increased computing effort required for the solution of nonsymmetric equations. This remark is applicable only when advantage of the symmetric property of the equations is taken in solution as is the case in the more sophisticated equation solver described later in Chapter 6. The numerical results are practically identical to those obtained by the method of direct iteration and consequently both solutions are represented by the full circles in Fig. 3.3. The problem of Fig. 3.4 was also reanalysed and a similar improvement in convergence behaviour was obtained with only 7 iterations being required in place of the 12 necessitated by direct iteration.
# 3.11 Program for the solution of nonlinear elastic problems
In this section a program is developed which permits the solution of nonlinear elastic problems by either the tangential stiffness or the initial stiffness approach or by a combination of both methods. The options open are controlled by the parameter NALGO, the possible values of which are described in Section 3.2.
The structure of this program is identical to that described in Section 3.10 and it is only necessary to develop appropriate subroutines for element stiffness formulation, STIFF2, and residual force evaluation, REFOR2.
# 3.11.1 Element stiffness subroutine, STIFF2
For any value of the total strain, $\epsilon$ , in an element, the tangential stiffness matrix is explicitly given by (2.33). It is seen from this expression that the first derivative of the strain function must be known. For the calculation of the residual forces, the strain function itself must be input. Since the computer cannot perform even the simplest differentiation it is necessary to supply both quantities in the form of FUNCTION statements. As an example, the strain function will be assumed to be of the form
$$
g (\epsilon) = \epsilon - 5 \epsilon^ {2}, \tag {3.28}
$$
in which case
$$
g ^ {\prime} (\epsilon) = 1 - 1 0 \epsilon . \tag {3.29}
$$
Subroutine STIFF2 is now listed below.
```fortran
SUBROUTINE STIFF2 STF2 1
C************************** STF2 2
C STF2 3
C *** CALCULATES ELEMENT STIFFNESS MATRICES STF2 4
C STF2 5
C************************** STF2 6
COMMON/UNIM1/NPOIN,NELEM,NBOUN,NLOAD,NPROP,NNODE,IINCS,IITER, STF2 7
. KRESL,NCHEK,TOLER,NALGO,NSVAB,NDOFN,NINCS,NEVAB, STF2 8
. NITER,NOUTP,FACTO,PVALU STF2 9
COMMON/UNIM2/PROPS(5,4),COORD(26),LNODS(25,2),IFPRE(52), STF2 10
. FIXED(52),TLOAD(25,4),RLOAD(25,4),ELOAD(25,4), STF2 11
. MATNO(25),STRES(25,2),PLAST(25),XDISP(52), STF2 12
. TDISP(26,2),TREAC(26,2),ASTIF(52,52),ASLOD(52), STF2 13
. REACT(52),FRESV(1352),PEFIX(52),ESTIF(4,4) STF2 14
REVIND 1 STF2 15
DO 10 IELEM=1,NELEM STF2 16
LPROP=MATNO(IELEM) STF2 17
YOUNG=PROPS(LPROP,1) STF2 18
XAREA=PROPS(LPROP,2) STF2 19
NODE1=LNODS(IELEM,1) STF2 20
NODE2=LNODS(IELEM,2) STF2 21
ELENG=ABS(COORD(NODE1)-COORD(NODE2)) STF2 22
PTRAN=PLAST(IELEM) STF2 23
COEFF=YOUNG*XAREA/ELENG STF2 24
FMULT=COEFF*STDIV(PTRAN) STF2 25
ESTIF(1,1)=FMULT STF2 26
ESTIF(1,2)=-FMULT STF2 27
ESTIF(2,1)=-FMULT STF2 28
ESTIF(2,2)=FMULT STF2 29
WRITE(1) ESTIF STF2 30
1C CONTINUE STF2 31
RETURN STF2 32
END STF2 33
```
| STF2 15 | Rewind the file on which the stiffness matrix of each element will be stored. |
| STF2 16 | Loop over each element. |
| STF2 17 | Identify the material property of each element. |
| STF2 18 | Set YOUNG equal to the reference value of the material modulus, $E_0$ . |
| STF2 19 | Set XAREA equal to the cross-sectional area. |
| STF2 20–21 | Identify the node numbers of the element. |
| STF2 22 | Calculate the element length. |
| STF2 23 | Set PTRAN equal to the total strain, $\epsilon$ . |
| STF2 24–25 | Compute the multiplying term in (2.33) with $g'(\epsilon)$ given by STDIV (PTRAN). |
| STF2 26–29 | Compute the components of the stiffness matrix. |
| STF2 30 | Write the element stiffness matrix on to disc file. |
| STF2 31 | Termination of DO LOOP over each element. |
For a strain derivative function as defined by (3.29), the appropriate function statement is provided below.
| FUNCTION STDIV(PTRAN) | STF2 | 34 |
| C**** | | STF2 | 35 |
| C | STRAIN DERIVATIVE FUNCTION | STF2 | 36 |
| C**** | | STF2 | 37 |
| STDIV=1.0-10.0*PTRAN | STF2 | 38 |
| RETURN | STF2 | 39 |
| END | STF2 | 40 |
# 3.11.2 Residual force calculation subroutine REFOR2
The residual forces existing at the end of any iteration must be calculated according to $(2.4)$ . The first step in this calculation entails the evaluation of the equivalent nodal forces, which are the forces required to produce the total displacements existing in the element. The element strain is simply
$$
\epsilon_ {E} = \left\{ \begin{array}{l l} \left(\phi_ {2} - \phi_ {1}\right) / L & \text { for } \quad x _ {2} > x _ {1} \\ \left(\phi_ {1} - \phi_ {2}\right) / L & \text { for } \quad x _ {2} < x _ {1}, \end{array} \right. \tag {3.30}
$$
where $x_{1}$ and $x_{2}$ denote the coordinates of the element nodes. This notation is required to ensure that tensile strains are positive and enables the nodal connections to be assigned in any order.
Then from (2.30) the stress in the element is given by
$$
\sigma_ {E} = E _ {0} g (\epsilon_ {E}), \tag {3.31}
$$
and the equivalent nodal forces are
$$
f _ {1} = - f _ {2} = \left\{ \begin{array}{c c c} - \sigma_ {E} A & \text { for } & x _ {2} > x _ {1} \\ \sigma_ {E} A & \text { for } & x _ {2} < x _ {1}. \end{array} \right. \tag {3.32}
$$
Subroutine REFOR2 is now listed and described.
SUBROUTINE REFOR2 RFR2 1
C**************************RFR2 2
C RFR2 3
C *** CALCULATES INTERNAL EQUIVALENT NODAL FORCES RFR2 4
C RFR2 5
C**************************RFR2 6
COMMON/UNIM1/NPOIN,NELEM,NBOUN,NLOAD,NPROP,NNODE,IINCS,IITER, RFR2 7
. KRESL,NCHEK,TOLER,NALGO,NSVAB,NDOFN,NINCS,NEVAB, RFR2 8
. NITER,NOUTP,FACTO,PVALU RFR2 9
COMMON/UNIM2/PROPS(5,4),COORD(26),LNODS(25,2),IFPRE(52), RFR2 10
. FIXED(52),TLOAD(25,4),RLOAD(25,4),ELOAD(25,4), RFR2 11
. MATNO(25),STRES(25,2),PLAST(25),XDISP(52), RFR2 12
. TDISP(26,2),TREAC(26,2),ASTIF(52,52),ASLOD(52), RFR2 13
. REACT(52),FRESV(1352),PEFIX(52),ESTIF(4,4) RFR2 14
DO 10 IELEM=1,NELEM RFR2 15
DO 10 IEVAB=1,NEVAB RFR2 16
10 ELOAD(IELEM,IEVAB)=0.0 RFR2 17
DO 30 IELEM=1,NELEM RFR2 18
LPROP=MATNO(IELEM) RFR2 19
YOUNG=PROPS(LPROP,1) RFR2 20
XAREA=PROPS(LPROP,2) RFR2 21
NODE1=LNODS(IELEM,1) RFR2 22
NODE2=LNODS(IELEM,2) RFR2 23
ELENG=ABS(COORD(NODE1)-COORD(NODE2)) RFR2 24
IF(COORD(NODE2).GT.COORD(NODE1)) STRAN=(XDISP(NODE2)-XDISP(NODE1)) RFR2 25
. /ELENG RFR2 26
IF(COORD(NODE2).LT.COORD(NODE1)) STRAN=(XDISP(NODE1)-XDISP(NODE2)) RFR2 27
. /ELENG RFR2 28
PLAST(IELEM)=PLAST(IELEM)+STRAN RFR2 29
PTRAN=PLAST(IELEM) RFR2 30
STRES(IELEM,1)=YOUNG*STNFN(PTRAN) RFR2 31
IF(COORD(NODE2).GT.COORD(NODE1)) GO TO 20 RFR2 32
ELOAD(IELEM,1)=STRES(IELEM,1)*XAREA RFR2 33
ELOAD(IELEM,2)=-STRES(IELEM,1)*XAREA RFR2 34
GO TO 30 RFR2 35
20 ELOAD(IELEM,1)=-STRES(IELEM,1)*XAREA RFR2 36
ELOAD(IELEM,2)=STRES(IELEM,1)*XAREA RFR2 37
30 CONTINUE RFR2 38
RETURN RFR2 39
END RFR2 40
RFR2 15–17 Initialise to zero the array in which the equivalent nodal forces for each element will be stored.
RFR2 18 Loop over each element.
RFR2 19 Identify the material property of each element.
RFR2 20 Set YOUNG equal to the reference value of the material modulus, $E_{0}$ .
RFR2 21 Set XAREA equal to the cross-sectional area.
RFR2 22-23 Identify the node numbers of the element.
RFR2 24 Calculate the element length.
RFR2 25–28 Calculate the increase in element strain which occurred during the current iteration according to (3.30) (since XDISP measures the displacement change only).
RFR2 29 Compute the total strain.
RFR2 30–31 Compute the element stress according to (3.31).
RFR2 32–37 Compute the equivalent nodal forces according to (3.32).
RFR2 38 Termination of DO LOOP over the elements.
For calculation of the element stress in steps RFR2 30–31 (equation (3.31)) the strain function $g(\epsilon)$ must be defined. The FUNCTION statement appropriate to the variation indicated in (3.28) is provided below.
| FUNCTION STNFN(PTRAN) | RFR2 | 41 |
| C**** | | RFR2 | 42 |
| C | STRAIN FUNCTION | RFR2 | 43 |
| C**** | | RFR2 | 44 |
| STNFN=PTRAN-5.0*PTRAN*PTRAN | RFR2 | 45 |
| RETURN | RFR2 | 46 |
| END | RFR2 | 47 |
The equivalent nodal forces evaluated here are converted into residual forces $\psi$ in subroutine CONUND as described in Section 3.10.3.
# 3.11.3 Numerical examples
The first example considered is the uniaxial loading of a two-element system. The stress/strain relationship is assumed to be defined in terms of the nonlinear expression (3.28). The applied load is incrementally increased and the combined tangential/initial stiffness solution algorithm, NALGO = 4, is employed. Figure 3.5 shows the solution behaviour during iteration to the nonlinear solution. The element stiffnesses are initially assembled at the beginning of a load increment and then kept constant during iteration to the nonlinear solution. The convergence path is plotted and it is seen that the process converges within 7 iterations for the first load increment. For the second load increment the process requires 9 iterations before convergence takes place. The process diverged rapidly on further increase of load to a total value of 11; which is expected since no solution can exist for this load value.
As an illustration of the application of the initial stiffness method to strain-softening problems, the above problem was reanalysed with the structure being loaded by prescribing an increasing value of displacement to node 3, rather than incrementing an applied load. For strain values at and beyond the peak load, the structural stiffness is either zero or negative and an initial stiffness approach must be employed. Figure 3.6 shows the results when the structure is strained beyond the peak load value.
# 3.12 Program for the solution of elasto-plastic problems
A computer program is now developed for the solution of one-dimensional elasto-plastic problems. Once again a tangential stiffness, initial stiffness or combined approach is permitted for solution. The program differs only from that described in the previous section in the explicit form of the element stiffness and residual force subroutines.
# 3.12.1 Element stiffness subroutine, STIFF3
Before yielding, the stiffness matrix of an element with linear displacement variation is given by $(2.38)$ . After the onset of plastic deformation, as

line
| Axial extension Δ | Axial force P | Method |
| ----------------- | ------------- | -------------------------- |
| 0.5 | 8.0 | 7 iterations |
| 0.5 | 8.0 | 7 iterations |
| 0.5 | 8.0 | 7 iterations |
| 0.5 | 8.0 | 7 iterations |
| 0.5 | 8.0 | 7 iterations |
| 0.5 | 8.0 | 7 iterations |
| 0.5 | 10.0 | 7 iterations |
| 0.5 | 10.0 | 7 iterations |
| 0.5 | 10.0 | 7 iterations |
| 0.5 | 10.0 | 7 iterations |
| 0.5 | 10.0 | 7 iterations |
| 0.5 | 10.0 | 7 iterations, 9 iterations |
| 0.5 | 10.0 | 7 iterations, 9 iterations |
| 0.5 | 10.0 | 7 iterations, 9 iterations |
| 0.5 | 10.0 | 7 iterations, 9 iterations |
| 0.5 | 10.0 | 7 iterations, 9 iterations |
| 0.5 = 0.5 | 5.0 | 7 iterations, 9 iterations |
| 0.5 = 0.5 | 5.0 | 7 iterations, 9 iterations |
| 0.5 = 0.5 | 5.0 | 7 iterations, 9 iterations |
| 0.5 = 0.5 | 5.0 | 7 iterations, 9 iterations |
| 0.5 | 5.0 | 7 iterations, 9 iterations |
| 0.5 | 5.0 | 7 iterations, 9 iterations |
| 0.5 | 5.0 | 7 iterations, 9 iterations |
| 0.5 | 5.0 | 7 iterations, 9 iterations |
| 0.5 | 5.0 | 7 iterations, |
| 0.5 | 5.0 | 7 iterations, |
| 0.5 | 5.0 | 7 iterations, |
| 0.5 | 5.0 | 7 iterations, |
| 0.5 | 5.0 | 7 iterations, |
| 0.5 | 5.0 | 7 iterations, |
| 0, 0.5 | 5.0 | 7 iterations, |
| 0.5 | 5.0 | 7 iterations, |
| 0.5 | 5.0 | 7 iterations, |
| 0.5 | 5.0 | 7 iterations, |
| 0.5 | 5.0 | 7 iterations, |
| 0.5 | 5.5 | 7 iterations, |
| 0.5 | 5.5 | 7 iterations, |
| 0.5 | 5.5 | 7 iterations, |
| 0.5 | 5.5 | 7 iterations, |
| 0.5 | 5.5 | 7 iterations, |
| 0.5 | 5.5 | 7 iteration, |
| 0.5 | 5.5 | 7 iteration, |
| 0.5 | 5.5 | 7 iteration, |
| 0.5 | 5.5 | 7 iteration, |
| 0.5 | 5.5 | 7 iteration, |
| 0.5 | 5.5 | 7 iteration, |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... |... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... | ... | ... (Δ) |
| ... = 0.5 | 5.0 | 7 iterations, 9 iterations |
| ... | 5.0 | 7 iterations, 9 iterations |
| ... | 5.0 | 7 iterations, 9 iterations |
| ... | 5.0 | 7 iterations, 9 iterations |
| ... | 5.0 | 7 iterations, 9 iterations |
| ... | 5.0 | 7 iterations, 9 iterations |
| ... | 5.5 | 7 iterations, 9 iterations |
| ... | 5.5 | 7 iterations, 9 iterations |
| ... | 5.5 | 7 iterations, 9 iterations |
| ... | 5.5 | 7 iterations, 9 iterations |
| ... | 5.5 | 7 iterations, 9 iterations |
| ... | 5.5 | 7 (Δ) |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ...1 |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... |... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... |...1 |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... (Δ) | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... (Δ) | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ...3 | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... |... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... |... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | 5.0 | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | 10.0 | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
| ... | <10.0 | ... |
| ... | <10.0 | ... |
| ... | <10.0 | ... |
| ... | <10.0 | ... |
| ... | <10.0 | ... |
| ... | <10.0 | ... |
| ... | <10.0 | ... |
| ... | <10.0 |... |
| ... | <10.0 | ... |
| ... | <10.0 | ... |
| ... | <10.0 | ... |
| ... | <10.0 | ... |
| ... | <10.0 | ... |
| ... | <10.0 | ... |
| ... | <10.0 | ... |
Fig. 3.5 Load/extension response of a nonlinear elastic bar under applied axial loading.
governed by the uniaxial yield stress $\sigma_{Y}$ , the material stiffness is reduced and the elasto-plastic stiffness matrix is explicitly given by (2.43). Thus when forming the stiffness matrix for each element, it is first necessary to check whether the element behaviour is elastic or elasto-plastic. This can best be monitored by recording the plastic strain component, $\epsilon_{p}$ , for each element and noting that this will be zero for a completely elastic material response.

line
| Axial extension, Δ | Axial force, P (Theoretical) | Axial force, P (Converged) | Axial force, P (Solution after 1st iteration) |
| ------------------ | ---------------------------- | -------------------------- | ------------------------------------------- |
| 0.0 | 0.0 | 0.0 | 0.0 |
| 0.6 | 8.5 | 8.5 | 8.5 |
| 0.8 | 10.0 | 10.0 | 10.0 |
| 1.0 | 10.0 | 10.0 | 10.0 |
| 1.2 | 10.0 | 10.0 | 10.0 |
| 1.4 | 8.5 | 8.5 | 8.5 |
| 1.6 | 6.0 | 6.0 | 6.0 |
| 1.8 | 3.5 | 3.5 | 3.5 |
| 2.0 | 0.0 | 0.0 | 0.0 |
| 2.2 | -4.0 | -4.0 | -4.0 |
| 2.6 | -10.0 | -10.0 | -10.0 |
Fig. 3.6 Solution for a nonlinear elastic bar by initial stiffness, incremented prescribed displacement approach.
Subroutine STIFF3 can now be presented.
| SUBROUTINE STIFF3 | STF3 | 1 |
| C | ********** | STF3 | 2 |
| C | | STF3 | 3 |
| C *** | CALCULATES ELEMENT STIFFNESS MATRICES | STF3 | 4 |
| C | | STF3 | 5 |
| C | ********** | STF3 | 6 |