Télécharger kpcoq4.eso

Retour à la liste

Numérotation des lignes :

kpcoq4
  1. C KPCOQ4 SOURCE CB215821 26/08/24 21:17:03 12622
  2. SUBROUTINE KPCOQ4(XX, XP, XKP, IANT)
  3. C
  4. C Procedure de calcul de la matrice Kppour un element COQ4
  5. C Entrees : XX(4, 3) : REAL*8 : Coordonnees des noeuds
  6. C XP : REAL : Pression
  7. C IANT : INTEGER : 1 si calcul asymétrique, 0 sinon
  8. C Sortie : XKP(24, 24) : REAL*8 : Matrice Kp elementaire
  9. C
  10. C (D'apres "Design variations of nonlinear elastic structures
  11. C subjected to follower forces"
  12. C M.J. Poldneff, I.S. Rai, J.S. Arora)
  13. C
  14. IMPLICIT INTEGER(I-N)
  15. IMPLICIT REAL*8(A-H,O-Z)
  16. DIMENSION XX(3, 4), XKP(24, 24), SKRO(3, 3, 3),
  17. 1 XN(4, 9), XNB1(9), XNB2(9), XNB3(9), XNB4(9), XNB(9),
  18. 2 DNB1(9), DNB2(9), DN(2, 4, 9), DX(2, 3, 9), XDUM(24, 24),
  19. 3 XTIN(9), A(9), B(9), C(9), D(9), E(9), F(9)
  20. DATA XNB1/0.5D0,0.D0,-0.5D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0/
  21. DATA XNB2/0.5D0,0.D0,0.5D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0/
  22. DATA XNB3/0.5D0,-0.5D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0/
  23. DATA XNB4/0.5D0,0.5,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0/
  24. C
  25. C Initialisation du symbole epsilon
  26. C
  27. DO 93 I = 1, 3
  28. DO 92 J = 1, 3
  29. DO 10 K = 1, 3
  30. SKRO(I, J, K) = 0.D0
  31. 10 CONTINUE
  32. 92 CONTINUE
  33. 93 CONTINUE
  34. SKRO(1, 2, 3) = 1.D0
  35. SKRO(1, 3, 2) = -1.D0
  36. SKRO(2, 3, 1) = 1.D0
  37. SKRO(2, 1, 3) = -1.D0
  38. SKRO(3, 1, 2) = 1.D0
  39. SKRO(3, 2, 1) = -1.D0
  40. C
  41. C Calcul de la pression
  42. C
  43. P = XP
  44. * DO 20 I = 1, 4
  45. * 20 P = P + XP(I)
  46. * P = P/4.
  47. * WRITE (*,*) 'Pression : ', P
  48. C
  49. C Fonctions de forme et derivees
  50. C
  51. C Les coefficients sont ranges comme suit :
  52. C indice : 1 2 3 4 5 6 7 8 9
  53. C terme : 1 T2 T1 T1*T2 T2^2 T1^2 T1*T2^2 T1^2*T2 T1^2*T2^2
  54. C
  55. CALL MULTP2(XNB1, XNB3, XNB)
  56. CALL DERIP2(XNB, 1, DNB1)
  57. CALL DERIP2(XNB, 2, DNB2)
  58. DO 31 I = 1, 9
  59. XN(1, I) = XNB(I)
  60. DN(1, 1, I) = DNB1(I)
  61. DN(2, 1, I) = DNB2(I)
  62. 31 CONTINUE
  63. CALL MULTP2(XNB2, XNB3, XNB)
  64. CALL DERIP2(XNB, 1, DNB1)
  65. CALL DERIP2(XNB, 2, DNB2)
  66. DO 32 I = 1, 9
  67. XN(2, I) = XNB(I)
  68. DN(1, 2, I) = DNB1(I)
  69. DN(2, 2, I) = DNB2(I)
  70. 32 CONTINUE
  71. CALL MULTP2(XNB2, XNB4, XNB)
  72. CALL DERIP2(XNB, 1, DNB1)
  73. CALL DERIP2(XNB, 2, DNB2)
  74. DO 33 I = 1, 9
  75. XN(3, I) = XNB(I)
  76. DN(1, 3, I) = DNB1(I)
  77. DN(2, 3, I) = DNB2(I)
  78. 33 CONTINUE
  79. CALL MULTP2(XNB1, XNB4, XNB)
  80. CALL DERIP2(XNB, 1, DNB1)
  81. CALL DERIP2(XNB, 2, DNB2)
  82. DO 34 I = 1, 9
  83. XN(4, I) = XNB(I)
  84. DN(1, 4, I) = DNB1(I)
  85. DN(2, 4, I) = DNB2(I)
  86. 34 CONTINUE
  87. C
  88. C Vecteurs tangents a la coque dans la configuration initiale
  89. C
  90. C Initialisation
  91. DO 95 I = 1, 2
  92. C Boucle sur les parametres
  93. DO 94 J = 1, 3
  94. C Boucle sur les composantes
  95. DO 40 K = 1, 9
  96. C Boucle sur les coefficients des polynomes
  97. DX(I, J, K) = 0.D0
  98. 40 CONTINUE
  99. 94 CONTINUE
  100. 95 CONTINUE
  101. C Calcul
  102. DO 98 I = 1, 2
  103. C Boucle sur les parametres
  104. DO 97 J = 1, 3
  105. C Boucle sur les composantes
  106. DO 96 K = 1, 9
  107. C Boucle sur les coefficients des polynomes
  108. DO 50 L = 1, 4
  109. C Boucle sur les noeuds
  110. DX(I, J, K) = DX(I, J, K) + XX(J, L)*DN(I, L, K)
  111. 50 CONTINUE
  112. 96 CONTINUE
  113. 97 CONTINUE
  114. 98 CONTINUE
  115. C
  116. C
  117. C Calcul des termes de la matrice Kp
  118. C
  119. C Initialisation
  120. DO 99 I = 1, 24
  121. DO 55 J = 1, 24
  122. XDUM(I,J) = 0.D0
  123. XKP(I, J) = 0. D0
  124. 55 CONTINUE
  125. 99 CONTINUE
  126. C Calcul
  127. DO 102 II = 1, 3
  128. DO 101 IL = 1, 4
  129. DO 100 IS = 1, 3
  130. DO 60 IT = 1, 4
  131. XRES = 0.D0
  132. DO 70 J = 1, 3
  133. IFLAG = 0
  134. DO 71 K = 1, 9
  135. A(K) = XN(IL, K)
  136. D(K) = 0.D0
  137. 71 CONTINUE
  138. IF (SKRO(II, J, IS) .NE. 0.D0) THEN
  139. DO 81 K = 1, 9
  140. B(K) = DN(2, IT, K)
  141. C(K) = DX(1, J, K)
  142. 81 CONTINUE
  143. CALL MULTP2(B, C, E)
  144. DO 72 K = 1, 9
  145. D(K) = SKRO(II, J, IS)*E(K)
  146. 72 CONTINUE
  147. IFLAG = 1
  148. ENDIF
  149. IF (SKRO(II, IS, J) .NE. 0.D0) THEN
  150. DO 82 K = 1, 9
  151. B(K) = DN(1, IT, K)
  152. C(K) = DX(2, J, K)
  153. 82 CONTINUE
  154. CALL MULTP2(B, C, E)
  155. IF (IFLAG .EQ. 1) THEN
  156. DO 73 K = 1, 9
  157. D(K) = D(K) + SKRO(II, IS, J)*E(K)
  158. 73 CONTINUE
  159. ELSE
  160. DO 74 K = 1, 9
  161. D(K) = SKRO(II, IS, J)*E(K)
  162. 74 CONTINUE
  163. ENDIF
  164. IFLAG = 1
  165. ENDIF
  166. IF (IFLAG .NE. 0) THEN
  167. CALL MULTP2(A, D, XTIN)
  168. CALL INTGP2(XTIN, TING)
  169. XRES = XRES + TING
  170. ENDIF
  171. 70 CONTINUE
  172. XRES = XRES*P
  173. XDUM(6*(IL-1) + II, 6*(IT-1) + IS) = XRES
  174. 60 CONTINUE
  175. 100 CONTINUE
  176. 101 CONTINUE
  177. 102 CONTINUE
  178. IF (IANT .EQ. 0) THEN
  179. DO 103 II = 1, 24
  180. DO 90 IJ = II, 24
  181. XKP(II, IJ) = (XDUM(II, IJ) + XDUM(IJ, II))*0.5D0
  182. XKP(IJ, II) = XKP(II, IJ)
  183. 90 CONTINUE
  184. 103 CONTINUE
  185. ELSE
  186. DO 104 II = 1, 24
  187. DO 91 IJ = 1, 24
  188. XKP(II, IJ) = XDUM(II, IJ)
  189. 91 CONTINUE
  190. 104 CONTINUE
  191. ENDIF
  192. RETURN
  193. END
  194.  
  195.  
  196.  
  197.  
  198.  

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