Télécharger steel1.eso

Retour à la liste

Numérotation des lignes :

  1. C STEEL1 SOURCE PV 17/07/20 21:15:05 9512
  2. *---------------------------------------------------------------------
  3. *
  4. SUBROUTINE STEEL1
  5. . ( EYOUN, FSY__, FSU__, EPSH_, EPSU_, ROFAC, BFACT,
  6. . A1FAC, A2FAC, FACLD, A6FAC, CFACT, AFACT, IFLAG,
  7. . STRAI, RFACT, EPSON, SIGMA, TANGE, STRES )
  8. *
  9. *---------------------------------------------------------------------
  10. *
  11. * STEEL BEHAVIOUR MODEL (MENEGOTTO-PINTO MODEL)
  12. * (INCLUDING THE MONOTONIC CURVE)
  13. * (AND THE BUCKLING EFFECT)
  14. *---------------------------------------------------------------------
  15. *
  16. * INPUT :
  17. * -----
  18. * EYOUN : YOUNG MODULUS
  19. * FSY__ : YELDING STRESS
  20. * FSU__ : ULTIMATE STRESS
  21. * EPSH_ : HARDENING STRAIN
  22. * EPSU_ : ULTIMATE STRAIN
  23. * ROFAC : Ro FACTOR
  24. * BFACT : b FACTOR
  25. * A1FAC : a1 FACTOR
  26. * A2FAC : a2 FACTOR
  27. * FACLD : L/D FACTOR (BUCKLING EFFECT)
  28. * A6FAC : a6 FACTOR FOR THE NEW YOUNG MODULUS
  29. * CFACT : c FACTOR FOR THE "GAMAs" VALUE
  30. * AFACT : a FACTOR FOR THE NEW "BFACT"
  31. * IFLAG : FLAG DEFINING THE STEEL STAGE
  32. * STRAI : ACTUAL STRAIN VALUE
  33. * RFACT : R FACTOR
  34. * EPSON : HISTORY OF REVERSAL STRAIN POINTS
  35. * SIGMA : HISTORY OF REVERSAL STRESS POINTS
  36. *
  37. * OUTPUT :
  38. * ------
  39. * TANGE : ACTUAL TANGENT MODULUS
  40. * STRES : ACTUAL STRESS VALUE
  41. *
  42. * NOTE : POSITIVE STRESSES = TENSION STRESSES
  43. * NEGATIVE STRESSES = COMPRESSION STRESSES
  44. *
  45. * POSITIVE STRAIN = TENSION STRAIN
  46. * NEGATIVE STRAIN = COMPRESSION STRAIN
  47. *
  48. *---------------------------------------------------------------------
  49. *
  50. * DIFERENT POSSIBLE STAGES OF THE MATERIAL
  51. *
  52. * ***********************************************************
  53. * IFLAG = 0 .... FIRST LOADING ON THE ENVELOPE
  54. * IFLAG = 1 .... STEEL IS DISTROIED
  55. * IFLAG = 2 .... LOADING OR UNLOD. IN THE POSITIVE DIRECTION
  56. * IFLAG = 3 .... LOADING OR UNLOD. IN THE NEGATIVE DIRECTION
  57. * IFLAG =-4 .... IDEM "IFLAG = 2" FOR UNLOD. FROM THE MONOTONIC
  58. * IFLAG =-5 .... IDEM "IFLAG = 3" FOR UNLOD. FROM THE MONOTONIC
  59. *
  60. * NOTE: A NEGATIVE VALUE FOR "IFLAG" MEANS THAT THE ENVOLVENT
  61. * CURVE IS STILL THE MONOTONIC ONE
  62. *
  63. *---------------------------------------------------------------------
  64. C
  65. IMPLICIT INTEGER(I-N)
  66. IMPLICIT REAL*8 (A-H,O-Z)
  67. C
  68. DIMENSION EPSON (5), SIGMA (5)
  69. C
  70. C-------------------------------------------------------------
  71. C VALUES TO BE KEPT IN EPSON (AND SIGMA) VECTOR(S):
  72. C EPSON (1) .... LAST REVERSAL STRAIN
  73. C EPSON (2) .... INTERSEPTION POINT OF THE ASYMPTOTES
  74. C EPSON (3) .... LAST STRAIN VALUE
  75. C EPSON (4) .... MAXIMUM REVERSAL STRAIN IN THE POSIT. DIR.
  76. C EPSON (5) .... MAXIMUM REVERSAL STRAIN IN THE NEGAT. DIR.
  77. C-------------------------------------------------------------
  78. EPSY_ = FSY__/EYOUN
  79. C
  80. IF (FACLD .GT. 5.0D0) THEN
  81. C-------------------------------------------------------------
  82. C BUCKLING EFFECT
  83. C-------------------------------------------------------------
  84. A5FAC = 1.0D0 + (5.0D0-FACLD) / 7.5D0
  85. FSINF = 4.0D0 * FSY__ / FACLD
  86. GAMAS = (11.0D0-FACLD) / (EXP(CFACT*FACLD)-1.0D0) / 10.0D0
  87. ENDIF
  88. C
  89. IF (IFLAG .EQ. 0) THEN
  90. C-------------------------------------------------------------
  91. C DEFINITION OF THE FIRST STEP PARAMETERS
  92. C-------------------------------------------------------------
  93. IF (ABS(STRAI) .LE. 1.0D-10) THEN
  94. STRES = 0.0D0
  95. TANGE = EYOUN
  96. GO TO 2000
  97. ENDIF
  98. C
  99. SIGN_ = STRAI/ABS(STRAI)
  100. C
  101. EPSON(1) = -SIGN_*EPSY_
  102. SIGMA(1) = -SIGN_*FSY__
  103. C
  104. EPSON(2) = SIGN_*EPSY_
  105. SIGMA(2) = SIGN_*FSY__
  106. C
  107. EPSON(3) = 0.D0
  108. SIGMA(3) = 0.D0
  109. C
  110. EPSON(4) = EPSY_
  111. SIGMA(4) = FSY__
  112. C
  113. EPSON(5) = -EPSY_
  114. SIGMA(5) = -FSY__
  115. C
  116. RFACT = ROFAC
  117. C
  118. IF (SIGN_ .GT. 0.0D0) THEN
  119. IFLAG = -2
  120. ELSE
  121. IFLAG = -3
  122. ENDIF
  123. GO TO 100
  124. ENDIF
  125. C
  126. IF (IFLAG .EQ. -4) THEN
  127. C-------------------------------------------------------------
  128. C DISCHARGE UNDER THE LIMITS OF THE MONOTONIC CURVE
  129. C-------------------------------------------------------------
  130. IF ((EPSON(4)-STRAI) .GT. (EPSY_/3.0D0)) THEN
  131. IFLAG = 3
  132. ELSE
  133. STRES = EYOUN * (STRAI-EPSON(4)) + SIGMA(4)
  134. TANGE = EYOUN
  135. C
  136. ACOEF = -1.0D0 * (FSU__-FSY__) / ((EPSU_-EPSH_)**2)
  137. BCOEF = -2.0D0 * ACOEF * EPSU_
  138. CCOEF = FSU__ - ACOEF * (EPSU_**2) - BCOEF * EPSU_
  139. STRE1 = ACOEF * STRAI**2 +
  140. . BCOEF * STRAI +
  141. . CCOEF
  142. C
  143. IF (STRES .LT. STRE1) GOTO 2000
  144. IFLAG = -2
  145. ENDIF
  146. ELSEIF (IFLAG .EQ. -5) THEN
  147. IF ((STRAI-EPSON(5)) .GT. (EPSY_/3.0D0)) THEN
  148. IFLAG = 2
  149. ELSE
  150. STRES = EYOUN * (STRAI-EPSON(5)) + SIGMA(5)
  151. TANGE = EYOUN
  152. C
  153. ACOEF = -1.0D0 * (FSU__-FSY__) / ((EPSU_-EPSH_)**2)
  154. BCOEF = -2.0D0 * ACOEF * EPSU_
  155. CCOEF = FSU__ - ACOEF * (EPSU_**2) - BCOEF * EPSU_
  156. STRE1 = -1.0D0 * ACOEF * STRAI**2 +
  157. . BCOEF * STRAI -
  158. . CCOEF
  159. C
  160. IF (STRES .GT. STRE1) GOTO 2000
  161. IFLAG = -3
  162. ENDIF
  163. ENDIF
  164. C-------------------------------------------------------------
  165. IF (ABS(STRAI) .GT. EPSU_) IFLAG = 1
  166. C
  167. IF (IFLAG .EQ. 1) THEN
  168. C-------------------------------------------------------------
  169. C THE STEEL IS DISTROIED
  170. C-------------------------------------------------------------
  171. CPP WRITE (*,*) ' THE STEEL IS DISTROIED !!!'
  172. STRES = 0.0D0
  173. TANGE = 0.0D0
  174. GO TO 2000
  175. ENDIF
  176. C-------------------------------------------------------------
  177. IF (IABS(IFLAG) .EQ. 2) THEN
  178. IF (STRAI .GT. EPSON(3)) THEN
  179. C-------------------------------------------------------------
  180. C MOVEMENT IN THE SAME DIRECTION
  181. C-------------------------------------------------------------
  182. GO TO 100
  183. ENDIF
  184. C-------------------------------------------------------------
  185. C MOVEMENT IN THE OPPOSITE DIRECTION
  186. C-------------------------------------------------------------
  187. SIGN_= 1.0D0
  188. C
  189. IFLAG = IABS(IFLAG) / IFLAG * 3
  190. IF (IFLAG .LT. 0) THEN
  191. IF (ABS(EPSON(3)) .GT. EPSY_) THEN
  192. C-------------------------------------------------------------
  193. C CORRECTION OF REVERSAL STRAIN AND STRESS VALUES
  194. C-------------------------------------------------------------
  195. EPSOO = EPSON(3)
  196. EPSON(3) = EPSY_ - SIGMA(3) /
  197. . (EYOUN*(1.0D0-BFACT)) +
  198. . EPSOO / (1.0D0-BFACT)
  199. SIGMA(3) = EYOUN * (EPSON(3)-EPSOO) + SIGMA(3)
  200. C
  201. IF ((EPSON(3)-STRAI) .GT. (EPSY_/3.0D0)) THEN
  202. IFLAG = 3
  203. ELSE
  204. IFLAG = -4
  205. STRES = EYOUN * (STRAI-EPSON(3)) + SIGMA(3)
  206. TANGE = EYOUN
  207. ENDIF
  208. ENDIF
  209. ENDIF
  210. IF (EPSON(3) .GT. EPSON(4)) THEN
  211. EPSON(4) = EPSON(3)
  212. SIGMA(4) = SIGMA(3)
  213. ENDIF
  214. ELSEIF (IABS(IFLAG) .EQ. 3) THEN
  215. IF (STRAI .LT. EPSON(3)) THEN
  216. C-------------------------------------------------------------
  217. C MOVEMENT IN THE SAME DIRECTION
  218. C-------------------------------------------------------------
  219. IF (FACLD .GT. 5.0D0 .AND.
  220. . STRAI .LT. (-0.95D0*EPSY_)) IFLAG = 3
  221. GO TO 100
  222. ENDIF
  223. C-------------------------------------------------------------
  224. C MOVEMENT IN THE OPPOSITE DIRECTION
  225. C-------------------------------------------------------------
  226. SIGN_= -1.0D0
  227. C
  228. IFLAG = IABS(IFLAG) / IFLAG * 2
  229. IF (IFLAG .LT. 0) THEN
  230. IF (ABS(EPSON(3)) .GT. EPSY_) THEN
  231. C-------------------------------------------------------------
  232. C CORRECTION OF REVERSAL STRAIN AND STRESS VALUES
  233. C-------------------------------------------------------------
  234. EPSOO = EPSON(3)
  235. EPSON(3) = EPSY_ + SIGMA(3) /
  236. . (EYOUN*(1.0D0-BFACT)) -
  237. . EPSOO / (1.0D0-BFACT)
  238. EPSON(3) = -1.D0 * EPSON(3)
  239. SIGMA(3) = EYOUN * (EPSON(3)-EPSOO) + SIGMA(3)
  240. C
  241. IF ((STRAI-EPSON(3)) .GT. (EPSY_/3.0D0)) THEN
  242. IFLAG = 2
  243. ELSE
  244. IFLAG = -5
  245. STRES = EYOUN * (STRAI-EPSON(3)) + SIGMA(3)
  246. TANGE = EYOUN
  247. ENDIF
  248. ENDIF
  249. ENDIF
  250. IF (EPSON(3) .lT. EPSON(5)) THEN
  251. EPSON(5) = EPSON(3)
  252. SIGMA(5) = SIGMA(3)
  253. ENDIF
  254. ENDIF
  255. C
  256. C
  257. C ######################################
  258. C
  259. C ...... CHANGE OF PARAMETERS ......
  260. C
  261. C ######################################
  262. C
  263. C
  264. 200 EPSON(1) = EPSON(3)
  265. SIGMA(1) = SIGMA(3)
  266. C
  267. R1FAC = ROFAC
  268. YOUNG = EYOUN
  269. BFACN = BFACT
  270. C
  271. STRSH = 0.0D0
  272. EPSSH = 0.0D0
  273. IF (FACLD .GT. 5.0D0) THEN
  274. IF (IABS(IFLAG) .EQ. 2) THEN
  275. DO ITEST = 1,5
  276. EPSON(2) = (-SIGN_*BFACN*EPSY_-EPSON(1)+
  277. . (SIGMA(1)+SIGN_*FSY__)/YOUNG)/(BFACN-1.0D0)
  278. EPSIS = ABS(EPSON(IABS(IFLAG)+2)-EPSON(2))
  279. YOUNG = EYOUN * (A5FAC+(1.0D0-A5FAC)*EXP(-A6FAC*EPSIS**2))
  280. BFACN = BFACT * EYOUN / YOUNG
  281. ENDDO
  282. ELSEIF (IABS(IFLAG) .EQ. 3) THEN
  283. EPSIM = EPSON(4) - EPSON(5) - 2.0D0*FSY__/EYOUN
  284. C
  285. BFACN = AFACT * (5.0D0-FACLD)
  286. BFACN = BFACN * EXP(BFACN*EPSIM*EYOUN/(FSY__-FSINF))
  287. C
  288. STRSH = GAMAS * EYOUN * (BFACT-BFACN) / (1.0D0-BFACN)
  289. EPSSH = STRSH / EYOUN
  290. C
  291. BFACN = BFACT
  292. ENDIF
  293. ENDIF
  294. EPSON(2) = (-SIGN_*BFACN*(EPSY_+EPSSH)-EPSON(1)+
  295. . (SIGMA(1)+SIGN_*(FSY__+STRSH))/YOUNG)/(BFACN-1.0D0)
  296. SIGMA(2) = YOUNG*(EPSON(2)-EPSON(1))+SIGMA(1)
  297. IF (IFLAG .LT. -3) GOTO 2000
  298. C
  299. EPSIL = ABS((EPSON(IABS(IFLAG)+2)-EPSON(2))/
  300. . (EPSON(2)-EPSON(1)))
  301. RFACT = R1FAC-A1FAC*EPSIL/(A2FAC+EPSIL)
  302. C
  303. C
  304. C ############################################
  305. C
  306. C ...... STRESS AND TANGENT MODULUS ......
  307. C
  308. C ############################################
  309. C
  310. C
  311. 100 IF (IFLAG .LT. 0) GOTO 3000
  312. BFACN = BFACT
  313. YOUNG = EYOUN
  314. IF (FACLD .GT. 5.0D0) THEN
  315. IF (IFLAG .EQ. 2) THEN
  316. EPSIS = ABS(EPSON(IFLAG+2)-EPSON(2))
  317. YOUNG = EYOUN * (A5FAC+(1.0D0-A5FAC)*EXP(-A6FAC*EPSIS**2))
  318. BFACN = BFACT * EYOUN / YOUNG
  319. ELSEIF (IFLAG .EQ. 3) THEN
  320. EPSIM = EPSON(4) - EPSON(5) - 2.0D0 * FSY__/EYOUN
  321. C
  322. BFACN = AFACT * (5.0D0-FACLD)
  323. BFACN = BFACN * EXP(BFACN*EPSIM*EYOUN/(FSY__-FSINF))
  324. ENDIF
  325. ENDIF
  326. EPSAS = (STRAI-EPSON(1))/(EPSON(2)-EPSON(1))
  327. C
  328. STRES = SIGMA(1)+(SIGMA(2)-SIGMA(1))*(BFACN+(1.0D0-BFACN)/
  329. . ((1.0D0+EPSAS**RFACT)**(1.0D0/RFACT)))*EPSAS
  330. TANGE = YOUNG*(BFACN+(1.0D0-BFACN)/
  331. . (1.0D0+EPSAS**RFACT)**(1.0D0/RFACT+1.0D0))
  332. C-------------------------------------------------------------
  333. C MONOTONIC CURVE
  334. C-------------------------------------------------------------
  335. 3000 IF (IFLAG .LT. 0) THEN
  336. IF (ABS(STRAI) .LT. EPSY_) THEN
  337. STRES = EYOUN * STRAI
  338. TANGE = EYOUN
  339. ELSE IF (ABS(STRAI) .LT. EPSH_) THEN
  340. STRES = STRAI / ABS(STRAI) * FSY__
  341. TANGE = 0.0D0
  342. ELSE IF (ABS(STRAI) .LT. EPSU_) THEN
  343. C-------------------------------------------------------------
  344. C EQUATION OF DEGREE "EXPOE"
  345. C-------------------------------------------------------------
  346. EXPOE = 4.0D0
  347. C
  348. STRES = FSU__ - (FSU__-FSY__) *
  349. . (((EPSU_-ABS(STRAI)) / (EPSU_-EPSH_))**EXPOE)
  350. STRES = STRAI / (ABS(STRAI)) * STRES
  351. TANGE = EXPOE * (FSU__-FSY__) *
  352. . ((EPSU_-ABS(STRAI))**(EXPOE-1D0)) /
  353. . ((EPSU_-EPSH_)**EXPOE)
  354. TANGE = 2.0D0 * ACOEF * (ABS(STRAI)) + BCOEF
  355. ELSE
  356. STRES = 0.0D0
  357. TANGE = 0.0D0
  358. ENDIF
  359. ENDIF
  360. C
  361. 2000 EPSON(3) = STRAI
  362. SIGMA(3) = STRES
  363. C
  364. RETURN
  365. END
  366.  
  367.  
  368.  
  369.  
  370.  

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