Télécharger hookor.eso

Retour à la liste

Numérotation des lignes :

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

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