Télécharger infill.eso

Retour à la liste

Numérotation des lignes :

  1. C INFILL SOURCE CB215821 17/11/30 21:16:28 9639
  2. C======================================================================
  3. C INFILL - D. COMBESCURE et P. PEGON - ELSA- 1996
  4. C======================================================================
  5. C
  6. C MODELE GLOBAL DE DIAGONALE POUR LES MURS DE REMPLISSAGE
  7. C (Sur des elements de barre uniquement)
  8. C
  9. SUBROUTINE INFILL(WRK0,WRK1,WRK2,NCURV,KERRE)
  10. IMPLICIT INTEGER(I-N)
  11. IMPLICIT REAL*8(A-H,O-Z)
  12. C
  13. C=======================================================================
  14. C CETTE ROUTINE EST APPELE DANS ECO100
  15. C
  16. C
  17. C WRK0 = Segment materiaux
  18. C WRK1 = Segment contraintes
  19. C WRK2 = Segment courbe
  20. C NCURV = Longueur courbe
  21. C
  22. C======================================================================
  23. C XCAR = Section de la barre
  24. C DEPST = Increment de deformation axiale
  25. C SIG0 = Contrainte initiale
  26. C VAR0 = Variables internes initiales
  27. C SIGF = Contrainte finale
  28. C VARF = Variables internes finales
  29. C DEFP = Deformation plastique
  30. C
  31. C=======================================================================
  32. C
  33. PARAMETER (XZER=0.D0,UN=1.D0,EPSILO=1.D-10)
  34. C
  35. C=======================================================================
  36. C VARIABLES ET SEGMENTS NECESSAIRES
  37. C=========================================================================
  38. -INC CCOPTIO
  39. C Segment des materiaux
  40. SEGMENT WRK0
  41. REAL*8 XMAT(NCXMAT)
  42. ENDSEGMENT
  43. C Segment des contraintes
  44. SEGMENT WRK1
  45. REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS)
  46. REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI)
  47. REAL*8 DEFP(NSTRS),XCAR(ICARA)
  48. ENDSEGMENT
  49. C Segment de la courbe
  50. SEGMENT WRK2
  51. REAL*8 TRAC(LTRAC)
  52. ENDSEGMENT
  53. C
  54. C Lecture materiau
  55. C
  56. YOUN = XMAT(1)
  57. XDELA = XMAT(5)
  58. XDMAX = XMAT(6)
  59. XBETA = XMAT(7)
  60. XGAMM = XMAT(8)
  61. XGAMP = XMAT(9)
  62. XALPH = XMAT(10)
  63. XTETA = XMAT(11)
  64. C+TEST
  65. C XNETA = XMAT(12)
  66. C+TEST
  67. XSECT = XCAR(1)
  68. YOUN = YOUN*XSECT
  69. C
  70. C Lecture variables internes
  71. C
  72. XDAM = VAR0(1)
  73. XDEPM = -VAR0(2)
  74. XDEPA = -VAR0(3)
  75. XDEPI = -VAR0(4)
  76. XDEPC = -VAR0(5)
  77. ICAS = nint(VAR0(6))
  78. C
  79. XDDEP = -DEPST(1)
  80. XFOR0 = -SIG0(1)
  81. XDEP0 = XDEPA + (XFOR0/((UN - XDAM)*YOUN))
  82. XDEPF = XDEP0 + XDDEP
  83. C
  84. C Fin de la lecture des variables et caracteristiques necessaires
  85. C
  86.  
  87. C Quelques calculs preliminairesC
  88. XDEGRA = (UN - XTETA)*EXP(-XALPH*XDEPC) + XTETA
  89. C+TEST
  90. C XDEPMB = (UN-XNETA)*XDEPM
  91. C+TEST
  92. XDEPMB = XDEPM
  93. C
  94. CALL VALINF(XDEPMB,XDEGRA,TRAC(1),NCURV,XZER,XFMAC,KERRE)
  95. IF (ABS(XDEPMB).LE.EPSILO) THEN
  96. XFELC = XDEGRA*YOUN*XDELA
  97. XPEN = (UN - (XFMAC/XFELC))/
  98. &(UN - ((UN/(UN - XDMAX))*(XFMAC/XFELC)))
  99. XFMAX = XFELC*( UN - XPEN )/( UN - (XPEN/(UN - XDAM)))
  100. ELSE
  101. XFMAX = XFMAC
  102. ENDIF
  103. XFPIN = XBETA*XFMAX
  104. C+TEST
  105. XDEPIN = XDEPMB + (XFPIN/((UN - XDAM)*YOUN))
  106. XDEPMX = XDEPMB + (XFMAX/((UN - XDAM)*YOUN))
  107. C+TEST
  108. C
  109. C==================================================================
  110. C
  111. C DRIVER
  112. C
  113. C==================================================================
  114. IF (XDDEP.GE.XZER) THEN
  115. IF ((ICAS.EQ.1).OR.(ICAS.EQ.0)) THEN
  116. GOTO 1000
  117. ELSEIF (ICAS.EQ.11) THEN
  118. GOTO 2100
  119. ELSEIF (ICAS.EQ.12) THEN
  120. GOTO 2200
  121. ELSEIF (ICAS.EQ.13) THEN
  122. GOTO 2300
  123. ELSEIF (ICAS.EQ.14) THEN
  124. GOTO 2400
  125. ELSEIF (ICAS.EQ.21) THEN
  126. XDLIM = XDEPIN
  127. IF (XDEP0.GE.XDLIM) THEN
  128. GOTO 2400
  129. ELSE
  130. GOTO 2300
  131. ENDIF
  132. ELSEIF (ICAS.EQ.22) THEN
  133. IF (XDEP0.GE.XDEPI) THEN
  134. GOTO 2300
  135. ELSE
  136. GOTO 2100
  137. ENDIF
  138. ELSE
  139. KERRE = 99
  140. GOTO 9999
  141. ENDIF
  142. ELSE
  143. IF ((ICAS.EQ.0).OR.(ICAS.EQ.22).OR.(ICAS.EQ.11)) THEN
  144. GOTO 3200
  145. ELSEIF ((ICAS.EQ.21).OR.(ICAS.EQ.1).OR.(ICAS.EQ.13)
  146. &.OR.(ICAS.EQ.12).OR.(ICAS.EQ.14)) THEN
  147. GOTO 3100
  148. ELSE
  149. KERRE = 99
  150. GOTO 9999
  151. ENDIF
  152. ENDIF
  153. C==========================================================
  154. C CAS A - Courbe de simple charge -ICAS=1
  155. C==========================================================
  156. 1000 CONTINUE
  157. CALL VALINF(XZER,XDEGRA,TRAC(1),NCURV,XZER,XFMAC,KERRE)
  158. XDMAC = XFMAC/((UN - XDMAX)*YOUN)
  159. XFELC = XDEGRA*YOUN*XDELA
  160. XDEPMA = XFMAC/((UN - XDMAX)*YOUN)
  161. XDEPEL = XFELC/YOUN
  162. IF (XDEPF.LE.XDEPMA) THEN
  163. IF (XDEPF.LE.XDEPEL) THEN
  164. XFORF = YOUN*XDEPF
  165. XDAM = XZER
  166. ELSE
  167. XFORF= XFELC + ((XFMAC - XFELC)
  168. &/(XDEPMA - XDEPEL))*(XDEPF - XDEPEL)
  169. XDAM = UN - (XFORF/(XDEPF*YOUN))
  170. ENDIF
  171. ELSE
  172. YOUNF = (UN - XDMAX)*YOUN
  173. CALL VALINF(XDEPF,XDEGRA,TRAC(1),NCURV,YOUNF,XFORF,KERRE)
  174. XDAM = XDMAX
  175. XDEPA = XDEPF - (XFORF/YOUNF)
  176. XDEPI = XDEPA
  177. IF (XDEPM.LE.XDEPA) THEN
  178. XDEPM = XDEPA
  179. ENDIF
  180. ENDIF
  181. ICAS = 1
  182. GOTO 9999
  183. C
  184. C==========================================================
  185. C CAS C1 - Courbe de recharge avec glissement -ICAS=11
  186. C==========================================================
  187. 2100 CONTINUE
  188. XDLIM = XDEPI
  189. C
  190. IF (XDEPF.LE.XDLIM) THEN
  191. XDERES = XZER
  192. XDELOC = XDDEP
  193. ELSE
  194. XDELOC = XDLIM - XDEP0
  195. XDERES = XDDEP - XDELOC
  196. ENDIF
  197. C
  198. XKKK = XZER
  199. XFORF = XFOR0 + (XKKK*XDELOC)
  200. XDEPA = XDEP0 + XDELOC
  201. C
  202. IF (XDERES.EQ.XZER) THEN
  203. ICAS = 11
  204. GOTO 9999
  205. ELSE
  206. XFOR0 = XFORF
  207. XDEP0 = XDLIM
  208. XDDEP = XDERES
  209. GOTO 2200
  210. ENDIF
  211. C
  212. C==========================================================
  213. C CAS C2 - Courbe de recharge avec pincement -ICAS=12
  214. C==========================================================
  215. 2200 CONTINUE
  216. XDLIM = XDEPIN
  217. C
  218. IF (XDEPF.LE.XDLIM) THEN
  219. XDERES = XZER
  220. XDELOC = XDDEP
  221. ELSE
  222. XDELOC = XDLIM - XDEP0
  223. XDERES = XDDEP - XDELOC
  224. ENDIF
  225. C
  226. IF (ABS(XDEPIN-XDEPI).LE.EPSILO) THEN
  227. XKKK = XZER
  228. ELSE
  229. XKKK = (XFPIN/(XDEPIN - XDEPI))
  230. ENDIF
  231. XFORF = XFOR0 + (XKKK*XDELOC)
  232. XDEPA = XDEP0 + XDELOC - (XFORF/((UN - XDAM)*YOUN))
  233. IF (XDERES.EQ.XZER) THEN
  234. ICAS = 12
  235. GOTO 9999
  236. ELSE
  237. XFOR0 = XFORF
  238. XDEP0 = XDLIM
  239. XDDEP = XDERES
  240. GOTO 2400
  241. ENDIF
  242. C
  243. C==========================================================
  244. C CAS C2bis - Courbe de recharge petit cycle -ICAS=13
  245. C==========================================================
  246. 2300 CONTINUE
  247. IF (ABS(XDEPMB-XDEPI).GT.EPSILO) THEN
  248. XDLIM = XDEPA + ((XFPIN/((UN - XDAM)*YOUN))
  249. &/(XDEPMB - XDEPI))*(XDEPA - XDEPI)
  250. ELSE
  251. XDLIM = XDEPIN
  252. ENDIF
  253. C
  254. IF (XDEPF.LE.XDLIM) THEN
  255. XDERES = XZER
  256. XDELOC = XDDEP
  257. ELSE
  258. XDELOC = XDLIM - XDEP0
  259. XDERES = XDDEP - XDELOC
  260. ENDIF
  261. C
  262. XKKK = (UN - XDAM)*YOUN
  263. XFORF = XFOR0 + (XKKK*XDELOC)
  264. C
  265. IF (XDERES.EQ.XZER) THEN
  266. ICAS = 13
  267. GOTO 9999
  268. ELSE
  269. XFOR0 = XFORF
  270. XDEP0 = XDLIM
  271. XDDEP = XDERES
  272. GOTO 2200
  273. ENDIF
  274. C
  275. C==========================================================
  276. C CAS C3 - Courbe de recharge -ICAS=14
  277. C==========================================================
  278. 2400 CONTINUE
  279. XDLIM = XDEPMX
  280. C
  281. IF (XDEPF.LE.XDLIM) THEN
  282. XDERES = XZER
  283. XDELOC = XDDEP
  284. ELSE
  285. XDELOC = XDLIM - XDEP0
  286. XDERES = XDDEP - XDELOC
  287. ENDIF
  288. C
  289. XKKK = (UN - XDAM)*YOUN
  290. XFORF = XFOR0 + (XKKK*XDELOC)
  291. C XDEPI = XDEPA
  292. IF (XDERES.EQ.XZER) THEN
  293. ICAS = 14
  294. GOTO 9999
  295. ELSE
  296. XFOR0 = XFORF
  297. XDEP0 = XDLIM
  298. XDDEP = XDERES
  299. GOTO 1000
  300. ENDIF
  301. C
  302. C==========================================================
  303. C CAS B2 -Courbe de decharge avec E -ICAS=21
  304. C==========================================================
  305. 3100 CONTINUE
  306. XDLIM = XDEPA
  307. C
  308. IF (XDEPF.GT.XDLIM) THEN
  309. XDERES = XZER
  310. XDELOC = XDDEP
  311. ELSE
  312. XDELOC = XDLIM - XDEP0
  313. XDERES = XDDEP - XDELOC
  314. ENDIF
  315. C
  316. XKKK = (UN - XDAM)*YOUN
  317. XFORF = XFOR0 + (XKKK*XDELOC)
  318. C
  319. IF (XDEPM.LE.XDEPA) THEN
  320. XDEPM = XDEPA
  321. ENDIF
  322. C
  323. C
  324. IF (XDERES.EQ.XZER) THEN
  325. ICAS = 21
  326. GOTO 9999
  327. ELSE
  328. XFOR0 = XFORF
  329. XDEP0 = XDLIM
  330. XDDEP = XDERES
  331. GOTO 3200
  332. ENDIF
  333. C==========================================================
  334. C CAS B1 -Courbe de decharge avec glissement -ICAS=22
  335. C==========================================================
  336. 3200 CONTINUE
  337. XFORF = XZER
  338. IF (XDEPI.GE.XDEPF) THEN
  339. C XDEPGL = XGAMM*(UN-XNETA)*XDEPM + XGAMP*XDELA
  340. XDEPGL = XGAMM*XDEPM + XGAMP*XDELA
  341. C XDEPG2 = (UN-XNETA)*XDEPM
  342. XDEPG2 = XDEPM
  343. IF (XDEPGL.GE.XDEPG2) THEN
  344. XDEPGL = XDEPG2
  345. ENDIF
  346. IF (XDEPGL.GE.XDEPF) THEN
  347. XDEPI = XDEPGL
  348. ELSE
  349. XDEPI = XDEPF
  350. ENDIF
  351. ENDIF
  352. XDEPC = XDEPC + ABS(XDDEP)
  353. XDEPA = XDEPF
  354. ICAS = 22
  355. GOTO 9999
  356. C==================================================================
  357. 9999 CONTINUE
  358. C==================================================================
  359. C
  360. C On remplit les tableaux avant de sortir
  361. C
  362. C==================================================================
  363. XDEPA = XDEPF - (XFORF/((UN - XDAM)*YOUN))
  364. SIGF(1) = -XFORF
  365. C
  366. VARF(1) = XDAM
  367. VARF(2) = -XDEPM
  368. VARF(3) = -XDEPA
  369. VARF(4) = -XDEPI
  370. VARF(5) = -XDEPC
  371. VARF(6) = ICAS
  372. C=====================================================
  373. C FIN DE LA ROUTINE DU MODELE
  374. C======================================================
  375. RETURN
  376. END
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  

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