add documents
This commit is contained in:
+594
@@ -0,0 +1,594 @@
|
||||
<!-- source-page: 251 -->
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
<!-- source-page: 252 -->
|
||||
|
||||
```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.
|
||||
|
||||
<!-- source-page: 253 -->
|
||||
|
||||
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.
|
||||
|
||||
<table><tr><td>SUBROUTINE FLOWPL(AVECT,ABETA,DVECT,NTYPE,PROPS,LPROP,NSTR1,MMATS)FLPL</td><td>1</td></tr><tr><td>C***************</td><td>FLPL 2</td></tr><tr><td>C</td><td>FLPL 3</td></tr><tr><td>C**** THIS SUBROUTINE EVALUATES THE PLASTIC D VECTOR</td><td>FLPL 4</td></tr><tr><td>C</td><td>FLPL 5</td></tr><tr><td>C***************</td><td>FLPL 6</td></tr><tr><td>DIMENSION AVECT(4),DVECT(4),PROPS(MMATS,7)</td><td>FLPL 7</td></tr><tr><td>YOUNG=PROPS(LPROP,1)</td><td>FLPL 8</td></tr><tr><td>POISS=PROPS(LPROP,2)</td><td>FLPL 9</td></tr><tr><td>HARDS=PROPS(LPROP,6)</td><td>FLPL 10</td></tr><tr><td>FMUL1=YOUNG/(1.0+POISS)</td><td>FLPL 11</td></tr><tr><td>IF(NTYPE.EQ.1) GO TO 60</td><td>FLPL 12</td></tr><tr><td>FMUL2=YOUNG*POISS*(AVECT(1)+AVECT(2)+AVECT(4))/(1.0+POISS)*</td><td>FLPL 13</td></tr><tr><td>.(1.0-2.0*POISS))</td><td>FLPL 14</td></tr><tr><td>DVECT(1)=FMUL1*AVECT(1)+FMUL2</td><td>FLPL 15</td></tr><tr><td>DVECT(2)=FMUL1*AVECT(2)+FMUL2</td><td>FLPL 16</td></tr><tr><td>DVECT(3)=0.5*AVECT(3)*YOUNG/(1.0+POISS)</td><td>FLPL 17</td></tr><tr><td>DVECT(4)=FMUL1*AVECT(4)+FMUL2</td><td>FLPL 18</td></tr><tr><td>GO TO 70</td><td>FLPL 19</td></tr></table>
|
||||
|
||||
<!-- source-page: 254 -->
|
||||
|
||||
<table><tr><td>60 FMUL3=YOUNG*POISS*(AVECT(1)+AVECT(2))/(1.0-POISS*POISS)</td><td>FLPL</td><td>20</td></tr><tr><td>DVECT(1)=FMUL1*AVECT(1)+FMUL3</td><td>FLPL</td><td>21</td></tr><tr><td>DVECT(2)=FMUL1*AVECT(2)+FMUL3</td><td>FLPL</td><td>22</td></tr><tr><td>DVECT(3)=0.5*AVECT(3)*YOUNG/(1.0+POISS)</td><td>FLPL</td><td>23</td></tr><tr><td>DVECT(4)=FMUL1*AVECT(4)+FMUL3</td><td>FLPL</td><td>24</td></tr><tr><td>70 DENOM=HARDS</td><td>FLPL</td><td>25</td></tr><tr><td>DO 80 ISTR1=1,NSTR1</td><td>FLPL</td><td>26</td></tr><tr><td>80 DENOM=DENOM+AVECT(ISTR1)*DVECT(ISTR1)</td><td>FLPL</td><td>27</td></tr><tr><td>ABETA=1.0/DENOM</td><td>FLPL</td><td>28</td></tr><tr><td>RETURN</td><td>FLPL</td><td>29</td></tr><tr><td>END</td><td>FLPL</td><td>30</td></tr></table>
|
||||
|
||||
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.
|
||||
|
||||
<table><tr><td>SUBROUTINE STIFFP(COORD,EPSTN,IINCS,LNODS,MATNO,MEVAB,MMATS,</td><td>STFP</td><td>1</td></tr><tr><td>. MPOIN,MTOTV,NELEM,NEVAB,NGAUS,NNODE,NSTRE,</td><td>STFP</td><td>2</td></tr><tr><td>. NSTR1,POSGP,PROPS,WEIGP,MELEM,MTOTG,</td><td>STFP</td><td>3</td></tr><tr><td>. STRSG,NTYPE,NCRIT)</td><td>STFP</td><td>4</td></tr><tr><td>C**********</td><td>STFP</td><td>5</td></tr><tr><td>C</td><td>STFP</td><td>6</td></tr><tr><td>C**** THIS SUBROUTINE EVALUATES THE STIFFNESS MATRIX FOR EACH ELEMENT</td><td>STFP</td><td>7</td></tr><tr><td>C IN TURN</td><td>STFP</td><td>8</td></tr><tr><td>C</td><td>STFP</td><td>9</td></tr><tr><td>C**********</td><td>STFP</td><td>10</td></tr><tr><td>DIMENSION BMATX(4,18),CARTD(2,9),COORD(MPOIN,2),DBMAT(4,18),</td><td>STFP</td><td>11</td></tr><tr><td>. DERIV(2,9),DEVIA(4),DMATX(4,4),</td><td>STFP</td><td>12</td></tr><tr><td>. ELCOD(2,9),EPSTN(MTOTG),ESTIF(18,18),LNODS(MELEM,9),</td><td>STFP</td><td>13</td></tr><tr><td>. MATNO(MELEM),POSGP(4),PROPS(MMATS,7),SHAPE(9),</td><td>STFP</td><td>14</td></tr><tr><td>. WEIGP(4),STRES(4),STRSG(4,MTOTG),</td><td>STFP</td><td>15</td></tr><tr><td>. DVECT(4),AVECT(4),GPCOD(2,9)</td><td>STFP</td><td>16</td></tr><tr><td>TWOPI=6.283185308</td><td>STFP</td><td>17</td></tr><tr><td>REWIND 1</td><td>STFP</td><td>18</td></tr></table>
|
||||
|
||||
<!-- source-page: 255 -->
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
<!-- source-page: 256 -->
|
||||
|
||||
<table><tr><td>C</td><td>STFP</td><td>83</td></tr><tr><td>C*** CALCULATE THE ELEMENT STIFFNESSES</td><td>STFP</td><td>84</td></tr><tr><td>C</td><td>STFP</td><td>85</td></tr><tr><td>DO 30 IEVAB=1,NEVAB</td><td>STFP</td><td>86</td></tr><tr><td>DO 30 JEVAB=IEVAB,NEVAB</td><td>STFP</td><td>87</td></tr><tr><td>DO 30 ISTRE=1,NSTRE</td><td>STFP</td><td>88</td></tr><tr><td>30 ESTIF(IEVAB,JEVAB)=ESTIF(IEVAB,JEVAB)+BMATX(ISTRE,IEVAB)*</td><td>STFP</td><td>89</td></tr><tr><td>. DBMAT(ISTRE,JEVAB)*DVOLU</td><td>STFP</td><td>90</td></tr><tr><td>50 CONTINUE</td><td>STFP</td><td>91</td></tr><tr><td>C</td><td>STFP</td><td>92</td></tr><tr><td>C*** CONSTRUCT THE LOWER TRIANGLE OF THE STIFFNESS MATRIX</td><td>STFP</td><td>93</td></tr><tr><td>C</td><td>STFP</td><td>94</td></tr><tr><td>DO 60 IEVAB=1,NEVAB</td><td>STFP</td><td>95</td></tr><tr><td>DO 60 JEVAB=1,NEVAB</td><td>STFP</td><td>96</td></tr><tr><td>60 ESTIF(JEVAB,IEVAB)=ESTIF(IEVAB,JEVAB)</td><td>STFP</td><td>97</td></tr><tr><td>C</td><td>STFP</td><td>98</td></tr><tr><td>C*** STORE THE STIFFNESS MATRIX,STRESS MATRIX AND SAMPLING POINT</td><td>STFP</td><td>99</td></tr><tr><td>C COORDINATES FOR EACH ELEMENT ON DISC FILE</td><td>STFP</td><td>100</td></tr><tr><td>C</td><td>STFP</td><td>101</td></tr><tr><td>WRITE(1) ESTIF</td><td>STFP</td><td>102</td></tr><tr><td>70 CONTINUE</td><td>STFP</td><td>103</td></tr><tr><td>RETURN</td><td>STFP</td><td>104</td></tr><tr><td>END</td><td>STFP</td><td>105</td></tr></table>
|
||||
|
||||
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.
|
||||
|
||||
<!-- source-page: 257 -->
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
<!-- source-page: 258 -->
|
||||
|
||||
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$ .
|
||||
|
||||
<!-- source-page: 259 -->
|
||||
|
||||
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:
|
||||
|
||||
<!-- source-page: 260 -->
|
||||
|
||||
# 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}}.
|
||||
$$
|
||||
|
||||

|
||||
|
||||
<details>
|
||||
<summary>text_image</summary>
|
||||
|
||||
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
|
||||
</details>
|
||||
|
||||
Fig. 7.10(a) Incremental stress changes in an already yielded point in an elastoplastic continuum.
|
||||
Reference in New Issue
Block a user