Télécharger ricbetf2.eso

Retour à la liste

Numérotation des lignes :

  1. C RICBETF2 SOURCE CB215821 16/04/21 21:18:16 8920
  2. SUBROUTINE RICBETF2(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
  3. C
  4. C====&===1=========2=========3=========4=========5=========6=========7==
  5. C Commentaires : Subroutine permettant de mettre en oeuvre le
  6. C modele RICBET pour representer
  7. C le comportement simplifie d'un beton ordinaire sous
  8. C sollicitations cycliques
  9. C
  10. C Traits : - Endommagement scalaire
  11. C - Glissement frottant
  12. C - multifibre
  13. C - Monotone et cyclique
  14. C - Effet unilatteral
  15. C - Comportement lineaire en compression
  16. C
  17. C Auteurs : B. Richard
  18. C : CEA-DEN/DANS/DM2S/SEMT/EMSI
  19. C : Benjamin.Richard@cea.fr
  20. C
  21. C Date : Mars 2011
  22. C====&===1=========2=========3=========4=========5=========6=========7==
  23. C
  24. C-----DECLARATION GENERALE----------------------------------------------
  25. C
  26. IMPLICIT INTEGER(I-N)
  27. IMPLICIT REAL*8(A-H,O-Z)
  28. C
  29. C-----DECLARATION DES VARIABLES-----------------------------------------
  30. C
  31. DIMENSION XMAT(*),DEPS(3),SIG0(3),VAR0(*),SIGF(3),VARF(*)
  32. REAL*8 VAR1(10),DEPS1(3)
  33.  
  34. C Parametre pour le nombre d iteration locales internes
  35. IMAX = 500
  36.  
  37. C Parametre pour le nombre de sous pas lie au sub-steeping
  38. NENTIER = 50
  39. C
  40. C-----DONNEES MATERIAUX-------------------------------------------------
  41. C
  42. XYG = XMAT(1)
  43. XGC = XMAT(1)/2.0D0/(XMAT(2)+1.0D0)
  44. XNU = XMAT(2)
  45. XY0 = 0.5D0*XYG*(XMAT(5)/XMAT(1))**2.0D0
  46. XAT = XMAT(6)
  47. XGAM = XMAT(7)
  48. XAA = XMAT(8)
  49. XSIGF= XMAT(9)
  50.  
  51. XFC = XMAT(10)
  52. XAF = XMAT(11)
  53. XAG = XMAT(12)
  54. XAC = XMAT(13)
  55. XBC = XMAT(14)
  56. XSIGU = XMAT(15)
  57.  
  58. SXX = SIG0(1)
  59. C
  60. C-----PREPARATION SUBSTEPPING-------------------------------------------
  61. C
  62. DO I=1,10
  63.  
  64. VAR1(I) = VAR0(I)
  65.  
  66. ENDDO
  67.  
  68. DO I=1,3
  69.  
  70. DEPS1(I) = DEPS(I)/NENTIER
  71.  
  72. ENDDO
  73. C
  74. C-----LANCEMENT DU SUBSTEPPING------------------------------------------
  75. C
  76. DO IQ=1,NENTIER
  77.  
  78. C
  79. C-----VARIABLES INTERNES------------------------------------------------
  80. C
  81. EPSXX = VAR1(1)+DEPS1(1)
  82. EPSXY = (VAR1(2)+DEPS1(2))/2.0D0
  83. EPSXZ = (VAR1(3)+DEPS1(3))/2.0D0
  84. C
  85. XD = VAR1(4)
  86. XZ = VAR1(5)
  87. EPSPI = VAR1(6)
  88. XEC = VAR1(7)
  89. C
  90. RECO = VAR1(8)
  91. DEFN = VAR1(9)
  92. DEFP = VAR1(10)
  93. C
  94. C-----ENDOMMAGEMENT-----------------------------------------------------
  95. C
  96.  
  97. C Partie positive de la deformation
  98. EPSXXP = 0.5D0*(ABS(EPSXX-DEFN)+(EPSXX-DEFN))
  99.  
  100. C Seuil en energie
  101. XYE=0.5D0*XYG*EPSXXP*EPSXXP
  102.  
  103. C Calcul du seuil
  104. XENDO = XYE - (XY0 + XZ)
  105.  
  106. IF ((XENDO.GT.0.0D0).AND.(SXX.GE.0.0D0)) THEN
  107. XD=1.0D0-1.0D0/(1.0D0+XAT*(XYE-XY0))
  108. XZ=XYE-XY0
  109. ENDIF
  110. C
  111. C-----GLISSEMENT INTERNE------------------------------------------------
  112. C
  113.  
  114. C La contrainte de frottement
  115. SPI = XD*XYG*((EPSXX-DEFN)-EPSPI)
  116.  
  117. C Verification du seuil de glissement interne
  118. IF ((ABS(SPI-XEC).GT.0.0D0).AND.(EPSXX.GE.0.0D0)) THEN
  119.  
  120. C Valeur initiale du seuil pour critere relatif
  121. XF0=ABS(SPI-XEC)
  122.  
  123. C Initialisation du multiplicateur de Lagrange
  124. XDLAM=1.0D0
  125.  
  126. C Debut des iterations internes
  127. DO I=1,IMAX
  128.  
  129. C Calcul du critere relatif
  130. SEUIL=ABS(SPI-XEC)/XF0
  131.  
  132. C Calcul de la derive du critere
  133. XSG=ABS(SPI-XEC)/(SPI-XEC)
  134.  
  135. C Calcul du multiplicateur de Lagrange
  136. XDLAM=ABS(SPI-XEC)/(XYG*XD-XSG*XGAM*(-XSG+XAA*XEC))
  137.  
  138. C Actualisation des variables internes
  139. XEC=XEC-XGAM*XDLAM*(-XSG+XAA*XEC)
  140.  
  141. SPI=SPI-XD*XYG*XDLAM*XSG
  142.  
  143. C Calcul de la deformation de glissement
  144. EPSPI=-SPI/(XD*XYG)+(EPSXX-DEFN)
  145.  
  146. C Recalcul du seuil pour eventuel arret
  147. SEUIL=ABS(SPI-XEC)/XF0
  148.  
  149. C Critere d arret
  150. IF ((SEUIL.LE.1.0D-8).OR.(XDLAM.LE.1.0D-10)) THEN
  151.  
  152. GOTO 900
  153.  
  154. ENDIF
  155.  
  156. ENDDO
  157.  
  158. ENDIF
  159.  
  160. C Balise de sortie
  161. 900 CONTINUE
  162.  
  163.  
  164. IF (EPSXX.GE.0.0D0) THEN
  165. SXX=XYG*(EPSXX-XD*EPSPI)
  166. ELSE
  167. SXX=SIG0(1) + XYG*DEPS(1)
  168. ENDIF
  169.  
  170. C
  171. C-----MISE A JOUR DE VAR1-----------------------------------------------
  172. C
  173. VAR1(1 ) = EPSXX
  174. VAR1(2 ) = 2.0D0*EPSXY
  175. VAR1(3 ) = 2.0D0*EPSXZ
  176. VAR1(4 ) = XD
  177. VAR1(5 ) = XZ
  178. VAR1(6 ) = EPSPI
  179. VAR1(7 ) = XEC
  180. VAR1(8 ) = RECO
  181. VAR1(9 ) = DEFN
  182. VAR1(10) = DEFP
  183. C
  184. C-----FIN DU SUBSTEPPING------------------------------------------------
  185. C
  186. ENDDO
  187. C
  188. C-----SOCKAGE EN SORTIE-------------------------------------------------
  189. C
  190.  
  191. C Les variables internes
  192. VARF(1) = EPSXX
  193. VARF(2) = 2.0D0*EPSXY
  194. VARF(3) = 2.0D0*EPSXZ
  195. VARF(4) = XD
  196. VARF(5) = XZ
  197. VARF(6) = EPSPI
  198. VARF(7) = XEC
  199. VARF(8) = RECO
  200. VARF(9) = DEFN
  201. VARF(10) = DEFP
  202.  
  203. C Les contraintes
  204. SIGF(1) = SXX
  205. SIGF(2) = SIG0(2)+XGC*DEPS(2)*(1.0D0-XD)
  206. SIGF(3) = SIG0(3)+XGC*DEPS(3)*(1.0D0-XD)
  207.  
  208. C Fin de l integration
  209. RETURN
  210. END
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  

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