Télécharger hookis.eso

Retour à la liste

Numérotation des lignes :

hookis
  1. C HOOKIS SOURCE PV 22/04/26 21:15:04 11344
  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 2185 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. ENDIF
  212. *
  213. ELSE
  214. C
  215. YOU =VALMAT(1)
  216. XNU =VALMAT(2)
  217. IF(IFOU.EQ.-2.AND.KCAS.EQ.1) THEN
  218. C
  219. C CONTRAINTES PLANES
  220. C
  221. AUX =YOU/(UN-XNU*XNU)
  222. AUX1=AUX*XNU
  223. DDHOOK(1,1)=AUX
  224. DDHOOK(1,2)=AUX1
  225. DDHOOK(2,1)=AUX1
  226. DDHOOK(2,2)=AUX
  227. DDHOOK(4,4)=(UN-XNU)*AUX*UNDEMI
  228. C
  229. C AXISYMETRIQUE, DEFORMATIONS PLANES ET DEFO PLANE GENE
  230. C FOURIER ET TRIDIMENSIONNEL
  231. C
  232. ELSE IF(IFOU.EQ.-1.OR.IFOU.EQ.0.OR.IFOU.EQ.-3.OR.IFOU.EQ
  233. $ .1.OR.IFOU.EQ.2.OR.(IFOU.EQ.-2.AND.KCAS.EQ.2))
  234. $ THEN
  235. AUX0=UN/((UN+XNU)*(UN-DEUX*XNU))
  236. AUX =YOU*AUX0*(UN-XNU)
  237. AUX1=YOU*AUX0*XNU
  238. GEGE=YOU*UNDEMI/(UN+XNU)
  239. C
  240. DDHOOK(1,1)=AUX
  241. DDHOOK(1,2)=AUX1
  242. DDHOOK(1,3)=AUX1
  243. C
  244. DDHOOK(2,1)=AUX1
  245. DDHOOK(2,2)=AUX
  246. DDHOOK(2,3)=AUX1
  247. C
  248. DDHOOK(3,1)=AUX1
  249. DDHOOK(3,2)=AUX1
  250. DDHOOK(3,3)=AUX
  251. DDHOOK(4,4)=GEGE
  252. C
  253. C FOURIER ET TRIDIMENSIONNEL
  254. C
  255. IF(IFOU.EQ.1.OR.IFOU.EQ.2) THEN
  256. DDHOOK(5,5)=GEGE
  257. DDHOOK(6,6)=GEGE
  258. ENDIF
  259. C
  260. C CAS UNIDIMENSIONNELS (1D)
  261. ELSE IF (IFOU.GE.3.AND.IFOU.LE.15) THEN
  262. IF (IFOU.EQ.6.AND.KCAS.EQ.1) THEN
  263. DDHOOK(1,1)=YOU
  264. ELSE IF ((IFOU.EQ.4.OR.IFOU.EQ.8).AND.KCAS.EQ.1) THEN
  265. AUX=YOU/(UN-XNU*XNU)
  266. AUX1=AUX*XNU
  267. DDHOOK(1,1)=AUX
  268. DDHOOK(1,2)=AUX1
  269. DDHOOK(2,1)=AUX1
  270. DDHOOK(2,2)=AUX
  271. ELSE IF ((IFOU.EQ.5.OR.IFOU.EQ.10.OR.IFOU.EQ.13).AND.
  272. . KCAS.EQ.1) THEN
  273. AUX=YOU/(UN-XNU*XNU)
  274. AUX1=AUX*XNU
  275. DDHOOK(1,1)=AUX
  276. DDHOOK(1,3)=AUX1
  277. DDHOOK(3,1)=AUX1
  278. DDHOOK(3,3)=AUX
  279. ELSE
  280. AUX0=YOU/((UN+XNU)*(UN-XNU-XNU))
  281. AUX=AUX0*(UN-XNU)
  282. AUX1=AUX0*XNU
  283. DDHOOK(1,1)=AUX
  284. DDHOOK(1,2)=AUX1
  285. DDHOOK(1,3)=AUX1
  286. DDHOOK(2,1)=AUX1
  287. DDHOOK(2,2)=AUX
  288. DDHOOK(2,3)=AUX1
  289. DDHOOK(3,1)=AUX1
  290. DDHOOK(3,2)=AUX1
  291. DDHOOK(3,3)=AUX
  292. ENDIF
  293. ELSE
  294. IRET=0
  295. ENDIF
  296. *
  297. * addition pour massifs poreux
  298. *
  299. IF(MELE.GE.79.AND.MELE.LE.83) THEN
  300. DO 4501 II=1,NSTMU
  301. COBMA(II)=VALMAT(3)
  302. 4501 CONTINUE
  303. XMOB=VALMAT(4)
  304. *
  305. ELSE IF(MELE.GE.173.AND.MELE.LE.182) THEN
  306. *
  307. LHAUX=4
  308. IF(IFOUR.EQ.1.OR.IFOUR.EQ.-3) LHAUX=6
  309. DO 4502 II=1,NSTMU
  310. COBMA(II)=1.D0
  311. 4502 CONTINUE
  312. XMOB=1.D0
  313. *
  314. *
  315. DO 5602 I=1,IDECAP
  316. IDI=LHOOK-IDECAP+I
  317. DO 5603 J=1,IDECAP
  318. IDJ=LHOOK-IDECAP+J
  319. DDHOOK(IDI,IDJ)=XKBB(I,J)
  320. 5603 CONTINUE
  321. DO 5604 J=1,LHAUX
  322. DDHOOK(IDI,J)=CPBB(I)*COBMA(J)
  323. DDHOOK(J,IDI)=-COBB(I)*COBMA(J)
  324. 5604 CONTINUE
  325. 5602 CONTINUE
  326. *
  327. ENDIF
  328.  
  329. ENDIF
  330. C
  331. C Coques minces
  332. C
  333. ELSE IF(MFR.EQ.3) THEN
  334. C
  335. C CAS DKT INTEGRE
  336. C
  337. IF (NPINT.NE.0) THEN
  338. YOU =VALMAT(1)
  339. XNU =VALMAT(2)
  340. AUX =YOU/(UN-XNU*XNU)
  341. AUX1=AUX*XNU
  342. DDHOOK(1,1)=AUX
  343. DDHOOK(1,2)=AUX1
  344. DDHOOK(2,1)=AUX1
  345. DDHOOK(2,2)=AUX
  346. DDHOOK(4,4)=(UN-XNU)*AUX*UNDEMI
  347. * PETITE RUSE POUR EVITER LES DIVISIONS PAR 0.D0 A.M. LE 14/6/89
  348. DDHOOK(3,3)=AUX*1.D-6
  349. ELSE
  350. C
  351. C CAS TRIDIMENSIONNEL ET FOURIER
  352. C
  353. IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN
  354. YOU =VALMAT(1)
  355. XNU =VALMAT(2)
  356. AUX=YOU/(UN-XNU*XNU)
  357. AUX1=AUX*XNU
  358. GEGE=YOU*UNDEMI/(UN+XNU)
  359. C
  360. DDHOOK(1,1)=AUX
  361. DDHOOK(2,1)=AUX1
  362. DDHOOK(1,2)=AUX1
  363. DDHOOK(2,2)=AUX
  364. DDHOOK(3,3)=GEGE
  365. C
  366. DDHOOK(4,4)=AUX
  367. DDHOOK(5,4)=AUX1
  368. DDHOOK(4,5)=AUX1
  369. DDHOOK(5,5)=AUX
  370. DDHOOK(6,6)=GEGE
  371. C
  372. C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES
  373. C
  374. ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
  375. YOU = VALMAT(1)
  376. XNU = VALMAT(2)
  377. AUX=YOU/(UN-XNU*XNU)
  378. AUX1=AUX*XNU
  379. C
  380. DDHOOK(1,1)=AUX
  381. DDHOOK(2,1)=AUX1
  382. DDHOOK(1,2)=AUX1
  383. DDHOOK(2,2)=AUX
  384. C
  385. DDHOOK(3,3)=AUX
  386. DDHOOK(4,3)=AUX1
  387. DDHOOK(3,4)=AUX1
  388. DDHOOK(4,4)=AUX
  389. C
  390. C CAS CONTRAINTES PLANES
  391. C
  392. ELSE IF(IFOU.EQ.-2.AND.KCAS.EQ.1) THEN
  393. YOU=VALMAT(1)
  394. DDHOOK(1,1)=YOU
  395. DDHOOK(3,3)=YOU
  396. C
  397. ELSE IF(IFOU.EQ.-2.AND.KCAS.EQ.2) THEN
  398. YOU = VALMAT(1)
  399. XNU = VALMAT(2)
  400. AUX=YOU/(UN-XNU*XNU)
  401. AUX1=AUX*XNU
  402. C
  403. DDHOOK(1,1)=AUX
  404. DDHOOK(2,1)=AUX1
  405. DDHOOK(1,2)=AUX1
  406. DDHOOK(2,2)=AUX
  407. C
  408. DDHOOK(3,3)=AUX
  409. DDHOOK(4,3)=AUX1
  410. DDHOOK(3,4)=AUX1
  411. DDHOOK(4,4)=AUX
  412. C
  413. ELSE
  414. IRET=0
  415. ENDIF
  416. ENDIF
  417. C
  418. C Coques epaisses
  419. C
  420. ELSE IF(MFR.EQ.5) THEN
  421. C
  422. C CAS TRIDIMENSIONNEL
  423. C
  424. IF(IFOU.EQ.2) THEN
  425. YOU=VALMAT(1)
  426. XNU=VALMAT(2)
  427. AUX=YOU/(UN-XNU*XNU)
  428. AUX1=AUX*XNU
  429. GEGE=YOU*UNDEMI/(UN+XNU)
  430. C
  431. DDHOOK(1,1)=AUX
  432. DDHOOK(2,1)=AUX1
  433. DDHOOK(1,2)=AUX1
  434. DDHOOK(2,2)=AUX
  435. C
  436. DDHOOK(3,3)=GEGE
  437. DDHOOK(4,4)=GEGE/XK
  438. DDHOOK(5,5)=DDHOOK(4,4)
  439. ELSE
  440. IRET=0
  441. ENDIF
  442. C
  443. ELSE IF(MFR.EQ.61) THEN
  444. C
  445. C ELEMENTS CIFL MACRO ELEMENT CISAILLEMENT FLEXION
  446. C
  447. YOU=VALMAT(1)
  448. XNU=VALMAT(2)
  449. GEGE=YOU*UNDEMI/(UN+XNU)
  450. C
  451. SECT=VALCAR(1)
  452. XINZ=VALCAR(2)
  453. C
  454. DDHOOK(1,1)=YOU *SECT
  455. DDHOOK(2,2)=YOU *XINZ
  456. DDHOOK(3,3)=GEGE*SECT
  457. DDHOOK(4,4)=YOU *SECT
  458. DDHOOK(5,5)=YOU *XINZ
  459. C
  460. C Poutres et tuyaux
  461. C
  462. ELSEIF(MFR.EQ.7.OR.MFR.EQ.13) THEN
  463. C
  464. IF(MFR.EQ.13) THEN
  465. YOUNG=VALMAT(1)
  466. C CAS DES TUYAUX - ON CALCULE LES CARACTERISTIQUES DE LA POUTRE
  467. C EQUIVALENTE
  468. PRES=VALCAR(4)
  469. CISA=VALCAR(5)
  470. VALCAR(4)=1.D0
  471. VALCAR(5)=0.D0
  472. VALCAR(6)=0.D0
  473. VALCAR(7)=PRES
  474. VALCAR(8)=CISA
  475. CALL TUYKAR(VALCAR,KERRE,2,YOUNG)
  476. IF(KERRE.EQ.1) THEN
  477. IRET=0
  478. GOTO 1020
  479. ENDIF
  480. ENDIF
  481. C
  482. C
  483. IF (IFOU.EQ.-2.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
  484. SD=VALCAR(1)
  485. XINZ=VALCAR(2)
  486. SREDY=VALCAR(3)
  487. IF(MELE.EQ.84) THEN
  488. C SECTION "REDUITE"
  489. IF (SREDY.EQ.0.D0) SREDY=SD
  490. ENDIF
  491. ELSE
  492. XINX=VALCAR(1)
  493. XINY=VALCAR(2)
  494. XINZ=VALCAR(3)
  495. SD=VALCAR(4)
  496. SREDY=VALCAR(5)
  497. SREDZ=VALCAR(6)
  498. C
  499. IF(MELE.EQ.84) THEN
  500. C SECTION "REDUITE"
  501. IF (SREDZ.EQ.0.D0) SREDZ=SD
  502. IF (SREDY.EQ.0.D0) SREDY=SD
  503. ENDIF
  504. C
  505. ENDIF
  506. C
  507. IF(IFOU.EQ.2) THEN
  508. YOU=VALMAT(1)
  509. XNU=VALMAT(2)
  510. CISA=YOU*0.5D0/(1.D0+XNU)
  511. C
  512. DDHOOK(1,1)=YOU*SD
  513. DDHOOK(2,2)=CISA*SREDY
  514. DDHOOK(3,3)=CISA*SREDZ
  515. DDHOOK(4,4)=CISA*XINX
  516. DDHOOK(5,5)=YOU*XINY
  517. DDHOOK(6,6)=YOU*XINZ
  518. C
  519. ELSEIF (IFOU.EQ.-2.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
  520. YOU=VALMAT(1)
  521. XNU=VALMAT(2)
  522. CISA=YOU*0.5D0/(1.D0+XNU)
  523. C
  524. DDHOOK(1,1)=YOU*SD
  525. DDHOOK(2,2)=CISA*SREDY
  526. DDHOOK(3,3)=YOU*XINZ
  527. C
  528. ELSE
  529. IRET=0
  530. ENDIF
  531. C
  532. C Coques minces avec cisaillement transverse
  533. C
  534. ELSE IF(MFR.EQ.9) THEN
  535. C
  536. C CAS TRIDIMENSIONNEL
  537. C
  538. IF(IFOU.EQ.2) THEN
  539. YOU = VALMAT(1)
  540. XNU = VALMAT(2)
  541. AUX=YOU/(UN-XNU*XNU)
  542. AUX1=AUX*XNU
  543. GEGE=YOU*UNDEMI/(UN+XNU)
  544. C
  545. DDHOOK(1,1)=AUX
  546. DDHOOK(2,1)=AUX1
  547. DDHOOK(1,2)=AUX1
  548. DDHOOK(2,2)=AUX
  549. DDHOOK(3,3)=GEGE
  550. C
  551. DDHOOK(4,4)=AUX
  552. DDHOOK(5,4)=AUX1
  553. DDHOOK(4,5)=AUX1
  554. DDHOOK(5,5)=AUX
  555. DDHOOK(6,6)=GEGE
  556. C
  557. DDHOOK(7,7)=GEGE/XK
  558. DDHOOK(8,8)=GEGE/XK
  559. ELSE
  560. IRET=0
  561. ENDIF
  562. C
  563. C Linespring
  564. C
  565. ELSE IF(MFR.EQ.15) THEN
  566. C
  567. C TRIDIMENSIONNEL
  568. C
  569. IF(IFOU.EQ.2) THEN
  570. YOU=VALMAT(1)
  571. XNU=VALMAT(2)
  572. EE=YOU*UNDEMI/(UN-XNU*XNU)
  573. EPA1=VALCAR(1)
  574. FISS1=VALCAR(2)
  575. EPA2=VALCAR(6)
  576. FISS2=VALCAR(7)
  577. C
  578.  
  579. C ON RECUPERE LES FISS AUX POINTS DE GAUSS IL FAUT LES CALCULER
  580. C AUX EXTREMITES
  581. FISS1 = (FISS1*(UNDEMI +UNDEMI/X774))+
  582. + (FISS2*(UNDEMI-UNDEMI/X774))
  583. FISS2 = (FISS1*(UNDEMI -UNDEMI/X774))+
  584. + (FISS2*(UNDEMI+UNDEMI/X774))
  585. C ASURW = A / W NOTATION CHEISSOUX
  586. W=(EPA1+EPA2)*UNDEMI
  587. ASURW=(FISS1+FISS2)/W
  588. C
  589. D1=EE*W
  590. D2=EE*W*W*W/DOUZE
  591. PEWMB=D1*PENB
  592. PEWFB=D2*PENA
  593. H1=UNDEMI-UNDEMI*S(IGAU)
  594. H2=UNDEMI+UNDEMI*S(IGAU)
  595. write(6,*) 'HOOKIS linespring que vaut S ?'
  596. ASURW=(H1*FISS1+H2*FISS2)/W
  597. C ON RECUPERE LES COEFFICIENTS ALPHAS ET F I
  598. CALL LISPAL(ASURW,ALMM,ALMF,ALFF,DELTA)
  599. DELTA=D1/DELTA
  600. C CALCUL DES COEFFICIENTS R1 R2 R3 R4
  601. R1= DELTA*ALFF/W
  602. R2=-DELTA*ALMF/SIX
  603. R3=-DELTA*ALMF/SIX
  604. R4= DELTA*ALMM*W/TRSIX
  605. C
  606. DDHOOK(1,1)=R1
  607. DDHOOK(1,4)=R2
  608. DDHOOK(2,2)=PEWMB
  609. DDHOOK(3,3)=PEWMB
  610. DDHOOK(4,1)=R3
  611. DDHOOK(4,4)=R4
  612. DDHOOK(5,5)=PEWFB
  613. ELSE
  614. IRET=0
  615. ENDIF
  616. C
  617.  
  618. C Tuyau fissure
  619. C
  620. ELSE IF(MFR.EQ.17) THEN
  621. C
  622. C TRIDIMENSIONNEL
  623. C
  624. IF(IFOU.EQ.2) THEN
  625. YOU=VALMAT(1)
  626. XNU=VALMAT(2)
  627. CISA = YOU /(DEUX *(UN + XNU))
  628. RAYO=VALCAR(1)
  629. EPAI=VALCAR(2)
  630. TETA1=VALCAR(9)*UNDEMI
  631.  
  632. C CONVERSION DE TETA1 EN RADIAN
  633. TETA = (TETA1 * XPI)/180.D0
  634. TESPI = TETA/XPI
  635. C ON MET DANS 'RAYMO' LE RAYON MOYEN DU TUYAU.
  636. RAYMO =RAYO - (EPAI/DEUX)
  637. C CALCUL DE A COEFIICIENT ZAHOR
  638. RSURT=RAYMO / EPAI
  639. IF(RSURT.LE.10.D0.AND.RSURT.GE.4.9D0) THEN
  640. AXX = ( .125D0*RSURT - .25D0 ) **.25D0
  641. ELSE IF(RSURT.GT.10.D0.AND.RSURT.LE.35.D0) THEN
  642. AXX = ( .4D0*RSURT - 3.D0 ) **.25D0
  643. ELSE
  644. KERRE=3
  645. ENDIF
  646. C
  647. C INITIALISATION DES TERMES DE PENALISATION
  648. C
  649. PPFX = DEUX * XPI * EPAI * YOU * RAYMO * D6
  650. PPFY = DEUX * XPI * EPAI * CISA * RAYMO * D6
  651. PPFZ = PPFY
  652. PPMX = DEUX * XPI * EPAI * CISA * (RAYMO**2) * D6
  653. PPMY = YOU * XPI * EPAI * (RAYMO**2) * D6
  654. PPMZ = PPMY
  655. IF (TETA1.LE.(0.5D0)) THEN
  656. RR11 = PPFX
  657. RR16 = XZERO
  658. RR66 = PPMZ
  659. ELSE
  660. CALL TUFIFP(TESPI,AXX,FP,FM,FMP,FOP,FOM)
  661. DENOM = FP*FM - FMP*FMP
  662. COEF = (YOU * XPI * EPAI)/(DENOM * (TETA**2))
  663. RR11 = COEF * DEUX * FM
  664. RR16 = COEF * RAYMO * FMP
  665. RR66 = COEF * (RAYMO**2) * FP *UNDEMI
  666. ENDIF
  667. C
  668. DDHOOK(1,1)=RR11
  669. DDHOOK(1,6)=RR16
  670. DDHOOK(2,2)=PPFY
  671. DDHOOK(3,3)=PPFZ
  672. DDHOOK(4,4)=PPMX
  673. DDHOOK(5,5)=PPMY
  674. DDHOOK(6,1)=DDHOOK(1,6)
  675. DDHOOK(6,6)=RR66
  676. ELSE
  677. IRET=0
  678. ENDIF
  679. C
  680. C Cas des barres
  681. C
  682. ELSE IF(MFR.EQ.27.OR.MFR.EQ.49) THEN
  683. C
  684. YOU=VALMAT(1)
  685. DDHOOK(1,1)=YOU*SECT
  686. C cccccc
  687. C Elements joints JOT3, JOI4 et JOI2 et COA2 et COS2
  688. C
  689. ELSE IF(MFR.EQ.35) THEN
  690. C
  691. C CAS TRIDIMENSIONNEL
  692. C
  693. IF(IFOU.EQ.2) THEN
  694. ZK1 =VALMAT(1)
  695. ZK2 =VALMAT(1)
  696. ZK3 =VALMAT(2)
  697. C
  698. DDHOOK(1,1)=ZK1
  699. DDHOOK(2,2)=ZK2
  700. DDHOOK(3,3)=ZK3
  701. C
  702. C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N)
  703. C DEFORMATIONS PLANES DANS LE PLAN (S1,N)
  704. C AXISYMETRIE DANS LE PLAN (S1,N)
  705. C
  706. ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1
  707. & .OR.IFOU.EQ.0) THEN
  708. ZK1 =VALMAT(1)
  709. ZK2 =VALMAT(2)
  710. C
  711. DDHOOK(1,1)=ZK1
  712. DDHOOK(2,2)=ZK2
  713. C
  714. ELSE
  715. IRET=0
  716. ENDIF
  717. ELSE IF(MFR.EQ.78) THEN
  718. C
  719. C CAS TRIDIMENSIONNEL
  720. C
  721. IF(IFOU.EQ.2) THEN
  722. ZK1 =VALMAT(1)
  723. ZK2 =VALMAT(2)
  724. ZK3 =VALMAT(2)
  725. C
  726. DDHOOK(1,1)=ZK1
  727. DDHOOK(2,2)=ZK2
  728. DDHOOK(3,3)=ZK3
  729. C
  730. C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N)
  731. C DEFORMATIONS PLANES DANS LE PLAN (S1,N)
  732. C AXISYMETRIE DANS LE PLAN (S1,N)
  733. C
  734. ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1
  735. & .OR.IFOU.EQ.0) THEN
  736. ZK1 =VALMAT(1)
  737. ZK2 =VALMAT(2)
  738. C
  739. DDHOOK(1,1)=ZK1
  740. DDHOOK(2,2)=ZK2
  741. ELSE
  742. IRET=0
  743. ENDIF
  744. c ccccccc
  745. C
  746. C
  747. C Elements joints JCT3, JCI4 en 2D cisaillement
  748. C
  749. ELSE IF(MFR.EQ.53) THEN
  750. C
  751. C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N)
  752. C DEFORMATIONS PLANES DANS LE PLAN (S1,N)
  753. C
  754. IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1
  755. & .OR.IFOU.EQ.-3) THEN
  756. ZK1 =VALMAT(1)
  757. C
  758. DDHOOK(1,1)=ZK1
  759. DDHOOK(2,2)=ZK1
  760. C
  761. ELSE
  762. IRET=0
  763. ENDIF
  764. C
  765. C Elements joints generalises JGI2, JGT3, JGI4
  766. C
  767. ELSE IF(MFR.EQ.55) THEN
  768. C
  769. YOU =VALMAT(1)
  770. XNU =VALMAT(2)
  771. C
  772. C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N)
  773. C
  774. IF(IFOU.EQ.-2) THEN
  775. AUX =YOU/(UN-XNU*XNU)
  776. AUX1=AUX*XNU
  777. *
  778. DDHOOK(1,1)=(UN-XNU)*AUX*UNDEMI/EPAIST
  779. *
  780. DDHOOK(2,2)= AUX / EPAIST
  781. DDHOOK(2,3)= AUX1
  782. *
  783. DDHOOK(3,2)= AUX1
  784. DDHOOK(3,3)= AUX * EPAIST
  785. C
  786. C CAS DEFORMATIONS PLANES DANS LE PLAN (S1,N)
  787. C
  788. ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-1) THEN
  789. AUX0=UN/((UN+XNU)*(UN-DEUX*XNU))
  790. AUX =YOU*AUX0*(UN-XNU)
  791. AUX1=YOU*AUX0*XNU
  792. *
  793. DDHOOK(1,1)=YOU*UNDEMI/(UN+XNU)/EPAIST
  794. *
  795. DDHOOK(2,2)= AUX / EPAIST
  796. DDHOOK(2,3)= AUX1
  797. DDHOOK(2,4)= AUX1
  798. *
  799. DDHOOK(3,2)= AUX1
  800. DDHOOK(3,3)= AUX * EPAIST
  801. DDHOOK(3,4)= AUX1 * EPAIST
  802. *
  803. DDHOOK(4,2)= AUX1
  804. DDHOOK(4,3)= AUX1 * EPAIST
  805. DDHOOK(4,4)= AUX * EPAIST
  806. C
  807. C CAS TRIDIMENSIONNEL
  808. C
  809. ELSE IF(IFOU.EQ.2) THEN
  810. AUX0=UN/((UN+XNU)*(UN-DEUX*XNU))
  811. AUX =YOU*AUX0*(UN-XNU)
  812. AUX1=YOU*AUX0*XNU
  813. *
  814. DDHOOK(1,1)=YOU*UNDEMI/(UN+XNU)/EPAIST
  815. *
  816. DDHOOK(2,2)=DDHOOK(1,1)
  817. *
  818. DDHOOK(3,3)= AUX / EPAIST
  819. DDHOOK(3,4)= AUX1
  820. DDHOOK(3,5)= AUX1
  821. *
  822. DDHOOK(4,3)= AUX1
  823. DDHOOK(4,4)= AUX * EPAIST
  824. DDHOOK(4,5)= AUX1 * EPAIST
  825. *
  826. DDHOOK(5,3)= AUX1
  827. DDHOOK(5,4)= AUX1 * EPAIST
  828. DDHOOK(5,5)= AUX * EPAIST
  829. *
  830. DDHOOK(6,6)=YOU*UNDEMI/(UN+XNU)*EPAIST
  831. C
  832. C OPTION NON DEFINIE
  833. C
  834. ELSE
  835. IRET=0
  836. ENDIF
  837. C
  838. C Elements de zones cohesives
  839. C
  840. ELSE IF(MFR.EQ.77) THEN
  841.  
  842. * POUR LE MOMENT, ON NE TIENT PAS COMPTE DE L'ENDOMMAGEMENT
  843.  
  844. C
  845. C CAS TRIDIMENSIONNEL
  846. C
  847. IF(IFOU.EQ.2) THEN
  848. ZK1 =VALMAT(1)
  849. ZK2 =VALMAT(1)
  850. ZK3 =VALMAT(2)
  851. C
  852. DDHOOK(1,1)=ZK1
  853. DDHOOK(2,2)=ZK2
  854. DDHOOK(3,3)=ZK3
  855. C
  856. C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N)
  857. C DEFORMATIONS PLANES DANS LE PLAN (S1,N)
  858. C
  859. ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN
  860. ZK1 =VALMAT(1)
  861. ZK2 =VALMAT(2)
  862. C
  863. DDHOOK(1,1)=ZK1
  864. DDHOOK(2,2)=ZK2
  865. C
  866. ELSE
  867. IRET=0
  868. ENDIF
  869. C
  870. ELSE
  871. IRET=0
  872. GOTO 1020
  873. ENDIF
  874. ENDIF
  875. C
  876. C Prise en compte de l'epaisseur et de l'excentrement
  877. C dans le cas des coques minces avec ou sans cisaillement
  878. C transverse
  879. C
  880. IF ((MFR.EQ.3.AND.NPINT.EQ.0).OR.MFR.EQ.9) THEN
  881. CALL HOOKMU(EPAIST,EXCEN,LHOOK,DDHOOK,DDHOMU)
  882. DO 1005 IO=1,LHOOK
  883. DO 10051 JO=1,LHOOK
  884. DDHOOK(IO,JO)=DDHOMU(IO,JO)
  885. 10051 CONTINUE
  886. 1005 CONTINUE
  887. ENDIF
  888. C
  889. C Cas particulier de certains materiaux endommageables
  890. C
  891. IF (INAT.EQ.62.OR.INAT.EQ.64.OR.INAT.EQ.30.OR.INAT.EQ.118) THEN
  892. CALL ELAST2(DDHOOK,LHOOK,VALMAT,VAR,INAT,IB,IGAU)
  893. ENDIF
  894. C
  895. 1020 RETURN
  896. END
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  

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