Télécharger hookor.eso

Retour à la liste

Numérotation des lignes :

  1. C HOOKOR SOURCE BP208322 17/03/01 21:17:37 9325
  2. SUBROUTINE HOOKOR(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 orthotrope
  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. C IRET = 1 si option existante, 0 sinon
  34. C
  35. C---------------------------------------------------------------------
  36. C
  37. IMPLICIT INTEGER(I-N)
  38. IMPLICIT REAL*8(A-H,O-Z)
  39. PARAMETER(UN=1.D0,DEUX=2.D0,UNDEMI=.5D0)
  40. PARAMETER(XZER=0.D0,XK=1.2D0)
  41. CHARACTER*8 MATE
  42. C
  43. -INC CCHAMP
  44. -INC CCOPTIO
  45. C
  46. DIMENSION VALMAT(*)
  47. DIMENSION DDHOOK(LHOOK,*),DDHOMU(LHOOK,*)
  48. DIMENSION COBMA(*),COBAUX(10)
  49. REAL*8 D3HOO1(3,3),D3HOO2(3,3),RO1HOO(3,3)
  50. REAL*8 D2HOO1(2,2),D2HOO2(2,2),RO2HOO(2,2)
  51. REAL*8 XLOC(3,3),XGLOB(3,3),TXR(IDIM,*)
  52. REAL*8 D1HOOK(LHOOK,*),ROTHOO(LHOOK,*)
  53. C
  54. C INITIALISATIONS
  55. C
  56. MATE='ORTHOTRO'
  57. CALL ZERO(DDHOOK,LHOOK,LHOOK)
  58. CALL ZERO(D1HOOK,LHOOK,LHOOK)
  59. CALL ZERO(XGLOB,3,3)
  60. CALL ZERO(XLOC,3,3)
  61. CALL ZERO(COBMA,LHOOK,1)
  62. CALL ZERO(COBAUX,LHOOK,1)
  63. *
  64. C---------------------------------------------------------------------
  65. C
  66. C JOINT UNIDIMENSIONNEL JOI1
  67. C
  68. C---------------------------------------------------------------------
  69. C
  70. IF (MFR.EQ.75) THEN
  71. IF(IDIM.EQ.3)THEN
  72. DDHOOK(1,1)=VALMAT(7)
  73. DDHOOK(2,2)=VALMAT(8)
  74. DDHOOK(3,3)=VALMAT(9)
  75. DDHOOK(4,4)=VALMAT(10)
  76. DDHOOK(5,5)=VALMAT(11)
  77. DDHOOK(6,6)=VALMAT(12)
  78. ELSE IF(IDIM.EQ.2)THEN
  79. DDHOOK(1,1)=VALMAT(3)
  80. DDHOOK(2,2)=VALMAT(4)
  81. DDHOOK(3,3)=VALMAT(5)
  82. ELSE
  83. IRET=0
  84. ENDIF
  85. GOTO 2035
  86. ENDIF
  87. *
  88. C---------------------------------------------------------------------
  89. IF ( (MFR.EQ.1.OR.MFR.EQ.33.OR.MFR.EQ.31) .AND.
  90. & IGAU.LE.NBGMAT ) THEN
  91. C
  92. C---------------------------------------------------------------------
  93. C
  94. C Formulation massive
  95. C
  96. C---------------------------------------------------------------------
  97. C
  98. IF (MFR.EQ.1 .OR. MFR.EQ.31) THEN
  99. C
  100. C contraintes planes et KCAS=1
  101. C
  102. IF(IFOU.EQ.-2.AND.KCAS.EQ.1)THEN
  103. YG1=VALMAT(1)
  104. YG2=VALMAT(2)
  105. XNU12=VALMAT(3)
  106. G12=VALMAT(4)
  107. XNU21=(YG2/YG1)*XNU12
  108. AUX=UN-XNU12*XNU21
  109. D1HOOK(1,1)=YG1/AUX
  110. D1HOOK(2,1)=XNU21*(YG1/AUX)
  111. D1HOOK(1,2)=D1HOOK(2,1)
  112. D1HOOK(2,2)=YG2/AUX
  113. D1HOOK(4,4)=G12
  114. C
  115. C contraintes planes et KCAS=2
  116. C
  117. ELSEIF(IFOU.EQ.-2.AND.KCAS.EQ.2)THEN
  118. *
  119. YG1=VALMAT(1)
  120. YG2=VALMAT(2)
  121. XNU12=VALMAT(3)
  122. G12=VALMAT(4)
  123. YG3=VALMAT(7)
  124. XNU23=VALMAT(8)
  125. XNU13=VALMAT(9)
  126. XNU21=(YG2/YG1)*XNU12
  127. XNU32=(YG3/YG2)*XNU23
  128. XNU31=(YG3/YG1)*XNU13
  129. AUX=(UN-XNU12*XNU21-XNU23*XNU32-XNU13*XNU31
  130. . -DEUX*XNU21*XNU32*XNU13)
  131. AUX1=AUX/YG1
  132. AUX2=AUX/YG2
  133. AUX3=AUX/YG3
  134. D1HOOK(1,1)=(UN-XNU23*XNU32)/AUX1
  135. D1HOOK(1,2)=(XNU21+XNU31*XNU23)/AUX1
  136. D1HOOK(2,1)=D1HOOK(1,2)
  137. D1HOOK(1,3)=(XNU31+XNU21*XNU32)/AUX1
  138. D1HOOK(3,1)=D1HOOK(1,3)
  139. D1HOOK(2,2)=(UN-XNU13*XNU31)/AUX2
  140. D1HOOK(2,3)=(XNU32+XNU12*XNU31)/AUX2
  141. D1HOOK(3,2)=D1HOOK(2,3)
  142. D1HOOK(3,3)=(UN-XNU12*XNU21)/AUX3
  143. D1HOOK(4,4)=G12
  144. C
  145. C deformations planes et axisymetrie
  146. C
  147. ELSEIF(IFOU.EQ.-1.OR.IFOU.EQ.0.OR.IFOU.EQ.-3) THEN
  148. YG1=VALMAT(1)
  149. YG2=VALMAT(2)
  150. YG3=VALMAT(3)
  151. XNU12=VALMAT(4)
  152. XNU23=VALMAT(5)
  153. XNU13=VALMAT(6)
  154. G12=VALMAT(7)
  155. XNU21=(YG2/YG1)*XNU12
  156. XNU32=(YG3/YG2)*XNU23
  157. XNU31=(YG3/YG1)*XNU13
  158. AUX=(UN-XNU12*XNU21-XNU23*XNU32-XNU13*XNU31
  159. . -DEUX*XNU21*XNU32*XNU13)
  160. AUX1=AUX/YG1
  161. AUX2=AUX/YG2
  162. AUX3=AUX/YG3
  163. D1HOOK(1,1)=(UN-XNU23*XNU32)/AUX1
  164. D1HOOK(1,2)=(XNU21+XNU31*XNU23)/AUX1
  165. D1HOOK(2,1)=D1HOOK(1,2)
  166. D1HOOK(1,3)=(XNU31+XNU21*XNU32)/AUX1
  167. D1HOOK(3,1)=D1HOOK(1,3)
  168. D1HOOK(2,2)=(UN-XNU13*XNU31)/AUX2
  169. D1HOOK(2,3)=(XNU32+XNU12*XNU31)/AUX2
  170. D1HOOK(3,2)=D1HOOK(2,3)
  171. D1HOOK(3,3)=(UN-XNU12*XNU21)/AUX3
  172. D1HOOK(4,4)=G12
  173. C
  174. C serie de fourier et 3D
  175. C
  176. ELSEIF(IFOU.EQ.1.OR.IFOU.EQ.2)THEN
  177. YG1=VALMAT(1)
  178. YG2=VALMAT(2)
  179. YG3=VALMAT(3)
  180. XNU12=VALMAT(4)
  181. XNU23=VALMAT(5)
  182. XNU13=VALMAT(6)
  183. G12=VALMAT(7)
  184. G23=VALMAT(8)
  185. G13=VALMAT(9)
  186. XNU21=(YG2/YG1)*XNU12
  187. XNU32=(YG3/YG2)*XNU23
  188. XNU31=(YG3/YG1)*XNU13
  189. AUX=(UN-XNU12*XNU21-XNU23*XNU32-XNU13*XNU31
  190. . -DEUX*XNU21*XNU32*XNU13)
  191. AUX1=AUX/YG1
  192. AUX2=AUX/YG2
  193. AUX3=AUX/YG3
  194. if (lhook.lt.6) then
  195. iret=0
  196. goto 2035
  197. endif
  198. D1HOOK(1,1)=(UN-XNU23*XNU32)/AUX1
  199. D1HOOK(1,2)=(XNU21+XNU31*XNU23)/AUX1
  200. D1HOOK(2,1)=D1HOOK(1,2)
  201. D1HOOK(1,3)=(XNU31+XNU21*XNU32)/AUX1
  202. D1HOOK(3,1)=D1HOOK(1,3)
  203. D1HOOK(2,2)=(UN-XNU13*XNU31)/AUX2
  204. D1HOOK(2,3)=(XNU32+XNU12*XNU31)/AUX2
  205. D1HOOK(3,2)=D1HOOK(2,3)
  206. D1HOOK(3,3)=(UN-XNU12*XNU21)/AUX3
  207. D1HOOK(4,4)=G12
  208. D1HOOK(5,5)=G13
  209. D1HOOK(6,6)=G23
  210.  
  211. C= -> Modes de calcul 1D
  212. C= On calcule directement DDHOOK car les directions d'ORTHOTROPIE
  213. C= correspondent aux direction du repere GLOBAL
  214. ELSE IF (IFOU.GE.3.AND.IFOU.LE.15) THEN
  215. IF (IFOU.EQ.6.AND.KCAS.EQ.1) THEN
  216. DDHOOK(1,1)=VALMAT(1)
  217. ELSE IF ((IFOU.EQ.5.OR.IFOU.EQ.10.OR.IFOU.EQ.13).AND.
  218. . KCAS.EQ.1) THEN
  219. YG1=VALMAT(1)
  220. YG3=VALMAT(3)
  221. XNU13=VALMAT(6)
  222. XNU31=(YG3/YG1)*XNU13
  223. AUX=UN/(UN-XNU13*XNU31)
  224. DDHOOK(1,1)=YG1*AUX
  225. DDHOOK(3,1)=XNU13*YG3*AUX
  226. DDHOOK(1,3)=DDHOOK(3,1)
  227. DDHOOK(3,3)=YG3*AUX
  228. ELSE IF ((IFOU.EQ.4.OR.IFOU.EQ.8).AND.KCAS.EQ.1) THEN
  229. YG1=VALMAT(1)
  230. YG2=VALMAT(2)
  231. XNU12=VALMAT(4)
  232. XNU21=(YG2/YG1)*XNU12
  233. AUX=UN/(UN-XNU12*XNU21)
  234. DDHOOK(1,1)=YG1*AUX
  235. DDHOOK(2,1)=XNU21*YG1*AUX
  236. DDHOOK(1,2)=DDHOOK(2,1)
  237. DDHOOK(2,2)=YG2*AUX
  238. ELSE
  239. YG1=VALMAT(1)
  240. YG2=VALMAT(2)
  241. YG3=VALMAT(3)
  242. XNU12=VALMAT(4)
  243. XNU23=VALMAT(5)
  244. XNU13=VALMAT(6)
  245. XNU21=(YG2/YG1)*XNU12
  246. XNU32=(YG3/YG2)*XNU23
  247. XNU31=(YG3/YG1)*XNU13
  248. AUX=UN/(UN-XNU12*XNU21-XNU23*XNU32-XNU13*XNU31
  249. . -DEUX*XNU12*XNU23*XNU31)
  250. AUX1=AUX*YG1
  251. AUX2=AUX*YG2
  252. DDHOOK(1,1)=(UN-XNU23*XNU32)*AUX1
  253. DDHOOK(2,1)=(XNU21+XNU23*XNU31)*AUX1
  254. DDHOOK(3,1)=(XNU31+XNU32*XNU21)*AUX1
  255. DDHOOK(1,2)=DDHOOK(2,1)
  256. DDHOOK(2,2)=(UN-XNU13*XNU31)*AUX2
  257. DDHOOK(3,2)=(XNU32+XNU31*XNU12)*AUX2
  258. DDHOOK(1,3)=DDHOOK(3,1)
  259. DDHOOK(2,3)=DDHOOK(3,2)
  260. DDHOOK(3,3)=(UN-XNU12*XNU21)*AUX*YG3
  261. ENDIF
  262. RETURN
  263.  
  264. ENDIF
  265. C
  266. ELSE
  267. C
  268. C---------------------------------------------------------------------
  269. c
  270. C Formulation milieu poreux
  271. c
  272. C---------------------------------------------------------------------
  273. *
  274. * elements massifs
  275. *
  276. IF(MELE.GE.79.AND.MELE.LE.83) THEN
  277. CALL PORMAO(VALMAT,MATE,IFOU,IDIM,TXR,XLOC,
  278. & XGLOB,D1HOOK,ROTHOO,DDHOOK,LHOOK,
  279. & COBMA,XMOB,KCAS,IRET)
  280. GO TO 2035
  281. *
  282. * elements joints
  283. *
  284. ELSE IF(MELE.GE.108.AND.MELE.LE.110) THEN
  285. CALL DOUO88(VALMAT,MATE,IFOU,LHOOK,DDHOOK,IRET)
  286. *********** COBMA ET XMOB PAS DEFINIS !!!!
  287. IRET=0
  288. GO TO 2035
  289. ELSE
  290. IRET=0
  291. GO TO 2035
  292. ENDIF
  293. *
  294. ENDIF
  295. C---------------------------------------------------------------------
  296.  
  297.  
  298. C ===================================================
  299. C DEFINITION DES AXES ORTHO./AXES LOCAUX
  300. C ===================================================
  301.  
  302. cbp IF(IDIM.EQ.2)THEN
  303. IF (IDIM.EQ.2.AND.IFOU.NE.1) THEN
  304. IF(IFOU.EQ.-2)THEN
  305. XLOC(1,1)=VALMAT(5)
  306. XLOC(2,1)=VALMAT(6)
  307. ELSEIF(IFOU.EQ.-1.OR.IFOU.EQ.0.OR.
  308. + ((MFR.EQ.1.OR.MFR.EQ.31).AND.IFOU.EQ.-3)) THEN
  309. XLOC(1,1)=VALMAT(8)
  310. XLOC(2,1)=VALMAT(9)
  311. c ELSEIF(IFOU.EQ.1)THEN
  312. c XLOC(1,1)=VALMAT(10)
  313. c XLOC(2,1)=VALMAT(11)
  314. ENDIF
  315. XLOC(1,2)=-XLOC(2,1)
  316. XLOC(2,2)=XLOC(1,1)
  317. cbp ELSEIF(IDIM.EQ.3)THEN
  318. ELSE
  319. XLOC(1,1)=VALMAT(10)
  320. XLOC(2,1)=VALMAT(11)
  321. XLOC(3,1)=VALMAT(12)
  322. XLOC(1,2)=VALMAT(13)
  323. XLOC(2,2)=VALMAT(14)
  324. XLOC(3,2)=VALMAT(15)
  325. CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR)
  326. ENDIF
  327. C
  328. C ===================================================
  329. C DEFINITION DES AXES ORTHO./AXES GLOBAUX
  330. C ===================================================
  331. C
  332. IF(IRET.EQ.1)THEN
  333. C
  334. IDIM2=IDIM
  335. IF(IFOU.EQ.1) IDIM2=3
  336. DO 1045 J=1,IDIM
  337. DO 1045 K=1,IDIM2
  338. DO 1045 I=1,IDIM
  339. XGLOB(K,J)=TXR(J,I)*XLOC(I,K)+XGLOB(K,J)
  340. 1045 CONTINUE
  341. cbp en 2D Fourier, vrai TXR = [TXR(2x2) [0] ; [0] 1]
  342. IF (IFOU.EQ.1) THEN
  343. XGLOB(1,3)=XLOC(3,1)
  344. XGLOB(2,3)=XLOC(3,2)
  345. XGLOB(3,3)=XLOC(3,3)
  346. ENDIF
  347. C MATRICE DE TRANSFORMATION
  348. cbp IF(IDIM.EQ.2)THEN
  349. IF (IDIM.EQ.2.AND.IFOU.NE.1) THEN
  350. ROTHOO(1,1)=XGLOB(1,1)*XGLOB(1,1)
  351. ROTHOO(1,2)=XGLOB(1,2)*XGLOB(1,2)
  352. ROTHOO(1,4)=XGLOB(1,1)*XGLOB(1,2)
  353. ROTHOO(2,1)=XGLOB(2,1)*XGLOB(2,1)
  354. ROTHOO(2,2)=XGLOB(2,2)*XGLOB(2,2)
  355. ROTHOO(2,4)=XGLOB(2,1)*XGLOB(2,2)
  356. ROTHOO(3,3)=UN
  357. ROTHOO(4,1)=DEUX*XGLOB(1,1)*XGLOB(2,1)
  358. ROTHOO(4,2)=DEUX*XGLOB(1,2)*XGLOB(2,2)
  359. ROTHOO(4,4)=XGLOB(1,2)*XGLOB(2,1)+XGLOB(1,1)*XGLOB(2,2)
  360. c IF(IFOU.EQ.1)THEN
  361. c ROTHOO(5,5)=XGLOB(1,1)
  362. c ROTHOO(5,6)=XGLOB(1,2)
  363. c ROTHOO(6,5)=XGLOB(2,1)
  364. c ROTHOO(6,6)=XGLOB(2,2)
  365. c ENDIF
  366. cbp ELSEIF(IDIM.EQ.3)THEN
  367. ELSE
  368. DO 1050 IC=1,3
  369. DO 1050 IL=1,3
  370. ROTHOO(IL,IC)=XGLOB(IL,IC)*XGLOB(IL,IC)
  371. 1050 CONTINUE
  372. C
  373. if (lhook.lt.6) then
  374. iret=0
  375. goto 2035
  376. endif
  377. DO 1060 IL=1,3
  378. ROTHOO(IL,4)=XGLOB(IL,1)*XGLOB(IL,2)
  379. ROTHOO(IL,5)=XGLOB(IL,2)*XGLOB(IL,3)
  380. ROTHOO(IL,6)=XGLOB(IL,1)*XGLOB(IL,3)
  381. 1060 CONTINUE
  382. C
  383. DO 1065 IC=1,3
  384. ROTHOO(4,IC)=DEUX*XGLOB(1,IC)*XGLOB(2,IC)
  385. ROTHOO(5,IC)=DEUX*XGLOB(2,IC)*XGLOB(3,IC)
  386. ROTHOO(6,IC)=DEUX*XGLOB(1,IC)*XGLOB(3,IC)
  387. 1065 CONTINUE
  388. C
  389. DO 1070 IL=4,6
  390. IL1=IL-3
  391. IL2=IL1+1
  392. IF(IL2.GT.3)IL2=IL2-3
  393. DO 1070 IC=4,6
  394. IC1=IC-3
  395. IC2=IC1+1
  396. IF(IC2.GT.3)IC2=IC2-3
  397. ROTHOO(IL,IC)=XGLOB(IL1,IC1)*XGLOB(IL2,IC2)+
  398. . XGLOB(IL1,IC2)*XGLOB(IL2,IC1)
  399. 1070 CONTINUE
  400. DO 1075 IC=1,6
  401. AA=ROTHOO(6,IC)
  402. ROTHOO(6,IC)=ROTHOO(5,IC)
  403. ROTHOO(5,IC)=AA
  404. 1075 CONTINUE
  405. DO 1080 IL=1,6
  406. AA=ROTHOO(IL,6)
  407. ROTHOO(IL,6)=ROTHOO(IL,5)
  408. ROTHOO(IL,5)=AA
  409. 1080 CONTINUE
  410. ENDIF
  411. C
  412. C ===================================================
  413. C TRANSFORMATION DE LA MATRICE DE HOOKE ET DE COBAUX
  414. C ===================================================
  415. C
  416. CALL PRODT(DDHOOK,D1HOOK,ROTHOO,LHOOK,LHOOK)
  417. *
  418. IF (MFR.EQ.33) THEN
  419. DO 1085 IL=1,LHOOK
  420. DO 1085 IC=1,LHOOK
  421. COBMA(IL)=COBMA(IL)+ROTHOO(IC,IL)*COBAUX(IC)
  422. 1085 CONTINUE
  423. ENDIF
  424. ENDIF
  425. C
  426. C---------------------------------------------------------------------
  427. ELSEIF (IGAU.LE.NBGMAT.AND.
  428. + (IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN
  429. C
  430. C---------------------------------------------------------------------
  431. c
  432. C Coques minces
  433. c
  434. C---------------------------------------------------------------------
  435. IF(MFR.EQ.3) THEN
  436. C
  437. C CAS DKT INTEGRE
  438. C
  439. IF (NPINT.NE.0) THEN
  440. * CAS NON ENCORE IMPLEMENTE
  441. IRET=0
  442. GOTO 2035
  443. ELSE
  444. C
  445. C CAS TRIDIMENSIONNEL ET FOURIER
  446. C
  447. IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN
  448. YG1 =VALMAT(1)
  449. YG2 = VALMAT(2)
  450. XNU12 = VALMAT(3)
  451. G12 = VALMAT(4)
  452. COSA = VALMAT(5)
  453. SINA = VALMAT(6)
  454. C
  455. X1NUNU = UN - (XNU12**2) * YG2 / YG1
  456. C
  457. D3HOO1(1,1) = YG1 / X1NUNU
  458. D3HOO1(2,2) = YG2 / X1NUNU
  459. D3HOO1(1,2) = XNU12 * D3HOO1(2,2)
  460. D3HOO1(2,1) = D3HOO1(1,2)
  461. D3HOO1(3,3) = G12
  462. D3HOO1(1,3) = XZER
  463. D3HOO1(2,3) = XZER
  464. D3HOO1(3,1) = XZER
  465. D3HOO1(3,2) = XZER
  466. C
  467. COS2 = COSA**2
  468. SIN2 = SINA**2
  469. SINCOS = SINA * COSA
  470. C
  471. RO1HOO(1,1) = COS2
  472. RO1HOO(1,2) = SIN2
  473. RO1HOO(1,3) = SINCOS
  474. RO1HOO(2,1) = SIN2
  475. RO1HOO(2,2) = COS2
  476. RO1HOO(2,3) = - SINCOS
  477. RO1HOO(3,1) = - DEUX * SINCOS
  478. RO1HOO(3,2) = DEUX * SINCOS
  479. RO1HOO(3,3) = COS2 - SIN2
  480. C
  481. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  482. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  483. DO 1090 J=1,3
  484. DO 1090 I=1,3
  485. DDHOOK(I,J) = D3HOO2(I,J)
  486. DDHOOK(I+3,J+3) = D3HOO2(I,J)
  487. 1090 CONTINUE
  488. C
  489. C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES
  490. C
  491. ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
  492. YG1 = VALMAT(1)
  493. YG2 = VALMAT(2)
  494. XNU12 = VALMAT(3)
  495. COSA = VALMAT(5)
  496. SINA = VALMAT(6)
  497. C
  498. X1NUNU = UN - (XNU12**2) * YG2 / YG1
  499. C
  500. D2HOO1(1,1) = YG1 / X1NUNU
  501. D2HOO1(2,2) = YG2 / X1NUNU
  502. D2HOO1(1,2) = XNU12 * D2HOO1(2,2)
  503. D2HOO1(2,1) = D2HOO1(1,2)
  504. C
  505. COS2 = COSA**2
  506. SIN2 = SINA**2
  507. RO2HOO(1,1) = COS2
  508. RO2HOO(1,2) = SIN2
  509. RO2HOO(2,1) = SIN2
  510. RO2HOO(2,2) = COS2
  511. C
  512. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  513. CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)
  514. DO 1095 J=1,2
  515. DO 1095 I=1,2
  516. DDHOOK(I,J) = D2HOO2(I,J)
  517. DDHOOK(I+2,J+2) = D2HOO2(I,J)
  518. 1095 CONTINUE
  519. C
  520. C CAS CONTRAINTES PLANES
  521. C
  522. ELSE IF(IFOU.EQ.-2) THEN
  523. YG1=VALMAT(1)
  524. DDHOOK(1,1)=YG1
  525. DDHOOK(3,3)=YG1
  526. C
  527. ELSE
  528. IRET=0
  529. ENDIF
  530. ENDIF
  531. C
  532. C---------------------------------------------------------------------
  533. c
  534. C Coques epaisses
  535. C
  536. C---------------------------------------------------------------------
  537. c
  538. ELSE IF(MFR.EQ.5) THEN
  539. C
  540. C CAS TRIDIMENSIONNEL
  541. C
  542. IF(IFOU.EQ.2) THEN
  543. YG1 = VALMAT(1)
  544. YG2 = VALMAT(2)
  545. XNU12 = VALMAT(3)
  546. G12 = VALMAT(4)
  547. G23 = VALMAT(5)
  548. G13 = VALMAT(6)
  549. COSA = VALMAT(7)
  550. SINA = VALMAT(8)
  551. X1NUNU = UN - (XNU12**2) * YG2 / YG1
  552. C
  553. D3HOO1(1,1) = YG1 / X1NUNU
  554. D3HOO1(2,2) = YG2 / X1NUNU
  555. D3HOO1(1,2) = XNU12 * D3HOO1(2,2)
  556. D3HOO1(2,1) = D3HOO1(1,2)
  557. D3HOO1(3,3) = G12
  558. D3HOO1(1,3) = XZER
  559. D3HOO1(2,3) = XZER
  560. D3HOO1(3,1) = XZER
  561. D3HOO1(3,2) = XZER
  562. D2HOO1(1,1) = G13/XK
  563. D2HOO1(2,2) = G23/XK
  564. D2HOO1(1,2) = XZER
  565. D2HOO1(2,1) = XZER
  566. C
  567. COS2 = COSA**2
  568. SIN2 = SINA**2
  569. SINCOS = SINA * COSA
  570. RO1HOO(1,1) = COS2
  571. RO1HOO(1,2) = SIN2
  572. RO1HOO(1,3) = SINCOS
  573. RO1HOO(2,1) = SIN2
  574. RO1HOO(2,2) = COS2
  575. RO1HOO(2,3) = - SINCOS
  576. RO1HOO(3,1) = - DEUX * SINCOS
  577. RO1HOO(3,2) = DEUX * SINCOS
  578. RO1HOO(3,3) = COS2 - SIN2
  579. C
  580. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  581. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  582. DO 2000 J=1,3
  583. DO 2000 I=1,3
  584. DDHOOK(I,J) = D3HOO2(I,J)
  585. 2000 CONTINUE
  586. RO2HOO(1,1) = COSA
  587. RO2HOO(1,2) = SINA
  588. RO2HOO(2,1) = -SINA
  589. RO2HOO(2,2) = COSA
  590. CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)
  591. C
  592. DO 2005 J=1,2
  593. DO 2005 I=1,2
  594. DDHOOK(3+I,3+J) = D2HOO2(I,J)
  595. 2005 CONTINUE
  596. C
  597. ELSE
  598. IRET=0
  599. ENDIF
  600. C
  601. C---------------------------------------------------------------------
  602. C
  603. C Coques minces avec cisaillement transverse
  604. C
  605. C---------------------------------------------------------------------
  606. C
  607. ELSE IF(MFR.EQ.9) THEN
  608. C
  609. YG1 = VALMAT(1)
  610. YG2 = VALMAT(2)
  611. XNU12 = VALMAT(3)
  612. G12 = VALMAT(4)
  613. G23 = VALMAT(5)
  614. G13 = VALMAT(6)
  615. C
  616. C
  617. C CAS TRIDIMENSIONNEL
  618. C
  619. IF(IFOU.EQ.2) THEN
  620. COSA = VALMAT(7)
  621. SINA = VALMAT(8)
  622. C
  623. X1NUNU = UN - (XNU12**2) * YG2 / YG1
  624. D3HOO1(1,1) = YG1 / X1NUNU
  625. D3HOO1(2,2) = YG2 / X1NUNU
  626. D3HOO1(1,2) = XNU12 * D3HOO1(2,2)
  627. D3HOO1(2,1) = D3HOO1(1,2)
  628. D3HOO1(3,3) = G12
  629. D3HOO1(1,3) = XZER
  630. D3HOO1(2,3) = XZER
  631. D3HOO1(3,1) = XZER
  632. D3HOO1(3,2) = XZER
  633. D2HOO1(1,1) = G13/XK
  634. D2HOO1(2,2) = G23/XK
  635. D2HOO1(1,2) = XZER
  636. D2HOO1(2,1) = XZER
  637. C
  638. COS2 = COSA**2
  639. SIN2 = SINA**2
  640. SINCOS = SINA * COSA
  641. RO1HOO(1,1) = COS2
  642. RO1HOO(1,2) = SIN2
  643. RO1HOO(1,3) = SINCOS
  644. RO1HOO(2,1) = SIN2
  645. RO1HOO(2,2) = COS2
  646. RO1HOO(2,3) = - SINCOS
  647. RO1HOO(3,1) = - DEUX * SINCOS
  648. RO1HOO(3,2) = DEUX * SINCOS
  649. RO1HOO(3,3) = COS2 - SIN2
  650. C
  651. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  652. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  653. DO 2015 J=1,3
  654. DO 2015 I=1,3
  655. DDHOOK(I,J) = D3HOO2(I,J)
  656. DDHOOK(I+3,J+3) = D3HOO2(I,J)
  657. 2015 CONTINUE
  658. C
  659. RO2HOO(1,1) = COSA
  660. RO2HOO(1,2) = SINA
  661. RO2HOO(2,1) = -SINA
  662. RO2HOO(2,2) = COSA
  663. CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)
  664. DO 2020 J=1,2
  665. DO 2020 I=1,2
  666. DDHOOK(6+I,6+J) = D2HOO2(I,J)
  667. 2020 CONTINUE
  668. ELSE
  669. IRET=0
  670. * ENDIF
  671. ENDIF
  672. C
  673. C---------------------------------------------------------------------
  674. c
  675. C Cas des barres
  676. c
  677. C---------------------------------------------------------------------
  678. C
  679. ELSE IF(MFR.EQ.27) THEN
  680. C
  681. YOU=VALMAT(1)
  682. DDHOOK(1,1)=YOU*SECT
  683. C
  684. C---------------------------------------------------------------------
  685. C Elements joints JOT3, JOI4 et JOI2
  686. C---------------------------------------------------------------------
  687. C
  688. ELSE IF(MFR.EQ.35) THEN
  689. C
  690. C CAS TRIDIMENSIONNEL
  691. C
  692. IF(IFOU.EQ.2) THEN
  693. ZK1 =VALMAT(1)
  694. ZK2 =VALMAT(2)
  695. ZK3 =VALMAT(3)
  696. COSA=VALMAT(4)
  697. SINA=VALMAT(5)
  698. C
  699. D3HOO1(1,1)=ZK1
  700. D3HOO1(2,2)=ZK2
  701. D3HOO1(3,3)=ZK3
  702. D3HOO1(1,2)=XZER
  703. D3HOO1(1,3)=XZER
  704. D3HOO1(2,1)=XZER
  705. D3HOO1(2,3)=XZER
  706. D3HOO1(3,1)=XZER
  707. D3HOO1(3,2)=XZER
  708. C
  709. RO1HOO(1,1) = COSA
  710. RO1HOO(1,2) = -SINA
  711. RO1HOO(1,3) = 0.0D0
  712. RO1HOO(2,1) = SINA
  713. RO1HOO(2,2) = COSA
  714. RO1HOO(2,3) = 0.0D0
  715. RO1HOO(3,1) = 0.0D0
  716. RO1HOO(3,2) = 0.0D0
  717. RO1HOO(3,3) = 1.0D0
  718. C
  719. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  720. C
  721. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  722. DO 2025 J=1,3
  723. DO 2025 I=1,3
  724. DDHOOK(I,J) = D3HOO2(I,J)
  725. 2025 CONTINUE
  726. C
  727. ELSE
  728. IRET=0
  729. ENDIF
  730. C---------------------------------------------------------------------
  731. C
  732. ELSE
  733. IRET=0
  734. GOTO 2035
  735. ENDIF
  736. C---------------------------------------------------------------------
  737.  
  738. ENDIF
  739. C---------------------------------------------------------------------
  740. C
  741. C Prise en compte de l'epaisseur et de l'excentrement
  742. C dans le cas des coques minces avec ou sans cisaillement
  743. C transverse
  744. C
  745. C---------------------------------------------------------------------
  746. IF ((MFR.EQ.3.AND.NPINT.EQ.0).OR.MFR.EQ.9) THEN
  747. CALL HOOKMU(EPAIST,EXCEN,LHOOK,DDHOOK,DDHOMU)
  748. DO 1005 IO=1,LHOOK
  749. DO 1005 JO=1,LHOOK
  750. DDHOOK(IO,JO)=DDHOMU(IO,JO)
  751. 1005 CONTINUE
  752. ENDIF
  753. C---------------------------------------------------------------------
  754. C
  755. *
  756. 2035 RETURN
  757. END
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  

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