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