29 1 NEL , NUPARAM, UPARAM , RHO0 , RHO ,
30 2 DEPSXX , DEPSYY , DEPSZZ , DEPSXY , DEPSYZ , DEPSZX ,
31 3 SIGOXX , SIGOYY , SIGOZZ , SIGOXY , SIGOYZ , SIGOZX ,
32 4 SIGNXX , SIGNYY , SIGNZZ , SIGNXY , SIGNYZ , SIGNZX ,
34 6 PSH , PNEW , DPDM , SSP , PLA , PMIN)
38#include "implicit_f.inc"
42 INTEGER,
INTENT(IN) :: NEL,NUPARAM
43 my_real,
INTENT(IN) :: UPARAM(NUPARAM)
44 my_real,
INTENT(IN),
DIMENSION(NEL) :: RHO, RHO0
45 my_real,
INTENT(IN),
DIMENSION(NEL) :: DEPSXX, DEPSYY, DEPSZZ, DEPSXY, DEPSYZ, DEPSZX
46 my_real,
INTENT(IN),
DIMENSION(NEL) :: SIGOXX, SIGOYY, SIGOZZ, SIGOXY, SIGOYZ, SIGOZX
47 my_real,
INTENT(INOUT),
DIMENSION(NEL) :: SIGNXX, SIGNYY, SIGNZZ, SIGNXY, SIGNYZ, SIGNZX
48 my_real,
INTENT(IN),
DIMENSION(NEL) :: pnew, psh
49 my_real,
INTENT(IN),
DIMENSION(NEL) :: off
50 my_real,
INTENT(IN) :: pmin
51 my_real,
INTENT(INOUT),
DIMENSION(NEL) :: ssp, dpdm, pla
55 my_real :: a0,a1,a2,amax
57 my_real :: t1(nel),t2(nel),t3(nel),t4(nel),t5(nel),t6(nel)
58 my_real :: ptot,g0(nel),ratio(nel),yield2(nel)
59 my_real :: pstar,g,gg,scrt(nel),aj2(nel),dpla(nel)
60 my_real :: i3(nel),cos3t(nel),sqrt_j2,theta,c,phi,k
61 my_real :: mu(nel),mu2(nel)
75 iform = nint(uparam(9))
80 pold(i) = -(sigoxx(i)+sigoyy(i)+sigozz(i))*third
81 scrt(i) = (depsxx(i)+depsyy
82 mu(i) = rho(i)/rho0(i) - one
83 mu2(i) = mu(i) *
max(zero,mu(i))
89 t1(i)=sigoxx(i)+pold(i)+gg*(depsxx(i)-scrt(i))
90 t2(i)=sigoyy(i)+pold(i)+gg*(depsyy(i)-scrt(i))
91 t3(i)=sigozz(i)+pold(i)+gg*(depszz(i)-scrt(i))
92 t4(i)=sigoxy(i) + g*depsxy(i)
93 t5(i)=sigoyz(i) + g*depsyz(i)
94 t6(i)=sigozx(i) + g*depszx(i)
100 dpdm(i) = dpdm(i) + onep333*g
101 ssp(i) = sqrt(abs(dpdm(i))/rho0(i))
107 aj2(i)= half*(t1(i)**2+t2(i)**2+t3(i)**2)+t4(i)**2+t5(i)**2+t6(i)**2
113 i3(i) = t2(i)*t3(i)*t1(i)-t2(i)*t6(i)*t6(i)-t3(i)*t4(i)*t4(i)-t5(i)*t5(i)*t1(i)+2*t5(i)*t4(i)*t6(i)
114 sqrt_j2 = sqrt(aj2(i))
115 cos3t(i) = nine*i3(i)/two/sqrt(three)/sqrt_j2/sqrt_j2/sqrt_j2
116 theta = acos(
max(zero,
min(one,cos3t(i))))
117 ptot = pnew(i)+psh(i)
118 g0(i) = -ptot*sin(phi)+sqrt_j2*(cos(theta)-k*sin(theta)*sin(phi))-c*cos(phi)
119 g0(i) =
max(zero,g0(i))
120 IF(ptot <= pmin) g0(i) = zero
121 yield2(i)= aj2(i)-g0(i)
126 ptot = pnew(i)+psh(i)
127 g0(i) = a0 +a1 *ptot+a2 *ptot*ptot
128 g0(i) =
min(amax,g0(i))
129 g0(i) =
max(zero,g0(i))
130 IF(ptot <= pmin) g0(i) = zero
131 IF(ptot <= pstar)g0(i)=zero
132 yield2(i)=aj2(i)-g0(i)
141 IF(yield2(i)<=zero .AND. g0(i)>zero)
THEN
144 ratio(i)=sqrt(g0(i)/(aj2(i)+ em14))
151 signxx(i)=ratio(i)*t1(i)*off(i) - pnew(i)
152 signyy(i)=ratio(i)*t2(i)*off(i) - pnew(i)
153 signzz(i)=ratio(i)*t3(i)*off(i) - pnew(i)
154 signxy(i)=ratio(i)*t4(i)*off(i)
155 signyz(i)=ratio(i)*t5(i)*off(i)
156 signzx(i)=ratio(i)*t6(i)*off(i)
157 dpla(i) =(one -ratio(i))*sqrt(aj2(i)) /
max(em20,three*g)
159 pla(1:nel) = pla(1:nel) + dpla(1:nel)
subroutine mulaw(lft, llt, nft, mtn, jcvt, pm, off, sig, eint, rho, vol, strain, gama, uvar, bufmat, tf, npf, imat, ngl, nuvar, nvartmp, vartmp, geo, pid, epsd, wxx, wyy, wzz, jsph, ssp, voln, vis, d1, d2, d3, d4, d5, d6, dvol, sold1, sold2, sold3, sold4, sold5, sold6, rx, ry, rz, sx, sy, sz, tx, ty, tz, ismstr, mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz, ipm, isorth, nel, matparam)
subroutine sigeps102(nel, nuparam, uparam, rho0, rho, depsxx, depsyy, depszz, depsxy, depsyz, depszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, off, psh, pnew, dpdm, ssp, pla, pmin)