Télécharger dohota.eso

Retour à la liste

Numérotation des lignes :

  1. C DOHOTA SOURCE FANDEUR 09/09/23 21:15:09 6374
  2. SUBROUTINE DOHOTA(IVAMAT,NMATT,IVACON,NSTRS,IVARI,NVART,TRAC,
  3. & LTRAC,ALPHA,EP1,IGAU,IB,MATE,MAPL,XPREC,DTPS,
  4. & IFOU,LHOOK,DDHOOK,IRET)
  5. *_______________________________________________________________________
  6. *
  7. * entrees :
  8. * --------
  9. *
  10. * ivamat pointeur sur un segment mptval contenant les materiaux
  11. * nmatt nombre de composantes du materiau
  12. * ivacon pointeur sur un segment mptval contenant les contraintes
  13. * nstrs nombre de composantes de contraintes
  14. * ivari pointeur sur un segment mptval contenant les variables
  15. * internes
  16. * nvart nombre de composantes de variables internes
  17. * trac courbe de traction
  18. * ltrac taille du tableau trac
  19. * alpha coefficient alpha pour les coques minces
  20. * ep1 epaisseur pour les coques minces
  21. * igau numero du point de gauss ou l'on veut le mat. de hooke
  22. * il numero de l'element ou l'on veut le mat. de hooke
  23. * mate numeror du materiau lineaire
  24. * mapl numero du materiau plastique
  25. * xprec flottant precision
  26. * dtps flottant pas de temps pour les modeles visqueux
  27. * ifou option ifour de ccoptio
  28. * lhook taille de la matrice de hooke
  29. *
  30. * sorties :
  31. * --------
  32. *
  33. * ddhook matrice de hooke tangente pour l'element ib
  34. * iret = 1 si ok
  35. * = 0 si formulation indisponible
  36. * = -1 si hors courbe
  37. *
  38. * passage aux nouveaux chamelem par jm campenon le 05/91
  39. *_______________________________________________________________________
  40. *
  41. IMPLICIT INTEGER(I-N)
  42. IMPLICIT REAL*8(A-H,O-Z)
  43. *
  44. -INC CCOPTIO
  45. -INC SMCHAML
  46. *
  47. SEGMENT MPTVAL
  48. INTEGER IPOS(NS) ,NSOF(NS)
  49. INTEGER IVAL(NCOSOU)
  50. CHARACTER*16 TYVAL(NCOSOU)
  51. ENDSEGMENT
  52. *
  53. SEGMENT WRK5
  54. INTEGER NTRAT,NTRAC
  55. ENDSEGMENT
  56. *
  57. SEGMENT WTRAV
  58. REAL*8 TXR(IDIM,IDIM)
  59. ENDSEGMENT
  60. *
  61. PARAMETER(XZER=0.D0,UN=1.D0,DEUX=2.D0,TROIS=3.D0)
  62. PARAMETER(CINQ=5.D0,SIX=6.D0,HUIT=8.D0,XNEUF=9.D0,DOUZE=12.D0)
  63. PARAMETER(UNTIER=.33333 33333 33333D0,TRDEMI=1.5D0)
  64. PARAMETER(DETIER=.66666 66666 66666D0,UNDEMI=0.5D0)
  65. PARAMETER(UNQU=.25D0)
  66. *
  67. DIMENSION DDHOOK(LHOOK,*)
  68. DIMENSION TRAC(*)
  69.  
  70. DIMENSION XSTRS(12),XVARI(12)
  71. DIMENSION DDF(8),DDG(8),DHDF(8),DHDG(8)
  72. DIMENSION PMATRIC(6,6),GMATRIC(6,6),GDMATR(6,6),GINV(6,6),COEF3(6)
  73. * matrice P pour le modele viscoplastique parfait
  74. * la matrice sert a passer de la contrainte a la contrainte deviatorique
  75. DATA PMATRIC /2.D0,-1.D0,-1.D0,0.D0,0.D0,0.D0,
  76. & -1.D0,2.D0,-1.D0,0.D0,0.D0,0.D0,
  77. & -1.D0,-1.D0,2.D0,0.D0,0.D0,0.D0,
  78. & 0.D0, 0.D0,0.D0,6.D0,0.D0,0.D0,
  79. & 0.D0, 0.D0,0.D0,0.D0,6.D0,0.D0,
  80. & 0.D0, 0.D0,0.D0,0.D0,0.D0,6.D0/
  81. *
  82. DATA COEF3 /1.D0,1.D0,1.D0,2.D0,2.D0,2.D0/
  83. *_______________________________________________________________________
  84. *
  85. * formulation coques minces
  86. * (formulation massive dans dohot1.eso)
  87. *_______________________________________________________________________
  88. *
  89. ENTRY DOHOT3(IVAMAT,NMATT,IVACON,NSTRS,IVARI,NVART,
  90. & TRAC,LTRAC,ALPHA,EP1,IGAU,IB,MATE,MAPL,
  91. & XPREC,DTPS,IFOU,LHOOK,DDHOOK,IRET)
  92. *
  93. * Transformation des efforts generalises en contraintes :
  94. *
  95. MFR=3
  96. XXHH=XZER
  97. SIGY=XZER
  98. ALP =XZER
  99. *
  100. IRET=1
  101. ALPHAP=ALPHA*SIX/EP1
  102. ALPH2=ALPHAP*ALPHAP
  103. ALPH4=ALPH2*ALPH2
  104. CALL ZERO(DDHOOK,LHOOK,LHOOK)
  105. *
  106. * materiau elastique isotrope plastique parfait et bilineaire
  107. *
  108. IF(MATE.EQ.1) THEN
  109. MPTVAL=IVAMAT
  110. MELVAL=IVAL(1)
  111. IGMN=MIN(IGAU,VELCHE(/1))
  112. IBMN=MIN(IB ,VELCHE(/2))
  113. YOU =VELCHE(IGMN,IBMN)
  114. *
  115. MELVAL=IVAL(2)
  116. IGMN=MIN(IGAU,VELCHE(/1))
  117. IBMN=MIN(IB ,VELCHE(/2))
  118. XNU =VELCHE(IGMN,IBMN)
  119. *
  120. IF (MAPL.EQ.1.OR.MAPL.EQ.3.OR.MAPL.EQ.4) THEN
  121. MELVAL=IVAL(3)
  122. IGMN=MIN(IGAU,VELCHE(/1))
  123. IBMN=MIN(IB ,VELCHE(/2))
  124. SIGY = VELCHE(IGMN,IBMN)
  125. *
  126. IF (MAPL.EQ.3) THEN
  127. MELVAL=IVAL(4)
  128. IGMN=MIN(IGAU,VELCHE(/1))
  129. IBMN=MIN(IB ,VELCHE(/2))
  130. ALP = VELCHE(IGMN,IBMN)
  131. ELSE IF (MAPL.EQ.4) THEN
  132. MELVAL=IVAL(4)
  133. IGMN=MIN(IGAU,VELCHE(/1))
  134. IBMN=MIN(IB ,VELCHE(/2))
  135. XXHH = VELCHE(IGMN,IBMN)
  136. ENDIF
  137. ENDIF
  138. *
  139. * Transformation des efforts generalises en contraintes :
  140. *
  141. MPTVAL=IVACON
  142. DO 70 ICOMP=1,NSTRS
  143. MELVAL=IVAL(ICOMP)
  144. IGMN=MIN(IGAU,VELCHE(/1))
  145. IBMN=MIN(IB ,VELCHE(/2))
  146. XSTRS(ICOMP) = VELCHE(IGMN,IBMN)
  147. 70 CONTINUE
  148. CALL EFCONT(EP1,0.D0,NSTRS,XSTRS)
  149. *
  150. MPTVAL=IVARI
  151. MELVAL=IVAL(1)
  152. IGMN=MIN(IGAU,VELCHE(/1))
  153. IBMN=MIN(IB ,VELCHE(/2))
  154. EPS = VELCHE(IGMN,IBMN)
  155. *
  156. * Transformation des vints generalisees en vints :
  157. *
  158. IF (NVART.EQ.NSTRS+1) THEN
  159. DO 80 ICOMP=1,NSTRS
  160. MELVAL=IVAL(1+ICOMP)
  161. IGMN=MIN(IGAU,VELCHE(/1))
  162. IBMN=MIN(IB ,VELCHE(/2))
  163. XVARI(ICOMP) = VELCHE(IGMN,IBMN)
  164. 80 CONTINUE
  165. CALL EFCONT(EP1,0.D0,NSTRS,XVARI)
  166. * Calcul des contraintes effectives
  167. DO ICOMP=1,NSTRS
  168. XSTRS(ICOMP) = XSTRS(ICOMP) - XVARI(ICOMP)
  169. ENDDO
  170. ENDIF
  171. *
  172. CALL PENTE(EPS,YOU,SIGY,XXHH,ALPHA,ALP,TRAC,LTRAC,XSTRS,
  173. & NSTRS,MAPL,MFR,XPREC,YOUTA,ILOGEL)
  174. *
  175. IF(ILOGEL.EQ.-1) THEN
  176. IRET=-1
  177. RETURN
  178. ENDIF
  179. *
  180. * matrice tangente
  181. *
  182. AUX1=YOU/(UN - XNU* XNU)
  183. AUX2=XNU*AUX1
  184. AUX3=YOU*UNDEMI/(UN+XNU)
  185. AUX4=UNTIER/(UN-XNU*XNU)
  186. EP2=EP1*EP1/SIX
  187. EP3=EP1*EP1*EP1/DOUZE
  188. EP4=EP3/TROIS
  189. *
  190. IF (IFOU.EQ.2.OR.IFOU.EQ.1) THEN
  191. *
  192. DDHOOK(1,1)=AUX1*EP1
  193. DDHOOK(2,2)=AUX1*EP1
  194. DDHOOK(1,2)=AUX2*EP1
  195. DDHOOK(2,1)=AUX2*EP1
  196. DDHOOK(3,3)=AUX3*EP1
  197. *
  198. DDHOOK(4,4)=AUX1*EP3
  199. DDHOOK(5,5)=AUX1*EP3
  200. DDHOOK(4,5)=AUX2*EP3
  201. DDHOOK(5,4)=AUX2*EP3
  202. DDHOOK(6,6)=AUX3*EP3
  203. *
  204. * on retranche le partie deviateur
  205. *
  206. IF (ILOGEL.EQ.1) THEN
  207. XSTRS(1)=XSTRS(1)*EP1
  208. XSTRS(2)=XSTRS(2)*EP1
  209. XSTRS(3)=XSTRS(3)*EP1
  210. XSTRS(4)=XSTRS(4)*EP2
  211. XSTRS(5)=XSTRS(5)*EP2
  212. XSTRS(6)=XSTRS(6)*EP2
  213. *
  214. UM=(DEUX*XSTRS(1)-XSTRS(2)+XNU*(DEUX*XSTRS(2)-
  215. & XSTRS(1)))*AUX4
  216. VM=(DEUX*XSTRS(2)-XSTRS(1)+XNU*(DEUX*XSTRS(1)-
  217. & XSTRS(2)))*AUX4
  218. WM=XSTRS(3)/(UN+XNU)
  219. *
  220. UF=(DEUX*XSTRS(4)-XSTRS(5)+XNU*(DEUX*XSTRS(5)-
  221. & XSTRS(4)))*AUX4
  222. VF=(DEUX*XSTRS(5)-XSTRS(4)+XNU*(DEUX*XSTRS(4)-
  223. & XSTRS(5)))*AUX4
  224. WF=XSTRS(6)/(UN+XNU)
  225. *
  226. UM=UM*EP1
  227. VM=VM*EP1
  228. WM=WM*EP1
  229. *
  230. UF=UF*EP3*ALPH2
  231. VF=VF*EP3*ALPH2
  232. WF=WF*EP3*ALPH2
  233. *
  234. XXXX=XSTRS(1)*XSTRS(1)+XSTRS(2)*XSTRS(2)
  235. XXX1=XSTRS(4)*XSTRS(4)+XSTRS(5)*XSTRS(5)
  236. XXXA=XXXX*EP1+XXX1*ALPH4*EP3
  237. XXXB=XXXX*EP1+XXX1*ALPH2*EP4
  238. *
  239. YYYY=XSTRS(1)*XSTRS(2)
  240. YYY1=XSTRS(4)*XSTRS(5)
  241. YYYA=YYYY*EP1+YYY1*ALPH4*EP3
  242. YYYB=YYYY*EP1+YYY1*ALPH2*EP4
  243. *
  244. ZZZZ=XSTRS(3)*XSTRS(3)
  245. ZZZ1=XSTRS(6)*XSTRS(6)
  246. ZZZA=ZZZZ*EP1+ZZZ1*ALPH4*EP3
  247. ZZZB=ZZZZ*EP1+ZZZ1*ALPH2*EP4
  248. *
  249. A= CINQ*XXXA - HUIT*YYYA
  250. B= CINQ*YYYA - DEUX*XXXA
  251. C= DETIER*(XXXA-YYYA)+DEUX*ZZZA
  252. D= (A+DEUX*XNU*B)*AUX4 + SIX*ZZZA/(UN+XNU)
  253. *
  254. XNUM=TROIS*YOU*(YOU-YOUTA)
  255. DENOM=DEUX*YOUTA*C + ( YOU - YOUTA ) * D
  256. BETA=XNUM/DENOM
  257. *
  258. DDHOOK(1,1)=DDHOOK(1,1)-BETA*UM*UM
  259. DDHOOK(2,1)=DDHOOK(2,1)-BETA*VM*UM
  260. DDHOOK(3,1)=DDHOOK(3,1)-BETA*WM*UM
  261. *
  262. DDHOOK(4,1)= -BETA*UF*UM
  263. DDHOOK(5,1)= -BETA*VF*UM
  264. DDHOOK(6,1)= -BETA*WF*UM
  265. *
  266. DDHOOK(1,2)=DDHOOK(1,2)-BETA*UM*VM
  267. DDHOOK(2,2)=DDHOOK(2,2)-BETA*VM*VM
  268. DDHOOK(3,2)=DDHOOK(3,2)-BETA*WM*VM
  269. *
  270. DDHOOK(4,2)= -BETA*UF*VM
  271. DDHOOK(5,2)= -BETA*VF*VM
  272. DDHOOK(6,2)= -BETA*WF*VM
  273. *
  274. DDHOOK(1,3)=DDHOOK(1,3)-BETA*UM*WM
  275. DDHOOK(2,3)=DDHOOK(2,3)-BETA*VM*WM
  276. DDHOOK(3,3)=DDHOOK(3,3)-BETA*WM*WM
  277. *
  278. DDHOOK(4,3)= -BETA*UF*WM
  279. DDHOOK(5,3)= -BETA*VF*WM
  280. DDHOOK(6,3)= -BETA*WF*WM
  281. *
  282. DDHOOK(1,4)= -BETA*UM*UF
  283. DDHOOK(2,4)= -BETA*VM*UF
  284. DDHOOK(3,4)= -BETA*WM*UF
  285. *
  286. DDHOOK(4,4)=DDHOOK(4,4)-BETA*UF*UF
  287. DDHOOK(5,4)=DDHOOK(5,4)-BETA*VF*UF
  288. DDHOOK(6,4)=DDHOOK(6,4)-BETA*WF*UF
  289. *
  290. DDHOOK(1,5)= -BETA*UM*VF
  291. DDHOOK(2,5)= -BETA*VM*VF
  292. DDHOOK(3,5)= -BETA*WM*VF
  293. *
  294. DDHOOK(4,5)=DDHOOK(4,5)-BETA*UF*VF
  295. DDHOOK(5,5)=DDHOOK(5,5)-BETA*VF*VF
  296. DDHOOK(6,5)=DDHOOK(6,5)-BETA*WF*VF
  297. *
  298. DDHOOK(1,6)= -BETA*UM*WF
  299. DDHOOK(2,6)= -BETA*VM*WF
  300. DDHOOK(3,6)= -BETA*WM*WF
  301. *
  302. DDHOOK(4,6)=DDHOOK(4,6)-BETA*UF*WF
  303. DDHOOK(5,6)=DDHOOK(5,6)-BETA*VF*WF
  304. DDHOOK(6,6)=DDHOOK(6,6)-BETA*WF*WF
  305. ENDIF
  306. *
  307. ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1) THEN
  308. *
  309. DDHOOK(1,1)=AUX1*EP1
  310. DDHOOK(2,2)=AUX1*EP1
  311. DDHOOK(1,2)=AUX2*EP1
  312. DDHOOK(2,1)=AUX2*EP1
  313. *
  314. DDHOOK(3,3)=AUX1*EP3
  315. DDHOOK(4,4)=AUX1*EP3
  316. DDHOOK(3,4)=AUX2*EP3
  317. DDHOOK(4,3)=AUX2*EP3
  318. *
  319. * on retranche la partie deviateur
  320. *
  321. IF(ILOGEL.EQ.1) THEN
  322. XSTRS(1)=XSTRS(1)*EP1
  323. XSTRS(2)=XSTRS(2)*EP1
  324. XSTRS(3)=XSTRS(3)*EP2
  325. XSTRS(4)=XSTRS(4)*EP2
  326. *
  327. UM=(DEUX*XSTRS(1)-XSTRS(2)+XNU*(DEUX*XSTRS(2)-
  328. & XSTRS(1)))*AUX4
  329. VM=(DEUX*XSTRS(2)-XSTRS(1)+XNU*(DEUX*XSTRS(1)-
  330. & XSTRS(2)))*AUX4
  331. *
  332. UF=(DEUX*XSTRS(3)-XSTRS(4)+XNU*(DEUX*XSTRS(4)-
  333. & XSTRS(3)))*AUX4
  334. VF=(DEUX*XSTRS(4)-XSTRS(3)+XNU*(DEUX*XSTRS(3)-
  335. & XSTRS(4)))*AUX4
  336. *
  337. UM=UM*EP1
  338. VM=VM*EP1
  339. *
  340. UF=UF*EP3*ALPH2
  341. VF=VF*EP3*ALPH2
  342. *
  343. XXXX=XSTRS(1)*XSTRS(1)+XSTRS(2)*XSTRS(2)
  344. XXX1=XSTRS(3)*XSTRS(3)+XSTRS(4)*XSTRS(4)
  345. XXXA=XXXX*EP1+XXX1*ALPH4*EP3
  346. XXXB=XXXX*EP1+XXX1*ALPH2*EP4
  347. *
  348. YYYY=XSTRS(1)*XSTRS(2)
  349. YYY1=XSTRS(3)*XSTRS(4)
  350. YYYA=YYYY*EP1+YYY1*ALPH4*EP3
  351. YYYB=YYYY*EP1+YYY1*ALPH2*EP4
  352. *
  353. A= CINQ*XXXA - HUIT*YYYA
  354. B= CINQ*YYYA - DEUX*XXXA
  355. C= DETIER*(XXXA-YYYA)
  356. D= (A+DEUX*XNU*B)*AUX4
  357. *
  358. XNUM=TROIS*YOU*(YOU-YOUTA)
  359. DENOM=DEUX*YOUTA*C + ( YOU - YOUTA ) * D
  360. BETA=XNUM/DENOM
  361. *
  362. DDHOOK(1,1)=DDHOOK(1,1)-BETA*UM*UM
  363. DDHOOK(2,1)=DDHOOK(2,1)-BETA*VM*UM
  364. *
  365. DDHOOK(3,1)= -BETA*UF*UM
  366. DDHOOK(4,1)= -BETA*VF*UM
  367. *
  368. DDHOOK(1,2)=DDHOOK(1,2)-BETA*UM*VM
  369. DDHOOK(2,2)=DDHOOK(2,2)-BETA*VM*VM
  370. *
  371. DDHOOK(3,2)= -BETA*UF*VM
  372. DDHOOK(4,2)= -BETA*VF*VM
  373. *
  374. DDHOOK(1,3)= -BETA*UM*UF
  375. DDHOOK(2,3)= -BETA*VM*UF
  376. *
  377. DDHOOK(3,3)=DDHOOK(3,3)-BETA*UF*UF
  378. DDHOOK(4,3)=DDHOOK(4,3)-BETA*VF*UF
  379. *
  380. DDHOOK(1,4)= -BETA*UM*VF
  381. DDHOOK(2,4)= -BETA*VM*VF
  382. *
  383. DDHOOK(3,4)=DDHOOK(3,4)-BETA*UF*VF
  384. DDHOOK(4,4)=DDHOOK(4,4)-BETA*VF*VF
  385. *
  386. ENDIF
  387. ELSE
  388. IRET=0
  389. ENDIF
  390. ELSE
  391. IRET=0
  392. ENDIF
  393. *
  394. RETURN
  395. *_______________________________________________________________________
  396. *
  397. * formulation coques epaisses
  398. *_______________________________________________________________________
  399. *
  400. ENTRY DOHOT5(IVAMAT,NMATT,IVACON,NSTRS,IVARI,NVART,TRAC,LTRAC,
  401. & IGAU,IB,MATE,MAPL,XPREC,DTPS,IFOU,LHOOK,DDHOOK,IRET)
  402. *
  403. MFR=5
  404. XXHH =XZER
  405. ALPSS=XZER
  406. SIGY =XZER
  407. ALP =XZER
  408. *
  409. IRET=1
  410. CALL ZERO(DDHOOK,LHOOK,LHOOK)
  411. *
  412. * materiau elastique isotrope plastique parfait
  413. *
  414. IF(MATE.EQ.1) THEN
  415. MPTVAL=IVAMAT
  416. MELVAL=IVAL(1)
  417. IGMN=MIN(IGAU,VELCHE(/1))
  418. IBMN=MIN(IB ,VELCHE(/2))
  419. YOU =VELCHE(IGMN,IBMN)
  420. *
  421. MELVAL=IVAL(2)
  422. IGMN=MIN(IGAU,VELCHE(/1))
  423. IBMN=MIN(IB ,VELCHE(/2))
  424. XNU =VELCHE(IGMN,IBMN)
  425. *
  426. IF (MAPL.EQ.1.OR.MAPL.EQ.3.OR.MAPL.EQ.4) THEN
  427. MELVAL=IVAL(3)
  428. IGMN=MIN(IGAU,VELCHE(/1))
  429. IBMN=MIN(IB ,VELCHE(/2))
  430. SIGY = VELCHE(IGMN,IBMN)
  431. *
  432. IF (MAPL.EQ.3) THEN
  433. MELVAL=IVAL(4)
  434. IGMN=MIN(IGAU,VELCHE(/1))
  435. IBMN=MIN(IB ,VELCHE(/2))
  436. ALP = VELCHE(IGMN,IBMN)
  437. ELSE IF (MAPL.EQ.4) THEN
  438. MELVAL=IVAL(4)
  439. IGMN=MIN(IGAU,VELCHE(/1))
  440. IBMN=MIN(IB ,VELCHE(/2))
  441. XXHH = VELCHE(IGMN,IBMN)
  442. ENDIF
  443. ENDIF
  444. *
  445. MPTVAL=IVACON
  446. DO 90 ICOMP=1,NSTRS
  447. MELVAL=IVAL(ICOMP)
  448. IGMN=MIN(IGAU,VELCHE(/1))
  449. IBMN=MIN(IB ,VELCHE(/2))
  450. XSTRS(ICOMP) = VELCHE(IGMN,IBMN)
  451. 90 CONTINUE
  452. *
  453. MPTVAL=IVARI
  454. MELVAL=IVAL(1)
  455. IGMN=MIN(IGAU,VELCHE(/1))
  456. IBMN=MIN(IB ,VELCHE(/2))
  457. EPS = VELCHE(IGMN,IBMN)
  458. *
  459. IF(NVART.EQ.NSTRS+1) THEN
  460. DO 100 ICOMP=1,NSTRS
  461. MELVAL=IVAL(1+ICOMP)
  462. IGMN=MIN(IGAU,VELCHE(/1))
  463. IBMN=MIN(IB ,VELCHE(/2))
  464. XSTRS(ICOMP)= XSTRS(ICOMP) - VELCHE(IGMN,IBMN)
  465. 100 CONTINUE
  466. ENDIF
  467. *
  468. CALL PENTE(EPS,YOU,SIGY,XXHH,ALPSS,ALP,TRAC,LTRAC,XSTRS,
  469. & NSTRS,MAPL,MFR,XPREC,YOUTA,ILOGEL)
  470. *
  471. IF(ILOGEL.EQ.-1) THEN
  472. IRET=-1
  473. RETURN
  474. ENDIF
  475. *
  476. * matrice tangente / contraintes planes
  477. *
  478. IF(IFOU.EQ.2) THEN
  479. AUX1=YOU/(UN - XNU* XNU)
  480. AUX2=XNU*AUX1
  481. AUX3=YOU*UNDEMI/(UN+XNU)
  482. AUX31=YOU*UNDEMI/(UN+XNU)/1.2D0
  483. AUX4=UNTIER/(UN-XNU*XNU)
  484. *
  485. DDHOOK(1,1)=AUX1
  486. DDHOOK(2,2)=AUX1
  487. DDHOOK(1,2)=AUX2
  488. DDHOOK(2,1)=AUX2
  489. DDHOOK(3,3)=AUX3
  490. *
  491. DDHOOK(4,4)=AUX31
  492. DDHOOK(5,5)=AUX31
  493. *
  494. * on retranche la partie deviateur
  495. *
  496. IF(ILOGEL.EQ.1) THEN
  497. U =(DEUX*XSTRS(1)-XSTRS(2)+XNU*(DEUX*XSTRS(2)-
  498. & XSTRS(1)))*AUX4
  499. V =(DEUX*XSTRS(2)-XSTRS(1)+XNU*(DEUX*XSTRS(1)-
  500. & XSTRS(2)))*AUX4
  501. W =XSTRS(3)/(UN+XNU)
  502. *
  503. XXXX=XSTRS(1)*XSTRS(1)+XSTRS(2)*XSTRS(2)
  504. YYYY=XSTRS(1)*XSTRS(2)
  505. ZZZZ=XSTRS(3)*XSTRS(3)
  506. *
  507. A= CINQ*XXXX - HUIT*YYYY
  508. B= CINQ*YYYY - DEUX*XXXX
  509. C= DETIER*(XXXX-YYYY)+DEUX*ZZZZ
  510. D= (A+DEUX*XNU*B)*AUX4 + SIX*ZZZZ/(UN+XNU)
  511. *
  512. XNUM=TROIS*YOU*(YOU-YOUTA)
  513. DENOM=DEUX*YOUTA*C + ( YOU - YOUTA ) * D
  514. BETA=XNUM/DENOM
  515. *
  516. DDHOOK(1,1)=DDHOOK(1,1)-BETA*U*U
  517. DDHOOK(2,1)=DDHOOK(2,1)-BETA*V*U
  518. DDHOOK(3,1)=DDHOOK(3,1)-BETA*W*U
  519. *
  520. DDHOOK(1,2)=DDHOOK(1,2)-BETA*U*V
  521. DDHOOK(2,2)=DDHOOK(2,2)-BETA*V*V
  522. DDHOOK(3,2)=DDHOOK(3,2)-BETA*W*V
  523. *
  524. DDHOOK(1,3)=DDHOOK(1,3)-BETA*U*W
  525. DDHOOK(2,3)=DDHOOK(2,3)-BETA*V*W
  526. DDHOOK(3,3)=DDHOOK(3,3)-BETA*W*W
  527. ENDIF
  528. ELSE
  529. IRET=0
  530. ENDIF
  531. ELSE
  532. IRET=0
  533. ENDIF
  534. *
  535. RETURN
  536. *_______________________________________________________________________
  537. *
  538. * formulation coques cisaillement transverse
  539. *_______________________________________________________________________
  540. *
  541. ENTRY DOHOT9(IVAMAT,NMATT,IVACON,NSTRS,IVARI,NVART,
  542. & TRAC,LTRAC,ALPHA,EP1,IGAU,IB,MATE,MAPL,
  543. & XPREC,DTPS,IFOU,LHOOK,DDHOOK,IRET)
  544. *
  545. MFR=9
  546. XXHH=XZER
  547. SIGY=XZER
  548. ALP =XZER
  549. ALPHAP=ALPHA*SIX/EP1
  550. ALPH2=ALPHAP*ALPHAP
  551. ALPH4=ALPH2*ALPH2
  552. *
  553. CALL ZERO(DDHOOK,LHOOK,LHOOK)
  554. *
  555. * materiau elastique isotrope plastique parfait et bilineaire
  556. *
  557. IF(MATE.EQ.1) THEN
  558. MPTVAL=IVAMAT
  559. MELVAL=IVAL(1)
  560. IGMN=MIN(IGAU,VELCHE(/1))
  561. IBMN=MIN(IB ,VELCHE(/2))
  562. YOU =VELCHE(IGMN,IBMN)
  563. *
  564. MELVAL=IVAL(2)
  565. IGMN=MIN(IGAU,VELCHE(/1))
  566. IBMN=MIN(IB ,VELCHE(/2))
  567. XNU =VELCHE(IGMN,IBMN)
  568. *
  569. IF (MAPL.EQ.1.OR.MAPL.EQ.3.OR.MAPL.EQ.4) THEN
  570. MELVAL=IVAL(3)
  571. IGMN=MIN(IGAU,VELCHE(/1))
  572. IBMN=MIN(IB ,VELCHE(/2))
  573. SIGY = VELCHE(IGMN,IBMN)
  574. *
  575. IF (MAPL.EQ.3) THEN
  576. MELVAL=IVAL(4)
  577. IGMN=MIN(IGAU,VELCHE(/1))
  578. IBMN=MIN(IB ,VELCHE(/2))
  579. ALP = VELCHE(IGMN,IBMN)
  580. ELSE IF (MAPL.EQ.4) THEN
  581. MELVAL=IVAL(4)
  582. IGMN=MIN(IGAU,VELCHE(/1))
  583. IBMN=MIN(IB ,VELCHE(/2))
  584. XXHH = VELCHE(IGMN,IBMN)
  585. ENDIF
  586. ENDIF
  587. *
  588. MPTVAL=IVACON
  589. DO 180 ICOMP=1,NSTRS
  590. MELVAL=IVAL(ICOMP)
  591. IGMN=MIN(IGAU,VELCHE(/1))
  592. IBMN=MIN(IB ,VELCHE(/2))
  593. XSTRS(ICOMP) = VELCHE(IGMN,IBMN)
  594. 180 CONTINUE
  595. *
  596. MPTVAL=IVARI
  597. MELVAL=IVAL(1)
  598. IGMN=MIN(IGAU,VELCHE(/1))
  599. IBMN=MIN(IB ,VELCHE(/2))
  600. EPS = VELCHE(IGMN,IBMN)
  601. *
  602. IF (NVART.EQ.NSTRS+1) THEN
  603. DO 190 ICOMP=1,NSTRS
  604. MELVAL=IVAL(1+ICOMP)
  605. IGMN=MIN(IGAU,VELCHE(/1))
  606. IBMN=MIN(IB ,VELCHE(/2))
  607. XSTRS(ICOMP)= XSTRS(ICOMP) - VELCHE(IGMN,IBMN)
  608. 190 CONTINUE
  609. ENDIF
  610. *
  611. CALL PENTE(EPS,YOU,SIGY,XXHH,ALPHA,ALP,TRAC,LTRAC,XSTRS,
  612. & NSTRS,MAPL,MFR,XPREC,YOUTA,ILOGEL)
  613. *
  614. IF(ILOGEL.EQ.-1) THEN
  615. IRET=-1
  616. RETURN
  617. ENDIF
  618. *
  619. * matrice tangente / tridimensionnel
  620. *
  621. IF(IFOU.EQ.2) THEN
  622. AUX1=YOU/(UN - XNU* XNU)
  623. AUX2=XNU*AUX1
  624. AUX3=YOU*UNDEMI/(UN+XNU)
  625. AUX4=UNTIER/(UN-XNU*XNU)
  626. EP2=EP1*EP1/SIX
  627. EP3=EP1*EP1*EP1/DOUZE
  628. EP4=EP3/TROIS
  629. *
  630. DDHOOK(1,1)=AUX1*EP1
  631. DDHOOK(2,2)=AUX1*EP1
  632. DDHOOK(1,2)=AUX2*EP1
  633. DDHOOK(2,1)=AUX2*EP1
  634. DDHOOK(3,3)=AUX3*EP1
  635. *
  636. DDHOOK(4,4)=AUX1*EP3
  637. DDHOOK(5,5)=AUX1*EP3
  638. DDHOOK(4,5)=AUX2*EP3
  639. DDHOOK(5,4)=AUX2*EP3
  640. DDHOOK(6,6)=AUX3*EP3
  641. *
  642. DDHOOK(7,7)=AUX3*EP1/1.2D0
  643. DDHOOK(8,8)=AUX3*EP1/1.2D0
  644. *
  645. * on retranche la partie deviateur
  646. *
  647. IF(ILOGEL.EQ.1) THEN
  648. XSTRS(1)=XSTRS(1)*EP1
  649. XSTRS(2)=XSTRS(2)*EP1
  650. XSTRS(3)=XSTRS(3)*EP1
  651. XSTRS(4)=XSTRS(4)*EP2
  652. XSTRS(5)=XSTRS(5)*EP2
  653. XSTRS(6)=XSTRS(6)*EP2
  654. *
  655. UM=(DEUX*XSTRS(1)-XSTRS(2)+XNU*(DEUX*XSTRS(2)-
  656. & XSTRS(1)))*AUX4
  657. VM=(DEUX*XSTRS(2)-XSTRS(1)+XNU*(DEUX*XSTRS(1)-
  658. & XSTRS(2)))*AUX4
  659. WM=XSTRS(3)/(UN+XNU)
  660. *
  661. UF=(DEUX*XSTRS(4)-XSTRS(5)+XNU*(DEUX*XSTRS(5)-
  662. & XSTRS(4)))*AUX4
  663. VF=(DEUX*XSTRS(5)-XSTRS(4)+XNU*(DEUX*XSTRS(4)-
  664. & XSTRS(5)))*AUX4
  665. WF=XSTRS(6)/(UN+XNU)
  666. *
  667. UM=UM*EP1
  668. VM=VM*EP1
  669. WM=WM*EP1
  670. *
  671. UF=UF*EP3*ALPH2
  672. VF=VF*EP3*ALPH2
  673. WF=WF*EP3*ALPH2
  674. *
  675. XXXX=XSTRS(1)*XSTRS(1)+XSTRS(2)*XSTRS(2)
  676. XXX1=XSTRS(4)*XSTRS(4)+XSTRS(5)*XSTRS(5)
  677. XXXA=XXXX*EP1+XXX1*ALPH4*EP3
  678. XXXB=XXXX*EP1+XXX1*ALPH2*EP4
  679. *
  680. YYYY=XSTRS(1)*XSTRS(2)
  681. YYY1=XSTRS(4)*XSTRS(5)
  682. YYYA=YYYY*EP1+YYY1*ALPH4*EP3
  683. YYYB=YYYY*EP1+YYY1*ALPH2*EP4
  684. *
  685. ZZZZ=XSTRS(3)*XSTRS(3)
  686. ZZZ1=XSTRS(6)*XSTRS(6)
  687. ZZZA=ZZZZ*EP1+ZZZ1*ALPH4*EP3
  688. ZZZB=ZZZZ*EP1+ZZZ1*ALPH2*EP4
  689. *
  690. A= CINQ*XXXA - HUIT*YYYA
  691. B= CINQ*YYYA - DEUX*XXXA
  692. C= DETIER*(XXXA-YYYA)+DEUX*ZZZA
  693. D= (A+DEUX*XNU*B)*AUX4 + SIX*ZZZA/(UN+XNU)
  694. *
  695. XNUM=TROIS*YOU*(YOU-YOUTA)
  696. DENOM=DEUX*YOUTA*C + ( YOU - YOUTA ) * D
  697. BETA=XNUM/DENOM
  698. *
  699. DDHOOK(1,1)=DDHOOK(1,1)-BETA*UM*UM
  700. DDHOOK(2,1)=DDHOOK(2,1)-BETA*VM*UM
  701. DDHOOK(3,1)=DDHOOK(3,1)-BETA*WM*UM
  702. *
  703. DDHOOK(4,1)= -BETA*UF*UM
  704. DDHOOK(5,1)= -BETA*VF*UM
  705. DDHOOK(6,1)= -BETA*WF*UM
  706. *
  707. DDHOOK(1,2)=DDHOOK(1,2)-BETA*UM*VM
  708. DDHOOK(2,2)=DDHOOK(2,2)-BETA*VM*VM
  709. DDHOOK(3,2)=DDHOOK(3,2)-BETA*WM*VM
  710. *
  711. DDHOOK(4,2)= -BETA*UF*VM
  712. DDHOOK(5,2)= -BETA*VF*VM
  713. DDHOOK(6,2)= -BETA*WF*VM
  714. *
  715. DDHOOK(1,3)=DDHOOK(1,3)-BETA*UM*WM
  716. DDHOOK(2,3)=DDHOOK(2,3)-BETA*VM*WM
  717. DDHOOK(3,3)=DDHOOK(3,3)-BETA*WM*WM
  718. *
  719. DDHOOK(4,3)= -BETA*UF*WM
  720. DDHOOK(5,3)= -BETA*VF*WM
  721. DDHOOK(6,3)= -BETA*WF*WM
  722. *
  723. DDHOOK(1,4)= -BETA*UM*UF
  724. DDHOOK(2,4)= -BETA*VM*UF
  725. DDHOOK(3,4)= -BETA*WM*UF
  726. *
  727. DDHOOK(4,4)=DDHOOK(4,4)-BETA*UF*UF
  728. DDHOOK(5,4)=DDHOOK(5,4)-BETA*VF*UF
  729. DDHOOK(6,4)=DDHOOK(6,4)-BETA*WF*UF
  730. *
  731. DDHOOK(1,5)= -BETA*UM*VF
  732. DDHOOK(2,5)= -BETA*VM*VF
  733. DDHOOK(3,5)= -BETA*WM*VF
  734. *
  735. DDHOOK(4,5)=DDHOOK(4,5)-BETA*UF*VF
  736. DDHOOK(5,5)=DDHOOK(5,5)-BETA*VF*VF
  737. DDHOOK(6,5)=DDHOOK(6,5)-BETA*WF*VF
  738. *
  739. DDHOOK(1,6)= -BETA*UM*WF
  740. DDHOOK(2,6)= -BETA*VM*WF
  741. DDHOOK(3,6)= -BETA*WM*WF
  742. *
  743. DDHOOK(4,6)=DDHOOK(4,6)-BETA*UF*WF
  744. DDHOOK(5,6)=DDHOOK(5,6)-BETA*VF*WF
  745. DDHOOK(6,6)=DDHOOK(6,6)-BETA*WF*WF
  746. ENDIF
  747. ELSE
  748. IRET=0
  749. ENDIF
  750. ELSE
  751. IRET=0
  752. ENDIF
  753. *
  754. RETURN
  755. END
  756.  
  757.  
  758.  

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