Télécharger ouglfi.eso

Retour à la liste

Numérotation des lignes :

  1. C OUGLFI SOURCE CB215821 16/04/21 21:17:55 8920
  2. C sub ouglofibc
  3. C====&===1=========2=========3=========4=========5=========6=========7==
  4. C Commentaires : Subroutine permettant de mettre en oeuvre le
  5. C modele d'OUGLOVA d'acier corrodé
  6. C Traits : - Endommagement isotrope couplé à la plasticité
  7. C - Monotone et cyclique
  8. C Auteurs : B. Richard
  9. C Date : Février 2008
  10. C====&===1=========2=========3=========4=========5=========6=========7==
  11. SUBROUTINE OUGLFI(XMAT,DEPST,SIG0,VAR0,SIGA,VARF)
  12.  
  13. REAL*8 XMAT(20),VAR0(25),VARF(25),DEPST(3)
  14. REAL*8 SIG0(3),SIGA(3)
  15. REAL*8 ES,NUS,DCS,SIGMAES,TCS,MS,KS
  16. REAL*8 ENDS,PVAR,DEPP,RVAR,SIGS,EPSP
  17. REAL*8 SIGMA,XLAM,EPTO,EPSR,PR,PD
  18. REAL*8 CRITPLAS,J2,CRITPLAS0,CRITP,DELTAP,CRITENDO
  19. REAL*8 TAU,DFDSIG,DGDSIG,DFDR
  20.  
  21. INTEGER INDITER,ITER,FLAG,I1,ITERMAX,I2
  22.  
  23. C
  24. C OPTIONS INTERNES
  25. C
  26. ITERMAX = 100000
  27. C ---------------------------
  28. C | ACIER CORRODE |
  29. C ---------------------------
  30. C XMAT( 1) ES
  31. C XMAT( 2) NUS
  32. C XMAT( 3)
  33. C XMAT( 4)
  34. C XMAT( 5)
  35. C XMAT( 6) DCS
  36. C XMAT( 7) SIGMAES
  37. C XMAT( 8) TCS
  38. C XMAT( 9) MS
  39. C XMAT(10) KS
  40. C
  41. C ---------------------------
  42. C | ACIER CORRODE |
  43. C ---------------------------
  44. C VAR0( 1) VARF( 1) ENDS
  45. C VAR0( 2) VARF( 2) PVAR
  46. C VAR0( 3) VARF( 3) DEPP
  47. C VAR0( 4) VARF( 4) RVAR
  48. C VAR0( 5) VARF( 5) SIGS
  49. C VAR0( 6) VARF( 6) EPSP
  50. C VAR0( 7) VARF( 7)
  51. C VAR0( 8) VARF( 8)
  52. C VAR0( 9) VARF( 9)
  53. C VAR0(10) VARF(10)
  54. C
  55. C ---------------------------
  56. C | AUTRES |
  57. C ---------------------------
  58. C VAR0(21) VARF(21) XLAM
  59. C VAR0(22) VARF(22) EPTO
  60. C VAR0(23) VARF(23) INDITER
  61.  
  62. C
  63. C LES PARAMETRES MATERIAUX
  64. C
  65. ES = XMAT( 1)
  66. NUS = XMAT( 2)
  67. DCS = XMAT( 6)
  68. SIGMAES = XMAT( 7)
  69. TCS = XMAT( 8)
  70. MS = XMAT( 9)
  71. KS = XMAT(10)
  72. C
  73. C LES VARIABLES INTERNES
  74. C
  75. ENDS = VAR0( 1)
  76. PVAR = VAR0( 2)
  77. DEPP = VAR0( 3)
  78. RVAR = VAR0( 4)
  79. SIGS = VAR0( 5)
  80. EPSP = VAR0( 6)
  81.  
  82. XLAM = 1.0D0
  83.  
  84. EPTO = VAR0(22)
  85. INDITER = VAR0(23)
  86. C
  87. C AVANCE EN DEFORMATION
  88. C
  89. EPTO = (EPTO + DEPST(1))*XLAM
  90. C
  91. C CALCUL DE QUELQUES GRANDEURS
  92. C
  93. IF (TCS.LE.15.0D0) THEN
  94. EPSR = -0.0111D0*TCS+0.2345D0
  95. ELSE
  96. EPSR = -0.0006D0*TCS+0.0510D0
  97. END IF
  98.  
  99. PR = EPSR
  100.  
  101. PD = 0.8D0*PR
  102. C
  103. C PREDICTION ELASTIQUE
  104. C
  105. SIGMA = (1.0D0-ENDS)*ES*(EPTO-EPSP)
  106. C
  107. C CRITERE DE PLASTICITE ET INITIALISATIONS
  108. C
  109. J2 = ABS(SIGMA)
  110. CRITPLAS = J2/(1.0D0-ENDS)-(RVAR+SIGMAES)
  111. CRITPLAS0 = CRITPLAS
  112. CRITP = 1.0D0
  113. DELTAP = 20.0D0
  114. ITER = 0
  115.  
  116. IF ((CRITPLAS.LE.0.0D0).OR.((DEPST(1)*EPTO).LE.0.0D0)) THEN
  117. FLAG = 1
  118. DEPP = 0.0D0
  119. GOTO 30
  120. ELSE IF (CRITPLAS.GT.0.0D0) THEN
  121. FLAG = 0
  122. GOTO 10
  123. END IF
  124. C
  125. C DEBUT DES ITERATIONS INTERNES
  126. C
  127. 10 DO I1=1,ITERMAX
  128. C
  129. C ON VERIFIE LE CRITERE
  130. C
  131.  
  132. DO I2=1,ITERMAX
  133. IF ((CRITP.GT.1.0D-5).AND.
  134. & ((DELTAP.GT.1.0D-15).OR.(CRITPLAS.GT.0.0D0)).AND.
  135. & (ITER.LT.50)) THEN
  136.  
  137. ITER = ITER +1
  138.  
  139. DFDSIG = (ABS(SIGMA)/SIGMA)/(1.0D0-ENDS)
  140. DGDSIG = DFDSIG
  141. DFDR = -1.0D0
  142.  
  143. TAU = DGDSIG*ES
  144. DELTAP = CRITPLAS/(DFDSIG*TAU-
  145. & DFDR*KS/MS*(J2/(KS*(1.0D0-ENDS))-
  146. & SIGMAES/KS)**(1.0D0-MS))
  147.  
  148. IF (DELTAP.LT.0.0D0) THEN
  149. DELTAP = 0.0D0
  150. END IF
  151. C
  152. C ACTUALISATION
  153. C
  154. SIGMA = SIGMA - DELTAP*TAU
  155. EPSP = EPSP + DELTAP*DGDSIG
  156. DEPP = DELTAP*DGDSIG
  157. PVAR = PVAR + DELTAP/(1.0D0-ENDS)
  158. RVAR = KS*(PVAR)**(1.0D0/MS)
  159. C
  160. C ACTUALISATION DU SEUIL
  161. C
  162. J2 = ABS(SIGMA)
  163. CRITPLAS = J2/(1.0D0-ENDS)-(RVAR+SIGMAES)
  164. CRITP = CRITPLAS/CRITPLAS0
  165.  
  166. ELSE
  167.  
  168. GOTO 15
  169.  
  170. END IF
  171. END DO
  172. C
  173. C BALISE DE SORTIE DE LA SECONDE BOUCLE D ITERATIONS INTERNES
  174. C
  175. 15 CONTINUE
  176. RVAR = J2/(1.0D0-ENDS)-SIGMAES
  177.  
  178. GOTO 20
  179.  
  180. 20 CONTINUE
  181. CRITENDO = PVAR - PD
  182.  
  183. IF (CRITENDO.LT.0.0D0) THEN
  184. FLAG = 1
  185.  
  186. GOTO 30
  187.  
  188. ELSE
  189. ENDS = DCS/(PR-PD)*(PVAR-PD)
  190.  
  191. FLAG = 1
  192.  
  193. IF (ENDS.GT.0.99D0) THEN
  194. ENDS = 0.99D0
  195. END IF
  196.  
  197. GOTO 30
  198.  
  199. END IF
  200.  
  201. END DO
  202. C
  203. C BALISE DE SORTIE FINALE
  204. C
  205. 30 CONTINUE
  206.  
  207. IF (PVAR.GT.PR) THEN
  208. PVAR = PR
  209. SIGMA = 0.0D0
  210. ELSE
  211. SIGMA = (1.0D0-ENDS)*ES*(EPTO-EPSP)
  212. END IF
  213. C
  214. C LES SORTIES
  215. C
  216. VARF( 1) = ENDS
  217. VARF( 2) = PVAR
  218. VARF( 3) = DEPP
  219. VARF( 4) = RVAR
  220. VARF( 5) = SIGMA
  221. VARF( 6) = EPSP
  222. VARF( 9) = EPTO
  223.  
  224. VARF(22) = EPTO
  225. VARF(23) = INDITER
  226.  
  227. C
  228. C LES CONTRAINTES
  229. C
  230. SIGA(1) = SIGMA
  231. SIGA(2) = SIG0(2)+(ES/(2.0D0*(1.0D0+NUS)))*DEPST(2)*XLAM
  232. SIGA(3) = SIG0(3)+(ES/(2.0D0*(1.0D0+NUS)))*DEPST(3)*XLAM
  233.  
  234. RETURN
  235. END
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  

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