32 1 JFT ,JLT ,PM ,THK ,OFF ,
33 2 DIR ,IPT ,IMAT ,NEL ,DT1C ,
34 3 GS ,EPSD ,THKLYL ,IPLA ,DPLA ,
35 4 DEPSXX ,DEPSYY ,DEPSXY ,DEPSYZ ,DEPSZX ,
36 5 SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
37 6 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
38 7 PLA ,NGL ,HARDM ,INLOC ,DPLANL ,
43#include "implicit_f.inc"
55 INTEGER JFT,JLT,IPLA,NEL,IMAT,,INLOC
59 . PM(NPROPM,*),THK(*),OFF(*),DIR(NEL,2),DT1C(*),
60 . GS(*),DPLA(*),EPSD(*),HARDM(*)
62 . DEPSXX(MVSIZ),DEPSYY(MVSIZ),DEPSXY(MVSIZ),DEPSYZ(MVSIZ),
63 . depszx(mvsiz),sigoxx(nel),sigoyy(nel),sigoxy(nel),
64 . sigoyz(nel),sigozx(nel),signxx(nel),signyy(nel),signxy(nel),
65 . signyz(nel),signzx(nel),pla(nel),thklyl(nel),dplanl(nel),
67 my_real,
DIMENSION(NEL),
INTENT(IN) :: loff
68 my_real,
DIMENSION(NEL),
INTENT(INOUT) :: et
74 . NU,EZZ(MVSIZ),YOUNG,NORMXX,NORMYY,
75 . a01,a02,a03,yld,
ymax,cm,ce,cn,ca,
76 . d11,d22,d12,sxx,syy,sxy,p,q,s11,s22,
77 . s12,a,b,c,seq,dseq_da,dseq_db,dseq_dc,
78 . da_ds11,da_ds22,da_ds12,db_ds11,db_ds22,
79 . db_dq,dc_dq,dq_dsxx,dq_dsyy,ds11_dsxx,
80 . ds11_dsyy,ds22_dsxx,ds22_dsyy,dsxx_dsigx,
81 . dsxx_dsigy,dsyy_dsigx,dsyy_dsigy,dsxy_dsigx,
101 CALL m32elas(jft ,jlt ,pm ,imat ,gs ,
102 . sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
103 . signxx ,signyy ,signxy ,signyz ,signzx
104 . depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
109 CALL m32plas(jft ,jlt ,pm ,off ,pla ,
110 . imat ,dir ,ezz ,ipla ,dt1c ,
111 . dpla ,epsd ,nel ,ngl ,hardm ,
112 . signxx ,signyy ,signxy ,signyz ,signzx ,
113 . depsxx ,depsyy ,depsxy ,depsyz ,depszx )
118 d11 = dir(i,1)*dir(i,1)
119 d22 = dir(i,2)*dir(i,2)
120 d12 = dir(i,1)*dir(i,2)
121 sxx = d11*signxx(i) + d22*signyy(i) + two*d12*signxy(i)
122 syy = d22*signxx(i) + d11*signyy(i) - two*d12*signxy(i)
123 sxy = d12*(signyy(i) - signxx(i)) + ( d11 - d22 )*signxy(i)
124 p = -(sxx+syy) * third
125 q = (one - (nu/(one - nu)))*p
129 a = a01*s11*s11 + a02*s22*s22 - a03*s11*s22 + a12*s12*s12
130 b = -q*(a01*s11 + a02*s22 - half*a03*(s11+s22))
131 c = (a01+a02-a03)*q*q
132 seqh(i) = sqrt(a+b+b+c)
134 IF (dpla(i) > zero)
THEN
135 et(i) = hardm(i) / (hardm(i) + young)
141 IF (loff(i) == one)
THEN
142 seq =
max(sqrt(a+b+b+c),em20)
143 dseq_da = one/(two*seq)
145 dseq_dc = one/(two*seq)
146 da_ds11 = two*a01*s11 - a03*s22
147 da_ds22 = two*a02*s22 - a03*s11
148 da_ds12 = two*a12*s12
149 db_ds11 = (half*a03-a01)*q
150 db_ds22 = (half*a03-a02)*q
151 db_dq = -(a01*s11 + a02*s22 - half*a03*(s11+s22))
152 dc_dq = two*(a01+a02-a03)*q
153 dq_dsxx = -third*(one - (nu/(one - nu)))
154 dq_dsyy = -third*(one - (nu/(one - nu)))
155 ds11_dsxx = one + dq_dsxx
158 ds22_dsyy = one + dq_dsyy
166 . da_ds11*(ds11_dsxx*dsxx_dsigx + ds11_dsyy*dsyy_dsigx) +
167 . da_ds22*(ds22_dsxx*dsxx_dsigx + ds22_dsyy*dsyy_dsigx) +
168 . da_ds12*dsxy_dsigx ) +
170 . db_ds11*(ds11_dsxx*dsxx_dsigx + ds11_dsyy*dsyy_dsigx) +
171 . db_ds22*(ds22_dsxx*dsxx_dsigx + ds22_dsyy*dsyy_dsigx) +
172 . db_dq*(dq_dsxx*dsxx_dsigx + dq_dsyy*dsyy_dsigx)) +
174 . dc_dq*(dq_dsxx*dsxx_dsigx + dq_dsyy*dsyy_dsigx))
176 . da_ds11*(ds11_dsxx*dsxx_dsigy + ds11_dsyy*dsyy_dsigy) +
177 . da_ds22*(ds22_dsxx*dsxx_dsigy + ds22_dsyy*dsyy_dsigy) +
178 . da_ds12*dsxy_dsigy ) +
180 . db_ds11*(ds11_dsxx*dsxx_dsigy + ds11_dsyy*dsyy_dsigy) +
181 . db_ds22*(ds22_dsxx*dsxx_dsigy + ds22_dsyy*dsyy_dsigy) +
182 . db_dq*(dq_dsxx*dsxx_dsigy + dq_dsyy*dsyy_dsigy
184 . dc_dq*(dq_dsxx*dsxx_dsigy + dq_dsyy*dsyy_dsigy))
185 ezz(i) =
max(dplanl(i),zero)*(normxx + normyy)
186 ezz(i) = -nu*((signxx(i)-sigoxx(i)+signyy(i)-sigoyy(i))/young) - ezz(i)
190 ezz(i) = -(depsxx(i)+depsyy(i))*(nu/(one-nu)) + ezz(i)
192 thk(i) = thk(i) + ezz(i)*thklyl(i)*off(i)
subroutine sigeps32c(jft, jlt, pm, thk, off, dir, ipt, imat, nel, dt1c, gs, epsd, thklyl, ipla, dpla, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, pla, ngl, hardm, inloc, dplanl, seqh, loff, et)