Télécharger hookun.eso

Retour à la liste

Numérotation des lignes :

hookun
  1. C HOOKUN SOURCE BP208322 17/03/01 21:17:38 9325
  2. SUBROUTINE HOOKUN(VALMAT,IB,IGAU,MFR,EXCEN,EPAIST,
  3. + MELE,NPINT,IFOU,KCAS,NBGMAT,NELMAT,SECT,LHOOK,
  4. + TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,DDHOOK,
  5. + COBMA,XMOB,IRET)
  6. C
  7. C----------------------------------------------------------------------
  8. C
  9. C Calcul de la matrice de HOOKE dans le cas d'un
  10. C matériau unidirectionnel
  11. C
  12. C Entrees:
  13. C --------
  14. C VALMAT tableau de materiau
  15. C IB numero de l'element
  16. C IGAU numero du point de Gauss
  17. C MFR numero de formulation
  18. C EXCEN excentrement (coques minces avec ou sans cisail. transv)
  19. C EPAIST epaisseur (coques minces avec ou sans cisail. transv)
  20. C MELE numero de l'element fini
  21. C NPINT coque integree ou non
  22. C IFOU numero d'harmonique de Fourier
  23. C KCAS = 1 si on veut la matrice pour elle-meme
  24. C = 2 si on veut la matrice pour l'inverser ensuite
  25. C NBGMAT, NELMAT tailles des tableaux
  26. C SECT SECTION DE L'ELEMENT IB (<> 0 SI MFR.EQ.27)
  27. C LHOOK taille de la matrice de HOOKE
  28. C TXR,XLOC,XGLOB,D1HOOK,ROTHOO tableaux de travail
  29. C
  30. C Sorties:
  31. C --------
  32. C DDHOOK matrice de HOOKE
  33.  
  34. C IRET = 1 si option existante, 0 sinon
  35. C
  36. C---------------------------------------------------------------------
  37. C
  38. IMPLICIT INTEGER(I-N)
  39. IMPLICIT REAL*8(A-H,O-Z)
  40. PARAMETER(UN=1.D0,DEUX=2.D0,UNDEMI=.5D0)
  41. CHARACTER*8 MATE
  42. C
  43. -INC CCHAMP
  44.  
  45. -INC PPARAM
  46. -INC CCOPTIO
  47. C
  48. *
  49. DIMENSION VALMAT(*)
  50. DIMENSION DDHOOK(LHOOK,*),DDHOMU(LHOOK,*)
  51. DIMENSION COBMA(10),COBAUX(10)
  52. REAL*8 D3HOO1(3,3),D3HOO2(3,3),RO1HOO(3,3)
  53. REAL*8 D2HOO1(2,2),D2HOO2(2,2),RO2HOO(2,2)
  54. REAL*8 XLOC(3,3),XGLOB(3,3),TXR(IDIM,*)
  55. REAL*8 D1HOOK(LHOOK,*),ROTHOO(LHOOK,*)
  56. C
  57. C INITIALISATION
  58. C
  59. MATE='UNIDIREC'
  60. CALL ZERO(DDHOOK,LHOOK,LHOOK)
  61. CALL ZERO(D1HOOK,LHOOK,LHOOK)
  62. CALL ZERO(XGLOB,IDIM,IDIM)
  63. CALL ZERO(ROTHOO,LHOOK,LHOOK)
  64. CALL ZERO(COBMA,LHOOK,1)
  65. CALL ZERO(COBAUX,LHOOK,1)
  66. C
  67. IF ((MFR.EQ.1.OR.MFR.EQ.33).AND.IGAU.LE.NBGMAT) THEN
  68. c
  69. c Formulation massive
  70. c
  71. IF (MFR.EQ.1) THEN
  72.  
  73. C MATRICE DE HOOKE /AXES D'ARMAURE
  74. D1HOOK(1,1)=VALMAT(1)
  75.  
  76. ELSE
  77. c
  78. c Formulation milieu poreux
  79. c
  80. * elements massifs
  81. *
  82.  
  83. IF(MELE.GE.79.AND.MELE.LE.83) THEN
  84. CALL PORMAO(VALMAT,MATE,IFOU,IDIM,TXR,XLOC,XGLOB,
  85. & D1HOOK,ROTHOO,DDHOOK,LHOOK,
  86. & COBMA,XMOB,KCAS,IRET)
  87. GO TO 2035
  88. *
  89. * elements joints
  90. *
  91. ELSE IF(MELE.GE.108.AND.MELE.LE.110) THEN
  92. CALL DOUO88(VALMAT,MATE,IFOU,LHOOK,DDHOOK,IRET)
  93. *********** COBMA ET XMOB PAS DEFINIS !!!!
  94. IRET=0
  95. GO TO 2035
  96. ELSE
  97. IRET=0
  98. GO TO 2035
  99. ENDIF
  100. *
  101. ENDIF
  102. *
  103. C DEFINITION DES AXES ORTHO./AXES LOCAUX
  104. IF(IDIM.EQ.2)THEN
  105. XLOC(1,1)=VALMAT(2)
  106. XLOC(2,1)=VALMAT(3)
  107. XLOC(1,2)=-XLOC(2,1)
  108. XLOC(2,2)=XLOC(1,1)
  109. ELSEIF(IDIM.EQ.3)THEN
  110. XLOC(1,1)=VALMAT(2)
  111. XLOC(2,1)=VALMAT(3)
  112. XLOC(3,1)=VALMAT(4)
  113. XLOC(1,2)=VALMAT(5)
  114. XLOC(2,2)=VALMAT(6)
  115. XLOC(3,2)=VALMAT(7)
  116. C
  117. CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR)
  118. ENDIF
  119. C
  120. C DEFINITION DES AXES ORTHO./AXES GLOBAUX
  121. C
  122. IF(IRET.EQ.1)THEN
  123. C
  124. DO 1045 K=1,IDIM
  125. DO 1045 J=1,IDIM
  126. DO 1045 I=1,IDIM
  127. XGLOB(K,J)=TXR(J,I)*XLOC(I,K)+XGLOB(K,J)
  128. 1045 CONTINUE
  129. C MATRICE DE TRANSFORMATION
  130. IF(IDIM.EQ.2)THEN
  131. ROTHOO(1,1)=XGLOB(1,1)*XGLOB(1,1)
  132. ROTHOO(1,2)=XGLOB(1,2)*XGLOB(1,2)
  133. ROTHOO(1,4)=XGLOB(1,1)*XGLOB(1,2)
  134. ROTHOO(2,1)=XGLOB(2,1)*XGLOB(2,1)
  135. ROTHOO(2,2)=XGLOB(2,2)*XGLOB(2,2)
  136. ROTHOO(2,4)=XGLOB(2,1)*XGLOB(2,2)
  137. ROTHOO(3,3)=UN
  138. ROTHOO(4,1)=DEUX*XGLOB(1,1)*XGLOB(2,1)
  139. ROTHOO(4,2)=DEUX*XGLOB(1,2)*XGLOB(2,2)
  140. ROTHOO(4,4)=XGLOB(1,2)*XGLOB(2,1)+XGLOB(1,1)*XGLOB(2,2)
  141. IF(IFOU.EQ.1)THEN
  142. ROTHOO(5,5)=XGLOB(1,1)
  143. ROTHOO(5,6)=XGLOB(1,2)
  144. ROTHOO(6,5)=XGLOB(2,1)
  145. ROTHOO(6,6)=XGLOB(2,2)
  146. ENDIF
  147. ELSEIF(IDIM.EQ.3)THEN
  148. DO 1050 IC=1,3
  149. DO 1050 IL=1,3
  150. ROTHOO(IL,IC)=XGLOB(IL,IC)*XGLOB(IL,IC)
  151. 1050 CONTINUE
  152. C
  153. DO 1060 IL=1,3
  154. ROTHOO(IL,4)=XGLOB(IL,1)*XGLOB(IL,2)
  155. ROTHOO(IL,5)=XGLOB(IL,2)*XGLOB(IL,3)
  156. ROTHOO(IL,6)=XGLOB(IL,1)*XGLOB(IL,3)
  157. 1060 CONTINUE
  158. C
  159. DO 1065 IC=1,3
  160. ROTHOO(4,IC)=DEUX*XGLOB(1,IC)*XGLOB(2,IC)
  161. ROTHOO(5,IC)=DEUX*XGLOB(2,IC)*XGLOB(3,IC)
  162. ROTHOO(6,IC)=DEUX*XGLOB(1,IC)*XGLOB(3,IC)
  163. 1065 CONTINUE
  164. C
  165. DO 1070 IL=4,6
  166. IL1=IL-3
  167. IL2=IL1+1
  168. IF(IL2.GT.3)IL2=IL2-3
  169. DO 1070 IC=4,6
  170. IC1=IC-3
  171. IC2=IC1+1
  172. IF(IC2.GT.3)IC2=IC2-3
  173. ROTHOO(IL,IC)=XGLOB(IL1,IC1)*XGLOB(IL2,IC2)+
  174. . XGLOB(IL1,IC2)*XGLOB(IL2,IC1)
  175. 1070 CONTINUE
  176. DO 1075 IC=1,6
  177. AA=ROTHOO(6,IC)
  178. ROTHOO(6,IC)=ROTHOO(5,IC)
  179. ROTHOO(5,IC)=AA
  180. 1075 CONTINUE
  181. DO 1080 IL=1,6
  182. AA=ROTHOO(IL,6)
  183. ROTHOO(IL,6)=ROTHOO(IL,5)
  184. ROTHOO(IL,5)=AA
  185. 1080 CONTINUE
  186. ENDIF
  187. C
  188. C TRANSFORMATION DE LA MATRICE DE HOOKE ET DE COBAUX
  189. C
  190. CALL PRODT(DDHOOK,D1HOOK,ROTHOO,LHOOK,LHOOK)
  191. *
  192. IF (MFR.EQ.33) THEN
  193. DO 1085 IL=1,LHOOK
  194. DO 1085 IC=1,LHOOK
  195. COBMA(IL)=COBMA(IL)+ROTHOO(IC,IL)*COBAUX(IC)
  196. 1085 CONTINUE
  197. ENDIF
  198. ENDIF
  199. C
  200. ELSEIF (IGAU.LE.NBGMAT.AND.
  201. + (IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN
  202. C
  203. C Coques minces
  204. C
  205. IF(MFR.EQ.3) THEN
  206. C
  207. C CAS DKT INTEGRE
  208. C
  209. IF (NPINT.NE.0) THEN
  210. * CAS NON ENCORE IMPLEMENTE
  211. IRET=0
  212. GOTO 2035
  213. ELSE
  214. C
  215. C CAS TRIDIMENSIONNEL ET FOURIER
  216. C
  217. IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN
  218. CALL ZERO(D3HOO1,3,3)
  219. D3HOO1(1,1)=VALMAT(1)
  220. COSA=VALMAT(2)
  221. SINA=VALMAT(3)
  222. C
  223. COS2 = COSA**2
  224. SIN2 = SINA**2
  225. SINCOS = SINA * COSA
  226. C
  227. RO1HOO(1,1) = COS2
  228. RO1HOO(1,2) = SIN2
  229. RO1HOO(1,3) = SINCOS
  230. RO1HOO(2,1) = SIN2
  231. RO1HOO(2,2) = COS2
  232. RO1HOO(2,3) = - SINCOS
  233. RO1HOO(3,1) = - DEUX * SINCOS
  234. RO1HOO(3,2) = DEUX * SINCOS
  235. RO1HOO(3,3) = COS2 - SIN2
  236. C
  237. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  238. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  239. DO 1090 J=1,3
  240. DO 1090 I=1,3
  241. DDHOOK(I,J) = D3HOO2(I,J)
  242. DDHOOK(I+3,J+3) = D3HOO2(I,J)
  243. 1090 CONTINUE
  244. C
  245. C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES
  246. C
  247. ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
  248. CALL ZERO(D2HOO1,2,2)
  249. D2HOO1(1,1)=VALMAT(1)
  250. COSA=VALMAT(2)
  251. SINA=VALMAT(3)
  252. COS2 = COSA**2
  253. SIN2 = SINA**2
  254. RO2HOO(1,1) = COS2
  255. RO2HOO(1,2) = SIN2
  256. RO2HOO(2,1) = SIN2
  257. RO2HOO(2,2) = COS2
  258. C
  259. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  260. CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)
  261. DO 1095 J=1,2
  262. DO 1095 I=1,2
  263. DDHOOK(I,J) = D2HOO2(I,J)
  264. DDHOOK(I+2,J+2) = D2HOO2(I,J)
  265. 1095 CONTINUE
  266. C
  267. C CAS CONTRAINTES PLANES
  268. C
  269. ELSE IF(IFOU.EQ.-2) THEN
  270. YG1=VALMAT(1)
  271. DDHOOK(1,1)=YG1
  272. DDHOOK(3,3)=YG1
  273. C
  274. ELSE
  275. IRET=0
  276. ENDIF
  277. ENDIF
  278. C
  279. C Coques epaisses
  280. C
  281. ELSE IF(MFR.EQ.5) THEN
  282. C
  283. C CAS TRIDIMENSIONNEL
  284. C
  285. IF(IFOU.EQ.2) THEN
  286. CALL ZERO(D3HOO1,3,3)
  287. CALL ZERO(D2HOO2,2,2)
  288. D3HOO1(1,1)=VALMAT(1)
  289. COSA=VALMAT(2)
  290. SINA=VALMAT(3)
  291. C
  292. COS2 = COSA**2
  293. SIN2 = SINA**2
  294. SINCOS = SINA * COSA
  295. RO1HOO(1,1) = COS2
  296. RO1HOO(1,2) = SIN2
  297. RO1HOO(1,3) = SINCOS
  298. RO1HOO(2,1) = SIN2
  299. RO1HOO(2,2) = COS2
  300. RO1HOO(2,3) = - SINCOS
  301. RO1HOO(3,1) = - DEUX * SINCOS
  302. RO1HOO(3,2) = DEUX * SINCOS
  303. RO1HOO(3,3) = COS2 - SIN2
  304. C
  305. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  306. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  307. DO 2000 J=1,3
  308. DO 2000 I=1,3
  309. DDHOOK(I,J) = D3HOO2(I,J)
  310. 2000 CONTINUE
  311. C
  312. ELSE
  313. IRET=0
  314. ENDIF
  315. C
  316. C Coques minces avec cisaillement transverse
  317. C
  318. ELSE IF(MFR.EQ.9) THEN
  319. C
  320. IF(IFOU.EQ.2) THEN
  321. CALL ZERO(D3HOO1,3,3)
  322. CALL ZERO(D2HOO2,2,2)
  323. D3HOO1(1,1)=VALMAT(1)
  324. COSA=VALMAT(2)
  325. SINA=VALMAT(3)
  326. C
  327. COS2 = COSA**2
  328. SIN2 = SINA**2
  329. SINCOS = SINA * COSA
  330. RO1HOO(1,1) = COS2
  331. RO1HOO(1,2) = SIN2
  332. RO1HOO(1,3) = SINCOS
  333. RO1HOO(2,1) = SIN2
  334. RO1HOO(2,2) = COS2
  335. RO1HOO(2,3) = - SINCOS
  336. RO1HOO(3,1) = - DEUX * SINCOS
  337. RO1HOO(3,2) = DEUX * SINCOS
  338. RO1HOO(3,3) = COS2 - SIN2
  339. C
  340. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  341. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  342. DO 2015 J=1,3
  343. DO 2015 I=1,3
  344. DDHOOK(I,J) = D3HOO2(I,J)
  345. DDHOOK(I+3,J+3) = D3HOO2(I,J)
  346. 2015 CONTINUE
  347. C
  348. ELSE
  349. IRET=0
  350. ENDIF
  351. C
  352. C Cas des barres
  353. C
  354. ELSE IF(MFR.EQ.27) THEN
  355. C
  356. YOU=VALMAT(1)
  357. DDHOOK(1,1)=YOU*SECT
  358. C
  359. ELSE
  360. IRET=0
  361. GOTO 2035
  362. ENDIF
  363. ENDIF
  364. C
  365. C Prise en compte de l'epaisseur et de l'excentrement
  366. C dans le cas des coques minces avec ou sans cisaillement
  367. C transverse
  368. C
  369. IF ((MFR.EQ.3.AND.NPINT.EQ.0).OR.MFR.EQ.9) THEN
  370. CALL HOOKMU(EPAIST,EXCEN,LHOOK,DDHOOK,DDHOMU)
  371. DO 1005 IO=1,LHOOK
  372. DO 1005 JO=1,LHOOK
  373. DDHOOK(IO,JO)=DDHOMU(IO,JO)
  374. 1005 CONTINUE
  375. ENDIF
  376. C
  377. 2035 RETURN
  378. END
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  

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