Télécharger dtai.eso

Retour à la liste

Numérotation des lignes :

dtai
  1. C DTAI SOURCE CHAT 05/01/12 22:56:51 5004
  2. C SUBRUTINE DTAI : APPLICATION D'UNE LOI DE COMPORTEMENT POUR DES
  3. C DEFORMATIONS DUES AUX CISAILLEMENT======================================================================
  4. SUBROUTINE DTAI(IFLAG,IDEP,ELEF1,ELDEP1,ELEF2,ELDEP2,
  5. 1 YLEF1,YLDEP1,YLEF2,YLDEP2,ULEF1,ULDEP1,ULEF2,
  6. 2 ULDEP2,EF,VARDEP,DEP,DEPMAX, EFLIM,
  7. 3 DEPMIN,EFMAX,EFMIN,X01,X02,FINT,RR)
  8. C
  9. C======================================================================
  10. C
  11. C ELEF1 - EFFORT MAX. ELASTIQUE DANS LE SENS +
  12. C ELDEP1 - DEFORMATION MAX. ELASTIQUE DANS LE SENS +
  13. C ELEF1 - EFFORT MAX. ELASTIQUE DANS LE SENS -
  14. C ELDEP1 - DEFORMATION MAX. ELASTIQUE DANS LE SENS -
  15. C YLEF1 - EFFORT MAX. LINEAIRE DANS LE SENS +
  16. C YLDEP1 - DEFORMATION MAX. LINEAIRE DANS LE SENS +
  17. C YLEF1 - EFFORT MAX. LINEAIRE DANS LE SENS -
  18. C YLDEP1 - DEFORMATION MAX. LINEAIRE DANS LE SENS -
  19. C ULEF1 - EFFORT MAX. PLASTIQUE DANS LE SENS +
  20. C ULDEP1 - DEFORMATION MAX. PLASTIQUE DANS LE SENS +
  21. C ULEF2 - EFFORT MAX. PLASTIQUE DANS LE SENS -
  22. C ULDEP2 - DEFORMATION MAX. PLASTIQUE DANS LE SENS -
  23. C EF - EFFORT DU PAS PRECEDENT
  24. C VARDEP - L'INCREMENT DE DEFORMATION
  25. C DEP - DEFORMATION DU PAS PRECEDENT
  26. C DEPMAX - DEFORMATION MAX. +
  27. C DEPMIN - DEFORMATION MAX. -
  28. C EFMAX - EFFORT MAX. +
  29. C EFMIN - EFFORT MAX. -
  30. C X01 - DERNIERE INTERSECTION AVEC L'AXE OX DANS LA PARTIE +
  31. C X02 - DERNIERE INTERSECTION AVEC L'AXE OX DANS LA PARTIE -
  32. C FINT - EFFORT MAX. POUR LA DECHARGE AVEC UNE RIG. INELASTIQUE
  33. C IFLAG - FLAG POUR LE STADE DE COMPORTEMENT
  34. C REL - RIGIDITE ELASTIQUE COHERENTE AVEC LA MATRICE DE
  35. C RIGIDITE
  36. C REL1 - RIGIDITE ELASTIQUE DANS LE SENS +
  37. C REL2 - RIGIDITE ELASTIQUE DANS LE SENS -
  38. C RR1 - RIGIDITE SECANTE DANS LE SENS +
  39. C RR2 - RIGIDITE SECANTE DANS LE SENS -
  40. C RIN1 - RIGIDITE INELASTIQUE DANS LE SENS +
  41. C RIN2 - RIGIDITE INELASTIQUE DANS LE SENS -
  42. C DEPT - DEFORMATION TOTALE
  43. C RR - RIGIDITE POUR LE STADE DE COMPORTEMENT ACTUEL
  44. C ----------------------------------------------------------------------
  45. C
  46. IMPLICIT INTEGER(I-N)
  47. IMPLICIT REAL*8(A-H,O-Z)
  48. C
  49. C INITIALISATION
  50. C
  51. REL = (ELEF1 - ELEF2) / (ELDEP1 - ELDEP2)
  52. C
  53. IF (ELDEP1.LT.YLDEP1) THEN
  54. REL1 = (YLEF1 - ELEF1) / (YLDEP1 - ELDEP1)
  55. ELSE
  56. REL1 = REL
  57. END IF
  58. C
  59. IF (ELDEP2.GT.YLDEP2) THEN
  60. REL2 = (YLEF2 - ELEF2) / (YLDEP2 - ELDEP2)
  61. ELSE
  62. REL2 = REL
  63. END IF
  64. C
  65.  
  66. RIN1 = (ULEF1 - YLEF1) / (ULDEP1 - YLDEP1)
  67. RIN2 = (ULEF2 - YLEF2) / (ULDEP2 - YLDEP2)
  68. RR1 = (YLEF1 / YLDEP1)
  69. RR2 = (YLEF2 / YLDEP2)
  70. C
  71. IF(IFLAG.EQ.0)THEN
  72. IFLAG = 1
  73. RR = REL
  74. DEPMAX = ELDEP1
  75. EFMAX = ELEF1
  76. DEPMIN = ELDEP2
  77. EFMIN = ELEF2
  78. EFLIM = 0.0
  79. FINT = 0.0
  80. DEP = 0.0
  81. X01 = 0.0
  82. X02 = 0.0
  83. END IF
  84. C
  85. DEPT = DEP + VARDEP
  86. C
  87. C CAS EF = 0
  88. C
  89. IF(EF.EQ.0.)THEN
  90. IF(IFLAG.EQ.1)THEN
  91. IF(VARDEP.GT.0.) GO TO 11
  92. IF(VARDEP.LT.0.) GO TO 12
  93. END IF
  94. IF(IFLAG.EQ.3)THEN
  95. IF(((RR.EQ.RR1).AND.(VARDEP.GE.0.)).OR.
  96. 1 ((RR.EQ.RR2).AND.(VARDEP.LE.0.)))THEN
  97. IF(DEPT.GT.YLDEP1)THEN
  98. DEP = YLDEP1
  99. EF = YLEF1
  100. VARDEP = DEPT - DEP
  101. RR = RIN1
  102. GO TO 2
  103. END IF
  104. IF(DEPT.LT.YLDEP2)THEN
  105. DEP = YLDEP2
  106. EF = YLEF2
  107. VARDEP = DEPT - DEP
  108. RR = RIN2
  109. GO TO 2
  110. END IF
  111. EF = VARDEP * RR
  112. DEP = DEPT
  113. RETURN
  114. ELSE
  115. IF(RR.EQ.RR1)THEN
  116. EFLIM=(X02-X01)*RIN1*RR2/(RR2-RIN1)
  117. RR = RIN1
  118. GO TO 4
  119. END IF
  120. IF(RR.EQ.RR2)THEN
  121. RR = RIN2
  122. EFLIM=(X01-X02)*RIN2*RR1/(RR1-RIN2)
  123. GO TO 4
  124. END IF
  125. END IF
  126. GO TO 3
  127. END IF
  128. IF(IFLAG.EQ.4)THEN
  129. IF((VARDEP.GT.0.).AND.(RR.EQ.RIN1))THEN
  130. RR = RR1
  131. GO TO 3
  132. END IF
  133. IF((VARDEP.LT.0.).AND.(RR.EQ.RIN2))THEN
  134. RR = RR2
  135. GO TO 3
  136. END IF
  137. GO TO 4
  138. END IF
  139. END IF
  140. C
  141. GO TO(1,2,3,4,5)IFLAG
  142. C
  143. C STADE ELASTIQUE
  144. C
  145. C
  146. 1 IFLAG = 1
  147. 11 IF(EF.GE.0)THEN
  148. IF(DEPT.GT.YLDEP1)THEN
  149. DEPMAX = YLDEP1
  150. EFMAX = YLEF1
  151. VARDEP = DEPT - YLDEP1
  152. DEP = YLDEP1
  153. EF = YLEF1
  154. RR = RIN1
  155. GO TO 2
  156. ELSE
  157. IF ((ELDEP1.LT.YLDEP1).AND.(DEPT.GE.0.))THEN
  158. IF (VARDEP.GE.0.)THEN
  159. IF ((DEP.GE.DEPMAX).OR.(DEPMAX.EQ.ELDEP1)) THEN
  160. IF ((DEP.LE.ELDEP1).AND.(DEPT.LE.ELDEP1))THEN
  161. RR=REL
  162. ELSE IF ((DEP.GE.ELDEP1).AND.(DEPT.GE.ELDEP1))THEN
  163. RR=REL1
  164. ELSE IF ((DEP.LE.ELDEP1).AND.(DEPT.GE.ELDEP1))THEN
  165. VARDEP=DEPT-ELDEP1
  166. EF=ELEF1
  167. DEP=ELDEP1
  168. RR=REL1
  169. ENDIF
  170. ELSE
  171. IF (DEPT.GE.DEPMAX) THEN
  172. VARDEP=DEPT-DEPMAX
  173. EF=EFMAX
  174. DEP=DEPMAX
  175. RR=REL1
  176. ELSE
  177. RR=(EFMAX/DEPMAX)
  178. ENDIF
  179. ENDIF
  180. ELSE
  181. IF (DEP.GT.DEPMAX) THEN
  182. DEPMAX=DEP
  183. EFMAX=EF
  184. ENDIF
  185. IF (DEPMAX.EQ.ELDEP1)THEN
  186. RR=REL
  187. ELSE
  188. RR=(EFMAX/DEPMAX)
  189. ENDIF
  190. ENDIF
  191. EF = EF + VARDEP * RR
  192. DEP = DEPT
  193. RETURN
  194. END IF
  195. END IF
  196. IF(DEPT.LT.0.) THEN
  197. DEP = 0.
  198. VARDEP = DEPT
  199. EF = 0.
  200. RR = REL
  201. GO TO 12
  202. END IF
  203. EF = EF + VARDEP * RR
  204. DEP = DEPT
  205. RETURN
  206. END IF
  207. 12 IF(EF.LE.0.)THEN
  208. IF(DEPT.LT.YLDEP2) THEN
  209. DEPMIN = YLDEP2
  210. EFMIN = YLEF2
  211. VARDEP = DEPT - YLDEP2
  212. DEP = YLDEP2
  213. EF = YLEF2
  214. RR = RIN2
  215. GO TO 2
  216. ELSE
  217. IF ((ELDEP2.GT.YLDEP2).AND.(DEPT.LE.0.))THEN
  218. IF (VARDEP.LE.0.)THEN
  219. IF ((DEP.LE.DEPMIN).OR.(DEPMIN.EQ.ELDEP2)) THEN
  220. IF ((DEP.GE.ELDEP2).AND.(DEPT.GE.ELDEP2))THEN
  221. RR=REL
  222. ELSE IF ((DEP.LE.ELDEP2).AND.(DEPT.LE.ELDEP2))THEN
  223. RR=REL2
  224. ELSE IF ((DEP.GE.ELDEP2).AND.(DEPT.LE.ELDEP2))THEN
  225. VARDEP=DEPT-ELDEP2
  226. EF=ELEF2
  227. DEP=ELDEP2
  228. RR=REL2
  229. ENDIF
  230. ELSE
  231. IF (DEPT.LE.DEPMIN) THEN
  232. VARDEP=DEPT-DEPMIN
  233. EF=EFMIN
  234. DEP=DEPMIN
  235. RR=REL2
  236. ELSE
  237. RR=(EFMIN/DEPMIN)
  238. ENDIF
  239. ENDIF
  240. ELSE
  241. IF (DEP.LT.DEPMIN)THEN
  242. DEPMIN=DEP
  243. EFMIN=EF
  244. ENDIF
  245. IF (DEPMIN.EQ.ELDEP2)THEN
  246. RR=REL
  247. ELSE
  248. RR=(EFMIN/DEPMIN)
  249. ENDIF
  250. ENDIF
  251. EF = EF + VARDEP * RR
  252. DEP = DEPT
  253. RETURN
  254. END IF
  255. END IF
  256. IF (DEPT.GT.0.) THEN
  257. DEP = 0.
  258. VARDEP = DEPT
  259. EF = 0.
  260. RR = REL
  261. GO TO 11
  262. END IF
  263. EF = EF + VARDEP * RR
  264. DEP = DEPT
  265. RETURN
  266. END IF
  267. C
  268. C STADE PLASTIQUE
  269. C
  270. 2 IFLAG = 2
  271. IF((EF * VARDEP).GE.0.)THEN
  272. EF = EF + VARDEP * RR
  273. DEP = DEPT
  274. IF(DEP.GT.ULDEP1) IDEP = 1
  275. IF(DEP.LT.ULDEP2) IDEP = -1
  276. RETURN
  277. END IF
  278. IF(EF.GE.0.)THEN
  279. DEPMAX = DEP
  280. EFMAX = EF
  281. RR = RR1
  282. ELSE
  283. DEPMIN = DEP
  284. EFMIN = EF
  285. RR = RR2
  286. END IF
  287. C
  288. C DECHARGE SANS CHANGEMENT DE SENS
  289. C
  290. 3 IFLAG = 3
  291. EFT1 = EF + VARDEP * RR
  292. IF((EF * EFT1).GT.0.)THEN
  293. IF(((EF * VARDEP).GT.0.).AND.(FINT.NE.0.))THEN
  294. IF(ABS(EFT1).LT.ABS(FINT))GO TO 31
  295. DEP = DEP + (FINT-EF)/RR
  296. VARDEP = DEPT - DEP
  297. EF = FINT
  298. FINT = 0.0
  299. IF(EF.GE.0.)THEN
  300. RR = RIN2
  301. ELSE
  302. RR = RIN1
  303. END IF
  304. GO TO 4
  305. END IF
  306. IF(DEPT.GT.DEPMAX)THEN
  307. VARDEP = DEPT - DEPMAX
  308. DEP = DEPMAX
  309. EF = EFMAX
  310. RR = RIN1
  311. GO TO 2
  312. END IF
  313. IF(DEPT.LT.DEPMIN)THEN
  314. VARDEP = DEPT - DEPMIN
  315. DEP = DEPMIN
  316. EF = EFMIN
  317. RR = RIN2
  318. GO TO 2
  319. END IF
  320. EF = EF + VARDEP * RR
  321. DEP = DEPT
  322. RETURN
  323. END IF
  324. 31 DEP = DEP - EF / RR
  325. VARDEP = DEPT - DEP
  326. IF(EF.GT.0.)THEN
  327. IF(DEP.GT.X01)X01 = DEP
  328. EF = 0.
  329. RR = RIN1
  330. EFLIM = (X02 - DEP) * RIN1 * RR2 / (RR2 - RIN1)
  331. GO TO 4
  332. ELSE IF(EF.LT.0.)THEN
  333. IF(DEP.LT.X02)X02 = DEP
  334. EF = 0.
  335. RR = RIN2
  336. EFLIM = (X01 - DEP) * RIN2 * RR1 / (RR1 - RIN2)
  337. GO TO 4
  338. END IF
  339. C
  340. C DECHARGE APRES LE CHANGEMENT DE SENS
  341. C
  342. 4 IFLAG = 4
  343. IF((EF * VARDEP).GE.0.)THEN
  344. EFT1 = EF + VARDEP * RR
  345. IF((EF * EFT1).LT.0.)THEN
  346. FINT = 0.
  347. IF(EF.GE.0.)THEN
  348. DEP = X02
  349. RR = RR2
  350. ELSE
  351. DEP = X01
  352. RR = RR1
  353. END IF
  354. VARDEP = DEPT - DEP
  355. EF = 0.
  356. GO TO 3
  357. END IF
  358. IF(ABS(EFT1).GE.ABS(EFLIM))THEN
  359. FINT = 0.
  360. DEP = DEP + (EFLIM - EF) / RR
  361. VARDEP = DEPT - DEP
  362. EF = EFLIM
  363. IF(EFT1.GT.0.)THEN
  364. RR = RR1
  365. ELSE
  366. RR = RR2
  367. END IF
  368. GO TO 5
  369. END IF
  370. EF = EF + VARDEP * RR
  371. DEP = DEPT
  372. RETURN
  373. END IF
  374. FINT = EF
  375. IF(EF.GE.0.)RR = RR1
  376. IF(EF.LT.0.)RR = RR2
  377. GO TO 3
  378. C
  379. C DECHARGE APRES LE DEPASSEMENT DU FINT
  380. C
  381. 5 IFLAG = 5
  382. IF(DEPT.GT.YLDEP1) THEN
  383. IF(DEPMAX.LT.YLDEP1) THEN
  384. DEPMAX = YLDEP1
  385. EFMAX = YLEF1
  386. END IF
  387. IF(DEPT.GT.DEPMAX) THEN
  388. VARDEP = DEPT - DEPMAX
  389. DEP = DEPMAX
  390. EF = EFMAX
  391. RR = RIN1
  392. GO TO 2
  393. END IF
  394. END IF
  395. IF(DEPT.LT.YLDEP2) THEN
  396. IF(DEPMIN.GT.YLDEP2) THEN
  397. DEPMIN = YLDEP2
  398. EFMIN = YLEF2
  399. END IF
  400. IF(DEPT.LT.DEPMIN) THEN
  401. VARDEP = DEPT - DEPMIN
  402. DEP = DEPMIN
  403. EF = EFMIN
  404. RR = RIN2
  405. GO TO 2
  406. END IF
  407. END IF
  408. EFT1 = EF + VARDEP * RR
  409. IF((EF * EFT1).LT.0.)THEN
  410. DEP = DEP - EF / RR
  411. VARDEP = DEPT - DEP
  412. IF(EF.GE.0.)THEN
  413. IF(DEP.GT.X01)X01 = DEP
  414. EF = 0.
  415. RR = RIN1
  416. EFLIM = (X02 - DEP) * RIN1 * RR2 / (RR2 - RIN1)
  417. GO TO 4
  418. ELSE
  419. IF(DEP.LT.X02)X02 = DEP
  420. EF = 0.
  421. RR = RIN2
  422. EFLIM = (X01 - DEP) * RIN2 * RR1 / (RR1 - RIN2)
  423. GO TO 4
  424. END IF
  425. END IF
  426. EF = EF + VARDEP * RR
  427. DEP = DEPT
  428. RETURN
  429. C
  430. END
  431.  
  432.  

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