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