Télécharger viscoe.eso

Retour à la liste

Numérotation des lignes :

viscoe
  1. C VISCOE SOURCE PV 21/01/15 21:15:01 10850
  2. SUBROUTINE VISCOE(CM,EPSIPP,EPSE,DTT,DCT,DT
  3. & ,DELTAT,DTTDT,DCTDT,DTDT)
  4. C
  5. C
  6. IMPLICIT REAL*8(A-H,O-Z)
  7. C
  8. DIMENSION EPSIPP(3),EPSILT(3),CM(*),DDHOOK(6,6),
  9. 1 SIGP(3),SIGPT(3),SIGPC(3)
  10. PARAMETER (XUnDemi=0.5D0,XZERO=0.D0,UN=1.D0,DEUX=2.D0)
  11. PARAMETER (XPETIT=1.D-12)
  12.  
  13. C
  14. C recuperation des donnees du modele
  15. C
  16.  
  17. YOUN=CM(1)
  18. XNU=CM(2)
  19. XMDt=CM(14)
  20. XNDt=CM(15)
  21. At=CM(16)
  22. Bt=CM(17)
  23. XMDc=CM(18)
  24. XNDc=CM(19)
  25. Ac=CM(20)
  26. Bc=CM(21)
  27. ED0=CM(22)
  28. C
  29. C Matrice de hooke (pour le 3D)
  30. C
  31. AUX0=YOUN/((Un+XNU)*(Un-XNU-XNU))
  32. AUX=AUX0*(Un-XNU)
  33. AUX1=AUX0*XNU
  34. GEGE=XUnDemi*YOUN/(Un+XNU)
  35. DDHOOK(1,1)=AUX
  36. DDHOOK(2,1)=AUX1
  37. DDHOOK(3,1)=AUX1
  38. DDHOOK(1,2)=AUX1
  39. DDHOOK(2,2)=AUX
  40. DDHOOK(3,2)=AUX1
  41. DDHOOK(1,3)=AUX1
  42. DDHOOK(2,3)=AUX1
  43. DDHOOK(3,3)=AUX
  44. DDHOOK(4,4)=GEGE
  45. DDHOOK(5,5)=GEGE
  46. DDHOOK(6,6)=GEGE
  47. C
  48. C
  49. C on calcule l'endommagement et les contraintes
  50. C
  51. C
  52. C on calcule ALFAT ALFAC DT et DC puis D
  53. C
  54. C
  55. DO 200 ISTRS=1,3
  56. SIGP(ISTRS)= XZERO
  57. DO 210 JSTRS=1,3
  58.  
  59. SIGP(ISTRS)=SIGP(ISTRS)+DDHOOK(ISTRS,JSTRS)*EPSIPP(JSTRS)
  60. 210 CONTINUE
  61. 200 CONTINUE
  62. C
  63. C on calcule le signe des contraintes elastiques
  64. C
  65. DO 300 ISTRS=1,3
  66. IF (SIGP(ISTRS).LT. XZERO) THEN
  67. SIGPC(ISTRS)=SIGP(ISTRS)
  68. SIGPT(ISTRS)=XZERO
  69. ELSE
  70. SIGPT(ISTRS)=SIGP(ISTRS)
  71. SIGPC(ISTRS)=XZERO
  72. END IF
  73. 300 CONTINUE
  74. TRSIGT=SIGPT(1)+SIGPT(2)+SIGPT(3)
  75. TRSIGC=SIGPC(1)+SIGPC(2)+SIGPC(3)
  76. C
  77. C on calcule les deformations dues aux contraintes positives
  78. C
  79. DO 400 ISTRS=1,3
  80. EPSILT(ISTRS)=(SIGPT(ISTRS)*(UN+XNU)-TRSIGT*XNU)/YOUN
  81. 400 CONTINUE
  82. C
  83. C on en deduit ALFAT et ALFAC
  84. C
  85. ALFAT = MAX(XZERO,EPSIPP(1))*EPSILT(1) +
  86. 1 MAX(XZERO,EPSIPP(2))*EPSILT(2) +
  87. 2 MAX(XZERO,EPSIPP(3))*EPSILT(3)
  88. ALFAT = ALFAT/(EPSE*EPSE)
  89. ALFAC = UN - ALFAT
  90. C
  91. C modification pour la bi ou tricompression
  92. C
  93. IF (TRSIGC.LT. -XPETIT .AND. TRSIGT.LT.XPETIT) THEN
  94. GAMMA=SIGPC(1)*SIGPC(1)+SIGPC(2)*SIGPC(2)+SIGPC(3)*SIGPC(3)
  95. GAMMA=-SQRT(GAMMA)/TRSIGC
  96. EPSE=EPSE*GAMMA
  97. END IF
  98. C
  99. C on calcule DT et DC puis D
  100. ** dpot=((EPSE-ED0-(UN/At)*(dtt/(UN-dtt))**(UN/Bt))/XMdt)**XNdt
  101. expt=(dtt/(UN-dtt))
  102. if(expt.lt.0.d0) then
  103. ** write(6,*) ' problemme dans viscoe expt negatif ',expt
  104. expt=0.d0
  105. endif
  106. dpot=((EPSE-ED0-(UN/At)*expt**(UN/Bt))/XMdt)**XNdt
  107. dpot=MAX( dpot, XZERO)
  108.  
  109. DTTDT=dtt+dpot*DELTAT
  110. DTTDT=MIN ( DTTDT , UN-1.D-05 )
  111. ** dpoC=((EPSE-ED0-(UN/Ac)*(dct/(UN-dct))**(UN/Bc))/XMdC)**XNdc
  112. expc=(dct/(UN-dct))
  113. if(expc.lt.0.d0) then
  114. ** write(6,*) ' problemme dans viscoe expc negatif ',expc
  115. expc=0.d0
  116. endif
  117. dpoC=((EPSE-ED0-(UN/Ac)*expc**(UN/Bc))/XMdC)**XNdc
  118. dpoC=MAX( dpoC, XZERO)
  119. DCTDT=dct+dpoC*DELTAT
  120. DCTDT=MIN ( DCTDT , UN-1.D-05 )
  121. C
  122. DTDT = ALFAT*DTTDT + ALFAC*DCTDT
  123.  
  124.  
  125. C
  126. C on borne la valeur de D a 0.99999
  127. C
  128. DTDT=MIN ( DTDT , UN-1.D-05 )
  129. C
  130. C on teste la croissance de D
  131. C
  132. DTDT=MAX ( DTDT , DT )
  133. C
  134. RETURN
  135. END
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales