Télécharger lcgldm.eso

Retour à la liste

Numérotation des lignes :

lcgldm
  1. C LCGLDM SOURCE CB215821 16/04/21 21:17:40 8920
  2. SUBROUTINE LCGLDM (XMAT,VAR0,VARF,SIG0,SIGF,DEPST,XCAR)
  3. C
  4. C====&===1=========2=========3=========4=========5=========6=========7==
  5. C Commentaires : Subroutine permettant de mettre en oeuvre le
  6. C modele LGCR_DM (EDF R&D/AMA) pour representer
  7. C le comportement cyclique du béton armé sous
  8. C sollicitations cycliques
  9. C
  10. C Traits : - Endommagement scalaire
  11. C - 2D (DKT/COQUES/PLAQUES MINCES) pré-intégrée
  12. C - Monotone et cyclique
  13. C - Effet unilateral (retour à l'origine)
  14. C
  15. C Auteur : B. Richard (Dr - Ing.) - CEA/DEN/DANS/DM2S/SEMT/EMSI
  16. C====&===1=========2=========3=========4=========5=========6=========7==
  17. C
  18. C----DECLARATION GENERALES----------------------------------------------
  19. C
  20. IMPLICIT INTEGER(I-N)
  21. IMPLICIT REAL*8(A-H,O-Z)
  22. C
  23. C----DECLARATION SEGMENTS-----------------------------------------------
  24. C
  25. REAL*8 EPSIM(3,3),EPSIF(3,3),UNIT(2,2),SIGMAM(3,3)
  26. REAL*8 SIGMAF(3,3),VAPM(3),VEPM(3,3),VAPF(3),VEPF(3,3)
  27. REAL*8 XMAT(*),SIG0(*),SIGF(*),VAR0(*),VARF(*),DEPST(*),XCAR(*)
  28. REAL*8 XLAMM,XLAMF,XMUM,XMUF,XD1,XD2,XTOL
  29. REAL*8 XTRAV1(3,3),XTRAV2(3,3),VEPMT(3,3),VEPFT(3,3)
  30. REAL*8 XTRAV3(3,3),XTRAV4(3,3),XIMI(2),XIFI(2),BETAF(3,3)
  31. REAL*8 XTRAV5(2,2),XTRAV6(2,2),BETAM(3,3),SGEFF(3)
  32. C
  33. C----DECLARATION PARAMETRES---------------------------------------------
  34. C
  35. PARAMETER (UN=1.D0)
  36. PARAMETER (XTOL=1.D-8)
  37.  
  38. CALL ZERO(EPSIM,3,3)
  39. CALL ZERO(EPSIF,3,3)
  40.  
  41. DO I=1,2
  42. DO J=1,2
  43. IF (I.EQ.J) THEN
  44. UNIT(I,J) = 1.0D0
  45. ELSE
  46. UNIT(I,J) = 0.0D0
  47. ENDIF
  48. ENDDO
  49. ENDDO
  50. C
  51. C----MISE EN DONNEES----------------------------------------------------
  52. C
  53. YOUN = XMAT(1)
  54. XNU = XMAT(2)
  55.  
  56. XYOUNM = XMAT(1)
  57. XNUM = XMAT(2)
  58. XYOUNF = XMAT(5)
  59. XNUF = XMAT(6)
  60.  
  61. EPAI = XCAR(1)
  62.  
  63. XLAMM = XNUM*XYOUNM*EPAI/((1.0D0+XNUM)*(1.0D0-2.0D0*XNUM))
  64. XMUM = XYOUNM*EPAI/(2.0D0*(1.0D0+XNUM))
  65.  
  66. XLAMF = (XNUF*XYOUNF*(EPAI**(3.0D0)))/
  67. & (12.0D0*(1.0D0-(XNUF**(2.0D0))))
  68. XMUF = (XYOUNF*(EPAI**(3.0D0)))/
  69. & (24.0D0*(1.0D0+XNUF))
  70.  
  71. XGAMMT = XMAT(7)
  72. XGAMMC = XMAT(8)
  73. XGAMF = XMAT(9)
  74. XSEUI0 = XMAT(10)
  75. XALFA = XMAT(11)
  76. C
  77. C----VARIABLES INTERNES-------------------------------------------------
  78. C
  79. EPSIM(1,1) = VAR0(1)
  80. EPSIM(2,2) = VAR0(2)
  81. EPSIM(1,2) = VAR0(3)/2.0D0
  82. EPSIM(2,1) = VAR0(3)/2.0D0
  83.  
  84. EPSIF(1,1) = VAR0(4)
  85. EPSIF(2,2) = VAR0(5)
  86. EPSIF(1,2) = VAR0(6)/2.0D0
  87. EPSIF(2,1) = VAR0(6)/2.0D0
  88.  
  89. XD1 = VAR0(9)
  90. XD2 = VAR0(10)
  91.  
  92. XD10 = VAR0(9)
  93. XD20 = VAR0(10)
  94.  
  95. C print*,'DEPST',(DEPST(I),I=1,3)
  96.  
  97. C
  98. C----ACTUALISATION DEFORMATION------------------------------------------
  99. C
  100. EPSIM(1,1) = EPSIM(1,1) + DEPST(1)
  101. EPSIM(2,2) = EPSIM(2,2) + DEPST(2)
  102. EPSIM(1,2) = EPSIM(1,2) + DEPST(3)/2.0D0
  103. EPSIM(2,1) = EPSIM(2,1) + DEPST(3)/2.0D0
  104.  
  105. EPSIF(1,1) = EPSIF(1,1) + DEPST(4)
  106. EPSIF(2,2) = EPSIF(2,2) + DEPST(5)
  107. EPSIF(1,2) = EPSIF(1,2) + DEPST(6)/2.0D0
  108. EPSIF(2,1) = EPSIF(2,1) + DEPST(6)/2.0D0
  109. C
  110. C----PREDICTION ELASTIQUE-----------------------------------------------
  111. C
  112.  
  113. C Deformation hors plan
  114. CALL CALCEP33(EPSIM,XGAMMT,XGAMMC,XD1,XD2,XMUM,XLAMM,XEPS33)
  115. C
  116. C----CALCUL DES SEUILS YM1 ET YM2---------------------------------------
  117. C
  118. CALL CALCYMI(EPSIM,XGAMMT,XGAMMC,XLAMM,XMUM,XD1,XEPS33,YM1)
  119. CALL CALCYMI(EPSIM,XGAMMT,XGAMMC,XLAMM,XMUM,XD2,XEPS33,YM2)
  120. C
  121. C----CALCUL DES SEUILS YF1 ET YF2---------------------------------------
  122. C
  123.  
  124. C Calcul de YF01 et YF02
  125. CALL CALCYF01(EPSIF,XGAMF,XLAMF,XMUF,YF01)
  126. CALL CALCYF02(EPSIF,XGAMF,XLAMF,XMUF,YF02)
  127.  
  128. C Calcul de YF1 et YF2
  129. YF1 = (XALFA/(XD1+XALFA)**2.0D0)*YF01
  130. YF2 = (XALFA/(XD2+XALFA)**2.0D0)*YF02
  131. C
  132. C----CALCUL DES SEUILS Y1 ET Y2-----------------------------------------
  133. C
  134. XSEUIL1 = YM1 + YF1 - XSEUI0
  135. XSEUIL2 = YM2 + YF2 - XSEUI0
  136. C
  137. C----TEST SEUIL 1-------------------------------------------------------
  138. C
  139. IF (XSEUIL1.GT.0.0D0) THEN
  140.  
  141. C Debut des iterations internes
  142. DO NINTER=1,100
  143.  
  144. C Calcul du residu 1
  145. CALL CALCYMI(EPSIM,XGAMMT,XGAMMC,XLAMM,XMUM,XD1,XEPS33,YM1)
  146.  
  147. CALL CALCYF01(EPSIF,XGAMF,XLAMF,XMUF,YF01)
  148.  
  149. YF1 = (XALFA/(XD1+XALFA)**2.0D0)*YF01
  150.  
  151. XRES1 = YM1 + YF1 - XSEUI0
  152.  
  153. C Calcul de l'operateur tangent 1
  154. CALL CALCRTG1(EPSIM,EPSIF,XGAMMT,XGAMMC,XGAMF,XALFA,XLAMM,
  155. & XMUM,XLAMF,XMUF,XD1,XD2,XEPS33,DR1DD1)
  156.  
  157. C Corrections de l'endommagement
  158. XDD1 = -1.0D0*(1.0D0/DR1DD1)*XRES1
  159.  
  160. C Critere d arret des iterations internes
  161. XCRI1 = ABS(XDD1*DR1DD1/XSEUI0)
  162.  
  163. IF (XCRI1.LE.XTOL) THEN
  164.  
  165. GOTO 111
  166.  
  167. ELSE
  168.  
  169. XD1 = XD1 + XDD1
  170.  
  171. CALL CALCEP33(EPSIM,XGAMMT,XGAMMC,XD1,XD2,XMUM,XLAMM,
  172. & XEPS33)
  173.  
  174. ENDIF
  175.  
  176. ENDDO
  177. ENDIF
  178.  
  179. 111 CONTINUE
  180.  
  181. C
  182. C----TEST SEUIL 2-------------------------------------------------------
  183. C
  184. IF (XSEUIL2.GT.0.0D0) THEN
  185.  
  186. C Debut des iterations internes
  187. DO NINTER=1,100
  188.  
  189. C Calcul du residu 1
  190. CALL CALCYMI(EPSIM,XGAMMT,XGAMMC,XLAMM,XMUM,XD2,XEPS33,YM2)
  191.  
  192. CALL CALCYF02(EPSIF,XGAMF,XLAMF,XMUF,YF02)
  193.  
  194. YF2 = (XALFA/(XD2+XALFA)**2.0D0)*YF02
  195.  
  196. XRES2 = YM2 + YF2 - XSEUI0
  197.  
  198. C Calcul de l'operateur tangent 1
  199. CALL CALCRTG2(EPSIM,EPSIF,XGAMMT,XGAMMC,XGAMF,XALFA,XLAMM,
  200. & XMUM,XLAMF,XMUF,XD1,XD2,XEPS33,DR2DD2)
  201.  
  202. C Corrections de l'endommagement
  203. XDD2 = -1.0D0*(1.0D0/DR2DD2)*XRES2
  204.  
  205. C Critere d arret des iterations internes
  206. XCRI2 = ABS(XDD2*DR2DD2/XSEUI0)
  207.  
  208. IF (XCRI2.LE.XTOL) THEN
  209.  
  210. GOTO 112
  211.  
  212. ELSE
  213.  
  214. XD2 = XD2 + XDD2
  215.  
  216. CALL CALCEP33(EPSIM,XGAMMT,XGAMMC,XD1,XD2,XMUM,XLAMM,
  217. & XEPS33)
  218.  
  219. ENDIF
  220.  
  221. ENDDO
  222. ENDIF
  223.  
  224. 112 CONTINUE
  225.  
  226. XTRA = EPSIM(1,1)+EPSIM(2,2)
  227. CALL CALCXIM (XTRA,XGAMMT,XGAMMC,XD1,XD2,XIMF)
  228. C
  229. C-----CALCUL DE CONTRAINTES---------------------------------------------
  230. C
  231.  
  232. C Test sur les endommagements pour obtenir une dissipation positive
  233. IF (XD1.LE.XD10) THEN
  234. XD1 = XD10
  235. ENDIF
  236.  
  237. IF (XD2.LE.XD20) THEN
  238. XD2 = XD20
  239. ENDIF
  240.  
  241. C Cacul du repere propre
  242. CALL JACOB4(EPSIM,2,VAPM,VEPM)
  243. C print*,'EPSIM=',((EPSIM(I,J),I=1,2),J=1,2)
  244. C print*,'VAPM=',(VAPM(I),I=1,3)
  245. C print*,'VEPM=',((VEPM(I,J),I=1,2),J=1,2)
  246.  
  247. CALL JACOB4(EPSIF,2,VAPF,VEPF)
  248.  
  249. C print*,'EPSIF=',((EPSIF(I,J),I=1,3),J=1,3)
  250. C print*,'VAPF=',(VAPF(I),I=1,3)
  251. C print*,'VEPF=',((VEPF(I,J),I=1,2),J=1,2)
  252.  
  253. C Calcul de l'endommagement xim, xim1 et xim2
  254. XTRA = EPSIM(1,1)+EPSIM(2,2)
  255. CALL CALCXIM(XTRA,XGAMMT,XGAMMC,XD1,XD2,XIM)
  256. CALL CALCXIM(VAPM(1),XGAMMT,XGAMMC,XD1,XD2,XIM1)
  257. CALL CALCXIM(VAPM(2),XGAMMT,XGAMMC,XD1,XD2,XIM2)
  258.  
  259. XIMI(1) = XIM1
  260. XIMI(2) = XIM2
  261.  
  262. C Calcul de l'endommagement xif, xif1 et xif2
  263. XTRAK = EPSIF(1,1)+EPSIF(2,2)
  264. CALL CALCXIF(XTRAK,XALFA,XGAMF,XD1,XD2,XIF)
  265. CALL CALCXIF(VAPF(1),XALFA,XGAMF,XD1,XD2,XIF1)
  266. CALL CALCXIF(VAPF(2),XALFA,XGAMF,XD1,XD2,XIF2)
  267.  
  268. XIFI(1) = XIF1
  269. XIFI(2) = XIF2
  270.  
  271. C Calcul du repere propre des deformations generalisees
  272. CALL TRSPOD(VEPM,3,3,VEPMT)
  273. CALL TRSPOD(VEPF,2,2,VEPFT)
  274.  
  275. C Calcul des contraintes generalisees dans le repere propre
  276. XTRA = EPSIM(1,1)+EPSIM(2,2)
  277. XTRAK = EPSIF(1,1)+EPSIF(2,2)
  278.  
  279. CALL ZERO(SIGMAM,3,3)
  280. CALL ZERO(SIGMAF,3,3)
  281.  
  282. XTRAK = EPSIF(1,1) + EPSIF(2,2)
  283.  
  284. DO I = 1,2
  285. SIGMAM(I,I) = XIM*XLAMM*(XTRA+XEPS33)+
  286. & 2.0D0*XMUM*VAPM(I)*XIMI(I)
  287.  
  288. C Abandon de la non linearite en partie flexion
  289. C SIGMAF(I,I) = XIF*XLAMF*XTRAK+
  290. C & 2.0D0*XMUF*VAPF(I)*XIFI(I)
  291. ENDDO
  292.  
  293. C Calcul des contraintes generalisees dans le repere global
  294. CALL ZERO(XTRAV5,3,3)
  295. CALL ZERO(XTRAV6,3,3)
  296.  
  297. CALL MATMAT(VEPM,SIGMAM,3,3,3,XTRAV5)
  298. CALL ZERO(SIGMAM,3,3)
  299. CALL MATMAT(XTRAV5,VEPMT,3,3,3,SIGMAM)
  300.  
  301. C Abandon de la non linearite en partie flexion
  302. C CALL MATMAT(VEPF,SIGMAF,3,3,3,XTRAV6)
  303. C CALL ZERO(SIGMAF,3,3)
  304. C CALL MATMAT(XTRAV6,VEPFT,3,3,3,SIGMAF)
  305. C
  306. C----CONTRAINTES-------------------------------------------------------
  307. C
  308. SIGF(1) = SIGMAM(1,1)
  309. SIGF(2) = SIGMAM(2,2)
  310. SIGF(3) = SIGMAM(1,2)
  311.  
  312.  
  313. FAC = (EPAI**3)/12.D0
  314. AUX = FAC*XYOUNF/(1.D0-XNUF*XNUF)
  315. AUX1 = FAC*XYOUNF*.5D0/(1.D0+XNUF)
  316. AUX2 = EPAI*XYOUNF*.5D0/(1.d0+XNUF)/1.2d0
  317.  
  318. SIGF(4) = SIG0(4)+AUX*(DEPST(4)+XNUF*DEPST(5))
  319. SIGF(5) = SIG0(5)+AUX*(DEPST(5)+XNUF*DEPST(4))
  320. SIGF(6) = SIG0(6)+AUX1*DEPST(6)
  321.  
  322. C print*,'SIGF(I)',(SIGF(I),I=4,6)
  323.  
  324. C Cisaillement élastique
  325. SIGF(7) = SIG0(7)+AUX2*DEPST(7)
  326. SIGF(8) = SIG0(8)+AUX2*DEPST(8)
  327.  
  328. C
  329. C----VARIABLES INTERNES-------------------------------------------------
  330. C
  331. VARF(1) = EPSIM(1,1)
  332. VARF(2) = EPSIM(2,2)
  333. VARF(3) = EPSIM(1,2)*2.0D0
  334.  
  335. VARF(4) = EPSIF(1,1)
  336. VARF(5) = EPSIF(2,2)
  337. VARF(6) = EPSIF(1,2)*2.0D0
  338.  
  339. VARF(9) = XD1
  340. VARF(10) = XD2
  341.  
  342. VARF(11) = 1.0D0-XIM
  343. VARF(12) = 1.0D0-XIF
  344.  
  345. RETURN
  346. END
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  

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