Télécharger infill.eso

Retour à la liste

Numérotation des lignes :

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

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