Télécharger hookun.eso

Retour à la liste

Numérotation des lignes :

hookun
  1. C HOOKUN SOURCE CB215821 26/08/24 21:16:45 12622
  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 2037 K=1,IDIM
  125. DO 2036 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. 2036 CONTINUE
  130. 2037 CONTINUE
  131. C MATRICE DE TRANSFORMATION
  132. IF(IDIM.EQ.2)THEN
  133. ROTHOO(1,1)=XGLOB(1,1)*XGLOB(1,1)
  134. ROTHOO(1,2)=XGLOB(1,2)*XGLOB(1,2)
  135. ROTHOO(1,4)=XGLOB(1,1)*XGLOB(1,2)
  136. ROTHOO(2,1)=XGLOB(2,1)*XGLOB(2,1)
  137. ROTHOO(2,2)=XGLOB(2,2)*XGLOB(2,2)
  138. ROTHOO(2,4)=XGLOB(2,1)*XGLOB(2,2)
  139. ROTHOO(3,3)=UN
  140. ROTHOO(4,1)=DEUX*XGLOB(1,1)*XGLOB(2,1)
  141. ROTHOO(4,2)=DEUX*XGLOB(1,2)*XGLOB(2,2)
  142. ROTHOO(4,4)=XGLOB(1,2)*XGLOB(2,1)+XGLOB(1,1)*XGLOB(2,2)
  143. IF(IFOU.EQ.1)THEN
  144. ROTHOO(5,5)=XGLOB(1,1)
  145. ROTHOO(5,6)=XGLOB(1,2)
  146. ROTHOO(6,5)=XGLOB(2,1)
  147. ROTHOO(6,6)=XGLOB(2,2)
  148. ENDIF
  149. ELSEIF(IDIM.EQ.3)THEN
  150. DO 2038 IC=1,3
  151. DO 1050 IL=1,3
  152. ROTHOO(IL,IC)=XGLOB(IL,IC)*XGLOB(IL,IC)
  153. 1050 CONTINUE
  154. 2038 CONTINUE
  155. C
  156. DO 1060 IL=1,3
  157. ROTHOO(IL,4)=XGLOB(IL,1)*XGLOB(IL,2)
  158. ROTHOO(IL,5)=XGLOB(IL,2)*XGLOB(IL,3)
  159. ROTHOO(IL,6)=XGLOB(IL,1)*XGLOB(IL,3)
  160. 1060 CONTINUE
  161. C
  162. DO 1065 IC=1,3
  163. ROTHOO(4,IC)=DEUX*XGLOB(1,IC)*XGLOB(2,IC)
  164. ROTHOO(5,IC)=DEUX*XGLOB(2,IC)*XGLOB(3,IC)
  165. ROTHOO(6,IC)=DEUX*XGLOB(1,IC)*XGLOB(3,IC)
  166. 1065 CONTINUE
  167. C
  168. DO 2039 IL=4,6
  169. IL1=IL-3
  170. IL2=IL1+1
  171. IF(IL2.GT.3)IL2=IL2-3
  172. DO 1070 IC=4,6
  173. IC1=IC-3
  174. IC2=IC1+1
  175. IF(IC2.GT.3)IC2=IC2-3
  176. ROTHOO(IL,IC)=XGLOB(IL1,IC1)*XGLOB(IL2,IC2)+
  177. . XGLOB(IL1,IC2)*XGLOB(IL2,IC1)
  178. 1070 CONTINUE
  179. 2039 CONTINUE
  180. DO 1075 IC=1,6
  181. AA=ROTHOO(6,IC)
  182. ROTHOO(6,IC)=ROTHOO(5,IC)
  183. ROTHOO(5,IC)=AA
  184. 1075 CONTINUE
  185. DO 1080 IL=1,6
  186. AA=ROTHOO(IL,6)
  187. ROTHOO(IL,6)=ROTHOO(IL,5)
  188. ROTHOO(IL,5)=AA
  189. 1080 CONTINUE
  190. ENDIF
  191. C
  192. C TRANSFORMATION DE LA MATRICE DE HOOKE ET DE COBAUX
  193. C
  194. CALL PRODT(DDHOOK,D1HOOK,ROTHOO,LHOOK,LHOOK)
  195. *
  196. IF (MFR.EQ.33) THEN
  197. DO 2040 IL=1,LHOOK
  198. DO 1085 IC=1,LHOOK
  199. COBMA(IL)=COBMA(IL)+ROTHOO(IC,IL)*COBAUX(IC)
  200. 1085 CONTINUE
  201. 2040 CONTINUE
  202. ENDIF
  203. ENDIF
  204. C
  205. ELSEIF (IGAU.LE.NBGMAT.AND.
  206. + (IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN
  207. C
  208. C Coques minces
  209. C
  210. IF(MFR.EQ.3) THEN
  211. C
  212. C CAS DKT INTEGRE
  213. C
  214. IF (NPINT.NE.0) THEN
  215. * CAS NON ENCORE IMPLEMENTE
  216. IRET=0
  217. GOTO 2035
  218. ELSE
  219. C
  220. C CAS TRIDIMENSIONNEL ET FOURIER
  221. C
  222. IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN
  223. CALL ZERO(D3HOO1,3,3)
  224. D3HOO1(1,1)=VALMAT(1)
  225. COSA=VALMAT(2)
  226. SINA=VALMAT(3)
  227. C
  228. COS2 = COSA**2
  229. SIN2 = SINA**2
  230. SINCOS = SINA * COSA
  231. C
  232. RO1HOO(1,1) = COS2
  233. RO1HOO(1,2) = SIN2
  234. RO1HOO(1,3) = SINCOS
  235. RO1HOO(2,1) = SIN2
  236. RO1HOO(2,2) = COS2
  237. RO1HOO(2,3) = - SINCOS
  238. RO1HOO(3,1) = - DEUX * SINCOS
  239. RO1HOO(3,2) = DEUX * SINCOS
  240. RO1HOO(3,3) = COS2 - SIN2
  241. C
  242. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  243. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  244. DO 2041 J=1,3
  245. DO 1090 I=1,3
  246. DDHOOK(I,J) = D3HOO2(I,J)
  247. DDHOOK(I+3,J+3) = D3HOO2(I,J)
  248. 1090 CONTINUE
  249. 2041 CONTINUE
  250. C
  251. C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES
  252. C
  253. ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
  254. CALL ZERO(D2HOO1,2,2)
  255. D2HOO1(1,1)=VALMAT(1)
  256. COSA=VALMAT(2)
  257. SINA=VALMAT(3)
  258. COS2 = COSA**2
  259. SIN2 = SINA**2
  260. RO2HOO(1,1) = COS2
  261. RO2HOO(1,2) = SIN2
  262. RO2HOO(2,1) = SIN2
  263. RO2HOO(2,2) = COS2
  264. C
  265. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  266. CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)
  267. DO 2042 J=1,2
  268. DO 1095 I=1,2
  269. DDHOOK(I,J) = D2HOO2(I,J)
  270. DDHOOK(I+2,J+2) = D2HOO2(I,J)
  271. 1095 CONTINUE
  272. 2042 CONTINUE
  273. C
  274. C CAS CONTRAINTES PLANES
  275. C
  276. ELSE IF(IFOU.EQ.-2) THEN
  277. YG1=VALMAT(1)
  278. DDHOOK(1,1)=YG1
  279. DDHOOK(3,3)=YG1
  280. C
  281. ELSE
  282. IRET=0
  283. ENDIF
  284. ENDIF
  285. C
  286. C Coques epaisses
  287. C
  288. ELSE IF(MFR.EQ.5) THEN
  289. C
  290. C CAS TRIDIMENSIONNEL
  291. C
  292. IF(IFOU.EQ.2) THEN
  293. CALL ZERO(D3HOO1,3,3)
  294. CALL ZERO(D2HOO2,2,2)
  295. D3HOO1(1,1)=VALMAT(1)
  296. COSA=VALMAT(2)
  297. SINA=VALMAT(3)
  298. C
  299. COS2 = COSA**2
  300. SIN2 = SINA**2
  301. SINCOS = SINA * COSA
  302. RO1HOO(1,1) = COS2
  303. RO1HOO(1,2) = SIN2
  304. RO1HOO(1,3) = SINCOS
  305. RO1HOO(2,1) = SIN2
  306. RO1HOO(2,2) = COS2
  307. RO1HOO(2,3) = - SINCOS
  308. RO1HOO(3,1) = - DEUX * SINCOS
  309. RO1HOO(3,2) = DEUX * SINCOS
  310. RO1HOO(3,3) = COS2 - SIN2
  311. C
  312. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  313. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  314. DO 2043 J=1,3
  315. DO 2000 I=1,3
  316. DDHOOK(I,J) = D3HOO2(I,J)
  317. 2000 CONTINUE
  318. 2043 CONTINUE
  319. C
  320. ELSE
  321. IRET=0
  322. ENDIF
  323. C
  324. C Coques minces avec cisaillement transverse
  325. C
  326. ELSE IF(MFR.EQ.9) THEN
  327. C
  328. IF(IFOU.EQ.2) THEN
  329. CALL ZERO(D3HOO1,3,3)
  330. CALL ZERO(D2HOO2,2,2)
  331. D3HOO1(1,1)=VALMAT(1)
  332. COSA=VALMAT(2)
  333. SINA=VALMAT(3)
  334. C
  335. COS2 = COSA**2
  336. SIN2 = SINA**2
  337. SINCOS = SINA * COSA
  338. RO1HOO(1,1) = COS2
  339. RO1HOO(1,2) = SIN2
  340. RO1HOO(1,3) = SINCOS
  341. RO1HOO(2,1) = SIN2
  342. RO1HOO(2,2) = COS2
  343. RO1HOO(2,3) = - SINCOS
  344. RO1HOO(3,1) = - DEUX * SINCOS
  345. RO1HOO(3,2) = DEUX * SINCOS
  346. RO1HOO(3,3) = COS2 - SIN2
  347. C
  348. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  349. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  350. DO 2044 J=1,3
  351. DO 2015 I=1,3
  352. DDHOOK(I,J) = D3HOO2(I,J)
  353. DDHOOK(I+3,J+3) = D3HOO2(I,J)
  354. 2015 CONTINUE
  355. 2044 CONTINUE
  356. C
  357. ELSE
  358. IRET=0
  359. ENDIF
  360. C
  361. C Cas des barres
  362. C
  363. ELSE IF(MFR.EQ.27) THEN
  364. C
  365. YOU=VALMAT(1)
  366. DDHOOK(1,1)=YOU*SECT
  367. C
  368. ELSE
  369. IRET=0
  370. GOTO 2035
  371. ENDIF
  372. ENDIF
  373. C
  374. C Prise en compte de l'epaisseur et de l'excentrement
  375. C dans le cas des coques minces avec ou sans cisaillement
  376. C transverse
  377. C
  378. IF ((MFR.EQ.3.AND.NPINT.EQ.0).OR.MFR.EQ.9) THEN
  379. CALL HOOKMU(EPAIST,EXCEN,LHOOK,DDHOOK,DDHOMU)
  380. DO 2045 IO=1,LHOOK
  381. DO 1005 JO=1,LHOOK
  382. DDHOOK(IO,JO)=DDHOMU(IO,JO)
  383. 1005 CONTINUE
  384. 2045 CONTINUE
  385. ENDIF
  386. C
  387. 2035 RETURN
  388. END
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  

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