Télécharger dcmp.eso

Retour à la liste

Numérotation des lignes :

  1. C DCMP SOURCE CHAT 05/01/12 22:37:32 5004
  2. C
  3. C SUBRUTINE DCMP : APPLICATION D'UNE LOI DE COMPORTEMENT POUR DES
  4. C DEFORMATIONS AXIALES
  5. C
  6. SUBROUTINE DCMP(IFLAG,IDEP,ELEF1,ELDEP1,ELEF2,ELDEP2,YLEF1,
  7. 1 YLDEP1,YLEF2,YLDEP2,ULEF1,ULDEP1,
  8. 2 EF,VARDEP,DEP,DEPE,DEPMAX,EFMAX,DEPMIN,EFMIN,
  9. 3 XINT,RR)
  10. C
  11. C ==================================================================
  12. C ELEF1 - EFFORT MAX. ELASTIQUE DANS LE SENS +
  13. C ELDEP1 - DEFORMATION MAX. ELASTIQUE DANS LE SENS +
  14. C ELEF2 - EFFORT MAX. ELASTIQUE DANS LE SENS -
  15. C ELDEP2 - DEFORMATION MAX. ELASTIQUE DANS LE SENS -
  16. C YLEF1 - EFFORT MAX. LINEAIRE DANS LE SENS +
  17. C YLDEP1 - DEFORMATION MAX. LINEAIRE DANS LE SENS +
  18. C YLEF2 - EFFORT MAX. LINEAIRE DANS LE SENS -
  19. C YLDEP2 - DEFORMATION MAX. LINEAIRE DANS LE SENS -
  20. C ULEF1 - EFFORT MAX. PLASTIQUE DANS LE SENS +
  21. C ULDEP1 - DEFORMATION MAX. PLASTIQUE DANS LE SENS +
  22. C EF - EFFORT DU PAS PRECEDENT
  23. C VARDEP - L'INCREMENT DE DEFORMATION
  24. C DEP - DEFORMATION DU PAS PRECEDENT
  25. C DEPMAX - DEFORMATION MAX. +
  26. C EFMAX - EFFORT MAX. +
  27. C DEPMIN - DEFORMATION MIN. -
  28. C EFMIN - EFFORT MIN. -
  29. C XINT - DEFORMATION MAX. POUR DECHARGE AVEC LA RIGIDITE RIN1
  30. C IFLAG - FLAG POUR LE STADE DE COMPORTEMENT
  31. C REL - RIGIDITE ELASTIQUE COHERENTE AVEC LA MATRICE DE
  32. C RIGIDITE
  33. C REL1 - RIGIDITE ELASTIQUE DANS LE SENS +
  34. C REL2 - RIGIDITE ELASTIQUE DANS LE SENS -
  35. C RR1 - RIGIDITE SECANTE DANS LE SENS +
  36. C RR2 - RIGIDITE SECANTE DANS LE SENS -
  37. C RIN1 - RIGIDITE INELASTIQUE DANS LE SENS +
  38. C RIN2 - RIGIDITE INELASTIQUE DANS LE SENS -
  39. C DEPT - DEFORMATION TOTALE
  40. C RR - RIGIDITE POUR LE STADE DE COMPORTEMENT ACTUEL
  41. C
  42. C ----------------------------------------------------------------------
  43. C
  44. IMPLICIT INTEGER(I-N)
  45. IMPLICIT REAL*8(A-H,O-Z)
  46. C
  47. C INITIALISATION
  48. C
  49. REL = (ELEF1 -ELEF2) /(ELDEP1 - ELDEP2)
  50. C
  51. IF (ELDEP1.GT.YLDEP1) THEN
  52. REL1 = (YLEF1 -ELEF1) /(YLDEP1 - ELDEP1)
  53. ELSE
  54. REL1 = REL
  55. ENDIF
  56. C
  57. IF (ELDEP2.LT.YLDEP2) THEN
  58. REL2 = (YLEF2 -ELEF2) /(YLDEP2 - ELDEP2)
  59. ELSE
  60. REL2 = REL
  61. ENDIF
  62. C
  63. RR1 = (YLEF1/YLDEP1)
  64. RR2 = (YLEF2/YLDEP2)
  65. RIN1 = (ULEF1 - YLEF1) / (ULDEP1 - YLDEP1)
  66. C
  67. IF(IFLAG.EQ.0)THEN
  68. IFLAG = 1
  69. RR = REL
  70. DEPMAX = ELDEP1
  71. EFMAX = ELEF1
  72. DEPMIN = ELDEP2
  73. EFMIN = ELEF2
  74. DEP = 0.0
  75. EF = 0.0
  76. XINT = 0.0
  77. END IF
  78. C
  79. DEPT = DEP + VARDEP
  80. C
  81. C CAS EF = 0.0
  82. C
  83. IF(EF.EQ.0.0)THEN
  84. IF(IFLAG.EQ.1)THEN
  85. IF(VARDEP.LE.0.0)THEN
  86. IF(EFMAX.GE.YLEF1)THEN
  87. RR = REL
  88. GO TO 11
  89. ELSE
  90. RR = EFMAX / (DEPMAX - DEP)
  91. GO TO 5
  92. END IF
  93. ELSE
  94. RR = REL
  95. GO TO 12
  96. END IF
  97. ELSE
  98. IF(VARDEP.LE.0.0)THEN
  99. RR = EFMAX / (DEPMAX - DEP)
  100. GO TO 5
  101. ELSE
  102. RR = RIN1
  103. GO TO 4
  104. END IF
  105. END IF
  106. END IF
  107. C
  108. GO TO(1,2,3,4,5),IFLAG
  109. C
  110. C STADE ELASTIQUE
  111. C
  112. 1 IFLAG = 1
  113. 11 IF(EF.LE.0.)THEN
  114. IF (DEPT.LT.YLDEP1)THEN
  115. DEPMAX = YLDEP1
  116. EFMAX = YLEF1
  117. VARDEP=DEPT-YLDEP1
  118. DEP=YLDEP1
  119. EF=YLEF1
  120. RR = RIN1
  121. GO TO 2
  122. ELSE
  123. IF((ELDEP1.GT.YLDEP1).AND.(DEPT.LE.0.))THEN
  124. IF (VARDEP.LE.0.)THEN
  125. IF ((DEP.LE.DEPMAX).OR.(DEPMAX.EQ.ELDEP1)) THEN
  126. IF((DEP.GE.ELDEP1).AND.(DEPT.GE.ELDEP1))THEN
  127. RR=REL
  128. ELSE IF((DEP.LE.ELDEP1).AND.(DEPT.LE.ELDEP1))THEN
  129. RR=REL1
  130. ELSE IF((DEP.GE.ELDEP1).AND.(DEPT.LE.ELDEP1))THEN
  131. VARDEP=DEPT-ELDEP1
  132. EF=ELEF1
  133. DEP=ELDEP1
  134. RR = REL1
  135. ENDIF
  136. ELSE
  137. IF (DEPT.LE.DEPMAX) THEN
  138. VARDEP=DEPT-ELDEP1
  139. EF=EFMAX
  140. DEP=DEPMAX
  141. RR=REL1
  142. ELSE
  143. RR=(EFMAX/DEPMAX)
  144. ENDIF
  145. ENDIF
  146. ELSE
  147. IF(DEP.LT.DEPMAX)THEN
  148. DEPMAX = DEP
  149. EFMAX = EF
  150. ENDIF
  151. IF (DEPMAX.EQ.ELDEP1) THEN
  152. RR=REL
  153. ELSE
  154. RR=(EFMAX/DEPMAX)
  155. ENDIF
  156. ENDIF
  157. EF = EF + VARDEP * RR
  158. DEP=DEPT
  159. RETURN
  160. ENDIF
  161. ENDIF
  162. IF(DEPT.GT.0.)THEN
  163. DEP = 0.
  164. RR = REL
  165. VARDEP = DEPT
  166. EF = 0.
  167. GO TO 12
  168. END IF
  169. EF = EF + VARDEP * RR
  170. DEP = DEPT
  171. RETURN
  172. END IF
  173. 12 IF(EF.GE.0.)THEN
  174. IF((ELDEP2.LT.YLDEP2).AND.(DEPT.GE.0.))THEN
  175. IF (VARDEP.GE.0.)THEN
  176. IF ((DEP.GE.DEPMIN).OR.(DEPMIN.EQ.ELDEP2)) THEN
  177. IF((DEP.LE.ELDEP2).AND.(DEPT.LE.ELDEP2))THEN
  178. RR=REL
  179. ELSE IF((DEP.GE.ELDEP2).AND.(DEPT.GE.ELDEP2))THEN
  180. RR=REL2
  181. ELSE IF((DEP.LE.ELDEP2).AND.(DEPT.GE.ELDEP2))THEN
  182. VARDEP=DEPT-ELDEP2
  183. EF=ELEF2
  184. DEP=ELDEP2
  185. RR = REL2
  186. ENDIF
  187. ELSE
  188. IF (DEPT.GE.DEPMIN)THEN
  189. VARDEP=DEPT-DEPMIN
  190. EF=EFMIN
  191. DEP=DEPMIN
  192. RR=REL2
  193. ELSE
  194. RR=(EFMIN/DEPMIN)
  195. ENDIF
  196. ENDIF
  197. ELSE
  198. IF(DEP.GT.DEPMIN)THEN
  199. DEPMIN = DEP
  200. EFMIN = EF
  201. ENDIF
  202. IF (DEPMIN.EQ.ELDEP2) THEN
  203. RR = REL
  204. ELSE
  205. RR=(EFMIN/DEPMIN)
  206. ENDIF
  207. ENDIF
  208. EF = EF + VARDEP * RR
  209. DEP=DEPT
  210. RETURN
  211. ENDIF
  212. EFT1 = EF + VARDEP * RR
  213. IF(EFT1.GT.YLEF2) IDEP = -1
  214. IF(DEPT.LT.0.)THEN
  215. EF = 0.0
  216. DEP = 0.0
  217. VARDEP = DEPT
  218. IF(EFMAX.LT.YLEF1)THEN
  219. RR = EFMAX / DEPMAX
  220. GO TO 5
  221. ELSE
  222. RR = REL
  223. GO TO 11
  224. END IF
  225. ELSE
  226. * EF = EFT+ VARDEP * RR AM CORRECTION 22/02/96
  227. EF = EF + VARDEP * RR
  228. DEP = DEPT
  229. RETURN
  230. END IF
  231. END IF
  232. C
  233. C STADE PLASTIQUE
  234. C
  235. 2 IFLAG = 2
  236. IF(VARDEP.LE.0.)THEN
  237. EF = EF + VARDEP * RR
  238. IF(EF.LT.ULEF1) IDEP = 1
  239. EFMAX = EF
  240. DEPMAX = DEPT
  241. DEP = DEPT
  242. RETURN
  243. END IF
  244. RR = SQRT(YLDEP1 / DEPMAX) * RR1
  245. C
  246. C DECHARGE SANS CHANGEMENT DE SENS
  247. C
  248. 3 IFLAG = 3
  249. EFT1 = EF + VARDEP * RR
  250. IF((EF * EFT1).GE.0.)THEN
  251. IF((EF * VARDEP).LT.0.)THEN
  252. EF = EFT1
  253. DEP = DEPT
  254. RETURN
  255. ELSE IF(EF.LT.0.0)THEN
  256. RR = (EFMAX - EF) / (DEPMAX - DEP)
  257. GO TO 5
  258. ELSE
  259. RR = RIN1
  260. XLIM = DEP * RR / (RR2 - RR) - EF * RR2
  261. GO TO 4
  262. END IF
  263. ELSE
  264. DEP = DEP - EF / RR
  265. VARDEP = DEPT - DEP
  266. IF(EF.LT.0.0)THEN
  267. RR = RIN1
  268. XINT = -1.0 * DEP * RR / (RR2 - RR)
  269. EF = 0.0
  270. GO TO 4
  271. ELSE
  272. RR = EFMAX / (DEPMAX - DEP)
  273. EF = 0.0
  274. GO TO 5
  275. END IF
  276. END IF
  277. C
  278. C CHANGEMENT DE SENS DANS +
  279. C
  280. 4 IFLAG = 4
  281. IF((EF * VARDEP).LT.0.0)THEN
  282. RR = RR2
  283. GO TO 3
  284. ELSE
  285. IF(DEPT.GT.XINT)THEN
  286. EF = EF + (XINT - DEP) * RR
  287. DEP = XINT
  288. VARDEP = DEPT - DEP
  289. RR = RR2
  290. GO TO 1
  291. ELSE
  292. EF = EF + VARDEP * RR
  293. DEP = DEPT
  294. RETURN
  295. END IF
  296. END IF
  297. C
  298. C CHANGEMENT DE SENS DANS -
  299. C
  300. 5 IFLAG = 5
  301. IF((EF * VARDEP).LT.0.0)THEN
  302. RR = SQRT(YLDEP1 / DEPMAX) * RR1
  303. GO TO 3
  304. ELSE
  305. IF(DEPT.LT.DEPMAX)THEN
  306. VARDEP = DEPT - DEPMAX
  307. DEP = DEPMAX
  308. EF = EFMAX
  309. RR = RIN1
  310. GO TO 2
  311. ELSE
  312. EF = EF + VARDEP * RR
  313. DEP = DEPT
  314. RETURN
  315. END IF
  316. END IF
  317. END
  318.  
  319.  
  320.  

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