Télécharger ccoin0.eso

Retour à la liste

Numérotation des lignes :

  1. C CCOIN0 SOURCE GOUNAND 17/09/21 21:15:03 9553
  2.  
  3. SUBROUTINE CCOIN0(wrk52,wrk53,wrk54,wrk2,wrk3,
  4. & IB,IGAU,NBPGAU,LTRAC,IFOURB,iecou)
  5.  
  6. C-----------------------------------------------------------------------
  7. C ECOULEMENT PLASTIQUE POUR UN POINT
  8. C ALGORITHME ORTIZ ET SIMO
  9. C
  10. C EN ENTREE :
  11. C
  12. C SIG0 CONTRAINTES AU DEBUT DU PAS
  13. C DEPST INCREMENT DE DEFORMATIONS TOTALES
  14. C ( THERMIQUE ENLEVEE )
  15. C VAR0 VARIABLES INTERNES DEDUT DU PAS
  16. C VAREX0 VARIABLES EXTERNES DEBUT DU PAS
  17. C VAREXF VARIABLES EXTERNES FIN DU PAS
  18. C XMAT COEFFICIENTS DU MATERIAU
  19. C PRECIS PRECISION POUR ITERATIONS INTERNES
  20. C WORK DES CARACTERISTIQUES
  21. C TRAC COURBE DE TRACTION
  22. C MFR1 INDICE DE FORMULATION
  23. C NSTRSS NOMBRE DE CONTRAINTES CA2000
  24. C INPLAS NUMERO DU MODELE DE PLASTICITE
  25. C DDAUX = MATRICE DE HOOKE ELASTIQUE
  26. C CMATE = NOM DU MATERIAU
  27. C VALMAT= TABLEAU DE CARACTERISTIQUES DU MATERIAU
  28. C VALCAR= TABLEAU DE CARACTERISTIQUES GEOMETRIQUES
  29. C N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE
  30. C N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE
  31. C IFOU = OPTION DE CALCUL
  32. C IB = NUMERO DE L ELEMENT COURANT
  33. C IGAU = NUMERO DU POINT COURANT
  34. C EPAIST= EPAISSEUR
  35. C NBPGAU= NBRE DE POINTS DE GAUSS
  36. C MELE = NUMERO DE L ELEMENT FINI
  37. C NPINT = NBRE DE POINTS D INTEGRATION
  38. C NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES
  39. C NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES
  40. C SECT = SECTION
  41. C LHOOK = TAILLE DE LA MATRICE DE HOOKE
  42. C TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI = TABLEAUX UTILISES
  43. C UTILISES POUR LE CALCUL DE LA MATRICE DE HOOKE
  44. C
  45. C EN SORTIE :
  46. C
  47. C SIGF CONTRAINTES A LA FIN DU PAS
  48. C VARF VARIABLES INTERNES FIN DU PAS
  49. C DEFP INCR. DE DEFORMATIONS PLASTIQUES
  50. C KERRE CODE D'ERREUR
  51. C = 0 SI TOUT OK
  52. C = 99 SI FORMULATION NON DISPONIBLE
  53. C EN PLASTICITE
  54. C = 1 SI DEPS EST NEGATIF
  55. C = 2 SI NOMBRE MAX D'ITERATIONS INTERNES DEPASSE
  56. C
  57. C IFOUR : OPTION DE CALCUL
  58. C
  59. C IFOUR = -3 DEFORMATION PLANE GENERALISEE
  60. C IFOUR = -2 CONTRAINTES PLANES
  61. C IFOUR = -1 DEFORMATIONS PLANES
  62. C IFOUR = 0 AXISYMETRIQUE
  63. C IFOUR = 1 SERIE DE FOURIER
  64. C IFOUR = 2 TRIDIMENSIONNEL
  65. C
  66. C MFR1 : NUMERO DE LA FORMULATION ELEMENT FINI
  67. C
  68. C MFR1 = 1 MASSIF
  69. C MFR1 = 3 COQUE
  70. C MFR1 = 5 COQUE EPAISSE
  71. C MFR1 = 7 POUTRE
  72. C MFR1 = 9 COQUE AVEC CISAILLEMENT TRANSVERSE
  73. C
  74. C INPLAS : NUMERO DU MODELE DE PLASTICITE
  75. C
  76. C INPLAS = 1 PARFAIT
  77. C INPLAS = 4 CINEMATIQUE
  78. C INPLAS = 5 ISOTROPE
  79. C INPLAS = 7 CHABOCHE1
  80. C INPLAS = 12 CHABOCHE2
  81. C
  82. C-----------------------------------------------------------------------
  83. C CONVENTION DE REMPLISSAGE DES MEMOIRES
  84. C-----------------------------------------------------------------------
  85. C
  86. C XMAT(1) MODULE D'YOUNG
  87. C XMAT(2) COEFFICIENT DE POISSON
  88. C
  89. C TRAC(1 A 2*LTRAC) COURBE DE TRACTION
  90. C WORK( " +1) ALFAH POUR COQUES PLASTICITE GLOBALE
  91. C WORK( " +..) DONNEES POUR CRITERE POUTRES GLOBALES
  92. C
  93. C MODELE ISOTROPE
  94. C VAR0(1) EPS*
  95. C
  96. C MODELE CINEMATIQUE LINEAIRE
  97. C VAR0(1) EPS*
  98. C VAR0(2) A VAR0(1+NSTRSS) DEPLACEMENT DE LA SPHERE
  99. C
  100. C MODELE CHABOCHE
  101. C XMAT(5) .... COEFFICIENTS A,C,...
  102. C VAR0(1) EPS*
  103. C VAR0(2) A VAR0(1+NSTRSS) DEPLACEMENT DE LA SPHERE 1
  104. C VAR0(2+NSTRSS) A VAR0(1+2*NSTRSS) " " " " 2
  105. C
  106. C-----------------------------------------------------------------------
  107. C 20/09/2017 : modif SG critere de convergence trop serre
  108. C TEST=PETI*APHI0 + utilisation CCREEL
  109. C voir aussi ecoin0.eso, syco12.eso
  110.  
  111. IMPLICIT INTEGER(I-N)
  112. IMPLICIT REAL*8(A-H,O-Z)
  113. -INC CCOPTIO
  114. -INC CCREEL
  115. -INC DECHE
  116.  
  117. SEGMENT IECOU
  118. INTEGER icow1,icow2,icow3,icow4,icow5,icow6,icow7,
  119. 1 icow8,icow9,icow10,icow11,icow12,icow13,icow14,icow15,icow16,
  120. 2 icow17,icow18,icow19,icow20,icow21,icow22,icow23,icow24,
  121. 3 icow25,icow26,icow27,icow28,icow29,icow30,icow31,
  122. 4 icow32,icow33,NSTRSS,MFR1, NBGMAT,NELMAT,icow38,
  123. 5 icow39,icow40,icow41,icow42,icow43,icow44
  124. INTEGER icow45,icow46,icow47,icow48,icow49,icow50,
  125. . icow51,icow52,icow53,icow54,icow55,icow56
  126. . icow57,icow58
  127. ENDSEGMENT
  128. *
  129. SEGMENT WRK2
  130. REAL*8 TRAC(LTRAC)
  131. ENDSEGMENT
  132. *
  133. SEGMENT WRK3
  134. REAL*8 WORK(LW),WORK2(LW2)
  135. ENDSEGMENT
  136.  
  137. DIMENSION SIG(130),EPS(130)
  138. DIMENSION S(8),SX(8),DS(8),DSIG(8),SPHER(8),SPHER1(8),SPHER2(8)
  139. DIMENSION DSPHER1(8),DSPHER2(8),DEPSE(8),DEPSP(8),DDEPSE(8)
  140. DIMENSION F(8),W1(8),W2(8),SIGB(8),Z1(8),DIV(8),DDA(8,8)
  141. DIMENSION CRIGI(12)
  142.  
  143. do jj = 1,8
  144. sx(jj) = 0.d0
  145. enddo
  146. C---------COQUES AVEC CT------------------------------------------------
  147. C ON NE TRAVAILLE QUE SUR LES 6 PREMIERES COMPOSANTES
  148. IF(MFR1.EQ.9) THEN
  149. NCONT=6
  150. ELSE
  151. NCONT=NSTRSS
  152. ENDIF
  153. itracb=0
  154. 2222 continue
  155.  
  156. C-----------------------------------------------------------------------
  157. DO I=1,NSTRSS
  158. S(I)=0.D0
  159. SPHER(I)=0.D0
  160. SPHER1(I)=0.D0
  161. SPHER2(I)=0.D0
  162. ENDDO
  163. KERRE=0
  164. YUNG=XMAT(1)
  165. XNU=XMAT(2)
  166.  
  167. C---------CARACTERISTIQUES GEOMETRIQUES---------------------------------
  168. C
  169. C COQUES
  170. C
  171. ALFAH=1.D0
  172. IF(MFR1.EQ.3.OR.MFR1.EQ.5.OR.MFR1.EQ.9) THEN
  173. EP1=WORK(1)
  174. IF(MFR1.NE.5) ALFAH=WORK(2)**2
  175. ENDIF
  176.  
  177. C---------COEFFICIENTS CHABOCHE-----------------------------------------
  178.  
  179. IF(INPLAS.EQ.7) THEN
  180. A1=XMAT(5)
  181. C1=XMAT(6)
  182. R0=XMAT(7)
  183. PSI=XMAT(8)
  184. OME=XMAT(9)
  185. RM=XMAT(10)
  186. B=XMAT(11)
  187. A2=0.D0
  188. C2=0.D0
  189. ELSE IF(INPLAS.EQ.12) THEN
  190. A1=XMAT(5)
  191. C1=XMAT(6)
  192. A2=XMAT(7)
  193. C2=XMAT(8)
  194. R0=XMAT(9)
  195. PSI=XMAT(10)
  196. OME=XMAT(11)
  197. RM=XMAT(12)
  198. B=XMAT(13)
  199. ELSE
  200. DO I=1,LTRAC
  201. SIG(I)=TRAC(2*I-1)
  202. EPS(I)=TRAC(2*I)
  203. ENDDO
  204. ENDIF
  205.  
  206. EPST=VAR0(1)
  207. C---------ECROUISSAGE CINEMATIQUE---------------------------------------
  208.  
  209. IF(INPLAS.EQ.4.OR.INPLAS.EQ.7.OR.INPLAS.EQ.12) THEN
  210. DO I=1,NSTRSS
  211. SPHER1(I)=VAR0(I+1)
  212. ENDDO
  213. IF(INPLAS.EQ.12) THEN
  214. DO I=1,NSTRSS
  215. SPHER2(I)=VAR0(NSTRSS+1+I)
  216. ENDDO
  217. ENDIF
  218. DO I=1,NSTRSS
  219. SPHER(I)=SPHER1(I)+SPHER2(I)
  220. ENDDO
  221. C-----------------------------------------------------------------------
  222. C PREDICTEUR ELASTIQUE
  223. C S : CONTRAINTE
  224. C SPHER : VARIABLE D'ECROUISSAGE CINEMATIQUE
  225. C SX = S - X
  226. C-----------------------------------------------------------------------
  227.  
  228. * en elastique non lineaire on annule les contraintes initiales
  229. * mais on cumule les epsilons elastiques
  230. ELSE IF(INPLAS.EQ.87) THEN
  231. EPST=0.D0
  232. DO I=1,NSTRSS
  233. SIG0(I)=0.D0
  234. DEPST(I)=DEPST(I) + VAR0(I+1)
  235. ENDDO
  236. ENDIF
  237. CALL CALSIG(DEPST,DDAUX,NSTRSS,CMATE,VALMAT,VALCAR,
  238. & N2EL,N2PTEL,MFR1,IFOURB,IB,IGAU,EPAIST,
  239. & NBPGAU,MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR,
  240. & XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT,IRTD)
  241.  
  242. IF(IRTD.NE.1) THEN
  243. KERRE=69
  244. GOTO 1000
  245. ENDIF
  246.  
  247. IF (mfr.eq.1.and. ifourb.eq.-2) then
  248. * en cas de contraintes planes on repasse en 3D
  249. do iu=1,6
  250. do ju=1,6
  251. DDA(iu,ju)=0.d0
  252. enddo
  253. enddo
  254. cte_cp = xnu / (1.d0 - xnu)
  255. aux= YUNG / ((1.d0+xnu)*(1.d0-2.d0*xnu))
  256. aux1= aux * xnu
  257. aux2= aux * (1.d0-xnu)
  258. gege = Yung / (2.d0 *(1.d0 +xnu))
  259. DDA(1,1)=AUX2
  260. DDA(2,1)=AUX1
  261. DDA(1,2)=AUX1
  262. DDA(2,2)=AUX2
  263. DDA(3,3)=aux2
  264. DDA(1,3)=aux1
  265. DDA(2,3)=aux1
  266. DDA(3,1)=aux1
  267. DDA(3,2)=aux1
  268.  
  269. DDA(4,4)=gege
  270. DDA(5,5)=gege
  271. DDA(6,6)=GEGE
  272. ELSE IF ((MFR.EQ.3.AND.NPINT.EQ.0).OR.MFR.EQ.9) THEN
  273. AUX=YUNG/(1.D0-XNU*XNU)
  274. AUX1=AUX*XNU
  275. DO I=1,NCONT
  276. DO J=1,NCONT
  277. DDAUX(I,J)=0.D0
  278. ENDDO
  279. ENDDO
  280. C
  281. C CAS TRIDIMENSIONNEL ET FOURIER
  282. C
  283. IF(IFOURB.EQ.2.OR.IFOURB.EQ.1) THEN
  284.  
  285. GEGE=0.5D0*YUNG/(1.D0+XNU)
  286. DDAUX(1,1)=AUX
  287. DDAUX(2,1)=AUX1
  288. DDAUX(1,2)=AUX1
  289. DDAUX(2,2)=AUX
  290. DDAUX(3,3)=GEGE
  291. DDAUX(4,4)=AUX
  292. DDAUX(5,4)=AUX1
  293. DDAUX(4,5)=AUX1
  294. DDAUX(5,5)=AUX
  295. DDAUX(6,6)=GEGE
  296. C
  297. C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES
  298. C
  299. ELSE IF(IFOURB.EQ.0.OR.IFOURB.EQ.-1.OR.IFOURB.EQ.-3) THEN
  300.  
  301. DDAUX(1,1)=AUX
  302. DDAUX(2,1)=AUX1
  303. DDAUX(1,2)=AUX1
  304. DDAUX(2,2)=AUX
  305. DDAUX(3,3)=AUX
  306. DDAUX(4,3)=AUX1
  307. DDAUX(3,4)=AUX1
  308. DDAUX(4,4)=AUX
  309. C
  310. C CAS CONTRAINTES PLANES
  311. C
  312. ELSE IF(IFOURB.EQ.-2) THEN
  313. DDAUX(1,1)=YUNG
  314. DDAUX(3,3)=YUNG
  315. ENDIF
  316. ENDIF
  317. *
  318. DO I=1,NSTRSS
  319. S(I)=SIG0(I)+DSIGT(I)
  320. SIGB(I)=S(I)
  321. SX(I)=S(I)-SPHER(I)
  322. ENDDO
  323.  
  324. C---------CAS DES POUTRES-----------------------------------------------
  325.  
  326. IF(MFR1.EQ.7) THEN
  327. DIV(1)=1.D0/WORK(4)
  328. DIV(2)=1.D0
  329. DIV(3)=1.D0
  330. DIV(4)=WORK(10)/WORK(1)
  331. DIV(5)=WORK(11)/WORK(2)
  332. DIV(6)=WORK(12)/WORK(3)
  333. IF(DIV(4).EQ.0.D0) DIV(4)=1.D-10/SQRT(WORK(1)*WORK(4))
  334. IF(DIV(5).EQ.0.D0) DIV(5)=1.D-10/SQRT(WORK(2)*WORK(4))
  335. IF(DIV(6).EQ.0.D0) DIV(6)=1.D-10/SQRT(WORK(3)*WORK(4))
  336. DO I=1,NCONT
  337. S(I)=S(I)*DIV(I)
  338. SX(I)=SX(I)*DIV(I)
  339. ENDDO
  340. ENDIF
  341.  
  342. C-----------------------------------------------------------------------
  343. C CALCUL DE LA LIMITE ELASTIQUE SI
  344. C-----------------------------------------------------------------------
  345.  
  346. IF(INPLAS.EQ.1.OR.INPLAS.EQ.4) THEN
  347. SI=TRAC(1)
  348. ELSE IF(INPLAS.EQ.5.OR.INPLAS.EQ.87) THEN
  349. CALL TRACTI(SI,EPST,SIG,EPS,LTRAC,2,IBI)
  350. IF(IBI.EQ.1) THEN
  351. KERRE=75
  352. GOTO 1000
  353. ENDIF
  354. C* Modele de CHABOCHE (prise en compte ecrouissage)
  355. ELSE IF (INPLAS.EQ.7 .OR. INPLAS.EQ.12) THEN
  356. RMmRR = (RM - R0) * EXP(-B*EPST)
  357. SI = RM - RMmRR
  358. ENDIF
  359.  
  360. C-----------------------------------------------------------------------
  361. C CALCUL DE LA CONTRAINTE EQUIVALENTE SEQ
  362. C-----------------------------------------------------------------------
  363. * attention en contraintes planes on se declare en 3D
  364. * rien besoin de faire dans vonmis0 car ifourb n'est pas utilisé
  365. * et les contraintes sont dimensionnées à 6
  366. SEQ=VONMIS0(SX,NSTRSS,MFR1,IFOURB,EP1,ALFAH)
  367.  
  368. C-----------------------------------------------------------------------
  369. C LE CRITERE EST-IL VERIFIE
  370. C-----------------------------------------------------------------------
  371. PHI=SEQ-SI
  372. NITER=0
  373. PETI=1.1D0*0.5D0*PRECIS*SEQ
  374. *sg write(ioimp,*) 'niter,phi,si,seq,peti,precis=',
  375. *sg $ niter,phi,si,seq,peti,precis
  376. CALL EPSPRE(SEQ,SI,PETI,ITRY)
  377. IF((ITRY.EQ.1).OR.(SEQ.LE.SI)) THEN
  378. * rien a faire on n'a pas plastifié
  379. IF(MFR1.EQ.7) THEN
  380. DO I=1,NCONT
  381. S(I)=S(I)/DIV(I)
  382. ENDDO
  383. ENDIF
  384. DO I=1,NCONT
  385. SIGF(I)=S(I)
  386. DEFP(I)=0.D0
  387. ENDDO
  388. IF(MFR1.EQ.9) THEN
  389. DEFP(7)=0.D0
  390. DEFP(8)=0.D0
  391. SIGF(7)=S(7)
  392. SIGF(8)=S(8)
  393. ENDIF
  394.  
  395. VARF(1)=VAR0(1)
  396. IF(INPLAS.EQ.4.OR.INPLAS.EQ.7) THEN
  397. DO I=1,NSTRSS
  398. VARF(I+1)=VAR0(I+1)
  399. ENDDO
  400. ELSE IF(INPLAS.EQ.12) THEN
  401. DO I=1,2*NSTRSS
  402. VARF(I+1)=VAR0(I+1)
  403. ENDDO
  404. ELSE IF(INPLAS.EQ.87) THEN
  405. DO I=1,NSTRSS
  406. VARF(I+1)=DEPST(I)
  407. ENDDO
  408. ENDIF
  409. RETURN
  410. ENDIF
  411.  
  412. C-----------------------------------------------------------------------
  413. C ON A PLASTIFIE
  414. C-----------------------------------------------------------------------
  415. cri0= si * 1.D-8
  416. PHI0=PHI
  417. SI0=SI
  418. RR=0.D0
  419.  
  420. DO I=1,NCONT
  421. DSIG(I)=0.D0
  422. DEPSP(I)=0.D0
  423. DSPHER1(I)=0.D0
  424. DSPHER2(I)=0.D0
  425. ENDDO
  426.  
  427. C-----------------------------------------------------------------------
  428. C DEBUT DE LA BOUCLE D'ITERATIONS INTERNES
  429. C-----------------------------------------------------------------------
  430. sx1in=sx(1)
  431. sx2in=sx(2)
  432. sx3in= sx(3)
  433. s1in=s(1)
  434. s2in=s(2)
  435.  
  436. iderin=0
  437. 10 CONTINUE
  438. NITER=NITER+1
  439.  
  440. phi= seq - si
  441.  
  442. C---------CALCUL DE W1=DF/D(SIGMA)--------------------------------------
  443.  
  444. C---------ELEMENTS MASSIFS----------------------------------------------
  445.  
  446. IF(MFR1.EQ.1) THEN
  447.  
  448. F(1)=(2.D0*SX(1)-SX(2)-SX(3))/3.D0
  449. F(2)=(2.D0*SX(2)-SX(1)-SX(3))/3.D0
  450. F(3)=(2.D0*SX(3)-SX(1)-SX(2))/3.D0
  451. DO I=4,NSTRSS
  452. F(I)=SX(I)
  453. ENDDO
  454. DO I=1,3
  455. W1(I)=1.5D0*F(I)/SEQ
  456. Z1(I)=W1(I)
  457. ENDDO
  458. DO I=4,NCONT
  459. W1(I)=3.D0*F(I)/SEQ
  460. Z1(I)=1.5D0*F(I)/SEQ
  461. ENDDO
  462.  
  463. C---------COQUES MINCES-------------------------------------------------
  464.  
  465. ELSE IF(MFR1.EQ.3.OR.MFR1.EQ.9) THEN
  466.  
  467. IF(IFOURB.GE.1) THEN
  468. W1(1)=(2.D0*SX(1)-SX(2))/(2.D0*SEQ*EP1)
  469. W1(2)=(2.D0*SX(2)-SX(1))/(2.D0*SEQ*EP1)
  470. W1(3)=3.D0*SX(3)/(SEQ*EP1)
  471. W1(4)=3.D0*WORK(2)*(2.D0*SX(4)-SX(5))/(SEQ*EP1*EP1)
  472. W1(5)=3.D0*WORK(2)*(2.D0*SX(5)-SX(4))/(SEQ*EP1*EP1)
  473. W1(6)=18.D0*WORK(2)*SX(6)/(SEQ*EP1*EP1)
  474. ELSE
  475. W1(1)=(2.D0*SX(1)-SX(2))/(2.D0*SEQ*EP1)
  476. W1(2)=(2.D0*SX(2)-SX(1))/(2.D0*SEQ*EP1)
  477. W1(3)=3.D0*WORK(2)*(2.D0*SX(3)-SX(4))/(SEQ*EP1*EP1)
  478. W1(4)=3.D0*WORK(2)*(2.D0*SX(4)-SX(3))/(SEQ*EP1*EP1)
  479. ENDIF
  480.  
  481.  
  482. C---------COQUES EPAISSES-----------------------------------------------
  483. ELSE IF(MFR1.EQ.5) THEN
  484. F(1)=(2.D0*SX(1)-SX(2))/3.D0
  485. F(2)=(2.D0*SX(2)-SX(1))/3.D0
  486. DO I=3,5
  487. F(I)=SX(I)
  488. ENDDO
  489. DO I=1,2
  490. W1(I)=1.5D0*F(I)/SEQ
  491. Z1(I)=W1(I)
  492. ENDDO
  493. DO I=3,5
  494. W1(I)=3.D0*F(I)/SEQ
  495. Z1(I)=1.5D0*F(I)/SEQ
  496. ENDDO
  497.  
  498. C---------POUTRES-------------------------------------------------------
  499.  
  500. ELSE IF(MFR1.EQ.7) THEN
  501.  
  502. DO I=1,NCONT
  503. DO J=1,NCONT
  504. DDA(I,J)=0.D0
  505. ENDDO
  506. ENDDO
  507. DDA(1,1)=YUNG
  508. DDA(4,4)=0.5D0*YUNG/(1.D0+XNU)
  509. DDA(5,5)=YUNG
  510. DDA(6,6)=YUNG
  511. W1(1)=SX(1)/SEQ
  512. W1(2)=0.D0
  513. W1(3)=0.D0
  514. W1(4)=SX(4)/SEQ
  515. W1(5)=SX(5)/SEQ
  516. W1(6)=SX(6)/SEQ
  517. ENDIF
  518.  
  519. IF(MFR1.EQ.7) THEN
  520. DO I=1,NCONT
  521. r_z = 0.D0
  522. DO J=1,NCONT
  523. r_z=r_z+DDA(I,J)*W1(J)
  524. ENDDO
  525. W2(I)=r_z
  526. ENDDO
  527. ELSE
  528. IF(mfr.eq.1.and. ifourb.eq.-2) then
  529. DO I=1,NCONT
  530. r_z = 0.D0
  531. DO J=1,NCONT
  532. r_z=r_z+DDA(I,J)*W1(J)
  533. ENDDO
  534. W2(I)=r_z
  535. ENDDO
  536. else
  537. DO I=1,NCONT
  538. r_z = 0.D0
  539. DO J=1,NCONT
  540. r_z=r_z+DDAUX(I,J)*W1(J)
  541. ENDDO
  542. W2(I)=r_z
  543. ENDDO
  544. endif
  545. ENDIF
  546. COEF=0.D0
  547. DO I=1,NCONT
  548. COEF=COEF+W1(I)*W2(I)
  549. ENDDO
  550.  
  551. C-----------------------------------------------------------------------
  552. C PLASTICITE PARFAITE, ECROUISSAGE ISOTROPE ET CINEMATIQUE ZIEGLER
  553. C-----------------------------------------------------------------------
  554.  
  555. IF(INPLAS.EQ.1.OR.INPLAS.EQ.4.OR.INPLAS.EQ.5
  556. $ .OR.INPLAS.EQ.87) THEN
  557. CALL TRACTI(PENTE,EPST,SIG,EPS,LTRAC,1,IBI)
  558.  
  559. IF(IBI.EQ.1) THEN
  560. KERRE=75
  561. GOTO 1000
  562. ENDIF
  563.  
  564. IF(INPLAS.EQ.1) THEN
  565. RP=0.D0
  566. C=0.D0
  567. ELSE IF(INPLAS.EQ.4) THEN
  568. RP=0.D0
  569. ELSE IF(INPLAS.EQ.5.OR.INPLAS.EQ.87) THEN
  570. RP=PENTE
  571. C=0.D0
  572. ENDIF
  573.  
  574. DENOM=COEF+C+RP
  575. DELTA=PHI/DENOM
  576. DMU=C*DELTA/SEQ
  577.  
  578. DO I=1,NCONT
  579. DSIG(I)=-DELTA*W2(I)
  580. DSPHER1(I)=DMU*SX(I)
  581. ENDDO
  582.  
  583. * Cas des contraintes planes en massif
  584. if(mfr.eq.1.and.ifourb.eq.-2) then
  585.  
  586.  
  587. bb= abs(dsig(3)+ s(3) )
  588. r_z = dsig(3) * cte_cp
  589. sx(3)= sx3in - dsig(3)
  590. sx(1)= sx1in - r_z
  591. sx(2)= sx2in - r_z
  592. SEQ=VONMIS0(SX,NSTRSS,MFR1,IFOURB,EP1,ALFAH)
  593. s(3)= - dsig(3)
  594. s(1)= s1in - r_z
  595. s(2)= s2in - r_z
  596. if( bb.gt.cri0) then
  597. if(iderin.eq.0) then
  598. niter=niter - 1
  599. endif
  600. iderin=iderin+1
  601. if(iderin.gt.50) then
  602. write(ioimp,*) ' probleme dans iterations internes'
  603. KERRE=2
  604. GO TO 1000
  605. endif
  606. go to 10
  607. endif
  608. DMU=C*DELTA/SEQ
  609. DO I=1,NCONT
  610. DSPHER1(I)=DMU*SX(I)
  611. ENDDO
  612. endif
  613. iderin=0
  614. DP=DELTA
  615. DR=RP*DP
  616.  
  617. ELSE
  618.  
  619. C-----------------------------------------------------------------------
  620. C MODELE DE CHABOCHE
  621. C-----------------------------------------------------------------------
  622.  
  623. C---------UNIQUEMENT POUR LES ELEMENTS MASSIFS--------------------------
  624.  
  625. XPRO1=0.D0
  626. XPRO2=0.D0
  627. DO I=1,NCONT
  628. XPRO1=XPRO1+W1(I)*SPHER1(I)
  629. XPRO2=XPRO2+W1(I)*SPHER2(I)
  630. ENDDO
  631.  
  632. FIP=1.D0+(PSI-1.D0)*EXP(-OME*EPST)
  633.  
  634. DENOM=COEF+(A1*C1+A2*C2)*FIP-C1*XPRO1-C2*XPRO2+B*RMmRR
  635. DELTA=PHI/DENOM
  636.  
  637. DO I=1,NCONT
  638. DSIG(I)=-DELTA*W2(I)
  639. DSPHER1(I)=(2.D0*A1*FIP*Z1(I)/3.D0-SPHER1(I))*C1*DELTA
  640. DSPHER2(I)=(2.D0*A2*FIP*Z1(I)/3.D0-SPHER2(I))*C2*DELTA
  641. ENDDO
  642.  
  643. DR=B* RMmRR *DELTA
  644. DP=DELTA
  645. ENDIF
  646.  
  647. RR=RR+DR
  648. EPST=EPST+DP
  649.  
  650. IF(MFR1.EQ.3.OR.MFR1.EQ.9) THEN
  651. IF(IFOURB.GE.1) THEN
  652. DO I=1,3
  653. DSIG(I)=DSIG(I)*EP1
  654. ENDDO
  655. DO I=4,6
  656. DSIG(I)=EP1*EP1*DSIG(I)/(6.D0*WORK(2))
  657. ENDDO
  658. ELSE
  659. DSIG(1)=DSIG(1)*EP1
  660. DSIG(2)=DSIG(2)*EP1
  661. DSIG(3)=EP1*EP1*DSIG(3)/(6.D0*WORK(2))
  662. DSIG(4)=EP1*EP1*DSIG(4)/(6.D0*WORK(2))
  663. ENDIF
  664. ENDIF
  665. C mise à jour des contraintes
  666. DO I=1,NCONT
  667. S(I)=S(I)+DSIG(I)
  668. SPHER1(I)=SPHER1(I)+DSPHER1(I)
  669. SPHER2(I)=SPHER2(I)+DSPHER2(I)
  670. SPHER(I)=SPHER1(I)+SPHER2(I)
  671. SX(I)=S(I)-SPHER(I)
  672. ENDDO
  673. if(ifourb.eq.-2.and.mfr.eq.1) then
  674. s(3)=0.d0
  675. endif
  676.  
  677. SEQ=VONMIS0(SX,NSTRSS,MFR1,IFOURB,EP1,ALFAH)
  678.  
  679. C---------CONTRAINTES PLANES--------------------------------------------
  680.  
  681. IF(IFOURB.EQ.-2) THEN
  682.  
  683. IF(MFR1.EQ.1) THEN
  684. F(1)=(2.D0*SX(1)-SX(2)-SX(3))/3.D0
  685. F(2)=(2.D0*SX(2)-SX(1)-SX(3))/3.D0
  686. F(3)=(2.D0*SX(3)-SX(1)-SX(2))/3.D0
  687. DO I=4,NSTRSS
  688. F(I)=SX(I)
  689. ENDDO
  690. DO I=1,3
  691. W1(I)=1.5D0*F(I)/SEQ
  692. ENDDO
  693. DO I=4,NSTRSS
  694. W1(I)=3.D0*F(I)/SEQ
  695. ENDDO
  696.  
  697. ELSE IF(MFR1.EQ.3.OR.MFR1.EQ.9) THEN
  698. AUX=EP1*EP1*EP1*EP1
  699. W1(1)=(2.D0*SX(1)-SX(2))/(2.D0*SEQ*EP1*EP1)
  700. W1(2)=(2.D0*SX(2)-SX(1))/(2.D0*SEQ*EP1*EP1)
  701. W1(3)=18.D0*ALFAH*(2.D0*SX(3)-SX(4))/(SEQ*AUX)
  702. W1(4)=18.D0*ALFAH*(2.D0*SX(4)-SX(3))/(SEQ*AUX)
  703. ENDIF
  704.  
  705. DO I=1,NSTRSS
  706. DEPSP(I)=DEPSP(I)+DELTA*W1(I)
  707. ENDDO
  708. ENDIF
  709.  
  710. C-----------------------------------------------------------------------
  711. C TEST
  712. C CALCUL DE LA NOUVELLE VALEUR DE PHI
  713. C-----------------------------------------------------------------------
  714. IF(INPLAS.EQ.5.OR.INPLAS.EQ.87) THEN
  715. CALL TRACTI(SI,EPST,SIG,EPS,LTRAC,2,IBI)
  716. C* Modele de CHABOCHE (prise en compte ecrouissage)
  717. ELSE IF (INPLAS.EQ.7 .OR. INPLAS.EQ.12) THEN
  718. RMmRR = (RM - R0) * EXP(-B*EPST)
  719. SI = RM - RMmRR
  720. ELSE
  721. SI=RR+SI0
  722. ENDIF
  723. PHI=SEQ-SI
  724.  
  725. PETI=1.D-7
  726. APHI=ABS(PHI)
  727. APHI0=ABS(PHI0)
  728. TEST=max(PETI*APHI0,XZPREC*100.D0*SEQ)
  729. *sg TEST=PETI*APHI0
  730. *sg write(ioimp,*) 'niter,phi,phi0,si,seq,rmmrr,test=',
  731. *sg $ niter,phi,phi0,si,seq,rmmrr,test
  732. IF(NITER.GT.50) THEN
  733. if(itracb.eq.0) then
  734. itracb=1
  735. go to 2222
  736. endif
  737. KERRE=2
  738. GO TO 1000
  739. ENDIF
  740. IF(APHI.LE.TEST) THEN
  741.  
  742. IF(MFR1.EQ.7) THEN
  743. DO I=1,NCONT
  744. S(I)=S(I)/DIV(I)
  745. ENDDO
  746. ENDIF
  747.  
  748. C---------TOUTES FORMULATIONS SAUF CONTRAINTES PLANES-------------------
  749.  
  750. IF(IFOURB.NE.-2) THEN
  751. DO I=1,NCONT
  752. DS(I)=S(I)-SIGB(I)
  753. ENDDO
  754. CALL EPSIG0(DS,DDEPSE,MFR1,IFOURB,YUNG,XNU,WORK,NSTRSS)
  755. DO I=1,NCONT
  756. DEPSE(I)=DEPST(I)+DDEPSE(I)
  757. DEPSP(I)=DEPST(I)-DEPSE(I)
  758. ENDDO
  759. ENDIF
  760.  
  761. DO I=1,NSTRSS
  762. SIGF(I)=S(I)
  763. DEFP(I)=DEPSP(I)
  764. ENDDO
  765.  
  766. C---------COQUES AVEC CISAILLEMENT TRANSVERSE---------------------------
  767.  
  768. IF(MFR1.EQ.9) THEN
  769. DEFP(7)=0.D0
  770. DEFP(8)=0.D0
  771. SIGF(7)=SIGB(7)
  772. SIGF(8)=SIGB(8)
  773. ENDIF
  774.  
  775. VARF(1)=EPST
  776. IF(INPLAS.EQ.4.OR.INPLAS.EQ.7.OR.INPLAS.EQ.12) THEN
  777. DO I=1,NSTRSS
  778. VARF(I+1)=SPHER1(I)
  779. ENDDO
  780. IF(INPLAS.EQ.12) THEN
  781. DO I=1,NSTRSS
  782. VARF(NSTRSS+1+I)=SPHER2(I)
  783. ENDDO
  784. ENDIF
  785. ENDIF
  786. IF(INPLAS.EQ.87) THEN
  787. DO I=1,NSTRSS
  788. VARF(1+I)=DEPST(I)
  789. ENDDO
  790. ENDIF
  791. KERRE=0
  792. RETURN
  793.  
  794. ELSE
  795. sx1in=sx(1)
  796. sx2in=sx(2)
  797. s1in=s(1)
  798. s2in=s(2)
  799. GOTO 10
  800. ENDIF
  801. C ENDIF
  802.  
  803. 1000 CONTINUE
  804. RETURN
  805. END
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  

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