Télécharger rior3d.eso

Retour à la liste

Numérotation des lignes :

rior3d
  1. C RIOR3D SOURCE FD218221 24/02/07 21:15:25 11834
  2. subroutine rior3d(xmat,nmat,nbelas,ierr1,H,C,P33,TP33)
  3.  
  4. c A Sellier 2023 12 18
  5.  
  6. c matrices de raideur et de souplesse pour le materiau orthotrope
  7. c en base d orthotropie, matrice de passage en base d orthotropie et matrice inverse
  8. implicit real*8 (a-h,o-z)
  9. implicit integer (i-n)
  10.  
  11. c variables globales
  12. integer nmat,ierr1,nbelas
  13. real*8 xmat(nmat)
  14.  
  15. c variables locales
  16. real*8 E1,E2,E3,nu12,nu23,nu13,G12,G23,G13
  17. real*8 v1x,v1y,v1z,v2x,v2y,v2z
  18. real*8 H(6,6),C(6,6),P33(3,3),TP33(3,3)
  19.  
  20. call xmat3d(E1,xmat,nmat,vnmat,nstype,nbelas,0,1)
  21. call xmat3d(E2,xmat,nmat,vnmat,nstype,nbelas,0,2)
  22. call xmat3d(E3,xmat,nmat,vnmat,nstype,nbelas,0,3)
  23. call xmat3d(nu12,xmat,nmat,vnmat,nstype,nbelas,0,4)
  24. call xmat3d(nu23,xmat,nmat,vnmat,nstype,nbelas,0,5)
  25. call xmat3d(nu13,xmat,nmat,vnmat,nstype,nbelas,0,6)
  26. call xmat3d(G12,xmat,nmat,vnmat,nstype,nbelas,0,7)
  27. call xmat3d(G23,xmat,nmat,vnmat,nstype,nbelas,0,8)
  28. call xmat3d(G13,xmat,nmat,vnmat,nstype,nbelas,0,9)
  29.  
  30. c matrice de raideur H base d orthotropie
  31. do i=1,6
  32. do j=1,6
  33. H(i,j)=0.d0
  34. end do
  35. end do
  36.  
  37. t1 = E3 * nu23 ** 2
  38. t2 = E2 * nu12 ** 2
  39. t3 = E3 * nu13 ** 2
  40. t4 = E2 * nu12
  41. t5 = -0.2D1 * t4 * E3 * nu13 * nu23 - (-E1 + t2 + t3) * E2 - t1 *
  42. #E1
  43. t5 = 0.1D1 / t5
  44. t6 = E2 * E1 * (E3 * nu13 * nu23 + t4) * t5
  45. t7 = E1 * (nu12 * nu23 + nu13) * t5 * E3 * E2
  46. t4 = (E1 * nu23 + t4 * nu13) * t5 * E3 * E2
  47. H(1,1) = E1 ** 2 * (E2 - t1) * t5
  48. H(1,2) = t6
  49. H(1,3) = t7
  50. H(2,1) = t6
  51. H(2,2) = (E1 - t3) * E2 ** 2 * t5
  52. H(2,3) = t4
  53. H(3,1) = t7
  54. H(3,2) = t4
  55. H(3,3) = t5 * E3 * (E1 - t2) * E2
  56. H(4,4) = 0.2D1 * G12
  57. H(5,5) = 0.2D1 * G13
  58. H(6,6) = 0.2D1 * G23
  59.  
  60. c print*,'H en base principale d orthotropie'
  61. c call afic66(H)
  62.  
  63.  
  64. c matrice de souplesse C en base d orthotropie
  65. do i=1,6
  66. do j=1,6
  67. C(i,j)=0.d0
  68. end do
  69. end do
  70.  
  71. t1 = 0.1D1 / E1
  72. t2 = nu12 * t1
  73. t3 = nu13 * t1
  74. t4 = 0.1D1 / E2
  75. t5 = nu23 * t4
  76. C(1,1) = t1
  77. C(1,2) = -t2
  78. C(1,3) = -t3
  79. C(2,1) = -t2
  80. C(2,2) = t4
  81. C(2,3) = -t5
  82. C(3,1) = -t3
  83. C(3,2) = -t5
  84. C(3,3) = 0.1D1 / E3
  85. C(4,4) = 0.1D1 / G12 / 0.2D1
  86. C(5,5) = 0.1D1 / G13 / 0.2D1
  87. C(6,6) = 0.1D1 / G23 / 0.2D1
  88.  
  89. c print*,'C en base principale d orthotropie'
  90. c call afic66(C)
  91.  
  92. c recuperation de la matrice de passage en base fixe
  93.  
  94. c recuperation des directions d orthotropie
  95. call xmat3d(v1x,xmat,nmat,vnmat,nstype,nbelas,0,10)
  96. call xmat3d(v1y,xmat,nmat,vnmat,nstype,nbelas,0,11)
  97. call xmat3d(v1z,xmat,nmat,vnmat,nstype,nbelas,0,12)
  98. call xmat3d(v2x,xmat,nmat,vnmat,nstype,nbelas,0,13)
  99. call xmat3d(v2y,xmat,nmat,vnmat,nstype,nbelas,0,14)
  100. call xmat3d(v2z,xmat,nmat,vnmat,nstype,nbelas,0,15)
  101.  
  102. c vecteur manquant
  103. v3x = v1y * v2z - v1z * v2y
  104. v3y = -v1x * v2z + v1z * v2x
  105. v3z = v1x * v2y - v1y * v2x
  106.  
  107. c controle validite de la base d orthotropie
  108. v3=sqrt(v3x*v3x+v3y*v3y+v3z*v3z)
  109. if(abs(v3-1.d0).gt.1.0d-6) then
  110. print*,'Dans rior3d v3 n est pas unitaire :',v3
  111. print*,'il faut donner des directions d orthotropie orthormees'
  112. ierr=1
  113. return
  114. end if
  115.  
  116.  
  117. c matrice de passage d un vecteur courant
  118. P33(1,1)=v1x
  119. P33(2,1)=v1y
  120. P33(3,1)=v1z
  121.  
  122. P33(1,2)=v2x
  123. P33(2,2)=v2y
  124. P33(3,2)=v2z
  125.  
  126. P33(1,3)=v3x
  127. P33(2,3)=v3y
  128. P33(3,3)=v3z
  129.  
  130. c matrice inverse
  131. call traps1(TP33,P33,3)
  132.  
  133. c print*,'Matrice de passage en base orthotrope'
  134. c call afic33(P33)
  135.  
  136.  
  137.  
  138.  
  139. return
  140. end
  141.  
  142.  

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