Télécharger hookor.eso

Retour à la liste

Numérotation des lignes :

hookor
  1. C HOOKOR SOURCE CB215821 26/08/24 21:16:44 12622
  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 2037 J=1,IDIM
  339. DO 2036 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. 2036 CONTINUE
  344. 2037 CONTINUE
  345. cbp en 2D Fourier, vrai TXR = [TXR(2x2) [0] ; [0] 1]
  346. IF (IFOU.EQ.1) THEN
  347. XGLOB(1,3)=XLOC(3,1)
  348. XGLOB(2,3)=XLOC(3,2)
  349. XGLOB(3,3)=XLOC(3,3)
  350. ENDIF
  351. C MATRICE DE TRANSFORMATION
  352. cbp IF(IDIM.EQ.2)THEN
  353. IF (IDIM.EQ.2.AND.IFOU.NE.1) THEN
  354. ROTHOO(1,1)=XGLOB(1,1)*XGLOB(1,1)
  355. ROTHOO(1,2)=XGLOB(1,2)*XGLOB(1,2)
  356. ROTHOO(1,4)=XGLOB(1,1)*XGLOB(1,2)
  357. ROTHOO(2,1)=XGLOB(2,1)*XGLOB(2,1)
  358. ROTHOO(2,2)=XGLOB(2,2)*XGLOB(2,2)
  359. ROTHOO(2,4)=XGLOB(2,1)*XGLOB(2,2)
  360. ROTHOO(3,3)=UN
  361. ROTHOO(4,1)=DEUX*XGLOB(1,1)*XGLOB(2,1)
  362. ROTHOO(4,2)=DEUX*XGLOB(1,2)*XGLOB(2,2)
  363. ROTHOO(4,4)=XGLOB(1,2)*XGLOB(2,1)+XGLOB(1,1)*XGLOB(2,2)
  364. c IF(IFOU.EQ.1)THEN
  365. c ROTHOO(5,5)=XGLOB(1,1)
  366. c ROTHOO(5,6)=XGLOB(1,2)
  367. c ROTHOO(6,5)=XGLOB(2,1)
  368. c ROTHOO(6,6)=XGLOB(2,2)
  369. c ENDIF
  370. cbp ELSEIF(IDIM.EQ.3)THEN
  371. ELSE
  372. DO 2038 IC=1,3
  373. DO 1050 IL=1,3
  374. ROTHOO(IL,IC)=XGLOB(IL,IC)*XGLOB(IL,IC)
  375. 1050 CONTINUE
  376. 2038 CONTINUE
  377. C
  378. if (lhook.lt.6) then
  379. iret=0
  380. goto 2035
  381. endif
  382. DO 1060 IL=1,3
  383. ROTHOO(IL,4)=XGLOB(IL,1)*XGLOB(IL,2)
  384. ROTHOO(IL,5)=XGLOB(IL,2)*XGLOB(IL,3)
  385. ROTHOO(IL,6)=XGLOB(IL,1)*XGLOB(IL,3)
  386. 1060 CONTINUE
  387. C
  388. DO 1065 IC=1,3
  389. ROTHOO(4,IC)=DEUX*XGLOB(1,IC)*XGLOB(2,IC)
  390. ROTHOO(5,IC)=DEUX*XGLOB(2,IC)*XGLOB(3,IC)
  391. ROTHOO(6,IC)=DEUX*XGLOB(1,IC)*XGLOB(3,IC)
  392. 1065 CONTINUE
  393. C
  394. DO 2039 IL=4,6
  395. IL1=IL-3
  396. IL2=IL1+1
  397. IF(IL2.GT.3)IL2=IL2-3
  398. DO 1070 IC=4,6
  399. IC1=IC-3
  400. IC2=IC1+1
  401. IF(IC2.GT.3)IC2=IC2-3
  402. ROTHOO(IL,IC)=XGLOB(IL1,IC1)*XGLOB(IL2,IC2)+
  403. . XGLOB(IL1,IC2)*XGLOB(IL2,IC1)
  404. 1070 CONTINUE
  405. 2039 CONTINUE
  406. DO 1075 IC=1,6
  407. AA=ROTHOO(6,IC)
  408. ROTHOO(6,IC)=ROTHOO(5,IC)
  409. ROTHOO(5,IC)=AA
  410. 1075 CONTINUE
  411. DO 1080 IL=1,6
  412. AA=ROTHOO(IL,6)
  413. ROTHOO(IL,6)=ROTHOO(IL,5)
  414. ROTHOO(IL,5)=AA
  415. 1080 CONTINUE
  416. ENDIF
  417. C
  418. C ===================================================
  419. C TRANSFORMATION DE LA MATRICE DE HOOKE ET DE COBAUX
  420. C ===================================================
  421. C
  422. CALL PRODT(DDHOOK,D1HOOK,ROTHOO,LHOOK,LHOOK)
  423. *
  424. IF (MFR.EQ.33) THEN
  425. DO 2040 IL=1,LHOOK
  426. DO 1085 IC=1,LHOOK
  427. COBMA(IL)=COBMA(IL)+ROTHOO(IC,IL)*COBAUX(IC)
  428. 1085 CONTINUE
  429. 2040 CONTINUE
  430. ENDIF
  431. ENDIF
  432. C
  433. C---------------------------------------------------------------------
  434. ELSEIF (IGAU.LE.NBGMAT.AND.
  435. + (IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN
  436. C
  437. C---------------------------------------------------------------------
  438. c
  439. C Coques minces
  440. c
  441. C---------------------------------------------------------------------
  442. IF(MFR.EQ.3) THEN
  443. C
  444. C CAS DKT INTEGRE
  445. C
  446. IF (NPINT.NE.0) THEN
  447. * CAS NON ENCORE IMPLEMENTE
  448. IRET=0
  449. GOTO 2035
  450. ELSE
  451. C
  452. C CAS TRIDIMENSIONNEL ET FOURIER
  453. C
  454. IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN
  455. YG1 =VALMAT(1)
  456. YG2 = VALMAT(2)
  457. XNU12 = VALMAT(3)
  458. G12 = VALMAT(4)
  459. COSA = VALMAT(5)
  460. SINA = VALMAT(6)
  461. C
  462. X1NUNU = UN - (XNU12**2) * YG2 / YG1
  463. C
  464. D3HOO1(1,1) = YG1 / X1NUNU
  465. D3HOO1(2,2) = YG2 / X1NUNU
  466. D3HOO1(1,2) = XNU12 * D3HOO1(2,2)
  467. D3HOO1(2,1) = D3HOO1(1,2)
  468. D3HOO1(3,3) = G12
  469. D3HOO1(1,3) = XZER
  470. D3HOO1(2,3) = XZER
  471. D3HOO1(3,1) = XZER
  472. D3HOO1(3,2) = XZER
  473. C
  474. COS2 = COSA**2
  475. SIN2 = SINA**2
  476. SINCOS = SINA * COSA
  477. C
  478. RO1HOO(1,1) = COS2
  479. RO1HOO(1,2) = SIN2
  480. RO1HOO(1,3) = SINCOS
  481. RO1HOO(2,1) = SIN2
  482. RO1HOO(2,2) = COS2
  483. RO1HOO(2,3) = - SINCOS
  484. RO1HOO(3,1) = - DEUX * SINCOS
  485. RO1HOO(3,2) = DEUX * SINCOS
  486. RO1HOO(3,3) = COS2 - SIN2
  487. C
  488. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  489. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  490. DO 2041 J=1,3
  491. DO 1090 I=1,3
  492. DDHOOK(I,J) = D3HOO2(I,J)
  493. DDHOOK(I+3,J+3) = D3HOO2(I,J)
  494. 1090 CONTINUE
  495. 2041 CONTINUE
  496. C
  497. C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES
  498. C
  499. ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
  500. YG1 = VALMAT(1)
  501. YG2 = VALMAT(2)
  502. XNU12 = VALMAT(3)
  503. COSA = VALMAT(5)
  504. SINA = VALMAT(6)
  505. C
  506. X1NUNU = UN - (XNU12**2) * YG2 / YG1
  507. C
  508. D2HOO1(1,1) = YG1 / X1NUNU
  509. D2HOO1(2,2) = YG2 / X1NUNU
  510. D2HOO1(1,2) = XNU12 * D2HOO1(2,2)
  511. D2HOO1(2,1) = D2HOO1(1,2)
  512. C
  513. COS2 = COSA**2
  514. SIN2 = SINA**2
  515. RO2HOO(1,1) = COS2
  516. RO2HOO(1,2) = SIN2
  517. RO2HOO(2,1) = SIN2
  518. RO2HOO(2,2) = COS2
  519. C
  520. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  521. CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)
  522. DO 2042 J=1,2
  523. DO 1095 I=1,2
  524. DDHOOK(I,J) = D2HOO2(I,J)
  525. DDHOOK(I+2,J+2) = D2HOO2(I,J)
  526. 1095 CONTINUE
  527. 2042 CONTINUE
  528. C
  529. C CAS CONTRAINTES PLANES
  530. C
  531. ELSE IF(IFOU.EQ.-2) THEN
  532. YG1=VALMAT(1)
  533. DDHOOK(1,1)=YG1
  534. DDHOOK(3,3)=YG1
  535. C
  536. ELSE
  537. IRET=0
  538. ENDIF
  539. ENDIF
  540. C
  541. C---------------------------------------------------------------------
  542. c
  543. C Coques epaisses
  544. C
  545. C---------------------------------------------------------------------
  546. c
  547. ELSE IF(MFR.EQ.5) THEN
  548. C
  549. C CAS TRIDIMENSIONNEL
  550. C
  551. IF(IFOU.EQ.2) THEN
  552. YG1 = VALMAT(1)
  553. YG2 = VALMAT(2)
  554. XNU12 = VALMAT(3)
  555. G12 = VALMAT(4)
  556. G23 = VALMAT(5)
  557. G13 = VALMAT(6)
  558. COSA = VALMAT(7)
  559. SINA = VALMAT(8)
  560. X1NUNU = UN - (XNU12**2) * YG2 / YG1
  561. C
  562. D3HOO1(1,1) = YG1 / X1NUNU
  563. D3HOO1(2,2) = YG2 / X1NUNU
  564. D3HOO1(1,2) = XNU12 * D3HOO1(2,2)
  565. D3HOO1(2,1) = D3HOO1(1,2)
  566. D3HOO1(3,3) = G12
  567. D3HOO1(1,3) = XZER
  568. D3HOO1(2,3) = XZER
  569. D3HOO1(3,1) = XZER
  570. D3HOO1(3,2) = XZER
  571. D2HOO1(1,1) = G13/XK
  572. D2HOO1(2,2) = G23/XK
  573. D2HOO1(1,2) = XZER
  574. D2HOO1(2,1) = XZER
  575. C
  576. COS2 = COSA**2
  577. SIN2 = SINA**2
  578. SINCOS = SINA * COSA
  579. RO1HOO(1,1) = COS2
  580. RO1HOO(1,2) = SIN2
  581. RO1HOO(1,3) = SINCOS
  582. RO1HOO(2,1) = SIN2
  583. RO1HOO(2,2) = COS2
  584. RO1HOO(2,3) = - SINCOS
  585. RO1HOO(3,1) = - DEUX * SINCOS
  586. RO1HOO(3,2) = DEUX * SINCOS
  587. RO1HOO(3,3) = COS2 - SIN2
  588. C
  589. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  590. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  591. DO 2043 J=1,3
  592. DO 2000 I=1,3
  593. DDHOOK(I,J) = D3HOO2(I,J)
  594. 2000 CONTINUE
  595. 2043 CONTINUE
  596. RO2HOO(1,1) = COSA
  597. RO2HOO(1,2) = SINA
  598. RO2HOO(2,1) = -SINA
  599. RO2HOO(2,2) = COSA
  600. CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)
  601. C
  602. DO 2044 J=1,2
  603. DO 2005 I=1,2
  604. DDHOOK(3+I,3+J) = D2HOO2(I,J)
  605. 2005 CONTINUE
  606. 2044 CONTINUE
  607. C
  608. ELSE
  609. IRET=0
  610. ENDIF
  611. C
  612. C---------------------------------------------------------------------
  613. C
  614. C Coques minces avec cisaillement transverse
  615. C
  616. C---------------------------------------------------------------------
  617. C
  618. ELSE IF(MFR.EQ.9) THEN
  619. C
  620. YG1 = VALMAT(1)
  621. YG2 = VALMAT(2)
  622. XNU12 = VALMAT(3)
  623. G12 = VALMAT(4)
  624. G23 = VALMAT(5)
  625. G13 = VALMAT(6)
  626. C
  627. C
  628. C CAS TRIDIMENSIONNEL
  629. C
  630. IF(IFOU.EQ.2) THEN
  631. COSA = VALMAT(7)
  632. SINA = VALMAT(8)
  633. C
  634. X1NUNU = UN - (XNU12**2) * YG2 / YG1
  635. D3HOO1(1,1) = YG1 / X1NUNU
  636. D3HOO1(2,2) = YG2 / X1NUNU
  637. D3HOO1(1,2) = XNU12 * D3HOO1(2,2)
  638. D3HOO1(2,1) = D3HOO1(1,2)
  639. D3HOO1(3,3) = G12
  640. D3HOO1(1,3) = XZER
  641. D3HOO1(2,3) = XZER
  642. D3HOO1(3,1) = XZER
  643. D3HOO1(3,2) = XZER
  644. D2HOO1(1,1) = G13/XK
  645. D2HOO1(2,2) = G23/XK
  646. D2HOO1(1,2) = XZER
  647. D2HOO1(2,1) = XZER
  648. C
  649. COS2 = COSA**2
  650. SIN2 = SINA**2
  651. SINCOS = SINA * COSA
  652. RO1HOO(1,1) = COS2
  653. RO1HOO(1,2) = SIN2
  654. RO1HOO(1,3) = SINCOS
  655. RO1HOO(2,1) = SIN2
  656. RO1HOO(2,2) = COS2
  657. RO1HOO(2,3) = - SINCOS
  658. RO1HOO(3,1) = - DEUX * SINCOS
  659. RO1HOO(3,2) = DEUX * SINCOS
  660. RO1HOO(3,3) = COS2 - SIN2
  661. C
  662. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  663. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  664. DO 2045 J=1,3
  665. DO 2015 I=1,3
  666. DDHOOK(I,J) = D3HOO2(I,J)
  667. DDHOOK(I+3,J+3) = D3HOO2(I,J)
  668. 2015 CONTINUE
  669. 2045 CONTINUE
  670. C
  671. RO2HOO(1,1) = COSA
  672. RO2HOO(1,2) = SINA
  673. RO2HOO(2,1) = -SINA
  674. RO2HOO(2,2) = COSA
  675. CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)
  676. DO 2046 J=1,2
  677. DO 2020 I=1,2
  678. DDHOOK(6+I,6+J) = D2HOO2(I,J)
  679. 2020 CONTINUE
  680. 2046 CONTINUE
  681. ELSE
  682. IRET=0
  683. * ENDIF
  684. ENDIF
  685. C
  686. C---------------------------------------------------------------------
  687. c
  688. C Cas des barres
  689. c
  690. C---------------------------------------------------------------------
  691. C
  692. ELSE IF(MFR.EQ.27) THEN
  693. C
  694. YOU=VALMAT(1)
  695. DDHOOK(1,1)=YOU*SECT
  696. C
  697. C---------------------------------------------------------------------
  698. C Elements joints JOT3, JOI4 et JOI2
  699. C---------------------------------------------------------------------
  700. C
  701. ELSE IF(MFR.EQ.35) THEN
  702. C
  703. C CAS TRIDIMENSIONNEL
  704. C
  705. IF(IFOU.EQ.2) THEN
  706. ZK1 =VALMAT(1)
  707. ZK2 =VALMAT(2)
  708. ZK3 =VALMAT(3)
  709. COSA=VALMAT(4)
  710. SINA=VALMAT(5)
  711. C
  712. D3HOO1(1,1)=ZK1
  713. D3HOO1(2,2)=ZK2
  714. D3HOO1(3,3)=ZK3
  715. D3HOO1(1,2)=XZER
  716. D3HOO1(1,3)=XZER
  717. D3HOO1(2,1)=XZER
  718. D3HOO1(2,3)=XZER
  719. D3HOO1(3,1)=XZER
  720. D3HOO1(3,2)=XZER
  721. C
  722. RO1HOO(1,1) = COSA
  723. RO1HOO(1,2) = -SINA
  724. RO1HOO(1,3) = 0.0D0
  725. RO1HOO(2,1) = SINA
  726. RO1HOO(2,2) = COSA
  727. RO1HOO(2,3) = 0.0D0
  728. RO1HOO(3,1) = 0.0D0
  729. RO1HOO(3,2) = 0.0D0
  730. RO1HOO(3,3) = 1.0D0
  731. C
  732. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  733. C
  734. CALL PRODT (D3HOO2,D3HOO1,RO1HOO,3,3)
  735. DO 2047 J=1,3
  736. DO 2025 I=1,3
  737. DDHOOK(I,J) = D3HOO2(I,J)
  738. 2025 CONTINUE
  739. 2047 CONTINUE
  740. C
  741. ELSE
  742. IRET=0
  743. ENDIF
  744. C---------------------------------------------------------------------
  745. C
  746. ELSE
  747. IRET=0
  748. GOTO 2035
  749. ENDIF
  750. C---------------------------------------------------------------------
  751.  
  752. ENDIF
  753. C---------------------------------------------------------------------
  754. C
  755. C Prise en compte de l'epaisseur et de l'excentrement
  756. C dans le cas des coques minces avec ou sans cisaillement
  757. C transverse
  758. C
  759. C---------------------------------------------------------------------
  760. IF ((MFR.EQ.3.AND.NPINT.EQ.0).OR.MFR.EQ.9) THEN
  761. CALL HOOKMU(EPAIST,EXCEN,LHOOK,DDHOOK,DDHOMU)
  762. DO 2048 IO=1,LHOOK
  763. DO 1005 JO=1,LHOOK
  764. DDHOOK(IO,JO)=DDHOMU(IO,JO)
  765. 1005 CONTINUE
  766. 2048 CONTINUE
  767. ENDIF
  768. C---------------------------------------------------------------------
  769. C
  770. *
  771. 2035 RETURN
  772. END
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  

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