Télécharger rotatj.eso

Retour à la liste

Numérotation des lignes :

rotatj
  1. C ROTATJ SOURCE CHAT 05/01/13 03:05:17 5004
  2. SUBROUTINE ROTATJ(WRK0,WRK1,KERRE)
  3. C
  4. C Rotating Crack model avec 2 directions de fissuration
  5. C D. Combescure 24/08/95 ELSA-Ispra
  6. C
  7. C ENTREES:
  8. C -------
  9. C WRK0:
  10. C XMAT = CARACTERISTIQUES MECANIQUES DU MATERIAU
  11. C
  12. C WRK1:
  13. C SIG0 = CONTRAINTES AU DEBUT DU PAS D'INTEGRATION
  14. C DEPST = INCREMENT DES DEFORMATIONS TOTALES
  15. C VAR0 = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION
  16. C
  17. C variables en sortie
  18. C
  19. C VARF variables internes finales dans WRK0
  20. C
  21. C SIGF contraintes finales dans WRK0
  22. IMPLICIT INTEGER(I-N)
  23. IMPLICIT REAL*8(A-H,O-Z)
  24. -INC CCREEL
  25. SEGMENT WRK0
  26. REAL*8 XMAT(NMATT)
  27. ENDSEGMENT
  28. *
  29. SEGMENT WRK1
  30. REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS)
  31. REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI)
  32. REAL*8 DEFP(NSTRS),XCAR(ICARA)
  33. ENDSEGMENT
  34. DIMENSION DEFI(4),DINC(4), DAM(2),XXX(2)
  35. DIMENSION EPSN(2), EPS(2), EPSX(2), EPSP(2),SIGP(2),SIGM(2)
  36. DIMENSION CCCC(2,2),XX(2),FF(2),NMEC(2),IMEC(2)
  37. DIMENSION T(3,3)
  38. C
  39. PARAMETER (UN=1.D0,UNDEMI=0.5D0,EPSILO=1.D-5)
  40. KERRE=0
  41. C===============================================================
  42. C LECTURE DES CARACTERISTIQUES MAT. ET DES VAR. INT.
  43. C===============================================================
  44. C Materiau --> 5-Resistance en traction
  45. C 6-Deformation a la rupture
  46. C 7-Resistance residuelle
  47. C 8-Coef. de refermeture de la fissure
  48. C--------------------------------------------------------------
  49. YOUN = XMAT(1)
  50. XNU = XMAT(2)
  51. XFTR = XMAT(5)
  52. EPSR = XMAT(6)
  53. XFRE = XMAT(7)
  54. BETA = XMAT(8)
  55. XHH1 = (XFRE - XFTR)/EPSR
  56. C--------------------------------------------------------------
  57. C Variables internes->1 et 2- cos et sin de l'angle
  58. C 3 et 4- "Deformation" maximale de la fissure
  59. C 5 et 6- Deformations principales
  60. C 7 - Cas pour le calcul de Kta
  61. C--------------------------------------------------------------
  62. CPHI = VAR0(1) + UN
  63. SPHI = VAR0(2)
  64. EPS(1) = VAR0(3)
  65. EPS(2) = VAR0(4)
  66. EPSN(1) = VAR0(5)
  67. EPSN(2) = VAR0(6)
  68. C
  69. C Remplissage de la matrice de transformation
  70. C (Ecrite pour le tenseur des contraintes et des deformations)
  71. T(1,1) = CPHI**2
  72. T(1,2) = SPHI**2
  73. T(1,3) = -2.D0*SPHI*CPHI
  74. T(2,1) = T(1,2)
  75. T(2,2) = T(1,1)
  76. T(2,3) = -T(1,3)
  77. T(3,1) = SPHI*CPHI
  78. T(3,2) = -SPHI*CPHI
  79. T(3,3) = (CPHI**2) - (SPHI**2)
  80. C
  81. C================================================================
  82. C CALCUL DES DEFORMATIONS TOTALES ET PASSAGE DANS LE REPERE PRINCIPAL
  83. C================================================================
  84. DEFI(1) = T(1,1)*EPSN(1) + T(1,2)*EPSN(2)
  85. DEFI(2) = T(2,1)*EPSN(1) + T(2,2)*EPSN(2)
  86. DEFI(4) = -(T(3,1)*EPSN(1) + T(3,2)*EPSN(2))
  87. DEFI(1) = DEFI(1) + DEPST(1)
  88. DEFI(2) = DEFI(2) + DEPST(2)
  89. DEFI(4) = DEFI(4) + DEPST(4)/2
  90. C Passage dans le nouveau repere principal
  91. DINC(1) = T(1,1)*DEFI(1) + T(1,2)*DEFI(2)
  92. & +T(1,3)*DEFI(4)
  93. DINC(2) = T(2,1)*DEFI(1) + T(2,2)*DEFI(2)
  94. & +T(2,3)*DEFI(4)
  95. DINC(4) = T(3,1)*DEFI(1) +T(3,2)*DEFI(2)
  96. & + T(3,3)*DEFI(4)
  97. C
  98. IF (ABS(DINC(2) - DINC(1)).GT.(EPSILO*ABS(DINC(4)))) THEN
  99. TG2PHI = -2.D0*DINC(4)/(DINC(1) - DINC(2))
  100. XDPHI = UNDEMI*ATAN(TG2PHI)
  101. CDPHI = COS(XDPHI)
  102. SDPHI = SIN(XDPHI)
  103. ELSE
  104. XDPHI = SIGN ((XPI/4.D0), DINC(4)*(DINC(1)-DINC(2)))
  105. CDPHI = SQRT(2.D0)/2.D0
  106. SDPHI = SIGN (CDPHI, DINC(4)*(DINC(1)-DINC(2)))
  107. ENDIF
  108. C
  109. CPHIF = CPHI*CDPHI - SPHI*SDPHI
  110. SPHIF = CPHI*SDPHI + SPHI*CDPHI
  111. T(1,1) = CPHIF**2
  112. T(1,2) = SPHIF**2
  113. T(1,3) = -2.D0*SPHIF*CPHIF
  114. T(2,1) = T(1,2)
  115. T(2,2) = T(1,1)
  116. T(2,3) = -T(1,3)
  117. T(3,1) = SPHIF*CPHIF
  118. T(3,2) = -SPHIF*CPHIF
  119. T(3,3) = (CPHIF**2) - (SPHIF**2)
  120. C
  121. EPSN(1) = T(1,1)*DEFI(1) + T(1,2)*DEFI(2) + T(1,3)*DEFI(4)
  122. EPSN(2) = T(2,1)*DEFI(1) + T(2,2)*DEFI(2) + T(2,3)*DEFI(4)
  123. XTEST = T(3,1)*DEFI(1)+T(3,2)*DEFI(2) + T(3,3)*DEFI(4)
  124. XTEST = XTEST / (UN + ABS(EPSN(1)) + ABS(EPSN(2)))
  125. IF (ABS(XTEST).GT.(1.D-10)) THEN
  126. WRITE(6,*)'CONPRI : hell and damnation!'
  127. ENDIF
  128. C
  129. C================================================================
  130. C ECRITURE DE LA LOI DANS LE REPERE PRINCIPAL
  131. C================================================================
  132. C
  133. C Calcul des variables d'endommagement et des limites elastiques
  134. 10 CONTINUE
  135. DO I=1,2
  136. IF (EPS(I).LE.EPSR) THEN
  137. SIGM(I) = XFTR - (XFTR - XFRE)*EPS(I)/EPSR
  138. EPSP(I) = BETA*EPS(I)
  139. XXX(I) = UN + YOUN*(UN - BETA)*EPS(I)/SIGM(I)
  140. ELSE
  141. SIGM(I) = XFRE
  142. EPSP(I) = BETA*EPSR
  143. XXX(I) = UN + YOUN*(UN - BETA)*EPSR/XFRE
  144. & + YOUN*(EPS(I) - EPSR)/XFRE
  145. ENDIF
  146. DAM(I) = UN
  147. XXX(I) = UN/XXX(I)
  148. ENDDO
  149. C Calcul des contraintes principales
  150. 500 CONTINUE
  151. CCCC(1,1) = UN/(YOUN*DAM(1))
  152. CCCC(1,2) = -XNU/YOUN
  153. CCCC(2,1) = -XNU/YOUN
  154. CCCC(2,2) = UN/(YOUN*DAM(2))
  155. FF(1) = EPSN(1) - EPSP(1)
  156. FF(2) = EPSN(2) - EPSP(2)
  157. CALL RESOLU(CCCC, FF , XX,KERRE)
  158. SIGP(1) = XX(1)
  159. SIGP(2) = XX(2)
  160. C "Endommagement" si necessaire
  161. IF (((SIGP(1).GT.XZERO).AND.(DAM(1).NE.XXX(1)))
  162. & .OR.((SIGP(2).GT.XZERO).AND.(DAM(2).NE.XXX(2)))) THEN
  163. IF (((SIGP(1).GT.XZERO).AND.(DAM(1).NE.XXX(1)))
  164. & .AND.((SIGP(2).GT.XZERO).AND.(DAM(2).NE.XXX(2)))) THEN
  165. IF (SIGP(1).GT.SIGP(2)) THEN
  166. DAM(1) = XXX(1)
  167. ELSE
  168. DAM(2) = XXX(2)
  169. ENDIF
  170. ELSE
  171. IF ((SIGP(1).GT.XZERO).AND.(DAM(1).NE.XXX(1))) THEN
  172. DAM(1) = XXX(1)
  173. ELSE IF ((SIGP(2).GT.XZERO).AND.(DAM(2).NE.XXX(2))) THEN
  174. DAM(2) = XXX(2)
  175. ENDIF
  176. ENDIF
  177. GOTO 500
  178. ENDIF
  179. IF (((SIGP(1).LT.XZERO).AND.(DAM(1).NE.UN))
  180. & .OR.((SIGP(2).LT.XZERO).AND.(DAM(2).NE.UN))) THEN
  181. IF ((SIGP(1).LT.XZERO).AND.(DAM(1).NE.UN)) THEN
  182. DAM(1) = UN
  183. ELSE
  184. DAM(2) = UN
  185. ENDIF
  186. GOTO 500
  187. ENDIF
  188. C "Ecoulement" si necessaire
  189. NMEC(1) = 0
  190. NMEC(2) = 0
  191. IF (SIGP(1).GT.SIGM(1)) NMEC(1) = 1
  192. IF (SIGP(2).GT.SIGM(2)) NMEC(2) = 1
  193. NNMEC = NMEC(1) + NMEC(2)
  194. C
  195. IF (NNMEC.EQ.0) THEN
  196. IF ((DAM(1).EQ.UN).AND.(DAM(2).EQ.UN)) THEN
  197. ICAS = 1
  198. ELSE
  199. IF ((DAM(1).NE.UN).AND.(DAM(2).EQ.UN)) THEN
  200. ICAS = 11
  201. ELSE
  202. IF ((DAM(1).EQ.UN).AND.(DAM(2).NE.UN)) THEN
  203. ICAS = 12
  204. ELSE
  205. ICAS = 13
  206. ENDIF
  207. ENDIF
  208. ENDIF
  209. GOTO 9999
  210. ELSE
  211. IF (NNMEC.EQ.1) THEN
  212. IF (NMEC(1).EQ.1) THEN
  213. IMEC(1) = 1
  214. IMEC(2) = 2
  215. ELSE
  216. IMEC(1) = 2
  217. IMEC(2) = 1
  218. ENDIF
  219. GOTO 1000
  220. ELSE
  221. IF (SIGP(1).GE.SIGP(2)) THEN
  222. IMEC(1) = 1
  223. IMEC(2) = 2
  224. ELSE
  225. IMEC(1) = 2
  226. IMEC(2) = 1
  227. ENDIF
  228. GOTO 1000
  229. ENDIF
  230. ENDIF
  231. C Ecoulement 1 direction
  232. 1000 CONTINUE
  233. IF (EPS(IMEC(1)).LE.EPSR) THEN
  234. GOTO 1010
  235. ELSE
  236. GOTO 1020
  237. ENDIF
  238. C Cas avant rupture totale
  239. 1010 CONTINUE
  240. CCCC(1,1) = UN/YOUN + UN/XHH1
  241. CCCC(1,2) = -XNU/YOUN
  242. CCCC(2,1) = -XNU/YOUN
  243. CCCC(2,2) = UN/(DAM(IMEC(2))*YOUN)
  244. FF(1) = EPSN(IMEC(1)) + XFTR/XHH1
  245. FF(2) = EPSN(IMEC(2)) - EPSP(IMEC(2))
  246. CALL RESOLU(CCCC, FF , XX,KERRE)
  247. EPSX(1) = EPSN(IMEC(1)) - XX(1)/YOUN + (XNU/YOUN)*XX(2)
  248. IF (EPSX(1).LT.XZERO) THEN
  249. CONTINUE
  250. GOTO 9999
  251. ENDIF
  252. IF (EPSX(1).GT.EPSR) THEN
  253. GOTO 1020
  254. ENDIF
  255. IF (XX(2).GT.SIGM(IMEC(2))) THEN
  256. GOTO 2000
  257. ENDIF
  258. SIGP(IMEC(1)) = XX(1)
  259. SIGP(IMEC(2)) = XX(2)
  260. EPS(IMEC(1)) = EPSX(1)
  261. EPSP(IMEC(1)) = BETA*EPS(IMEC(1))
  262. IF (IMEC(1).EQ.1) THEN
  263. ICAS = 2
  264. ELSE
  265. ICAS = 3
  266. ENDIF
  267. GOTO 9999
  268. C Cas apres ouverture totale
  269. 1020 CONTINUE
  270. XX(1) = XFRE
  271. XX(2) = YOUN*DAM(IMEC(2))*(EPSN(IMEC(2)) - EPSP(IMEC(2)))
  272. & + XNU*DAM(IMEC(2))*XFRE
  273. IF (XX(2).GT.SIGM(IMEC(2))) THEN
  274. GOTO 2000
  275. ELSE
  276. SIGP(IMEC(1)) = XX(1)
  277. SIGP(IMEC(2)) = XX(2)
  278. EPS(IMEC(1)) = EPSN(IMEC(1)) - XX(1)/YOUN + (XNU/YOUN)*XX(2)
  279. EPSP(IMEC(1)) = BETA*EPSR
  280. IF (IMEC(1).EQ.1) THEN
  281. ICAS = 2
  282. ELSE
  283. ICAS = 3
  284. ENDIF
  285. GOTO 9999
  286. ENDIF
  287. C Cas 2 directions
  288. 2000 CONTINUE
  289. IF ((EPS(1).LE.EPSR).AND.(EPS(2).LE.EPSR)) THEN
  290. GOTO 2010
  291. ELSE
  292. IF ((EPS(1).GT.EPSR).AND.(EPS(2).LE.EPSR)) THEN
  293. IMEC(1) = 1
  294. IMEC(2) = 2
  295. GOTO 2020
  296. ELSE
  297. IF ((EPS(2).GT.EPSR).AND.(EPS(1).LE.EPSR)) THEN
  298. IMEC(1) = 2
  299. IMEC(2) = 1
  300. GOTO 2020
  301. ELSE
  302. IF ((EPS(1).GT.EPSR).AND.(EPS(2).GT.EPSR)) THEN
  303. GOTO 2030
  304. ENDIF
  305. ENDIF
  306. ENDIF
  307. ENDIF
  308. C Cas 2 directions avant rupture
  309. 2010 CONTINUE
  310. CCCC(1,1) = UN/XHH1 + UN/YOUN
  311. CCCC(1,2) = -XNU/YOUN
  312. CCCC(2,2) = UN/XHH1 + UN/YOUN
  313. CCCC(2,1) = -XNU/YOUN
  314. FF(1) = EPSN(1) + XFTR/XHH1
  315. FF(2) = EPSN(2) + XFTR/XHH1
  316. CALL RESOLU(CCCC,FF,XX,KERRE)
  317. EPSX(1) = EPSN(1) - XX(1)/YOUN + (XNU/YOUN)*XX(2)
  318. EPSX(2) = EPSN(2) - XX(2)/YOUN + (XNU/YOUN)*XX(1)
  319. IF ((EPSX(1).GT.EPSR).OR.(EPSX(2).GT.EPSR)) THEN
  320. IF ((EPSX(1).GT.EPSR).AND.(EPSX(2).LE.EPSR)) THEN
  321. IMEC(1) = 1
  322. IMEC(2) = 2
  323. ELSE
  324. IF ((EPSX(2).GT.EPSR).AND.(EPSX(1).LE.EPSR)) THEN
  325. IMEC(1) = 2
  326. IMEC(2) = 1
  327. ELSE
  328. IF ((EPSX(1).GT.EPSR).AND.(EPSX(2).GT.EPSR)) THEN
  329. IF (EPSX(1).GT.EPSX(2)) THEN
  330. IMEC(1) = 1
  331. IMEC(2) = 2
  332. ELSE
  333. IMEC(1) = 2
  334. IMEC(2) = 1
  335. ENDIF
  336. ENDIF
  337. ENDIF
  338. ENDIF
  339. GOTO 2020
  340. ELSE
  341. SIGP(1) = XX(1)
  342. SIGP(2) = XX(2)
  343. EPS(1) = EPSX(1)
  344. EPS(2) = EPSX(2)
  345. EPSP(1) = BETA*EPS(1)
  346. EPSP(2) = BETA*EPS(2)
  347. ENDIF
  348. ICAS = 4
  349. GOTO 9999
  350. C Cas 1 direction apres rupture
  351. 2020 CONTINUE
  352. XX(1) = XFRE
  353. XX(2) = (EPSN(IMEC(2)) + XNU*XFRE/YOUN + XFTR/XHH1)/
  354. & (UN/XHH1 + UN/YOUN)
  355. EPSX(1) = EPSN(IMEC(1)) + (XNU/YOUN)*XX(2) - XX(1)/YOUN
  356. EPSX(2) = EPSN(IMEC(2)) + (XNU/YOUN)*XX(1) - XX(2)/YOUN
  357. IF (EPSX(2).GT.EPSR) THEN
  358. GOTO 2030
  359. ELSE
  360. SIGP(IMEC(1)) = XX(1)
  361. SIGP(IMEC(2)) = XX(2)
  362. EPS(IMEC(1)) = EPSX(1)
  363. EPS(IMEC(2)) = EPSX(2)
  364. EPSP(IMEC(1)) = BETA*EPSR
  365. EPSP(IMEC(2)) = BETA*EPS(IMEC(2))
  366. ICAS = 4
  367. GOTO 9999
  368. ENDIF
  369. C Cas 2 directions apres rupture
  370. 2030 CONTINUE
  371. SIGP(1) = XFRE
  372. SIGP(2) = XFRE
  373. EPS(1) = EPSN(1) - ((UN - XNU)/YOUN)*XFRE
  374. EPS(2) = EPSN(2) - ((UN - XNU)/YOUN)*XFRE
  375. EPSP(1) = BETA*EPSR
  376. EPSP(2) = BETA*EPSR
  377. ICAS = 4
  378. GOTO 9999
  379. C================================================================
  380. C PASSAGE DANS LE REPERE FIXE
  381. C===============================================================
  382. 9999 CONTINUE
  383. VARF(1) = CPHIF - UN
  384. VARF(2) = SPHIF
  385. VARF(3) = EPS(1)
  386. VARF(4) = EPS(2)
  387. VARF(5) = EPSN(1)
  388. VARF(6) = EPSN(2)
  389. VARF(7) = ICAS
  390. SIGF(1) = T(1,1)*SIGP(1) + T(1,2)*SIGP(2)
  391. SIGF(2) = T(2,1)*SIGP(1) + T(2,2)*SIGP(2)
  392. SIGF(3) = XZERO
  393. SIGF(4) = -T(3,1)*SIGP(1) - T(3,2)*SIGP(2)
  394. DEFP(1) = T(1,1)*EPSP(1) + T(1,2)*EPSP(2)
  395. DEFP(2) = T(2,1)*EPSP(1) + T(2,2)*EPSP(2)
  396. DEFP(3) = XZERO
  397. DEFP(4) = -2.D0*(T(3,1)*EPSP(1) + T(3,2)*EPSP(2))
  398. RETURN
  399. END
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  

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