46
47
48
49#include "implicit_f.inc"
50
51
52
53#include "mvsiz_p.inc"
54
55
56
57#include "param_c.inc"
58
59
60
61 INTEGER JFT,JLT,NEL,ISMSTR,NUVAR, IPM(NPROPMI,*),MAT(NEL),NGL(*)
62
64 . uparam(*),uvar(nel,nuvar)
66 . time
68 . depsxx(nel),depsyy(nel),depszz(nel),
69 . depsxy(nel),depsyz(nel),depszx(nel),
70 . depbxx(nel),depbyy(nel),depbxy(nel),
71 . deppxz(nel),deppyz(nel),
72 . sigoxx(nel),sigoyy(nel),sigozz(nel),
73 . sigoxy(nel),sigoyz(nel),sigozx(nel),
74 . momoxx(nel),momoyy(nel),momoxy(nel),
75 . momopxz(nel),momopyz(nel),
76 .
area(nel),thk(nel),thk0(nel),rho0(nel),dt_inv(nel),aldt(mvsiz),
77 . vol0(mvsiz),pla(nel),degmb(mvsiz),degfx(mvsiz),ezzavg(mvsiz),
78 . areapinch(mvsiz)
79
80
81
83 . signxx(nel),signyy(nel),signzz(nel),
84 . signxy(nel),signyz(nel),signzx(nel),
85 . momnxx(nel),momnyy(nel),momnxy(nel),
86 . momnpxz(nel),momnpyz(nel),
87 . ssp(nel),rho(nel)
88
89
90
91 INTEGER I,MX,J,IADBUF
92
94 . pa1,pa2,pa3,pa4,pa5,
95 . e,nu,g,gs,sigy,hm,sigy0,
96 . ms,fs,d1,d2,d3,c1,c2,c3,
97 . aaa,bbb,ccc,p,bulk
99 . vol(mvsiz),spheps(mvsiz),
100 . devdepsxx(mvsiz),devdepsyy(mvsiz),devdepszz(mvsiz),
101 . devdepsxy(mvsiz),devdepsyz(mvsiz),devdepsxz(mvsiz),
102 . b1(mvsiz),b2(mvsiz),b3(mvsiz),b4(mvsiz),b5(mvsiz),
103 . thk08(mvsiz),viscmx(mvsiz),thkx(mvsiz),mu(mvsiz),
104 . svonm(mvsiz),crit(mvsiz),sphsig(mvsiz),magdev(mvsiz),invmagdev(mvsiz),
105 . devsxx(mvsiz),devsyy(mvsiz),devszz(mvsiz),
106 . devsxy(mvsiz),devsyz(mvsiz),devszx(mvsiz),
107 . n1(mvsiz),n2(mvsiz),n3(mvsiz),n4(mvsiz),n5(mvsiz),n6(mvsiz),
108 . rr(mvsiz),unsyeq(mvsiz),hh(mvsiz),etse(mvsiz),
109 . degsh_loc(mvsiz),degmb_loc(mvsiz),degfx_loc(mvsiz),dwelm(mvsiz),
110 . dwelf(mvsiz),dwpla(mvsiz),dpla(mvsiz),
111 . sdevxx(mvsiz),sdevyy(mvsiz),sdevzz(mvsiz),
112 . signdevxx(mvsiz),signdevyy(mvsiz),signdevzz(mvsiz),pnew(mvsiz),ptrial(mvsiz),
113 . pold(mvsiz),sigodevxx(mvsiz),sigodevyy(mvsiz),sigodevzz(mvsiz),dd(mvsiz)
114
115
116
117 IF (time == zero) THEN
118 DO i=1,nel
119 uvar(i,1) = areapinch(i)*thk(i)
120 uvar(i,2) = thk(i)
121 ENDDO
122 ENDIF
123
124 mx = mat(1)
125 iadbuf = ipm(7,mx)
126 e = uparam(iadbuf)
127 nu = uparam(iadbuf+1)
128 sigy0 = uparam(iadbuf+2)
129 hm = uparam(iadbuf+3)
130 g = half*e/(one+nu)
131 gs = 5.d0/6.d0*g
132 bulk = e/(three*(one-two*nu))
133
134 pa1 = e*(one-nu)/(one+nu)/(one-two*nu)
135 pa2 = e*nu/(one+nu)/(one-two*nu)
136 pa3 = g
137 pa4 = (one+nu)*(one-two*nu)/(one-nu**2)/(one-nu)*pa1
138 pa5 = (one+nu)*(one-two*nu)/(one-nu**2)*pa2
139
140 c1 = one/e
141 c2 = -nu*c1
142 c3 = one/g
143
144 DO i=1,nel
145 thk08(i)= thk0(i)*one_over_12
146 b1(i) = pa1*thk08(i)
147 b2(i) = pa2*thk08(i)
148 b3(i) = pa3*thk08(i)
149 b4(i) = pa4*thk08(i)
150 b5(i) = pa5*thk08(i)
151 ENDDO
152
153 DO i=1,nel
154
155 thkx(i) = uvar(i,2)*(1+half*ezzavg(i))/(1-half*ezzavg(i))
156
157 uvar(i,2) = thkx(i)
158 vol(i) = areapinch(i)*thkx(i)
159 rho(i) = uvar(i,1)*rho0(i)/vol(i)
160 mu(i) = rho(i)/rho0(i)-one
161 pnew(i) = bulk*mu(i)
162
163 ENDDO
164
165
166 DO i=jft,jlt
167
168 degsh_loc(i) = sigoyz(i)*depsyz(i)+sigozx(i)*depszx(i)
169
170 degmb_loc(i) = degmb(i) - degsh_loc(i)
171
172 degfx_loc(i) = degfx(i)
173
174 pold(i) = -third*(sigoxx(i)+sigoyy(i)+sigozz(i))
175 sigodevxx(i) = sigoxx(i)+pold(i)
176 sigodevyy(i) = sigoyy(i)+pold(i)
177 sigodevzz(i) = sigozz(i)+pold(i)
178
179 dd(i) = third*(depsxx(i)+depsyy(i)+depszz(i))
180
181 signdevxx(i)=sigodevxx(i)+two*g*(depsxx(i)-dd(i))
182 signdevyy(i)=sigodevyy(i)+two*g*(depsyy(i)-dd(i))
183 signdevzz(i)=sigodevzz(i)+two*g*(depszz(i)-dd(i))
184
185 signxy(i)=sigoxy(i)+g*depsxy(i)
186 signyz(i)=sigoyz(i)+gs*(depsyz(i)+zero*deppyz(i))
187 signzx(i)=sigozx(i)+gs*(depszx(i)+zero*deppxz(i))
188
189 momnxx(i)=momoxx(i)+b4(i)*depbxx(i)+b5(i)*depbyy(i)
190 momnyy(i)=momoyy(i)+b5(i)*depbxx(i)+b4(i)*depbyy(i)
191 momnxy(i)=momoxy(i)+b3(i)*depbxy(i)
192 momnpxz(i)=momopxz(i)+b3(i)*deppxz(i)
193 momnpyz(i)=momopyz(i)+b3(i)*deppyz(i)
194
195 ssp(i) = sqrt(pa1/rho0(i))
196
197
198
199
200
201
202 ENDDO
203
204 DO i=jft,jlt
205 ms = momnxx(i)+momnyy(i)
206
207 unsyeq(i) = one/
208 . sqrt(
max(sixteen*(ms*ms + three*(momnxy(i)*momnxy(i) - momnxx(i)*momnyy(i)))
209 . +three*half*(signdevxx(i)**2+signdevyy(i)**2+signdevzz(i)**2+two*signxy(i)**2),em20))
210 sigy = sigy0 + hm*pla(i)
211 rr(i) =
min(one,sigy*unsyeq(i))
212 ENDDO
213
214 DO i=jft,jlt
215 IF (rr(i) < one) THEN
216 hh(i) = zero
217 etse(i) = zero
218 ENDIF
219 ENDDO
220
221 DO i=jft,jlt
222
223 signxx(i) = signdevxx(i)*rr(i)-pnew(i)
224 signyy(i) = signdevyy(i)*rr(i)-pnew(i)
225 signxy(i) = signxy(i)*rr(i)
226 signzz(i) = signdevzz(i)*rr(i)-pnew(i)
227
228 d1 = signxx(i)-sigoxx(i)
229 d2 = signyy(i)-sigoyy(i)
230 d3 = signzz(i)-sigozz(i)
231
232 dwelm(i) = (signxx(i)+sigoxx(i))*(c1*d1+c2*d2+c2*d3)+
233 . (signyy(i)+sigoyy(i))*(c2*d1+c1*d2+c2*d3)+
234 . (signzz(i)+sigozz(i))*(c2*d1+c2*d2+c1*d3)+
235 . (signxy(i)+sigoxy(i))*(c3*(signxy(i)-sigoxy(i)))
236 degmb_loc(i) = degmb_loc(i)+signxx(i)*depsxx(i)+signyy(i)*depsyy(i)
237 . +signzz(i)*depszz(i)
238 . +signxy(i)*depsxy(i)
239
240 momnxx(i) = momnxx(i)*rr(i)
241 momnyy(i) = momnyy(i)*rr(i)
242 momnxy(i) = momnxy(i)*rr(i)
243 d1 = momnxx(i)-momoxx(i)
244 d2 = momnyy(i)-momoyy(i)
245 dwelf(i) = twelve*(
246 . (momnxx(i)+momoxx(i))*(c1*d1+c2*d2)
247 . +(momnyy(i)+momoyy(i))*(c2*d1+c1*d2)
248 . +(momnxy(i)+momoxy(i))*(c3*(momnxy(i)-momoxy(i))) )
249 degfx_loc(i) = degfx_loc(i)+ momnxx(i)*depbxx(i)+momnyy(i)*depbyy(i)
250 . +momnxy(i)*depbxy(i)
251
252 ENDDO
253
254 DO i=jft,jlt
255 dwpla(i) = degmb_loc(i)+degfx_loc(i
256 ENDDO
257
258 DO i=jft,jlt
259 dpla(i) =
max(zero,half*dwpla(i)/sigy)
260 pla(i) = pla(i) + dpla(i)
261 ENDDO
262 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)