Télécharger dohota.eso

Retour à la liste

Numérotation des lignes :

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

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