Télécharger hydm3d.eso

Retour à la liste

Numérotation des lignes :

hydm3d
  1. C HYDM3D SOURCE FD218221 24/02/07 21:15:13 11834
  2. subroutine hydm3d(hyd0,hydr,hyds,young00,young,nu00,nu,rt00,
  3. #rt,rteff,reft00,reft,rc00,rc,rceff,delta00,delta,beta00,beta,
  4. #gft00,gft,ept00,ept,epsm00,epsm,xnsat00,xnsat,biotw00,biotw,iso,
  5. #lambda,Mub,Kb,rtg00,rtg,raideur66,souplesse66,xmt,dtiso,cwrt,err1,
  6. #teta,href,tetar,tkvg,gfr00,gfr,rts00,rts,rtw00,rtw,hplt00,hplt,
  7. #hplg00,hplg,hpls00,hpls,epc00,epc,xmc,dciso,dpict,dpicc,taum_ja,
  8. #youn_ja,nu_ja,ss_ja,ssfl,taum00,taum,skdw00,skdw,dlja,tauk_ja,
  9. #tauk00,tauk0,psi_ja,psi00,psi0,rcja,rtja)
  10.  
  11. c actualisation des parametres materiaux en fonction du degre
  12. c d hydratation et du degre de saturation
  13.  
  14. c janvier 2016 : cwrt ne s applique que sur Rt macro (pas rtg)
  15.  
  16. implicit real*8 (a-h,o-z)
  17. implicit integer (i-n)
  18.  
  19. c declaration variables externes
  20. real*8 hyd0,hydr,hyds,young00,young,nu00,nu,rcinit00,rcinit,
  21. #rt00,rt,reft00,reft,rc00,rc,delta00,delta,beta00,beta,
  22. #pglim00,epsm00,epsm,xnsat00,xnsat,biotw00,biotw,dlja,
  23. #gft00,gft,xmt,cwrt,teta,tetar,tkvg,href,taum00,taum,
  24. #gfr00,gfr,rtg00,rtg,rts00,rts,rtw00,rtw,skdw00,skdw,
  25. #epc00,epc,xmc,rceff,rteff,dpict,dpicc,taum_ja,youn_ja,nu_ja,
  26. #ss_ja,tauk_ja,tauk00,tauk0,psi_ja,psi00,psi0,rcja,rtja
  27. logical dciso
  28. real*8 hplt00,hplt,hplg00,hplg,hpls00,hpls
  29. c rt prenant en compte le degre de saturation
  30. real*8 rt0,gft0
  31. logical iso,dtiso
  32. real*8 lambda,Mub,Kb
  33. real*8 raideur66(6,6),souplesse66(6,6)
  34. integer err1
  35. c petit coeff pour le variable non fournies au jeune age
  36. real*8 c0
  37. parameter (c0=1.0d-4)
  38.  
  39. c declarations variables locales
  40. real*8 usepsm,usepsm00,umb00,umb,z5mnu00,z5mnu
  41.  
  42. c rt et gft sont donnee pour le milieu sature
  43. rt0=rt00
  44. gft0=gft00
  45. c l actualisation n a lieu que si l hydratation evolue
  46. c ou bien est differente de 1
  47. c coeff d amplification pour passer de rt a rteff en milieu sature
  48. xrteff=max((ept00/(rt0/young00)),1.d0)
  49. xrceff=max((epc00/(rc00/young00)),1.d0)
  50. c print*,'xrteff',xrteff
  51.  
  52. c initialisation de la variable d erreur
  53. err1=0
  54.  
  55. c prise en compte de l evolution chimique
  56. if(hydr.ne.href) then
  57. c young
  58. if(youn_ja.le.0.) then
  59. c print*,'Young jeune age=0 ds hydm3d !'
  60. c err1=1
  61. c return
  62. youn_ja=young00*c0
  63. end if
  64. call hyxm3d(youn_ja,young00,young,hydr,hyds,href,0.66d0,err1)
  65. c modules d ecrouissage traction directe
  66. call hyxm3d(c0*hplt00,hplt00,hplt,hydr,hyds,href,0.66d0,err1)
  67. c modules d ecrouissage traction gel
  68. call hyxm3d(c0*hplg00,hplg00,hplg,hydr,hyds,href,0.66d0,err1)
  69. c modules d ecrouissage traction sel
  70. call hyxm3d(c0*hpls00,hpls00,hpls,hydr,hyds,href,0.66d0,err1)
  71. c poisson de la matrice
  72. call hyxm3d(nu_ja,nu00,nu,hydr,hyds,href,0.66d0,err1)
  73. c resistance a la traction
  74. call hyxm3d(rtja,rt0,rt,hydr,hyds,href,0.66d0,err1)
  75. c resistance a la refermeture de fissure
  76. call hyxm3d(rtja,reft00,reft,hydr,hyds,href,0.66d0,err1)
  77. c pour fissuration hydrique
  78. call hyxm3d(rtja,rtw00,rtw,hydr,hyds,href,0.66d0,err1)
  79. c fissuration sel
  80. call hyxm3d(rtja,rts00,rts,hydr,hyds,href,0.66d0,err1)
  81. c contrainte seuil deviatorique pour l ecoulement de Maxwell
  82. call hyxm3d(ss_ja,0.d0,ssfl,hydr,hyds,href,0.66d0,err1)
  83. c compression
  84. call hyxm3d(rcja,rc00,rc,hydr,hyds,href,1.00d0,err1)
  85. c coeff drucker prager
  86. call hyxm3d(dlja,delta00,delta,hydr,hyds,href,1.d0,err1)
  87. c delta=delta00
  88. c dilatance (si pas de dilatance a faible hydratation alors
  89. c pas d endo de compression)
  90. c call hyxm3d(beta00,beta,hydr,hyds,href,1.d0,err1)
  91. beta=beta00
  92. c potentiel de fluage de maxwell : non actif car c est le taux
  93. c de chargement qui accelere le fluage au jeune age
  94. epsm=epsm00
  95. c pris en compte de l hydratation sur biot en non sature
  96. call hyxm3d(1.0d0,biotw00,biotw,hydr,hyds,href,0.50d0,err1)
  97. c module de biot pour le non sature
  98. call hyxm3d(0.d0,xnsat00,xnsat,hydr,hyds,href,5.0d0,err1)
  99. c energie de fissuration pour la traction
  100. call hyxm3d(c0*gft0,gft0,gft,hydr,hyds,href,0.50d0,err1)
  101. c energie de fissuration pour la refermeture
  102. call hyxm3d(c0*gfr00,gfr00,gfr,hydr,hyds,href,0.50d0,err1)
  103. c temps caracteristique de Maxwell
  104. call hyxm3d(taum_ja,taum00,taum,hydr,hyds,href,0.66d0,err1)
  105. c contrainte d endo hydrique
  106. c call hyxm3d(c0*skdw00,skdw00,skdw,hydr,hyds,href,1.00d0,err1)
  107. skdw=skdw00
  108. c temps de kelvin tauk_ja,tauk00,tauk0,psi_ja,psi00,psi0
  109. call hyxm3d(tauk_ja,tauk00,tauk0,hydr,hyds,href,0.66d0,err1)
  110. c fraction elastique de Kalvin
  111. call hyxm3d(psi_ja,psi00,psi0,hydr,hyds,href,0.66d0,err1)
  112. else
  113. err1=0
  114. young=young00
  115. nu=nu00
  116. rt=rt0
  117. reft=reft00
  118. rts=rts00
  119. rtw=rtw00
  120. rc=rc00
  121. delta=delta00
  122. beta=beta00
  123. epsm=epsm00
  124. biotw=biotw00
  125. xnsat=xnsat00
  126. gft=gft0
  127. gfr=gfr00
  128. hplt=hplt00
  129. hplg=hplg00
  130. hpls=hpls00
  131. taum=taum00
  132. ssfl=0.d0
  133. skdw=skdw00
  134. tauk0=tauk00
  135. psi0=psi00
  136. end if
  137. c consistance du critere / ecoulement
  138. if(ssfl.gt.0.) then
  139. if(rt.lt.ssfl) then
  140. print*,'reajustement de rt dans hydm3d'
  141. rt=(1.d0+c0)*ssfl
  142. end if
  143. c consistance du critere / ecoulement
  144. if(rc.lt.ssfl) then
  145. print*,'reajustement de rc dans hydm3d'
  146. rc=(1.d0+c0)*ssfl
  147. end if
  148. end if
  149.  
  150. c deformation au pic de traction
  151. c on conserve le rapport imposee pour le materiau hydrate
  152. ept=xrteff*(cwrt*rt/young)
  153. epc=xrceff*(rc/young)
  154. c on verifie qu il soit plus grand que la def elastique
  155. ept=max(ept,cwrt*rt/young)
  156.  
  157.  
  158. c actualisation resistance effective a la pression des rgi
  159. c resistance a la traction utilisee pour la propagation des fissures de gel
  160. c ne considere pas l effet d echelle de Weibull
  161. rtg=rt*xrteff
  162. c print*,'rtg',rtg
  163.  
  164. c actualisation parametres endo diffus de traction (ept prend en compte Weibull)
  165. rteff=young*ept
  166. dpict=1.d0-cwrt*rt/rteff
  167. c print*,'gft,rt',gft,rt
  168. if(dpict.gt.1.d-4) then
  169. c endommagement pre pic de traction non negligeable
  170. dtiso=.true.
  171. xmt=-1.d0/log(1.d0-dpict)
  172. else
  173. xmt=1.d0
  174. dtiso=.false.
  175. end if
  176. c print*,'dpict',dpict,'mt',xmt,'rteff',rteff
  177. c read*
  178.  
  179. c actualisation parametres endo diffus de compression
  180. rceff=young*epc
  181. dpicc=1.d0-rc/rceff
  182. c print*,'rc',rc
  183. if(dpicc.gt.1.d-4) then
  184. c endommagement pre pic de compression non negligeable
  185. dciso=.true.
  186. xmc=-1.d0/log(1.d0-dpicc)
  187. else
  188. xmc=1.d0
  189. dciso=.false.
  190. end if
  191.  
  192. c actualisation des matrices d elasticite
  193. call hoo03d(iso,young,nu,kb,mub,err1,raideur66,souplesse66)
  194.  
  195. return
  196.  
  197. print*,'dans hydm3d'
  198. print*,1,hyd0,hydr,hyds
  199. print*,2,young00,young,nu00,nu
  200. print*,3,rt00,rt,rteff
  201. print*,3,2,reft00,reft
  202. print*,4,rc00,rc,rceff
  203. print*,5,delta00,delta,beta00,beta
  204. print*,6,gft00,gft
  205. print*,7,ept00,ept,epsm00,epsm
  206. print*,8,xnsat00,xnsat,biotw00,biotw
  207. print*,9,iso,lambda,Mub,Kb
  208. print*,10,rtg00,rtg
  209. call afic66(raideur66)
  210. call afic66(souplesse66)
  211. print*,11,xmt,dtiso,cwrt
  212. print*,12,teta,href,tetar,tkvg
  213. print*,13,gfr00,gfr
  214. print*,14,rts00,rts,rtw00,rtw
  215. print*,15,hplt00,hplt,hplg00,hplg,hpls00,hpls
  216. print*,16,epc00,epc,xmc,dciso
  217. print*,17,dpict,dpicc,taum_ja,youn_ja,nu_ja,ss_ja
  218. print*,18,tauk_ja,tauk00,tauk0,psi_ja,psi00,psi0
  219. print*,19,err1
  220. read*
  221.  
  222. return
  223. end
  224.  
  225.  
  226.  
  227.  

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