Télécharger dffn3d.eso

Retour à la liste

Numérotation des lignes :

dffn3d
  1. C DFFN3D SOURCE PV090527 23/02/06 21:15:02 11587
  2. c***********************************************************************
  3. subroutine dffn3d(sigm16,delta,rc_app,rt_app,xflu,
  4. # ssfl,dfin,cmp1,dfmx2,hydr,hyds,err1)
  5.  
  6. c endommagement asymptotique par fluage
  7. implicit real*8 (a-h,o-z)
  8. implicit integer (i-n)
  9.  
  10. real*8 tauflu,taulim_taucr,cmp1,xflu
  11. real*8 dflu0,dflu1,dfin,ccmax,rc_app,dfmx2
  12. real*8 delta
  13. real*8 ssfl
  14. logical dciso
  15. real*8 xmc,dcpp
  16. real*8 sigm16(6)
  17. integer err1
  18.  
  19. real*8 tau_sph,tau_dev
  20.  
  21. real*8 taucr,dflu,tauflu1,sigs,sig0,sigd6(6),sigeq,sigs3,taulim
  22. real*8 taueq,tauflu0,tauseuil
  23. integer i
  24. real*8 xmax,coeff1
  25. real*8 khi,x,xlim,xth,dcpp1,xcpp,xl,xcr,coeff
  26. real*8 sigm33(3,3),sigm3(3),vsigm33(3,3),vsigm33t(3,3),sigm6p(6)
  27. real*8 sigm6(6)
  28. c multiplicateur non lineaire maxi de potentiel de fluage
  29. parameter (xmax=25.d0)
  30.  
  31. c***********************************************************************
  32. c la non linearite est estimee avec le deviateur de la contrainte
  33. c macroscopique apparente bornee à la nouvelle resistance en traction
  34. c***********************************************************************
  35. c on borne les valeurs princpales positive a rt_app car
  36. c la contribution hydrique de pw a rt_app a pu changer depuis le pas precedent
  37. call x6x33(sigm16,sigm33)
  38. call b3_v33(sigm33,sigm3,vsigm33)
  39. call traps1(vsigm33t,vsigm33,3)
  40. do i=1,3
  41. sigm6p(i)=min(sigm3(i),rt_app)
  42. sigm6p(3+i)=0.d0
  43. end do
  44. call chrep6(sigm6p,vsigm33t,.false.,sigm6)
  45.  
  46. c calcul du deviateur des contraintes macroscopiques
  47. sigs=0.d0
  48. c partie spherique de la contrainte effective moyenne
  49. do i=1,3
  50. sigs=sigs+sigm6(i)
  51. end do
  52. sigs3=sigs/3.d0
  53. c partie deviatorique
  54. sigeq=0.d0
  55. do i=1,3
  56. sigd6(i)=sigm6(i)-sigs3
  57. sigeq=sigeq+sigd6(i)**2.d0
  58. end do
  59. do i=4,6
  60. sigeq=sigeq+2.d0*(sigm6(i)**2.d0)
  61. end do
  62. sigeq=sqrt(sigeq/2.d0)
  63. coeff1=(1.d0/sqrt(3.d0)-delta/3.d0)
  64. taulim=rc_app*coeff1
  65. tauseuil=ssfl*coeff1
  66. if(sigs3.le.0.) then
  67. taueq=min(sigeq+delta*sigs3,taulim)
  68. else
  69. taueq=sigeq
  70. end if
  71. c print*,'ds dffn3d'
  72. c print*,rc_app,ssfl,sigm6
  73. c print*,taueq
  74. c print*,tauseuil,taulim
  75. khi=xflu
  76. x=taueq
  77. xl=taulim
  78. xth=tauseuil
  79.  
  80.  
  81. c au jeune age on utilise le coeff partant du seuil en cisaillement
  82. c apres le seuil de percolation on utilise la fonction partant du seuil nul
  83. c pondéré par le degré d'hydratation
  84. c estimation du comportement fluide a seuil
  85. if(x.le.xth) then
  86. c pas d ecoulement
  87. cmp1=0.d0
  88. else
  89. c prise en compte du seuil d ecoulement
  90. if((xth.gt.0.).and.(x.gt.xth)) then
  91. cmp1=(x-xth)/x
  92. else if((xth.eq.0.).and.(x.gt.0.)) then
  93. cmp1=1.d0
  94. else if((xth.ge.0.).and.(x.lt.0.)) then
  95. cmp1=0.d0
  96. else
  97. print*,'Valeur inattendue de x dans dffn3d',x
  98. err1=1
  99. return
  100. end if
  101. end if
  102.  
  103. c pour le materiau durci on fractionne l amplification en fonction
  104. c du taux d hydratation pour passer progressivement au materiau
  105. c totalement hydrate
  106. if(hydr.gt.hyds) then
  107. c coeff pour les cas d hydratation < 1
  108. coeff=(hydr-hyds)/(1.d0-hyds)
  109. if(khi.gt.1.) then
  110. xcr = xl*(0.2D1*khi-0.1D1)/(khi-0.1D1)/0.3D1
  111. if(x.gt.0.) then
  112. c coeff d amplification pour materiau hydrate
  113. t2 = 0.3D1 * x
  114. cmp2 = -0.1D1/(khi*(t2-0.2D1*xl)-t2+xl)*xl*khi
  115. c remarque: risque de fluage tertiaire si cmp grand
  116. cmp2=max(1.d0,cmp2)
  117. c calcul de l endommagement final
  118. dfin=coeff*min(dfmx2*x/xcr,0.999d0)
  119. else
  120. c pas de fluage non lineaire
  121. cmp2=1.d0
  122. c pas d'endommagement
  123. dfin=0.d0
  124. end if
  125. else
  126. c pas d'endommagement
  127. dfin=0.d0
  128. c pas de fluage non lineaire
  129. cmp2=1.d0
  130. end if
  131. else
  132. c coeff pour les cas d hydratation < seuil de percolation
  133. coeff=1.d0
  134. c pas d'endommagement en phase fluide
  135. dfin=0.d0
  136. c pas de fluage non lineaire
  137. cmp2=1.d0
  138. end if
  139. c combinaison des comportements pré et post seuil d hydratation
  140. cmp1=cmp1*(1.d0-coeff)+coeff*cmp2
  141.  
  142. c print*,'dffn3d: cmp',cmp1,'dfin',dfin
  143.  
  144. return
  145. end
  146.  
  147.  
  148.  
  149.  

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