29 1 PM, OFF, SIG, EPSEQ,
32 4 D6, RHO0, DPDM, IPLA,
33 5 SIGY, DEFP, DPLA1, NEL,
38#include "implicit_f.inc"
54 INTEGER,
INTENT(IN) :: NFT
55 INTEGER MAT(MVSIZ),NGL(MVSIZ),NEL
57 . PM(NPROPM,*), OFF(MVSIZ), SIG(NEL,6), EPSEQ(MVSIZ),
58 . SSP(MVSIZ), D1(MVSIZ), D2(MVSIZ), D3(MVSIZ), D4(MVSIZ),
59 . D5(MVSIZ), D6(MVSIZ), RHO0(MVSIZ), DPDM(MVSIZ),
60 . sigy(mvsiz), defp(mvsiz), dpla1(mvsiz)
65 INTEGER I, MX, II, LIST(MVSIZ), K
67 . g(mvsiz), g1(mvsiz), g2(mvsiz), qs(mvsiz), yld(mvsiz),
68 . qh(mvsiz), aj2(mvsiz), dav(mvsiz), sj2(mvsiz), p(mvsiz),
69 . epmx(mvsiz), ca(mvsiz), cb(mvsiz), cn(mvsiz), sigmx(mvsiz),
70 . scale, dpla, g11, ca11, cb11, cn11, epmx11,gdt,ggdt,
93 p(i) =-third*(sig(i,1)+sig(i,2)+sig(i,3))
94 dav(i)=-third*(d1(i)+d2(i)+d3(i))
98 !
where [e_dot] = [e_dot]_dev
107 sig(i,1)=sig(i,1)+p(i)+ggdt
108 sig(i,2)=sig(i,2)+p(i)+ggdt*(d2(i)+dav(i))
109 sig(i,3)=sig(i,3)+p(i)+ggdt*(d3(i)+dav(i))
110 sig(i,4)=sig(i,4)+gdt*d4(i)
111 sig(i,5)=sig(i,5)+gdt*d5(i)
112 sig(i,6)=sig(i,6)+gdt*d6(i)
118 yld(i)=
min(sigmx11,ca11+cb11*
max(zero,epseq(i))**cn11)
129 qh(i)= cb11*cn11*
max(zero,epseq(i))**(cn11- one)
133 IF(epseq(i)/=zero)
THEN
134 qh(i)= cb11*cn11/
max(zero,epseq(i))**(one-cn11)
145 dpdm(i)=dpdm(i)+onep333*g11
146 ssp(i)=sqrt(abs(dpdm(i))/rho0(i))
149 aj2(i)=half*(sig(i,1)**2+sig(i,2)**2+sig(i,3)**2)+sig(i,4)**2+sig(i,5)**2+sig(i,6)**2
150 sj2(i)=sqrt(three*aj2(i))
163 scale=
min(one,yld(i)/
max(sj2(i),em15))
164 sig(i,1)=scale*sig(i,1)
165 sig(i,2)=scale*sig(i,2)
166 sig(i,3)=scale*sig(i,3)
167 sig(i,4)=scale*sig(i,4)
168 sig(i,5)=scale*sig(i,5)
169 sig(i,6)=scale*sig(i,6)
170 dpla1(i) = (one -scale)*sj2(i)/
max(three*g11+qh(i),em15)
171 epseq(i)=epseq(i)+ dpla1(i)
176 scale=
min(one,yld(i)/
max(sj2(i),em15))
177 sig(i,1)=scale*sig(i,1)
178 sig(i,2)=scale*sig(i,2)
179 sig(i,3)=scale*sig(i,3)
180 sig(i,4)=scale*sig(i,4)
181 sig(i,5)=scale*sig(i,5)
182 sig(i,6)=scale*sig(i,6)
183 dpla1(i) = (one -scale)*sj2(i)/
max(three*g11,em15)
184 epseq(i)=epseq(i)+dpla1(i)
189 scale=
min(one,yld(i)/
max(sj2(i),em15))
191 dpla=(one -scale)*sj2(i)/
max(three*g11+qh(i),em15)
193 yld(i)=yld(i)+dpla*qh(i)
194 scale=
min(one,yld(i)/
max(sj2(i),em15))
195 sig(i,1)=scale*sig(i,1)
196 sig(i,2)=scale*sig(i,2)
197 sig(i,3)=scale*sig(i,3)
198 sig(i,4)=scale*sig(i,4)
199 sig(i,5)=scale*sig(i,5)
200 sig(i,6)=scale*sig(i,6)
201 epseq(i)=epseq(i)+dpla
209 IF(off(i)<em01) off(i)=zero
210 IF(off(i)<one) off(i)=off(i)*four_over_5
213 IF(epmx11==zero .OR. off(i)<one .OR. epseq(i)<epmx11) cycle
214 off(i)=off(i)*four_over_5
217 WRITE(iout,1000) ngl(i)
218#include
"lockoff.inc"
221 sig(i,1)=sig(i,1)*off(i)
222 sig(i,2)=sig(i,2)*off(i)
223 sig(i,3)=sig(i,3)*off(i)
224 sig(i,4)=sig(i,4)*off(i)
225 sig(i,5)=sig(i,5)*off(i)
226 sig(i,6)=sig(i,6)*off(i)
232 1000
FORMAT(1x,
'RUPTURE OF SOLID ELEMENT NUMBER ',i10)
subroutine m3law(pm, off, sig, epseq, mat, ngl, ssp, d1, d2, d3, d4, d5, d6, rho0, dpdm, ipla, sigy, defp, dpla1, nel, nft)