31 1 NEL , NUPARAM, NUVAR , NFUNC , IFUNC , NPF ,
32 2 TF , TIME , TIMESTEP, UPARAM, RHO0 , RHO ,
34 4 EPSPXX , EPSPYY , EPSPZZ , EPSPXY, EPSPYZ, EPSPZX,
35 5 DEPSXX , DEPSYY , DEPSZZ , DEPSXY, DEPSYZ, DEPSZX,
36 6 EPSXX , EPSYY , EPSZZ , EPSXY , EPSYZ , EPSZX ,
37 7 SIGOXX , SIGOYY , SIGOZZ , SIGOXY, SIGOYZ, SIGOZX,
38 8 SIGNXX , SIGNYY , SIGNZZ , SIGNXY, SIGNYZ, SIGNZX,
39 9 SIGVXX , SIGVYY , SIGVZZ , SIGVXY, SIGVYZ, SIGVZX,
40 A SOUNDSP, VISCMAX, UVAR , OFF )
45#include "implicit_f.inc"
56 INTEGER NEL, NUPARAM, NUVAR
59 . TIME , TIMESTEP , UPARAM(NUPARAM),
60 . RHO (NEL), RHO0 (NEL), VOLUME(NEL), EINT(NEL),
61 . (NEL), EPSPYY(NEL), EPSPZZ(NEL),
62 . EPSPXY(NEL), EPSPYZ(NEL), EPSPZX(NEL),
63 . (NEL), DEPSYY(NEL), DEPSZZ(NEL),
64 . DEPSXY(NEL), DEPSYZ(NEL), DEPSZX(NEL),
65 . EPSXX (NEL), EPSYY (NEL), EPSZZ (NEL),
66 . epsxy(nel), epsyz(nel), epszx(nel),
67 . sigoxx(nel), sigoyy(nel), sigozz(nel),
68 . sigoxy(nel), sigoyz(nel), sigozx(nel)
73 . signxx(nel), signyy(nel), signzz(nel),
74 . signxy(nel), signyz(nel), signzx(nel),
75 . sigvxx(nel), sigvyy(nel), sigvzz(nel),
76 . sigvxy(nel), sigvyz(nel), sigvzx(nel),
77 . soundsp(nel), viscmax(nel)
81 my_real uvar(nel,nuvar), off(nel)
85 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
92 INTEGER I,J,KF,IFLAG,ICORRECT
95 . e,poisson,a,b,et,poissont,fac
99 . vmu,vlamda,vmu2,vlamda3
101 . c1,c2,c3,pmin,dpdmu
105 . enew(mvsiz),edot(mvsiz),dedot(mvsiz)
107 . dpdgama(mvsiz),gama(mvsiz),amu(mvsiz)
109 . sm(mvsiz),em(mvsiz),dedm(mvsiz)
111 . g2(mvsiz),bulk(mvsiz),bulk3(mvsiz)
113 . dsxx(mvsiz),dsyy(mvsiz),dszz(mvsiz)
115 . dsxy(mvsiz),dsyz(mvsiz),dszx(mvsiz)
117 . dexx(mvsiz),deyy(mvsiz),dezz(mvsiz)
119 . dexy(mvsiz),deyz(mvsiz),dezx(mvsiz)
121 . dedxx(mvsiz),dedyy(mvsiz),dedzz(mvsiz)
123 . dedxy(mvsiz),dedyz(mvsiz),dedzx(mvsiz)
125 . dsdxx(mvsiz),dsdyy(mvsiz),dsdzz(mvsiz)
127 . dsdxy(mvsiz),dsdyz(mvsiz),dsdzx(mvsiz)
129 . dpdro(mvsiz),p(mvsiz),pdelt(mvsiz),relvol(mvsiz)
134 . small,tiny , aux1, aux2,
156 vlamda3 = uparam(8)*three
174 gt2 = et/(one+poissont)
175 bulkt3 = et/(one-two*poissont)
179 epsxx(i)=epsxx(i)-half*depsxx(i)
180 epsyy(i)=epsyy(i)-half*depsyy(i)
181 epszz(i)=epszz(i)-half*depszz(i)
182 epsxy(i)=epsxy(i)-half*depsxy(i)
183 epsyz(i)=epsyz(i)-half*depsyz(i)
184 epszx(i)=epszx(i)-half*depszx(i)
188 gama(i) = (rho0(i)/rho(i)-one+gama0)
189 IF(one+gama(i)-phi<=small) gama(i)=-(one-phi-small)
190 sm(i)=third*(sigoxx(i)+sigoyy(i)+sigozz(i))+uvar(i,1)
191 em(i)=third*(epsxx(i)+epsyy(i)+epszz(i))
192 dedm(i)=third*(depsxx(i)+depsyy(i)+depszz(i))
193 sigair(i)=
max(zero,-(p0*gama(i))/(one+gama(i)-phi))
198 dsxx(i)=sigoxx(i)-sm(i)+uvar(i,1)
199 dsyy(i)=sigoyy(i)-sm(i)+uvar(i,1)
200 dszz(i)=sigozz(i)-sm(i)+uvar(i,1)
206 dexx(i)=epsxx(i)-em(i)
207 deyy(i)=epsyy(i)-em(i)
208 dezz(i)=epszz(i)-em(i)
209 dexy(i)=epsxy(i)* half
210 deyz(i)=epsyz(i)* half
211 dezx(i)=epszx(i)* half
222 dedxx(i)=depsxx(i)-dedm(i)
223 dedyy(i)=depsyy(i)-dedm(i)
224 dedzz(i)=depszz(i)-dedm(i)
225 dedxy(i)=depsxy(i)*half
226 dedyz(i)=depsyz(i)*half
227 dedzx(i)=depszx(i)*half
231 relvol(i)=rho0(i)/rho(i)
237 enew(i)=(
max(e,a*edot(i)+b))/relvol(i)*
240 aux1 = one / (one+poisson)
241 aux2 = one / (one-two*poisson)
244 bulk3(i)=enew(i)*aux2
251 & -(g2(i)+gt2)*dsxx(i)+g2(i)*gt2*dexx(i)
252 dsdyy(i)=vmu2*g2(i)*dedyy(i)
253 & -(g2(i)+gt2)*dsyy(i)+g2(i)*gt2*deyy(i)
254 dsdzz(i)=vmu2*g2(i)*dedzz(i)
255 & -(g2(i)+gt2)*dszz(i)+g2(i)*gt2*dezz(i)
256 dsdxy(i)=vmu2*g2(i)*dedxy(i)
257 & -(g2(i)+gt2)*dsxy(i)+g2(i)*gt2*dexy(i)
258 dsdyz(i)=vmu2*g2(i)*dedyz(i)
259 & -(g2(i)+gt2)*dsyz(i)+g2(i)*gt2*deyz(i)
260 dsdzx(i)=vmu2*g2(i)*dedzx(i)
261 & -(g2(i)+gt2)*dszx(i)+g2(i)*gt2*dezx(i)
264 midstep =one/(vmu2+half*(g2(i)+gt2))
265 dsdxx(i)=dsdxx(i)*midstep
266 dsdyy(i)=dsdyy(i)*midstep
267 dsdzz(i)=dsdzz(i)*midstep
268 dsdxy(i)=dsdxy(i)*midstep
269 dsdyz(i)=dsdyz(i)*midstep
270 dsdzx(i)=dsdzx(i)*midstep
277 amu(i)=rho(i)/rho0(i)-one
279 p(i)=-fac*finter(kf,amu(i),npf,tf,dpdmu)
281 pdelt(i)=( c1*(bulk3(i)*dedm(i))*(vlamda3+vmu2)+
282 & (-c2*((bulk3(i)+bulkt3)*sm(i))
283 & +c3*((bulk3(i)*bulkt3)*em(i))))
284 & / ((vlamda3+vmu2)+c2*(bulk3(i)+bulkt3)*half)
286 & -fac*finter(kf,amu(i),npf,tf,dpdmu)
289 pdelt(i)=( c1*(bulk3(i)*dedm(i))*(vlamda3+vmu2)+
290 & (-c2*((bulk3(i)+bulkt3)*sm(i))
291 & +c3*((bulk3(i)*bulkt3)*em(i))))
292 & / ((vlamda3+vmu2)+c2*(bulk3(i)+bulkt3)*half)
295 IF(p(i)<=pmin) p(i)=pmin
300 dpdro(i)=two_third*g2(i)+third*(bulk3(i)
301 & +p0*(one-phi)/(one+gama(i)-phi)**two)
305 soundsp(i)=sqrt(dpdro(i)/rho0(i))
310 signxx(i)=dsxx(i)+dsdxx(i)+p(i)-sigair(i)
311 signyy(i)=dsyy(i)+dsdyy(i)+p(i)-sigair(i)
312 signzz(i)=dszz(i)+dsdzz(i)+p(i)-sigair(i)
313 signxy(i)=dsxy(i)+dsdxy(i)
314 signyz(i)=dsyz(i)+dsdyz(i)
subroutine sigeps35(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, timestep, uparam, rho0, rho, volume, eint, epspxx, epspyy, epspzz, epspxy, epspyz, epspzx, depsxx, depsyy, depszz, depsxy, depsyz, depszx, epsxx, epsyy, epszz, epsxy, epsyz, epszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, sigvxx, sigvyy, sigvzz, sigvxy, sigvyz, sigvzx, soundsp, viscmax, uvar, off)