Télécharger ba1d.eso

Retour à la liste

Numérotation des lignes :

  1. C BA1D SOURCE CB215821 16/04/21 21:15:11 8920
  2. SUBROUTINE BA1D(SIG0,NSTRS,DEPST,VAR0,XMAT,NCOMAT,XCAR,TRAC,
  3. & NCOURB,SIGF,VARF,DEFP,KERRE)
  4. C
  5. C====&===1=========2=========3=========4=========5=========6=========7==
  6. C Commentaires : Subroutine permettant de mettre en oeuvre le
  7. C modele BA1D (CEA/ENS Cachan) pour representer
  8. C le comportement cyclique du beton sous
  9. C sollicitations sismiques
  10. C
  11. C Traits : -
  12. C -
  13. C -
  14. C -
  15. C -
  16. C
  17. C Auteur : L. Moutoussamy - CEA, DEN, DANS, DM2S, SEMT, EMSI
  18. C B. Richard - CEA, DEN, DANS, DM2S, SEMT, EMSI
  19. C====&===1=========2=========3=========4=========5=========6=========7==
  20. C
  21. C----DECLARATION GENERALES----------------------------------------------
  22. C
  23. IMPLICIT REAL*8(A-H,O-Z)
  24.  
  25. DIMENSION SIG0(*),DEPST(*),VAR0(*),XMAT(*),XCAR(*),TRAC(*),
  26. & SIGF(*),VARF(*) ,DEFP(*)
  27. C
  28. C----CARACTERISTIQUES MATERIAUX-----------------------------------------
  29. C
  30. XYOUN = XMAT(1)
  31. XNU = XMAT(2)
  32.  
  33. XUEAL = XMAT(5)
  34. XFPLA = XMAT(6)
  35. XPFIS = XMAT(7)
  36. XHCIN = XMAT(8)
  37. XQFRA = XMAT(9)
  38.  
  39. XAPIH = XMAT(10)
  40. XBPIH = XMAT(11)
  41.  
  42. C
  43. C----VARIABLES INTERNES-------------------------------------------------
  44. C
  45. XDP0 = VAR0(1)
  46. XZP0 = VAR0(2)
  47. XDM0 = VAR0(3)
  48. XZM0 = VAR0(4)
  49. XXPP = VAR0(5)
  50. XUPP = VAR0(6)
  51. XALP = VAR0(7)
  52. XXPM = VAR0(8)
  53. XUPM = VAR0(9)
  54. XALM = VAR0(10)
  55. XXPI = VAR0(11)
  56. XUPI = VAR0(12)
  57. XALI = VAR0(13)
  58. XU1 = VAR0(14)
  59. XU2 = VAR0(15)
  60. XU3 = VAR0(16)
  61. C
  62. C----AVANCE EN DEPLACEMENT----------------------------------------------
  63. C
  64. XU1 = XU1 + DEPST(1)
  65. XU2 = XU2 + DEPST(2)
  66. XU3 = XU3 + DEPST(3)
  67. C
  68. C----CALCUL ENERGIE-----------------------------------------------------
  69. C
  70. XRAI = XMAT(1)*XCAR(2)
  71. XY0 = 0.5D0*XRAI*(XUEAL)**2.0D0
  72. XUPL = ((XFPLA - (XRAI*XUEAL))/(XPFIS*XRAI)) + XUEAL
  73. XDY = 1.0D0 - ((XUEAL + (XPFIS*(XUPL - XUEAL)))/XUPL)
  74. XGAM = (2.0D0/XAPIH)
  75.  
  76. XENE = 0.5D0*XRAI*(XU3)**2.0D0
  77.  
  78. C print*,'xene',xene
  79. C print*,'XY0',XY0
  80.  
  81. C
  82. C----ENDOMMAGEMENT------------------------------------------------------
  83. C
  84. IF (XU3.GE.0.0D0) THEN
  85.  
  86. XTEST = XENE - (XY0 + XZP0)
  87.  
  88. IF (XTEST.GE.0.0D0) THEN
  89.  
  90. XDP0 = (1.0D0 - XPFIS) * (1.0D0 - (XY0/XENE)**XQFRA)
  91. XZP0 = XZP0 + 0.5D0 * XRAI *
  92. & DEPST(3) * (2.0D0 * XU3 - DEPST(3))
  93.  
  94. ENDIF
  95.  
  96. XD0 = MIN(XDP0,XDY)
  97.  
  98. ELSE
  99.  
  100. XTEST = XENE - (XY0 + XZM0)
  101.  
  102. IF (XTEST.GE.0.0D0) THEN
  103.  
  104. XDM0 = (1.0D0 - XPFIS) * (1.0D0 - (XY0/XENE)**XQFRA)
  105. XZM0 = XZM0 + 0.5D0 * XRAI *
  106. & DEPST(3) * (2.0D0 * XU3 - DEPST(3))
  107.  
  108. ENDIF
  109.  
  110. XD0 = MIN(XDM0,XDY)
  111.  
  112. ENDIF
  113.  
  114. IF (XU3.GE.0.0D0) THEN
  115. XD0 = MIN(XDP0,XDY)
  116. ELSE
  117. XD0 = MIN(XDM0,XDY)
  118. ENDIF
  119.  
  120. C print*,'XD0',XD0
  121.  
  122. XDH = MIN(MAX(XDM0,XDP0),XDY)
  123. XRAID = (1.0D0 - XD0) * XRAI
  124.  
  125. GOTO 999
  126.  
  127. C
  128. C----GLISSEMENT---------------------------------------------------------
  129. C
  130. XFPTRI = XDH * XRAI * (XU3 - XUPI)
  131. XGPTRI = XFPTRI - XXPI
  132. XFPTRI0= ABS(XGPTRI)
  133.  
  134. IF (XFPTRI0.GT.0.0D0) THEN
  135.  
  136. IF (XGPTRI.GT.0.0D0) THEN
  137. XSIG = 1.0D0
  138. ELSE
  139. XSIG = -1.0D0
  140. ENDIF
  141.  
  142. XFFPTRI = ABS(XGPTRI)
  143. XS1 = -1.0D0 * XSIG
  144. XS2 = (XGAM/2.0D0) * XXPI
  145. DLAMPI = XFFPTRI/(XDH * XRAI + XBPIH * (XS1 * (XS1 + XS2)))
  146. XUPI = XUPI + DLAMPI * XS1
  147. XXPI = XXPI - DLAMPI * XBPIH * (XS1 + XXPI * (XGAM/2.0D0))
  148. XFPTRI = XFPTRI + (XRAI * XDH * DLAMPI * XS1)
  149. XALI = XALI + DLAMPI
  150. XGPTRI = XFPTRI - XXPI
  151.  
  152. ENDIF
  153.  
  154. XFPI = XDH*XRAI*(XU3-XUPI)
  155.  
  156. 999 CONTINUE
  157.  
  158. C
  159. C----PLASTICITE---------------------------------------------------------
  160. C
  161. IF (XU3.GE.0.0D0) THEN
  162.  
  163. FPTRIP = XRAID * (XU3 - XUPP)
  164. GPTRIP = FPTRIP - XXPP - (XFPLA/2.0D0)
  165. FFPTRIP= ABS(GPTRIP) - (XFPLA/2.0D0)
  166.  
  167. IF (FFPTRIP.GT.0.0D0) THEN
  168.  
  169. IF (GPTRIP.GT.0.0D0) THEN
  170. XSIG = 1.0D0
  171. ELSE
  172. XSIG = -1.0D0
  173. ENDIF
  174.  
  175. DLAMPP = XSIG * XRAID *
  176. & DEPST(3)/(XRAID + XHCIN)
  177.  
  178. XDUPP = DLAMPP * XSIG
  179. XUPP = XUPP + XDUPP
  180. XXPP = XXPP + (XHCIN * XDUPP)
  181. XALP = XALP + DLAMPP
  182.  
  183. ENDIF
  184.  
  185. XUP = XUPP
  186. XUPM= 0.0D0
  187.  
  188. ELSE
  189.  
  190. FPTRIM = XRAID * (XU3 - XUPM)
  191. GPTRIM = FPTRIM - XXPM + (XFPLA/2.0D0)
  192. FFPTRIM= ABS(GPTRIM) - (XFPLA/2.0D0)
  193.  
  194. IF (FFPTRIM.GT.0.0D0) THEN
  195.  
  196. IF (GPTRIM.GT.0.0D0) THEN
  197. XSIG = 1.0D0
  198. ELSE
  199. XSIG = -1.0D0
  200. ENDIF
  201.  
  202. DLAMPM = XSIG * XRAID *
  203. & DEPST(3)/(XRAID + XHCIN)
  204.  
  205. XDUPM = DLAMPM * XSIG
  206. XUPM = XUPM + XDUPM
  207. XXPM = XXPM + (XHCIN * XDUPM)
  208. XALM = XALM + DLAMPM
  209.  
  210. ENDIF
  211.  
  212. XUP = XUPM
  213. XUPP= 0.0D0
  214.  
  215. ENDIF
  216. C print*,'xfpi=',xfpi
  217. XF = XRAID*(XU3 - XUP)
  218. C XF = XRAID*(XU3 - XUP) + XFPI
  219. C XF = XRAID*XU3
  220. C
  221. C----VARIABLES INTERNES-------------------------------------------------
  222. C
  223. VARF(1) = XDP0
  224. VARF(2) = XZP0
  225. VARF(3) = XDM0
  226. VARF(4) = XZM0
  227. VARF(5) = XXPP
  228. VARF(6) = XUPP
  229. VARF(7) = XALP
  230. VARF(8) = XXPM
  231. VARF(9) = XUPM
  232. VARF(10)= XALM
  233. VARF(11)= XXPI
  234. VARF(12)= XUPI
  235. VARF(13)= XALI
  236. VARF(14)= XU1
  237. VARF(15)= XU2
  238. VARF(16)= XU3
  239. C
  240. C----CONTRAINTES--------------------------------------------------------
  241. C
  242. CISA=0.5D0*XMAT(1)/(1.D0+XMAT(2))
  243. SIGF(1)=SIG0(1) + XMAT(1)*XCAR(4)*DEPST(1)
  244. SIGF(2)=SIG0(2) + CISA*(5.0D0/6.0D0)*XCAR(4)*DEPST(2)
  245. C SIGF(3)=SIG0(3) + XMAT(1)*XCAR(2)*DEPST(3)
  246. SIGF(3)=XF
  247.  
  248. RETURN
  249. END
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  

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