Télécharger dohota.eso

Retour à la liste

Numérotation des lignes :

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

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