Download rouss.eso

Back to the list

   1 : C ROUSS     SOURCE    AS218369  09/12/01    21:15:47     6561           
   2 :        SUBROUTINE ROUSS(DEPST,NSTRS,MFR1,IB,IGAU,
   3 :      1 DSIGT,NCOMAT,SIG0,VAR0,XMAT,XCAR,NVARI,ICARA,
   4 :      2 SIGF,VARF,DEFP,TRAC,KERRE,necou) 
   5 : *
   6 : *_________________________________________________________________     
   7 : *                                                              
   8 : *                                                                
   9 : *    ENTREES :                                                   
  10 : *    ---------                                                   
  11 : *                                                                
  12 : * DEPST = INCREMENT DE DEFORMATIONS TOTALES
  13 : * NSTRS = NBRE DE COMPOSANTES DES DEFORMATIONS
  14 : * NCOMAT= NBRE DE CARACTERISTIQUES MECANIQUES DU MATERIAU 
  15 : * MFR1  = NUMERO DE LA FORMULATION
  16 : * IB    = NUMERO DE L ELEMENT COURANT
  17 : * IGAU  = NUMERO DU POINT COURANT
  18 : * NVARI = NBRE DE VARIABLES INTERNES 
  19 : * SIG0(NSTRS) = CONTRAINTES AU DEBUT DU PAS D'INTEGRATION 
  20 : * VAR0(NVARI) = VARIABLES INTERNES AU DEBUT DU PAS DE TEMPS 
  21 : * XMAT(NCOMAT) = CARACTERISTIQUES MECANIQUES DU MATERIAU  
  22 : * ICARA = NBRE DE CARACTERISTIQUES GEOMETRIQUES DES ELEMENTS FINIS 
  23 : * XCARA(ICARA) = CARACTERISTIQUES GEOMETRIQUES DES ELEMENTS FINIS 
  24 : * TRAC = COURBE DE TRACTION NON ENDOMMAGEE  
  25 : *                                                               
  26 : *    SORTIE :                                            
  27 : *    -------- 
  28 : *
  29 : * SIGF(NSTRS) = CONTRAINTES FINALES      
  30 : * VARF(NVARI) = VARIALES INTERNES A LA FIN DU PAS D'INTEGRATION 
  31 : * DEFP(NSTRS) = INCREMENT DE DEFORMATION PLASTIQUE A LA FIN 
  32 : *               DU PAS D'INTEGRATION 
  33 : * ============================================================
  34 : *       ICI IL FAUT PROGRAMMER EN FORTRAN PUR
  35 : *=============================================================       
  36 : *
  37 :       IMPLICIT INTEGER(I-N)
  38 :       IMPLICIT REAL*8(A-H,O-Z)   
  39 : *
  40 : -INC CCOPTIO  
  41 : *
  42 :        SEGMENT NECOU
  43 : *      COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  44 :        INTEGER NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  45 :      . ITYP,IFOURB,IFLUAG,
  46 :      . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  47 :      . JFLUAG,KFLUAG,LFLUAG,
  48 :      . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF
  49 :       ENDSEGMENT 
  50 : C      COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  51 : C     . ITYP,IFOURB,IFLUAG,
  52 : C     . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  53 : C     . JFLUAG,KFLUAG,LFLUAG,
  54 : C     . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF
  55 : *
  56 :       DIMENSION SIG0(*),DEPST(*),VAR0(*),XMAT(*),XCAR(*),SIGF(*), 
  57 :      &          VARF(*),DEFP(*),DSIGT(*),TRAC(*)        
  58 :       DIMENSION RDEPS0(6) 
  59 :       DIMENSION RSIG0(6),RDEPS(6),RSIGF(6),RDEFP(6),RDIGT(6)  
  60 :       DIMENSION DEVT(6),SIGT(6),DEFT(6),SIGT1(6)     
  61 : *  
  62 : *  Adaptation de l'option de calcul vers le 3D massif de SIG0 a RSIG0
  63 : *====================================================================
  64 : * 
  65 : 
  66 : *       IF (MFR1 .EQ. 1 .OR. MFR1 .EQ. 31)  THEN
  67 : * as :
  68 :       IF (MFR1 .EQ. 1 .OR. MFR1 .EQ. 31.OR.MFR1.EQ.63)  THEN
  69 : *---> 1 formulation massive
  70 : *---> 2 formulation quasi incompressible
  71 : *---> MASSIF 3D 
  72 : *
  73 :         IF (NSTRS .EQ. 6) THEN
  74 :           DO 110 I=1,NSTRS
  75 :             RSIG0(I)=SIG0(I)
  76 :             RDEPS0(I)=DEPST(I)  
  77 :  110      CONTINUE
  78 :         ELSE IF ( NSTRS .EQ. 4 .AND. ((IFOUR .EQ. 0) 
  79 :      &    .OR.(IFOUR .EQ. -1).OR.(IFOUR.EQ.-2))) THEN
  80 : *
  81 : *---> Calcul en mode deformations planes ou axisymetrique
  82 : *     ou contraintes planes 
  83 : *
  84 :           DO 115 I=1,NSTRS
  85 :             RSIG0(I)=SIG0(I)
  86 :             RDEPS0(I)=DEPST(I)  
  87 :  115      CONTINUE       
  88 :           RSIG0(5)=0.D0
  89 :           RSIG0(6)=0.D0
  90 :           RDEPS0(5)=0.D0  
  91 :           RDEPS0(6)=0.D0   
  92 :         ENDIF  
  93 :       ELSE 
  94 :         KERRE = 99
  95 :         RETURN
  96 :       ENDIF
  97 : *
  98 : *
  99 : *   Passage des deformations de cisaillement exprimées
 100 : *   en GAMA aux déformations de cisaillement exprimées
 101 : *   en déformations
 102 : *
 103 :       DO 116 I=1,6
 104 :          A=1.D0
 105 :          IF (I.GT.3) A=2.D0
 106 :          RDEPS0(I)=RDEPS0(I)/A
 107 :          RDEPS(I)=0.D0  
 108 :  116  CONTINUE
 109 : * 
 110 : *   Données du materiau  
 111 : *=========================================================== 
 112 : *
 113 :       YOUNG=XMAT(1) 
 114 :       XNU=XMAT(2) 
 115 :       F0=XMAT(6)  
 116 :       XD0=XMAT(7) 
 117 :       SIG1=XMAT(8) 
 118 :       FC0=XMAT(9) 
 119 :       IF (F0.GE.1.D0) F0=3.D-4  
 120 :       RMAX0=(1.D0-FC0)/(1.D0-F0) 
 121 :       IF ((RMAX0.LE.1.D-5).OR.(RMAX0.GE.1.D0)) THEN 
 122 :         RMAX0=1.D-5 
 123 :       ENDIF  
 124 : *   
 125 : *  Calculs préliminaires    
 126 : *=================================== 
 127 : *  
 128 : *---> Module de cisaillement G0 et de pression hydro XK0 
 129 : *  
 130 :       G0=YOUNG/(2.D0*(1.D0+XNU))  
 131 :       XK0=YOUNG/(3.D0*(1.D0-(2.D0*XNU)))  
 132 :       XLAM0=XK0-(2.D0*G0/3.D0)  
 133 : * 
 134 : *  Début des sous incrémentations 
 135 : *===================================  
 136 : *  
 137 :       recal0=-100.D0 
 138 :       iter2=0 
 139 :       nmax0=1 
 140 : *
 141 : *---> Variables internes test
 142 : * 
 143 : *   - déformation plastique équivalente
 144 : *   - variable d'endommagement
 145 : *   - densité relative
 146 : *
 147 :  93   EPSPT=VAR0(1)
 148 :       BETAT=VAR0(2)
 149 :       RHOT=VAR0(3)
 150 : * 
 151 : *   - initialisation de RHOT à 1.
 152 : * 
 153 :       IF (RHOT.LT.1.D-30) THEN
 154 :          RHOT=1.D0
 155 :          VAR0(3)=1.D0
 156 :       ENDIF 
 157 :       RHOT0=RHOT
 158 : * 
 159 : *  Contraintes planes 
 160 : *    - on stocke les variables internes au début de 
 161 : *    chaque sous incrémentation 
 162 : *    - on stocke les déformations plastiques au début de 
 163 : *    chaque sous incrémentation 
 164 : *  
 165 :       IF (IFOUR.EQ.-2) THEN
 166 :          EPSPT1=EPSPT
 167 :          BETAT1=BETAT
 168 :          RHOT1=RHOT
 169 :          def1=0.D0 
 170 :          def2=0.D0  
 171 :          def3=0.D0  
 172 :          rdeps3=0.D0 
 173 :       ENDIF 
 174 : * 
 175 : *  Contraintes planes
 176 : *    - on stocke les contraintes non endommagées au début de  
 177 : *    chaque sous incrémentation
 178 : * 
 179 :       DO 171 I=1,6 
 180 :         IF (RHOT0.GT.RMAX0) THEN 
 181 :           SIGT(I)=RSIG0(I)/RHOT0  
 182 :         ELSE 
 183 :           SIGT(I)=0.D0 
 184 :           XLAM0=0.D0 
 185 :           G0=0.D0  
 186 :         ENDIF 
 187 :       IF (IFOUR.EQ.-2) SIGT1(I)=SIGT(I) 
 188 :  171  CONTINUE  
 189 :       IF (RHOT0.GT.RMAX0) THEN 
 190 :         SMT0=(RSIG0(1)+RSIG0(2)+RSIG0(3))/(3.D0*RHOT0)  
 191 :       ELSE 
 192 :         SMT0=0.D0 
 193 :       ENDIF 
 194 :       IF (IFOUR.EQ.-2) SMT1=SMT0 
 195 : * 
 196 : *  On divise le chargement pour les sous incrementations 
 197 : * 
 198 :   95  DO 118 I=1,6
 199 :          RDEPS(I)=RDEPS0(I)/nmax0
 200 :  118  CONTINUE 
 201 :       iter2=iter2+1 
 202 : *  
 203 : *  Initialisations 
 204 : *===================================  
 205 : *  
 206 :       iter1=0 
 207 : *  
 208 : *---> Calcul de la trace de l'incrément de déformation
 209 : * 
 210 :       IF (IFOUR.EQ.-2) THEN
 211 :         RDEPS(3)=-1.D0*(XNU/(1.D0-XNU))*(RDEPS(1)+RDEPS(2))
 212 :       ENDIF
 213 :  98   treps0=RDEPS(1)+RDEPS(2)+RDEPS(3)
 214 : * 
 215 : *  
 216 : *  Calculs des grandeurs élastiques test 
 217 : *==================================================== 
 218 : *
 219 : *---> Variables internes test: cas contraintes planes  
 220 : *  
 221 : *   - déformation plastique équivalente
 222 : *   - variable d'endommagement
 223 : *   - densité relative
 224 : *  
 225 :       IF (IFOUR.EQ.-2) THEN
 226 :          EPSPT=EPSPT1
 227 :          BETAT=BETAT1
 228 :          RHOT=RHOT1
 229 :       ENDIF 
 230 : *  
 231 : *---> Calcul des contraintes test élastiques efficaces  
 232 : *     et de l'incrément des déformations plastiques test au 
 233 : *     cours du pas 
 234 : *  
 235 :       DO 101 I=1,6  
 236 :         A=0.D0  
 237 :         IF (I.LE.3) A=1.D0 
 238 :         IF (IFOUR.EQ.-2) SIGT(I)=SIGT1(I) 
 239 :         SIGT(I)=SIGT(I)+(2.D0*G0*RDEPS(I)) 
 240 :         SIGT(I)=SIGT(I)+(XLAM0*treps0*A) 
 241 :         DEFT(I)=0.D0  
 242 :  101  CONTINUE   
 243 : *   
 244 : *---> Déviateur et contrainte moyenne test  
 245 : * 
 246 :       SMT=(SIGT(1)+SIGT(2)+SIGT(3))/3.D0  
 247 :       DO 200 I=1,6  
 248 :         A=0.D0 
 249 :         IF (I.LE.3) A=1.D0 
 250 :         DEVT(I)=SIGT(I)-(A*SMT) 
 251 :  200  CONTINUE  
 252 : * 
 253 : *---> Contrainte équivalente STEST
 254 : *
 255 :       STEST2=(SIGT(1)*SIGT(1))+(SIGT(2)*SIGT(2))
 256 :       STEST2=STEST2+(SIGT(3)*SIGT(3))
 257 :       STEST2=STEST2-(SIGT(1)*SIGT(2))-(SIGT(2)*SIGT(3))
 258 :       STEST2=STEST2-(SIGT(3)*SIGT(1))
 259 :       STEST3=(SIGT(4)*SIGT(4))+(SIGT(5)*SIGT(5))
 260 :       STEST3=STEST3+(SIGT(6)*SIGT(6))
 261 :       STEST2=STEST2+(3.D0*STEST3)
 262 :       IF (STEST2.LE.1.D-20) STEST2=0.D0
 263 :       Stest=(STEST2)**(0.5D0)
 264 : * 
 265 : *---> Potentiel d'endommagement 
 266 : *  
 267 :       BT0=F0*SIG1*EXP(BETAT)  
 268 :       BT0=BT0/(1.D0-F0+(F0*EXP(BETAT)))  
 269 :       DBT0=BT0*(1.D0-F0)/(1.D0-F0+(F0*EXP(BETAT)))   
 270 :       Ftest=BT0*XD0*EXP(SMT/SIG1)  
 271 : *  
 272 : *---> Limite d'élasticité lue sur la courbe d'écrouissage  
 273 : *  
 274 : *   - Recherche des valeurs de déformations plastiques équivalentes  
 275 : *     encadrant la valeur courante 
 276 : *    
 277 :       EPSM0=TRAC(2*NCOURB) 
 278 :       IF (EPSPT.GE.EPSM0) THEN 
 279 :          Y1=TRAC(2*NCOURB-1) 
 280 :          Y2=TRAC(2*NCOURB-1) 
 281 :          EPS1=EPSM0 
 282 :          EPS2=2.D0*EPSM0 
 283 :       ELSE  
 284 :       DO 300 I=1,(NCOURB-1)   
 285 :          EPS1=TRAC(2*I) 
 286 :          EPS2=TRAC(2*(I+1))  
 287 :          IF ((EPSPT.GE.EPS1).AND.(EPSPT.LT.EPS2)) THEN 
 288 :             Y1=TRAC(2*I-1)   
 289 :             Y2=TRAC(2*(I+1)-1)  
 290 :             GOTO 96 
 291 :          ENDIF  
 292 :  300  CONTINUE  
 293 :       ENDIF  
 294 : *  
 295 : *   - Limite d'élasticité  
 296 : *  
 297 :   96  H0=(Y2-Y1)/(EPS2-EPS1)  
 298 :       Ytest=(H0*(EPSPT-EPS2))+Y2  
 299 : *  
 300 : *---> Fonction de charge test PHIT 
 301 : *  
 302 :       PHIT=Stest-Ytest+Ftest   
 303 : * 
 304 : *
 305 : *  Vérification du critère de plasticité  
 306 : *=========================================================
 307 : * 
 308 : *---> Erreur admise  
 309 : *  
 310 :       ERR0=1.E-7*ABS(PHIT)  
 311 :       ERR0=MAX(ERR0,1.D-8*TRAC(1)) 
 312 : *  
 313 : *---> Critère de plasticité 
 314 : *  
 315 :       PHI0=PHIT  
 316 :       IF (RHOT.LE.RMAX0) PHI0=0.D0 
 317 :       iter0=0  
 318 : *  
 319 :  99   IF (PHI0.LE.ERR0) THEN  
 320 : *  
 321 : *  On est élastique  
 322 : *=========================================================  
 323 : *  
 324 : *--------------------------------------------------------------
 325 : *     Cas particulier des contraintes planes
 326 : *--------------------------------------------------------------
 327 : *
 328 :       IF (IFOUR.EQ.-2) THEN
 329 : *
 330 : *---> On vérifie qu'on est en contraintes planes
 331 : *
 332 :         iter1=iter1+1
 333 :         SIG3=ABS(SIGT(3))
 334 :         SIG30=MAX(Stest*1.D-5,1.D-3)  
 335 :         IF (SIG3.GT.SIG30) THEN
 336 :           RDEPS(3)=-1.D0*(XNU/(1.D0-XNU))*
 337 :      .     (RDEPS(1)-DEFT(1)+RDEPS(2)-DEFT(2)+def1+def2) 
 338 :           RDEPS(3)=RDEPS(3)+DEFT(3)-def3      
 339 :           IF (iter1.LE.200)THEN
 340 :             GOTO 98
 341 :           ELSE
 342 :             KERRE=460
 343 :           ENDIF
 344 :         ELSE    
 345 :           EPSPT1=EPSPT 
 346 :           BETAT1=BETAT 
 347 :           RHOT1=RHOT 
 348 :           SIGT1(1)=SIGT(1) 
 349 :           SIGT1(2)=SIGT(2) 
 350 :           SIGT1(3)=SIGT(3)  
 351 :           SIGT1(4)=SIGT(4) 
 352 :           SIGT1(5)=SIGT(5) 
 353 :           SIGT1(6)=SIGT(6) 
 354 :           rdeps3=rdeps3+RDEPS(3)   
 355 :           def1=DEFT(1)
 356 :           def2=DEFT(2)
 357 :           def3=DEFT(3) 
 358 :         ENDIF 
 359 :       ENDIF
 360 : *
 361 : *-----------------------------------------------------
 362 : *    Fin du cas particulier des contraintes planes
 363 : *----------------------------------------------------- 
 364 : *  
 365 :       DO 400 I=1,6  
 366 :          RSIGF(I)=SIGT(I)*RHOT    
 367 :          RDEFP(I)=DEFT(I) 
 368 :          RDIGT(I)=RSIGF(I)-RSIG0(I)  
 369 :  400  CONTINUE  
 370 :       VARF(1)=EPSPT  
 371 :       VARF(2)=BETAT 
 372 :       VARF(3)=RHOT 
 373 : *  
 374 :       ELSE  
 375 : * 
 376 : *  On plastifie  
 377 : *=========================================================  
 378 : *  
 379 : *---> Pente d'écrouissage H0 = d PHI / d EPSP  
 380 : *
 381 : *     Ce terme est déjà calculé   
 382 : *
 383 : *---> Condition de consistance  
 384 : *  
 385 :       Ftest0=1.D-6*Ftest  
 386 :       IF (Stest.GT.Ftest0) THEN 
 387 :         denom0=(DBT0-BT0*BT0*XK0/(SIG1*SIG1))*EXP(2.D0*SMT/SIG1)  
 388 :         denom0=H0+3.D0*G0-XD0*XD0*denom0
 389 :       ELSE 
 390 :         denom0=(DBT0-BT0*BT0*XK0/(SIG1*SIG1))*EXP(2.D0*SMT/SIG1)
 391 :         denom0=H0-XD0*XD0*denom0
 392 :       ENDIF  
 393 :       IF (denom0.GT.1.D-5) THEN 
 394 :         dlam0=PHIT/denom0  
 395 :       ELSE 
 396 :         IF (recal0.LE.0.D0) THEN 
 397 :           recal0=100.D0 
 398 :           nmax0=2000 
 399 :           iter2=0  
 400 :           GOTO 93 
 401 :         ENDIF 
 402 :       ENDIF 
 403 : * 
 404 : *     Vérification des hypothèses de calcul 
 405 : *=============================================================== 
 406 : *   
 407 :       IF (recal0.LE.0.D0) THEN 
 408 : * 
 409 : *      RMAX1=MIN(0.5D0,RMAX0*2.D0)  
 410 : *      RMAX1=MAX(RMAX1,0.1D0)  
 411 : *      IF (RHOT.LT.RMAX1) THEN 
 412 : *         xnum0=200.D0 
 413 : *      ELSE 
 414 :          xnum0=20.D0 
 415 : *      ENDIF  
 416 : *  
 417 :       xmax1=0.D0 
 418 :       xmax2=0.D0 
 419 :       xmax3=0.D0 
 420 : * 
 421 : *---> Condition: d SM / SIG1 << 1 
 422 : *  
 423 :       cri00=XK0*(ABS(RDEPS(1)+RDEPS(2)+RDEPS(3)))/SIG1
 424 :       IF (cri00.GT.5.D-2) THEN 
 425 :          xmax1=ABS(xnum0*cri00+10.D0)  
 426 :       ENDIF 
 427 : * 
 428 : *---> Condition: 10.G.dp/Stest << 1 
 429 : * 
 430 :       IF (Stest.GT.Ftest0) THEN 
 431 :         cri01=10.D0*G0*dlam0/Stest   
 432 :         IF (cri01.GT.5.D-2) THEN 
 433 :           xmax2=ABS(xnum0*cri01+10.D0)       
 434 :         ENDIF 
 435 :       ENDIF 
 436 : *      xmax2=0.D0  
 437 : * 
 438 : *---> Condition: B'(beta).d beta / B(beta) << 1 
 439 : *  
 440 : *      cri02=DBT0*dlam0*XD0*EXP(SMT/SIG1)/BT0 
 441 :       cri02=dlam0*XD0*EXP(SMT/SIG1) 
 442 :       IF (cri02.GT.5.D-2) THEN 
 443 :         xmax3=(xnum0*cri02+10.D0)  
 444 :       ENDIF   
 445 : * 
 446 :       IF (xmax1.GT.xmax2) THEN 
 447 :          xmax00=xmax1 
 448 :       ELSE 
 449 :          xmax00=xmax2 
 450 :       ENDIF 
 451 :       IF (xmax3.GT.xmax00) xmax00=xmax3 
 452 :       nmax00=NINT(xmax00) 
 453 :       recal0=100.D0  
 454 :       IF (nmax00.GT.nmax0) nmax0=nmax00 
 455 :       IF (nmax0.GT.2000) nmax0=2000 
 456 : * 
 457 : *---> On recommence la calcul en sous incrémentant le 
 458 : *     pas de temps  
 459 : *  
 460 :       iter2=0 
 461 :       GOTO 93 
 462 : * 
 463 :       ENDIF  
 464 : *  
 465 : *  Mise à jour des grandeurs après écoulement plastique 
 466 : *============================================================ 
 467 : *  
 468 : *---> Variable interne de plasticité mise à jour  
 469 : *  
 470 :       EPSPT=EPSPT+dlam0 
 471 : *  
 472 : *---> Contraintes mises à jour  
 473 : *  
 474 :       tremp0=XD0*BT0*EXP(SMT/SIG1)*dlam0/SIG1 
 475 :      .  +XD0*XD0*(DBT0-BT0*BT0*XK0/(SIG1*SIG1))*EXP(2.D0*SMT/SIG1) 
 476 :      .  *dlam0*dlam0/SIG1    
 477 :       SMT=SMT-XK0*tremp0 
 478 :       DO 601 I=1,6
 479 :         A=0.D0
 480 :         IF (I.LE.3) A=1.D0
 481 :         IF (Stest.GT.Ftest0) THEN 
 482 :          DEVT(I)=DEVT(I)-3.D0*G0*DEVT(I)*dlam0/Stest 
 483 :         ELSE 
 484 :          DEVT(I)=0.D0 
 485 :         ENDIF  
 486 :         SIGT(I)=DEVT(I)+(SMT*A)
 487 :  601  CONTINUE 
 488 : * 
 489 : *---> Endommagement 
 490 : *  
 491 :       RHOT=RHOT*EXP(-tremp0)  
 492 :       IF (RHOT.LT.1.D-10) RHOT=1.D-10  
 493 :       BETAT=LOG((1.D0-(1.D0-F0)*RHOT)/(RHOT*F0))  
 494 : *
 495 :       IF (RHOT.LE.RMAX0) THEN
 496 :         SMT=0.D0  
 497 :         DO 103 I=1,6
 498 :           SIGT(I)=0.D0
 499 :           DEVT(I)=0.D0
 500 :  103    CONTINUE
 501 :       ENDIF 
 502 : * 
 503 : *---> Incrément de déformations plastiques mise à jour  
 504 : *  
 505 :       treps1=(SMT-SMT0)/XK0  
 506 :       DO 610 I=1,6
 507 :         A=0.D0
 508 :         IF (I.LE.3) A=1.D0
 509 :         IF (RHOT0.GT.RMAX0) THEN 
 510 :         depel0=(DEVT(I)-(RSIG0(I)/RHOT0)+(SMT0*A))/(2.D0*G0) 
 511 :         ELSE 
 512 :         depel0=(DEVT(I)+(SMT0*A))/(2.D0*G0)  
 513 :         ENDIF  
 514 :         depel0=depel0+(treps1*A/3.D0)   
 515 :         DEFT(I)=RDEPS0(I)*iter2/nmax0-depel0   
 516 :         IF ((IFOUR.EQ.-2).AND.(I.EQ.3)) THEN 
 517 :           DEFT(3)=rdeps3+RDEPS(3)-depel0 
 518 :         ENDIF 
 519 :  610  CONTINUE 
 520 : *
 521 : *---> Contrainte équivalente Stest mise à jour   
 522 : *
 523 :       STEST2=(SIGT(1)*SIGT(1))+(SIGT(2)*SIGT(2))
 524 :       STEST2=STEST2+(SIGT(3)*SIGT(3))
 525 :       STEST2=STEST2-(SIGT(1)*SIGT(2))-(SIGT(2)*SIGT(3))
 526 :       STEST2=STEST2-(SIGT(3)*SIGT(1))
 527 :       STEST3=(SIGT(4)*SIGT(4))+(SIGT(5)*SIGT(5))
 528 :       STEST3=STEST3+(SIGT(6)*SIGT(6))
 529 :       STEST2=STEST2+(3.D0*STEST3)
 530 :       IF (STEST2.LE.(Ftest0*Ftest0)) STEST2=0.D0
 531 :       Stest=(STEST2)**(0.5D0)
 532 : *
 533 : *---> Potentiel d'endommagement mis à jour 
 534 : * 
 535 :       BT0=F0*SIG1*EXP(BETAT)
 536 :       BT0=BT0/(1.D0-F0+(F0*EXP(BETAT)))
 537 :       DBT0=BT0*(1.D0-F0)/(1.D0-F0+(F0*EXP(BETAT))) 
 538 :       Ftest=BT0*XD0*EXP(SMT/SIG1)
 539 : * 
 540 : *---> Limite d'élasticité lue sur la courbe d'écrouissage
 541 : *     mise à jour 
 542 : * 
 543 : *   - Recherche des valeurs de déformations plastiques équivalentes
 544 : *     encadrant la valeur courante
 545 : *   
 546 :       EPSM0=TRAC(2*NCOURB)
 547 :       IF (EPSPT.GE.EPSM0) THEN
 548 :          Y1=TRAC(2*NCOURB-1)
 549 :          Y2=TRAC(2*NCOURB-1)
 550 :          EPS1=EPSM0
 551 :          EPS2=2.D0*EPSM0
 552 :       ELSE
 553 :       DO 700 I=1,(NCOURB-1)  
 554 :          EPS1=TRAC(2*I)
 555 :          EPS2=TRAC(2*(I+1)) 
 556 :          IF ((EPSPT.GE.EPS1).AND.(EPSPT.LT.EPS2)) THEN
 557 :             Y1=TRAC(2*I-1)  
 558 :             Y2=TRAC(2*(I+1)-1) 
 559 :             GOTO 97
 560 :          ENDIF 
 561 :  700  CONTINUE 
 562 :       ENDIF  
 563 : * 
 564 : *   - Limite d'élasticité mise à jour  
 565 : * 
 566 :   97  H0=(Y2-Y1)/(EPS2-EPS1) 
 567 :       Ytest=(H0*(EPSPT-EPS2))+Y2 
 568 : * 
 569 : *---> Fonction de charge test PHIT mise à jour
 570 : * 
 571 :       PHIT=Stest-Ytest+Ftest
 572 :       PHI0=ABS(PHIT)  
 573 : *
 574 : *---> Test de convergence ou itération suivante
 575 : *
 576 :       iter0=iter0+1
 577 : *       if ((ib.eq.12).and.(rhot0.lt.0.45).and.(igau.eq.19))  write(6,*) 
 578 : *     &'13iter2,iter0:',iter2,iter0,'phi',phit,var0(3),depst(1),depst(2)
 579 :       IF (RHOT.LE.RMAX0) PHI0=0.D0  
 580 :       IF (iter0.LT.200) THEN
 581 :          GOTO 99
 582 :       ELSE
 583 :          PHI0=0.D0 
 584 :          KERRE=460
 585 :          write(6,*) 'rho0,deps1 et 2',var0(3),depst(1),depst(2),ib,igau
 586 :          GOTO 99 
 587 :       ENDIF 
 588 : *  
 589 :       ENDIF  
 590 : *  
 591 : * 
 592 : *   Vérification des sous incrémentations 
 593 : *  
 594 :       IF ((iter2.LT.nmax0).AND.(KERRE.EQ.0)) THEN 
 595 :          GOTO 95 
 596 :       ENDIF  
 597 : *
 598 : *   Passage des deformations de cisaillement exprimées
 599 : *   en déformations aux déformations de cisaillement exprimées
 600 : *   en GAMA
 601 : *
 602 :       DO 117 I=1,6
 603 :          A=1.D0
 604 :          IF (I.GT.3) A=2.D0
 605 :          RDEFP(I)=RDEFP(I)*A
 606 :  117  CONTINUE
 607 : * 
 608 : * 
 609 : *  Passage a l'option de calcul pour les contraintes  
 610 : *=========================================================
 611 : *
 612 : *       IF (MFR1 .EQ. 1 .OR. MFR1 .EQ. 31)  THEN
 613 : * as :
 614 :       IF (MFR1 .EQ. 1 .OR. MFR1 .EQ. 31.OR.MFR1.EQ.63)  THEN
 615 :         IF (NSTRS .EQ. 6) THEN
 616 : *
 617 : *---> MASSIF 3D 
 618 : *
 619 :           DO 170 I=1,NSTRS
 620 :             SIGF(I)=RSIGF(I)
 621 :             DEFP(I)=RDEFP(I)
 622 :             DSIGT(I)=RDIGT(I) 
 623 :  170      CONTINUE
 624 :         ELSE IF ( NSTRS .EQ. 4 ) THEN
 625 : *
 626 : *---> Calcul axisymétrique ou contraintes planes 
 627 : *
 628 :           DO 180 I=1,NSTRS
 629 :             SIGF(I)=RSIGF(I)
 630 :             DEFP(I)=RDEFP(I)
 631 :             DSIGT(I)=RDIGT(I)  
 632 :  180      CONTINUE 
 633 :         ENDIF
 634 :       ENDIF
 635 : *      if (ib.eq.13)  write(6,*)
 636 : *     &   '11:rho0,deps1,2,p',var0(3),depst(1),depst(2),var0(1),igau
 637 :         
 638 :       RETURN 
 639 : *
 640 :       END  
 641 :  
 642 :  
 643 :  
 644 :  
 645 :  
 646 :  
 647 :  
 648 : 
 649 :  
 650 :  
 651 :  

© Cast3M 2003 - All rights reserved.
Disclaimer