INVR 19 Compute, $(J_{2}^{\prime})^{\dagger}$ . INVR 20-26 Evaluate sin 3θ according to (7.61). INVR 27 Then compute, $\theta$ . Note that the principal value is obtained as required in Section 7.4. INVR 28 Branch according to the yield criterion being employed. INVR 30 Evaluate the yield function in Column 3, Table 7.2 for the Tresca criterion. INVR 33 Evaluate the yield function in Column 3, Table 7.2 for the Von Mises criterion. INVR 36–38 Evaluate the yield function in Column 3, Table 7.2 for the Mohr–Coulomb criterion. INVR 41-43 Evaluate the yield function in Column 3, Table 7.2 for the Drucker-Prager criterion. # 7.8.4.1 Subroutine YIELDF The function of this subroutine is to determine the flow vector a defined in (7.74). Vector a is given by (7.69) where $C_{1}$ , $C_{2}$ and $C_{3}$ are given in Table 7.1 for the various yield criteria considered and the vectors $a_{1}$ , $a_{2}$ and $a_{3}$ are given by (7.75) for two dimensional applications. For the Tresca and Mohr–Coulomb yield surfaces which have singular points at $\theta = \pm30^{\circ}$ the alternative values of $C_{1}$ , $C_{2}$ and $C_{3}$ given respectively in (7.80) and (7.82) must be employed. Subroutine YIELDF is now presented and described. ```csv SUBROUTINE YIELDF(AVECT,DEVIA,LPROP,MMATS,NCRIT,NSTR1, PROPS,SINT3,STEFF,THETA,VARJ2) C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C ``` ```csv C C*** CALCULATE VECTOR A3 C VECA3(1)=DEVIA(2)*DEVIA(4)+VARJ2/3.0 VECA3(2)=DEVIA(1)*DEVIA(4)+VARJ2/3.0 VECA3(3)=-2.0*DEVIA(3)*DEVIA(4) VECA3(4)=DEVIA(1)*DEVIA(2)-DEVIA(3)*DEVIA(3)+VARJ2/3.0 GO TO (1,2,3,4) NCRIT C C*** TRESCA C 1 CONS1=0.0 ABTHE=ABS(THETA*57.29577951308) IF(ABTHE.LT.29.0) GO TO 20 CONS2=ROOT3 CONS3=0.0 GO TO 40 20 CONS2=2.0*(COSTH+SINTH*TANT3) CONS3=ROOT3*SINTH/(VARJ2*COST3) GO TO 40 C C*** VON MISES C 2 CONS1=0.0 CONS2=ROOT3 CONS3=0.0 GO TO 40 C C*** MOHR-COULOMB C 3 CONS1=SIN(FRICT*0.017453292)/3.0 ABTHE=ABS(THETA*57.29577951308) IF(ABTHE.LT.29.0) GO TO 30 CONS3=0.0 PLUMI=1.0 IF(THETA.GT.0.0) PLUMI=-1.0 CONS2=0.5*(ROOT3+PLUMI*CONS1*ROOT3) GO TO 40 30 CONS2=COSTH*((1.0+TANTH*TANT3)+CONS1*(TANT3-TANTH)*ROOT3) CONS3=(ROOT3*SINTH+3.0*CONS1*COSTH)/(2.0*VARJ2*COST3) GO TO 40 C C*** DRUCKER-PRAGER C 4 SNPHI=SIN(FRICT*0.017453292) CONS1=2.0*SNPHI/(ROOT3*(3.0-SNPHI)) CONS2=1.0 CONS3=0.0 40 CONTINUE DO 50 ISTR1=1,NSTR1 50 AVECT(ISTR1)=CONS1*VECA1(ISTR1)+CONS2*VECA2(ISTR1)+CONS3* . VECA3(ISTR1) RETURN END YLDF 31 YLDF 32 YLDF 33 YLDF 34 YLDF 35 YLDF 36 YLDF 37 YLDF 38 YLDF 39 YLDF 40 YLDF 41 YLDF 42 YLDF 43 YLDF 44 YLDF 45 YLDF 46 YLDF 47 YLDF 48 YLDF 49 YLDF 50 YLDF 51 YLDF 52 YLDF 53 YLDF 54 YLDF 55 YLDF 56 YLDF 57 YLDF 58 YLDF 59 YLDF 60 YLDF 61 YLDF 62 YLDF 63 YLDF 64 YLDF 65 YLDF 66 YLDF 67 YLDF 68 YLDF 69 YLDF 70 YLDF 71 YLDF 72 YLDF 73 YLDF 74 YLDF 75 YLDF 76 YLDF 77 YLDF 78 YLDF 79 YLDF 80 YLDF 81 YLDF 82 YLDF 83 YLDF 84 ``` YLDF 10 For the (unlikely) case of a Gauss point with zero stress (identified by $J_{2}^{\prime}=J_{3}^{\prime}=0$ ) avoid evaluation of the flow vector. YLDF 11 Identify FRICT as the friction angle $\phi$ for Mohr-Coulomb and Drucker-Prager materials. YLDF 12-13 Evaluate $\tan \theta$ and $\tan 3\theta$ . YLDF 14-16 Evaluate $\sin \theta$ , $\cos \theta$ and $\cos 3\theta$ . YLDF 17 Compute $\sqrt{(3)}$ . YLDF 21-24 Evaluate $a_1$ according to (7.75). YLDF 28–30 Evaluate $a_{2}$ according to (7.75). Note that STEFF and DEVIA are transferred via the argument list from subroutine INVAR. YLDF 34-37 Evaluate $a_{3}$ according to (7.75). YLDF 38 Branch according to the yield criterion being employed. YLDF 41–49 Compute the constants $C_{1}$ , $C_{2}$ and $C_{3}$ for a Tresca material according to Table 7.1. In the vicinity of a singular point, identified by $|\theta|>29.0^{\circ}$ evaluate $C_{1}$ , $C_{2}$ and $C_{3}$ according to (7.80). YLDF 53–55 Compute $C_{1}$ , $C_{2}$ and $C_{3}$ for a Von Mises material according to Table 7.1. YLDF 61–67 Compute $C_{1}$ , $C_{2}$ and $C_{3}$ for the Mohr–Coulomb criterion. In the vicinity of a singular point defined by $|\theta|>29.0^{\circ}$ evaluate $C_{1}$ , $C_{2}$ and $C_{3}$ according to (7.82). YLDF 75–78 Calculate $C_{1}$ , $C_{2}$ and $C_{3}$ for the Drucker–Prager yield criterion. YLDF 80–82 Evaluate a according to (7.69). # 7.8.4.2 Subroutine FLOWPL The main purpose of this subroutine is to determine the vector $d_{D}$ according to either (7.77) or (7.78) depending on the type of analysis being undertaken. In the program presented in this chapter only a linear form of strain hardening is explicitly considered, with the coding of alternative models being left as an exercise for the reader. In this case the term $H'$ in (7.37) becomes a constant and is specified as a material property. Subroutine FLOWPL is now listed and described.
SUBROUTINE FLOWPL(AVECT,ABETA,DVECT,NTYPE,PROPS,LPROP,NSTR1,MMATS)FLPL1
C***************FLPL 2
CFLPL 3
C**** THIS SUBROUTINE EVALUATES THE PLASTIC D VECTORFLPL 4
CFLPL 5
C***************FLPL 6
DIMENSION AVECT(4),DVECT(4),PROPS(MMATS,7)FLPL 7
YOUNG=PROPS(LPROP,1)FLPL 8
POISS=PROPS(LPROP,2)FLPL 9
HARDS=PROPS(LPROP,6)FLPL 10
FMUL1=YOUNG/(1.0+POISS)FLPL 11
IF(NTYPE.EQ.1) GO TO 60FLPL 12
FMUL2=YOUNG*POISS*(AVECT(1)+AVECT(2)+AVECT(4))/(1.0+POISS)*FLPL 13
.(1.0-2.0*POISS))FLPL 14
DVECT(1)=FMUL1*AVECT(1)+FMUL2FLPL 15
DVECT(2)=FMUL1*AVECT(2)+FMUL2FLPL 16
DVECT(3)=0.5*AVECT(3)*YOUNG/(1.0+POISS)FLPL 17
DVECT(4)=FMUL1*AVECT(4)+FMUL2FLPL 18
GO TO 70FLPL 19
60 FMUL3=YOUNG*POISS*(AVECT(1)+AVECT(2))/(1.0-POISS*POISS)FLPL20
DVECT(1)=FMUL1*AVECT(1)+FMUL3FLPL21
DVECT(2)=FMUL1*AVECT(2)+FMUL3FLPL22
DVECT(3)=0.5*AVECT(3)*YOUNG/(1.0+POISS)FLPL23
DVECT(4)=FMUL1*AVECT(4)+FMUL3FLPL24
70 DENOM=HARDSFLPL25
DO 80 ISTR1=1,NSTR1FLPL26
80 DENOM=DENOM+AVECT(ISTR1)*DVECT(ISTR1)FLPL27
ABETA=1.0/DENOMFLPL28
RETURNFLPL29
ENDFLPL30
FLPL 8 Identify YOUNG as the elastic modulus, E. FLPL 9 Identify POISS as the Poisson's ratio, $\nu$ . FLPL 10 Identify HARDS as $H'$ for linear strain hardening. FLPL 13-18 Evaluate $d_D$ according to (7.77) for plane strain and axisymmetric situations. FLPL 20-24 Evaluate $d_D$ according to (7.78) for plane stress problems. FLPL 26-28 Compute $1 / (H' + d_D^T a)$ for later evaluation of the elastoplastic matrix $D_{ep}$ in (7.47). # 7.8.5 Subroutine STIFFP This subroutine evaluates the stiffness matrix for each element in turn and differs from the linear elastic version, described in Section 6.3.2, only in that the elasticity matrix D is replaced (for the tangential stiffness approach at least) by the elasto-plastic matrix $D_{ep}$ defined in (7.47). This subroutine is called only when the element stiffnesses are to be reformulated as controlled by variable KRESL defined in subroutine ALGOR. Obviously the element stiffnesses must be calculated for the first iteration of the first load increment and elastic behaviour must be assumed. Every other time this subroutine is accessed the stiffnesses are to be recalculated to account for any plastic deformation of the material and consequently the $D_{ep}$ matrix must be employed. Apart from this change the element stiffness formulation process is identical to that for elastic materials as described in Section 6.3.2. Subroutine STIFFP will now be described and explanatory notes provided.
SUBROUTINE STIFFP(COORD,EPSTN,IINCS,LNODS,MATNO,MEVAB,MMATS,STFP1
. MPOIN,MTOTV,NELEM,NEVAB,NGAUS,NNODE,NSTRE,STFP2
. NSTR1,POSGP,PROPS,WEIGP,MELEM,MTOTG,STFP3
. STRSG,NTYPE,NCRIT)STFP4
C**********STFP5
CSTFP6
C**** THIS SUBROUTINE EVALUATES THE STIFFNESS MATRIX FOR EACH ELEMENTSTFP7
C IN TURNSTFP8
CSTFP9
C**********STFP10
DIMENSION BMATX(4,18),CARTD(2,9),COORD(MPOIN,2),DBMAT(4,18),STFP11
. DERIV(2,9),DEVIA(4),DMATX(4,4),STFP12
. ELCOD(2,9),EPSTN(MTOTG),ESTIF(18,18),LNODS(MELEM,9),STFP13
. MATNO(MELEM),POSGP(4),PROPS(MMATS,7),SHAPE(9),STFP14
. WEIGP(4),STRES(4),STRSG(4,MTOTG),STFP15
. DVECT(4),AVECT(4),GPCOD(2,9)STFP16
TWOPI=6.283185308STFP17
REWIND 1STFP18
```csv KGAUS=0 STFP 19 C C*** LOOP OVER EACH ELEMENT STFP 20 C DO 70 IELEM=1,NELEM STFP 21 LPROP=MATNO(IELEM) STFP 22 STFP 23 STFP 24 C C*** EVALUATE THE COORDINATES OF THE ELEMENT NODAL POINTS STFP 25 C DO 10 INODE=1,NNODE STFP 26 LNODE=IABS(LNODS(IELEM,INODE)) STFP 27 IPOSN=(LNODE-1)*2 STFP 28 DO 10 IDIME=1,2 STFP 29 IPOSN=IPOSN+1 STFP 30 STFP 31 STFP 32 10 ELCOD(IDIME,INODE)=COORD(LNODE,IDIME) STFP 33 THICK=PROPS(LPROP,3) STFP 34 C C*** INITIALIZE THE ELEMENT STIFFNESS MATRIX STFP 35 C DO 20 IEVAB=1,NEVAB STFP 36 DO 20 JEVAB=1,NEVAB STFP 37 20 ESTIF(IEVAB,JEVAB)=0.0 STFP 38 KGASP=0 STFP 39 KGASP=0 STFP 40 STFP 41 C C*** ENTER LOOPS FOR AREA NUMERICAL INTEGRATION STFP 42 C DO 50 IGAUS=1,NGAUS STFP 43 EXISP=POSGP(IGAUS) STFP 44 DO 50 JGAUS=1,NGAUS STFP 45 ETASP=POSGP(JGAUS) STFP 46 KGASP=KGASP+1 STFP 47 KGASP=KGASP+1 STFP 48 STFP 49 STFP 50 C C*** EVALUATE THE D-MATRIX STFP 51 C CALL MODPS(DMATX,LPROP,MMATS,NTYPE,PROPS) STFP 52 C C*** EVALUATE THE SHAPE FUNCTIONS,ELEMENTAL VOLUME,ETC. STFP 53 C CALL SFR2(DERIV,ETASP,EXISP,NNODE,SHAPE) STFP 54 CALL JACOB2(CARTD,DERIV,DJACB,ELCOD,GPCOD,IELEM,KGASP, NNODE,SHAPE) STFP 55 DVOLU=DJACB*WEIGP(IGAUS)*WEIGP(JGAUS) STFP 56 IF(NTYPE.EQ.3) DVOLU=DVOLU*TWOPI*GPCOD(1,KGASP) STFP 57 IF(THICK.NE.0.0) DVOLU=DVOLU*THICK STFP 58 C C*** EVALUATE THE B AND DB MATRICES STFP 59 STFP 60 STFP 61 STFP 62 STFP 63 C C*** EVALUATE THE B AND DB MATRICES STFP 64 C CALL BMATPS(BMATX,CARTD,NNODE,SHAPE,GPCOD,NTYPE,KGASP) STFP 65 IF(IINCS.EQ.1) GO TO 80 STFP 66 IF(EPSTN(KGAUS),EQ.0.0) GO TO 80 STFP 67 DO 90 ISTR1=1,NSTR1 STFP 68 STFP 69 STFP 70 90 STRES(ISTR1)=STRSG(ISTR1,KGAUS) STFP 71 CALL INVAR(DEVIA,LPROP,MMATS,NCRIT,PROPS,SINT3,STEFF,STRES, THETA,VARJ2,YIELD) STFP 72 CALL YIELDF(AVECT,DEVIA,LPROP,MMATS,NCRIT,NSTR1, PROPS,SINT3,STEFF,THETA,VARJ2) STFP 73 CALL FLOWPL(AVECT,ABETA,DVECT,NTYPE,PROPS,LPROP,NSTR1,MMATS) STFP 74 DO 100 ISTRE=1,NSTRE STFP 75 DO 100 JSTRE=1,NSTRE STFP 76 STFP 77 100 DMATX(ISTRE,JSTRE)=DMATX(ISTRE,JSTRE)-ABETA*DVECT(ISTRE) STFP 78 DVECT(JSTRE) STFP 79 STFP 80 80 CONTINUE STFP 81 CALL DBE(BMATX,DBMAT,DMATX,MEVAB,NEVAB,NSTRE,NSTR1) STFP 82 ```
CSTFP83
C*** CALCULATE THE ELEMENT STIFFNESSESSTFP84
CSTFP85
DO 30 IEVAB=1,NEVABSTFP86
DO 30 JEVAB=IEVAB,NEVABSTFP87
DO 30 ISTRE=1,NSTRESTFP88
30 ESTIF(IEVAB,JEVAB)=ESTIF(IEVAB,JEVAB)+BMATX(ISTRE,IEVAB)*STFP89
. DBMAT(ISTRE,JEVAB)*DVOLUSTFP90
50 CONTINUESTFP91
CSTFP92
C*** CONSTRUCT THE LOWER TRIANGLE OF THE STIFFNESS MATRIXSTFP93
CSTFP94
DO 60 IEVAB=1,NEVABSTFP95
DO 60 JEVAB=1,NEVABSTFP96
60 ESTIF(JEVAB,IEVAB)=ESTIF(IEVAB,JEVAB)STFP97
CSTFP98
C*** STORE THE STIFFNESS MATRIX,STRESS MATRIX AND SAMPLING POINTSTFP99
C COORDINATES FOR EACH ELEMENT ON DISC FILESTFP100
CSTFP101
WRITE(1) ESTIFSTFP102
70 CONTINUESTFP103
RETURNSTFP104
ENDSTFP105
STFP 17 Compute the value of $2\pi$ . STFP 18 Rewind the disc file on which the element stiffness matrices will be stored in turn. STFP 19 Set to zero the counter which indicates the overall Gauss point location. So KGAUS ranges from 1 to NGAUS\*NGAUS\*NELEM. STFP 23 Enter the loop over each element in the structure. STFP 24 Identify the material property type of the current element. STFP 28-33 Store the element nodal coordinates in the local array ELCOD for convenient use later. STFP 34 Identify the element thickness. STFP 38–40 Zero the element stiffness array. STFP 41 Set to zero the element Gauss point counter. So KGASP ranges from 1 to NGAUS\*NGAUS. STFP 45–48 Enter the numerical integration loops and locate the position $(\xi, \eta)$ of the current point. STFP 49–50 Increment the local and global Gauss point counters. STFP 54 Call subroutine MODPS to evaluate the elasticity matrix, D. STFP 58 Evaluate the shape functions $N_{i}$ and the derivatives $\partial N_{i}/\partial\xi$ , $\partial N_{i}/\partial\eta$ for the current Gauss point. STFP 59–60 Evaluate the Gauss point coordinates, GPCOD(IDIME, KGASP), the determinant of the Jacobian matrix, $|J|$ and the Cartesian derivatives of the shape functions $\partial N_{i}/\partial x$ , $\partial N_{i}/\partial y$ (or $\partial N_{i}/\partial r$ , $\partial N_{i}/\partial z$ for axisymmetric problems). STFP 61–63 Calculate the elemental volume for numerical integration as $|J|W_{\xi}W_{\eta}$ taking care to multiply by the appropriate thickness or by $2\pi r$ for axisymmetric problems. Note that if a zero thickness is specified it is automatically taken to be unity. STFP 67 Evaluate the B matrix. STFP 68 For the first time avoid the replacement of D by $D_{ep}$ , as defined in (7.47). STFP 69 Also for Gauss points at which the behaviour is elastic avoid the replacement of D by $D_{ep}$ . STFP 70-71 Store the total current stresses in the array STRES. STFP 72-76 Call subroutines INVAR, YIELDF and FLOWPL to evaluate the vectors $a$ , (AVECT) and $d_{D}$ , (DVECT) and ABETA = $1/(H' + d_{D}^{T}a)$ . STFP 77-80 Evaluate $D_{ep}$ according to (7.47). STFP 82 Evaluate $D_{ep}B$ . STFP 86-90 Compute the upper triangle of the element stiffness matrix as $$ \int_ {\Omega} \boldsymbol {B} ^ {T} \boldsymbol {D} _ {e p} \boldsymbol {B} d \Omega $$ STFP 91 End of loop for numerical integration. STFP 95–97 Complete the lower triangle of the element stiffness matrix by symmetry. STFP 102 Store the element stiffness matrix on disc file 1. STFP 103 Return to process the next element. # 7.8.6 Subroutine LINEAR The purpose of this subroutine is merely to determine the stresses from given displacements assuming linear elastic behaviour. This subroutine is employed in the residual force calculation to be described in the next section. The element displacement components, ELDIS(IDOFN, INODE) are entered into the subroutine, the strain components at the Gauss point under consideration, STRAN(ISTR1) calculated and finally the stress components are evaluated and stored in STRES(ISTR1). The subroutine is now listed and described. ```csv SUBROUTINE LINEAR(CARTD,DMATX,ELDIS,LPROP,MMATS,NDOFN,NNODE,NSTRE,LINR 1 NTYPE,PROPS,STRAN,STRES,KGASP,GPCOD,SHAPE) LINR 2 C********** LINR 3 C LINR 4 C**** THIS SUBROUTINE EVALUATES STRESSES AND STRAINS ASSUMING LINEAR LINR 5 C ELASTIC BEHAVIOUR LINR 6 C LINR 7 C********** LINR 8 DIMENSION AGASH(2,2),CARTD(2,9),DMATX(4,4),ELDIS(2,9), LINR 9 PROPS(MMATS,7),STRAN(4),STRES(4), LINR 10 GPCOD(2,9),SHAPE(9) LINR 11 POISS=PROPS(LPROP,2) LINR 12 DO 20 IDOFN=1,NDOFN LINR 13 DO 20 JDOFN=1,NDOFN LINR 14 BGASH=0.0 LINR 15 DO 10 INODE=1,NNODE LINR 16 ``` 10 BGASH=BGASH+CARTD(JDOFN,INODE)*ELDIS(IDOFN,INODE) LINR 17 20 AGASH(IDOFN,JDOFN)=BGASH LINR 18 C LINR 19 C*** CALCULATE THE STRAINS LINR 20 C LINR 21 STRAN(1)=AGASH(1,1) LINR 22 STRAN(2)=AGASH(2,2) LINR 23 STRAN(3)=AGASH(1,2)+AGASH(2,1) LINR 24 STRAN(4)=0.0 LINR 25 DO 30 INODE=1,NNODE LINR 26 30 STRAN(4)=STRAN(4)+ELDIS(1,INODE)*SHAPE(INODE)/GPCOD(1,KGASP) LINR 27 C LINR 28 C*** AND THE CORRESPONDING STRESSES LINR 29 C LINR 30 DO 40 ISTRE=1,NSTRE LINR 31 STRES(ISTRE)=0.0 LINR 32 DO 40 JSTRE=1,NSTRE LINR 33 40 STRES(ISTRE)=STRES(ISTRE)+DMATX(ISTRE,JSTRE)*STRAN(JSTRE) LINR 34 IF(NTYPE.EQ.1) STRES(4)=0.0 LINR 35 IF(NTYPE.EQ.2) STRES(4)=POISS*(STRES(1)+STRES(2)) LINR 36 RETURN LINR 37 END LINR 38 LINR 12 Identify POISS as the Poisson's ratio of the element material. LINR 13-18 Calculate the Cartesian derivatives of the Gauss point displacement components $\partial u / \partial x$ , $\partial u / \partial y$ , $\partial v / \partial x$ , $\partial v / \partial y$ . LINR 22-27 Evaluate the strain components at the Gauss point according to $$ \epsilon = \left\{ \begin{array}{l} \epsilon_ {x} \\ \epsilon_ {y} \\ \gamma_ {x y} \\ \epsilon_ {z}. \end{array} \right\} = \left\{ \begin{array}{c} \frac {\partial u}{\partial x} \\ \frac {\partial v}{\partial y} \\ \frac {\partial u}{\partial y} + \frac {\partial v}{\partial x} \\ 0 \end{array} \right\} \text { for plane problems }, $$ $$ \epsilon = \left\{ \begin{array}{l} \epsilon_ {r} \\ \epsilon_ {z} \\ \gamma_ {r z} \\ \epsilon_ {\theta} \end{array} \right\} = \left\{ \begin{array}{c} \frac {\partial u}{\partial r} \\ \frac {\partial w}{\partial z} \\ \frac {\partial u}{\partial z} + \frac {\partial w}{\partial r} \\ \frac {u}{r} \end{array} \right\} \text { for axisymmetric problems. } $$ LINR 31-34 Calculate the stress components, assuming elastic behaviour, according to $\sigma = D\epsilon$ . LINR 35-36 For a plane stress problem set $\sigma_z = 0$ and set $\sigma_z = \nu(\sigma_x + \sigma_y)$ for plane strain situations. # 7.8.7 Subroutine RESIDU The function of this subroutine is to evaluate the nodal forces which are statically equivalent to the stress field satisfying elasto-plastic conditions. Comparison of these equivalent nodal forces with the applied loads gives the residual forces, according to (2.4), and this operation is carried out in subroutine CONVER. Therefore RESIDU performs the same task for two-dimensional continua as subroutine REFOR3 undertook for uniaxial situations, and the reader is urged to review Section 3.12.2 before proceeding further. The logic applied in this subroutine is almost identical to that applied in Section 3.12.2. Below we reproduce the essential steps in an abbreviated form and expand only the steps which pertain to the case of two dimensional solids. During the application of an increment of load an element, or part of an element, may yield. All stress and strain quantities are monitored at each Gaussian integration point and therefore we can determine whether or not plastic deformation has occurred at such points. Consequently an element can behave partly elastically and partly elasto-plastically if some, but not all, Gauss points indicate plastic yielding. For any load increment it is necessary to determine what proportion is elastic and which part produces plastic deformation and then adjust the stress and strain terms until the yield criterion and the constitutive laws are satisfied. The procedure adopted is as follows. Step a. The applied loads for the $r^{\text{th}}$ iteration are the residual forces $\psi^{r-1}$ , given by (2.4) which give rise to displacement increments $dd^{r}$ , according to (2.12), and strain increments $d\epsilon^{r}$ . Step b. Compute the incremental stress changes, $d\sigma_{e}^{r}$ as $d\sigma_{e}^{r} = Dd\varepsilon^{r}$ where the subscript e denotes that we are assuming elastic behaviour. Step c. Accumulate the total stress for each element Gauss point as $\sigma_{e}^{r} = \sigma^{r-1} + d\sigma_{e}^{r}$ where $\sigma^{r-1}$ are the converged stresses for iteration r-1. Step d. The next step depends on whether or not yielding took place at the Gauss point during the $(r-1)^{\text{th}}$ iteration. Therefore we check if $\bar{\sigma}^{r-1} > \sigma_{Y} = \sigma_{Y}^{\circ} + H' \bar{\epsilon}_{p}^{r-1}$ , where $\bar{\sigma}^{r-1}$ is the effective stress given by Column 3, Table 7.2, $\sigma_{Y}$ is the uniaxial yield stress, (Column 4, Table 7.2), $H'$ is the linear strain hardening parameter and $\bar{\epsilon}_{p}^{r-1}$ is the effective plastic strain existing at the end of the $(r-1)^{\text{th}}$ iteration. This expression is identical to the uniaxial case, Section 3.12.2, with all quantities replaced by the effective or equivalent values. If the answer is: # YES The Gauss point had previously yielded. Now check to see if $\bar{\sigma}_{e}^{r} > \bar{\sigma}^{r-1}$ where $\bar{\sigma}_{e}^{r}$ is the effective stress, Col. 3, Table 7.2 based on stresses $\sigma_{e}^{r}$ . If the answer is: NO YES The Gauss point is unloading elastically and therefore go directly to Step g. The Gauss point had yielded previously and the stress is still increasing. Therefore all the excess stress $\sigma_{e}^{r}-\sigma^{r-1}$ must be reduced to the yield surface as indicated in Fig. 7.10(a). Therefore the factor R which defines the portion of stress which must be modified to satisfy the yield criterion is equal to 1. # NO Which implies that the Gauss point had not previously yielded. Now check to see if $\bar{\sigma}_{e}^{r} > \sigma_{Y}^{0}$ . If the answer is: NO YES The Gauss point is still elastic and therefore go directly to Step g. The Gauss point has yielded during application of load corresponding to this iteration as shown in Fig. 7.10(b). The portion of the stress greater than the yield value must be reduced to the yield surface. The reduction factor R is given from Fig. 7.10(b) to be $$ R = \frac {A B}{A C} = \frac {\bar {\sigma} _ {e} ^ {r} - \sigma_ {Y}}{\bar {\sigma} _ {e} ^ {r} - \bar {\sigma} ^ {r - 1}}. $$ ![](images/page-260_3115adacbb056a4c2f3c30be94f5c9db6bebf2cbbec0f7ed62db8d1087a57621.jpg)
text_image F=0 r dσP^r = dσe^r = Ddε^r Ddλa = dλd_D σ^r-1 σ_2 σ_1 σ_3 σ^r = σ^r \left( \frac{\sigma_1^0 + H' \bar{\epsilon}_p^r}{\bar{\sigma}^r} \right) σ_3 σ^r σ^r Ddλa = Ddε_p^r
Fig. 7.10(a) Incremental stress changes in an already yielded point in an elastoplastic continuum.