Télécharger fibstr.eso

Retour à la liste

Numérotation des lignes :

  1. C FIBSTR SOURCE CB215821 16/04/21 21:16:50 8920
  2. C FIBSTR
  3. SUBROUTINE FIBSTR (XXMAT,DEPS,SIG0,VAR0,SIGF,VARF)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. -INC CCREEL
  7.  
  8. DIMENSION XXMAT(*),DEPS(3),SIG0(3),VAR0(37),SIGF(3),VARF(37)
  9. C----------------------------------------------------------------------
  10. C
  11. C COMPORTEMENT DE FIBRE DE STRUT
  12. C
  13. C----------------------------------------------------------------------
  14. C Joao Guedes et Pierre Pegon (ISPRA) Juillet/Decembre 1993
  15. C----------------------------------------------------------------------
  16. C
  17. c
  18. C
  19. C DEPS(1) EPXX SIG0(1) SIGF(1) SMXX
  20. C DEPS(2) GAXY SIG0(2) SIGF(2) SMXY
  21. C DEPS(3) GAXZ SIG0(3) SIGF(3) SMXZ
  22. C
  23. C VAR0(1) VARF(1) EPSO
  24. C VAR0(2) VARF(2) MAX. STRAIN EVER REACHED
  25. C VAR0(3) VARF(3) MIN. STRAIN EVER REACHED
  26. C VAR0(4) VARF(4) MIN. STRESS EVER REACHED
  27. C VAR0(5) VARF(5) TANGENT MODULUS
  28. C VAR0(6) VARF(6) DISCHARGE TANGENT MODULUS
  29. C
  30. C----------------------------------------------------------------------
  31. c
  32. DIMENSION EPSON(5), SIGMA(5)
  33. C
  34. DIMENSION XH0(1,1),WUP(1,50),YUP(1,50),DES(1)
  35. C
  36. DATA UN/1.D0/
  37. C
  38. ITM = 50
  39. C
  40. C
  41. C
  42. C ------- STRUTS
  43. C
  44. C----------------------------------------
  45. C JFACT -> Max. number of bissections for the int. equil.
  46. C----------------------------------------
  47. JFACT = 8
  48. C
  49. FC___ = XXMAT( 5)
  50. EZERO = XXMAT( 6)
  51. FLT__ = XXMAT( 7)
  52. ALFA1 = XXMAT( 8)
  53. OMEG1 = XXMAT( 9)
  54. ZETA_ = XXMAT(10)
  55. STR85 = XXMAT(11)
  56. TRAFA = XXMAT(12)
  57. FTPL_ = XXMAT(4+21)
  58. FACT1 = 3.00D0
  59. FACT2 = 20.0D0
  60. FACLO = XXMAT(4+22)
  61. FACX2 = XXMAT(4+23)
  62. C
  63. C
  64. C
  65. IF (TRAFA .LT. 1.0D0) THEN
  66. WRITE (*,*) ' ERROR; TRAFA < 1.0 '
  67. STOP
  68. ENDIF
  69. C
  70. ALFOM = ALFA1 * OMEG1
  71. C
  72. IF (ZETA_ .LE. 0.D0) THEN
  73. C
  74. C ------- COMPUTING PROPERTIES OF CONFINED CONCRETE -------
  75. C
  76. IF (ALFOM .LT. 1.0D-1) THEN
  77. BETAC = 1.000D0 + 2.50D0 * ALFOM
  78. ELSE
  79. BETAC = 1.125D0 + 1.25D0 * ALFOM
  80. ENDIF
  81. C
  82. FC___ = BETAC * FC___
  83. EZERO = BETAC * BETAC * EZERO
  84. ZETA_ = (BETAC-0.85D0) / (BETAC*(0.1D0*ALFOM+0.003D0-EZERO))
  85. ENDIF
  86. C
  87. YOUNG = 2.0D0 * FC___ / EZERO
  88. C
  89. EPS85 = (1.0D0-STR85/FC___ ) / ZETA_ + EZERO
  90. EPS85 = -1.0D0 * EPS85 / EZERO
  91. C
  92. DAMG1 = 1.0D0 - VARF(32)
  93. DAMG2 = 1.0D0 - VARF(33)
  94. C
  95. C
  96. C ------- TEST AND...
  97. C
  98. IF (VAR0(5) .GT. FC___) GOTO 20
  99. C
  100. C
  101. C ------- STIRRUP
  102. C
  103. EYOUN = XXMAT(4+8+ 1)
  104. FSY__ = XXMAT(4+8+ 2)
  105. FSU__ = XXMAT(4+8+ 3)
  106. EPSH_ = XXMAT(4+8+ 4)
  107. EPSU_ = XXMAT(4+8+ 5)
  108. ROFAC = XXMAT(4+8+ 6)
  109. BFACT = XXMAT(4+8+ 7)
  110. A1FAC = XXMAT(4+8+ 8)
  111. A2FAC = XXMAT(4+8+ 9)
  112. C
  113. ROSTI = XXMAT(4+8+10)
  114. C
  115. FACLD = 0.0D0
  116. A6FAC = 0.0D0
  117. CFACT = 0.0D0
  118. AFACT = 0.0D0
  119. C
  120. C
  121. THETA = XXMAT(4+8+11) * xpi / 180.0D0
  122. C
  123. VARF(25) = VAR0(25) + DEPS(2)
  124. C
  125. FACAR = (1.0D0 + TAN(THETA)) / 2.0D0
  126. TRAFA = TRAFA * TAN(THETA)
  127. C
  128. ET___ = FLT__ / (2.0D0 * FC___ / EZERO)
  129. FTRAF = 1.0D0
  130. C+JG
  131. C IF (VARF(28) .LT. (FTRAF*ET___)) THEN
  132. C FLT__ = 10.0 * FC___
  133. C ELSEIF (VAR0(28) .LT. (FTRAF*ET___)) THEN
  134. C FACCC = (VAR0(28) - (FTRAF*ET___)) / (VAR0(28) - VARF(28))
  135. C SHEXY = ABS(VAR0(25) + FACCC * (VARF(25) - VAR0(25)))
  136. C EPTRA = VAR0(12+2) * (SIN(THETA))**2 +
  137. C . (FTRAF*ET___) * (COS(THETA))**2 +
  138. C . (TAN(SHEXY) * SIN(2.0*THETA)) / 2.0
  139. C FLT__ = (2.0 * FC___ / EZERO) * EPTRA
  140. C ELSE
  141. C FLT__ = 0.0
  142. C ENDIF
  143. C
  144. C ET___ = FLT__ / (2.0 * FC___ / EZERO)
  145. C+JG
  146. DELTG = 1.0D0
  147. C
  148. C
  149. C
  150. 888 EPME1 = (VARF(28) - VAR0(28)) / DELTG
  151. EPME2 = (VARF(29) - VAR0(29)) / DELTG
  152. C
  153. SHEXY = (VARF(25) - VAR0(25)) / DELTG
  154. C
  155. EPSOT = (TAN(SHEXY)) * (SIN(2.D0*THETA)) / 2.0D0
  156. C
  157. C
  158. IT = -1
  159. C
  160. DFI = VAR0(12+2)
  161. C
  162. DO 10 ITB = 1, ITM
  163. C
  164. EPSZZ = DFI - VAR0(12+2)
  165. C
  166. C
  167. EPSM1 = EPSZZ*((SIN(THETA))**2) + EPME1*((COS(THETA))**2)
  168. EPSM2 = EPSZZ*((SIN(THETA))**2) + EPME2*((COS(THETA))**2)
  169. C
  170. C
  171. EPS1S = EPSM1 - EPSOT
  172. EPS2S = EPSM2 + EPSOT
  173. C
  174. C ------- STRUT NUMBER 1
  175. C
  176. FLT_1 = FLT__
  177. 111 ET__1 = FLT_1 / (2.0D0 * FC___ / EZERO)
  178. C
  179. EPSOS = EPS1S / EZERO
  180. EPSO1 = VAR0(1) / EZERO
  181. EPMAX = VAR0(2) / EZERO
  182. EPMIN = VAR0(3) / EZERO
  183. STMI1 = VAR0(4) / FC___
  184. STRE1 = VAR0(5) / FC___
  185. TANGD = VAR0(6)
  186. C
  187. C
  188. EPS11 = EPSO1 + EPSOS
  189. C
  190. C
  191. CALL NEWBE2
  192. . ( FC___, EZERO, EPS85, ZETA_, FLT_1, FTPL_,
  193. . TRAFA, EPS11, EPSO1, EPMAX, EPMIN, STR11,
  194. . STRE1, STMI1, TANG1, TANGD, FACT1, FACT2,
  195. . FACX2, FACLO, EPLA1, ET__1 )
  196. C
  197. VARF(1) = EPS11 * EZERO
  198. VARF(2) = EPMAX * EZERO
  199. VARF(3) = EPMIN * EZERO
  200. VARF(4) = STMI1 * FC___
  201. VARF(5) = STR11 * FC___
  202. VARF(6) = TANGD
  203. C
  204. STR11 = STR11 * FACAR * DAMG1 * FC___
  205. TANG1 = TANG1 * FACAR * DAMG1
  206. C
  207. C ------- STRUT NUMBER 2
  208. C
  209. FLT_1 = FLT__
  210. 222 ET__1 = FLT_1 / (2.0D0 * FC___ / EZERO)
  211. C
  212. EPSOS = EPS2S / EZERO
  213. EPSO1 = VAR0(6+1) / EZERO
  214. EPMAX = VAR0(6+2) / EZERO
  215. EPMIN = VAR0(6+3) / EZERO
  216. STMI2 = VAR0(6+4) / FC___
  217. STRE1 = VAR0(6+5) / FC___
  218. TANGD = VAR0(6+6)
  219. EPS22 = EPSO1 + EPSOS
  220. C
  221. C
  222. CALL NEWBE2
  223. . ( FC___, EZERO, EPS85, ZETA_, FLT_1, FTPL_,
  224. . TRAFA, EPS22, EPSO1, EPMAX, EPMIN, STR22,
  225. . STRE1, STMI2, TANG2, TANGD, FACT1, FACT2,
  226. . FACX2, FACLO, EPLA1, ET__1 )
  227. C
  228. VARF(6+1) = EPS22 * EZERO
  229. VARF(6+2) = EPMAX * EZERO
  230. VARF(6+3) = EPMIN * EZERO
  231. VARF(6+4) = STMI2 * FC___
  232. VARF(6+5) = STR22 * FC___
  233. VARF(6+6) = TANGD
  234. C
  235. STR22 = STR22 * FACAR * DAMG2 * FC___
  236. TANG2 = TANG2 * FACAR * DAMG2
  237. C
  238. C ------- STIRRUP
  239. C
  240. IFLAG = IABS(NINT(VAR0(12+1)))
  241. C
  242. STRAI = VAR0(12+2) + EPSZZ
  243. RFACT = VAR0(12+3)
  244. EPSO3 = VAR0(12+12+7)
  245. C
  246. DO IFACT = 1, 2
  247. EPSON(IFACT) = VAR0(12+3+IFACT)
  248. SIGMA(IFACT) = VAR0(12+7+IFACT)
  249. END DO
  250. C
  251. EPSON(3) = VAR0(12+ 2)
  252. SIGMA(3) = VAR0(12+12)
  253. C
  254. DO IFACT = 4, 5
  255. EPSON(IFACT) = VAR0(12+2+IFACT)
  256. SIGMA(IFACT) = VAR0(12+6+IFACT)
  257. END DO
  258. C
  259. CALL STEEL1
  260. . ( EYOUN, FSY__, FSU__, EPSH_, EPSU_, ROFAC, BFACT,
  261. . A1FAC, A2FAC, FACLD, A6FAC, CFACT, AFACT, IFLAG,
  262. . STRAI, RFACT, EPSON, SIGMA, TANG3, STR33)
  263. C
  264. VARF(12+ 1) = DBLE(IFLAG)
  265. VARF(12+ 2) = STRAI
  266. VARF(12+ 3) = RFACT
  267. VARF(12+12) = STR33
  268. VARF(12+12+7) = EPSON(3)
  269. C
  270. DO IFACT = 1, 2
  271. VARF(12+3+IFACT) = EPSON(IFACT)
  272. VARF(12+7+IFACT) = SIGMA(IFACT)
  273. END DO
  274. C
  275. DO IFACT = 4, 5
  276. VARF(12+2+IFACT) = EPSON(IFACT)
  277. VARF(12+6+IFACT) = SIGMA(IFACT)
  278. END DO
  279. C
  280. C
  281. RESID = STR33 * ROSTI +
  282. . (STR11 + STR22) * ((SIN(THETA))**2)
  283. XJACO = TANG3 * ROSTI +
  284. . (TANG1 * (SIN(THETA))**2 +
  285. . TANG2 * (COS(THETA))**2) * (SIN(THETA))**2
  286. C
  287. IF (ABS(RESID) .GT. (FC___ * 1D-10)) THEN
  288. IF (ITB .GT. ITM) GOTO 10
  289. C
  290. IF (ABS(XJACO) .LT. (EYOUN * ROSTI * 1D-8)) THEN
  291. C WRITE (*,*) ' XJACO = 0.0 !!!!'
  292. XJACO = DSIGN((EYOUN * ROSTI * 1D-8) , XJACO)
  293. ENDIF
  294. CD0
  295. IF (ITB .EQ. 1) XH0(1,1) = 1.0D0 / XJACO
  296. C
  297. CALL MATVE1(XH0,RESID,1,1,DES,2)
  298. CALL MULVEC(DES,DES,-UN,1)
  299. CALL PLVECT(DFI,UN,DES,UN,1,DFI)
  300. C
  301. IF (ABS(DFI) .GT. EPSU_) GOTO 666
  302. ELSE
  303. IF (EPS1S .LT. -EZERO .OR. EPS2S .LT. -EZERO) GOTO 666
  304. C
  305. GOTO 999
  306. ENDIF
  307. 10 CONTINUE
  308. C
  309. 666 IF (DELTG .LT. (2D0**JFACT)) THEN
  310. DELTG = DELTG * 2.0D0
  311. GOTO 888
  312. ENDIF
  313. C
  314. 20 WRITE (*,*) 'DID NOT CONVERGE AFTER 100 STEPS'
  315. C
  316. VARF( 5) = 1.0D0 * FC___ * 1.0D20
  317. VARF(6+5) = -1.0D0 * FC___ * 1.0D20
  318. DEPS(2) = 1.0D18
  319. C
  320. STR11 = VARF( 5)
  321. STR22 = VARF(6+5)
  322. C
  323. GOTO 555
  324. C
  325. 999 IF (DELTG .GT. 1.0D0 .AND. DELTG .LE. (2D0**JFACT)) THEN
  326. DO 777 ICOUN = 1, 24
  327. VAR0(ICOUN) = VARF(ICOUN)
  328. 777 CONTINUE
  329. C
  330. VAR0(25) = VAR0(25) + SHEXY
  331. VAR0(28) = VAR0(28) + EPME1
  332. VAR0(29) = VAR0(29) + EPME2
  333. C
  334. DELTG = 1.0D0
  335. GOTO 888
  336. ENDIF
  337. C
  338. 555 GAMME = YOUNG /2.0D0 * ((SIN(2.0D0*THETA))**2) * FACAR
  339. C------------------------------------------------------
  340. C STRESSES
  341. C------------------------------------------------------
  342. SIGF(1) = 0.0D0
  343. SIGF(2) = (STR22 - STR11) * SIN(THETA) * COS(THETA)
  344. SIGF(3) = SIG0(3) + GAMME * DEPS(3)
  345. C------------------------------------------------------
  346. C TANGENT STIFFNESS
  347. C------------------------------------------------------
  348. C DERZZ -> Derivative of "EPSZZ" with respect to shear strain
  349. C DERME -> Derivative of "EPMED" with respect to shear strain
  350. C------------------------------------------------------
  351. DERZZ = (TANG1 - TANG2) * ((SIN(THETA))**3) * COS(THETA)
  352. . / ((TANG1 + TANG2) * ((SIN(THETA))**4) + TANG3 * ROSTI)
  353. C
  354. DERME = ((TANG1 - TANG2) / (TANG1 + TANG2)) * TAN(THETA)
  355. C
  356. DERZZ = 0.0D0
  357. DERME = 0.0D0
  358. CD0
  359. VARF(27) = (TANG2 + TANG1) * (SIN(2.0D0*THETA) / 2.0D0
  360. . / COS(VARF(25)))**2
  361. . + (TANG2 - TANG1) * (((SIN(THETA))**2) * DERZZ
  362. . + ((COS(THETA))**2) * DERME)
  363. . * SIN(2.0D0*THETA) / 2.0D0
  364. C
  365. 1000 RETURN
  366. END
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  

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