Télécharger hookis.eso

Retour à la liste

Numérotation des lignes :

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

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