Download amade2.eso

Back to the list

   1 : C AMADE2    SOURCE    CHAT      05/01/12    21:21:02     5004           
   2 : C AMADE2.eso     SOURCE     bald     MAR 28/03/95     00:00:00
   3 :       SUBROUTINE AMADE2(IB,IGAU,NSTRS,SIG0,EPIN0,VAR0,NVARI,
   4 :      &     DEPST,IFOURB,XMAT,NMATT,IVAL,SIGF,DEFP,VARF,KERRE)
   5 : C
   6 : C-----------------------------------------------------------------------
   7 : C
   8 : C         PLASTICITE MODELE 2D AMADEI-SAEB ELEMENTS JOINTS
   9 : C
  10 : C  ENTREES
  11 : C
  12 : C     IB              = NUMERO DE L'ELEMENT
  13 : C     IGAU            = NUMERO DU POINT DE GAUSS
  14 : C     NSTRS           = NOMBRE DE COMPOSANTES DE CONTRAINTES
  15 : C     SIG0(NSTRS)     = CONTRAINTES INITIALES (AU PAS PRECEDENT)
  16 : C     EPIN0(NSTRS)    = DEFORMATIONS INITIALES INEL. (AU PAS PRECEDENT)
  17 : C     VAR0(NVARI)     = VARIABLES INTERNES DEBUT
  18 : C      VAR0(1)        = DEFORMATION PLASTIQUE EQUIVALENTE: EPSE
  19 : C      VAR0(2)        = INCR. DEF. PLAST. DUE A L'OUVERTURE SEULE: EPOU
  20 : C      VAR0(3)        = ETAT DU JOINT: STAT
  21 : C      VAR0(4)        = U EQUIVALENTE: UEQU
  22 : C      VAR0(5)        = DEFORMATION TOTALE: EPS1
  23 : C      VAR0(6)        = DEFORMATION TOTALE: EPS2
  24 : C     NVARI           = NOMBRE DE VARIABLES INTERNES
  25 : C     DEPST(NSTRS)    = INCREMENTS DE DEFORMATION TOTALE
  26 : C     XMAT(NCOMAT)    = COMPOSANTES DE MATERIAU
  27 : C     NMATT           = NOMBRE DE COMPOSANTES DE MATERIAU
  28 : C     IVAL(NCOMAT)    = INDICE DES COMPOSANTES DE MATERIAU
  29 : C
  30 : C  SORTIES
  31 : C
  32 : C     SIGF(NSTRS)     = CONTRAINTES FINALES
  33 : C     DEFP(NSTRS)     = INCREMENTS DE DEFORMATIONS INELASTIQUES FINALES
  34 : C     VARF(NVARI)     = VARIABLES INTERNES FINALES
  35 : C     KERRE           = INDICE D'ERREUR
  36 : C
  37 : C
  38 : C-----------------------------------------------------------------------
  39 : c
  40 : c    déclaration des variables
  41 : c
  42 :       IMPLICIT INTEGER(I-N)
  43 :       IMPLICIT REAL*8(A-H,O-Z)
  44 : C    Include contenant quelques constantes dont XPI :
  45 : -INC CCREEL
  46 :       REAL*8 I0, K1, K2, KNI
  47 :       REAL*8 KNN, KNT, KTN, KTT
  48 : c
  49 :       DIMENSION SIG0(*), EPIN0(*), VAR0(*), DEPST(*), XMAT(*)
  50 :       DIMENSION SIGF(*), DEFP(*), VARF(*)
  51 :       DIMENSION RI0E(2,2), RI0P(2,2), DCON(2)
  52 : c
  53 : c    paramètres pour le calcul
  54 : c
  55 :       FATT=XPI/180.D0
  56 : c
  57 :       NN=100
  58 : c
  59 :       K1=1.5D0
  60 :       K2=4.0D0
  61 : c
  62 : c    tolérances pour définir la condition de plasticité selon sigma
  63 : c    et la condition de nullité des contraintes
  64 : c
  65 :       EPSS=1.D-6
  66 :       EPSI=1.D-6
  67 :       TOL1=1.D-20
  68 :       TOL2=1.D-15
  69 : c
  70 : c    extraction des caractéristiques du materiau
  71 : c
  72 :       FIMU=XMAT(5)*FATT
  73 :       SGMT=XMAT(6)
  74 :       I0=XMAT(7)*FATT
  75 :       S0=XMAT(8)
  76 :       B0=XMAT(9)
  77 :       UR=XMAT(10)
  78 :       UP=XMAT(11)
  79 :       KNI=XMAT(12)
  80 :       FI0=XMAT(13)*FATT
  81 :       VM=XMAT(14)
  82 : c
  83 : c    extraction de la variable EPOU
  84 : c
  85 :       EPOU=VAR0(2)
  86 : c
  87 : c    extraction de la variable UEQU
  88 : c
  89 :       UEQU=VAR0(4)
  90 : c
  91 : c    extraction des déformations totales
  92 : c
  93 :       EPS1=VAR0(5)
  94 :       EPS2=VAR0(6)
  95 : c
  96 : c    calcul des petits pas
  97 : c
  98 :       DU=DEPST(1)/NN
  99 :       DV=DEPST(2)/NN
 100 : c
 101 : c    incréments de déformation plastique finale
 102 : c
 103 :       DEFP(1)=0.D0
 104 :       DEFP(2)=0.D0
 105 : c
 106 : c    contraintes finales
 107 : c
 108 :       SIGF(1)=0.D0
 109 :       SIGF(2)=0.D0
 110 : c
 111 : c    variables internes finales
 112 : c
 113 :       VARF(1)=0.D0
 114 :       VARF(2)=0.D0
 115 :       VARF(3)=0.D0
 116 :       VARF(4)=0.D0
 117 :       VARF(5)=0.D0
 118 :       VARF(6)=0.D0
 119 : c
 120 : c **********************************************************************
 121 : c ********** test pour verifier la condition initiale du joint *********
 122 : c **********************************************************************
 123 : c
 124 :       IF(EPIN0(2).GT.EPSS)THEN
 125 : c
 126 : c    le joint est ouvert
 127 : c
 128 :          IF(DEPST(2).LT.(-EPIN0(2)-EPSI))THEN
 129 : c
 130 : c       il y a rapprochement des lèvres avec compression (1 cas)
 131 : c
 132 :             R0=ABS(EPIN0(2)/DEPST(2))
 133 : c
 134 :             NN=INT(ABS((EPIN0(2)+DEPST(2))/DV))
 135 : c
 136 :             EPOU=-EPIN0(2)
 137 : c
 138 :             EPIN0(1)=EPIN0(1)+R0*DEPST(1)
 139 :             EPIN0(2)=0.D0
 140 : c
 141 :             DEFP(1)=R0*DEPST(1)
 142 :             DEFP(2)=EPOU
 143 : c
 144 :             EPS1=EPS1+R0*DEPST(1)
 145 :             EPS2=EPS2+R0*DEPST(2)
 146 : c
 147 :          ELSE IF(DEPST(2).GT.(-EPIN0(2)+EPSS))THEN
 148 : c
 149 : c       il y a rapprochement des lèvres sans fermeture, ou elles restent
 150 : c       bloquées, ou elles s' éloignent (3 cas)
 151 : c
 152 :             SIGF(1)=0.D0
 153 :             SIGF(2)=0.D0
 154 : c
 155 :             DEFP(1)=DEPST(1)
 156 :             DEFP(2)=DEPST(2)
 157 : c
 158 :             DEDE1=EPIN0(1)+DEPST(1)
 159 :             DEDE2=EPIN0(2)+DEPST(2)
 160 : c
 161 :             VARF(1)=SQRT(2.D0/3.D0*(DEDE1**2+DEDE2**2))
 162 : c
 163 :             VARF(2)=DEPST(2)
 164 : c
 165 :             VARF(3)=1.D0
 166 : c
 167 :             VARF(4)=VAR0(4)
 168 : c
 169 :             VARF(5)=EPS1+DEPST(1)
 170 :             VARF(6)=EPS2+DEPST(2)
 171 : c
 172 :             RETURN
 173 : c
 174 :          ELSE
 175 : c
 176 : c       il y a fermeture sans compression (1 cas)
 177 : c
 178 :             SIGF(1)=0.D0
 179 :             SIGF(2)=0.D0
 180 : c
 181 :             DEFP(1)=DEPST(1)
 182 :             DEFP(2)=DEPST(2)
 183 : c
 184 :             DEDE1=EPIN0(1)+DEPST(1)
 185 :             DEDE2=EPIN0(2)+DEPST(2)
 186 : c
 187 :             VARF(1)=SQRT(2.D0/3.D0*(DEDE1**2+DEDE2**2))
 188 : c
 189 :             VARF(2)=DEPST(2)
 190 : c
 191 :             VARF(3)=0.D0
 192 : c
 193 :             VARF(4)=VAR0(4)
 194 : c
 195 :             VARF(5)=EPS1+DEPST(1)
 196 :             VARF(6)=EPS2+DEPST(2)
 197 : c
 198 :             RETURN
 199 : c
 200 :          END IF
 201 : c
 202 :       ELSE IF((EPIN0(2).LE.EPSS).AND.(SIG0(2).GE.-TOL2))THEN
 203 : c
 204 : c    le joint est fermé mais sans compression
 205 : c
 206 :          IF(DEPST(2).GT.EPSS)THEN
 207 : c
 208 : c       les lèvres s' éloignent (1 cas)
 209 : c
 210 :             SIGF(1)=0.D0
 211 :             SIGF(2)=0.D0
 212 : c
 213 :             DEFP(1)=DEPST(1)
 214 :             DEFP(2)=DEPST(2)
 215 : c
 216 :             DEDE1=EPIN0(1)+DEPST(1)
 217 :             DEDE2=EPIN0(2)+DEPST(2)
 218 : c
 219 :             VARF(1)=SQRT(2.D0/3.D0*(DEDE1**2+DEDE2**2))
 220 : c
 221 :             VARF(2)=DEPST(2)
 222 : c
 223 :             VARF(3)=1.D0
 224 : c
 225 :             VARF(4)=VAR0(4)
 226 : c
 227 :             VARF(5)=EPS1+DEPST(1)
 228 :             VARF(6)=EPS2+DEPST(2)
 229 : c
 230 :             RETURN
 231 : c
 232 :          ELSE
 233 : c
 234 : c       les lèvres restent bloquées ou il y a compression (2 cas)
 235 : c
 236 :          END IF
 237 : c
 238 :       ELSE
 239 : c
 240 : c    le joint est fermé avec compression
 241 : c
 242 :       END IF
 243 : c
 244 : c **********************************************************************
 245 : c ******************* fin du test et debut du calcul *******************
 246 : c **********************************************************************
 247 : c
 248 :       DO 300 KAPPA=1,NN
 249 : c
 250 : c    definition des deux cas (sigma=SGMT)
 251 : c
 252 :          IF(ABS(SIG0(2)).LT.ABS(SGMT))THEN
 253 : c
 254 : c    cas avec sigma < SGMT
 255 : c
 256 : c    prédiction élastique
 257 : c
 258 :             IF(UEQU.LT.UR)THEN
 259 : c
 260 : c       c' est le cas élastique si U < UR
 261 : c
 262 : c       definition des quantités necessaires au calcul
 263 : c
 264 :                VUPU=((1.D0-SIG0(2)/SGMT)**K2)*TAN(I0)
 265 :                AS=1.D0-((1.D0-SIG0(2)/SGMT)**K1)
 266 :                SR=S0-SIG0(2)*TAN(FI0)
 267 :                TP=-SIG0(2)*TAN(FIMU+ATAN(VUPU))*(1.D0-AS)+AS*SR
 268 :                TR=TP*(B0+(1.D0-B0)*SIG0(2)/SGMT)
 269 : c
 270 :                AA1=(SIG0(2)*(1.D0-AS)*K2)/(SGMT*(COS(FIMU+ATAN(VUPU))**2
 271 :      $              ))
 272 :                AA2=((1.D0-SIG0(2)/SGMT)**(K2-1.D0))*TAN(I0)
 273 :                AA3=1.D0+((1.D0-SIG0(2)/SGMT)**(2.D0*K2))*(TAN(I0)**2)
 274 :                AA4=K1*SIG0(2)/SGMT
 275 :                AA5=((1.D0-SIG0(2)/SGMT)**(K1-1.D0))*TAN(FIMU+ATAN(VUPU))
 276 :      $              *AA4
 277 :                AA6=SR/SGMT*K1*((1.D0-SIG0(2)/SGMT)**(K1-1.D0))
 278 :                AA7=AS*TAN(FI0)
 279 :                dTPS1=-(1.D0-AS)*TAN(FIMU+ATAN(VUPU))+AA1*AA2/AA3+AA5+AA6
 280 :      $              -AA7
 281 :                dTRS1=dTPS1*(B0+(1.D0-B0)*SIG0(2)/SGMT)+TP*(1.D0-B0)/SGMT
 282 :                AA8=-UEQU*K2/SGMT*((1.D0-SIG0(2)/SGMT)**(K2-1.D0))*TAN(I0
 283 :      $              )
 284 :                AA8=AA8+((VM**2)*KNI)/((KNI*VM-SIG0(2))**2)
 285 : c
 286 : c       calcul de la matrice Dt equivalente (2D)
 287 : c
 288 :                KNN=1.D0/AA8
 289 :                KNT=-((1.D0-SIG0(2)/SGMT)**K2)*TAN(I0)*KNN
 290 :                KTN=UEQU/UP*KNN*dTPS1
 291 :                KTT=UEQU/UP*KNT*dTPS1+TP/UP
 292 : c
 293 :             ELSE
 294 : c
 295 : c       c' est le cas élastique si U >= UR
 296 : c
 297 : c       definition des quantités necessaires au calcul
 298 : c
 299 :                VUPU=0.D0
 300 :                AS=1.D0-((1.D0-SIG0(2)/SGMT)**K1)
 301 :                SR=S0-SIG0(2)*TAN(FI0)
 302 :                TP=-SIG0(2)*TAN(FIMU)*(1.D0-AS)+AS*SR
 303 :                TR=TP*(B0+(1.D0-B0)*SIG0(2)/SGMT)
 304 : c
 305 :                AA1=((1.D0-SIG0(2)/SGMT)**(K1-1.D0))*TAN(FIMU)*K1*SIG0(2)
 306 :      $              /SGMT
 307 :                AA2=SR/SGMT*K1*((1.D0-SIG0(2)/SGMT)**(K1-1.D0))
 308 :                AA3=AS*TAN(FI0)
 309 :                dTPS1=-(1.D0-AS)*TAN(FIMU)+AA1+AA2-AA3
 310 :                dTRS1=dTPS1*(B0+(1.D0-B0)*SIG0(2)/SGMT)+TP*(1.D0-B0)/SGMT
 311 :                AA4=-UR*K2/SGMT*((1.D0-SIG0(2)/SGMT)**(K2-1.D0))*TAN(I0)
 312 :                AA4=AA4+((VM**2)*KNI)/((KNI*VM-SIG0(2))**2)
 313 : c
 314 : c       calcul de la matrice Dt equivalente (2D)
 315 : c
 316 :                KNN=1.D0/AA4
 317 :                KNT=0.D0
 318 :                KTN=UEQU/UP*KNN*dTPS1
 319 :                KTT=TP/UP
 320 : c
 321 :             END IF
 322 : c
 323 : c    appel à CALC2 pour calculer les incréments de contraintes
 324 : c
 324 :             CALL CALC2(KNN,KNT,KTN,KTT,SIG0,DU,DV,NSTRS,
 325 :      $           DELTA,RI0E,DCON)
 326 : c
 327 : c    calcul de l' incrément de deformation plastique
 328 : c
 329 :             DEP1=0.D0
 330 :             DEP2=0.D0
 331 : c
 332 :             IF(UEQU.LT.UP)THEN
 333 : c
 334 : c       il n' y a pas de plasticité
 335 : c
 336 :                GO TO 200
 337 : c
 338 :             ELSE IF((UEQU.GE.UP).AND.(UEQU.LT.UR))THEN
 339 : c
 340 : c       il y a de la plasticité: trait decroissant de la courbe tau
 341 : c
 342 : c       test pour vérifier si continuer en plasticité ou reprendre le trait
 343 : c       lineaire
 344 : c
 345 :                EFFE=ABS(SIG0(1))-(TR-TP)/(UR-UP)*(UEQU-UP)-TP
 346 : c
 347 :                IF(ABS(SIG0(1)).LT.TOL1)THEN
 348 : c
 349 :                   DTEF=ABS(DCON(1))
 350 : c
 351 :                ELSE
 352 : c
 353 :                   DTEF=SIG0(1)*DCON(1)/ABS(SIG0(1))
 354 : c
 355 :                END IF
 356 : c
 357 :                DTEF=DTEF-(TR-TP)/(UR-UP)*DELTA
 358 :                DTEF=DTEF-((UEQU-UP)/(UR-UP)*(dTRS1-dTPS1)+dTPS1)*DCON(2)
 359 : c
 360 :                IF((EFFE.LT.0.D0).OR.(DTEF.LT.0.D0))GO TO 200
 361 : c
 362 : c       definition des quantités necessaires au calcul
 363 : c
 364 :                VUPU=((1.D0-SIG0(2)/SGMT)**K2)*TAN(I0)
 365 :                AS=1.D0-((1.D0-SIG0(2)/SGMT)**K1)
 366 :                SR=S0-SIG0(2)*TAN(FI0)
 367 :                TP=-SIG0(2)*TAN(FIMU+ATAN(VUPU))*(1.D0-AS)+AS*SR
 368 :                TR=TP*(B0+(1.D0-B0)*SIG0(2)/SGMT)
 369 : c
 370 :                AA1=(SIG0(2)*(1.D0-AS)*K2)/(SGMT*(COS(FIMU+ATAN(VUPU))**2
 371 :      $              ))
 372 :                AA2=((1.D0-SIG0(2)/SGMT)**(K2-1.D0))*TAN(I0)
 373 :                AA3=1.D0+((1.D0-SIG0(2)/SGMT)**(2.D0*K2))*(TAN(I0)**2)
 374 :                AA4=K1*SIG0(2)/SGMT
 375 :                AA5=((1.D0-SIG0(2)/SGMT)**(K1-1.D0))*TAN(FIMU+ATAN(VUPU))
 376 :      $              *AA4
 377 :                AA6=SR/SGMT*K1*((1.D0-SIG0(2)/SGMT)**(K1-1.D0))
 378 :                AA7=AS*TAN(FI0)
 379 :                dTPS1=-(1.D0-AS)*TAN(FIMU+ATAN(VUPU))+AA1*AA2/AA3+AA5+AA6
 380 :      $              -AA7
 381 :                dTRS1=dTPS1*(B0+(1.D0-B0)*SIG0(2)/SGMT)+TP*(1.D0-B0)/SGMT
 382 :                AA8=-UEQU*K2/SGMT*((1.D0-SIG0(2)/SGMT)**(K2-1.D0))*TAN(I0
 383 :      $              )
 384 :                AA8=AA8+((VM**2)*KNI)/((KNI*VM-SIG0(2))**2)
 385 : c
 386 : c       calcul de la matrice Dt equivalente (2D)
 387 : c
 388 :                KNN=1.D0/AA8
 389 :                KNT=-((1.D0-SIG0(2)/SGMT)**K2)*TAN(I0)*KNN
 390 :                KTN=KNN/(UP-UR)*(dTPS1*(UEQU-UR)+(UP-UEQU)*dTRS1)
 391 :                KTT=(TP-TR)/(UP-UR)
 392 :                KTT=KTT+KNT/(UP-UR)*(dTPS1*(UEQU-UR)+(UP-UEQU)*dTRS1)
 393 : c
 394 : c       appel à CALC2 pour calculer les incréments de contraintes
 395 : c
 395 :                CALL CALC2(KNN,KNT,KTN,KTT,SIG0,DU,DV,NSTRS,
 396 :      $              DELTA,RI0P,DCON)
 397 : c
 398 : c       appel à RISPL2 pour calculer les incréments de déformation plastique
 399 : c
 399 :                CALL RISPL2(RI0E,SIG0,DCON,DU,NSTRS,SGMT,DUp)
 400 : c
 401 :                DEP1=DUp
 402 :                DEP2=0.D0
 403 : c
 404 :             ELSE IF(UEQU.GE.UR)THEN
 405 : c
 406 : c       il y a de la plasticité parfaite: trait horizontal de la courbe tau
 407 : c
 408 : c       test pour vérifier si continuer en plasticité ou reprendre le trait
 409 : c       lineaire
 410 : c
 411 :                EFFE=ABS(SIG0(1))-TR
 412 : c
 413 :                IF(ABS(SIG0(1)).LT.TOL1)THEN
 414 : c
 415 :                   DTEF=ABS(DCON(1))
 416 : c
 417 :                ELSE
 418 : c
 419 :                   DTEF=SIG0(1)*DCON(1)/ABS(SIG0(1))
 420 : c
 421 :                END IF
 422 : c
 423 :                DTEF=DTEF-dTRS1*DCON(2)
 424 : c
 425 :                IF((EFFE.LT.0.D0).OR.(DTEF.LT.0.D0))GO TO 200
 426 : c
 427 : c       definition des quantités necessaires au calcul
 428 : c
 429 :                VUPU=0.D0
 430 :                AS=1.D0-((1.D0-SIG0(2)/SGMT)**K1)
 431 :                SR=S0-SIG0(2)*TAN(FI0)
 432 :                TP=-SIG0(2)*TAN(FIMU)*(1.D0-AS)+AS*SR
 433 :                TR=TP*(B0+(1.D0-B0)*SIG0(2)/SGMT)
 434 : c
 435 :                AA1=((1.D0-SIG0(2)/SGMT)**(K1-1.D0))*TAN(FIMU)*K1*SIG0(2)
 436 :      $              /SGMT
 437 :                AA2=SR/SGMT*K1*((1.D0-SIG0(2)/SGMT)**(K1-1.D0))
 438 :                AA3=AS*TAN(FI0)
 439 :                dTPS1=-(1.D0-AS)*TAN(FIMU)+AA1+AA2-AA3
 440 :                dTRS1=dTPS1*(B0+(1.D0-B0)*SIG0(2)/SGMT)+TP*(1.D0-B0)/SGMT
 441 :                AA4=-UR*K2/SGMT*((1.D0-SIG0(2)/SGMT)**(K2-1.D0))*TAN(I0)
 442 :                AA4=AA4+((VM**2)*KNI)/((KNI*VM-SIG0(2))**2)
 443 : c
 444 : c       calcul de la matrice Dt equivalente (2D)
 445 : c
 446 :                KNN=1.D0/AA4
 447 :                KNT=0.D0
 448 :                KTN=KNN*dTRS1
 449 :                KTT=0.D0
 450 : c
 451 : c       appel à CALC2 pour calculer les incréments de contraintes
 452 : c
 452 :                CALL CALC2(KNN,KNT,KTN,KTT,SIG0,DU,DV,NSTRS,
 453 :      $              DELTA,RI0P,DCON)
 454 : c
 455 : c       calcul de l' incrément de deformation plastique
 456 : c
 457 :                DEP1=DU
 458 :                DEP2=0.D0
 459 : c
 460 :             END IF
 461 : c
 462 :          ELSE IF(ABS(SIG0(2)).GE.ABS(SGMT))THEN
 463 : c
 464 : c    cas avec sigma >= SGMT
 465 : c
 466 : c    il n' y a pas de plasticité
 467 : c
 468 : c    prédiction élastique
 469 : c
 470 : c    definition des quantités necessaires au calcul
 471 : c
 472 :             VUPU=0.D0
 473 :             AS=1.D0
 474 :             SR=S0-SIG0(2)*TAN(FI0)
 475 :             TP=SR
 476 :             TR=TP
 477 :             dTPS1=-TAN(FI0)
 478 :             AA1=((VM**2)*KNI)/((KNI*VM-SIG0(2))**2)
 479 : c
 480 : c    calcul de la matrice Dt equivalente (2D)
 481 : c
 482 :             KNN=1.D0/AA1
 483 :             KNT=0.D0
 484 :             KTN=UEQU/UP*KNN*dTPS1
 485 :             KTT=TP/UP
 486 : c
 487 : c    appel à CALC2 pour calculer les incréments de contraintes
 488 : c
 488 :             CALL CALC2(KNN,KNT,KTN,KTT,SIG0,DU,DV,NSTRS,
 489 :      $           DELTA,RI0E,DCON)
 490 : c
 491 : c    calcul de l' incrément de deformation plastique
 492 : c
 493 :             DEP1=0.D0
 494 :             DEP2=0.D0
 495 : c
 496 :             IF(UEQU.LT.UP)GO TO 200
 497 : c
 498 : c       il y a de la plasticité parfaite: trait horizontal de la courbe tau
 499 : c
 500 : c       test pour vérifier si continuer en plasticité ou reprendre le trait
 501 : c       lineaire
 502 : c
 503 :             EFFE=ABS(SIG0(1))-TP
 504 : c
 505 :             IF(ABS(SIG0(1)).LT.TOL1)THEN
 506 : 
 507 :                DTEF=ABS(DCON(1))
 508 : c
 509 :             ELSE
 510 : c
 511 :                DTEF=SIG0(1)*DCON(1)/ABS(SIG0(1))
 512 : c
 513 :             END IF
 514 : c
 515 :             DTEF=DTEF-dTPS1*DCON(2)
 516 : c
 517 :             IF((EFFE.LT.0.D0).OR.(DTEF.LT.0.D0))GO TO 200
 518 : c
 519 : c       definition des quantités necessaires au calcul
 520 : c
 521 :             VUPU=0.D0
 522 :             AS=1.D0
 523 :             SR=S0-SIG0(2)*TAN(FI0)
 524 :             TP=SR
 525 :             TR=TP
 526 :             dTPS1=-TAN(FI0)
 527 :             AA1=((VM**2)*KNI)/((KNI*VM-SIG0(2))**2)
 528 : c
 529 : c       calcul de la matrice Dt equivalente (2D)
 530 : c
 531 :             KNN=1.D0/AA1
 532 :             KNT=0.D0
 533 :             KTN=KNN*dTPS1
 534 :             KTT=0.D0
 535 : c
 536 : c       appel à CALC2 pour calculer les incréments de contraintes
 537 : c
 537 :             CALL CALC2(KNN,KNT,KTN,KTT,SIG0,DU,DV,NSTRS,
 538 :      $           DELTA,RI0P,DCON)
 539 : c
 540 : c       calcul de l' incrément de deformation plastique
 541 : c
 542 :             DEP1=DU
 543 :             DEP2=0.D0
 544 : c
 545 :          END IF
 546 : c
 547 :  200     CONTINUE
 548 : c
 549 : c    chargement de la matrice de rigidité au debut du pas
 550 : c
 551 :          IF(KAPPA.EQ.1)THEN
 552 : c
 553 :             RTT=KTT
 554 :             RTN=KTN
 555 : c
 556 :          END IF
 557 : c
 558 : c    chargement des valeurs à la fin des sub-pas
 559 : c
 560 :          SIG0(1)=SIG0(1)+DCON(1)
 561 :          SIG0(2)=SIG0(2)+DCON(2)
 562 : c
 563 :          EPS1=EPS1+DU
 564 :          EPS2=EPS2+DV
 565 : c
 566 :          IF(SIG0(2).GE.-TOL2) THEN
 567 : c
 568 : c       on a plasticité selon la composante normale: le joint se ouvre
 569 : c       ou il reste bloqué
 570 : c
 571 :             SIG0(1)=0.D0
 572 :             SIG0(2)=0.D0
 573 : c
 574 :             UEQU=UEQU
 575 : c
 576 :             DEFP(1)=DEFP(1)+DU
 577 :             DEFP(2)=DEFP(2)+DV
 578 : c
 579 :             EPIN0(1)=EPIN0(1)+DU
 580 :             EPIN0(2)=EPIN0(2)+DV
 581 : c
 582 :          ELSE
 583 : c
 584 : c       on n' a pas de plasticité selon la composante normale: le joint
 585 : c       reste fermé
 586 : c
 587 :             UEQU=ABS(UEQU+DELTA)
 588 : c
 589 :             DEFP(1)=DEFP(1)+DEP1
 590 :             DEFP(2)=DEFP(2)+DEP2
 591 : c
 592 :             EPIN0(1)=EPIN0(1)+DEP1
 593 :             EPIN0(2)=EPIN0(2)+DEP2
 594 : c
 595 :             DPP1=DEFP(1)
 596 :             DPP2=DEFP(2)
 597 : c
 598 :             EPP1=EPIN0(1)
 599 :             EPP2=EPIN0(2)
 600 : c
 601 :          END IF
 602 : c
 603 :  300  CONTINUE
 604 : c
 605 : c **********************************************************************
 606 : c ******** fin de la boucle du calcul et preparation des sorties *******
 607 : c **********************************************************************
 608 : c
 609 : c    test pour vérifier si le deux tau sont presque nulles
 610 : c
 611 :       TOL3=1.D-1*ABS(RTT*(UEQU-VAR0(4))+RTN*DEPST(2))
 612 : c
 613 :       IF(ABS(SIG0(1)).LT.TOL3)THEN
 614 : c
 615 :          SIG0(1)=0.D0
 616 : c
 617 :       END IF
 618 : c
 619 : c    chargement des valeurs des contraintes finales
 620 : c
 621 :       SIGF(1)=SIG0(1)
 622 :       SIGF(2)=SIG0(2)
 623 : c
 624 : c    état du joint
 625 : c
 626 :       IF(EPIN0(2).GT.EPSS)THEN
 627 : c
 628 : c       le joint est ouvert
 629 : c
 630 :          VARF(3)=1.D0
 631 : c
 632 :       ELSE IF((EPIN0(2).LE.EPSS).AND.(SIG0(2).GE.-TOL2))THEN
 633 : c
 634 : c       le joint est fermé mais sans compression
 635 : c
 636 :          DEFP(1)=DPP1
 637 :          DEFP(2)=DPP2
 638 : c
 639 :          EPIN0(1)=EPP1
 640 :          EPIN0(2)=EPP2
 641 : c
 642 :          VARF(3)=0.D0
 643 : c
 644 :       ELSE
 645 : c
 646 : c       le joint est fermé avec compression
 647 : c
 648 :          VARF(3)=2.D0
 649 : c
 650 :       END IF
 651 : c
 652 : c    chargement de la variable EPSE
 653 : c
 654 :       VARF(1)=SQRT(2.D0/3.D0*(EPIN0(1)**2+EPIN0(2)**2))
 655 : c
 656 : c    chargement de la variable EPOU
 657 : c
 658 :       VARF(2)=DEFP(2)
 659 : c
 660 : c    chargement de la variable UEQU
 661 : c
 662 :       VARF(4)=UEQU
 663 : c
 664 : c    chargement des déformations totales
 665 : c
 666 :       VARF(5)=EPS1
 667 :       VARF(6)=EPS2
 668 : c
 669 :       RETURN
 670 : c
 671 :       END
 672 : 
 673 : 
 674 : 
 675 : 
 676 : 
 677 : 
 678 : 
 679 : 
 680 : 
 681 : 
 682 : 
 683 : 
 684 : 
 685 : 
 686 : 
 687 :  
 688 :  
 689 :  

© Cast3M 2003 - All rights reserved.
Disclaimer