Télécharger b3_tai.eso

Retour à la liste

Numérotation des lignes :

b3_tai
  1. C B3_TAI SOURCE PV090527 23/01/27 21:15:08 11574
  2. subroutine b3_tai(xmat,nmat,ifou,mfr1,nmat1,
  3. # t33,n33,err1,xe3d,NBNMAX3D,NBNB3D,idimb3d,Mjacob,Mnoeuds)
  4.  
  5. c chargement des tailles de l element en cours pour la procedure
  6. c de Hillerborgh, en fonction de la formulation
  7.  
  8. c declarations externes
  9. real*8 ray
  10. integer nmat,ifou,mfr1,nmat1,err1
  11. real*8 xmat(nmat)
  12. real*8 n33(3,3)
  13. real*8 t33(3,3)
  14. integer NBNMAX3D,NBNB3D,idimb3d
  15. real*8 xe3d(3,NBNMAX3D)
  16. logical Mjacob,Mnoeuds
  17. c print*,'ds b3_tai:'
  18. c print*,'nmat,ifou,mfr1,nmat1'
  19. c print*, nmat,ifou,mfr1,nmat1
  20. c nombre de parametres obligatoires endommagement:nmat1
  21.  
  22.  
  23. c initiation variable logique methode de calcul de li
  24. c a reinitialiser ds nfin3d,majw3d,endo3d egalement
  25. if (Mjacob) then
  26. c methode des fonctions de forme
  27. print*,'Cette methode n est plus utilisee pour estimer'
  28. print*,'la taille des elements lineaires'
  29. ierr1=1
  30. return
  31. C if ((mfr1.eq.1).or.(mfr1.eq.33)) then
  32. C c elements massifs(1) ou poreux(33)
  33. C if (ifou.eq.2) then
  34. C c formulation tridimensionelle
  35. C t33(1,1)=xmat(nmat1+1)
  36. C t33(2,2)=xmat(nmat1+2)
  37. C t33(3,3)=xmat(nmat1+3)
  38. C t33(1,2)=xmat(nmat1+4)
  39. C t33(1,3)=xmat(nmat1+5)
  40. C t33(2,3)=xmat(nmat1+6)
  41. C t33(2,1)=t33(1,2)
  42. C t33(3,1)=t33(1,3)
  43. C t33(3,2)=t33(2,3)
  44. C n33(1,1)=xmat(nmat1+7)
  45. C n33(2,2)=xmat(nmat1+8)
  46. C n33(3,3)=xmat(nmat1+9)
  47. C n33(1,2)=xmat(nmat1+10)
  48. C n33(1,3)=xmat(nmat1+11)
  49. C n33(2,3)=xmat(nmat1+12)
  50. C n33(2,1)=n33(1,2)
  51. C n33(3,1)=n33(1,3)
  52. C n33(3,2)=n33(2,3)
  53. C end if
  54. C if ((ifou.eq.0).or.(ifou.eq.-1)) then
  55. C c mode axisymetrique(0) ou deformation plane(-1)
  56. C c chargement des matrices des tailles de EF
  57. C t33(1,1)=xmat(nmat1+1)
  58. C t33(2,2)=xmat(nmat1+2)
  59. C if(ifou.eq.0) then
  60. C c axisymetrie
  61. C t33(3,3)=xmat(nmat1+8)
  62. C c print*,t33(3,3)
  63. C else
  64. C c deformations planes on recupere l epaisseur vraie
  65. C t33(3,3)=xmat(nmat1+8)
  66. C end if
  67. C t33(1,2)=xmat(nmat1+4)
  68. C t33(1,3)=0.d0
  69. C t33(2,3)=0.d0
  70. C t33(2,1)=t33(1,2)
  71. C t33(3,1)=t33(1,3)
  72. C t33(3,2)=t33(2,3)
  73. C n33(1,1)=xmat(nmat1+5)
  74. C n33(2,2)=xmat(nmat1+6)
  75. C n33(3,3)=1.d0
  76. C n33(1,2)=xmat(nmat1+7)
  77. C n33(1,3)=0.d0
  78. C n33(2,3)=0.d0
  79. C n33(2,1)=n33(1,2)
  80. C n33(3,1)=n33(1,3)
  81. C n33(3,2)=n33(2,3)
  82. C end if
  83. C else
  84. C print*,'b3_tai, non implante pour cette formulation'
  85. C err1=1
  86. C return
  87. C end if
  88. C c variable logique localisation
  89. C c la transformation de Hillerborgh n est activee que si t33 non nul
  90. C c c a d fourni en prametres materiaux
  91. C if ((t33(1,1).eq.0.).and.Mjacob) then
  92. C print*, 'Traitement Hillerborgh necessite les tailles'
  93. C print*, 'Dans b3_tai'
  94. C err1=1
  95. C return
  96. C end if
  97. else
  98. c on utilisera la methode des noeuds ou la non locale on met a un
  99. c les matrices pour la methode des jacobiennes
  100. do i=1,3
  101. do j=1,3
  102. if(i.eq.j) then
  103. t33(i,j)=1.d0
  104. n33(i,j)=1.d0
  105. else
  106. t33(i,j)=0.d0
  107. n33(i,j)=0.d0
  108. end if
  109. end do
  110. end do
  111. c print*,'dans b3_tai la methode des neouds n est pas appelee'
  112. c call afic33(t33)
  113. c read*
  114. c ierr=1
  115. end if
  116.  
  117. return
  118. end
  119. ******************************************************************************************
  120.  
  121.  
  122.  

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