31 1 NEL ,NUPARAM,NUVAR ,NFUNC ,IFUNC ,
32 2 NPF ,NPT ,IPT ,IFLA ,
33 2 TF ,TIME ,TIMESTEP,UPARAM ,RHO0 ,
35 4 EPSPXX ,EPSPYY ,EPSPXY ,EPSPYZ ,EPSPZX ,
36 5 DEPSXX ,DEPSYY ,DEPSXY ,DEPSYZ ,DEPSZX ,
37 6 EPSXX ,EPSYY ,EPSXY ,EPSYZ ,EPSZX ,
38 7 SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
39 8 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
40 9 SIGVXX ,SIGVYY ,SIGVXY ,SIGVYZ ,SIGVZX ,
41 A SOUNDSP,VISCMAX,THK ,UVAR ,OFF ,
42 B NGL ,SHF ,ETSE ,ISRATE ,ASRATE ,
47#include "implicit_f.inc"
55 INTEGER NEL,NPT,IPT,IFLA,NUPARAM, NUVAR,NGL(NEL),ISRATE
58 . TIME , TIMESTEP , UPARAM(NUPARAM),
59 . RHO0 (NEL), EINT(NEL,2),
60 . EPSPXX(NEL), EPSPYY(NEL),SHF(NEL),
61 . EPSPXY(NEL), EPSPYZ(NEL), EPSPZX(NEL),
62 . DEPSXX(NEL), DEPSYY(NEL),
63 . DEPSXY(NEL), DEPSYZ(NEL), DEPSZX(NEL),
64 . EPSXX (NEL), EPSYY (NEL),
65 . EPSXY (NEL), EPSYZ (NEL), EPSZX (NEL),
66 . SIGOXX(NEL), SIGOYY(NEL),
67 . SIGOXY(NEL), SIGOYZ(NEL), SIGOZX(NEL),
68 . thkly(nel) ,thk(nel),
area(nel),
74 . signxx(nel), signyy(nel),
75 . signxy(nel), signyz(nel), signzx(nel),
76 . sigvxx(nel), sigvyy(nel),
77 . sigvxy(nel), sigvyz(nel), sigvzx(nel),
78 . soundsp(nel), viscmax(nel),etse(nel)
82 my_real uvar(nel,nuvar), off(nel)
83 my_real ,
INTENT(INOUT) :: epsd(nel)
87 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
94 INTEGER I,KF,IFLAG,ICORRECT
97 . poisson,e,e1,e2,g02,
100 . c1,c2,c3,pmin,dpdmu,epspc,
101 . p0,phi,gama0, var,epsp,
102 . gama(mvsiz),amu(mvsiz),
103 . sm(mvsiz),em(mvsiz),dedtm(mvsiz),
104 . g2(mvsiz),bulk(mvsiz),
105 . dsxx(mvsiz),dsyy(mvsiz),dsxy(mvsiz),
106 . dexx(mvsiz),deyy(mvsiz),dezz,
107 . dexy(mvsiz),epspzz(mvsiz),epszz(mvsiz),
108 . dedtxx(mvsiz),dedtyy(mvsiz),dedtxy(mvsiz),
109 . dsdtxx(mvsiz),dsdtyy(mvsiz),dsdtxy(mvsiz),
110 . dpdro(mvsiz),p(mvsiz),pdot(mvsiz),
111 . mg2(mvsiz),pg2(mvsiz),mk(mvsiz),pk(mvsiz),
112 . sigair(mvsiz),relvol(mvsiz),enew(mvsiz),
116 . ssm,epsm,epspm,small,cshear,midstep,dt05
121 IF (time == zero)
THEN
123 uvar(i,3) =
area(i)*thk(i)
130 g02 = half*e/(1+poisson)
133 gt2 = uparam(5)/(one+uparam(6))
134 bulkt = uparam(5)/(one-two*uparam(6))
136 vbulk = three*uparam(8)+vmu2
153 IF(nuparam>=19) icorrect=nint(uparam(19))
155 IF(icorrect == 0)
THEN
162 epsxx(i)=epsxx(i)-dt05*epspxx(i)
163 epsyy(i)=epsyy(i)-dt05*epspyy(i)
164 epsxy(i)=epsxy(i)-dt05*epspxy(i)
165 epsyz(i)=epsyz(i)-dt05*epspyz(i)
166 epszx(i)=epszx(i)-dt05*epspzx(i)
171 epspm = epspxx(i)+epspyy(i)
172 epspc = epspxx(i)-epspyy(i)
173 epsp = sqrt(half*(epspc*epspc+epspxx(i)*epspxx(i)
174 1 + epspyy(i)*epspyy(i)) +three_half* (epspxy(i)*epspxy(i)
175 2 + epspyz(i)*epspyz(i)+epspzx(i)*epspzx(i)))
177 epsd(i) = asrate*epsp + (one - asrate)*uvar(i,4)
184 rho(i)=uvar(i,3)*rho0(i)/
area(i)/thk(i)
185 relvol(i)=rho0(i)/rho(i)
186 enew(i)=(
max(e,e1*epsp+e2))/(exp(relvexp*log(relvol(i))))
187 g2(i)=enew(i)/(one+poisson)
188 bulk(i)=enew(i)/(one-two*poisson)
189 mk(i) = (bulk(i)+bulkt)/vbulk
190 pk(i) = bulk(i)*bulkt/vbulk
191 mg2(i) = (g2(i)+gt2)/vmu2
192 pg2(i) = g2(i)*gt2/vmu2
193 gama(i) = (relvol(i)-one+gama0)
194 IF(one+gama(i)-phi<=small) gama(i)=-(one-phi-small)
195 ssm=sigoxx(i)+sigoyy(i)
197 epsm =epsxx(i)+epsyy(i)
198 var=two*pg2(i)+c3*pk(i)
199 epspzz(i)=((g2(i)-c1*bulk(i))*epspm-(mg2(i)-c2*mk(i))*ssm
200 1 +(pg2(i)-c3*pk(i))*epsm-var*uvar(i,2))
201 2 /(g2(i)+c1*bulk(i)+g2(i)+var*timestep)
202 dezz=epspzz(i)*timestep
203 epszz(i)=uvar(i,2)+dezz
205 thk(i) = thk(i) + dezz*thkly(i)*off(i)
206 em(i)=third*(epsm+epszz(i))
207 dedtm(i)=third*(epspm+epspzz(i))
208 sigair(i)=
max(zero,-(p0*gama(i))/(1+gama(i)-phi))
214 dsxx(i)=sigoxx(i)-sm(i)
215 dsyy(i)=sigoyy(i)-sm(i)
219 dexx(i)=epsxx(i)-em(i)
224 dedtxx(i)=epspxx(i)-dedtm(i)
225 dedtyy(i)=epspyy(i)-dedtm(i)
231 dsxx(i)=sigoxx(i)-sm(i)
232 dsyy(i)=sigoyy(i)-sm(i)
236 dexx(i)=epsxx(i)-em(i)
237 deyy(i)=epsyy(i)-em(i)
238 dexy(i)=epsxy(i)*half
241 dedtxx(i)=epspxx(i)-dedtm(i)
242 dedtyy(i)=epspyy(i)-dedtm(i)
243 dedtxy(i)=epspxy(i)*half
250 dsdtxx(i)=g2(i)*dedtxx(i)-mg2(i)*dsxx(i)+pg2(i)*dexx(i)
251 dsdtyy(i)=g2(i)*dedtyy(i)-mg2(i)*dsyy(i)+pg2(i)*deyy(i)
253 midstep=one/(one+mg2(i)*dt05)
254 dsdtxx(i)=dsdtxx(i)*midstep
255 dsdtyy(i)=dsdtyy(i)*midstep
256 dsdtxy(i)=dsdtxy(i)*midstep
261 sm(i)=sm(i)+uvar(i,1)
263 amu(i)=rho(i)/rho0(i)-one
265 p(i)=-fac*finter(kf,amu(i),npf,tf,dpdmu)
267 pdot(i)=( c1*bulk(i)*dedtm(i)
270 & /(one+c2*dt05*mk(i))
271 p(i)=sm(i)+pdot(i)*timestep
272 & -fac*finter(kf,amu(i),npf,tf,dpdmu)
275 pdot(i)=( c1*bulk(i)*dedtm(i)
278 & /(one+c2*dt05*mk(i))
279 p(i)=sm(i)+pdot(i)*timestep
281 IF(p(i)<=pmin) p(i)=pmin
287 dpdro(i)= g2(i)/(one-poisson)
288 & +p0*(one-phi)/(one+gama(i)-phi)**2
292 soundsp(i)=sqrt(dpdro(i)/rho(i))
299 signxx(i)=dsxx(i)+dsdtxx(i)*timestep+p(i)
300 signyy(i)=dsyy(i)+dsdtyy(i)*timestep+p(i)
301 signxy(i)=dsxy(i)+dsdtxy(i)*timestep*0.5
302 signyz(i)=sigoyz(i)+g02*depsyz(i)*cshear
303 signzx(i)=sigozx(i)+g02*depszx(i)*cshear
309 signxx(i)=dsxx(i)+dsdtxx(i)*timestep+p(i)
310 signyy(i)=dsyy(i)+dsdtyy(i)*timestep+p(i)
311 signxy(i)=dsxy(i)+dsdtxy(i)*timestep
312 signyz(i)=sigoyz(i)+g02*depsyz(i)*cshear
313 signzx(i)=sigozx(i)+g02*depszx(i)*cshear
subroutine sigeps35c(nel, nuparam, nuvar, nfunc, ifunc, npf, npt, ipt, ifla, tf, time, timestep, uparam, rho0, area, eint, thkly, epspxx, epspyy, epspxy, epspyz, epspzx, depsxx, depsyy, depsxy, depsyz, depszx, epsxx, epsyy, epsxy, epsyz, epszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, sigvxx, sigvyy, sigvxy, sigvyz, sigvzx, soundsp, viscmax, thk, uvar, off, ngl, shf, etse, israte, asrate, epsd)