Télécharger dohcom.eso

Retour à la liste

Numérotation des lignes :

  1. C DOHCOM SOURCE CHAT 05/01/12 22:53:27 5004
  2. C
  3. SUBROUTINE DOHCOM(VELA,NCOELE,MATE,IFOU,LHOOK,DDHOOK,IRET)
  4. C
  5. C=======================================================================
  6. C
  7. C MATRICE DE HOOK DES COQUES MINCES
  8. C
  9. C ENTREES
  10. C VELA() = materiau dans un tableau de travail
  11. C NCOELE = TAILLE DU TABLEAU VELA
  12. C MATE = Nom du materiau
  13. C IFOU = num{ro d'harmonique de fourier: IFOUR de CCOPTIO
  14. C LHOOK = taille de la matrice de hooke
  15. C
  16. C SORTIES
  17. C DDHOOK(LHOOK,LHOOK) = matrice de hooke
  18. C IRET = 1 si option existante 0 SINON
  19. C
  20. C Passage en nouveau CHAMELEM par I.Monnier le 4 05 90
  21. C=======================================================================
  22. C
  23. IMPLICIT INTEGER(I-N)
  24. IMPLICIT REAL*8(A-H,O-Z)
  25. PARAMETER(UNDEMI=.5D0,XZER=0.0D0,XK=1.2D0)
  26. PARAMETER(UN=1.D0,DEUX=2.D0)
  27. CHARACTER*8 MATE
  28. C
  29. DIMENSION VELA(*),DDHOOK(LHOOK,*)
  30. REAL*8 D3HOO1(3,3),D3HOO2(3,3),ROTHOO(3,3)
  31. REAL*8 D2HOO1(2,2),D2HOO2(2,2),RO2HOO(2,2)
  32. C
  33. IRET=1
  34. CALL ZERO(DDHOOK,LHOOK,LHOOK)
  35. C
  36. C MATERIAU ISOTROPE
  37. C
  38. IF(MATE.EQ.'ISOTROPE') THEN
  39. C
  40. C CAS TRIDIMENSIONNEL ET FOURIER
  41. C
  42. IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN
  43. YOU =VELA(1)
  44. XNU =VELA(2)
  45. AUX=YOU/(UN-XNU*XNU)
  46. AUX1=AUX*XNU
  47. GEGE=YOU*UNDEMI/(UN+XNU)
  48. C
  49. DDHOOK(1,1)=AUX
  50. DDHOOK(2,1)=AUX1
  51. DDHOOK(1,2)=AUX1
  52. DDHOOK(2,2)=AUX
  53. DDHOOK(3,3)=GEGE
  54. C
  55. DDHOOK(4,4)=AUX
  56. DDHOOK(5,4)=AUX1
  57. DDHOOK(4,5)=AUX1
  58. DDHOOK(5,5)=AUX
  59. DDHOOK(6,6)=GEGE
  60. C
  61. C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES
  62. C
  63. ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
  64. YOU =VELA(1)
  65. XNU =VELA(2)
  66. AUX=YOU/(UN-XNU*XNU)
  67. AUX1=AUX*XNU
  68. C
  69. DDHOOK(1,1)=AUX
  70. DDHOOK(2,1)=AUX1
  71. DDHOOK(1,2)=AUX1
  72. DDHOOK(2,2)=AUX
  73. C
  74. DDHOOK(3,3)=AUX
  75. DDHOOK(4,3)=AUX1
  76. DDHOOK(3,4)=AUX1
  77. DDHOOK(4,4)=AUX
  78. C
  79. C CAS CONTRAINTES PLANES
  80. C
  81. ELSE IF(IFOU.EQ.-2) THEN
  82. YOU =VELA(1)
  83. DDHOOK(1,1)=YOU
  84. DDHOOK(3,3)=YOU
  85. ELSE
  86. IRET=0
  87. ENDIF
  88. C
  89. C MATERIAU ORTHOTROPE ET UNIDIRECTIONNEL
  90. C
  91. ELSE IF(MATE.EQ.'ORTHOTRO'.OR.
  92. 1 MATE.EQ.'UNIDIREC')THEN
  93. C
  94. C CAS TRIDIMENSIONNEL ET FOURIER
  95. C
  96. IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN
  97. IF(MATE.EQ.'ORTHOTRO')THEN
  98. YG1 = VELA(1)
  99. YG2 = VELA(2)
  100. XNU12 = VELA(3)
  101. G12 = VELA(4)
  102. COSA = VELA(5)
  103. SINA = VELA(6)
  104. C
  105. X1NUNU = UN - (XNU12**2) * YG2 / YG1
  106. C
  107. D3HOO1(1,1) = YG1 / X1NUNU
  108. D3HOO1(2,2) = YG2 / X1NUNU
  109. D3HOO1(1,2) = XNU12 * D3HOO1(2,2)
  110. D3HOO1(2,1) = D3HOO1(1,2)
  111. D3HOO1(3,3) = G12
  112. D3HOO1(1,3) = XZER
  113. D3HOO1(2,3) = XZER
  114. D3HOO1(3,1) = XZER
  115. D3HOO1(3,2) = XZER
  116. C
  117. ELSE
  118. CALL ZERO(D3HOO1,3,3)
  119. D3HOO1(1,1)=VELA(1)
  120. COSA=VELA(2)
  121. SINA=VELA(3)
  122. ENDIF
  123. COS2 = COSA**2
  124. SIN2 = SINA**2
  125. SINCOS = SINA * COSA
  126. C
  127. ROTHOO(1,1) = COS2
  128. ROTHOO(1,2) = SIN2
  129. ROTHOO(1,3) = SINCOS
  130. ROTHOO(2,1) = SIN2
  131. ROTHOO(2,2) = COS2
  132. ROTHOO(2,3) = - SINCOS
  133. ROTHOO(3,1) = - DEUX * SINCOS
  134. ROTHOO(3,2) = DEUX * SINCOS
  135. ROTHOO(3,3) = COS2 - SIN2
  136. C
  137. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  138. CALL PRODT (D3HOO2,D3HOO1,ROTHOO,3,3)
  139. DO 200 J=1,3
  140. DO 200 I=1,3
  141. DDHOOK(I,J) = D3HOO2(I,J)
  142. DDHOOK(I+3,J+3) = D3HOO2(I,J)
  143. 200 CONTINUE
  144. C
  145. C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES
  146. C
  147. ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
  148. IF(MATE.EQ.'ORTHOTRO')THEN
  149. YG1 = VELA(1)
  150. YG2 = VELA(2)
  151. XNU12 = VELA(3)
  152. COSA = VELA(5)
  153. SINA = VELA(6)
  154. C
  155. X1NUNU = UN - (XNU12**2) * YG2 / YG1
  156. C
  157. D2HOO1(1,1) = YG1 / X1NUNU
  158. D2HOO1(2,2) = YG2 / X1NUNU
  159. D2HOO1(1,2) = XNU12 * D2HOO1(2,2)
  160. D2HOO1(2,1) = D2HOO1(1,2)
  161. C
  162. ELSE
  163. CALL ZERO(D2HOO1,2,2)
  164. D2HOO1(1,1)=VELA(1)
  165. COSA=VELA(2)
  166. SINA=VELA(3)
  167. ENDIF
  168. C
  169. COS2 = COSA**2
  170. SIN2 = SINA**2
  171. RO2HOO(1,1) = COS2
  172. RO2HOO(1,2) = SIN2
  173. RO2HOO(2,1) = SIN2
  174. RO2HOO(2,2) = COS2
  175. C
  176. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  177. CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)
  178. DO 300 J=1,2
  179. DO 300 I=1,2
  180. DDHOOK(I,J) = D2HOO2(I,J)
  181. DDHOOK(I+2,J+2) = D2HOO2(I,J)
  182. 300 CONTINUE
  183. C
  184. C CAS CONTRAINTES PLANES
  185. C
  186. ELSE IF(IFOU.EQ.-2) THEN
  187. YG1=VELA(1)
  188. DDHOOK(1,1)=YG1
  189. DDHOOK(3,3)=YG1
  190. C
  191. ELSE
  192. IRET=0
  193. ENDIF
  194. C
  195. C MATERIAU COMPOSITE
  196. C
  197. ELSE IF(MATE.EQ.'COMPOSIT') THEN
  198. C
  199. C TRIDIM
  200. C
  201. IF(IFOU.EQ.2) THEN
  202. C
  203. M = NCOELE
  204. N = M/5
  205. N4 = N*4
  206. C
  207. C
  208. H = XZER
  209. DO 2072 J = N4+1,M
  210. H = H + VELA(J)
  211. 2072 CONTINUE
  212. C
  213. CMAT11=XZER
  214. CMAT12=XZER
  215. CMAT33=XZER
  216. CMAT14=XZER
  217. CMAT15=XZER
  218. CMAT36=XZER
  219. CMAT44=XZER
  220. CMAT45=XZER
  221. CMAT66=XZER
  222. Y2 = -H/2
  223. C
  224. DO 2073 J = 1,N
  225. YOU = VELA(J )
  226. XNU = VELA(N+J )
  227. EPAI= VELA(N4+J)
  228. Y1 = Y2
  229. Y2 = EPAI + Y1
  230. X1B = EPAI
  231. X2B = ((Y2*Y2)-(Y1*Y1))/2.D0
  232. X3B = ((Y2**3)-(Y1**3))/3.D0
  233. AUX1 = YOU/(1.D0-XNU*XNU)
  234. AUX2 = (1.D0-XNU)*AUX1/2.D0
  235. CMAT11 = CMAT11 + (AUX1*X1B)
  236. CMAT12 = CMAT12 + (AUX1*XNU*X1B)
  237. CMAT33 = CMAT33 + (AUX2*X1B)
  238. CMAT14 = CMAT14 + (AUX1*X2B)
  239. CMAT15 = CMAT15 + (AUX1*XNU*X2B)
  240. CMAT36 = CMAT36 + (AUX2*X2B)
  241. CMAT44 = CMAT44 + (AUX1*X3B)
  242. CMAT45 = CMAT45 + (AUX1*XNU*X3B)
  243. CMAT66 = CMAT66 + (AUX2*X3B)
  244. 2073 CONTINUE
  245. C
  246. DDHOOK(1,1) = CMAT11
  247. DDHOOK(2,2) = CMAT11
  248. DDHOOK(1,2) = CMAT12
  249. DDHOOK(2,1) = CMAT12
  250. DDHOOK(3,3) = CMAT33
  251. C
  252. DDHOOK(4,1) = CMAT14
  253. DDHOOK(1,4) = CMAT14
  254. DDHOOK(5,2) = CMAT14
  255. DDHOOK(2,5) = CMAT14
  256. C
  257. DDHOOK(1,5) = CMAT15
  258. DDHOOK(5,1) = CMAT15
  259. DDHOOK(2,4) = CMAT15
  260. DDHOOK(4,2) = CMAT15
  261. C
  262. DDHOOK(3,6) = CMAT36
  263. DDHOOK(6,3) = CMAT36
  264. C
  265. DDHOOK(4,4) = CMAT44
  266. DDHOOK(5,5) = CMAT44
  267. DDHOOK(4,5) = CMAT45
  268. DDHOOK(5,4) = CMAT45
  269. DDHOOK(6,6) = CMAT66
  270. ELSE
  271. IRET=0
  272. ENDIF
  273. ELSE
  274. IRET=0
  275. ENDIF
  276. RETURN
  277. END
  278.  
  279.  

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