32 1 NEL ,NGL ,NUPARAM ,NUVAR ,TIMESTEP,TIME ,
33 2 UPARAM ,UVAR ,RHO ,PLA ,DPLA ,
34 3 SOUNDSP ,EPSD ,OFF ,LOFF ,IPG ,NPG ,
35 4 DEPSXX ,DEPSYY ,DEPSZZ ,DEPSXY ,DEPSYZ ,DEPSZX ,
36 5 EPSXX ,EPSYY ,EPSZZ ,EPSXY ,EPSYZ ,EPSZX ,
37 6 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
42#include "implicit_f.inc"
55 INTEGER,
INTENT(IN) :: NEL,NUPARAM,NUVAR,IPG,NPG,NGL(NEL)
57 . TIME,TIMESTEP,UPARAM(NUPARAM)
58 my_real,
DIMENSION(NEL),
INTENT(IN) ::
60 . DEPSXX,DEPSYY,DEPSZZ,DEPSXY,DEPSYZ,DEPSZX,
61 . EPSXX ,EPSYY ,EPSZZ ,EPSXY ,EPSYZ ,EPSZX
62 my_real ,
DIMENSION(NEL),
INTENT(OUT) ::
63 . soundsp,signxx,signyy,signzz,signxy,signyz,signzx
64 my_real,
DIMENSION(NEL) ::
66 my_real ,
DIMENSION(NEL),
INTENT(INOUT) ::
67 . pla,dpla,epsd,loff,off
68 my_real ,
DIMENSION(NEL,3),
INTENT(INOUT) ::
70 my_real ,
DIMENSION(NEL,NUVAR),
INTENT(INOUT) ::
75 INTEGER I,J,II,ITER,NITER,NINDX,INDX(NEL),NINDX2,INDX2(NEL),
76 . IRATE,DTYPE,DFLAG,IREG,INDX3(),NINDX3,IDEL
78 . young,bulk,g,nu,lam,g2,afiltr,ah,bh,ch,dh,hp,as,qh0,
79 . m0,ecc,df,bs,epsi,epst0,epstmax,deltas,betas,epsc0,
80 . epscmax,alphas,gammas
82 . dlam,ag,bg,dfp_dkap,dfp_dqh1,dfp_dqh2,dfp_drhob,dfp_dsigm,
83 . normxx,normyy,normzz,normxy,normyz,normzx,denom,dfpdsig2,
84 . dfp_dtheta,dgp_drhob,dgp_dsigm,dj3dsxx,dj3dsxy,dj3dsyy,
85 . dj3dsyz,dj3dszx,dj3dszz,dkap_dlam,dmg_dsigm,dqh1_dkap,
86 . dqh2_dkap,drcos_dtheta,dtheta_dj2,dtheta_dj3,eh,fh,
87 . normdp,normgp,normpxx,normpxy,normpyy,normpyz,normpzx,
88 . normpzz,rh,trdep,trdgpds,xsih,normfp,ldav
89 . rs,u,uprim,v,vprim,dfp_dth,dr_dcosth,dth_dj2,dth_dj3,
90 . wf,wf1,efc,betac,sigtens(mvsiz,6),evv(mvsiz,3),dirprv(mvsiz,3,3),
91 . sigpt(nel,3),sigpc(nel,3)
92 my_real,
DIMENSION(NEL) ::
93 . sxx,syy,szz,sxy,syz,szx,j2,j3,theta,qh1,qh2,hardp,fp,trsig,
94 . dpxx,dpyy,dpxy,dpzz,dpyz,dpzx,rcos,kap,sigm,rhob,dfp_dlam,
95 . costh,sinth,cos3th,al,bl,cl,plaxx,playy,plazz,plaxy,playz,plazx,
96 . apex,fapex,eps_eq,kapdt,kapdt1,kapdt2,fst,omegat,eps_inel,h,fc,ft,
97 . alphart,alpharc,arate,eps0,omegac,kapdc,kapdc1,xsis,normsigp,
98 . kapdc2,fsc,alphac,sigtxx,sigtyy,sigtzz,sigtxy,sigtyz,sigtzx,
99 . sigcxx,sigcyy,sigczz,sigcxy,sigcyz,sigczx,elxx,elyy,elzz,elxy,
100 . elyz,elzx,sigoxx,sigoyy,sigozz,sigoxy,sigoyz,sigozx,ft1
101 !=======================================================================
115 ft(1:nel) = uparam(7)
116 fc(1:nel) = uparam(8)
129 dflag = nint(uparam(20))
130 dtype = nint(uparam(21))
131 ireg = nint(uparam(22))
134 ft1(1:nel) = uparam(25)
137 irate = nint(uparam(27))
147 idel = nint(uparam(36))
150 ! recovering internal variables
154 elxx(i) = (epsxx(i)-depsxx(i)) - uvar(i,2)
155 elyy(i) = (epsyy(i)-depsyy(i)) - uvar(i,3)
156 elzz(i) = (epszz(i)-depszz(i)) - uvar(i,4)
157 elxy(i) = (epsxy(i)-depsxy(i)) - uvar(i,5)
158 elyz(i) = (epsyz(i)-depsyz(i)) - uvar(i,6)
159 elzx(i) = (epszx(i)-depszx(i)) - uvar(i,7)
160 ldav = (elxx(i) + elyy(i) + elzz(i)) * lam
162 sigoxx(i) = elxx(i)*g2 + ldav
163 sigoyy(i) = elyy(i)*g2 + ldav
164 sigozz(i) = elzz(i)*g2 + ldav
165 sigoxy(i) = elxy(i)*g
166 sigoyz(i) = elyz(i)*g
167 sigozx(i) = elzx(i)*g
177 kapdt1(i) = uvar(i,10)
178 kapdt2(i) = uvar(i,11)
179 kapdc(i) = uvar(i,12)
180 kapdc1(i) = uvar(i,13)
181 kapdc2(i) = uvar(i,14)
182 arate(i) = uvar(i,15)
198 IF (uvar(i,16) == zero) uvar(i,16) = le(i)
210 IF (loff(i) == one)
THEN
211 ldav = (depsxx(i) + depsyy(i) + depszz(i)) * lam
212 signxx(i) = sigoxx(i) + depsxx(i)*g2 + ldav
213 signyy(i) = sigoyy(i) + depsyy(i)*g2 + ldav
214 signzz(i) = sigozz(i) + depszz(i)*g2 + ldav
215 signxy(i) = sigoxy(i) + depsxy(i)*g
216 signyz(i) = sigoyz(i) + depsyz(i)*g
217 signzx(i) = sigozx(i) + depszx(i)*g
232 sigtens(i,1) = signxx(i)
233 sigtens(i,2) = signyy(i)
234 sigtens(i,3) = signzz(i)
235 sigtens(i,4) = signxy(i)
236 sigtens(i,5) = signyz(i)
237 sigtens(i,6) = signzx(i)
239 evv(1:mvsiz,1:3) = zero
240 dirprv(1:mvsiz,1:3,1:3) = zero
241 sigpt(1:nel,1:3) = zero
242 sigpc(1:nel,1:3) = zero
251 normsigp(i) = evv(i,1)**2 + evv(i,2)**2 + evv(i,3)**2
256 IF (evv(i,j) > zero)
THEN
257 sigpt(i,j) = evv(i,j)
259 sigpc(i,j) = evv(i,j)
261 alphac(i) = alphac(i) + sigpc(i,j)*(sigpt(i,j) + sigpc(i,j))/
max(normsigp(i),em20)
265 ! computation of strain rate factor
268 IF (epsd(i) <= epst0)
THEN
270 ELSEIF (epsd(i) > epst0 .AND. epsd(i) <= epstmax)
THEN
271 alphart(i) = (epsd(i)/epst0)**(deltas)
273 alphart(i) = betas*(epsd(i)/epst0)**third
277 IF (epsd(i) <= epsc0)
THEN
279 ELSEIF (epsd(i) > epsc0 .AND. epsd(i) <= epscmax)
THEN
280 alpharc(i) = (epsd(i)/epsc0)**(1.026d0*alphas)
282 alpharc(i) = gammas*(epsd(i)/epsc0)**third
286 IF (arate(i) == zero) arate(i) = (one - alphac(i))*alphart(i) + alphac(i)*alpharc(i)
289 ft(i) = ft(i)*arate(i)
290 ft1(i) = ft1(i)*arate(i)
291 fc(i) = fc(i)*arate(i)
298 trsig(i) = signxx(i) + signyy(i) + signzz(i)
299 sigm(i) = trsig(i)*third
301 sxx(i) = signxx(i) - sigm(i)
302 syy(i) = signyy(i) - sigm(i)
303 szz(i) = signzz(i) - sigm(i)
308 j2(i) = half*(sxx(i)**2 + syy(i)**2 + szz(i)**2)
309 . + sxy(i)**2 + syz(i)**2 + szx(i)**2
310 j2(i) =
max(j2(i),em20)
312 rhob(i) = sqrt(two*j2(i))
313 j3(i) = sxx(i)*syy(i)*szz(i) + two*sxy(i)*szx(i)*syz(i) -
314 . sxx(i)*(syz(i)**2) - szz(i)*(sxy(i)**2) - syy(i)*(szx(i)**2)
315 cos3th(i) = (three*sqr3/two)*j3(i)/((j2(i)**(three/two)))
316 IF (cos3th(i) > one)
THEN
318 ELSE IF (cos3th(i) < -one)
THEN
321 theta(i) = third*acos(cos3th(i))
323 costh(i) = cos(theta(i))
324 sinth(i) = sin(theta(i))
327 rcos(i) = (four*(one - ecc**2)*(costh(i)**2) + (two*ecc - one)**2)/
328 .
max(((two*(one - ecc**2)*costh(i)) +
329 . (two*ecc - one)*sqrt(four*(one - ecc**2)*(costh(i)**2) +
330 . five*(ecc**2) - four*ecc)),em20)
333 IF (kap(i) < zero)
THEN
336 ELSEIF (kap(i) >= zero .AND. kap(i) < one)
THEN
338 . (one - qh0)*((kap(i)**3) - three*(kap(i)**2) + three*kap(i)) -
339 . hp*((kap(i)**3) - three*(kap(i)**2) + two*kap(i))
343 qh2(i) = one + (kap(i)-one)*hp
347 apex(i) = qh2(i)*fc(i)/m0
350 cl(i) = (rhob(i)*rcos(i)/(sqr6*fc(i))) + sigm(i)/fc(i)
351 bl(i) = (sigm(i)/fc(i)) + rhob(i)/(sqr6*fc(i))
352 al(i) = (one - qh1(i))*(bl(i)**2) + sqrt(three/two)*(rhob(i)/fc(i))
353 fp(i) = al(i)**2 + m0*(qh1(i)**2)*qh2(i)*cl(i) - (qh1(i)**2)*(qh2(i)**2)
356 fapex(i) = sigm(i) - apex(i)
366 IF ((fapex(i) > zero) .AND. (loff(i) == one))
THEN
370 ELSEIF ((fp(i) > zero) .AND. (loff(i) == one))
THEN
386#include "vectorize.inc"
391 IF (kap(i) < one)
THEN
398 rh = -(sigm(i)/fc(i))
400 xsih = ah-(ah-bh)*exp(-rh/ch)
403 fh = (bh-dh)*ch/(ah-bh)
404 xsih = eh*exp(rh/fh) + dh
407 dfapex_dkap = dqh2_dkap*(fc(i)/m0) + three*bulk*xsih
409 kap(i) = kap(i) + fapex(i)/dfapex_dkap
411 sigm(i) = sigm(i) - three*bulk*xsih*fapex(i)/dfapex_dkap
413 IF (kap(i) < one)
THEN
416 qh2(i) = one + (kap(i)-one)*hp
418 apex(i) = qh2(i)*fc(i)/m0
420 fapex(i) = sigm(i) - apex(i)
425#include "vectorize.inc"
430 plaxx(i) = plaxx(i) + (one/young)*(
431 & (signxx(i)-sigm(i))
432 & - nu*(signyy(i)-sigm(i))
433 & - nu*(signzz(i)-sigm(i)))
434 playy(i) = playy(i) + (one/young)*(
435 & - nu*(signxx(i)-sigm(i))
436 & + (signyy(i)-sigm(i))
437 & - nu*(signzz(i)-sigm(i)))
438 plazz(i) = plazz(i) + (one/young)*(
439 & - nu*(signxx(i)-sigm(i))
440 & - nu*(signyy(i)-sigm(i))
441 & + (signzz(i)-sigm(i)))
442 plaxy(i) = plaxy(i) + (one/g)*(signxy(i))
443 playz(i) = playz(i) + (one/g)*(signyz(i))
444 plazx(i) = plazx(i) + (one/g)*(signzx(i))
454 rhob(i) = sqrt(two*j2(i))
455 cl(i) = sigm(i)/fc(i)
470#include "vectorize.inc"
488 dfp_drhob = (two*al(i)/fc(i))*(two*((one-qh1(i))/sqr6)*bl(i) + sqrt(three/two)) +
489 . m0*(qh1(i)**2)*qh2(i)*rcos(i)/(sqr6*fc(i))
491 dfp_dsigm = (four*al(i)*bl(i)*(one-qh1(i))/fc(i)) + m0*(qh1(i)**2)*qh2(i)/fc(i)
493 u = four*(one - ecc**2)*(costh(i)**2) + (two*ecc - one)**2
494 uprim = eight*(one - ecc**2)*costh(i)
495 v = two*(one - ecc**2)*costh(i) +
496 . (two*ecc - one)*sqrt(four*(one-ecc**2)*(costh(i)**2)
497 . + five*(ecc**2) - four*ecc)
498 vprim = two*(one-ecc**2) + (two*ecc - one)*((eight*(one-ecc**2)*costh(i))/
499 . (two*sqrt(four*(one-ecc**2)*(costh(i)**2)
500 . + five*(ecc**2) - four*ecc)))
501 dr_dcosth = (uprim*v - u*vprim)/(v**2)
502 dfp_dth = m0*(qh1(i)**2)*(qh2(i))*(rhob(i)/(sqr6*fc(i)))*dr_dcosth*(-sinth(i))
503 dth_dj2 = three*sqr3*j3(i)/(four*(j2(i)**2)*sqrt(j2(i))*
max(sqrt(one - (cos3th(i))**2),em08))
504 dth_dj3 = -sqr3/(two*j2(i)*sqrt(j2(i))*
max(sqrt(one - (cos3th(i))**2),em08))
507 dj3dsxx = two_third*(syy(i)*szz(i)-syz(i)**2)
508 . - third*(sxx(i)*szz(i)-szx(i)**2)
509 . - third*(sxx(i)*syy(i)-sxy(i)**2)
510 dj3dsyy = - third*(syy(i)*szz(i)-syz(i)**2)
511 . + two_third*(sxx(i)*szz(i)-szx(i)**2)
512 . - third*(sxx(i)*syy(i)-sxy(i)**2)
513 dj3dszz = - third*(syy(i)*szz(i)-syz(i)**2)
514 . - third*(sxx(i)*szz(i)-szx(i)**
516 dj3dsxy = two*(sxx(i)*sxy(i) + sxy(i)*syy(i) + szx(i)*syz(i))
517 dj3dsyz = two*(sxy(i)*szx(i) + syy(i)*syz(i) + syz
518 dj3dszx = two*(sxx(i)*szx(i) + sxy(i)*syz(i) + szx(i)*szz(i))
521 normxx = dfp_drhob*(sxx(i)/rhob(i)) + dfp_dsigm*third
522 . dfp_dth*(dth_dj2*sxx(i) + dth_dj3*dj3dsxx)
523 normyy = dfp_drhob*(syy(i)/rhob(i)) + dfp_dsigm*third +
524 . dfp_dth*(dth_dj2*syy(i) + dth_dj3*dj3dsyy)
525 normzz = dfp_drhob*(szz(i)/rhob(i)) + dfp_dsigm*third +
527 normxy = two*dfp_drhob*(sxy(i)/rhob(i)) +
528 . dfp_dth*(dth_dj2*two*sxy(i) + dth_dj3*dj3dsxy)
529 normyz = two*dfp_drhob*(syz(i)/rhob(i)) +
530 . dfp_dth*(dth_dj2*two*syz(i) + dth_dj3*dj3dsyz)
531 normzx = two*dfp_drhob*(szx(i)/rhob(i)) +
532 . dfp_dth*(dth_dj2*two*szx(i) + dth_dj3*dj3dszx)
537 dgp_drhob = (two*al(i)/fc(i))*(two*((one-qh1(i))/sqr6)*bl(i) + sqrt(three/two)) +
538 . (qh1(i)**2)*m0/(sqr6*fc(i))
540 ag = (three*ft(i)*qh2(i)/fc(i)) + m0*half
541 bg = ((qh2(i)*third)*(one + (ft(i)/fc(i))))/
max((
542 . log(ag) - log(two*df - one) - log(three*qh2(i) + m0*half) +
543 . log(df + one)),em20)
544 ! -> computation of derivative of mg with respect to sigm
545 dmg_dsigm = ag*exp((sigm(i) - qh2(i)*ft(i)*third)/(bg*fc(i)))
547 dgp_dsigm = (four*al(i)*bl(i)*(one-qh1(i))/fc(i)) + ((qh1(i)**2)/fc(i))*dmg_dsigm
549 normpxx = dgp_drhob*(sxx(i)/rhob(i)) + dgp_dsigm*third
550 normpyy = dgp_drhob*(syy(i)/rhob(i)) + dgp_dsigm*third
551 normpzz = dgp_drhob*(szz(i)/rhob(i)) + dgp_dsigm*third
552 normpxy = two*dgp_drhob*(sxy(i)/rhob(i))
553 normpyz = two*dgp_drhob*(syz(i)/rhob
554 normpzx = two*dgp_drhob*(szx(i)/rhob(i))
561 trdgpds = normpxx + normpyy + normpzz
562 dfpdsig2 = normxx * (normpxx*g2 + lam*trdgpds)
563 . + normyy * (normpyy*g2 + lam*trdgpds)
564 . + normzz * (normpzz*g2 + lam*trdgpds)
565 . + normxy * normpxy*g
566 . + normyz * normpyz*g
567 . + normzx * normpzx*g
572 dfp_dqh1 = -two*al(i)*(bl(i)**2) + two*qh1(i)*qh2(i)*(m0*cl(i) - qh2(i))
574 dfp_dqh2 = (qh1(i)**2)*(m0*cl(i) - two*qh2(i))
576 IF (kap(i) < zero)
THEN
577 dqh1_dkap = (one - qh0)*three - hp*two
579 ELSEIF (kap(i) >= zero .AND. kap(i) < one)
THEN
580 dqh1_dkap = (one - qh0)*(three*(kap(i)**2) - six*kap(i) + three) -
581 . hp*(three*(kap(i)**2) - six*kap(i) + two)
588 dfp_dkap = dfp_dqh1*dqh1_dkap + dfp_dqh2*dqh2_dkap
589 dfp_dkap =
min(dfp_dkap,zero)
591 rh = -(sigm(i)/fc(i)) - third
593 xsih = ah-(ah-bh)*exp(-rh/ch)
596 fh = (bh-dh)*ch/(ah-bh)
597 xsih = eh*exp(rh/fh) + dh
599 normgp = sqrt(third*(dgp_dsigm)**2 + dgp_drhob**2)
601 dkap_dlam = (normgp/xsih)*(two*costh(i))**2
607 dfp_dlam(i) = - dfpdsig2 + dfp_dkap
608 dfp_dlam(i) = sign(
max(abs(dfp_dlam(i)),em20),dfp_dlam(i))
611 dlam = -fp(i)/dfp_dlam(i)
614 dpxx(i) = dlam * normpxx
615 dpyy(i) = dlam * normpyy
616 dpzz(i) = dlam * normpzz
617 dpxy(i) = dlam * normpxy
618 dpyz(i) = dlam * normpyz
619 dpzx(i) = dlam * normpzx
620 trdep = dpxx(i) + dpyy(i) + dpzz(i)
621 plaxx(i) = plaxx(i) + dpxx(i)
622 playy(i) = playy(i) + dpyy(i)
623 plazz(i) = plazz(i) + dpzz(i)
624 plaxy(i) = plaxy(i) + dpxy(i)
625 playz(i) = playz(i) + dpyz(i)
626 plazx(i) = plazx(i) + dpzx(i)
629 kap(i) = kap(i) + dkap_dlam*dlam
630 kap(i) =
max(kap(i),zero)
643! qh2(i) = one + (kap(i)-one)*hp
648 signxx(i) = signxx(i) - (dpxx(i)*g2 + ldav)
649 signyy(i) = signyy(i) - (dpyy(i)*g2 + ldav)
650 signzz(i) = signzz(i) - (dpzz(i)*g2 + ldav)
651 signxy(i) = signxy(i) - dpxy(i)*g
652 signyz(i) = signyz(i) - dpyz(i)*g
653 signzx(i) = signzx(i) - dpzx(i)*g
656 trsig(i) = signxx(i) + signyy(i) + signzz(i)
657 sigm(i) = trsig(i)*third
659 sxx(i) = signxx(i) - sigm(i)
660 syy(i) = signyy(i) - sigm(i)
661 szz(i) = signzz(i) - sigm(i)
666 j2(i) = half*(sxx(i)**2 + syy(i)**2 + szz(i)**2)
667 . + sxy(i)**2 + syz(i)**2 + szx(i)**2
668 j2(i) =
max(j2(i),em20)
670 rhob(i) = sqrt(two*j2(i))
671 j3(i) = sxx(i)*syy(i)*szz(i) + two*sxy(i)*szx(i)*syz(i) -
673 cos3th(i) = (three*sqr3/two)*j3(i)/((j2(i)**(three/two)))
674 IF (cos3th(i) > one)
THEN
676 ELSE IF (cos3th(i) < -one)
THEN
679 theta(i) = third*acos(cos3th(i))
681 costh(i) = cos(theta(i))
682 sinth(i) = sin(theta(i))
685 rcos(i) = (four*(one - ecc**2)*(costh(i)**2) + (two*ecc - one)**2)/
686 .
max(((two*(one - ecc**2)*costh(i)) +
687 . (two*ecc - one)*sqrt(four*(one
688 . five*(ecc**2) - four*ecc)),em20)
691 cl(i) = (rhob(i)*rcos(i)/(sqr6*fc(i))) + sigm(i)/fc(i)
692 bl(i) = (sigm(i)/fc(i)) + rhob(i)/(sqr6*fc(i))
693 al(i) = (one - qh1(i))*(bl(i)**2) + sqrt(three/two)*(rhob(i)/fc(i))
694 fp(i) = al(i)**2 + m0*(qh1(i)**2)*qh2(i)*cl(i) - (qh1(i)**2)*(qh2(i)**2)
710 dpla(i) = sqrt((plaxx(i)-uvar(i,2))**2 + (playy(i)-uvar(i,3))**2 +
711 . (plazz(i)-uvar(i,4))**2 + half*((plaxy(i)-uvar(i,5))**2 +
712 . (playz(i)-uvar(i,6))**2 + (plazx(i)-uvar(i,7))**2))
713 pla(i) = pla(i) + dpla(i)
715 IF (dpla(i) > zero)
THEN
716 hardp(i) = sqrt((signxx(i)-sigoxx(i))**2 +
717 . (signyy(i)-sigoyy(i))**2 +
718 . (signzz(i)-sigozz(i))**2 +
719 . two*((signxy(i)-sigoxy(i))**2 +
720 . (signyz(i)-sigoyz(i))**2 +
721 . (signzx(i)-sigozx(i))**2))
722 hardp(i) = hardp(i)/dpla(i)
737 sigtens(i,1) = signxx(i)
738 sigtens(i,2) = signyy(i)
739 sigtens(i,3) = signzz(i)
740 sigtens(i,4) = signxy(i)
741 sigtens(i,5) = signyz(i)
742 sigtens(i,6) = signzx(i)
744 evv(1:mvsiz,1:3) = zero
745 dirprv(1:mvsiz,1:3,1:3) = zero
746 sigpt(1:nel,1:3) = zero
747 sigpc(1:nel,1:3) = zero
758 eps0(i) = ft(i)/young
761 eps_eq(i) = eps0(i)*m0*half*cl(i)
762 eps_eq(i) = eps_eq(i) + sqrt((eps_eq(i))**2 +
763 . three*half*(eps0(i)*rhob(i)/fc(i))**2)
766 IF (sigm(i) <= zero)
THEN
767 rs = -sqr6*sigm(i)/
max(rhob(i),em20)
771 xsis(i) = one + (as - one)*(rs**bs)
774 normsigp(i) = evv(i,1)**2 + evv(i,2)**2 + evv(i,3)**2
781 IF (evv(i,j) > zero)
THEN
782 sigpt(i,j) = evv(i,j)
784 sigpc(i,j) = evv(i,j)
786 alphac(i) = alphac(i) + sigpc(i,j)*(sigpt(i,j) + sigpc(i,j))/
max(normsigp(i),em20)
794 IF (eps_eq(i)>=(eps0(i)-em08))
THEN
796 kapdt2(i) = kapdt2(i) + (
max(eps_eq(i) - kapdt(i),zero))/xsis(i)
797 kapdt1(i) = kapdt1(i) + dpla(i)/xsis(i)
798 kapdt(i) =
max(eps_eq(i),kapdt(i))
799 eps_inel(i) = kapdt1(i) + omegat(i)*kapdt2(i)
802 omegat(i) = (young*kapdt(i)*wf - ft(i)*wf +
803 . ft(i)*kapdt1(i)*h(i))/(young*kapdt(i)*wf - ft(i)*h(i)*kapdt2(i))
805 ELSEIF (dtype == 2)
THEN
806 IF (h(i)*eps_inel(i) >= zero .AND. h(i)*eps_inel(i) < wf1)
THEN
807 omegat(i) = (young*kapdt(i)*wf1 - ft(i)*wf1 - (ft1(i) -
808 . ft(i))*kapdt1(i)*h(i))/(young*kapdt(i)*wf1 +
809 . (ft1(i) - ft(i))*h(i)*kapdt2(i))
810 ELSEIF (h(i)*eps_inel(i) >= wf1 .AND. h(i)*eps_inel(i) < wf)
THEN
811 omegat(i) = (young*kapdt(i)*(wf - wf1) -
812 . ft1(i)*(wf - wf1) + ft1(i)*h(i)*kapdt1(i) - ft1(i)*wf1)/
813 . (young*kapdt(i)*(wf - wf1) - ft1(i)*h(i)*kapdt2(i))
818 ELSEIF (dtype == 3)
THEN
819 omegat(i) = one - exp(-(h(i)*eps_inel(i)/wf))
821 omegat(i) =
max(omegat(i),dmg(i,2))
822 omegat(i) =
min(
max(omegat(i),zero),zep999)
824 kapdc2(i) = kapdc2(i) + alphac(i)*(
max(eps_eq(i) - kapdc(i),zero))/xsis(i)
825 betac = ft(i)*qh2(i)*sqrt(two_third)/
826 . (rhob(i)*sqrt(one + two*(df**2)))
827 kapdc1(i) = kapdc1(i) + alphac(i)*betac*dpla(i)/xsis(i)
828 kapdc(i) =
max(alphac(i)*eps_eq(i),kapdc(i))
829 eps_inel(i) = kapdc1(i) + omegac(i)*kapdc2(i)
830 omegac(i) = one - exp(-(eps_inel(i)/efc))
831 omegac(i) =
max(omegac(i),dmg(i,3))
832 omegac(i) =
min(
max(omegac(i),zero),zep999)
838 dmg(i,1) =
min(
min(omegat(i),omegac(i)),zep999)
840 sigtxx(i) = dirprv(i,1,1)*dirprv(i,1,1)*sigpt(i,1)
841 . + dirprv(i,1,2)*dirprv(i,1,2)*sigpt(i,2)
842 . + dirprv(i,1,3)*dirprv(i,1,3)*sigpt(i,3)
843 sigtyy(i) = dirprv(i,2,2)*dirprv(i,2,2)*sigpt(i,2)
844 . + dirprv(i,2,3)*dirprv(i,2,3)*sigpt(i,3)
845 . + dirprv(i,2,1)*dirprv(i,2,1)*sigpt(i,1)
846 sigtzz(i) = dirprv(i,3,3)*dirprv(i,3,3)*sigpt(i,3)
847 . + dirprv(i,3,1)*dirprv(i,3,1)*sigpt(i,1)
848 . + dirprv(i,3,2)*dirprv(i,3,2)*sigpt(i,2)
849 sigtxy(i) = dirprv(i,1,1)*dirprv(i,2,1)*sigpt(i,1)
850 . + dirprv(i,1,2)*dirprv(i,2,2)*sigpt(i,2)
851 . + dirprv(i,1,3)*dirprv(i,2,3)*sigpt(i,3)
852 sigtyz(i) = dirprv(i,2,2)*dirprv(i,3,2)*sigpt(i,2)
853 . + dirprv(i,2,3)*dirprv(i,3,3)*sigpt(i,3)
854 . + dirprv(i,2,1)*dirprv(i,3,1)*sigpt(i,1)
855 sigtzx(i) = dirprv(i,3,3)*dirprv(i,1,3)*sigpt(i,3)
856 . + dirprv(i,3,1)*dirprv(i,1,1)*sigpt(i,1)
857 . + dirprv(i,3,2)*dirprv(i,1,2)*sigpt(i,2)
859 sigcxx(i) = dirprv(i,1,1)*dirprv(i,1,1)*sigpc(i,1)
860 . + dirprv(i,1,2)*dirprv(i,1,2)*sigpc(i,2)
861 . + dirprv(i,1,3)*dirprv(i,1,3)*sigpc(i,3)
862 sigcyy(i) = dirprv(i,2,2)*dirprv(i,2,2)*sigpc(i,2)
863 . + dirprv(i,2,3)*dirprv(i,2,3)*sigpc(i,3)
864 . + dirprv(i,2,1)*dirprv(i,2,1)*sigpc(i,1)
865 sigczz(i) = dirprv(i,3,3)*dirprv(i,3,3)*sigpc(i,3)
866 . + dirprv(i,3,1)*dirprv(i,3,1)*sigpc(i,1)
867 . + dirprv(i,3,2)*dirprv(i,3,2)*sigpc(i,2)
868 sigcxy(i) = dirprv(i,1,1)*dirprv(i,2,1)*sigpc(i,1)
869 . + dirprv(i,1,2)*dirprv(i,2,2)*sigpc(i,2)
870 . + dirprv(i,1,3)*dirprv(i,2,3)*sigpc(i,3)
871 sigcyz(i) = dirprv(i,2,2)*dirprv(i,3,2)*sigpc(i,2)
872 . + dirprv(i,2,3)*dirprv(i,3,3)*sigpc(i,3)
873 . + dirprv(i,2,1)*dirprv(i,3,1)*sigpc(i,1)
874 sigczx(i) = dirprv(i,3,3)*dirprv(i,1,3)*sigpc(i,3)
875 . + dirprv(i,3,1)*dirprv(i,1,1)*sigpc(i,1)
876 . + dirprv(i,3,2)*dirprv(i,1,2)*sigpc(i,2)
878 signxx(i) = (one-omegat(i))*sigtxx(i) + (one-omegac(i))*sigcxx(i)
879 signyy(i) = (one-omegat(i))*sigtyy(i) + (one-omegac(i))*sigcyy(i)
880 signzz(i) = (one-omegat(i))*sigtzz(i) + (one-omegac(i))*sigczz(i)
881 signxy(i) = (one-omegat(i))*sigtxy(i) + (one-omegac(i))*sigcxy(i)
882 signyz(i) = (one-omegat(i))*sigtyz(i) + (one-omegac(i))*sigcyz(i)
883 signzx(i) = (one-omegat(i))*sigtzx(i) + (one-omegac(i))*sigczx(i)
885 ELSEIF (dflag == 2)
THEN
886 dmg(i,1) =
min(omegat(i),zep999)
887 signxx(i) = (one-dmg(i,1))*signxx(i)
888 signyy(i) = (one-dmg(i,1))*signyy(i)
889 signzz(i) = (one-dmg(i,1))*signzz(i)
890 signxy(i) = (one-dmg(i,1))*signxy(i)
891 signyz(i) = (one-dmg(i,1))*signyz(i)
892 signzx(i) = (one-dmg(i,1))*signzx(i)
894 ELSEIF (dflag == 3)
THEN
895 dmg(i,1) =
min(one - (one-omegat(i))*(one-omegac(i)),zep999)
896 signxx(i) = (one-dmg(i,1))*signxx(i)
897 signyy(i) = (one-dmg(i,1))*signyy(i)
898 signzz(i) = (one-dmg(i,1))*signzz(i)
899 signxy(i) = (one-dmg(i,1))*signxy(i)
900 signyz(i) = (one-dmg(i,1))*signyz(i)
901 signzx(i) = (one-dmg(i,1))*signzx(i)
905 IF ((dmg(i,1) == zep999).AND.(loff(i) == one).AND.(off(i) > zero))
THEN
913 loff(i) = four_over_5
934 uvar(i,8) = eps_eq(i)
936 uvar(i,10) = kapdt1(i)
937 uvar(i,11) = kapdt2(i)
938 uvar(i,12) = kapdc(i)
939 uvar(i,13) = kapdc1(i)
940 uvar(i,14) = kapdc2(i)
945 IF (dpla(i) > zero)
THEN
946 et(i) = hardp(i) / (hardp(i) + young)
951 soundsp(i) = sqrt((bulk + four_over_3*g)/rho(i))
955#include "vectorize.inc"
958 IF (uvar(i,15) == zero) uvar(i,15) = arate(i)
960#include "vectorize.inc"
963 IF (uvar(i,15) == zero) uvar(i,15) = arate(i)
971 WRITE(iout, 2000) ngl(indx3(i))
972 WRITE(istdo,2100) ngl(indx3(i)),tt
973#include "lockoff.inc"
977 2000
FORMAT(1x,
'FAILURE (CDPM2) OF SOLID ELEMENT ',i10)
978 2100
FORMAT(1x,
'FAILURE (CDPM2) OF SOLID ELEMENT ',i10,1x,
'AT TIME :',1pe12.4)