Download funk.eso

Back to the list

   1 : C FUNK      SOURCE    CHAT      05/01/13    00:11:42     5004           
   2 : c*****************************************************************************
   3 : c       sous rouine utilisee dans l'ecoulement plastique de la loi
   4 : c       de GURSON 
   5 : c*********************************************************************
   6 :         subroutine funk(xi,f,wrkgur)
   7 : c       
   8 : c       this subroutine compute f for a given xi
   9 : c
  10 : c---    variables
  11 :       IMPLICIT INTEGER(I-N)
  12 :         IMPLICIT REAL*8 (A-H,O-Z)
  13 :         segment wrkgur
  14 :          real*8 sigbar, sy0,phi0,rho0,g,b,h
  15 :          real*8 epn,phin,sqrtj2,rho,sig(6)
  16 :          real*8 e(7),dt
  17 :          real*8 conv,tol1,tol2
  18 :         endsegment        
  19 : *        common/prop/sigbar,sy0,phi0,rho0,g,b,h
  20 : *        common/state/epn,phin,sqrtj2,rho,sig(6)
  21 : c               e is the strain rate:
  22 : c                       e(1-6) is the deviatoric part
  23 : c                       e(7) is the trace/3
  24 : c               dt ist the time increment
  25 : *        common /delta/ e(7),dt
  26 : *       common /toler/ conv,tol1,tol2
  27 :         dimension s(6)
  28 : c
  29 : c---    executable
  30 : 
  31 :         p=(1.d0-phi0)*b*(1.d0-rho0/rho)+
  32 :      &          (1.d0-xi)*(1.d0-phi0)*b*3.d0*e(7)*dt
  33 :         syn=sy0+h*epn
  34 :         syp=abs(1.d0+phi0**2-2.d0*phi0*cosh(-1.5d0*p/sigbar))
  35 : c
  36 : c---    plastic strain increment
  37 :         if (syp .ge. tol1*tol1 ) then
  38 :           a=1.5d0*phi0*(1.d0-phi0)*sinh(-1.5d0*p/sigbar)/sqrt(syp)
  39 :           ratio=syn/(2.d0*h)
  40 :           dep=sqrt(ratio**2+abs((phi0-phin)*sigbar/a)/h)-ratio
  41 :         else
  42 :             dep=0.d0
  43 :         endif
  44 : c
  45 : c---    equivalent trial stress
  46 :         sum=0.d0
  47 :         do 10 i=1,6
  48 :                 s(i)=sig(i)-2.d0*g*dt*(1.d0-xi)*e(i)
  49 :                 sum=sum+s(i)**2
  50 :                 if (i .gt. 3) then
  51 :                 sum=sum+s(i)**2
  52 :                 endif
  53 :    10   continue
  54 :         seqtr=sqrt(1.5d0*sum)
  55 : c
  56 :         f=(syn+h*dep)*sqrt(syp) + 3.d0*g*dep - seqtr
  57 :         f=f/sy0
  58 : c
  59 :         return
  60 :         end
  61 : c*******************************************************************************
  62 : 
  63 : 
  64 : 
  65 : 
  66 :  
  67 :  

© Cast3M 2003 - All rights reserved.
Disclaimer