29 . (nel ,sigd ,vol ,epseq , vfrac ,
30 . deps ,uparam ,volume ,eint , plas ,
35!
common points with
m10law()
43#include "implicit_f.inc"
51 INTEGER,
INTENT(IN) :: NEL
52 my_real,
INTENT(IN) :: pfrac,deps(6,nel),vol(nel),uparam(*),volume(nel),pext,de(nel)
53 my_real,
INTENT(INOUT) :: sigd(6,nel),pold(nel),eint(nel),epseq(nel),plas(nel)
58 my_real :: gg,a0,a1,a2,amax,tmelt,thetl,amumx,sigmx
61 my_real,
intent(in) :: vfrac(nel)
63 my_real :: t1(nel), t2(nel), t3(nel), t4(nel), t5(nel), t6(nel)
65 my_real :: bulk(nel), bulk2(nel), g(nel), g43(nel), g0(nel), g2(nel)
86 bulk(1:nel) = uparam(21)
87 bulk2(1:nel) = uparam(21)
101 sigdo(1:6,i) = sigd(1:6,i)
103 IF(vfrac(i) > two*em02)
THEN
104 t1(i) = t1(i) + g2(i)* (deps(1,i)-de(i))*fact
105 t2(i) = t2(i) + g2(i)* (deps(2,i)-de(i))*fact
106 t3(i) = t3(i) + g2(i)* (deps(3,i)-de(i))*fact
107 t4(i) = t4(i) + g(i) * deps(4,i)*fact
108 t5(i) = t5(i) + g(i) * deps(5,i)*fact
109 t6(i) = t6(i) + g(i) * deps(6,i)*fact
112 j2(i)=half*(t1(i)**2+t2(i)**2+t3(i)**2)+t4(i)**2+t5(i)**2+t6(i)**2
115 g0(i) =a0+a1*ptot+a2*ptot*ptot
116 g0(i)=
min(amax,g0(i))
117 g0(i)=
max(zero,g0(i))
118 IF(ptot <= pstar)g0(i)=zero
120 yield2(i)=j2(i)-g0(i)
123 if(vfrac(i) > two*em02)
then
127 IF(yield2(i) > zero)
THEN
128 r = sqrt(three*g0(i))/(vm+ em14)
129 dpla = (one - r)*vm /
max
130 plas(i) = plas(i) + dpla
131 epseq(i) = epseq(i)+ dpla
133 r = one-em02 ! 1-epsilon
138 sigd(1,i) = t1(i) * r
139 sigd(2,i) = t2(i) * r
140 sigd(3,i) = t3(i) * r
141 sigd(4,i) = t4(i) * r
142 sigd(5,i) = t5(i) * r
143 sigd(6,i) = t6(i) * r
145 vol_avg = half*(vfrac(i)*volume(i)+vol(i))
147 . ( (sigdo(1,i)+sigd(1,i)) * deps(1,i)
148 . + (sigdo(2,i)+sigd(2,i)) * deps(2,i)
149 . + (sigdo(3,i)+sigd(3,i)) * deps(3,i)
150 . + (sigdo(4,i)+sigd(4,i)) * deps(4,i)
151 . + (sigdo(5,i)+sigd(5,i)) * deps(5,i)
152 . + (sigdo(6,i)+sigd(6,i)) * deps(6,i))
153 eint(i) = eint(i) + einc
154 elseif(vfrac(i) < em02)
then
164 r = (vfrac(i)-em02)*hundred
165 plas(i) = r * plas(i)
166 if(yield2(i) > zero)
then
167 r = r * sqrt(three*g0(i))/(vm+ em14)
169 if(g0(i) == zero) r = zero
173 sigd(1,i) = sigd(1,i) * r
174 sigd(2,i) = sigd(2,i) * r
175 sigd(3,i) = sigd(3,i) * r
176 sigd(4,i) = sigd(4,i) * r
177 sigd(5,i) = sigd(5,i) * r
178 sigd(6,i) = sigd(6,i) * r
subroutine dprag51(nel, sigd, vol, epseq, vfrac, deps, uparam, volume, eint, plas, pfrac, pold, pext, de)
subroutine m10law(pm, off, sig, eint, rho, epsq, epxe, vol, mat, ssp, dvol, vnew, d1, d2, d3, d4, d5, d6, sold1, sold2, sold3, sold4, sold5, sold6, sigy, defp, pnew, psh, mu_new, seq_output, nel, dpdm, dpla, mu_bak)