30 1 NEL ,NUPARAM ,NUVAR ,
31 2 TIME ,TIMESTEP ,UPARAM ,RHO0 ,RHO ,
32 3 DEPSXX ,DEPSYY ,DEPSZZ ,DEPSXY ,DEPSYZ ,DEPSZX ,
33 4 SIG0XX ,SIG0YY ,SIG0ZZ ,SIG0XY ,SIG0YZ ,SIG0ZX ,
34 5 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
35 6 SOUNDSP ,UVAR ,OFF ,NGL ,YLD ,PLA ,
36 7 DPLA ,ETSE ,SEQ ,DMG ,INLOC ,DPLANL )
40#include "implicit_f.inc"
52 INTEGER NEL,NUPARAM,NUVAR,NGL(NEL),INLOC
54 . TIME,TIMESTEP,UPARAM(NUPARAM),
56 . DEPSXX(NEL),DEPSYY(NEL),DEPSZZ(NEL),
57 . DEPSXY(NEL),DEPSYZ(NEL),DEPSZX(NEL),
58 . SIG0XX(NEL),SIG0YY(NEL),SIG0ZZ(NEL),
59 . sig0xy(nel),sig0yz(nel),sig0zx(nel)
64 . signxx(nel),signyy(nel),signzz(nel),
65 . signxy(nel),signyz(nel),signzx(nel),
71 . uvar(nel,nuvar),off(nel),pla(nel),seq(nel),
72 . dmg(nel),dplanl(nel)
76 INTEGER I,II,J,NINDX,INDX(MVSIZ),NITER,ITER
78 . e,nu,g,g2,a1,a2,bulk,lamhook,
83 . cc(mvsiz),dam(mvsiz),beta(mvsiz),
85 . f1,f2,f3,epsf,det,svm,theta,cos3theta,eta,
86 . sighl(mvsiz),h(mvsiz),dav,
87 . phi(mvsiz),normxx,normyy,normzz,
88 . normxy,normzx,normyz,dpxx(mvsiz),dpyy(mvsiz),
89 . dpzz(mvsiz),dpxy(mvsiz),dpzx(mvsiz),dpyz(mvsiz),
90 . sig_dfdsig,dfdsig2,dphi_dlam(mvsiz),dpla_dlam(mvsiz),
124 IF (time == zero)
THEN
134 IF (off(i) < one) off(i) = four_over_5*off(i)
135 IF (off(i) < em01) off(i) = zero
155 IF (off(i) == one)
THEN
156 IF ((dam(i) <= dc) .AND. (dam(i) >= one))
THEN
157 beta(i) = one/(
max(dc - one,em20))
158 beta(i) = (dc - dam(i))*beta
159 beta(i) = beta(i)**mexp
163 cc(i) = pla(i) + eps0
164 yld(i) = beta(i)*sigy*exp(nexpo*log(cc(i)))
165 yld(i) =
max(yld(i), em10)
174 dav = (depsxx(i) + depsyy(i) + depszz(i)) * lamhook
175 signxx(i) = sig0xx(i) + depsxx(i)*g2 + dav
176 signyy(i) = sig0yy(i) + depsyy(i)*g2 + dav
177 signzz(i) = sig0zz(i) + depszz(i)*g2 + dav
178 signxy(i) = sig0xy(i) + depsxy(i)*g
179 signyz(i) = sig0yz(i) + depsyz(i)*g
180 signzx(i) = sig0zx(i) + depszx(i)*g
183 sighl(i) = ff*(signyy(i) - signzz(i))**2 + gg*(signzz(i) - signxx(i))**2 +
184 . hh*(signxx(i) - signyy(i))**2 + two*ll*signyz(i)**2 +
185 . two*mm*signzx(i)**2 + two*nn*signxy
186 sighl(i) = sqrt(
max(zero,sighl(i)))
193 phi(1:nel) = sighl(1:nel) - yld(1:nel)
198 IF ((phi(i)>zero).AND.(off(i) == one))
THEN
213#include "vectorize.inc"
231 normxx = (gg*(signxx(i)-signzz(i)) + hh*(signxx(i)-signyy(i)))/(
max(sighl(i),em20))
232 normyy = (ff*(signyy(i)-signzz(i)) + hh*(signyy(i)-signxx(i)))/(
max(sighl(i),em20))
233 normzz = (ff*(signzz(i)-signyy(i)) + gg*(signzz(i)-signxx(i)))/(
max(sighl(i),em20))
234 normxy = two*nn*signxy(i)/(
max(sighl(i),em20))
235 normyz = two*ll*signyz(i)/(
max(sighl(i),em20
236 normzx = two*mm*signzx(i)/(
max(sighl(i),em20))
243 dfdsig2 = normxx * normxx * g2
244 . + normyy * normyy * g2
245 . + normzz * normzz * g2
246 . + normxy * normxy * g
247 . + normyz * normyz * g
248 . + normzx * normzx * g
255 h(i) = beta(i)*nexpo*sigy*exp((nexpo-1)*log(cc(i)))
259 sig_dfdsig = signxx(i) * normxx
262 . + signxy(i) * normxy
263 . + signyz(i) * normyz
264 . + signzx(i) * normzx
265 dpla_dlam(i) = sig_dfdsig /
max(yld(i
271 dphi_dlam(i) = - dfdsig2 - h(i)*dpla_dlam
272 dphi_dlam(i) = sign(
max(abs(dphi_dlam(i)),em20) ,dphi_dlam(i))
275 dlam = -phi(i)/dphi_dlam(i)
278 dpxx(i) = dlam * normxx
279 dpyy(i) = dlam * normyy
280 dpzz(i) = dlam * normzz
282 dpyz(i) = dlam * normyz
286 signxx(i) = signxx(i) - dpxx(i)*g2
287 signyy(i) = signyy(i) - dpyy(i)*g2
288 signzz(i) = signzz(i) - dpzz(i)*g2
289 signxy(i) = signxy(i) - dpxy(i)*g
290 signyz(i) = signyz(i) - dpyz(i)*g
291 signzx(i) = signzx(i) - dpzx(i)*g
294 ddep = dlam*dpla_dlam(i)
295 dpla(i) =
max(zero, dpla(i) + ddep)
296 pla(i) =
max(pla(i) + ddep,zero)
299 cc(i) = pla(i) + eps0
300 yld(i) = beta(i)*sigy*exp(nexpo*log(cc(i)))
301 yld(i) =
max(yld(i),em10)
304 sighl(i) = ff*(signyy(i) - signzz(i))**2 + gg*(signzz(i) - signxx(i))**2 +
305 . hh*(signxx(i) - signyy(i))**2 + two*ll*signyz(i)**2 +
306 . two*mm*signzx(i)**2 + two*nn*signxy(i)**2
307 sighl(i) = sqrt(
max(sighl(i),zero))
310 phi(i) = sighl(i) - yld(i)
325 IF (off(i) == one)
THEN
327 p = third*(signxx(i) + signyy(i) + signzz(i))
332 svm = half*(sd11**2 + sd22**2 + sd33**2) +
333 + signxy(i)**2 + signzx(i)**2 + signyz(i)**2
334 svm = sqrt(
max(three*svm,zero))
336 det = sd11*sd22*sd33 + two*signxy(i)*signzx(i)*signyz(i)
337 . - sd11*signyz(i)**2-sd33*signxy(i)**2 - sd22*signzx(i)**2
339 eta = p/
max(svm,em20)
340 IF (eta < -one) eta = -one
341 IF (eta > one ) eta = one
343 cos3theta = half*twenty7*det/
max(em20,svm**3)
344 IF (cos3theta < -one) cos3theta = -one
345 IF (cos3theta > one) cos3theta = one
346 theta = one - two*acos(cos3theta)/pi
349 f1 = cos(theta*pi/six)
350 f2 = sin(theta*pi/six)
351 f3 = c3 + (sqrt(three)/(two - sqrt(three)))*(one - c3)*(one/
max(f1,em20) - one)
354 epsf = (sigy/
max(c2,em20))*f3*(f1*sqrt(third*(one + c1**2)) + c1*(eta + f2*third))
355 epsf =
max(epsf,em20)**(-one/nexpo)
359 dam(i) = dam(i) +
max(dplanl(i),zero)/
max(epsf,em20)
361 dam(i) = dam(i) + dpla(i)/
max(epsf,em20)
363 IF (dam(i) >= dc)
THEN
378 soundsp(i) = sqrt((bulk + four_over_3*g)/rho0(i))
380 IF (dpla(i) > zero)
THEN
381 etse(i) = h(i) / (h(i) + e)
391 WRITE(iout, 1000) ngl(indx(j))
392 WRITE(istdo,1100) ngl(indx(j)),tt
393#include "lockoff.inc"
397 1000
FORMAT(1x,
'RUPTURE OF SOLID ELEMENT NUMBER ',i10)
398 1100
FORMAT(1x,
'RUPTURE OF SOLID ELEMENT NUMBER ',i10,
399 .
' AT TIME :',g11.4)
subroutine sigeps72(nel, nuparam, nuvar, time, timestep, uparam, rho0, rho, depsxx, depsyy, depszz, depsxy, depsyz, depszx, sig0xx, sig0yy, sig0zz, sig0xy, sig0yz, sig0zx, signxx, signyy, signzz, signxy, signyz, signzx, soundsp, uvar, off, ngl, yld, pla, dpla, etse, seq, dmg, inloc, dplanl)