Télécharger hookis.eso

Retour à la liste

Numérotation des lignes :

hookis
  1. C HOOKIS SOURCE CB215821 26/08/24 21:16:43 12622
  2. SUBROUTINE HOOKIS(VALMAT,VALCAR,VAR,MFR,IB,IGAU,EXCEN,EPAIST,
  3. + INAT,MELE,NPINT,IFOU,KCAS,NBGMAT,NELMAT,
  4. + S,SECT,LHOOK,DDHOMU,DDHOOK,COBMA,XMOB,IRET)
  5. C
  6. C----------------------------------------------------------------------
  7. C
  8. C Calcul de la matrice de HOOKE dans le cas d'un
  9. C mat�riau isotrope
  10. C
  11. C Entrees:
  12. C --------
  13. C VALMAT tableau de materiau
  14. C VALCAR tableau de caracteristiques
  15. C VAR tableau de variables internes
  16. C MFR numero de formulation
  17. C IB numero de l'element
  18. C IGAU numero du point de Gauss
  19. C EXCEN excentrement (coques minces avec ou sans cisail. transv)
  20. C EPAIST epaisseur (coques minces avec ou sans cisail. transv)
  21. C INAT numero de la plasticite
  22. C MELE numero de l'element fini
  23. C NPINT coque integree ou non
  24. C IFOU numero d'harmonique de Fourier
  25. C KCAS = 1 si on veut la matrice pour elle-meme
  26. C = 2 si on veut la matrice pour l'inverser ensuite
  27. C NBGMAT, NELMAT tailles des tableaux
  28. C S
  29. C SECT SECTION DE L'ELEMENT IB (<> 0 SI MFR.EQ.27)
  30. C LHOOK taille de la matrice de HOOKE
  31. C
  32. C Sorties:
  33. C --------
  34. C DDHOOK matrice de HOOKE
  35. C IRET = 1 si option existante, 0 sinon
  36. C
  37. C---------------------------------------------------------------------
  38. C
  39. IMPLICIT INTEGER(I-N)
  40. IMPLICIT REAL*8(A-H,O-Z)
  41. PARAMETER(UN=1.D0,DEUX=2.D0,UNDEMI=.5D0)
  42. PARAMETER(SIX=6.D0,DOUZE=12.D0,TRSIX=36.D0)
  43. PARAMETER(PENA=1.D6,PENB=1.D6)
  44. PARAMETER(X774=.774596669241483D0)
  45. PARAMETER(XK=1.2D0)
  46. PARAMETER(D6=1.D06)
  47. C
  48. -INC CCREEL
  49.  
  50. -INC PPARAM
  51. -INC CCOPTIO
  52. C
  53. DIMENSION DDHOOK(LHOOK,*),DDHOMU(LHOOK,*),COBMA(*)
  54. DIMENSION VALCAR(*),VALMAT(*),VAR(*),S(*)
  55. DIMENSION COBB(3),CPBB(3),XKBB(3,3)
  56. C
  57. C INITIALISATION
  58. C
  59. CALL ZERO(DDHOOK,LHOOK,LHOOK)
  60. CALL ZERO(COBMA,LHOOK,1)
  61. C
  62. C CAS DES MATERIAUX ENDOMMAGEABLES
  63. C DU MATERIAU CERAMIQUE
  64. C
  65. * write(6,*) ' inat',inat
  66. IF(INAT.EQ.26.OR.INAT.EQ.29.OR.INAT.EQ.65) THEN
  67. IF(INAT.EQ.26) THEN
  68. CALL ELAST1(KCAS,IFOU,VAR,0,VALMAT,0,0.D0,0.D0,
  69. 1 VALCAR,0,MFR,LHOOK,DDHOOK,DDHOMU,KERRE,-1,0)
  70. if(npint.le.1.and.mfr.eq.3) kerre=99
  71. * write(6,*) ' kerre',kerre
  72. ELSEIF(INAT.EQ.29) THEN
  73. CALL ELAST1(KCAS,IFOU,VAR,0,VALMAT,0,0.D0,0.D0,
  74. 1 VALCAR,0,MFR,LHOOK,DDHOOK,DDHOMU,KERRE,-2,0)
  75. if(npint.le.1.and.mfr.eq.3) kerre=99
  76. * write(6,*) ' kerre',kerre
  77. ELSEIF(INAT.EQ.65) THEN
  78. CCC IF(IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN
  79. CCC IBID2 = 26
  80. CCC ELSE IF(IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  81. CCC IBID2 = 35
  82. CCC ELSE IF(IFOUR.EQ.-3) THEN
  83. CCC IBID2 = 30
  84. CCC ELSE IF(IFOUR.EQ.-2) THEN
  85. CCC IBID2 = 23
  86. CCC ELSE IF(IFOUR.EQ.2.AND.MFR.EQ.0) THEN
  87. CCC IF(NPINT.EQ.0) THEN
  88. CCC IBID2 = 31
  89. CCC ELSE
  90. CCC IBID2 =23
  91. CCC ENDIF
  92. CCC ENDIF
  93. CCC Eloi : correction de IBID2
  94. IF(IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN
  95. IBID2 = 27
  96. ELSE IF(IFOUR.EQ.2.AND.(MFR.EQ.1.OR.MFR.EQ.31)) THEN
  97. IBID2 = 36
  98. ELSE IF(IFOUR.EQ.-3) THEN
  99. IBID2 = 27
  100. ELSE IF(IFOUR.EQ.-2) THEN
  101. IBID2 = 24
  102. ELSE IF(IFOUR.EQ.2.AND.MFR.EQ.0) THEN
  103. IF(NPINT.EQ.0) THEN
  104. IBID2 = 32
  105. ELSE
  106. IBID2 =24
  107. ENDIF
  108. ENDIF
  109. C modifications cas c�ramique lorsque on a endommagement g�n�ralis�
  110. IF (VAR(IBID2).EQ.1.D0) THEN
  111. CALL ELAST3(KCAS,IFOU,VALMAT,MFR,LHOOK,DDHOOK,KERRE,1)
  112. ELSE
  113. CALL ELAST3(KCAS,IFOU,VALMAT,MFR,LHOOK,DDHOOK,KERRE,0)
  114. ENDIF
  115. ENDIF
  116. IF (KERRE.NE.0) THEN
  117. IRET=0
  118. GOTO 1020
  119. ENDIF
  120. C
  121. ELSEIF (IGAU.LE.NBGMAT.AND.
  122. 1 (IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN
  123. C
  124. C Formulation massive et milieu poreux, joints poreux et incompressibles
  125. C IF(MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.33.OR.
  126. c 1 MFR.EQ.57.OR.MFR.EQ.59) THEN
  127. c as :
  128. IF(MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.33.OR.
  129. 1 MFR.EQ.57.OR.MFR.EQ.59.OR.MFR.EQ.63) THEN
  130. *
  131. NSTMU=3
  132. *
  133. IF(MFR.EQ.57) THEN
  134. IDECAP=2
  135. COBB(1) = VALMAT(3)
  136. COBB(2) = VALMAT(4)
  137. CPBB(1) = VALMAT(5)
  138. CPBB(2) = VALMAT(6)
  139. XKBB(1,1)= VALMAT(7)
  140. XKBB(1,2)= VALMAT(8)
  141. XKBB(2,1)= VALMAT(9)
  142. XKBB(2,2)= VALMAT(10)
  143. *
  144. ELSE IF(MFR.EQ.59) THEN
  145. IDECAP=3
  146. COBB(1) = VALMAT(3)
  147. COBB(2) = VALMAT(4)
  148. COBB(3) = VALMAT(5)
  149. CPBB(1) = VALMAT(6)
  150. CPBB(2) = VALMAT(7)
  151. CPBB(3) = VALMAT(8)
  152. XKBB(1,1)= VALMAT(9)
  153. XKBB(1,2)= VALMAT(10)
  154. XKBB(1,3)= VALMAT(11)
  155. XKBB(2,1)= VALMAT(12)
  156. XKBB(2,2)= VALMAT(13)
  157. XKBB(2,3)= VALMAT(14)
  158. XKBB(3,1)= VALMAT(15)
  159. XKBB(3,2)= VALMAT(16)
  160. XKBB(3,3)= VALMAT(17)
  161. ENDIF
  162. C
  163. C cas des joints poreux
  164. C
  165. IF(MELE.GE.108.AND.MELE.LE.110.OR.
  166. & MELE.GE.185.AND.MELE.LE.190) THEN
  167.  
  168. NSTMU=2
  169. C
  170. IF(IFOU.EQ.2) THEN
  171. NSTMU=3
  172.  
  173. C
  174. C CAS TRIDIMENSIONNEL
  175. C
  176. ZK1 =VALMAT(1)
  177. ZK2 =VALMAT(1)
  178. ZK3 =VALMAT(2)
  179. C
  180. DDHOOK(1,1)=ZK1
  181. DDHOOK(2,2)=ZK2
  182. DDHOOK(3,3)=ZK3
  183. C
  184. ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.
  185. & IFOU.EQ.-1.OR.IFOU.EQ.0) THEN
  186. C
  187. C CAS CONTRAINTES PLANES DEFORMATIONS PLANES AXISYMETRIE
  188. C
  189. ZK1 =VALMAT(1)
  190. ZK2 =VALMAT(2)
  191. C
  192. DDHOOK(1,1)=ZK1
  193. DDHOOK(2,2)=ZK2
  194. C
  195. ELSE
  196. IRET=0
  197. ENDIF
  198. *
  199. IF(MELE.GE.108.AND.MELE.LE.110) THEN
  200. COBMA(NSTMU)=VALMAT(3)
  201. XMOB=VALMAT(4)
  202. ELSE IF(MELE.GE.185.AND.MELE.LE.190) THEN
  203. DO 10052 I=1,IDECAP
  204. IN = I + NSTMU
  205. DDHOOK(NSTMU,IN)=-COBB(I)
  206. DDHOOK(IN,NSTMU)= CPBB(I)
  207. DO 2185 J=1,IDECAP
  208. JN = J + NSTMU
  209. DDHOOK(IN,JN)=XKBB(I,J)
  210. 2185 CONTINUE
  211. 10052 CONTINUE
  212. ENDIF
  213. *
  214. ELSE
  215. C
  216. YOU =VALMAT(1)
  217. XNU =VALMAT(2)
  218. IF(IFOU.EQ.-2.AND.KCAS.EQ.1) THEN
  219. C
  220. C CONTRAINTES PLANES
  221. C
  222. AUX =YOU/(UN-XNU*XNU)
  223. AUX1=AUX*XNU
  224. DDHOOK(1,1)=AUX
  225. DDHOOK(1,2)=AUX1
  226. DDHOOK(2,1)=AUX1
  227. DDHOOK(2,2)=AUX
  228. DDHOOK(4,4)=(UN-XNU)*AUX*UNDEMI
  229. C
  230. C AXISYMETRIQUE, DEFORMATIONS PLANES ET DEFO PLANE GENE
  231. C FOURIER ET TRIDIMENSIONNEL
  232. C
  233. ELSE IF(IFOU.EQ.-1.OR.IFOU.EQ.0.OR.IFOU.EQ.-3.OR.IFOU.EQ
  234. $ .1.OR.IFOU.EQ.2.OR.(IFOU.EQ.-2.AND.KCAS.EQ.2))
  235. $ THEN
  236. AUX0=UN/((UN+XNU)*(UN-DEUX*XNU))
  237. AUX =YOU*AUX0*(UN-XNU)
  238. AUX1=YOU*AUX0*XNU
  239. GEGE=YOU*UNDEMI/(UN+XNU)
  240. C
  241. DDHOOK(1,1)=AUX
  242. DDHOOK(1,2)=AUX1
  243. DDHOOK(1,3)=AUX1
  244. C
  245. DDHOOK(2,1)=AUX1
  246. DDHOOK(2,2)=AUX
  247. DDHOOK(2,3)=AUX1
  248. C
  249. DDHOOK(3,1)=AUX1
  250. DDHOOK(3,2)=AUX1
  251. DDHOOK(3,3)=AUX
  252. DDHOOK(4,4)=GEGE
  253. C
  254. C FOURIER ET TRIDIMENSIONNEL
  255. C
  256. IF(IFOU.EQ.1.OR.IFOU.EQ.2) THEN
  257. DDHOOK(5,5)=GEGE
  258. DDHOOK(6,6)=GEGE
  259. ENDIF
  260. C
  261. C CAS UNIDIMENSIONNELS (1D)
  262. ELSE IF (IFOU.GE.3.AND.IFOU.LE.15) THEN
  263. IF (IFOU.EQ.6.AND.KCAS.EQ.1) THEN
  264. DDHOOK(1,1)=YOU
  265. ELSE IF ((IFOU.EQ.4.OR.IFOU.EQ.8).AND.KCAS.EQ.1) THEN
  266. AUX=YOU/(UN-XNU*XNU)
  267. AUX1=AUX*XNU
  268. DDHOOK(1,1)=AUX
  269. DDHOOK(1,2)=AUX1
  270. DDHOOK(2,1)=AUX1
  271. DDHOOK(2,2)=AUX
  272. ELSE IF ((IFOU.EQ.5.OR.IFOU.EQ.10.OR.IFOU.EQ.13).AND.
  273. . KCAS.EQ.1) THEN
  274. AUX=YOU/(UN-XNU*XNU)
  275. AUX1=AUX*XNU
  276. DDHOOK(1,1)=AUX
  277. DDHOOK(1,3)=AUX1
  278. DDHOOK(3,1)=AUX1
  279. DDHOOK(3,3)=AUX
  280. ELSE
  281. AUX0=YOU/((UN+XNU)*(UN-XNU-XNU))
  282. AUX=AUX0*(UN-XNU)
  283. AUX1=AUX0*XNU
  284. DDHOOK(1,1)=AUX
  285. DDHOOK(1,2)=AUX1
  286. DDHOOK(1,3)=AUX1
  287. DDHOOK(2,1)=AUX1
  288. DDHOOK(2,2)=AUX
  289. DDHOOK(2,3)=AUX1
  290. DDHOOK(3,1)=AUX1
  291. DDHOOK(3,2)=AUX1
  292. DDHOOK(3,3)=AUX
  293. ENDIF
  294. ELSE
  295. IRET=0
  296. ENDIF
  297. *
  298. * addition pour massifs poreux
  299. *
  300. IF(MELE.GE.79.AND.MELE.LE.83) THEN
  301. DO 4501 II=1,NSTMU
  302. COBMA(II)=VALMAT(3)
  303. 4501 CONTINUE
  304. XMOB=VALMAT(4)
  305. *
  306. ELSE IF(MELE.GE.173.AND.MELE.LE.182) THEN
  307. *
  308. LHAUX=4
  309. IF(IFOUR.EQ.1.OR.IFOUR.EQ.-3) LHAUX=6
  310. DO 4502 II=1,NSTMU
  311. COBMA(II)=1.D0
  312. 4502 CONTINUE
  313. XMOB=1.D0
  314. *
  315. *
  316. DO 5602 I=1,IDECAP
  317. IDI=LHOOK-IDECAP+I
  318. DO 5603 J=1,IDECAP
  319. IDJ=LHOOK-IDECAP+J
  320. DDHOOK(IDI,IDJ)=XKBB(I,J)
  321. 5603 CONTINUE
  322. DO 5604 J=1,LHAUX
  323. DDHOOK(IDI,J)=CPBB(I)*COBMA(J)
  324. DDHOOK(J,IDI)=-COBB(I)*COBMA(J)
  325. 5604 CONTINUE
  326. 5602 CONTINUE
  327. *
  328. ENDIF
  329.  
  330. ENDIF
  331. C
  332. C Coques minces
  333. C
  334. ELSE IF(MFR.EQ.3) THEN
  335. C
  336. C CAS DKT INTEGRE
  337. C
  338. IF (NPINT.NE.0) THEN
  339. YOU =VALMAT(1)
  340. XNU =VALMAT(2)
  341. AUX =YOU/(UN-XNU*XNU)
  342. AUX1=AUX*XNU
  343. DDHOOK(1,1)=AUX
  344. DDHOOK(1,2)=AUX1
  345. DDHOOK(2,1)=AUX1
  346. DDHOOK(2,2)=AUX
  347. DDHOOK(4,4)=(UN-XNU)*AUX*UNDEMI
  348. * PETITE RUSE POUR EVITER LES DIVISIONS PAR 0.D0 A.M. LE 14/6/89
  349. DDHOOK(3,3)=AUX*1.D-6
  350. ELSE
  351. C
  352. C CAS TRIDIMENSIONNEL ET FOURIER
  353. C
  354. IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN
  355. YOU =VALMAT(1)
  356. XNU =VALMAT(2)
  357. AUX=YOU/(UN-XNU*XNU)
  358. AUX1=AUX*XNU
  359. GEGE=YOU*UNDEMI/(UN+XNU)
  360. C
  361. DDHOOK(1,1)=AUX
  362. DDHOOK(2,1)=AUX1
  363. DDHOOK(1,2)=AUX1
  364. DDHOOK(2,2)=AUX
  365. DDHOOK(3,3)=GEGE
  366. C
  367. DDHOOK(4,4)=AUX
  368. DDHOOK(5,4)=AUX1
  369. DDHOOK(4,5)=AUX1
  370. DDHOOK(5,5)=AUX
  371. DDHOOK(6,6)=GEGE
  372. C
  373. C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES
  374. C
  375. ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
  376. YOU = VALMAT(1)
  377. XNU = VALMAT(2)
  378. AUX=YOU/(UN-XNU*XNU)
  379. AUX1=AUX*XNU
  380. C
  381. DDHOOK(1,1)=AUX
  382. DDHOOK(2,1)=AUX1
  383. DDHOOK(1,2)=AUX1
  384. DDHOOK(2,2)=AUX
  385. C
  386. DDHOOK(3,3)=AUX
  387. DDHOOK(4,3)=AUX1
  388. DDHOOK(3,4)=AUX1
  389. DDHOOK(4,4)=AUX
  390. C
  391. C CAS CONTRAINTES PLANES
  392. C
  393. ELSE IF(IFOU.EQ.-2.AND.KCAS.EQ.1) THEN
  394. YOU=VALMAT(1)
  395. DDHOOK(1,1)=YOU
  396. DDHOOK(3,3)=YOU
  397. C
  398. ELSE IF(IFOU.EQ.-2.AND.KCAS.EQ.2) THEN
  399. YOU = VALMAT(1)
  400. XNU = VALMAT(2)
  401. AUX=YOU/(UN-XNU*XNU)
  402. AUX1=AUX*XNU
  403. C
  404. DDHOOK(1,1)=AUX
  405. DDHOOK(2,1)=AUX1
  406. DDHOOK(1,2)=AUX1
  407. DDHOOK(2,2)=AUX
  408. C
  409. DDHOOK(3,3)=AUX
  410. DDHOOK(4,3)=AUX1
  411. DDHOOK(3,4)=AUX1
  412. DDHOOK(4,4)=AUX
  413. C
  414. ELSE
  415. IRET=0
  416. ENDIF
  417. ENDIF
  418. C
  419. C Coques epaisses
  420. C
  421. ELSE IF(MFR.EQ.5) THEN
  422. C
  423. C CAS TRIDIMENSIONNEL
  424. C
  425. IF(IFOU.EQ.2) THEN
  426. YOU=VALMAT(1)
  427. XNU=VALMAT(2)
  428. AUX=YOU/(UN-XNU*XNU)
  429. AUX1=AUX*XNU
  430. GEGE=YOU*UNDEMI/(UN+XNU)
  431. C
  432. DDHOOK(1,1)=AUX
  433. DDHOOK(2,1)=AUX1
  434. DDHOOK(1,2)=AUX1
  435. DDHOOK(2,2)=AUX
  436. C
  437. DDHOOK(3,3)=GEGE
  438. DDHOOK(4,4)=GEGE/XK
  439. DDHOOK(5,5)=DDHOOK(4,4)
  440. ELSE
  441. IRET=0
  442. ENDIF
  443. C
  444. ELSE IF(MFR.EQ.61) THEN
  445. C
  446. C ELEMENTS CIFL MACRO ELEMENT CISAILLEMENT FLEXION
  447. C
  448. YOU=VALMAT(1)
  449. XNU=VALMAT(2)
  450. GEGE=YOU*UNDEMI/(UN+XNU)
  451. C
  452. SECT=VALCAR(1)
  453. XINZ=VALCAR(2)
  454. C
  455. DDHOOK(1,1)=YOU *SECT
  456. DDHOOK(2,2)=YOU *XINZ
  457. DDHOOK(3,3)=GEGE*SECT
  458. DDHOOK(4,4)=YOU *SECT
  459. DDHOOK(5,5)=YOU *XINZ
  460. C
  461. C Poutres et tuyaux
  462. C
  463. ELSEIF(MFR.EQ.7.OR.MFR.EQ.13) THEN
  464. C
  465. IF(MFR.EQ.13) THEN
  466. YOUNG=VALMAT(1)
  467. C CAS DES TUYAUX - ON CALCULE LES CARACTERISTIQUES DE LA POUTRE
  468. C EQUIVALENTE
  469. PRES=VALCAR(4)
  470. CISA=VALCAR(5)
  471. VALCAR(4)=1.D0
  472. VALCAR(5)=0.D0
  473. VALCAR(6)=0.D0
  474. VALCAR(7)=PRES
  475. VALCAR(8)=CISA
  476. CALL TUYKAR(VALCAR,KERRE,2,YOUNG)
  477. IF(KERRE.EQ.1) THEN
  478. IRET=0
  479. GOTO 1020
  480. ENDIF
  481. ENDIF
  482. C
  483. C
  484. IF (IFOU.EQ.-2.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
  485. SD=VALCAR(1)
  486. XINZ=VALCAR(2)
  487. SREDY=VALCAR(3)
  488. IF(MELE.EQ.84) THEN
  489. C SECTION "REDUITE"
  490. IF (SREDY.EQ.0.D0) SREDY=SD
  491. ENDIF
  492. ELSE
  493. XINX=VALCAR(1)
  494. XINY=VALCAR(2)
  495. XINZ=VALCAR(3)
  496. SD=VALCAR(4)
  497. SREDY=VALCAR(5)
  498. SREDZ=VALCAR(6)
  499. C
  500. IF(MELE.EQ.84) THEN
  501. C SECTION "REDUITE"
  502. IF (SREDZ.EQ.0.D0) SREDZ=SD
  503. IF (SREDY.EQ.0.D0) SREDY=SD
  504. ENDIF
  505. C
  506. ENDIF
  507. C
  508. IF(IFOU.EQ.2) THEN
  509. YOU=VALMAT(1)
  510. XNU=VALMAT(2)
  511. CISA=YOU*0.5D0/(1.D0+XNU)
  512. C
  513. DDHOOK(1,1)=YOU*SD
  514. DDHOOK(2,2)=CISA*SREDY
  515. DDHOOK(3,3)=CISA*SREDZ
  516. DDHOOK(4,4)=CISA*XINX
  517. DDHOOK(5,5)=YOU*XINY
  518. DDHOOK(6,6)=YOU*XINZ
  519. C
  520. ELSEIF (IFOU.EQ.-2.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
  521. YOU=VALMAT(1)
  522. XNU=VALMAT(2)
  523. CISA=YOU*0.5D0/(1.D0+XNU)
  524. C
  525. DDHOOK(1,1)=YOU*SD
  526. DDHOOK(2,2)=CISA*SREDY
  527. DDHOOK(3,3)=YOU*XINZ
  528. C
  529. ELSE
  530. IRET=0
  531. ENDIF
  532. C
  533. C Coques minces avec cisaillement transverse
  534. C
  535. ELSE IF(MFR.EQ.9) THEN
  536. C
  537. C CAS TRIDIMENSIONNEL
  538. C
  539. IF(IFOU.EQ.2) THEN
  540. YOU = VALMAT(1)
  541. XNU = VALMAT(2)
  542. AUX=YOU/(UN-XNU*XNU)
  543. AUX1=AUX*XNU
  544. GEGE=YOU*UNDEMI/(UN+XNU)
  545. C
  546. DDHOOK(1,1)=AUX
  547. DDHOOK(2,1)=AUX1
  548. DDHOOK(1,2)=AUX1
  549. DDHOOK(2,2)=AUX
  550. DDHOOK(3,3)=GEGE
  551. C
  552. DDHOOK(4,4)=AUX
  553. DDHOOK(5,4)=AUX1
  554. DDHOOK(4,5)=AUX1
  555. DDHOOK(5,5)=AUX
  556. DDHOOK(6,6)=GEGE
  557. C
  558. DDHOOK(7,7)=GEGE/XK
  559. DDHOOK(8,8)=GEGE/XK
  560. ELSE
  561. IRET=0
  562. ENDIF
  563. C
  564. C Linespring
  565. C
  566. ELSE IF(MFR.EQ.15) THEN
  567. C
  568. C TRIDIMENSIONNEL
  569. C
  570. IF(IFOU.EQ.2) THEN
  571. YOU=VALMAT(1)
  572. XNU=VALMAT(2)
  573. EE=YOU*UNDEMI/(UN-XNU*XNU)
  574. EPA1=VALCAR(1)
  575. FISS1=VALCAR(2)
  576. EPA2=VALCAR(6)
  577. FISS2=VALCAR(7)
  578. C
  579.  
  580. C ON RECUPERE LES FISS AUX POINTS DE GAUSS IL FAUT LES CALCULER
  581. C AUX EXTREMITES
  582. FISS1 = (FISS1*(UNDEMI +UNDEMI/X774))+
  583. + (FISS2*(UNDEMI-UNDEMI/X774))
  584. FISS2 = (FISS1*(UNDEMI -UNDEMI/X774))+
  585. + (FISS2*(UNDEMI+UNDEMI/X774))
  586. C ASURW = A / W NOTATION CHEISSOUX
  587. W=(EPA1+EPA2)*UNDEMI
  588. ASURW=(FISS1+FISS2)/W
  589. C
  590. D1=EE*W
  591. D2=EE*W*W*W/DOUZE
  592. PEWMB=D1*PENB
  593. PEWFB=D2*PENA
  594. H1=UNDEMI-UNDEMI*S(IGAU)
  595. H2=UNDEMI+UNDEMI*S(IGAU)
  596. write(6,*) 'HOOKIS linespring que vaut S ?'
  597. ASURW=(H1*FISS1+H2*FISS2)/W
  598. C ON RECUPERE LES COEFFICIENTS ALPHAS ET F I
  599. CALL LISPAL(ASURW,ALMM,ALMF,ALFF,DELTA)
  600. DELTA=D1/DELTA
  601. C CALCUL DES COEFFICIENTS R1 R2 R3 R4
  602. R1= DELTA*ALFF/W
  603. R2=-DELTA*ALMF/SIX
  604. R3=-DELTA*ALMF/SIX
  605. R4= DELTA*ALMM*W/TRSIX
  606. C
  607. DDHOOK(1,1)=R1
  608. DDHOOK(1,4)=R2
  609. DDHOOK(2,2)=PEWMB
  610. DDHOOK(3,3)=PEWMB
  611. DDHOOK(4,1)=R3
  612. DDHOOK(4,4)=R4
  613. DDHOOK(5,5)=PEWFB
  614. ELSE
  615. IRET=0
  616. ENDIF
  617. C
  618.  
  619. C Tuyau fissure
  620. C
  621. ELSE IF(MFR.EQ.17) THEN
  622. C
  623. C TRIDIMENSIONNEL
  624. C
  625. IF(IFOU.EQ.2) THEN
  626. YOU=VALMAT(1)
  627. XNU=VALMAT(2)
  628. CISA = YOU /(DEUX *(UN + XNU))
  629. RAYO=VALCAR(1)
  630. EPAI=VALCAR(2)
  631. TETA1=VALCAR(9)*UNDEMI
  632.  
  633. C CONVERSION DE TETA1 EN RADIAN
  634. TETA = (TETA1 * XPI)/180.D0
  635. TESPI = TETA/XPI
  636. C ON MET DANS 'RAYMO' LE RAYON MOYEN DU TUYAU.
  637. RAYMO =RAYO - (EPAI/DEUX)
  638. C CALCUL DE A COEFIICIENT ZAHOR
  639. RSURT=RAYMO / EPAI
  640. IF(RSURT.LE.10.D0.AND.RSURT.GE.4.9D0) THEN
  641. AXX = ( .125D0*RSURT - .25D0 ) **.25D0
  642. ELSE IF(RSURT.GT.10.D0.AND.RSURT.LE.35.D0) THEN
  643. AXX = ( .4D0*RSURT - 3.D0 ) **.25D0
  644. ELSE
  645. KERRE=3
  646. ENDIF
  647. C
  648. C INITIALISATION DES TERMES DE PENALISATION
  649. C
  650. PPFX = DEUX * XPI * EPAI * YOU * RAYMO * D6
  651. PPFY = DEUX * XPI * EPAI * CISA * RAYMO * D6
  652. PPFZ = PPFY
  653. PPMX = DEUX * XPI * EPAI * CISA * (RAYMO**2) * D6
  654. PPMY = YOU * XPI * EPAI * (RAYMO**2) * D6
  655. PPMZ = PPMY
  656. IF (TETA1.LE.(0.5D0)) THEN
  657. RR11 = PPFX
  658. RR16 = XZERO
  659. RR66 = PPMZ
  660. ELSE
  661. CALL TUFIFP(TESPI,AXX,FP,FM,FMP,FOP,FOM)
  662. DENOM = FP*FM - FMP*FMP
  663. COEF = (YOU * XPI * EPAI)/(DENOM * (TETA**2))
  664. RR11 = COEF * DEUX * FM
  665. RR16 = COEF * RAYMO * FMP
  666. RR66 = COEF * (RAYMO**2) * FP *UNDEMI
  667. ENDIF
  668. C
  669. DDHOOK(1,1)=RR11
  670. DDHOOK(1,6)=RR16
  671. DDHOOK(2,2)=PPFY
  672. DDHOOK(3,3)=PPFZ
  673. DDHOOK(4,4)=PPMX
  674. DDHOOK(5,5)=PPMY
  675. DDHOOK(6,1)=DDHOOK(1,6)
  676. DDHOOK(6,6)=RR66
  677. ELSE
  678. IRET=0
  679. ENDIF
  680. C
  681. C Cas des barres
  682. C
  683. ELSE IF(MFR.EQ.27.OR.MFR.EQ.49) THEN
  684. C
  685. YOU=VALMAT(1)
  686. DDHOOK(1,1)=YOU*SECT
  687. C cccccc
  688. C Elements joints JOT3, JOI4 et JOI2 et COA2 et COS2
  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(1)
  697. ZK3 =VALMAT(2)
  698. C
  699. DDHOOK(1,1)=ZK1
  700. DDHOOK(2,2)=ZK2
  701. DDHOOK(3,3)=ZK3
  702. C
  703. C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N)
  704. C DEFORMATIONS PLANES DANS LE PLAN (S1,N)
  705. C AXISYMETRIE DANS LE PLAN (S1,N)
  706. C
  707. ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1
  708. & .OR.IFOU.EQ.0) THEN
  709. ZK1 =VALMAT(1)
  710. ZK2 =VALMAT(2)
  711. C
  712. DDHOOK(1,1)=ZK1
  713. DDHOOK(2,2)=ZK2
  714. C
  715. ELSE
  716. IRET=0
  717. ENDIF
  718. ELSE IF(MFR.EQ.78) THEN
  719. C
  720. C CAS TRIDIMENSIONNEL
  721. C
  722. IF(IFOU.EQ.2) THEN
  723. ZK1 =VALMAT(1)
  724. ZK2 =VALMAT(2)
  725. ZK3 =VALMAT(2)
  726. C
  727. DDHOOK(1,1)=ZK1
  728. DDHOOK(2,2)=ZK2
  729. DDHOOK(3,3)=ZK3
  730. C
  731. C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N)
  732. C DEFORMATIONS PLANES DANS LE PLAN (S1,N)
  733. C AXISYMETRIE DANS LE PLAN (S1,N)
  734. C
  735. ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1
  736. & .OR.IFOU.EQ.0) THEN
  737. ZK1 =VALMAT(1)
  738. ZK2 =VALMAT(2)
  739. C
  740. DDHOOK(1,1)=ZK1
  741. DDHOOK(2,2)=ZK2
  742. ELSE
  743. IRET=0
  744. ENDIF
  745. c ccccccc
  746. C
  747. C
  748. C Elements joints JCT3, JCI4 en 2D cisaillement
  749. C
  750. ELSE IF(MFR.EQ.53) THEN
  751. C
  752. C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N)
  753. C DEFORMATIONS PLANES DANS LE PLAN (S1,N)
  754. C
  755. IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1
  756. & .OR.IFOU.EQ.-3) THEN
  757. ZK1 =VALMAT(1)
  758. C
  759. DDHOOK(1,1)=ZK1
  760. DDHOOK(2,2)=ZK1
  761. C
  762. ELSE
  763. IRET=0
  764. ENDIF
  765. C
  766. C Elements joints generalises JGI2, JGT3, JGI4
  767. C
  768. ELSE IF(MFR.EQ.55) THEN
  769. C
  770. YOU =VALMAT(1)
  771. XNU =VALMAT(2)
  772. C
  773. C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N)
  774. C
  775. IF(IFOU.EQ.-2) THEN
  776. AUX =YOU/(UN-XNU*XNU)
  777. AUX1=AUX*XNU
  778. *
  779. DDHOOK(1,1)=(UN-XNU)*AUX*UNDEMI/EPAIST
  780. *
  781. DDHOOK(2,2)= AUX / EPAIST
  782. DDHOOK(2,3)= AUX1
  783. *
  784. DDHOOK(3,2)= AUX1
  785. DDHOOK(3,3)= AUX * EPAIST
  786. C
  787. C CAS DEFORMATIONS PLANES DANS LE PLAN (S1,N)
  788. C
  789. ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-1) THEN
  790. AUX0=UN/((UN+XNU)*(UN-DEUX*XNU))
  791. AUX =YOU*AUX0*(UN-XNU)
  792. AUX1=YOU*AUX0*XNU
  793. *
  794. DDHOOK(1,1)=YOU*UNDEMI/(UN+XNU)/EPAIST
  795. *
  796. DDHOOK(2,2)= AUX / EPAIST
  797. DDHOOK(2,3)= AUX1
  798. DDHOOK(2,4)= AUX1
  799. *
  800. DDHOOK(3,2)= AUX1
  801. DDHOOK(3,3)= AUX * EPAIST
  802. DDHOOK(3,4)= AUX1 * EPAIST
  803. *
  804. DDHOOK(4,2)= AUX1
  805. DDHOOK(4,3)= AUX1 * EPAIST
  806. DDHOOK(4,4)= AUX * EPAIST
  807. C
  808. C CAS TRIDIMENSIONNEL
  809. C
  810. ELSE IF(IFOU.EQ.2) THEN
  811. AUX0=UN/((UN+XNU)*(UN-DEUX*XNU))
  812. AUX =YOU*AUX0*(UN-XNU)
  813. AUX1=YOU*AUX0*XNU
  814. *
  815. DDHOOK(1,1)=YOU*UNDEMI/(UN+XNU)/EPAIST
  816. *
  817. DDHOOK(2,2)=DDHOOK(1,1)
  818. *
  819. DDHOOK(3,3)= AUX / EPAIST
  820. DDHOOK(3,4)= AUX1
  821. DDHOOK(3,5)= AUX1
  822. *
  823. DDHOOK(4,3)= AUX1
  824. DDHOOK(4,4)= AUX * EPAIST
  825. DDHOOK(4,5)= AUX1 * EPAIST
  826. *
  827. DDHOOK(5,3)= AUX1
  828. DDHOOK(5,4)= AUX1 * EPAIST
  829. DDHOOK(5,5)= AUX * EPAIST
  830. *
  831. DDHOOK(6,6)=YOU*UNDEMI/(UN+XNU)*EPAIST
  832. C
  833. C OPTION NON DEFINIE
  834. C
  835. ELSE
  836. IRET=0
  837. ENDIF
  838. C
  839. C Elements de zones cohesives
  840. C
  841. ELSE IF(MFR.EQ.77) THEN
  842.  
  843. * POUR LE MOMENT, ON NE TIENT PAS COMPTE DE L'ENDOMMAGEMENT
  844.  
  845. C
  846. C CAS TRIDIMENSIONNEL
  847. C
  848. IF(IFOU.EQ.2) THEN
  849. ZK1 =VALMAT(1)
  850. ZK2 =VALMAT(1)
  851. ZK3 =VALMAT(2)
  852. C
  853. DDHOOK(1,1)=ZK1
  854. DDHOOK(2,2)=ZK2
  855. DDHOOK(3,3)=ZK3
  856. C
  857. C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N)
  858. C DEFORMATIONS PLANES DANS LE PLAN (S1,N)
  859. C
  860. ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN
  861. ZK1 =VALMAT(1)
  862. ZK2 =VALMAT(2)
  863. C
  864. DDHOOK(1,1)=ZK1
  865. DDHOOK(2,2)=ZK2
  866. C
  867. ELSE
  868. IRET=0
  869. ENDIF
  870. C
  871. ELSE
  872. IRET=0
  873. GOTO 1020
  874. ENDIF
  875. ENDIF
  876. C
  877. C Prise en compte de l'epaisseur et de l'excentrement
  878. C dans le cas des coques minces avec ou sans cisaillement
  879. C transverse
  880. C
  881. IF ((MFR.EQ.3.AND.NPINT.EQ.0).OR.MFR.EQ.9) THEN
  882. CALL HOOKMU(EPAIST,EXCEN,LHOOK,DDHOOK,DDHOMU)
  883. DO 1005 IO=1,LHOOK
  884. DO 10051 JO=1,LHOOK
  885. DDHOOK(IO,JO)=DDHOMU(IO,JO)
  886. 10051 CONTINUE
  887. 1005 CONTINUE
  888. ENDIF
  889. C
  890. C Cas particulier de certains materiaux endommageables
  891. C
  892. IF (INAT.EQ.62.OR.INAT.EQ.64.OR.INAT.EQ.30.OR.INAT.EQ.118.OR.
  893. & INAT.EQ.193.OR.INAT.EQ.194.OR.INAT.EQ.195.OR.INAT.EQ.196) THEN
  894. CALL ELAST2(DDHOOK,LHOOK,VALMAT,VAR,INAT,IB,IGAU)
  895. ENDIF
  896. C
  897. 1020 RETURN
  898. END
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  

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