46#include "implicit_f.inc"
98 INTEGER NEL, NUPARAM, NUVAR
100 . ,TIMESTEP,UPARAM(NUPARAM),
101 . RHO(NEL),RHO0(NEL),VOLUME(NEL),(NEL),
102 . EPSPXX(NEL),EPSPYY(NEL),EPSPZZ(NEL),
103 . EPSPXY(NEL),EPSPYZ(NEL),EPSPZX(NEL),
104 . DEPSXX(NEL),DEPSYY(NEL),DEPSZZ(NEL),
105 . DEPSXY(NEL),(NEL),DEPSZX(NEL),
106 . EPSXX(NEL) ,EPSYY(NEL) ,EPSZZ(NEL) ,
107 . EPSXY(NEL) ,EPSYZ() ,EPSZX(NEL) ,
108 . sigoxx(nel),sigoyy(nel),sigozz(nel),
109 . sigoxy(nel),sigoyz(nel),sigozx(nel)
114 . signxx(nel),signyy(nel),signzz(nel),
115 . signxy(nel),signyz(nel),signzx(nel),
116 . sigvxx(nel),sigvyy(nel),sigvzz(nel),
117 . sigvxy(nel),sigvyz(nel),sigvzx(nel),
118 . soundsp(nel),viscmax(nel)
123 . uvar(nel,nuvar), off(nel)
127 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
143 . AK,G0,G(5),BETA(5),
144 . EV,EDXX,EDYY,EDZZ,EDXY,EDYZ,EDZX,
145 . SXX,SYY,SZZ,SXY,SYZ,SZX,
147 . EPXX,EPYY,EPZZ,EPXY,EPYZ,EPZX,GT,
152 . eprnxx,eprnyy,eprnzz,eprnxy,eprnyz,eprnzx,
153 . evr,edrnxx,edrnyy,edrnzz,edrnxy,edrnyz,edrnzx,
154 . edrvxx,edrvyy,edrvzz,edrvxy,edrvyz,edrvzx
156 . axx,ayy,azz,axy,ayz,azx,
157 . bxx,byy,bzz,bxy,byz,bzx,
158 . aaxx,aayy,aazz,aaxy,aayz,aazx,
159 . bbxx,bbyy,bbzz,bbxy,bbyz,bbzx,
160 . ccxx,ccyy,cczz,ccxy,ccyz,cczx,
161 . evsdxx,evsdyy,evsdzz,evsdxy,evsdyz,evsdzx
193 gt = g0 + g(1) + g(2) + g(3) + g(4) + g(5)
237 ev = (epxx + epyy + epzz) * third
252 evr = (eprnxx + eprnyy + eprnzz) * third
253 edrnxx = eprnxx - evr
254 edrnyy = eprnyy - evr
255 edrnzz = eprnzz - evr
256 edrnxy = eprnxy * half
257 edrnyz = eprnyz * half
258 edrnzx = eprnzx * half
269 bxx = two * (edrnxx - edrvxx) /
max(dt,em20)
271 byy = two * (edrnyy - edrvyy) /
max(dt,em20)
273 bzz = two * (edrnzz - edrvzz) /
max(dt,em20)
275 bxy = two * (edrnxy - edrvxy) /
max(dt,em20)
277 byz = two * (edrnyz - edrvyz) /
max(dt,em20)
279 bzx = two * (edrnzx - edrvzx) /
max(dt,em20)
285 aaxx = g(j)/beta(j) * (axx - bxx/beta(j))
286 bbxx = g(j)/beta(j) * bxx
287 ccxx = sdv(k+1) - aaxx
288 evsdxx = aaxx + bbxx*dt + ccxx*exp(-beta(j)*dt)
289 aayy = g(j)/beta(j) * (ayy - byy/beta(j))
290 bbyy = g(j)/beta(j) * byy
291 ccyy = sdv(k+2) - aayy
292 evsdyy = aayy + bbyy*dt + ccyy*exp(-beta(j)*dt)
293 aazz = g(j)/beta(j) * (azz - bzz/beta(j))
294 bbzz = g(j)/beta(j) * bzz
295 cczz = sdv(k+3) - aazz
296 evsdzz = aazz + bbzz*dt + cczz*exp(-beta(j)*dt)
297 aaxy = g(j)/beta(j) * (axy - bxy/beta(j))
298 bbxy = g(j)/beta(j) * bxy
299 ccxy = sdv(k+4) - aaxy
300 evsdxy = aaxy + bbxy*dt + ccxy*exp(-beta(j)*dt)
301 aayz = g(j)/beta(j) * (ayz - byz/beta(j))
302 bbyz = g(j)/beta(j) * byz
303 ccyz = sdv(k+5) - aayz
304 evsdyz = aayz + bbyz*dt + ccyz*exp(-beta(j)*dt)
305 aazx = g(j)/beta(j) * (azx - bzx/beta(j))
306 bbzx = g(j)/beta(j) * bzx
307 cczx = sdv(k+6) - aazx
308 evsdzx = aazx + bbzx*dt + cczx*exp(-beta(j)*dt)
309 uvar(i,(k + 11)) = evsdxx
310 uvar(i,(k + 12)) = evsdyy
311 uvar(i,(k + 13)) = evsdzz
312 uvar(i,(k + 14)) = evsdxy
313 uvar(i,(k + 15)) = evsdyz
314 uvar(i,(k + 16)) = evsdzx
318 aaxx = g(j)/beta(j) * (axx - bxx/beta(j))
319 bbxx = g(j)/beta(j) * bxx
320 ccxx = sdv(k+1) - aaxx
321 evsdxx = aaxx + bbxx*dt + ccxx*exp(-beta(j)*dt)
322 aayy = g(j)/beta(j) * (ayy - byy/beta(j))
323 bbyy = g(j)/beta(j) * byy
324 ccyy = sdv(k+2) - aayy
325 evsdyy = aayy + bbyy*dt + ccyy*exp(-beta(j)*dt)
326 aazz = g(j)/beta(j) * (azz - bzz/beta(j))
327 bbzz = g(j)/beta(j) * bzz
328 cczz = sdv(k+3) - aazz
329 evsdzz = aazz + bbzz*dt + cczz*exp(-beta(j)*dt)
330 aaxy = g(j)/beta(j) * (axy - bxy/beta(j))
331 bbxy = g(j)/beta(j) * bxy
332 ccxy = sdv(k+4) - aaxy
333 evsdxy = aaxy + bbxy*dt + ccxy*exp(-beta(j)*dt)
334 aayz = g(j)/beta(j) * (ayz - byz/beta(j))
335 bbyz = g(j)/beta(j) * byz
336 ccyz = sdv(k+5) - aayz
337 evsdyz = aayz + bbyz*dt + ccyz*exp(-beta(j)*dt)
338 aazx = g(j)/beta(j) * (azx - bzx/beta(j))
339 bbzx = g(j)/beta(j) * bzx
340 cczx = sdv(k+6) - aazx
341 evsdzx = aazx + bbzx*dt + cczx*exp(-beta(j)*dt)
342 uvar(i,(k + 11)) = evsdxx
343 uvar(i,(k + 12)) = evsdyy
344 uvar(i,(k + 13)) = evsdzz
345 uvar(i,(k + 14)) = evsdxy
346 uvar(i,(k + 15)) = evsdyz
347 uvar(i,(k + 16)) = evsdzx
351 aaxx = g(j)/beta(j) * (axx - bxx/beta(j))
352 bbxx = g(j)/beta(j) * bxx
353 ccxx = sdv(k+1) - aaxx
354 evsdxx = aaxx + bbxx*dt + ccxx*exp(-beta(j)*dt)
355 aayy = g(j)/beta(j) * (ayy - byy/beta(j))
356 bbyy = g(j)/beta(j) * byy
357 ccyy = sdv(k+2) - aayy
358 evsdyy = aayy + bbyy*dt + ccyy*exp(-beta(j)*dt)
359 aazz = g(j)/beta(j) * (azz - bzz/beta(j))
360 bbzz = g(j)/beta(j) * bzz
361 cczz = sdv(k+3) - aazz
362 evsdzz = aazz + bbzz*dt + cczz*exp(-beta(j)*dt)
363 aaxy = g(j)/beta(j) * (axy - bxy/beta(j))
364 bbxy = g(j)/beta(j) * bxy
365 ccxy = sdv(k+4) - aaxy
366 evsdxy = aaxy + bbxy*dt + ccxy*exp(-beta(j)*dt)
367 aayz = g(j)/beta(j) * (ayz - byz/beta(j))
368 bbyz = g(j)/beta(j) * byz
369 ccyz = sdv(k+5) - aayz
370 evsdyz = aayz + bbyz*dt + ccyz*exp(-beta(j)*dt)
371 aazx = g(j)/beta(j) * (azx - bzx/beta(j))
372 bbzx = g(j)/beta(j) * bzx
373 cczx = sdv(k+6) - aazx
374 evsdzx = aazx + bbzx*dt + cczx*exp(-beta(j)*dt)
375 uvar(i,(k + 11)) = evsdxx
376 uvar(i,(k + 12)) = evsdyy
377 uvar(i,(k + 13)) = evsdzz
378 uvar(i,(k + 14)) = evsdxy
379 uvar(i,(k + 15)) = evsdyz
380 uvar(i,(k + 16)) = evsdzx
384 aaxx = g(j)/beta(j) * (axx - bxx/beta(j))
385 bbxx = g(j)/beta(j) * bxx
386 ccxx = sdv(k+1) - aaxx
387 evsdxx = aaxx + bbxx*dt + ccxx*exp(-beta(j)*dt)
388 aayy = g(j)/beta(j) * (ayy - byy/beta(j))
389 bbyy = g(j)/beta(j) * byy
390 ccyy = sdv(k+2) - aayy
391 evsdyy = aayy + bbyy*dt + ccyy*exp(-beta(j)*dt)
392 aazz = g(j)/beta(j) * (azz - bzz/beta(j))
393 bbzz = g(j)/beta(j) * bzz
394 cczz = sdv(k+3) - aazz
395 evsdzz = aazz + bbzz*dt + cczz*exp(-beta(j)*dt)
396 aaxy = g(j)/beta(j) * (axy - bxy/beta(j))
397 bbxy = g(j)/beta(j) * bxy
398 ccxy = sdv(k+4) - aaxy
399 evsdxy = aaxy + bbxy*dt + ccxy*exp(-beta(j)*dt)
400 aayz = g(j)/beta(j) * (ayz - byz/beta(j))
401 bbyz = g(j)/beta(j) * byz
402 ccyz = sdv(k+5) - aayz
403 evsdyz = aayz + bbyz*dt + ccyz*exp(-beta(j)*dt)
404 aazx = g(j)/beta(j) * (azx - bzx/beta(j))
405 bbzx = g(j)/beta(j) * bzx
406 cczx = sdv(k+6) - aazx
407 evsdzx = aazx + bbzx*dt + cczx*exp(-beta(j)*dt)
408 uvar(i,(k + 11)) = evsdxx
409 uvar(i,(k + 12)) = evsdyy
410 uvar(i,(k + 13)) = evsdzz
411 uvar(i,(k + 14)) = evsdxy
412 uvar(i,(k + 15)) = evsdyz
413 uvar(i,(k + 16)) = evsdzx
417 aaxx = g(j)/beta(j) * (axx - bxx/beta(j))
418 bbxx = g(j)/beta(j) * bxx
419 ccxx = sdv(k+1) - aaxx
420 evsdxx = aaxx + bbxx*dt + ccxx*exp(-beta(j)*dt)
421 aayy = g(j)/beta(j) * (ayy - byy/beta(j))
422 bbyy = g(j)/beta(j) * byy
423 ccyy = sdv(k+2) - aayy
424 evsdyy = aayy + bbyy*dt + ccyy*exp(-beta(j)*dt)
425 aazz = g(j)/beta(j) * (azz - bzz/beta(j))
426 bbzz = g(j)/beta(j) * bzz
427 cczz = sdv(k+3) - aazz
428 evsdzz = aazz + bbzz*dt + cczz*exp(-beta(j)*dt)
429 aaxy = g(j)/beta(j) * (axy - bxy/beta(j))
430 bbxy = g(j)/beta(j) * bxy
431 ccxy = sdv(k+4) - aaxy
432 evsdxy = aaxy + bbxy*dt + ccxy*exp(-beta(j)*dt)
433 aayz = g(j)/beta(j) * (ayz - byz/beta(j))
434 bbyz = g(j)/beta(j) * byz
435 ccyz = sdv(k+5) - aayz
436 evsdyz = aayz + bbyz*dt + ccyz*exp(-beta(j)*dt)
437 aazx = g(j)/beta(j) * (azx - bzx/beta(j))
438 bbzx = g(j)/beta(j) * bzx
439 cczx = sdv(k+6) - aazx
440 evsdzx = aazx + bbzx*dt + cczx*exp(-beta(j)*dt)
441 uvar(i,(k + 11)) = evsdxx
442 uvar(i,(k + 12)) = evsdyy
443 uvar(i,(k + 13)) = evsdzz
444 uvar(i,(k + 14)) = evsdxy
445 uvar(i,(k + 15)) = evsdyz
446 uvar(i,(k + 16)) = evsdzx
448 sigv = (sigoxx(i) + sigoyy(i) + sigozz(i))* third
449 sigv = sigv + (3. * ak) *
450 . (depsxx(i) + depsyy(i) + depszz(i)) * third
460 sxx = sxx + uvar(i,11)
461 syy = syy + uvar(i,12)
462 szz = szz + uvar(i,13)
463 sxy = sxy + uvar(i,14)
464 syz = syz + uvar(i,15)
465 szx = szx + uvar(i,16)
467 sxx = sxx + uvar(i,17)
468 syy = syy + uvar(i,18)
469 szz = szz + uvar(i,19)
470 sxy = sxy + uvar(i,20)
471 syz = syz + uvar(i,21)
472 szx = szx + uvar(i,22)
474 sxx = sxx + uvar(i,23)
475 syy = syy + uvar(i,24)
476 szz = szz + uvar(i,25)
477 sxy = sxy + uvar(i,26)
478 syz = syz + uvar(i,27)
479 szx = szx + uvar(i,28)
481 sxx = sxx + uvar(i,29)
482 syy = syy + uvar(i,30)
483 szz = szz + uvar(i,31)
484 sxy = sxy + uvar(i,32)
485 syz = syz + uvar(i,33)
486 szx = szx + uvar(i,34)
488 sxx = sxx + uvar(i,35)
489 syy = syy + uvar(i,36)
490 szz = szz + uvar(i,37)
491 sxy = sxy + uvar(i,38)
492 syz = syz + uvar(i,39)
493 szx = szx + uvar(i,40)
495 uvar(i,5) = two * edrnxx - edrvxx
496 uvar(i,6) = two * edrnyy - edrvyy
497 uvar(i,7) = two * edrnzz - edrvzz
498 uvar(i,8) = two * edrnxy - edrvxy
499 uvar(i,9) = two * edrnyz - edrvyz
500 uvar(i,10) = two * edrnzx - edrvzx
502 signxx(i) = sxx + sigv
503 signyy(i) = syy + sigv
504 signzz(i) = szz + sigv
509 soundsp(i) = sqrt((ak/rho(i)) +
510 . ((two*two*gt)/(rho(i)*three)))
517 ssig1=signxx(i)+signyy(i)+signzz(i)
518 ssig2=half*(sxx**2+syy**2+szz**2)+sxy**2+syz**2+szx**2
522 uvar(i,1)=exp( half*log(ssig2) )/vmisk
527 IF( (ssig1**2.+astas*2.*ssig2)>zero )
THEN
528 uvar(i,2)=( ssig1+exp
530 uvar(i,2) = ssig1/bstas
532 uvar(i,3)=
max(uvar(i,3),uvar(i,1))
533 uvar(i,4)=
max(uvar(i,4),uvar(i,2))
subroutine sigeps40(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)