29 1 NEL ,NUPARAM ,NUVAR ,TIME ,TIMESTEP ,UPARAM ,
30 2 RHO0 ,RHO ,NGL ,SIGY ,DPLA ,DEFP ,
31 3 DEPSXX ,DEPSYY ,DEPSZZ ,DEPSXY ,DEPSYZ ,DEPSZX ,
32 4 SIGOXX ,SIGOYY ,SIGOZZ ,SIGOXY ,SIGOYZ ,SIGOZX ,
33 5 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
34 6 EPSD ,DMG ,SOUNDSP ,UVAR ,OFF ,AMU ,
40#include "implicit_f.inc"
51 . NEL,NUPARAM,NUVAR,NGL(NEL)
53 . TIME,TIMESTEP,UPARAM(NUPARAM),RHO0(NEL),RHO(NEL),
54 . DEPSXX(NEL),DEPSYY(NEL),DEPSZZ(NEL),
55 . DEPSXY(NEL),DEPSYZ(NEL),DEPSZX(NEL),
56 . SIGOXX(NEL),SIGOYY(NEL),SIGOZZ(NEL),
57 . sigoxy(nel),sigoyz(nel),sigozx(nel),
62 my_real,
INTENT(OUT) ::
63 . sigy(nel),dpla(nel),soundsp(nel),
64 . signxx(nel),signyy(nel),signzz(nel),
65 . signxy(nel),signyz(nel),signzx(nel)
69 my_real,
INTENT(INOUT) ::
70 . uvar(nel,nuvar),off(nel),dmg(nel),
75 INTEGER I,J,NINDX,INDX(NEL),IDEL
77 . g , g2 , aa , bb , mm ,
78 . nn , cc , eps0 , sigfmax,
79 . tstar , phel , shel , beta ,
80 . d1 , d2 , epsmax, k1 , k2 , k3
82 . mu(nel),mu2(nel),pold(nel),vm(nel),
83 . deltap(nel),pnew(nel),pstar(nel),scale(nel),
84 . sigyi(nel),sigyf(nel),sigyold(nel),dmg_old(nel)
86 . dav, ce, sigstar, epfail, p1, yield, deltau, dpdmu,
111 idel = nint(uparam(19))
116 IF (off(i) < em01) off(i) = zero
117 IF (off(i) < one) off(i) = off(i)*four_over_5
118 deltap(i) = uvar(i,1)
119 sigyold(i) = uvar(i,2)/shel
129 dav = (depsxx(i)+depsyy(i)+depszz(i))*third
130 pold(i) = -(sigoxx(i)+sigoyy(i)+sigozz(i))*third
131 signxx(i) = sigoxx(i)+pold(i)+g2*(depsxx(i)-dav)
132 signyy(i) = sigoyy(i)+pold(i)+g2*(depsyy(i)-dav)
133 signzz(i) = sigozz(i)+pold(i)+g2*(depszz(i)-dav)
134 signxy(i) = sigoxy(i)+g*depsxy(i)
135 signyz(i) = sigoyz(i)+g*depsyz(i)
136 signzx(i) = sigozx(i)+g*depszx(i)
137 j2 = half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
138 . +signxy(i)**2+signyz(i)**2+signzx(i)**2
139 vm(i) = sqrt(three*j2)
146 pnew(i) = k1*mu(i) + deltap(i)
147 IF (mu(i) > zero)
THEN
148 pnew(i) = pnew(i) + k2*mu2(i) + k3*mu2(i)*mu(i)
149 ELSEIF (idel /= 1)
THEN
150 pmin=-tstar*phel*(one-dmg(i))
151 pnew(i)=
max(pnew(i),pmin)
153 pstar(i) = pnew(i)/phel
162 ELSEIF ((pstar(i)+tstar) > zero)
THEN
163 sigyi(i) = aa*(pstar(i)+tstar)**nn
170 ELSEIF (pstar(i) > zero)
THEN
171 sigyf(i) = bb*(pstar(i))**mm
176 IF (epsd(i)<=eps0)
THEN
179 ce = one + cc*log(epsd(i)/eps0)
182 sigyi(i) = ce*sigyi(i)
183 sigyf(i) = ce*sigyf(i)
184 sigyf(i) =
min(sigyf(i),sigfmax)
185 sigy(i) = (one-dmg(i))*sigyi(i)+dmg(i)*sigyf(i)
192 IF (off(i) == one)
THEN
194 IF (sigstar < sigy(i))
THEN
196 ELSEIF (vm(i) > zero)
THEN
197 scale(i) = sigy(i)/sigstar
201 signxx(i) = scale(i)*signxx(i)
202 signyy(i) = scale(i)*signyy(i)
203 signzz(i) = scale(i)*signzz(i)
204 signxy(i) = scale(i)*signxy(i)
205 signyz(i) = scale(i)*signyz(i)
206 signzx(i) = scale(i)*signzx(i)
216 IF (off(i) == one)
THEN
221 ELSEIF ((pstar(i)+tstar) >= zero)
THEN
222 epfail = d1*(pstar(i)+tstar)**d2
229 IF (epfail > zero)
THEN
230 dpla(i) = (one - scale(i))*vm(i)/(three*sqrt(three)*g)
231 defp(i) = defp(i) + dpla(i)
232 dmg(i) = dmg(i) + dpla(i)/epfail
233 dmg(i) =
min(dmg(i),one)
241 IF ((pstar(i)+tstar) < zero)
THEN
247 IF (defp(i) > epsmax)
THEN
252 ELSEIF (idel == 3)
THEN
268 yield = (one-dmg(i))*sigyi(i)+dmg(i)*sigyf(i)
269 deltau = (sigyold(i)*sigyold(i)-yield*yield)/(six*g)
270 IF (deltau > zero)
THEN
271 deltau = deltau*shel*shel
273 . sqrt((deltap(i)+p1)**2+two*beta*k1*deltau)
283 uvar(i,2) = sigy(i)*shel
284 signxx(i) = signxx(i)-pnew(i)
285 signyy(i) = signyy(i)-pnew(i)
286 signzz(i) = signzz(i)-pnew(i)
287 IF (mu(i) > zero)
THEN
288 dpdmu = k1+two*k2*mu(i)+three*k3*mu2(i)
292 soundsp(i) = sqrt((dpdmu+four_over_3*g)/rho0(i))
302 WRITE(iout, 1000) ngl(indx(j)),time
303 WRITE(istdo,1000) ngl(indx(j)),time
304#include "lockoff.inc"
308 1000
FORMAT(1x,
'-- RUPTURE (J-HOLMQUIST) OF SOLID ELEMENT :',i10,
' AT TIME :',1pe12.4)
subroutine sigeps79(nel, nuparam, nuvar, time, timestep, uparam, rho0, rho, ngl, sigy, dpla, defp, depsxx, depsyy, depszz, depsxy, depsyz, depszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, epsd, dmg, soundsp, uvar, off, amu, et)