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)
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,J,KF,IFLAG,ICORRECT
97 . poisson,e,e1,e2,g02,bulk0,
98 . gt2,bulkt,lamda,lamdat,relvexp,
99 . vmu2,vlamda,vbulk,fac,
100 . c1,c2,c3,pmin,dpdmu,epspc,
101 . p0,phi,gama0, var,epsp,
102 . dpdgama(mvsiz),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,epin,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 epsp = asrate*epsp + (one - asrate)*epsd(i)
182 rho(i)=uvar(i,3)*rho0(i)/
area(i)/thk(i)
183 relvol(i)=rho0(i)/rho(i)
184 enew(i)=(
max(e,e1*epsp+e2))/(exp(relvexp*log(relvol(i))))
185 g2(i)=enew(i)/(one+poisson)
186 bulk(i)=enew(i)/(one-two*poisson)
187 mk(i) = (bulk(i)+bulkt)/vbulk
188 pk(i) = bulk(i)*bulkt/vbulk
189 mg2(i) = (g2(i)+gt2)/vmu2
190 pg2(i) = g2(i)*gt2/vmu2
191 gama(i) = (relvol(i)-one+gama0)
192 IF(one+gama(i)-phi<=small) gama(i)=-(one-phi-small)
193 ssm=sigoxx(i)+sigoyy(i)
195 epsm =epsxx(i)+epsyy(i)
196 var=two*pg2(i)+c3*pk(i)
197 epspzz(i)=((g2(i)-c1*bulk(i))*epspm-(mg2(i)-c2*mk(i))*ssm
198 1 +(pg2(i)-c3*pk(i))*epsm-var*uvar(i,2))
199 2 /(g2(i)+c1*bulk(i)+g2(i)+var*timestep)
200 dezz=epspzz(i)*timestep
201 epszz(i)=uvar(i,2)+dezz
203 thk(i) = thk(i) + dezz*thkly(i)*off(i)
204 em(i)=third*(epsm+epszz(i))
205 dedtm(i)=third*(epspm+epspzz(i))
206 sigair(i)=
max(zero,-(p0*gama(i))/(1+gama(i)-phi))
212 dsxx(i)=sigoxx(i)-sm(i)
213 dsyy(i)=sigoyy(i)-sm(i)
217 dexx(i)=epsxx(i)-em(i)
218 deyy(i)=epsyy(i)-em(i)
222 dedtxx(i)=epspxx(i)-dedtm(i)
223 dedtyy(i)=epspyy(i)-dedtm(i)
229 dsxx(i)=sigoxx(i)-sm(i)
230 dsyy(i)=sigoyy(i)-sm(i)
234 dexx(i)=epsxx(i)-em(i)
235 deyy(i)=epsyy(i)-em(i)
236 dexy(i)=epsxy(i)*half
239 dedtxx(i)=epspxx(i)-dedtm(i)
240 dedtyy(i)=epspyy(i)-dedtm(i)
241 dedtxy(i)=epspxy(i)*half
248 dsdtxx(i)=g2(i)*dedtxx(i)-mg2(i)*dsxx(i)+pg2(i)*dexx(i)
249 dsdtyy(i)=g2(i)*dedtyy(i)-mg2(i)*dsyy(i)+pg2(i)*deyy(i)
250 dsdtxy(i)=g2(i)*dedtxy(i)-mg2(i)*dsxy(i)+pg2(i)*dexy(i)
251 midstep=one/(one+mg2(i)*dt05)
252 dsdtxx(i)=dsdtxx(i)*midstep
253 dsdtyy(i)=dsdtyy(i)*midstep
254 dsdtxy(i)=dsdtxy(i)*midstep
259 sm(i)=sm(i)+uvar(i,1)
261 amu(i)=rho(i)/rho0(i)-one
263 p(i)=-fac*finter(kf,amu(i),npf,tf,dpdmu)
265 pdot(i)=( c1*bulk(i)*dedtm(i)
268 & /(one+c2*dt05*mk(i))
269 p(i)=sm(i)+pdot(i)*timestep
270 & -fac*finter(kf,amu(i),npf,tf,dpdmu)
273 pdot(i)=( c1*bulk(i)*dedtm(i)
276 & /(one+c2*dt05*mk(i))
277 p(i)=sm(i)+pdot(i)*timestep
279 IF(p(i)<=pmin) p(i)=pmin
285 dpdro(i)= g2(i)/(one-poisson)
286 & +p0*(one-phi)/(one+gama(i)-phi)**2
290 soundsp(i)=sqrt(dpdro(i)/rho(i))
297 signxx(i)=dsxx(i)+dsdtxx(i)*timestep+p(i)
298 signyy(i)=dsyy(i)+dsdtyy(i)*timestep+p(i)
299 signxy(i)=dsxy(i)+dsdtxy(i)*timestep*0.5
300 signyz(i)=sigoyz(i)+g02*depsyz(i)*cshear
301 signzx(i)=sigozx(i)+g02*depszx(i)*cshear
307 signxx(i)=dsxx(i)+dsdtxx(i)*timestep+p(i)
308 signyy(i)=dsyy(i)+dsdtyy(i)*timestep+p(i)
309 signxy(i)=dsxy(i)+dsdtxy(i)*timestep
310 signyz(i)=sigoyz(i)+g02*depsyz(i)*cshear
311 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)