Télécharger dadp3d.eso

Retour à la liste

Numérotation des lignes :

dadp3d
  1. C DADP3D SOURCE PV090527 23/01/27 21:15:20 11574
  2. subroutine damdp3d(prec3d,ekdc,epeqpc,epspc6,dcc3,sigfc61,
  3. # sigft61,dcdp,ortho)
  4. c endo de compresion
  5. c A.Sellier 2021/05/05
  6. implicit real*8 (a-h,o-z)
  7. implicit integer (i-n)
  8.  
  9.  
  10. real*8 epspc6(6),dcc3(3),ekdc,epeqpc,sigfc61(6),sigft61(6),dcdp
  11. real*8 dcpp
  12.  
  13. real*8 epspc33(3,3),epspc3(3),vepspc33(3,3),vepspc33t(3,3)
  14. real*8 sigfc6p(6),sigfc6ct(6),dx
  15. integer i,j,k,l
  16. real*8 trepsdc
  17. real*8 dmaxi
  18. logical ortho
  19. real*8 dcc,scom
  20.  
  21. dmaxi=1.d0-prec3d
  22. C print*,'Dans DamDP3D'
  23. C print*,'ekdc',ekdc
  24. C print*,'ortho',ortho
  25.  
  26. c***********************************************************************
  27. c variation de raideur due aux dilatations transverses
  28. c induites par le cisaillement
  29. c ******************************************************************
  30. if(ortho) then
  31. c***********************************************************************
  32. c cas ou l endo de DP est orthotrope
  33. c directions principale de epspc6
  34. call x6x33(epspc6,epspc33)
  35. call b3_v33(epspc33,epspc3,vepspc33)
  36. c do i=1,3
  37. c print*,'endo3d epspc3:',i,epspc3(i)
  38. c end do
  39. c construction matrice de passage inverse
  40. call traps1(vepspc33t,vepspc33,3)
  41. c calcul des endo orthotropes de compression (dcc)
  42. do i=1,3
  43. call indce1(i,k,l)
  44. trepsdc=max(epspc3(k),0.d0)+max(epspc3(l),0.d0)
  45. if(trepsdc.gt.epeqpc) then
  46. trepsdc=trepsdc-epeqpc
  47. dcc3(i)=min(dmaxi,(trepsdc/(trepsdc+ekdc)))
  48. else
  49. dcc3(i)=0.d0
  50. endif
  51. c print*,'Dans damDP3d endo DP ortho dcc(',i,')=',dcc3(i)
  52. end do
  53. c *****************************************************************
  54. c prise en compte endo ortho de DP sur contraintes de compression
  55. c *****************************************************************
  56. if(max(dcc3(1),dcc3(2),dcc3(3)).gt.0.) then
  57. c passage des contraintes effectives dans la base
  58. c prin des endo dcc actuels
  59. call chrep6(sigfc61,vepspc33,.false.,sigfc6p)
  60. c application du tenseur d endommagement aux contraintes
  61. c de tractions
  62. do i=1,6
  63. if(i.le.3) then
  64. sigfc6ct(i)=sigfc6p(i)*(1.d0-dcc3(i))
  65. else
  66. call indce0(i,k,l)
  67. dx=max(dcc3(k),dcc3(l))
  68. sigfc6ct(i)=sigfc6p(i)*(1.d0-dx)
  69. end if
  70. end do
  71. c retour des contraintes negatives en base fixe
  72. call chrep6(sigfc6ct,vepspc33t,.false.,sigfc61)
  73. end if
  74. else
  75. c***********************************************************************
  76. c cas ou l endo de compression est isotrope
  77. c calcul de la dilatance post pic
  78. trepsdc=0.d0
  79. do i=1,3
  80. trepsdc=trepsdc+epspc6(i)
  81. end do
  82. c *****************************************************************
  83. c calcul de l endommagement isotrope actuel
  84. c *****************************************************************
  85. if(trepsdc.gt.epeqpc) then
  86. trepsdc=trepsdc-epeqpc
  87. dcc=min(dmaxi,(trepsdc/(trepsdc+ekdc)))
  88. else
  89. dcc=0.d0
  90. endif
  91. c condition de croissance de l endommagement de cisaillement
  92. dcdp=max(dcdp,dcc)
  93. c print*,'Dans dadp3d endo DP iso dcdp=',dcdp
  94. c *****************************************************************
  95. c prise en compte endo iso de DP sur contraintes
  96. c *****************************************************************
  97. scom=1.d0-dcdp
  98. do i=1,6
  99. sigfc61(i)=scom*sigfc61(i)
  100. sigft61(i)=scom*sigft61(i)
  101. end do
  102. end if
  103.  
  104. c***********************************************************************
  105. return
  106. end
  107.  
  108.  
  109.  
  110.  

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