Télécharger coq4rj.eso

Retour à la liste

Numérotation des lignes :

coq4rj
  1. C COQ4RJ SOURCE CHAT 05/01/12 22:21:44 5004
  2. SUBROUTINE COQ4RJ (IGAU,BGENE,DJAC,EXCENT,NOPLAN,DHOOK,REL)
  3. ************************************************************************
  4. *
  5. * C O Q 4 R J
  6. * -----------
  7. *
  8. * FONCTION:
  9. * ---------
  10. *
  11. * Calcul du produit Bt.D.B en 1 point de Gauss, pour le COQ4 non-isotrope.
  12. *
  13. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  14. * -----------
  15. *
  16. * IGAU (E) Numéro du point de Gauss.
  17. * BGENE (E) Matrice "B".
  18. * DJAC (E) Jacobien.
  19. * EXCENT (E) Excentrement.
  20. * NOPLAN (E) = 1 si élément non plan,
  21. * = 0 sinon.
  22. * DHOOK (E) Matrice de Hooke intégrée dans l'épaisseur.
  23. * Séparation par blocs:
  24. * membrane, puis flexion, puis cisaillement transverse.
  25. * (S) Contenu modifie.
  26. * REL (E) Matrice de Raideur.
  27. * (S) Completée par la contribution du point de Gauss
  28. * courant.
  29. *
  30. IMPLICIT INTEGER(I-N)
  31. PARAMETER (NSTRS=8, LRE=24)
  32. REAL*8 DJAC,EXCENT
  33. REAL*8 DHOOK(NSTRS,NSTRS),REL(LRE,LRE),BGENE(NSTRS,LRE)
  34. *
  35. * VARIABLES:
  36. * ----------
  37. *
  38. REAL*8 DB(NSTRS,LRE)
  39. *
  40. * MODE DE FONCTIONNEMENT:
  41. * -----------------------
  42. *
  43. * Utilisation de la valeur de "Bm" au point central pour toute ou
  44. * partie de la raideur de membrane:
  45. * - tout si élément non plan,
  46. * - rien sinon.
  47. *
  48. * Utilisation de la valeur de "Bf" au point central pour la raideur
  49. * de couplage membrane/flexion due à l'excentrement dans les mêmes
  50. * conditions que pour la membrane.
  51. *
  52. * AUTEUR, DATE DE CREATION:
  53. * -------------------------
  54. *
  55. * Michel BULIK 26 Novembre 1996 d'après COQ4RI écrit par
  56. * Pascal MANIGOT 27 Mars 1991
  57. *
  58. ************************************************************************
  59. *
  60. *
  61. * On multiplie les termes de la matrice de Hooke par le Jacobien,
  62. * elle est déja intégrée dans l'épaisseur ...
  63. *
  64. DO 100 J=1,NSTRS
  65. DO 100 I=1,NSTRS
  66. DHOOK(I,J) = DJAC * DHOOK(I,J)
  67. 100 CONTINUE
  68. * END DO
  69. * END DO
  70. *
  71. * Mise à 0 de DB, en cas de coque non excentrée INCMAX=2 permet
  72. * d'éviter pas mal de multiplications par 0 ...
  73. *
  74. CALL ZERO (DB,NSTRS,LRE)
  75. IF (ABS(EXCENT) .GT. 1.D-30) THEN
  76. INCMAX = 5
  77. ELSE
  78. INCMAX = 2
  79. END IF
  80. *
  81. * Calcul de DB ...
  82. *
  83. DO 110 NOEUD=1,4
  84. N6 = 6 * (NOEUD - 1)
  85. *
  86. * eD.Bm | eD.h.Bf
  87. DO 120 J=1,INCMAX
  88. DO 120 I=1,3
  89. DO 120 K=1,3
  90. DB(I,J+N6) = DB(I,J+N6) + DHOOK(I,K)*BGENE(K,J+N6)
  91. 120 CONTINUE
  92. * END DO
  93. * END DO
  94. * END DO
  95. *
  96. * Pour le calcul de la raideur et lorsque IGAU=5, seules les
  97. * lignes de 1 à 3 de la matrice B peuvent contenir des termes
  98. * non nuls, d'où cette condition :
  99. *
  100. IF (IGAU .LE. 4) THEN
  101. DO 160 J=3,5
  102. * e3/12.D.Bf
  103. DO 140 I=4,6
  104. DO 140 K=4,6
  105. DB(I,J+N6) = DB(I,J+N6) + DHOOK(I,K)*BGENE(K,J+N6)
  106. 140 CONTINUE
  107. * END DO
  108. * END DO
  109. * 5/6.eG.Bc
  110. *
  111. * ATTENTION !!! en orthotrope, cela n'est pas correct !!!!!!!!!!!!!!!!!!
  112. * car les termes (7,8) et (8,7) de D sont en général non nuls ...
  113. *
  114. * DB(7,J+N6) = DB(7,J+N6) + DHOOK(7,7)*BGENE(7,J+N6)
  115. * DB(8,J+N6) = DB(8,J+N6) + DHOOK(8,8)*BGENE(8,J+N6)
  116. *
  117. DO 150 I=7,8
  118. DO 150 K=7,8
  119. DB(I,J+N6) = DB(I,J+N6) + DHOOK(I,K)*BGENE(K,J+N6)
  120. 150 CONTINUE
  121. * END DO
  122. * END DO
  123.  
  124. 160 CONTINUE
  125. * END DO
  126. END IF
  127. *
  128. 110 CONTINUE
  129. * END DO
  130. *
  131. * Intégration elle-même ...
  132. *
  133. IF (IGAU .LE. 4) THEN
  134. * Intégration exacte.
  135. *
  136. * Rigidité de Flexion et Cisaillement transverse.
  137. DO 200 M=3,5
  138. DO 200 L=3,5
  139. DO 200 NOEUD = 1,4
  140. L6 = 6 * (NOEUD - 1)
  141. DO 200 NOEUD2 = 1,4
  142. M6 = 6 * (NOEUD2 - 1)
  143. DO 200 I=4,8
  144. REL(L+L6,M+M6)
  145. & = REL(L+L6,M+M6) + BGENE(I,L+L6)*DB(I,M+M6)
  146. 200 CONTINUE
  147. * END DO
  148. * END DO
  149. * END DO
  150. * END DO
  151. * END DO
  152. *
  153. IF (NOPLAN .EQ. 0) THEN
  154. * Intégration exacte raideur de membrane et de couplage
  155. * membrane/flexion, avec cisaillement:
  156. DO 220 M=1,INCMAX
  157. DO 220 L=1,INCMAX
  158. DO 220 NOEUD = 1,4
  159. L6 = 6 * (NOEUD - 1)
  160. DO 220 NOEUD2 = 1,4
  161. M6 = 6 * (NOEUD2 - 1)
  162. REL(L+L6,M+M6) = REL(L+L6,M+M6)
  163. & + BGENE(1,L+L6)*DB(1,M+M6)
  164. & + BGENE(2,L+L6)*DB(2,M+M6)
  165. & + BGENE(3,L+L6)*DB(3,M+M6)
  166. 220 CONTINUE
  167. * END DO
  168. * END DO
  169. * END DO
  170. * END DO
  171. END IF
  172. *
  173. ELSE IF (IGAU .EQ. 5) THEN
  174. *
  175. * Intégration réduite raideur de membrane et de couplage
  176. * membrane/flexion:
  177. IF (NOPLAN .EQ. 1) THEN
  178.  
  179. DO 240 M=1,INCMAX
  180. DO 240 L=1,INCMAX
  181. DO 240 NOEUD = 1,4
  182. L6 = 6 * (NOEUD - 1)
  183. DO 240 NOEUD2 = 1,4
  184. M6 = 6 * (NOEUD2 - 1)
  185. DO 240 I= 1,3
  186. REL(L+L6,M+M6)
  187. & = REL(L+L6,M+M6) + BGENE(I,L+L6)*DB(I,M+M6)
  188. 240 CONTINUE
  189. * END DO
  190. * END DO
  191. * END DO
  192. * END DO
  193. * END DO
  194. *
  195. END IF
  196.  
  197. END IF
  198. *
  199. END
  200.  
  201.  
  202.  

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