Télécharger ampl3d.eso

Retour à la liste

Numérotation des lignes :

ampl3d
  1. C AMPL3D SOURCE PV090527 23/01/27 21:15:05 11574
  2. subroutine ampl3d(souplesse66,sigm06,fshr06,skdw,alphaw,
  3. # epse6,sigef06,epse_tild6,sref)
  4.  
  5. c concentration des contraintes de compression du a lendommagement
  6. c hydrique pour le calcul du potentiel de fluage,
  7. c en l etat ces endommagements sont reversibles
  8.  
  9. c tables de dimension fixe pour resolution des sytemes lineaires
  10. implicit real*8 (a-h,o-z)
  11. implicit integer (i-n)
  12.  
  13. real*8 souplesse66(6,6),skdw,alphaw,sref
  14. real*8 sigm06(6),fshr06(6),epse6(6),ampli6(6),sigef06(6)
  15. real*8 epse_tild6(6)
  16.  
  17. real*8 sige3(3),vsige33(3,3),vsige33t(3,3),
  18. # siget6(6),sigec6(6),sigec3(3),siget3(3)
  19.  
  20. real*8 dwt3(3),dwc3(3),dmaxi,sigft61(6),sigfc61(6)
  21. real*8 coeff,petit
  22. parameter(petit=1.0d-6,dmaxi=1.d0-petit)
  23. logical endor
  24. integer i,j,k,l
  25. real*8 xx1
  26. real*8 fshr33(3,3),fshr3(3),vfshr33(3,3),vfshr33t(3,3)
  27. real*8 sigec6p(6),sigm16(6),sigm133(3,3),sigm13(3)
  28. real*8 vsigm133(3,3), vsigm133t(3,3),sigm16p(6)
  29. real*8 epse_tilde6(6),sigef6p(6),sigefa6p(6),sigefa6(6),dcws
  30. real*8 alphaw_p
  31.  
  32. c *****************************************************************
  33. c decomposition du tenseur des contraintes apparentes
  34. call prtt3d(sigm06,sige3,vsige33,vsige33t,
  35. # siget6,sigec6,sigec3,siget3)
  36.  
  37. c *****************************************************************
  38. c endommagement du a la pression capillaire
  39. c rangement des contraintes effectives en tableau 3*3
  40. call x6x33(fshr06,fshr33)
  41. c diagonalisation contraintes effectives actuelles
  42. c et valeurs propres par la methode de jacobi
  43. call b3_v33(fshr33,fshr3,vfshr33)
  44. c creation de la matrice de passage inverse
  45. call traps1(vfshr33t,vfshr33,3)
  46. c calcul des endommagements hydriques de traction
  47. endor=.false.
  48. alphaw_p=alphaw
  49. if ((skdw.gt.0.).and.(alphaw_p.gt.0.)) then
  50. do i=1,3
  51. xx1=fshr3(i)
  52. if(xx1.gt.0.d0) then
  53. endor=.true.
  54. else
  55. xx1=0.d0
  56. end if
  57. c endo de rgi et borne de dgt
  58. dwt3(i)=min(dmaxi,max((xx1/(xx1+skdw)),0.d0))
  59. c print*,'ds endort dwt3(',i,')',dwt3(i)
  60. end do
  61. if(endor) then
  62. c calcul des endommagements hydriques de compression
  63. do i=1,3
  64. c complementarite par orthogonalite
  65. call indce1(i,k,l)
  66. dwc3(i)=1.d0-((1.d0-dwt3(k))*(1.d0-dwt3(l)))**alphaw_p
  67. dwc3(i)=min(dmaxi,dwc3(i))
  68. c print*,'dwc3(',i,')',dwc3(i)
  69. end do
  70. else
  71. do i=1,3
  72. dwc3(i)=0.d0
  73. end do
  74. end if
  75. else
  76. do i=1,3
  77. dwc3(i)=0.d0
  78. end do
  79. end if
  80.  
  81. c *****************************************************************
  82. c amplification seulement dans les directions des contraintes
  83. c de compression macroscopiques
  84.  
  85. c passage des contraintes de compression en base prin des endo-w
  86. if(endor) then
  87. call chrep6(sigec6,vfshr33,.false.,sigec6p)
  88. call chrep6(sigef06,vfshr33,.false.,sigef6p)
  89. do i=1,6
  90. if(i.le.3) then
  91. if(sigec6p(i).lt.(-sref)) then
  92. sigefa6p(i)=sigef6p(i)/(1.d0-dwc3(i))
  93. else
  94. coeff=-sigec6p(i)/sref
  95. if(coeff.gt.0.d0) then
  96. sigefa6p(i)=sigef6p(i)/(1.d0-coeff*dwc3(i))
  97. else
  98. sigefa6p(i)=sigef6p(i)
  99. end if
  100. end if
  101. else
  102. call indce0(i,k,l)
  103. dcws=0.d0
  104. c la resistance au cisaillement depend de l etat de refermeture
  105. if(sigec6p(k).lt.(-sref)) then
  106. dcws=max(dcws,dwc3(k))
  107. else
  108. coeff=-sigec6p(k)/sref
  109. if(coeff.gt.0.d0) then
  110. dcws=max(dcws,coeff*dwc3(k))
  111. end if
  112. end if
  113. c prise en compte etat de refermeture
  114. if(sigec6p(l).lt.(-sref)) then
  115. dcws=max(dcws,dwc3(l))
  116. else
  117. coeff=-sigec6p(l)/sref
  118. if(coeff.gt.0.d0) then
  119. dcws=max(dcws,coeff*dwc3(l))
  120. end if
  121. end if
  122. c la fissure la moins fermee controle le cosaillement
  123. sigefa6p(i)=sigef6p(i)/(1.d0-dcws)
  124. end if
  125. end do
  126. c retour en base fixe
  127. call chrep6(sigefa6p,vfshr33t,.false.,sigefa6)
  128. c deformations effective elastiques amplifiee
  129. do i=1,6
  130. epse_tild6(i)=0.d0
  131. do j=1,6
  132. epse_tild6(i)=epse_tild6(i)+souplesse66(i,j)*sigefa6(j)
  133. end do
  134. end do
  135. else
  136. c si pas d endo hydrique, pas d apmlification
  137. do i=1,6
  138. epse_tild6(i)=epse6(i)
  139. end do
  140. end if
  141. c do i=1,6
  142. c ampli6(i)=1.d0
  143. c print*,'ampli',i,'=',ampli6(i)
  144. c end do
  145. c *****************************************************************
  146. return
  147. end
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  

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