Télécharger fati.eso

Retour à la liste

Numérotation des lignes :

fati
  1. C FATI SOURCE CHAT 07/12/04 21:15:55 5985
  2. C FATI
  3. SUBROUTINE FATI (WRK0,WRK1,WRKK2,WRK5,NSTRS,NVARI,
  4. 1 NMATT,ISTEP,ICARA,JDIM,IFOUR2,DT)
  5. C MAZARS SOURCE AM 00/12/13 21:39:37 4045
  6. C SUBROUTINE MAZARS (WRK0,WRK1,WRKK2,WRK5,NSTRS,NVARI,
  7. C 1 NMATT,ISTEP,ICARA,JDIM,IFOUR2)
  8. *======================================================================
  9. * DB
  10. * FOR THE NONLOCAL CASE CALLED by ECOU40 --> FATTT --> FATI
  11. * New source: one nonlocal damage material model added:
  12. * Fatigue damage
  13. * This routine is inspired based on mazars.eso
  14. *
  15. C Goal: allowing cyclic cumulative damage calculation under simple fatigue loading
  16. C
  17. C Description:
  18. C 1. The threshold is maintiened allowing an endurance limit but not tested
  19. C 2. The equivalent strain is changed replaced by the geometric average of the positive stresses
  20. C induced strain ( no damage growth due to compression induced tension - Poisson effect)
  21. C 3. The damage rate given in [1] is integrated over a cycle with
  22. C dD/dN = f(D) eps_a^(beta+1)/(beta+1)
  23. C 4. Two expression of the f(D) funcion are implemented
  24. C a) LOI = 2. power law as chosen in [2]
  25. C b) LOI = 3. power law including a damage rate acceleration as describe in [1]
  26. C
  27. C References:
  28. C [1] D. Bodin, G. Pijaudier-Cabot, C. de La Roche, J.-M Piau and A. Chabot, (2004)
  29. C A Continuum Damage Approach to Asphalt Concrete Fatigue Modelling, Journal of
  30. C Engineering Mechanics, ASCE, vol. 130 (6), pp. 700-708.
  31. C
  32. C [2] Paas, R. H. J. W., Scheurs, P. J. G., and Brekelmans, W. A. M. (1993). ‘A
  33. C continuum approach to brittle and fatigue damage: Theory and numerical
  34. C procedures.’ Int. J. Solids Struct., 30~4!, 579–599.
  35. C
  36. * DB
  37. *
  38. *======================================================================
  39. C
  40. C
  41. C
  42. C
  43. C variables en entree
  44. C
  45. C
  46. C WRK0 pointeur sur un segment deformation au pas precedent
  47. C
  48. C WRK1 pointeur sur un segment increment de deformation
  49. C
  50. C WRKK2 pointeur sur un segment variables internes au pas precedent
  51. C
  52. C WRK5 pointeur sur un segment de deformations inelastiques
  53. C
  54. C XMATER constantes du materiau
  55. C
  56. C NSTRS nombre de composantes dans les vecteurs des contraintes
  57. C et les vecteurs des deformations
  58. C
  59. C NVARI nombre de variables internes (doit etre egal a 2)
  60. C
  61. C NMATT nombre de constantes du materiau
  62. C
  63. C ISTEP flag utilise pour separer les etapes dans un calcul non local
  64. C ISTEP=0 -----> calcul local
  65. C ISTEP=1 -----> calcul non local etape 1 on calcule les seuils
  66. C ISTEP=2 -----> calcul non local etape 2 on continue le calcul
  67. C a partir des seuils moyennes
  68. C
  69. C Modif L.Bode - 14/10/92
  70. C Nouveaux parametres en entree
  71. C JDIM Dimension de travail
  72. C ( Coques JDIM =2 , Massifs JDIM = IDIM )
  73. C IFOUR2 Type de formulation
  74. C ( Coques IFOUR2 = -2 => contraintes planes ,
  75. C Massifs IFOUR2 = IFOUR)
  76. C
  77. C variables en sortie
  78. C
  79. C VARINF variables internes finales
  80. C
  81. C SIGMAF contraintes finales
  82. C
  83. C C. LA BORDERIE MARS 1992
  84. C declaration des variables
  85. C
  86. C
  87. IMPLICIT REAL*8(A-H,O-Z)
  88. -INC PPARAM
  89. -INC CCOPTIO
  90. SEGMENT WRK0
  91. REAL*8 XMAT(NMATT)
  92. ENDSEGMENT
  93. *
  94. SEGMENT WRK1
  95. REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS)
  96. REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI)
  97. REAL*8 DEFP(NSTRS),XCAR(ICARA)
  98. ENDSEGMENT
  99. SEGMENT WRKK2
  100. REAL*8 EPSILI(NSTRS),DSIGT(NSTRS)
  101. ENDSEGMENT
  102. C Modif L.Bode - 14/10/92
  103. SEGMENT WRK3
  104. REAL*8 EPSILO(NSTRS)
  105. ENDSEGMENT
  106. C Definition dynamique de EPSILO
  107. C Fin modif L.Bode
  108. SEGMENT WRK5
  109. REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS)
  110. ENDSEGMENT
  111. C
  112. CHARACTER*8 CMATE
  113. INTEGER NSTRS,NVARI,NMATT,ISTEP
  114. REAL*8 EPS33(3,3),EPSIPP(3),EPSILT(3),VALP33(3,3)
  115. REAL*8 SIGP(3),SIGPT(3),SIGPC(3),TRSIGT,TRSIGC
  116. C REAL*8 YOUN,XNU,EPSD0,ACOM,BCOM,ATRA,BTRA,BETA
  117. REAL*8 YOUN,XNU,EPSD0
  118. C ajout bodin 14 02 2006
  119. REAL*8 BETA,LOI
  120. C pour la loi L2R
  121. REAL*8 C,ALFA
  122. C pour la loi L3R
  123. REAL*8 ALFA1,ALFA2,ALFA3
  124. C fin ajout bodin 14 02 2006
  125. INTEGER ISTRS,JSTRS,KCAS,IRTD
  126. REAL*8 XZERO,UN,DEUX,TROIS
  127. REAL*8 EPSTL0,EPSTM0
  128. REAL*8 DINI,D,EPSTIL,EPSTIM,ALFAT,ALFAC,GAMMA
  129. REAL*8 dt1
  130. C Fin modif Bodin - 26-09-2005
  131. PARAMETER (XZERO=0.D0,UN=1.D0,DEUX=2.D0,TROIS=3.D0)
  132.  
  133. C
  134. C
  135. C recuperation des variables initiales dans les tableaux
  136. C
  137. C
  138. N=NSTRS
  139. CMATE = 'ISOTROPE'
  140. YOUN = XMAT(1)
  141. XNU = XMAT(2)
  142. EPSD0= XMAT(5)
  143. BETA = XMAT(6)
  144. LOI = XMAT(7)
  145. C = XMAT(8)
  146. ALFA = XMAT(9)
  147. ALFA1 = XMAT(10)
  148. ALFA2 = XMAT(11)
  149. ALFA3 = XMAT(12)
  150. C ajout bodin 17-11-2000
  151. C introduction de la variable EPSTIMI déformation équivalent initiale
  152. EPSTL0 = VAR0(1)
  153. C fin ajout bodin
  154. DINI = VAR0(2)
  155. C
  156. C
  157. C print*,'Je suis dans mazars'
  158. C
  159. C ajout bodin 26 09 2005
  160. C print*,'mazars Variable DT ',DT
  161. dt1 =DT
  162. C print*,'mazars variable dt1',dt1
  163. C fin ajout bodin 26 09 2005
  164.  
  165. C
  166. C calcul des seuils
  167. C
  168. C
  169. C calcul de la deformation totale
  170. C
  171. SEGINI WRK3
  172. DO 100 ISTRS=1,NSTRS
  173. EPSILO(ISTRS)=EPSILI(ISTRS)+DEPST(ISTRS)
  174. 100 CONTINUE
  175. C
  176. C calcul des deformations principales
  177. C
  178. C
  179. C on reecrit les deformations sous forme matricielle
  180. C
  181. C Modif L.Bode - 14/10/92
  182. C Rajout de IFOUR2 en argument de ENDOCA
  183. * print*,'on appelle ENDOCB'
  184. CALL ENDOCB (EPSILO,EPS33,2,IFOUR2)
  185. * print*,'apres endocb'
  186. C Fin modif L.Bode
  187. C
  188. C et on diagonalise
  189. C
  190. C Modif L.Bode - 14/10/92
  191. C Pour les elts Coques, on travaille en contraintes planes => JDIM =2
  192. C Pour les elts Massifs JDIM =IDIM
  193. * print*,'avant JACOB3'
  194. CALL JACOB3 (EPS33,JDIM,EPSIPP,VALP33)
  195. * print*,'apres JACOB3'
  196. C Fin modif L.Bode
  197. IF (ISTEP .EQ. 0 .OR. ISTEP.EQ.2) THEN
  198. C
  199. C on calcule la matrice de hooke et les contraintes ppales
  200. C
  201. C CMATE = 'ISOTROPE'
  202. C KCAS=1
  203. C Modif L.Bode - 14/10/92
  204. C IFOUR --> IFOUR2 dans appel DOHMAS
  205. C* print*,'avant dohmas'
  206. C CALL DOHMAS(XMAT,CMATE,IFOUR2,NSTRS,KCAS,DDHOOK,IRTD)
  207. C* print*,'apres dohmas'
  208. C Fin modif L.Bode
  209. C DO 200 ISTRS=1,3
  210. C SIGP(ISTRS)= XZERO
  211. C DO 210 JSTRS=1,3
  212. C SIGP(ISTRS)=SIGP(ISTRS)+DDHOOK(ISTRS,JSTRS)*EPSIPP(JSTRS)
  213. C210 CONTINUE
  214. C200 CONTINUE
  215. END IF
  216. C
  217. C on complete la deformation dans le cas des contraintes planes
  218. C
  219. C Modif L.Bode - 14/10/92
  220. C IFOUR remplace par IFOUR2
  221. IF (IFOUR2.EQ. -2) THEN
  222. EPSIPP(3)= -(EPSIPP(1) + EPSIPP(2))*XNU / (UN-XNU)
  223. END IF
  224. C Fin modif L.Bode
  225. C
  226. C on calcule le epsilontild
  227. Cmodif bodin 6 juillet 2001 pour le calcul de epsilon equivalente
  228. C on calcule la matrice de hooke et les contraintes ppales
  229. C
  230. CMATE = 'ISOTROPE'
  231. KCAS=1
  232. C Modif L.Bode - 14/10/92
  233. C IFOUR --> IFOUR2 dans appel DOHMAS
  234. * print*,'avant dohmas'
  235. CALL DOHMAS(XMAT,CMATE,IFOUR2,NSTRS,KCAS,DDHOOK,IRTD)
  236. * print*,'apres dohmas'
  237. C Fin modif L.Bode
  238.  
  239. DO 200 ISTRS=1,3
  240. SIGP(ISTRS)= XZERO
  241. DO 210 JSTRS=1,3
  242. SIGP(ISTRS)=SIGP(ISTRS)+DDHOOK(ISTRS,JSTRS)*EPSIPP(JSTRS)
  243. 210 CONTINUE
  244. 200 CONTINUE
  245. C
  246. C on calcule le signe des contraintes elastiques
  247. C
  248. DO 300 ISTRS=1,3
  249. IF (SIGP(ISTRS).LT. XZERO) THEN
  250. SIGPC(ISTRS)=SIGP(ISTRS)
  251. SIGPT(ISTRS)=XZERO
  252. ELSE
  253. SIGPT(ISTRS)=SIGP(ISTRS)
  254. SIGPC(ISTRS)=XZERO
  255. END IF
  256. 300 CONTINUE
  257. TRSIGT=SIGPT(1)+SIGPT(2)+SIGPT(3)
  258. TRSIGC=SIGPC(1)+SIGPC(2)+SIGPC(3)
  259. C
  260. C on calcule les deformations dues aux contraintes positives
  261. C
  262. DO 400 ISTRS=1,3
  263. EPSILT(ISTRS)=(SIGPT(ISTRS)*(UN+XNU)-TRSIGT*XNU)/YOUN
  264. 400 CONTINUE
  265. C
  266. EPSTIL=MAX( XZERO , EPSILT(1) )**2 +
  267. 1 MAX( XZERO , EPSILT(2) )**2 +
  268. 2 MAX( XZERO , EPSILT(3) )**2
  269. EPSTIL=SQRT (EPSTIL)
  270. C
  271. C EPSTIL=MAX( XZERO , EPSIPP(1) )**2 +
  272. C 1 MAX( XZERO , EPSIPP(2) )**2 +
  273. C 2 MAX( XZERO , EPSIPP(3) )**2
  274. C EPSTIL=SQRT (EPSTIL)
  275. C fin modif bodin 6 juillet 2001 pour le calcul de epsilon equivalente
  276. IF (ISTEP .EQ. 0) THEN
  277. EPSTIM=EPSTIL
  278. EPSTM0=EPSTL0
  279. VARF(1)=EPSTIL
  280. ELSE IF (ISTEP .EQ. 1) THEN
  281. VARF(2)=DINI
  282. VARF(1)=EPSTIL
  283. C ajout bodin 13-03-2001 pour une nouvelle variable interne
  284. C VARx(3) introduite pour garder la mémoire de la déf eq initiale
  285. C marche en non local si le champ de EPSTL0 est non local par exemple identiquement nul
  286. VARF(3)=EPSTL0
  287. C fin ajout bodin 13-03-2001
  288. ELSE IF (ISTEP .EQ. 2) THEN
  289. C ajout bodin 13-03-2001 pour une nouvelle variable interne
  290. C VARx(3) introduite pour garder la mémoire de la déf eq initiale
  291. EPSTM0=VAR0(3)
  292. C fin ajout bodin 13-03-2001
  293. EPSTIM=VAR0(1)
  294. VARF(1)=EPSTIM
  295. ELSE
  296. PRINT*,'DANS MAZARS ISTEP = 0,1,2 ET PAS ',ISTEP
  297. END IF
  298. IF ( (ISTEP .EQ. 0) .OR. (ISTEP .EQ. 2)) THEN
  299. C
  300. C on calcule l'endommagement et les contraintes
  301. C
  302. C
  303. C on calcule ALFAT ALFAC DT et DC puis D
  304. C dans le cas ou le seuil initial est depasse
  305. C
  306. C
  307. IF ( EPSTIM .GT. EPSD0) THEN
  308. C
  309. C calcul de l'endommagement
  310. C
  311. C
  312. C on calcule le signe des contraintes elastiques
  313. C
  314. C DO 300 ISTRS=1,3
  315. C IF (SIGP(ISTRS).LT. XZERO) THEN
  316. C SIGPC(ISTRS)=SIGP(ISTRS)
  317. C SIGPT(ISTRS)=XZERO
  318. C ELSE
  319. C SIGPT(ISTRS)=SIGP(ISTRS)
  320. C SIGPC(ISTRS)=XZERO
  321. C END IF
  322. C300 CONTINUE
  323. C TRSIGT=SIGPT(1)+SIGPT(2)+SIGPT(3)
  324. C TRSIGC=SIGPC(1)+SIGPC(2)+SIGPC(3)
  325. C
  326. C on calcule les deformations dues aux contraintes positives
  327. C
  328. C DO 400 ISTRS=1,3
  329. C EPSILT(ISTRS)=(SIGPT(ISTRS)*(UN+XNU)-TRSIGT*XNU)/YOUN
  330. C400 CONTINUE
  331. C
  332. C on en deduit ALFAT et ALFAC
  333. C
  334. C ALFAT = MAX(XZERO,EPSIPP(1))*EPSILT(1) +
  335. C 1 MAX(XZERO,EPSIPP(2))*EPSILT(2) +
  336. C 2 MAX(XZERO,EPSIPP(3))*EPSILT(3)
  337. C ALFAT = ALFAT/(EPSTIL*EPSTIL)
  338. C ALFAC = UN - ALFAT
  339. C PRINT*,'alfat = ',ALFAT,' et alfac = ',ALFAC
  340. C PRINT*,'alfa1=',A99,'beta1 =',B99,'C1 = ',C99
  341. C
  342. C modification pour la bi ou tricompression
  343. C
  344. C IF (TRSIGC.LT. -XPETIT .AND. TRSIGT.LT.XPETIT) THEN
  345. C GAMMA=SIGPC(1)*SIGPC(1)+SIGPC(2)*SIGPC(2)+
  346. C 1 SIGPC(3)*SIGPC(3)
  347. C GAMMA=-SQRT(GAMMA)/TRSIGC
  348. C EPSTIM=EPSTIM*GAMMA
  349. C END IF
  350. C
  351. C amelioration de la reponse en cisaillement pour beta > 1.
  352. C
  353. C IF (BETA .GT. UN) THEN
  354. C IF ( ALFAT .GT. XPETIT ) THEN
  355. C ALFAT=ALFAT**BETA
  356. C END IF
  357. C IF ( ALFAC .GT. XPETIT ) THEN
  358. C ALFAC=ALFAC**BETA
  359. C END IF
  360. C END IF
  361. C
  362. C
  363. C on calcule DT et DC puis D
  364. C dans le cas ou le seuil initial est depasse
  365. C
  366. C on est oblige de verifier car on a pu multiplier par gamma
  367. C
  368. C modif bodin 26-02-2001
  369. C modif bodin 26-02-2001
  370. C calcul incrémental pour le pas EPSTIM-EPSTIMI de déformation
  371. C équivalente
  372. C
  373. C
  374. C
  375. C
  376. C
  377. C
  378. C PRINT*,'Je suis dans mazars_bod et je suis content !!'
  379. C PRINT*,'La def initiale est',EPSTM0
  380. C PRINT*,'La def finale est',EPSTIM
  381.  
  382. IF (LOI.EQ.DEUX) THEN
  383. D=((DINI**(1-ALFA))+
  384. 1 ((C*(1-ALFA)/(BETA+1))*
  385. 2 ((EPSTIM**(BETA+1))-(EPSD0**(BETA+1)))*(dt1*2)
  386. 3 ))**(1/(1-ALFA))
  387. C
  388. ELSE IF (LOI.EQ.TROIS) THEN
  389. C on traite la loi L3R
  390. C calcul d'un term intermediaire
  391. TERM_A= (((ALFA1*(UN -EXP(-1*((DINI/ALFA2)**ALFA3))))+
  392. 1 ((((EPSTIM**(BETA+1))-(EPSD0**(BETA+1)))
  393. 2 /(BETA+UN))*(dt1*2))
  394. 3 )/ALFA1)
  395. C
  396. IF (TERM_A .LT. UN) THEN
  397. D= ALFA2 *((-1*(LOG(UN - TERM_A)))**(UN/ALFA3))
  398. ELSE
  399. D=UN
  400. END IF
  401. C sinon roblème de définition de LOI
  402. ELSE
  403. WRITE(*,*) 'LOI doit etre egal à 2. ou 3.'
  404. STOP
  405. END IF
  406. C
  407. C on borne la valeur de D a 0.99999
  408. C
  409. D=MIN ( D , UN-1.D-05 )
  410. ELSE
  411. C on n'a pas dépassé le seuil
  412. D=XZERO
  413. END IF
  414. C
  415. C on teste la croissance de D
  416. C
  417. D=MAX ( D , DINI )
  418. C
  419. C on le stocke dans les variables internes finales
  420. C
  421. VARF(2)= D
  422. C
  423. C on calcule les contraintes finales
  424. C
  425. CALL MATVE1 (DDHOOK,EPSILO,NSTRS,NSTRS,SIGF,2)
  426. DO 500 ISTRS=1,NSTRS
  427. SIGF(ISTRS)=SIGF(ISTRS)*(UN-D)
  428. 500 CONTINUE
  429. C
  430. C et les deformations inelastiques finales
  431. C
  432. DO 600 ISTRS=1,NSTRS
  433. EPINF(ISTRS)=EPSILO(ISTRS)*D
  434. 600 CONTINUE
  435.  
  436. END IF
  437. SEGSUP WRK3
  438. RETURN
  439. END
  440.  
  441.  

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