Download amade3.eso

Back to the list

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

© Cast3M 2003 - All rights reserved.
Disclaimer