Télécharger ccoin0.eso

Retour à la liste

Numérotation des lignes :

  1. C CCOIN0 SOURCE CB215821 18/09/10 21:15:13 9912
  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 ju=1,6
  250. do iu=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. DDA(4,4)=gege
  269. DDA(5,5)=gege
  270. DDA(6,6)=GEGE
  271.  
  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 J=1,NCONT
  276. DO I=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 utilise
  365. * et les contraintes sont dimensionnees a 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 plastifie
  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 J=1,NCONT
  503. DO I=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. W2(I)=0.D0
  522. ENDDO
  523. DO J=1,NCONT
  524. XFLO1=W1(J)
  525. DO I=1,NCONT
  526. W2(I)=W2(I)+XFLO1*DDA(I,J)
  527. ENDDO
  528. ENDDO
  529.  
  530. ELSE
  531. IF(mfr.eq.1.and. ifourb.eq.-2) then
  532. DO I=1,NCONT
  533. W2(I)=0.D0
  534. ENDDO
  535. DO J=1,NCONT
  536. XFLO1=W1(J)
  537. DO I=1,NCONT
  538. W2(I)=W2(I)+XFLO1*DDA(I,J)
  539. ENDDO
  540. ENDDO
  541. else
  542. DO I=1,NCONT
  543. W2(I)=0.D0
  544. ENDDO
  545. DO J=1,NCONT
  546. XFLO1=W1(J)
  547. DO I=1,NCONT
  548. W2(I)=W2(I)+XFLO1*DDAUX(I,J)
  549. ENDDO
  550. ENDDO
  551. endif
  552. ENDIF
  553. COEF=0.D0
  554. DO I=1,NCONT
  555. COEF=COEF+W1(I)*W2(I)
  556. ENDDO
  557.  
  558. C-----------------------------------------------------------------------
  559. C PLASTICITE PARFAITE, ECROUISSAGE ISOTROPE ET CINEMATIQUE ZIEGLER
  560. C-----------------------------------------------------------------------
  561.  
  562. IF(INPLAS.EQ.1.OR.INPLAS.EQ.4.OR.INPLAS.EQ.5
  563. $ .OR.INPLAS.EQ.87) THEN
  564. CALL TRACTI(PENTE,EPST,SIG,EPS,LTRAC,1,IBI)
  565.  
  566. IF(IBI.EQ.1) THEN
  567. KERRE=75
  568. GOTO 1000
  569. ENDIF
  570.  
  571. IF(INPLAS.EQ.1) THEN
  572. RP=0.D0
  573. C=0.D0
  574. ELSE IF(INPLAS.EQ.4) THEN
  575. RP=0.D0
  576. ELSE IF(INPLAS.EQ.5.OR.INPLAS.EQ.87) THEN
  577. RP=PENTE
  578. C=0.D0
  579. ENDIF
  580.  
  581. DENOM=COEF+C+RP
  582. DELTA=PHI/DENOM
  583. DMU=C*DELTA/SEQ
  584.  
  585. DO I=1,NCONT
  586. DSIG(I)=-DELTA*W2(I)
  587. DSPHER1(I)=DMU*SX(I)
  588. ENDDO
  589.  
  590. * Cas des contraintes planes en massif
  591. if(mfr.eq.1.and.ifourb.eq.-2) then
  592.  
  593.  
  594. bb= abs(dsig(3)+ s(3) )
  595. r_z = dsig(3) * cte_cp
  596. sx(3)= sx3in - dsig(3)
  597. sx(1)= sx1in - r_z
  598. sx(2)= sx2in - r_z
  599. SEQ=VONMIS0(SX,NSTRSS,MFR1,IFOURB,EP1,ALFAH)
  600. s(3)= - dsig(3)
  601. s(1)= s1in - r_z
  602. s(2)= s2in - r_z
  603. if( bb.gt.cri0) then
  604. if(iderin.eq.0) then
  605. niter=niter - 1
  606. endif
  607. iderin=iderin+1
  608. if(iderin.gt.50) then
  609. write(ioimp,*) ' probleme dans iterations internes'
  610. KERRE=2
  611. GO TO 1000
  612. endif
  613. go to 10
  614. endif
  615. DMU=C*DELTA/SEQ
  616. DO I=1,NCONT
  617. DSPHER1(I)=DMU*SX(I)
  618. ENDDO
  619. endif
  620. iderin=0
  621. DP=DELTA
  622. DR=RP*DP
  623.  
  624. ELSE
  625.  
  626. C-----------------------------------------------------------------------
  627. C MODELE DE CHABOCHE
  628. C-----------------------------------------------------------------------
  629.  
  630. C---------UNIQUEMENT POUR LES ELEMENTS MASSIFS--------------------------
  631.  
  632. XPRO1=0.D0
  633. XPRO2=0.D0
  634. DO I=1,NCONT
  635. XPRO1=XPRO1+W1(I)*SPHER1(I)
  636. XPRO2=XPRO2+W1(I)*SPHER2(I)
  637. ENDDO
  638.  
  639. FIP=1.D0+(PSI-1.D0)*EXP(-OME*EPST)
  640.  
  641. DENOM=COEF+(A1*C1+A2*C2)*FIP-C1*XPRO1-C2*XPRO2+B*RMmRR
  642. DELTA=PHI/DENOM
  643.  
  644. DO I=1,NCONT
  645. DSIG(I)=-DELTA*W2(I)
  646. DSPHER1(I)=(2.D0*A1*FIP*Z1(I)/3.D0-SPHER1(I))*C1*DELTA
  647. DSPHER2(I)=(2.D0*A2*FIP*Z1(I)/3.D0-SPHER2(I))*C2*DELTA
  648. ENDDO
  649.  
  650. DR=B* RMmRR *DELTA
  651. DP=DELTA
  652. ENDIF
  653.  
  654. RR=RR+DR
  655. EPST=EPST+DP
  656.  
  657. IF(MFR1.EQ.3.OR.MFR1.EQ.9) THEN
  658. IF(IFOURB.GE.1) THEN
  659. DO I=1,3
  660. DSIG(I)=DSIG(I)*EP1
  661. ENDDO
  662. DO I=4,6
  663. DSIG(I)=EP1*EP1*DSIG(I)/(6.D0*WORK(2))
  664. ENDDO
  665. ELSE
  666. DSIG(1)=DSIG(1)*EP1
  667. DSIG(2)=DSIG(2)*EP1
  668. DSIG(3)=EP1*EP1*DSIG(3)/(6.D0*WORK(2))
  669. DSIG(4)=EP1*EP1*DSIG(4)/(6.D0*WORK(2))
  670. ENDIF
  671. ENDIF
  672. C mise a jour des contraintes
  673. DO I=1,NCONT
  674. S(I)=S(I)+DSIG(I)
  675. SPHER1(I)=SPHER1(I)+DSPHER1(I)
  676. SPHER2(I)=SPHER2(I)+DSPHER2(I)
  677. SPHER(I)=SPHER1(I)+SPHER2(I)
  678. SX(I)=S(I)-SPHER(I)
  679. ENDDO
  680. if(ifourb.eq.-2.and.mfr.eq.1) then
  681. s(3)=0.d0
  682. endif
  683.  
  684. SEQ=VONMIS0(SX,NSTRSS,MFR1,IFOURB,EP1,ALFAH)
  685.  
  686. C---------CONTRAINTES PLANES--------------------------------------------
  687.  
  688. IF(IFOURB.EQ.-2) THEN
  689.  
  690. IF(MFR1.EQ.1) THEN
  691. F(1)=(2.D0*SX(1)-SX(2)-SX(3))/3.D0
  692. F(2)=(2.D0*SX(2)-SX(1)-SX(3))/3.D0
  693. F(3)=(2.D0*SX(3)-SX(1)-SX(2))/3.D0
  694. DO I=4,NSTRSS
  695. F(I)=SX(I)
  696. ENDDO
  697. DO I=1,3
  698. W1(I)=1.5D0*F(I)/SEQ
  699. ENDDO
  700. DO I=4,NSTRSS
  701. W1(I)=3.D0*F(I)/SEQ
  702. ENDDO
  703.  
  704. ELSE IF(MFR1.EQ.3.OR.MFR1.EQ.9) THEN
  705. AUX=EP1*EP1*EP1*EP1
  706. W1(1)=(2.D0*SX(1)-SX(2))/(2.D0*SEQ*EP1*EP1)
  707. W1(2)=(2.D0*SX(2)-SX(1))/(2.D0*SEQ*EP1*EP1)
  708. W1(3)=18.D0*ALFAH*(2.D0*SX(3)-SX(4))/(SEQ*AUX)
  709. W1(4)=18.D0*ALFAH*(2.D0*SX(4)-SX(3))/(SEQ*AUX)
  710. ENDIF
  711.  
  712. DO I=1,NSTRSS
  713. DEPSP(I)=DEPSP(I)+DELTA*W1(I)
  714. ENDDO
  715. ENDIF
  716.  
  717. C-----------------------------------------------------------------------
  718. C TEST
  719. C CALCUL DE LA NOUVELLE VALEUR DE PHI
  720. C-----------------------------------------------------------------------
  721. IF(INPLAS.EQ.5.OR.INPLAS.EQ.87) THEN
  722. CALL TRACTI(SI,EPST,SIG,EPS,LTRAC,2,IBI)
  723. C* Modele de CHABOCHE (prise en compte ecrouissage)
  724. ELSE IF (INPLAS.EQ.7 .OR. INPLAS.EQ.12) THEN
  725. RMmRR = (RM - R0) * EXP(-B*EPST)
  726. SI = RM - RMmRR
  727. ELSE
  728. SI=RR+SI0
  729. ENDIF
  730. PHI=SEQ-SI
  731.  
  732. PETI=1.D-7
  733. APHI=ABS(PHI)
  734. APHI0=ABS(PHI0)
  735. TEST=max(PETI*APHI0,XZPREC*100.D0*SEQ)
  736. *sg TEST=PETI*APHI0
  737. *sg write(ioimp,*) 'niter,phi,phi0,si,seq,rmmrr,test=',
  738. *sg $ niter,phi,phi0,si,seq,rmmrr,test
  739. IF(NITER.GT.50) THEN
  740. if(itracb.eq.0) then
  741. itracb=1
  742. go to 2222
  743. endif
  744. KERRE=2
  745. GO TO 1000
  746. ENDIF
  747. IF(APHI.LE.TEST) THEN
  748.  
  749. IF(MFR1.EQ.7) THEN
  750. DO I=1,NCONT
  751. S(I)=S(I)/DIV(I)
  752. ENDDO
  753. ENDIF
  754.  
  755. C---------TOUTES FORMULATIONS SAUF CONTRAINTES PLANES-------------------
  756.  
  757. IF(IFOURB.NE.-2) THEN
  758. DO I=1,NCONT
  759. DS(I)=S(I)-SIGB(I)
  760. ENDDO
  761. CALL EPSIG0(DS,DDEPSE,MFR1,IFOURB,YUNG,XNU,WORK,NSTRSS)
  762. DO I=1,NCONT
  763. DEPSE(I)=DEPST(I)+DDEPSE(I)
  764. DEPSP(I)=DEPST(I)-DEPSE(I)
  765. ENDDO
  766. ENDIF
  767.  
  768. DO I=1,NSTRSS
  769. SIGF(I)=S(I)
  770. DEFP(I)=DEPSP(I)
  771. ENDDO
  772.  
  773. C---------COQUES AVEC CISAILLEMENT TRANSVERSE---------------------------
  774.  
  775. IF(MFR1.EQ.9) THEN
  776. DEFP(7)=0.D0
  777. DEFP(8)=0.D0
  778. SIGF(7)=SIGB(7)
  779. SIGF(8)=SIGB(8)
  780. ENDIF
  781.  
  782. VARF(1)=EPST
  783. IF(INPLAS.EQ.4.OR.INPLAS.EQ.7.OR.INPLAS.EQ.12) THEN
  784. DO I=1,NSTRSS
  785. VARF(I+1)=SPHER1(I)
  786. ENDDO
  787. IF(INPLAS.EQ.12) THEN
  788. DO I=1,NSTRSS
  789. VARF(NSTRSS+1+I)=SPHER2(I)
  790. ENDDO
  791. ENDIF
  792. ENDIF
  793. IF(INPLAS.EQ.87) THEN
  794. DO I=1,NSTRSS
  795. VARF(1+I)=DEPST(I)
  796. ENDDO
  797. ENDIF
  798. KERRE=0
  799. RETURN
  800.  
  801. ELSE
  802. sx1in=sx(1)
  803. sx2in=sx(2)
  804. s1in=s(1)
  805. s2in=s(2)
  806. GOTO 10
  807. ENDIF
  808. C ENDIF
  809.  
  810. 1000 CONTINUE
  811. RETURN
  812. END
  813.  
  814.  
  815.  

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