Download coul1.eso

Back to the list

   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