1 : C COUL1 SOURCE KK2000 13/11/08 21:15:22 7860 2 : SUBROUTINE COUL1 ( IB,IGAU,NSTRS,SIG00,EPST00,EPIN00,VAR0,NVARI, 3 : . DEPST0,IFOUR,XMAT,NMATT,IVAL,DD,SIGF1,DEFP1,VARF,KERRE) 4 : C----------------------------------------------------------------------- 5 : C 6 : C PLASTICITE MODELE 3D MOHR COULOMB ELEMENTS JOINTS JOI1 7 : C 8 : C----------------------------------------------------------------------- 9 : C 10 : C PLASTICITE MODELE 3D MOHR COULOMB ELEMENTS JOINTS JOI1 11 : C 12 : C ENTREES 13 : C NSTRS = NOMBRE DE COMPOSANTES DE CONTRAINTES 14 : C SIG00 = CONTRAINTES INITIALES (AU DEBUT DU PAS) 15 : C VAR0(NVARI) = VARIABLES INTERNES (AU DEBUT DU PAS) 16 : C VAR0(1) = EPSE (DEFORMATION PLASTIQUE EQUIVALENTE) 17 : C VAR0(2) = EPOU (DEF. PLASTIQUE DUE A L'OUVERTURE SEULE) 18 : C VAR0(3) = STAT (ETAT DU JOINT) 19 : C VAR0(4) = LAM1 (MULTIPLICATEUR PLASTIQUE EN TRACTION) 20 : C VAR0(5) = DEF. PLASTIQUE DS. LA DIRECTION DE GLISSEMENT 1 21 : C VAR0(6) = DEF. PLASTIQUE DS. LA DIRECTION DE GLISSEMENT 2 22 : C VAR0(7) = DEF. PLASTIQUE DS. LA DIRECTION NORMALE AUX 23 : C DIRECTIONS DE GLISSEMENT 24 : C NMATT = NOMBRE DE COMPOSANTES DE MATERIAU 25 : C XMAT(NMATT) = COMPOSANTES DU MATERIAU 26 : C XMAT ( 1) = 'V1X ' V1=(V1X,V1Y,V1Z) 27 : C XMAT ( 2) = 'V1Y ' 28 : C XMAT ( 3) = 'V1Z ' 29 : C XMAT ( 4) = 'V2X ' V2=(V2X,V2Y,V2Z) 30 : C XMAT ( 5) = 'V2Y ' 31 : C XMAT ( 6) = 'V2Z ' V3=V1^V2 32 : C XMAT ( 7) = 'KN ' RAIDEUR EN TRANSLATION DS LA DIRECTION V1 33 : C XMAT ( 8) = 'KS1 ' RAIDEUR EN TRANSLATION DS LA DIRECTION V2 34 : C XMAT ( 9) = 'KS2 ' RAIDEUR EN TRANSLATION DS LA DIRECTION V3 35 : C XMAT (10) = 'QN ' RAIDEUR EN ROTATION AUTOUR DE V1 36 : C XMAT (11) = 'QS1 ' RAIDEUR EN ROTATION AUTOUR DE V2 37 : C XMAT (12) = 'QS2 ' RAIDEUR EN ROTATION AUTOUR DE V3 38 : C XMAT (13) = 'EF ' 2ieme RAIDEUR NORMALE AU PLAN DE GLISS. 39 : C XMAT (14) = 'ECN ' EF CORRESPOND A LA DEF. REL. ECN 40 : C XMAT (15) = COHESION 41 : C XMAT (16) = ANGLE DU CONE EN ° 42 : C XMAT (17) = NORMALE AU PLAN DE GLISSEMENT 43 : C EPST00(NSTRS) = DEFORMATION TOTALE INITIALE (AU DEBUT DU PAS) 44 : C DEPST(NSTRS) = INCREMENT DE DEFORMATION TOTALE 45 : C DD(NSTRS,NSTRS) = MATRICE DE HOOK 46 : C 47 : C SORTIES 48 : C STRESS(NSTRS) = CONTRAINTES FINALES 49 : C STATEV(NSTATV) = VARIABLES INTERNES FINALES 50 : C KINC = INDICE D'ERREUR 51 : C = 60 PAS DE CONVERGENCE APRES 10 ITERATIONS 52 : C INTERNES (VARIABLE ISSU DANS COULM) 53 : C = 61 54 : C 55 : C----------------------------------------------------------------------- 56 : C 57 : IMPLICIT INTEGER(I-N) 58 : IMPLICIT REAL*8(A-H,O-Z) 59 : -INC CCREEL 60 : C 61 : DIMENSION SIG00(*),EPST00(*),EPIN00(*),VAR0(*),DEPST0(*),XMAT(*) 62 : DIMENSION DD(NSTRS,NSTRS),IDI1(6),IDI2(6),TRAID(6,6) 63 : DIMENSION SIGF1(*),DEFP1(*),VARF(*) 64 : C Mes arguments 65 : DIMENSION SIG0(3),EPST0(3),EPIN0(3),DEPST(3) 66 : DIMENSION SIGF(3),DEFP(3) 67 : C ------------------------------------------------------------------ 68 : DATA IDI1 / 2 , 3 , 1 , 5 , 6 , 4 / 69 : DATA IDI2 / 3 , 1 , 2 , 6 , 4 , 5 / 70 : C ------------------------------------------------------------------ 71 : C 72 : C -------IDEBMA POINTE SUR LA FIN DES 2 VECTEURS DU REPERE DE L'EF JOI1 73 : IDEBMA=6 74 : C 75 : C------CHARGEMENT DE TOUTES LES CARACTERISTIQUES MECANIQUES 75 : CALL ZERO(TRAID,6,6) 76 : DO 100 I=1,NSTRS 77 : TRAID(I,I)=XMAT(IDEBMA+I) 78 : 100 CONTINUE 79 : C ----------DIRECTION NORMALE AU PLAN DE GLISSEMENT 80 : IF (IDINT(XMAT(IDEBMA+NSTRS+5)).EQ.1) THEN 81 : IDIRN=1 82 : ELSE IF (IDINT(XMAT(IDEBMA+NSTRS+5)).EQ.2) THEN 83 : IDIRN=4 84 : ENDIF 85 : C 86 : C ----------DIRECTIONS DE GLISSEMENT 87 : IDIR1=IDI1(IDIRN) 88 : IDIR2=IDI2(IDIRN) 89 : C 90 : C ----------CONTRAINTES AU DEBUT DU PAS POUR LES 3 DIRECTIONS 91 : SIG0(1)=SIG00(IDIR1) 92 : SIG0(2)=SIG00(IDIR2) 93 : SIG0(3)=SIG00(IDIRN) 94 : C 95 : C ----------DEF. PLASTIQUES AU DEBUT DU PAS POUR LES 3 DIRECTIONS 96 : IDEBLA=4 97 : DO I=1,3 98 : EPIN0(I)=VAR0(IDEBLA+I) 99 : END DO 100 : C 101 : C ----------INCREMENT DES DEFORMATIONS TOTALES POUR LES 3 DIRECTIONS 102 : DEPST(1)=DEPST0(IDIR1) 103 : DEPST(2)=DEPST0(IDIR2) 104 : DEPST(3)=DEPST0(IDIRN) 105 : C 106 : C ----------PARAMETRES POUR LE TEST DE NULLITE DES CONTRAINTES ET 107 : C ----------DEFORMATIONS 108 : C 109 : PRESP = +1.D-5 110 : PRESM = -1.D-5 111 : * PREEP = +1.D-10 112 : PREEP = 0.D0 113 : PREEM = -1.D-10 114 : C 115 : C 116 : C ----------PARAMETRE D'IMPPRESSION 117 : C 118 : IMPRI = 0 119 : C 120 : C ----------NOMBRE MAXIMUM D'ITERATIONS INTERNES AUTORISEES 121 : C 122 : MAXITE = 1000 123 : C 124 : C 125 : C------CHARGEMENT DU EPSILON DE PRECISION DES ITERATIONS INTERNES 126 : C 127 : PRECIS = 1.D-6 128 : PRECIN = -1.D-6 129 : C 130 : C------CHARGEMENT DES CARACTERISTIQUES MECANIQUES 131 : C------DANS LA DIECTION NORMALE ET LE PLAN DE GLISSEMENT 132 : C 133 : EC = XMAT(IDEBMA+IDIRN) 134 : G1 = XMAT(IDEBMA+IDIR1) 135 : G2 = XMAT(IDEBMA+IDIR2) 136 : EF = XMAT(IDEBMA+NSTRS+1) 137 : ECN = XMAT(IDEBMA+NSTRS+2) 138 : C = XMAT(IDEBMA+NSTRS+3) 139 : PHI = XMAT(IDEBMA+NSTRS+4) 140 : PHI = (PHI*XPI)/180.D0 141 : ZMU = 0.0D0 142 : ZMU = (ZMU*XPI)/180.D0 143 : * FTRC = XMAT(IDEBMA+NSTRS+15) 144 : FTRC = 0. 145 : C AM 28/7/95 146 : C FTRC EST EN 4 ET NON EN 9 A CAUSE DE RHO ET ALPH 147 : C VOIR COMMENTAIRE DANS ECOUL2 148 : C 149 : C LA LIMITE EN TRACTION EST MISE BRUTALEMENT A 0 150 : C DES QU'ELLE EST DEPASSEE. 151 : C 152 : C 153 : C------CHARGEMENT DE LA MATRICE DE HOOK INVERSE 154 : C------POUR LE CALCUL DE L'INCREMENT DE DEFORMATION 155 : C------A PARTIR DE L'INCREMENT DE CONTRAINTE 156 : C------ DEPSN = D**-1 DSIGT 157 : C ( D**-1 = DD ) 158 : C 159 : DD(1,1) = 1.0D0/G1 160 : DD(1,2) = 0.0D0 161 : DD(1,3) = 0.0D0 162 : DD(2,1) = 0.0D0 163 : DD(2,2) = 1.0D0/G2 164 : DD(2,3) = 0.0D0 165 : DD(3,1) = 0.0D0 166 : DD(3,2) = 0.0D0 167 : DD(3,3) = 1.0D0/EC 168 : C 169 : C contrainte en fin de pente ec 170 : C 171 : sigsei = -ecn * ec 172 : c 173 : C 174 : C-----------INCREMENT DE DEFORMATION 175 : C 176 : DEPS1 = DEPST(1) 177 : DEPS2 = DEPST(2) 178 : DEPSN = DEPST(3) 179 : C 180 : C TRAITEMENT DU PASSAGE DIRECT ENTRE UN ETAT OUVERT 181 : C (I.E. EXISTENCE D'UN JEU AU TEMPS N) A UN ETAT 182 : C COMPRIME AU TEMPS N+1 183 : C 184 : DEFPN=0.0D0 185 : INDIC=0 186 : IFIN =0 187 : STOTA1 = 0.0D0 188 : STOTA2 = 0.0D0 189 : DEFP11 = 0.0D0 190 : DEFP12 = 0.0D0 191 : DEFP21 = 0.0D0 192 : DEFP22 = 0.0D0 193 : ALP = 1.0D0 194 : S1INT = 0.0D0 195 : S2INT = 0.0D0 196 : ZJEU = EPIN0(3) 197 : C 198 : C AM CORRECTION POUR JOINT AVEC RESISTANCE EN TRACTION 199 : C CAS DU RAPPROCHEMENT DES LEVRES 200 : C IF (DEPSN.LT.-1.D-4) THEN 201 : IF (DEPSN.LT.-1.D-4.AND.SIG0(3).GT.PRESP) THEN 202 : C IL EXISTE UN JEU 203 : IF (ZJEU.GT.1.D-3) THEN 204 : C PASSAGE DIRECT D'UN ETAT OUVERT 205 : C A UN ETAT COMPRIME 206 : cc IF (ABS(DEPSN).GT.ZJEU) THEN 207 : valdif=(ABS(DEPSN) - ZJEU)/ABS(DEPSN) 208 : ccc IF (valdif.gt.3.05D-6) THEN 209 : IF (valdif.gt.1.D-3) THEN 210 : C 211 : ALP = ZJEU/(ABS(DEPSN)) 212 : STOTA1= DEPS1 213 : DEPS1 = ALP * DEPS1 214 : STOTA2= DEPS2 215 : DEPS2 = ALP * DEPS2 216 : STOCK = DEPSN 217 : DEPSN = ALP * DEPSN 218 : INDIC = 1 219 : GO TO 99 220 : ENDIF 221 : C 222 : ENDIF 223 : C 224 : ENDIF 225 : C 226 : 98 CONTINUE 227 : C 228 : C IL RESTE A PARCOURIR LE TRAJET 229 : C (1-ALP) * DEPSN 230 : C 231 : IF (INDIC.EQ.1) THEN 232 : DEPS1=(1.0D0-ALP)*STOTA1 233 : DEPS2=(1.0D0-ALP)*STOTA2 234 : DEPSN=(1.0D0-ALP)*STOCK 235 : INDIC=0 236 : IFIN =1 237 : ENDIF 238 : C 239 : 99 CONTINUE 240 : C 241 : C 242 : C ----CAS GENERAL SANS TRANSITION DIRECTE D'UN ETAT OUVERT A UN ETAT 243 : C ----A UN ETAT COMPRIME 244 : C 245 : C 246 : C 247 : C 248 : IF ((INDIC.EQ.1).OR.(IFIN.EQ.0)) THEN 249 : C 250 : C--------------------CALCUL DE L ETAT DE CONTRAINTES, DE DEFORMATIONS 251 : C--------------------DES VARIABLES INTERNES AU PAS PRECEDENT 252 : C 253 : C------CHARGEMENT DES VALEURS AU PAS PRECEDENT 254 : C 255 : C 256 : C----------DEFORMATIONS 257 : C 258 : C DEFORMATIONS INELASTIQUES 259 : C 260 : EPSS1 = EPIN0(1) 261 : EPSS2 = EPIN0(2) 262 : EPSN1 = EPIN0(3) 263 : C 264 : C DEFORMATIONS ELASTIQUES 265 : C 266 : DEFS10 = DD(1,1)*SIG0(1) 267 : DEFS20 = DD(2,2)*SIG0(2) 268 : c 269 : if (sig0(3).lt.sigsei) then 270 : DEFN0 = ( -1.0d0*ecn ) + ( (sig0(3) - sigsei) / ef ) 271 : else if ( (sig0(3).ge.sigsei) .and. (sig0(3).le.presp) ) then 272 : DEFN0 = DD(3,3)*SIG0(3) 273 : else if (sig0(3).gt.presp) then 274 : C 275 : C AM CORRECTION POUR JOINT AVEC RESISTANCE EN TRACTION 276 : C 277 : C DEFN0 = 0.0D0 278 : DEFN0 = DD(3,3)*SIG0(3) 279 : endif 280 : C 281 : C DEFORMATIONS TOTALES AU PAS PRECEDENT N 282 : C 283 : EPS1N = EPSS1 + DEFS10 284 : EPS2N = EPSS2 + DEFS20 285 : EPSNN = EPSN1 + DEFN0 286 : C 287 : ENDIF 288 : C 289 : C 290 : C 291 : C 292 : C ----CAS DU 2ND PASSAGE : D'UN ETAT FERME ON PASSE A UN ETAT COMPRIME 293 : C 294 : C 295 : C 296 : C 297 : IF (IFIN.EQ.1) THEN 298 : C 299 : C--------------------CALCUL DE L ETAT DE CONTRAINTES, DE DEFORMATIONS 300 : C--------------------DES VARIABLES INTERNES AU PAS PRECEDENT 301 : C 302 : C------CHARGEMENT DES VALEURS AU PAS PRECEDENT 303 : C 304 : C----------DEFORMATIONS 305 : C 306 : C DEFORMATIONS INELASTIQUES 307 : C 308 : EPSS1 = DEFP11 309 : EPSS2 = DEFP21 310 : EPSN1 = 0.0D0 311 : C 312 : C DEFORMATIONS ELASTIQUES 313 : C 314 : DEFS10 = DD(1,1)*S1INT 315 : DEFS20 = DD(2,2)*S2INT 316 : DEFN0 = 0.0D0 317 : C 318 : C DEFORMATIONS TOTALES AU PAS PRECEDENT N 319 : C 320 : EPS1N = EPSS1 + DEFS10 321 : EPS2N = EPSS2 + DEFS20 322 : EPSNN = EPSN1 + DEFN0 323 : C 324 : ENDIF 325 : C 326 : C ESTIMATION DE LA DEFO. TOTALE AU PAS N+1 327 : C 328 : EP1NP1 = EPS1N + DEPS1 329 : EP2NP1 = EPS2N + DEPS2 330 : EPNNP1 = EPSNN + DEPSN 331 : C 332 : C----------EPSILON ELASTIQUE (1 2 N) AU PAS N+1 A L'ITERATION 0 333 : C 334 : EE1P10 = DEFS10 + DEPS1 335 : EE2P10 = DEFS20 + DEPS2 336 : EENP10 = DEFN0 + DEPSN 337 : C 338 : C----------SIGMA (1 2 N) AU PAS N+1 A L'ITERATION 0 339 : C 340 : S1NP10 = G1 * EE1P10 341 : S2NP10 = G2 * EE2P10 342 : c 343 : x6 = -1.0d0 * ecn 344 : c 345 : C AM CORRECTION POUR JOINT AVEC RESISTANCE EN TRACTION 346 : C 347 : C if (depsn.lt.preem) then 348 : IF (DEPSN.LT.PREEM.AND.SIG0(3).LE.PRESP) THEN 349 : c 350 : c -----------fermeture du joint 351 : c 352 : * if (epnnp1.le.preep) then 353 : if (epnnp1.lt.preep) then 354 : c 355 : c --------------fermeture du joint avec compression des levres 356 : c 357 : if ( (eenp10.ge.x6) .and. (eenp10.le.preep) ) then 358 : c 359 : c ----------------compression : pente EC 360 : c 361 : SNNP10 = EC * EENP10 362 : endif 363 : c 364 : if (eenp10.lt.x6) then 365 : c 366 : c ----------------compression : pente Ef 367 : c 368 : snnp10= ( EC * x6 ) +( (eenp10 + ECN) * EF ) 369 : endif 370 : c 371 : endif 372 : c 373 : * if ((epnnp1.gt.preep).or.(indic.eq.1)) then 374 : if ((epnnp1.ge.preep).or.(indic.eq.1)) then 375 : c 376 : c --------------rapprochement des levres sans compression 377 : c 378 : SNNP10 = 0.0D0 379 : c 380 : endif 381 : c 382 : ELSE 383 : c 384 : c -----------ouverture du joint OU FERMETURE SI JOINT PAS CASSE 385 : c 386 : SNNP10 = EC * EENP10 387 : c 388 : endif 389 : C 390 : C-----------VARIABLES INTERNES 391 : C 392 : C DEFORMATION PLASTIQUE EQUIVALENTE 393 : C 394 : EPSEQ=VAR0(1) 395 : C 396 : C DEFORMATION PLASTIQUE DUE A L'OUVERTURE SEULE 397 : C 398 : EPOUN=VAR0(2) 399 : C 400 : C ETAT DU JOINT 401 : C 402 : C STAT = 0 LEVRES EN CONTACT, AVEC OU SANS CISAILLEMENT 403 : C STAT = 1 JOINT EN OUVERTURE PENTE EC 404 : C STAT = 2 JOINT EN FERMETURE PENTE EC 405 : C STAT = 3 JOINT EN FERMETURE PENTE EF 406 : C 407 : C 408 : C 409 : STAT =VAR0(3) 410 : C 411 : C MULTIPLICATEUR PLASTIQUE EN TRACTION 412 : C 413 : XLAM1=VAR0(4) 414 : C 415 : C MISE A 0 DE LA LIMITE EN TRACTION SI DEJA CASSE OU SI JEU 416 : C 417 : RTRAC=FTRC 418 : IF(XLAM1.GT.0.D0) RTRAC=0.D0 419 : 420 : C 421 : C 422 : C-----------ETUDE DE L'ECOULEMENT SELON LES DIFFERENTS CRITERES 423 : C 424 : CRICIS = CALG(S1NP10,S2NP10,SNNP10,PHI,C) 425 : CRINOR = SNNP10 - RTRAC 426 : CRICIP = CALN(S1NP10,S2NP10,SNNP10,PHI,C) 427 : ABSTAU = SQRT( (S1NP10 ** 2) + (S2NP10 ** 2) ) 428 : C 429 : C----------AIGUILLAGE SUIVANT LA ZONE 0, 1, 2, 3 430 : C 431 : IF ((CRICIS.LE.PRECIS).AND.(CRINOR.LE.PRECIS)) THEN 432 : GO TO 10 433 : ENDIF 434 : C 435 : IF ((CRICIS.GT.PRECIS).AND.(CRICIP.LE.PRECIS)) THEN 436 : GO TO 40 437 : ENDIF 438 : C 439 : * IF ((CRICIP.GT.PRECIS).AND.(ABSTAU.GT.C)) THEN 440 : IF ((CRICIP.GT.PRECIS).AND.(ABSTAU.GT.PRECIS)) THEN 441 : GO TO 20 442 : ENDIF 443 : C 444 : * IF ((ABSTAU.LE.C).AND.(CRINOR.GT.PRECIN)) THEN 445 : IF ((ABSTAU.LE.PRECIS).AND.(CRINOR.GT.PRECIN)) THEN 446 : GO TO 30 447 : ENDIF 448 : C 449 : C-----------CAS DE LA CONVERGENCE A L ITERATION 0 : 450 : C 451 : 10 CONTINUE 452 : C 453 : C----------CHARGEMENT DES VALEURS DE CONTRAINTES, DEFORMATIONS, 454 : C----------VARIABLES INTERNES APRES CONVERGENCE INTERNE 455 : C 456 : C 457 : IF (IMPRI.EQ.1) THEN 458 : WRITE(6,*) 'PASSAGE N. 1' 459 : WRITE(6,*) 'LES DEUX CRITERES SONT VERIFIES' 460 : WRITE(6,*) 'CONVERGENCE A L ITERATION 0' 461 : ENDIF 462 : C 463 : IF (INDIC.EQ.1) THEN 464 : C FERMETURE DU JOINT SANS COMPRESSION 465 : S1INT = S1NP10 466 : DEFP11= 0.0D0 467 : S2INT = S2NP10 468 : DEFP21= 0.0D0 469 : DEFPN = -epin0(3) 470 : GO TO 98 471 : C 472 : ELSE 473 : C 474 : IF (IFIN.EQ.0) THEN 475 : C 476 : C 477 : c 478 : defp(1)=0.0d0 479 : defp(2)=0.0d0 480 : C 481 : if ( abs(snnp10).le.presp ) then 482 : c 483 : c deformation plastique du pas (n+1) moins 484 : c deformation plastique du pas (n) 485 : c 486 : defp(3) = epnnp1 - epsn1 487 : c 488 : else 489 : c 490 : c le joint se deforme toujours elastiquement en fermeture 491 : c 492 : DEFP(3) = 0.0D0 493 : c 494 : endif 495 : c 496 : ELSE 497 : c 498 : c cas du passage direct d'un etat ouvert a un etat 499 : c comprime 500 : c 501 : DEFP12 = 0.0D0 502 : DEFP(1) = 0.0d0 503 : DEFP22 = 0.0D0 504 : DEFP(2) = 0.0d0 505 : cc DEFP(3) = 0.0d0 506 : DEFP(3) = defpn 507 : IFIN = 0 508 : ENDIF 509 : C 510 : C CALCUL DES VARIABLES INTERNES : DEPEQ STAT EPOUN 511 : C 512 : c 513 : c calcul du delta epsilon plastique entre 514 : c le pas actuel et le pas precedent 515 : c 516 : delep1 = defp(1) 517 : delep2 = defp(2) 518 : delepn = defp(3) 519 : c 520 : c produit contracte pour le calcul de la defo. plasti. cumulee 521 : c 522 : pro1=(delep1 * delep1) + (delep2 * delep2) + (delepn * delepn) 523 : depeq = sqrt( (2.0D0/3.0D0) * pro1 ) 524 : VARF(1) = EPSEQ + DEPEQ 525 : VARF(4) = XLAM1 526 : c 527 : c calcul de la deformation normale due a l'ouverture seule 528 : c 529 : if ( abs(snnp10).le.presp ) then 530 : epoun = defp(3) 531 : VARF(2) = EPOUN 532 : else 533 : epoun = 0.0d0 534 : VARF(2) = EPOUN 535 : endif 536 : c 537 : c etat du joint stat = 0 cisaillement pur, levres en contact 538 : c stat = 1 ouverture du joint pente EC 539 : c stat = 2 compression du joint pente EC 540 : c stat = 3 compression du joint pente EF 541 : c 542 : if ( abs(snnp10).le.presp) then 543 : stat = 1.D0 544 : if ( abs(epnnp1).le.1.D-3 ) then 545 : stat = 0.D0 546 : endif 547 : VARF(3) = STAT 548 : endif 549 : if ( (snnp10.gt.sigsei).and.(snnp10.lt.presm) ) then 550 : stat = 2.D0 551 : VARF(3) = STAT 552 : endif 553 : if (snnp10.le.sigsei) then 554 : stat = 3.D0 555 : VARF(3) = STAT 556 : endif 557 : C 558 : SIGF(1) = S1NP10 559 : SIGF(2) = S2NP10 560 : SIGF(3) = SNNP10 561 : C 562 : GOTO 9900 563 : c 564 : ENDIF 565 : C 566 : C----------CRITERES DE L'EFFORT NORMAL ET DE CISAILLEMENT 567 : C----------TOUS LES DEUX VIOLES EN MEME TEMPS 568 : C 569 : 20 CONTINUE 570 : C 571 : C ECOULEMENT SELON LES DEUX CRITERES A L'ITERATION ITER 572 : C 573 : ITER = 1 574 : DELAM1=0.D0 575 : C 576 : 2 CONTINUE 577 : C 578 : IF (ITER.GT.MAXITE) THEN 579 : WRITE(6,*) ' LES DEUX CRITERES SONT VIOLES ' 580 : WRITE(6,*) ' DIVERGENCE APRES 1000 ITERATIONS INTERNES' 581 : STOP 582 : ENDIF 583 : C 584 : IF (IMPRI.EQ.1) THEN 585 : write(6,*) 'PASSAGE N. 2' 586 : write(6,*) 'LES DEUX CRITERES SONT VIOLES' 587 : write(6,*) 'ITERATION',ITER 588 : ENDIF 589 : C 590 : C 591 : C CALCUL DES CORRECTEURS PLASTIQUES 592 : C 593 : C 594 : C DERIVEE DU CRITERE F SUIVANT SIGMA 595 : C 596 : DFIDS1 = 0.0D0 597 : DFIDS2 = 0.0D0 598 : DFIDSN = 1.0D0 599 : C 600 : C DERIVEE DU CRITERE G SUIVANT SIGMA 601 : C 602 : DENO = SQRT ( (S1NP10**2) + (S2NP10**2) ) 603 : DGIDS1 = S1NP10 / DENO 604 : DGIDS2 = S2NP10 / DENO 605 : DGIDSN = TAN(PHI) 606 : DZGIDS = TAN(ZMU) 607 : C 608 : C MATRICE DE HOOK * DFI/DSIGMA 609 : C 610 : HODF1 = G1 * DFIDS1 611 : HODF2 = G2 * DFIDS2 612 : HODFN = EC * DFIDSN 613 : C 614 : C MATRICE DE HOOK * DGI/DSIGMA 615 : C 616 : HODG1 = G1 * DGIDS1 617 : HODG2 = G2 * DGIDS2 618 : HODGN = EC * DZGIDS 619 : C 620 : C FIFI = DFI/DSIGMA * MATRICE DE HOOK * DFI/DSIGMA 621 : C 622 : FIFI = (DFIDS1 * HODF1) + (DFIDS2 * HODF2) + (DFIDSN * HODFN) 623 : C 624 : C FIGI = DFI/DSIGMA * MATRICE DE HOOK * DGI/DSIGMA 625 : C 626 : FIGI = (DFIDS1 * HODG1) + (DFIDS2 * HODG2) + (DFIDSN * HODGN) 627 : C 628 : C GIFI = DGI/DSIGMA * MATRICE DE HOOK * DFI/DSIGMA 629 : C 630 : GIFI = (DGIDS1 * HODF1) + (DGIDS2 * HODF2) + (DGIDSN * HODFN) 631 : C 632 : C GIFI = DGI/DSIGMA * MATRICE DE HOOK * DFI/DSIGMA 633 : C 634 : GIGI = (DGIDS1 * HODG1) + (DGIDS2 * HODG2) + (DGIDSN * HODGN) 635 : C 636 : C RESOLUTION DU SYSTEME POUR TROUVER LES CORRECTEURS 637 : C PLASTIQUES DLAM1 ET DLAM2 638 : C 639 : DET = (FIFI * GIGI) - (FIGI * GIFI) 640 : C 641 : IF (ABS(DET).LE.PRECIS) THEN 642 : WRITE(6,*) ' SYSTEME INDETERMINE (F G): ITERATION ',ITER 643 : STOP 644 : ENDIF 645 : C 646 : DLAM1 = (CRINOR * GIGI) - (CRICIS * FIGI) 647 : DLAM1 = DLAM1 / DET 648 : DELAM1 = DELAM1 + DLAM1 649 : RTRAC=0.D0 650 : C 651 : DLAM2 = (CRICIS * FIFI) - (CRINOR * GIFI) 652 : DLAM2 = DLAM2 / DET 653 : C 654 : C CALCUL DU NOUVEL ETAT DE CONTRAINTES 655 : C 656 : S1NP11=S1NP10 - (G1 * ( (DLAM1*DFIDS1) + (DLAM2*DGIDS1))) 657 : S2NP11=S2NP10 - (G2 * ( (DLAM1*DFIDS2) + (DLAM2*DGIDS2))) 658 : SNNP11=SNNP10 - (EC * ( (DLAM1*DFIDSN) + (DLAM2*DZGIDS))) 659 : C 660 : C ALLER EN 52 POUR LE TEST DE LA CONVERGENCE 661 : GOTO 52 662 : C 663 : C 664 : 52 CONTINUE 665 : C 666 : C CONVERGENCE CHECK 667 : C 668 : CRICIS = CALG(S1NP11,S2NP11,SNNP11,PHI,C) 669 : CRINOR = SNNP11 - RTRAC 670 : C 671 : IF ((ABS(CRICIS).LE.PRECIS).AND.(ABS(CRINOR).LE.PRECIS)) THEN 672 : C 673 : C----------LES DEUX CRITERES SONT VERIFIES 674 : C 675 : C 676 : IF (IMPRI.EQ.1) THEN 677 : write(6,*) 'PASSAGE N. 5 - 2' 678 : write(6,*) 'LES DEUX CRITERES SONT VERIFIES' 679 : write(6,*) 'CONVERGENCE A L ITERATION',ITER 680 : ENDIF 681 : C 682 : C----------CHARGEMENT DES VALEURS DE CONTRAINTES, DEFORMATIONS, 683 : C----------VARIABLES INTERNES APRES CONVERGENCE INTERNE 684 : C 685 : C 686 : SIGF(1) = S1NP11 687 : SIGF(2) = S2NP11 688 : SIGF(3) = SNNP11 689 : C 690 : DEFP(1) = ( EP1NP1 - ( DD(1,1) * SIGF(1) ) ) - EPSS1 691 : DEFP(2) = ( EP2NP1 - ( DD(2,2) * SIGF(2) ) ) - EPSS2 692 : c 693 : if ( abs(sigf(3)) .le. presp ) then 694 : c 695 : c deformation plastique du pas (n+1) moins 696 : c deformation plastique du pas (n) 697 : c 698 : DEFP(3) = EPNNP1 - EPSN1 699 : else 700 : c 701 : c le joint se deforme toujours elastiquement en fermeture 702 : c 703 : DEFP(3) = 0.0D0 704 : c 705 : endif 706 : C 707 : C CALCUL DES VARIABLES INTERNES : DEPEQ STAT EPOUN 708 : C 709 : c 710 : c calcul du delta epsilon plastique entre 711 : c le pas actuel et le pas precedent 712 : c 713 : delep1 = defp(1) 714 : delep2 = defp(2) 715 : delepn = defp(3) 716 : c 717 : c produit contracte pour le calcul de la defo. plasti. cumulee 718 : c 719 : pro1=(delep1 * delep1) + (delep2 * delep2) + (delepn * delepn) 720 : depeq = sqrt( (2.0D0/3.0D0) * pro1 ) 721 : VARF(1) = EPSEQ + DEPEQ 722 : VARF(4) = XLAM1 + DELAM1 723 : c 724 : c calcul de la deformation normale due a l'ouverture seule 725 : c 726 : if ( abs(snnp11).le.presp ) then 727 : epoun = delepn 728 : VARF(2) = EPOUN 729 : else 730 : epoun = 0.0d0 731 : VARF(2) = EPOUN 732 : endif 733 : c 734 : c etat du joint 735 : c stat = 0 levres en contact, avec ou sans cisaillement 736 : c stat = 1 ouverture du joint pente EC 737 : c stat = 2 compression du joint pente EC 738 : c stat = 3 compression du joint pente EF 739 : c 740 : if ( abs(snnp11).le.presp ) then 741 : stat = 1.D0 742 : if ( abs(epnnp1).le.1.D-8 ) then 743 : stat = 0.D0 744 : endif 745 : VARF(3) = STAT 746 : endif 747 : if ( (snnp11.gt.sigsei).and.(snnp11.lt.presm) ) then 748 : stat = 2.D0 749 : VARF(3) = STAT 750 : endif 751 : if (snnp11.le.sigsei) then 752 : stat = 3.D0 753 : VARF(3) = STAT 754 : endif 755 : c 756 : GOTO 9900 757 : ELSE 758 : C 759 : S1NP10=S1NP11 760 : S2NP10=S2NP11 761 : SNNP10=SNNP11 762 : CRICIS = CALG(S1NP10,S2NP10,SNNP10,PHI,C) 763 : CRINOR = SNNP10 - RTRAC 764 : ITER = ITER + 1 765 : C 766 : GO TO 2 767 : ENDIF 768 : C 769 : C 770 : C____________________________________________________________________ 771 : C 772 : C 773 : C----------CRITERE DE L'EFFORT NORMAL VIOLE MAIS 774 : C----------CRITERE DE CISAILLEMENT VERIFIE 775 : C 776 : 30 CONTINUE 777 : C 778 : C ECOULEMENT SELON LE CRITERE F A L'ITERATION ITER 779 : C 780 : ITER = 1 781 : DELAM1=0.D0 782 : C 783 : 3 CONTINUE 784 : C 785 : IF (ITER.GT.MAXITE) THEN 786 : WRITE(6,*) ' LE CRITERE NORMAL EST VIOLE ' 787 : WRITE(6,*) ' DIVERGENCE APRES 1000 ITERATIONS INTERNES' 788 : STOP 789 : ENDIF 790 : C 791 : IF (IMPRI.EQ.1) THEN 792 : write(6,*) 'PASSAGE N. 3' 793 : write(6,*) 'CRITERE DE L EFFORT NORMAL VIOLE' 794 : write(6,*) 'ITERATION',ITER 795 : ENDIF 796 : C 797 : C 798 : C 799 : C CALCUL DU CORRECTEUR PLASTIQUE 800 : C 801 : C 802 : C DERIVEE DU CRITERE F SUIVANT SIGMA 803 : C 804 : DFIDS1 = 0.0D0 805 : DFIDS2 = 0.0D0 806 : DFIDSN = 1.0D0 807 : C 808 : C MATRICE DE HOOK * DGI/DSIGMA 809 : C 810 : HODF1 = G1 * DFIDS1 811 : HODF2 = G2 * DFIDS2 812 : HODFN = EC * DFIDSN 813 : C 814 : C FIFI = DFI/DSIGMA * MATRICE DE HOOK * DFI/DSIGMA 815 : C 816 : FIFI = (DFIDS1 * HODF1) + (DFIDS2 * HODF2) + (DFIDSN * HODFN) 817 : C 818 : C RESOLUTION DE L'EQUATION POUR TROUVER LE CORRECTEUR 819 : C PLASTIQUE DLAM1 820 : C 821 : IF (ABS(FIFI).LE.PRECIS) THEN 822 : WRITE(6,*) ' SYSTEME INDETERMINE (F) : ITERATION ',ITER 823 : STOP 824 : ENDIF 825 : C 826 : DLAM1 = CRINOR / FIFI 827 : DELAM1 = DELAM1 + DLAM1 828 : RTRAC = 0.D0 829 : C 830 : C CALCUL DU NOUVEL ETAT DE CONTRAINTES 831 : C 832 : S1NP11=S1NP10 - (G1 * (DLAM1*DFIDS1) ) 833 : S2NP11=S2NP10 - (G2 * (DLAM1*DFIDS2) ) 834 : SNNP11=SNNP10 - ( EC * (DLAM1*DFIDSN) ) 835 : C 836 : C ALLER EN 53 POUR LE TEST DE LA CONVERGENCE 837 : GOTO 53 838 : C 839 : C 840 : C 841 : 53 CONTINUE 842 : C 843 : C CONVERGENCE CHECK 844 : C 845 : CRICIS = CALG(S1NP11,S2NP11,SNNP11,PHI,C) 846 : CRINOR = SNNP11 - RTRAC 847 : C 848 : IF (ABS(CRINOR).LE.PRECIS) THEN 849 : C 850 : C----------LES DEUX CRITERES SONT VERIFIES 851 : C 852 : C 853 : IF (IMPRI.EQ.1) THEN 854 : write(6,*) 'PASSAGE N. 5 - 3' 855 : write(6,*) 'LES DEUX CRITERES SONT VERIFIES' 856 : write(6,*) 'CONVERGENCE A L ITERATION',ITER 857 : ENDIF 858 : C 859 : C----------CHARGEMENT DES VALEURS DE CONTRAINTES, DEFORMATIONS, 860 : C----------VARIABLES INTERNES APRES CONVERGENCE INTERNE 861 : C 862 : C 863 : SIGF(1) = S1NP11 864 : SIGF(2) = S2NP11 865 : SIGF(3) = SNNP11 866 : C 867 : DEFP(1) = ( EP1NP1 - ( DD(1,1) * SIGF(1) ) ) - EPSS1 868 : DEFP(2) = ( EP2NP1 - ( DD(2,2) * SIGF(2) ) ) - EPSS2 869 : c 870 : if ( abs(sigf(3)) .le. presp ) then 871 : c 872 : c deformation plastique du pas (n+1) moins 873 : c deformation plastique du pas (n) 874 : c 875 : DEFP(3) = EPNNP1 - EPSN1 876 : else 877 : c 878 : c le joint se deforme toujours elastiquement en fermeture 879 : c 880 : DEFP(3) = 0.0D0 881 : c 882 : endif 883 : C 884 : C CALCUL DES VARIABLES INTERNES : DEPEQ STAT EPOUN 885 : C 886 : c 887 : c calcul du delta epsilon plastique entre 888 : c le pas actuel et le pas precedent 889 : c 890 : delep1 = defp(1) 891 : delep2 = defp(2) 892 : delepn = defp(3) 893 : c 894 : c produit contracte pour le calcul de la defo. plasti. cumulee 895 : c 896 : pro1=(delep1 * delep1) + (delep2 * delep2) + (delepn * delepn) 897 : depeq = sqrt( (2.0D0/3.0D0) * pro1 ) 898 : VARF(1) = EPSEQ + DEPEQ 899 : VARF(4) = XLAM1 + DELAM1 900 : c 901 : c calcul de la deformation normale due a l'ouverture seule 902 : c 903 : if ( abs(snnp11).le.presp ) then 904 : epoun = delepn 905 : VARF(2) = EPOUN 906 : else 907 : epoun = 0.0d0 908 : VARF(2) = EPOUN 909 : endif 910 : c 911 : c etat du joint 912 : c stat = 0 levres en contact, avec ou sans cisaillement 913 : c stat = 1 ouverture du joint pente EC 914 : c stat = 2 compression du joint pente EC 915 : c stat = 3 compression du joint pente EF 916 : c 917 : if ( abs(snnp11).le.presp ) then 918 : stat = 1.D0 919 : if ( abs(epnnp1).le.1.D-8 ) then 920 : stat = 0.D0 921 : endif 922 : VARF(3) = STAT 923 : endif 924 : if ( (snnp11.gt.sigsei).and.(snnp11.lt.presm) ) then 925 : stat = 2.D0 926 : VARF(3) = STAT 927 : endif 928 : if (snnp11.le.sigsei) then 929 : stat = 3.D0 930 : VARF(3) = STAT 931 : endif 932 : c 933 : GOTO 9900 934 : ELSE 935 : C 936 : S1NP10=S1NP11 937 : S2NP10=S2NP11 938 : SNNP10=SNNP11 939 : CRICIS = CALG(S1NP10,S2NP10,SNNP10,PHI,C) 940 : CRINOR = SNNP10 - RTRAC 941 : ITER = ITER + 1 942 : C 943 : GO TO 3 944 : ENDIF 945 : C 946 : C 947 : C____________________________________________________________________ 948 : C 949 : C 950 : C 951 : C----------CRITERES DE CISAILLEMENT VIOLE MAIS 952 : C----------CRITERE DE L'EFFORT NORMAL VERIFIE 953 : C 954 : 40 CONTINUE 955 : C 956 : C ECOULEMENT SELON LE CRITERE G A L'ITERATION ITER 957 : C 958 : ITER = 1 959 : C 960 : 4 CONTINUE 961 : C 962 : IF (ITER.GT.MAXITE) THEN 963 : WRITE(6,*) ' LE CRITERE DE CISAILLEMENT EST VIOLE ' 964 : WRITE(6,*) ' DIVERGENCE APRES 1000 ITERATIONS INTERNES' 965 : STOP 966 : ENDIF 967 : C 968 : IF (IMPRI.EQ.1) THEN 969 : write(6,*) 'PASSAGE N. 4' 970 : write(6,*) 'CRITERE DE CISAILLEMENT VIOLE' 971 : write(6,*) 'ITERATION',ITER 972 : ENDIF 973 : C 974 : C 975 : C CALCUL DU CORRECTEUR PLASTIQUE 976 : C 977 : C 978 : C DERIVEE DU CRITERE G SUIVANT SIGMA 979 : C 980 : DENO = SQRT ( (S1NP10**2) + (S2NP10**2) ) 981 : DGIDS1 = S1NP10 / DENO 982 : DGIDS2 = S2NP10 / DENO 983 : DZGIDS = TAN(ZMU) 984 : DGIDSN = TAN(PHI) 985 : C 986 : C MATRICE DE HOOK * DGI/DSIGMA 987 : C 988 : HODG1 = G1 * DGIDS1 989 : HODG2 = G2 * DGIDS2 990 : HODGN = EC * DZGIDS 991 : C 992 : C GIGI = DGI/DSIGMA * MATRICE DE HOOK * DGI/DSIGMA 993 : C 994 : GIGI = (DGIDS1 * HODG1) + (DGIDS2 * HODG2) + (DGIDSN * HODGN) 995 : C 996 : C RESOLUTION DE L'EQUATION POUR TROUVER LE CORRECTEUR 997 : C PLASTIQUE DLAM2 998 : C 999 : IF (ABS(GIGI).LE.PRECIS) THEN 1000 : WRITE(6,*) ' SYSTEME INDETERMINE (G) : ITERATION ',ITER 1001 : STOP 1002 : ENDIF 1003 : C 1004 : DLAM2 = CRICIS / GIGI 1005 : C 1006 : C CALCUL DU NOUVEL ETAT DE CONTRAINTES 1007 : C 1008 : cc SNNP11=SNNP10 - (EC * (DLAM2*DGIDSN) ) 1009 : C 1010 : S1NP11=S1NP10 - (G1 * (DLAM2*DGIDS1) ) 1011 : S2NP11=S2NP10 - (G2 * (DLAM2*DGIDS2) ) 1012 : SNNP11=SNNP10 - (EC * (DLAM2*DZGIDS) ) 1013 : c 1014 : if (SNNP11.ge.0.0d0) then 1015 : SNNP11 = 0.0d0 1016 : endif 1017 : c 1018 : cccssszzzeeerrr if (SNNP11.GE.0.0d0) THEN 1019 : cccssszzzeeerrr SNNP11 = 0.0d0 1020 : cccssszzzeeerrr ENDIF 1021 : cccssszzzeeerrrc 1022 : cccssszzzeeerrr if (abs(zmu).le.presp) then 1023 : cccssszzzeeerrr differ = abs( depsn ) - epsn1 1024 : cccssszzzeeerrr differ = abs(differ)/abs( depsn ) 1025 : cccssszzzeeerrr if (depsn.lt.preem) then 1026 : cccssszzzeeerrr if (epnnp1.gt.preem) then 1027 : cccssszzzeeerrr SNNP11 = 0.0d0 1028 : cccssszzzeeerrr endif 1029 : cccssszzzeeerrr else 1030 : cccssszzzeeerrrc 1031 : cccssszzzeeerrr SNNP11 = 0.0d0 1032 : cccssszzzeeerrr endif 1033 : cccssszzzeeerrr endif 1034 : C 1035 : C ALLER EN 54 POUR LE TEST DE LA CONVERGENCE 1036 : GOTO 54 1037 : C 1038 : C 1039 : C 1040 : 54 CONTINUE 1041 : C 1042 : C CONVERGENCE CHECK 1043 : C 1044 : CRICIS = CALG(S1NP11,S2NP11,SNNP11,PHI,C) 1045 : CRINOR = SNNP11 - RTRAC 1046 : C 1047 : IF (ABS(CRICIS).LE.PRECIS) THEN 1048 : C 1049 : IF (INDIC.EQ.1) THEN 1050 : C 1051 : C----------1ER TRAJET : ON PARCOURT ALP * DEPSN 1052 : C 1053 : DEFPN = -epin0(3) 1054 : S1INT = S1NP11 1055 : S2INT = S2NP11 1056 : DEFP11 = EP1NP1 - ( DD(1,1) * S1NP11 ) 1057 : DEFP21 = EP2NP1 - ( DD(2,2) * S2NP11 ) 1058 : GO TO 98 1059 : ELSE 1060 : IF (IFIN.EQ.0) THEN 1061 : C 1062 : C 1063 : C----------LES DEUX CRITERES SONT VERIFIES 1064 : C 1065 : C 1066 : IF (IMPRI.EQ.1) THEN 1067 : write(6,*) 'PASSAGE N. 5 - 4' 1068 : write(6,*) 'LES DEUX CRITERES SONT VERIFIES' 1069 : write(6,*) 'CONVERGENCE A L ITERATION',ITER 1070 : ENDIF 1071 : C 1072 : C----------CHARGEMENT DES VALEURS DE CONTRAINTES, DEFORMATIONS, 1073 : C----------VARIABLES INTERNES APRES CONVERGENCE INTERNE 1074 : C 1075 : C 1076 : SIGF(1) = S1NP11 1077 : SIGF(2) = S2NP11 1078 : SIGF(3) = SNNP11 1079 : C 1080 : DEFP(1) = ( EP1NP1 - ( DD(1,1) * SIGF(1) ) ) - EPSS1 1081 : DEFP(2) = ( EP2NP1 - ( DD(2,2) * SIGF(2) ) ) - EPSS2 1082 : c 1083 : if ( abs(sigf(3)) .le. presp ) then 1084 : c 1085 : c deformation plastique du pas (n+1) moins 1086 : c deformation plastique du pas (n) 1087 : c 1088 : DEFP(3) = EPNNP1 - EPSN1 1089 : else 1090 : c 1091 : c le joint se deforme toujours elastiquement en fermeture 1092 : c 1093 : DEFP(3) = 0.0D0 1094 : c 1095 : endif 1096 : ELSE 1097 : C 1098 : C----------CAS DU PASSAGE DIRECT D'UN ETAT OUVERT A UN ETAT COMPRIME 1099 : C 1100 : DEFP12 = EP1NP1 - (DD(1,1)*S1NP11) 1101 : DEFP22 = EP2NP1 - (DD(2,2)*S2NP11) 1102 : DEFP(1) = DEFP12 - epin0(1) 1103 : DEFP(2) = DEFP22 - epin0(2) 1104 : DEFP(3) = -epin0(3) 1105 : SIGF(1) = S1NP11 1106 : SIGF(2) = S2NP11 1107 : SIGF(3) = SNNP11 1108 : IFIN = 0 1109 : ENDIF 1110 : C 1111 : ENDIF 1112 : C 1113 : C CALCUL DES VARIABLES INTERNES : DEPEQ STAT EPOUN 1114 : C 1115 : c 1116 : c calcul du delta epsilon plastique entre 1117 : c le pas actuel et le pas precedent 1118 : c 1119 : delep1 = defp(1) 1120 : delep2 = defp(2) 1121 : delepn = defp(3) 1122 : c 1123 : c produit contracte pour le calcul de la defo. plasti. cumulee 1124 : c 1125 : pro1=(delep1 * delep1) + (delep2 * delep2) + (delepn * delepn) 1126 : depeq = sqrt( (2.0D0/3.0D0) * pro1 ) 1127 : 1128 : VARF(1) = EPSEQ + DEPEQ 1129 : VARF(4) = XLAM1 1130 : c 1131 : c calcul de la deformation normale due a l'ouverture seule 1132 : c 1133 : if ( abs(snnp11).le.presp ) then 1134 : epoun = delepn 1135 : VARF(2) = EPOUN 1136 : else 1137 : epoun = 0.0d0 1138 : VARF(2) = EPOUN 1139 : endif 1140 : c 1141 : c etat du joint 1142 : c stat = 0 levres en contact, avec ou sans cisaillement 1143 : c stat = 1 ouverture du joint pente EC 1144 : c stat = 2 compression du joint pente EC 1145 : c stat = 3 compression du joint pente EF 1146 : c 1147 : if ( abs(snnp11).le.presp ) then 1148 : stat = 1.D0 1149 : if ( abs(epnnp1).le.1.D-8 ) then 1150 : stat = 0.D0 1151 : endif 1152 : VARF(3) = STAT 1153 : endif 1154 : if ( (snnp11.gt.sigsei).and.(snnp11.lt.presm) ) then 1155 : stat = 2.D0 1156 : VARF(3) = STAT 1157 : endif 1158 : if (snnp11.le.sigsei) then 1159 : stat = 3.D0 1160 : VARF(3) = STAT 1161 : endif 1162 : c 1163 : GOTO 9900 1164 : ELSE 1165 : C 1166 : S1NP10=S1NP11 1167 : S2NP10=S2NP11 1168 : SNNP10=SNNP11 1169 : CRICIS = CALG(S1NP10,S2NP10,SNNP10,PHI,C) 1170 : CRINOR = SNNP10 - RTRAC 1171 : ITER = ITER + 1 1172 : C 1173 : GO TO 4 1174 : ENDIF 1175 : C 1176 : C 1177 : C____________________________________________________________________ 1178 : C 1179 : 9900 CONTINUE 1180 : C ----------CONTRAINTES A LA FIN DU PAS POUR LES 3 DIRECTIONS 1181 : SIGF1(IDIR1)=SIGF(1) 1182 : SIGF1(IDIR2)=SIGF(2) 1183 : SIGF1(IDIRN)=SIGF(3) 1184 : C 1185 : I1=4 1186 : I2=6 1187 : IF (IDIRN.GE.4) THEN 1188 : I1=1 1189 : I2=3 1190 : ENDIF 1191 : DO 350 I=I1,I2 1192 : SIGF1(I)=XZERO 1193 : IF (VARF(3).EQ.1.D0) GOTO 350 1194 : DO 300 J=I1,I2 1195 : SIGF1(I)=SIGF1(I)+TRAID(I,J)*(EPST00(J)+DEPST0(J)) 1196 : 300 CONTINUE 1197 : 350 CONTINUE 1198 : C 1199 : C ----------DEF. PLASTIQUES A LA FIN DU PAS POUR LES 3 DIRECTIONS 1200 : DO I=1,3 1201 : VARF(IDEBLA+I)=EPIN0(I)+DEFP(I) 1202 : END DO 1203 : C 1204 : DEFP1(IDIR1)=VARF(IDEBLA+1) 1205 : DEFP1(IDIR2)=VARF(IDEBLA+2) 1206 : DEFP1(IDIRN)=VARF(IDEBLA+3) 1207 : C 1208 : RETURN 1209 : END 1210 : 1211 : 1212 : 1213 :
© Cast3M 2003 - All rights reserved.
Disclaimer