33 . NEL ,EINT ,THK ,TEMPEL ,FHEAT ,
34 . OFF ,SIGY ,DT1 ,IPLA ,SIGKSI ,
35 . VOL ,GS ,THKLYL ,ETSE ,G_IMP ,
36 . DPLA ,TSTAR ,JTHE ,HARDM ,EPCHK ,
37 . NPTT ,PLA ,OFF_OLD ,LOFF ,IOFF_DUCT,
38 . SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
39 . SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
40 . DEPSXX ,DEPSYY ,DEPSXY ,DEPSYZ ,DEPSZX ,
41 . EPSPXX ,EPSPYY ,EPSPXY ,EPSD_PG ,EPSD ,
42 . ASRATE ,SIGBAKXX ,SIGBAKYY ,SIGBAKXY ,
51#include "implicit_f.inc"
59 INTEGER ,
INTENT(IN) :: NEL,IPLA,JTHE,NPTT,INLOC
61 my_real ,
INTENT(IN) :: ASRATE
62 my_real ,
INTENT(IN) :: DT1
63 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: LOFF
64 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: EPSD_PG
65 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: EPSPXX,EPSPYY,EPSPXY
66 my_real ,
DIMENSION(NEL) :: OFF,SIGY,VOL,GS,THK,TSTAR,DPLA,PLA,THKLYL,DPLANL
67 my_real :: EINT(NEL,2),SIGKSI(MVSIZ,5)
68 my_real,
DIMENSION(MVSIZ) ,
INTENT(IN) :: DEPSXX,DEPSYY,DEPSXY,DEPSYZ,DEPSZX
69 my_real,
DIMENSION(MVSIZ) ,
INTENT(INOUT) :: HARDM,G_IMP,EPCHK,OFF_OLD,ETSE
70 my_real,
DIMENSION(NEL) ,
INTENT(IN) :: sigoxx,sigoyy,sigoxy,sigoyz,sigozx
71 my_real,
DIMENSION(NEL) ,
INTENT(INOUT) :: sigbakxx,sigbakyy,sigbakxy
72 my_real,
DIMENSION(NEL) ,
INTENT(INOUT) :: signxx,signyy,signxy,signyz,signzx
73 my_real,
DIMENSION(NEL) ,
INTENT(INOUT) :: tempel
74 my_real,
DIMENSION(NEL) ,
INTENT(INOUT) :: fheat
75 my_real,
DIMENSION(NEL) ,
INTENT(INOUT) :: epsd
76 type (matparam_struct_) ,
intent(in) :: mat_param
80 INTEGER :: I,ICC,IFORM,ISRATE,VP
81 my_real :: epmx,ca,cb,cn,cc,m_exp,young,g,a11,a12,nu,rhocp,tref,tmelt
82 my_real :: dav,deve1,deve2,deve3,deve4,z3,z4,fisokin
83 my_real :: yld(mvsiz),epsdot(mvsiz),ezz(mvsiz)
90 iform = mat_param%iparam(1)
91 icc = mat_param%iparam(2)
92 vp = mat_param%iparam(3)
93 israte = mat_param%iparam(4)
95 young = mat_param%young
98 a11 = young / (one - nu**2)
101 ca = mat_param%uparam(1)
102 cb = mat_param%uparam(2)
103 cn = mat_param%uparam(3)
104 epmx = mat_param%uparam(4)
105 ymax = mat_param%uparam(5)
106 cc = mat_param%uparam(6)
107 epdr = mat_param%uparam(7)
108 epdr =
max(epdr*dt1, em20)
109 fisokin= mat_param%uparam(8)
111 tref = mat_param%therm%tref
112 tmelt = mat_param%therm%tmelt
113 rhocp = mat_param%therm%rhocp
116 z3 = mat_param%uparam(10)
117 z4 = mat_param%uparam(11)
122 m_exp = mat_param%uparam(10)
124 tstar(i) =
max( zero, (tempel(i)-tref)/(tmelt-tref) )
134 epsdot(i) = epsd(i)*dt1
137 ELSEIF (vp == 2)
THEN
139 epsd(i) = asrate*epsd_pg(i) + (one-asrate)*epsd(i)
140 epsdot(i) = epsd(i) * dt1
145 ELSEIF (vp == 3)
THEN
147 dav = (epspxx(i)+epspyy(i))*third
148 deve1 = epspxx(i) - dav
149 deve2 = epspyy(i) - dav
151 deve4 = half*epspxy(i)
152 epsdot(i) = half*(deve1**2 + deve2**2 + deve3**2) + deve4**2
153 epsdot(i) = sqrt(three*epsdot(i))/three_half
155 epsdot(i) = asrate*epsdot(i) + (one - asrate)*epsd(i)
158 epsdot(i) = epsdot(i)*dt1
164 CALL m2cplr(nel ,ezz ,off_old ,pla ,
165 2 ipla ,tempel ,z3 ,z4 ,m_exp ,
166 3 iform ,etse ,gs ,epsdot ,vp ,
167 4 israte ,yld ,g ,a11 ,a12 ,
168 5 nu ,ca ,cb ,cn ,
ymax ,
169 6 epchk ,young ,cc ,epdr ,icc ,
170 7 dpla ,tstar ,fisokin ,g_imp ,sigksi ,
171 8 hardm ,depsxx ,depsyy ,depsxy ,
172 9 depsyz ,depszx ,signxx ,signyy ,signxy ,
173 a signyz ,signzx ,sigbakxx,sigbakyy,sigbakxy,
174 b sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx )
181 epsdot(i) = dpla(i)/
max
182 epsd(i) = asrate*epsdot(i) + (one - asrate)*epsd(i)
187 sigy(i) = sigy(i) + yld(i)/nptt
193 IF (off(i) == off_old(i) .and. off(i) > zero)
THEN
194 IF (off(i) == one .and. epchk(i) >= epmx)
THEN
197 ELSE IF (off(i) < one )
THEN
198 off(i) = off(i)*four_over_5
208 ezz(i) = -nu*(signxx(i)-sigoxx(i)+signyy(i)-sigoyy(i))/young
209 ezz(i) = ezz(i) -
max(dplanl(i),zero)*half*(signxx(i)+signyy(i))/yld(i)
212 ezz(i) = -(depsxx(i)+depsyy(i))*nu-(one - two*nu)*ezz(i)
213 ezz(i) = ezz(i)/(one-nu)
215 thk(i) = thk(i) + ezz(i) * thklyl(i)*off(i)
223 fheat(i) = fheat(i) + sigy(i)*dpla(i)*vol(i) * mat_param%THERM%EFRAC
225 ELSEIF (rhocp > zero)
THEN
227 tempel(i) = tempel(i) + sigy(i)*dpla(i) / rhocp
subroutine m2cplr(nel, ezz, off, pla, ipla, temp, c3, c4, m_exp, iform, etse, gs, epsp, vp, israte, yld, g, a1, a2, nu, ca0, cb0, cn, ymax0, epchk, young, cc, epdr, icc, dpla, tstar, fisokin, gama_imp, signor, hardm, depsxx, depsyy, depsxy, depsyz, depszx, signxx, signyy, signxy, signyz, signzx, sigbakxx, sigbakyy, sigbakxy, sigoxx, sigoyy, sigoxy, sigoyz, sigozx)
subroutine sigeps02c(mat_param, nel, eint, thk, tempel, fheat, off, sigy, dt1, ipla, sigksi, vol, gs, thklyl, etse, g_imp, dpla, tstar, jthe, hardm, epchk, nptt, pla, off_old, loff, ioff_duct, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, depsxx, depsyy, depsxy, depsyz, depszx, epspxx, epspyy, epspxy, epsd_pg, epsd, asrate, sigbakxx, sigbakyy, sigbakxy, inloc, dplanl)