Télécharger dbbst2.eso

Retour à la liste

Numérotation des lignes :

  1. C DBBST2 SOURCE CHAT 05/01/12 22:36:57 5004
  2. SUBROUTINE DBBST2(TRACE,NBPGAU,IFOUR,MELE,POIGAU,QSIGAU,
  3. & ETAGAU,DZEGAU,SHPTOT,NBNO,SHP,XE)
  4. c
  5. c
  6. c projection de la trace de epsi2 sur la base reduite des elements icq
  7. c
  8. c entree
  9. c trace : tableau contenant la valeur de trace de epsi2 en
  10. c chaque point de gauss
  11. c et la valeur du coefficient K (2,*) P=k. tr(epsilon)
  12. c nbpgau : nombre de point de gauss
  13. c ifour : variable du ccoptio
  14. c mele : numero de l'element
  15. c poigau : poids d'integration
  16. c qsigau : 1ere composante sur l'element de reference
  17. c etagau : 2eme composante sur l'element de reference
  18. c dzegau : 3eme composante sur l'element de reference
  19. c shptot : valeurs des fonctions de forme
  20. c
  21. c sortie
  22. c trac : contient la correction à apporter à chaque composante diagonale de
  23. c la deformation
  24. c
  25. c
  26. IMPLICIT INTEGER(I-N)
  27. IMPLICIT REAL*8(A-H,O-Z)
  28. c
  29. DIMENSION TRACE(3,*),POIGAU(*),QSIGAU(*),ETAGAU(*),DZEGAU(*)
  30. & ,SHPTOT(6,NBNO,*),SHP(6,*),XE(3,*)
  31. DIMENSION P(3,3),T(3)
  32.  
  33. c
  34. c elements icq4 et ict3
  35. c
  36. IF (MELE.EQ.69.OR.MELE.EQ.70.OR.MELE.EQ.71) THEN
  37. TRINTG = 0.D0
  38. aire = 0.d0
  39. DO 10 I=1,NBPGAU
  40. DO 5 J=1,NBNO
  41. DO 5 K =1,6
  42. SHP(K,J)=SHPTOT(K,J,I)
  43. 5 CONTINUE
  44. CALL JACOBI(XE,SHP,2,NBNO,DJAC)
  45. TRINTG = TRINTG + POIGAU(I)*TRACE(1,I)*DJAC
  46. AIRE = AIRE +POIGAU(I)*DJAC
  47. 10 CONTINUE
  48. trintg = TRINTG / AIRE
  49. c
  50. DO 20 I=1,NBPGAU
  51. TRACE(1,I) = (TRINTG - TRACE(1,I))*TRACE(2,I)
  52. 20 CONTINUE
  53. RETURN
  54. c
  55. c élement ICQ8
  56. c
  57. ELSE IF ( MELE.EQ.72) THEN
  58. c
  59. c matrice P calculée analytiquement voir routine BBCALC
  60. c
  61. P(1,1) = 2.D0/3.D0*(XE(1,1)*(XE(2,2)-XE(2,8))
  62. 1 +XE(1,2)*(XE(2,3)-XE(2,1))
  63. 1 +XE(1,3)*(XE(2,4)-XE(2,2))+XE(1,4)*(XE(2,5)-XE(2,3))
  64. 2 +XE(1,5)*(XE(2,6)-XE(2,4))+XE(1,6)*(XE(2,7)-XE(2,5))
  65. 3 +XE(1,7)*(XE(2,8)-XE(2,6))+XE(1,8)*(XE(2,1)-XE(2,7)))
  66. 4 +1.D0/6.D0*((XE(1,1)-XE(1,5))*(XE(2,7)-XE(2,3))
  67. 5 +(XE(1,3)-XE(1,7))*(XE(2,1)-XE(2,5)))
  68.  
  69. P(1,2) = 5.D0/9.D0*(-XE(2,2)*(XE(1,1)+XE(1,3))
  70. 1 +XE(1,2)*(XE(2,1)+XE(2,3))+XE(1,6)*(-XE(2,5)-XE(2,7))
  71. 1 +XE(2,6)*(XE(1,5)+XE(1,7)))
  72. 2 +4.D0/9.D0*(XE(1,8)*(XE(2,7)+XE(2,2)-XE(2,6)-XE(2,1))
  73. 2 +XE(2,8)*(-XE(1,7)-XE(1,2)+XE(1,6)+XE(1,1))
  74. 2 +XE(1,4)*(XE(2,2)-XE(2,6)+XE(2,5)-XE(2,3))
  75. 2 +XE(2,4)*(-XE(1,2)+XE(1,6)-XE(1,5)+XE(1,3)))
  76. 3 +7.D0/45.D0*(XE(1,2)*(XE(2,5)+XE(2,7))
  77. 3 -XE(2,2)*(XE(1,5)+XE(1,7))-XE(1,6)*(XE(2,1)+XE(2,3))
  78. 3 +XE(2,6)*(XE(1,1)+XE(1,3)))
  79. 4 +8.D0/15.D0*(XE(1,6)*XE(2,2)-XE(1,2)*XE(2,6))
  80. 5 +7.D0/90.D0*(XE(1,7)*XE(2,1)-XE(1,3)*XE(2,5)
  81. 5 +XE(1,5)*XE(2,3)-XE(1,1)*XE(2,7))
  82. 6 +1.D0/30.D0*(-XE(1,7)*XE(2,3)+XE(1,3)*XE(2,7)
  83. 6 -XE(1,5)*XE(2,1)+XE(1,1)*XE(2,5))
  84.  
  85.  
  86. P(1,3) = 5.D0/9.D0*(-XE(1,8)*(XE(2,7)+XE(2,1))
  87. 1 +XE(2,8)*(XE(1,7)+XE(1,1))
  88. 1 +XE(1,4)*(XE(2,3)+XE(2,5))
  89. 1 -XE(2,4)*(XE(1,3)+XE(1,5)))
  90. 2 +4.D0/9.D0*((XE(1,8)-XE(1,4))*(XE(2,2)+XE(2,6))
  91. 2 +(-XE(2,8)+XE(2,4))*(XE(1,2)+XE(1,6))
  92. 2 +XE(1,2)*(XE(2,1)-XE(2,3))+XE(2,2)*(-XE(1,1)+XE(1,3))
  93. 2 +XE(1,6)*(XE(2,7)-XE(2,5))+XE(2,6)*(-XE(1,7)+XE(1,5)))
  94. 3 +7.D0/45.D0*(-XE(1,8)*(XE(2,3)+XE(2,5))
  95. 3 +XE(2,8)*(XE(1,3)+XE(1,5))
  96. 3 +XE(1,4)*(XE(2,1)+XE(2,7))
  97. 3 -XE(2,4)*(XE(1,1)+XE(1,7)))
  98. 4 +1.D0/30.D0*(-XE(1,7)*XE(2,3)+XE(1,3)*XE(2,7)
  99. 4 +XE(1,5)*XE(2,1)-XE(1,1)*XE(2,5))
  100. 5 +7.D0/90.D0*(XE(1,7)*XE(2,5)-XE(1,3)*XE(2,1)
  101. 5 -XE(1,5)*XE(2,7)+XE(1,1)*XE(2,3))
  102. 6 +8.D0/15.D0*(XE(1,8)*XE(2,4)-XE(1,4)*XE(2,8))
  103.  
  104. P(2,1) = P(1,2)
  105.  
  106. P(2,2) = 16.D0/45.D0*(XE(2,6)*(XE(1,5)-XE(1,7))
  107. 1 +XE(1,6)*(XE(2,7)-XE(2,5))+XE(1,2)*(XE(2,3)-XE(2,1))
  108. 1 +XE(2,2)*(XE(1,1)-XE(1,3)))
  109. 2 +14.D0/45.D0*(XE(2,4)*(XE(1,3)-XE(1,5))
  110. 2 +XE(1,4)*(XE(2,5)-XE(2,3))+XE(1,8)*(XE(2,1)-XE(2,7))
  111. 2 +XE(2,8)*(XE(1,7)-XE(1,1)))
  112. 3 +8.D0/45.D0*(XE(1,4)*(XE(2,2)-XE(2,6))
  113. 3 +XE(1,8)*(XE(2,6)-XE(2,2))+XE(1,2)*(XE(2,8)-XE(2,4))
  114. 3 +XE(1,6)*(XE(2,4)-XE(2,8)))
  115. 4 +2.D0/45.D0*(XE(2,2)*(XE(1,5)-XE(1,7))
  116. 4 +XE(1,2)*(XE(2,7)-XE(2,5)) +XE(1,6)*(XE(2,3)-XE(2,1))
  117. 4 +XE(2,6)*(XE(1,1)-XE(1,3)))
  118. 5 +4.D0/45.D0*(XE(2,4)*(XE(1,1)-XE(1,7))
  119. 5 +XE(1,4)*(XE(2,7)-XE(2,1)) +XE(1,8)*(XE(2,3)-XE(2,5))
  120. 5 +XE(2,8)*(XE(1,5)-XE(1,3)))
  121. 6 +17.D0/90.D0*(XE(1,7)*XE(2,5)+XE(1,3)*XE(2,1)
  122. 6 -XE(1,5)*XE(2,7)-XE(1,1)*XE(2,3))
  123. 7 +1.D0/90.D0*(-XE(1,7)*XE(2,1)-XE(1,3)*XE(2,5)
  124. 7 +XE(1,5)*XE(2,3)+XE(1,1)*XE(2,7))
  125.  
  126.  
  127. P(2,3) = 1.D0/3.D0*(XE(1,5)*(XE(2,6)-XE(2,4))
  128. 1 +XE(1,8)*(XE(2,7)+XE(2,1))+XE(1,7)*(XE(2,6)-XE(2,8))
  129. 1 -XE(1,2)*(XE(2,1)+XE(2,3))+XE(1,1)*(XE(2,2)-XE(2,8))
  130. 1 +XE(1,4)*(XE(2,5)+XE(2,3))-XE(1,6)*(XE(2,7)+XE(2,5))
  131. 1 +XE(1,3)*(XE(2,2)-XE(2,4)))
  132. 2 +4.D0/9.D0*(-XE(1,4)*(XE(2,2)+XE(2,6))
  133. 2 -XE(1,8)*(XE(2,6)+XE(2,2))+XE(1,2)*(XE(2,8)+XE(2,4))
  134. 2 +XE(1,6)*(XE(2,4)+XE(2,8)))
  135. 3 +1.D0/9.D0*(XE(1,7)*(XE(2,2)-XE(2,4))
  136. 3 +XE(1,8)*(XE(2,3)+XE(2,5))
  137. 3 +XE(1,5)*(XE(2,2)-XE(2,8))+XE(1,3)*(XE(2,6)-XE(2,8))
  138. 3 -XE(1,2)*(XE(2,5)+XE(2,7))+XE(1,1)*(XE(2,6)-XE(2,4))
  139. 3 +XE(1,4)*(XE(2,1)+XE(2,7))-XE(1,6)*(XE(2,1)+XE(2,3)))
  140.  
  141.  
  142. P(3,1) = P(1,3)
  143.  
  144. P(3,2) = P(2,3)
  145.  
  146. P(3,3) = 14.D0/45.D0*(XE(1,6)*(XE(2,7)-XE(2,5))
  147. 1 +XE(2,6)*(XE(1,5)-XE(1,7))+XE(1,2)*(XE(2,3)-XE(2,1))
  148. 1 +XE(2,2)*(XE(1,1)-XE(1,3)))
  149. 2 +16.D0/45.D0*(XE(1,8)*(XE(2,1)-XE(2,7))
  150. 2 +XE(2,8)*(XE(1,7)-XE(1,1))+XE(1,4)*(XE(2,5)-XE(2,3))
  151. 2 +XE(2,4)*(XE(1,3)-XE(1,5)))
  152. 3 +8.D0/45.D0*(XE(1,4)*(XE(2,2)-XE(2,6))
  153. 3 +XE(1,8)*(XE(2,6)-XE(2,2))+XE(1,2)*(XE(2,8)-XE(2,4))
  154. 3 +XE(1,6)*(XE(2,4)-XE(2,8)))
  155. 4 +2.D0/45.D0*(XE(2,4)*(XE(1,7)-XE(1,1))
  156. 4 +XE(1,8)*(XE(2,5)-XE(2,3))+XE(2,8)*(-XE(1,5)+XE(1,3))
  157. 4 +XE(1,4)*(XE(2,1)-XE(2,7)))
  158. 5 +4.D0/45.D0*(XE(2,2)*(XE(1,7)-XE(1,5))
  159. 5 +XE(1,2)*(XE(2,5)-XE(2,7))+XE(1,6)*(XE(2,1)-XE(2,3))
  160. 5 +XE(2,6)*(XE(1,3)-XE(1,1)))
  161. 6 +1.D0/90.D0*(-XE(1,5)*XE(2,7)+XE(1,3)*XE(2,1)
  162. 6 +XE(1,7)*XE(2,5)-XE(1,1)*XE(2,3))
  163. 7 +17.D0/90.D0*(-XE(1,7)*XE(2,1)-XE(1,3)*XE(2,5)
  164. 7 +XE(1,5)*XE(2,3)+XE(1,1)*XE(2,7))
  165.  
  166. c
  167. c calcul des produits <tr eII . 1 > , <tr eII . eta > , <tr eII . xsi >
  168. c
  169. T(1) = 0.D0
  170. T(2) = 0.D0
  171. T(3) = 0.D0
  172. DO 40 I=1,NBPGAU
  173. DO 30 J=1,NBNO
  174. DO 30 K =1,6
  175. SHP(K,J)=SHPTOT(K,J,I)
  176. 30 CONTINUE
  177. CALL JACOBI(XE,SHP,2,NBNO,DJAC)
  178. T(1) = T(1) + POIGAU(I)*TRACE(1,I)*DJAC
  179. T(2) = T(2) + POIGAU(I)*TRACE(1,I)*DJAC*QSIGAU(I)
  180. T(3) = T(3) + POIGAU(I)*TRACE(1,I)*DJAC*ETAGAU(I)
  181. 40 CONTINUE
  182. *
  183. c resolution du systme P.X=T
  184. c
  185. CALL GAUSSJ(P,3,3,T,1,1)
  186. *
  187. c caclul du terme correctif
  188. c
  189. COEF = 2.D0
  190. IF (IFOUR .EQ. 0 ) COEF = 3.D0
  191. DO 50 I=1,NBPGAU
  192. TRACE(1,I)=(T(1)+QSIGAU(I)*T(2)+ETAGAU(I)*T(3)-TRACE(1,I))
  193. & *TRACE(2,I)
  194. 50 CONTINUE
  195. c
  196. RETURN
  197. c
  198. ENDIF
  199. c pas de correction pour les autres éléments
  200. c
  201. DO 70 I=1,NBPGAU
  202. TRACE(1,I)=0.D0
  203. 70 CONTINUE
  204. c
  205. c
  206. c
  207. RETURN
  208. END
  209.  
  210.  
  211.  

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