Download pakzad.eso

Back to the list

   1 : C PAKZAD    SOURCE    PV        11/03/07    21:17:46     6885           
   2 :        SUBROUTINE PAKZAD(DEPST,NSTRS,NCOMAT,NVARI, 
   3 :      .            MFR1,IB,IGAU,  
   4 :      .            XMAT,SIG0,VAR0,SIGF,VARF,DEFP,KERRE,DSIGT,
   5 :      .            SUCC1,SUCC2,necou)
   6 : * 
   7 : * 
   8 : *************************************************************** 
   9 : *  
  10 : *  Modèle d'argile de PAKZAD   
  11 : * 
  12 : *************************************************************** 
  13 : *  
  14 : * 
  15 : *_________________________________________________________________     
  16 : *                                                              
  17 : *                                                                
  18 : *    ENTREES :                                                   
  19 : *    ---------                                                   
  20 : *  
  21 : * DEPST = INCREMENT DE DEFORMATIONS TOTALES
  22 : * NSTRS = NBRE DE COMPOSANTES DES DEFORMATIONS 
  23 : * NCOMAT= NBRE DE CARACTERISTIQUES MECANIQUES DU MATERIAU 
  24 : * NVARI = NBRE DE VARIABLES INTERNES 
  25 : * MFR1  = NUMERO DE LA FORMULATION
  26 : * IB    = NUMERO DE L ELEMENT COURANT
  27 : * IGAU  = NUMERO DU POINT COURANT 
  28 : * SIG0(NSTRS) = CONTRAINTES AU DEBUT DU PAS D'INTEGRATION 
  29 : * VAR0(NVARI) = VARIABLES INTERNES AU DEBUT DU PAS DE TEMPS 
  30 : * XMAT(NCOMAT) = CARACTERISTIQUES MECANIQUES DU MATERIAU 
  31 : * SUCC1  SUCCION AU DEBUT DU PAS
  32 : * SUCC2  SUCCION A LA FIN DU PAS
  33 : *                                                               
  34 : *    SORTIE :                                            
  35 : *    -------- 
  36 : *
  37 : * SIGF(NSTRS) = CONTRAINTES FINALES      
  38 : * VARF(NVARI) = VARIALES INTERNES A LA FIN DU PAS D'INTEGRATION 
  39 : * DEFP(NSTRS) = INCREMENT DE DEFORMATION PLASTIQUE A LA FIN 
  40 : *               DU PAS D'INTEGRATION 
  41 : * ============================================================
  42 : *       ICI IL FAUT PROGRAMMER EN FORTRAN PUR
  43 : *=============================================================       
  44 : *
  45 :       IMPLICIT INTEGER(I-N)
  46 :       IMPLICIT REAL*8(A-H,O-Z)   
  47 : *
  48 : -INC CCOPTIO    
  49 : * 
  50 :        SEGMENT NECOU
  51 : *      COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  52 :        INTEGER NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  53 :      . ITYP,IFOURB,IFLUAG,
  54 :      . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  55 :      . JFLUAG,KFLUAG,LFLUAG,
  56 :      . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF
  57 :       ENDSEGMENT
  58 : C      COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  59 : C     . ITYP,IFOURB,IFLUAG,
  60 : C     . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  61 : C     . JFLUAG,KFLUAG,LFLUAG,
  62 : C     . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF
  63 : *
  64 :       DIMENSION SIG0(*),DEPST(*),VAR0(*),XMAT(*),SIGF(*), 
  65 :      &          VARF(*),DEFP(*),DSIGT(*)   
  66 :       DIMENSION RSIG0(6),RDEPS0(6),RSIGF(6),RDEFP(6),RSIG1(6)         
  67 :       DIMENSION DEVT(6),SIGT(6),DEFT(6)         
  68 :       REAL*8 LS0,LS1
  69 : *  
  70 : *  Adaptation de l'option de calcul vers le 3D massif de SIG0 a RSIG0
  71 : *====================================================================
  72 : * 
  73 :       IF (MFR1 .EQ. 1 .OR. MFR1 .EQ. 31)  THEN
  74 : *
  75 : *---> 1 formulation massive
  76 : *---> 2 formulation quasi incompressible
  77 : *---> MASSIF 3D 
  78 : *
  79 :         IF (NSTRS .EQ. 6) THEN
  80 :           DO 110 I=1,NSTRS
  81 :             RSIG0(I)=SIG0(I)
  82 :             RDEPS0(I)=DEPST(I)  
  83 :  110      CONTINUE
  84 :         ELSE IF ( NSTRS .EQ. 4 .AND. ((IFOUR .EQ. 0) 
  85 :      &    .OR.(IFOUR .EQ. -1))) THEN
  86 : *
  87 : *---> Calcul en mode deformations planes ou axisymetrique
  88 : * 
  89 :           DO 115 I=1,NSTRS
  90 :             RSIG0(I)=SIG0(I)
  91 :             RDEPS0(I)=DEPST(I)  
  92 :  115      CONTINUE       
  93 :           RSIG0(5)=0.D0
  94 :           RSIG0(6)=0.D0
  95 :           RDEPS0(5)=0.D0  
  96 :           RDEPS0(6)=0.D0   
  97 :         ENDIF  
  98 :       ELSE 
  99 :         KERRE = 99
 100 :         RETURN
 101 :       ENDIF
 102 : * 
 103 : *
 104 : *   Passage des deformations de cisaillement exprimées
 105 : *   en GAMA aux déformations de cisaillement exprimées
 106 : *   en déformations
 107 : *
 108 :       DO 116 I=1,6
 109 :          A=1.D0
 110 :          IF (I.GT.3) A=2.D0
 111 :          RDEPS0(I)=RDEPS0(I)/A
 112 :  116  CONTINUE 
 113 : * 
 114 : *   Données du materiau  
 115 : *=========================================================== 
 116 : *
 117 :       YOUN0=XMAT(1) 
 118 :       XNU0=XMAT(2)  
 119 :       XN0=XMAT(5) 
 120 :       XKA0=XMAT(6) 
 121 :       XGA0=XMAT(7)
 122 :       XPA0=XMAT(8)  
 123 :       XPC0=XMAT(9)  
 124 :       XM0=XMAT(10) 
 125 :       XBET1=XMAT(11)    
 126 :       XA0=XMAT(12)  
 127 :       XPCR0=XMAT(13) 
 128 :       XS0=XMAT(14) 
 129 :       XM1=XMAT(15) 
 130 :       XM2=XMAT(16) 
 131 :       XM3=XMAT(17) 
 132 :       XBET2=XMAT(18) 
 133 :       XTAU0=XMAT(19)   
 134 : * 
 135 : *
 136 : *   Quelques initialisations 
 137 : *=============================================================
 138 : *
 139 : *---> Succion    
 140 : *  . Succion initiale 
 141 : *  . succion finale  
 142 : *  . Succion de désaturation  
 143 : *  
 144 : ******************************
 145 : *   MODIFICATION  POUR LA SUCCION
 146 : *
 147 :       IF(SUCC1.LT.-1.E34.AND.SUCC2.LT.-1.E34)  THEN
 148 : *
 149 : *       cas à succion constante : on la prend dans var0
 150 : *
 151 :          SUCI0=VAR0(3)
 152 :          SUCF0=SUCI0
 153 :       ELSE
 154 :          SUCI0=SUCC1
 155 :          SUCF0=SUCC2
 156 :       ENDIF
 157 : *
 158 :       IF (VAR0(2).LE.1.D-10) VAR0(2)=XS0+XM1*(XPC0-XS0) 
 159 :       SDT=VAR0(2) 
 160 : * 
 161 : *---> Pression de consolidation initiale dans le domaine saturé 
 162 : * 
 163 :       IF (VAR0(4).LE.1.D-10) VAR0(4)=XPC0  
 164 : * 
 165 : *---> On est en train d'activer la surface de contact ou de gonflement 
 166 : * 
 167 :       IF ((VAR0(21).LE.1.D-10).AND.(VAR0(22).LE.1.D-10)) THEN 
 168 : * 
 169 : *  On active la surface de contact 
 170 : *
 171 :         IGONF=1 
 172 :       ELSE 
 173 : * 
 174 : *  On active la surface de gonflement 
 175 : * 
 176 :         IGONF=0 
 177 :       ENDIF 
 178 : * 
 179 : *---> On initialise les variables internes à leur valeur initiale 
 180 : *  
 181 :       DO 49 I=1,NVARI 
 182 :         VARF(I)=VAR0(I) 
 183 :  49   CONTINUE 
 184 : * 
 185 : *---> On initialise les déformations plastiques au cours du pas à
 186 : *     zéro 
 187 : *  
 188 :       DO 48 I=1,6 
 189 :         RDEFP(I)=0.D0 
 190 :  48   CONTINUE  
 191 : * 
 192 : * 
 193 : *
 194 : *    Sous incrémentations : définition du nombre de sous 
 195 : *    incréments  
 196 : *============================================================= 
 197 : *
 198 :       nmax0=1
 199 :       iter2=0
 200 :       crit0=XKA0*(RDEPS0(1)+RDEPS0(2)+RDEPS0(3)) 
 201 :       crit0=ABS(crit0)   
 202 :       IF (crit0.GT.1.D-2) nmax0=NINT(100.D0*crit0)+1 
 203 :       IF (nmax0.GT.10000) nmax0=10000 
 204 :       DO 50 I=1,6
 205 :         RDEPS0(I)=RDEPS0(I)/nmax0 
 206 :  50   CONTINUE 
 207 : * 
 208 : * 
 209 : * 
 210 : *   Début de la boucle de sous incrémentation  
 211 : *============================================================= 
 212 : * 
 213 :  51   iter2=iter2+1 
 214 : *
 215 : *---> Succion au début (SUC1) et à la fin (SUC2) du sous incrémént 
 216 : *  
 217 :       SUC1=SUCI0+(SUCF0-SUCI0)*(iter2-1)/nmax0    
 218 :       SUC2=SUCI0+(SUCF0-SUCI0)*iter2/nmax0  
 219 : *  
 220 : *---> Variable de test de la plasticité 
 221 : *   . iplas vaut 1 si on plastifie sur la surface de contact  
 222 : *  
 223 :       IPLAS=0  
 224 : * 
 225 : *---> Pression d'origine capillaire au début du sous incrément   
 226 : * 
 227 :       LS0=SUC1-XM1*VARF(4)+(XM1-1.D0)*XS0  
 228 :       IF (LS0.LE.0.D0) THEN 
 229 : *  
 230 : *  Etat quasi saturé 
 231 : * 
 232 :         PSAT0=SUC1  
 233 :       ELSE 
 234 : * 
 235 : *  Etat partiellement saturé  
 236 : *  
 237 :         XK1=(1.D0+(SUC1-SDT)/((XM2-1.D0)*SDT))**2.D0   
 238 :         XK1=1/XK1  
 239 :         PSAT0=SDT+(XK1**(.5D0))*(SUC1-SDT)  
 240 :       ENDIF  
 241 : *  
 242 : *---> Contraintes effectives au début du sous incrément  
 243 : *  
 244 :       DO 9 I=1,6  
 245 :         A=0.D0
 246 :         IF (I.LE.3) A=1.D0 
 247 :         RSIG1(I)=RSIG0(I)-PSAT0*A 
 248 :  9    CONTINUE  
 249 :       PRES00=-1.D0/3.D0*(RSIG1(1)+RSIG1(2)+RSIG1(3)) 
 250 : *  
 251 : *---> Déformations élastiques test et déformation plastique
 252 : *
 253 :       DO 10 I=1,6 
 254 :         DEFT(I)=0.D0  
 255 :  10   CONTINUE  
 256 :       TREPEL0=RDEPS0(1)+RDEPS0(2)+RDEPS0(3)  
 257 : *
 258 : *---> Contraintes test: 2 cas suivant la valeur de XN0    
 259 : *
 260 :       dif0=ABS(XN0-1.D0)  
 261 :       IF (dif0.LE.1.D-5) THEN 
 262 : * 
 263 : *  Cas où XN0=1 
 264 : *  
 265 :         PRES1=PRES00*EXP(-1.D0*XKA0*TREPEL0) 
 266 :         DO 11 I=1,6 
 267 :           A=0.D0 
 268 :           IF (I.LE.3) A=1.D0  
 269 :           DEVT(I)=RSIG1(I)+PRES00*A 
 270 :           DEVT(I)=DEVT(I)+2.D0*XGA0*PRES00*(RDEPS0(I)-TREPEL0/3.D0*A)  
 271 :           SIGT(I)=DEVT(I)-PRES1*A  
 272 :  11     CONTINUE  
 273 :       ELSE 
 274 : * 
 275 : *  Autres cas   
 276 : * 
 277 :         XKA1=XKA0*XPA0*((PRES00/XPA0)**XN0) 
 278 :         XGA1=XGA0*XPA0*((PRES00/XPA0)**XN0) 
 279 :         PRES1=PRES00-(XKA1*TREPEL0)  
 280 :         DO 21 I=1,6
 281 :           A=0.D0
 282 :           IF (I.LE.3) A=1.D0
 283 :           DEVT(I)=RSIG1(I)+PRES00*A
 284 :           DEVT(I)=DEVT(I)+2.D0*XGA1*(RDEPS0(I)-TREPEL0/3.D0*A)
 285 :           SIGT(I)=DEVT(I)-PRES1*A 
 286 :  21     CONTINUE 
 287 :       ENDIF  
 288 : * 
 289 : *---> Pressions de consolidation test à la succion SUC2 et module plastique BET1   
 290 : * à la fin du sous incrément  
 291 : *    PCT1 : pression de consolidation
 292 : *    PCT0 : pression de consolidation "fictive" dans le domaine
 293 : *           saturé ( = VARF(4)) 
 294 : * 
 295 :       LS1=SUC2-XM1*VARF(4)+(XM1-1.D0)*XS0   
 296 :       PCT0=VARF(4)  
 297 :       IF (LS1.LE.0.D0) THEN
 298 : * 
 299 : *  Etat quasi saturé
 300 : *
 301 :         PCT1=PCT0      
 302 :         BET1=XBET1 
 303 :       ELSE
 304 : *
 305 : *  Etat partiellement saturé
 306 : * 
 307 :         XK2=(1.D0+(SUC2-SDT)/(XM3*SDT))**2.D0
 308 :         XK2=1/XK2
 309 :         PCT1=PCT0+(XK2**.5D0)*(SUC2-SDT)
 310 :         BET1=XBET2-((XBET2-XBET1)*EXP(-1.D0*XTAU0*(SUC2-SDT)))   
 311 : * 
 312 : *  Dans ce qui suit, on va négliger les variations de BET1 avec SDT  
 313 : *  (et donc avec l'écoulement plastique) 
 314 : * 
 315 :       ENDIF 
 316 : * 
 317 : *---> Si on est en recharge, on vérifie la condition de gonflement avant 
 318 : *     la condition de contact 
 319 : *     A condition de ne pas déja avoir active la surface de charge 
 320 : *     (IGONF=0)  
 321 : * 
 322 :         IF (((RDEPS0(1)+RDEPS0(2)+RDEPS0(3)).LE.0.D0)
 323 :      .      .AND.(IGONF.EQ.0)) THEN
 323 :           CALL PAKGON(XMAT,SIGT,VARF,SIGT,DEFT,VARF,
 324 :      .                RDEPS0,KERRE,IB,IGAU,PCT0,
 325 :      .                SUC2,RSIG1)
 326 :           PRES1=-1.D0/3.D0*(SIGT(1)+SIGT(2)+SIGT(3))  
 327 :           DO 52 I=1,6 
 328 :              A=0.D0 
 329 :              IF (I.LE.3) A=1.D0 
 330 :              DEVT(I)=SIGT(I)+PRES1*A 
 331 :  52       CONTINUE 
 332 :           IGONF=0 
 333 :         ENDIF 
 334 : *
 335 : *---> Contrainte équivalente
 336 : *
 337 :       STEST2=3.D0*PROCON(DEVT,DEVT,6)/2.D0
 338 :       IF (STEST2.LE.(1.D-10*YOUN0)) STEST2=0.D0
 339 :       Stest=(STEST2)**(0.5D0)
 340 : *
 341 : * 
 342 : *---> Fonction de charge
 343 : * 
 344 :       PHIT=Stest*Stest+XM0*XM0*PRES1*(PRES1-PCT1)   
 345 : *
 346 : * 
 347 : *
 348 : *  Vérification du critère de plasticité  
 349 : *=========================================================
 350 : * 
 351 : *---> Erreur admise  
 352 : *  
 353 :       ERR0=1.D-7*ABS(PHIT)    
 354 :       ERR0=MAX(ERR0,1.D-10*YOUN0) 
 355 : *  
 356 : *---> Critère de plasticité 
 357 : *  
 358 :       PHI0=PHIT  
 359 :       iter0=0  
 360 : *  
 361 :  99   IF (PHI0.LE.ERR0) THEN  
 362 : *  
 363 : *  On est élastique par rapport à la surface de contact  
 364 : *=========================================================  
 365 : * 
 366 : *  
 367 : *---> On vérifie la condition de gonflement
 368 : *
 369 :       IF (IPLAS.EQ.0) THEN 
 370 : * 
 371 : *  On a pas plastifié sur la surface de contact 
 372 : *  Si on est en décharge, on vérifie la condition de gonflement  
 373 : *   après la condition de contact  
 374 : *  Cas particulier, le premier pas du calcul, IGONF peut valoir 1 car 
 375 : *   toutes les valeurs de des variables internes ne sont peut etre pas 
 376 : *   initialisées de facon adéquate.  
 377 : *   Or on doit vérifier la surface de gonflement systématiquement 
 378 : *   au premier pas du calcul et ce jusqu'a ce qu'on active 
 379 : *   la surface de gonflement ou la surface de contact  
 380 : * 
 381 : * 
 382 :         IF (((RDEPS0(1)+RDEPS0(2)+RDEPS0(3)).GT.0.D0).OR.
 383 :      .       (IGONF.EQ.1)) THEN 
 383 :           CALL PAKGON(XMAT,SIGT,VARF,SIGT,DEFT,VARF, 
 384 :      .                RDEPS0,KERRE,IB,IGAU,PCT0,   
 385 :      .                SUC2,RSIG1)
 386 :           IGONF=0 
 387 :         ENDIF  
 388 :         DO 53 I=1,6 
 389 :           RDEFP(I)=RDEFP(I)+DEFT(I)  
 390 :           RSIGF(I)=SIGT(I)  
 391 :  53     CONTINUE 
 392 :       ELSE 
 393 : * 
 394 : *  On a plastifié sur la surface de contact, on ré-initialise 
 395 : *  les variables internes du gonflement 
 396 : *    . le rayon est remis à sa valeur initiale 
 397 : *    . le "Centre" de l'ellipse (P1,Q1) est mis à 
 398 : *      la valeur courante des contraintes 
 399 : *  
 400 :        VARF(5)=XA0 
 401 :        VARF(6)=XA0 
 402 :        VARF(7)=PRES1 
 403 :        VARF(8)=PRES1  
 404 :        VARF(21)=0.D0 
 405 :        VARF(22)=0.D0  
 406 :        DO 399 I=1,6 
 407 :          RDEFP(I)=RDEFP(I)+DEFT(I)  
 408 :          RSIGF(I)=SIGT(I)  
 409 :          VARF(8+I)=DEVT(I) 
 410 :          VARF(14+I)=DEVT(I)  
 411 :  399  CONTINUE 
 412 :       ENDIF  
 413 : *
 414 : *---> A la fin du sous incrémént: Est on saturé ou non ?  
 415 : *  
 416 :       LS1=SUC2-XM1*PCT0+(XM1-1.D0)*XS0  
 417 : *  
 418 : *---> Mise à jour de la succion de désaturation à la fin di sous incrément
 419 : *
 420 :       SDT=XS0+XM1*(PCT0-XS0)
 421 : *
 422 : *---> Pression d'origine capillaire à la fin de sous incrément  
 423 : *
 424 :       IF (LS1.LE.0.D0) THEN
 425 : *
 426 : *  Etat quasi saturé
 427 : *
 428 :         PSAT0=SUC2    
 429 :       ELSE
 430 : *
 431 : *  Etat partiellement saturé
 432 : *
 433 :         XK1=(1.D0+(SUC2-SDT)/((XM2-1.D0)*SDT))**2.D0
 434 :         XK1=1/XK1
 435 :         PSAT0=SDT+(XK1**(.5D0))*(SUC2-SDT)
 436 :       ENDIF
 437 : * 
 438 : *---> Grandeurs à la fin de sous incrément    
 439 : * 
 440 :       DO 400 I=1,6  
 441 :          A=0.D0 
 442 :          IF (I.LE.3) A=1.D0  
 443 :          RSIGF(I)=RSIGF(I)+PSAT0*A 
 444 :          RSIG0(I)=RSIGF(I) 
 445 :          DEFT(I)=RDEFP(I)-(RDEFP(1)+RDEFP(2)+RDEFP(3))/3.D0*A 
 446 :  400  CONTINUE  
 447 :       EPSPT=PROCON(DEFT,DEFT,6) 
 448 :       IF (EPSPT.LE.1.D-10) EPSPT=0.D0 
 449 :       EPSPT=(2.D0/3.D0*EPSPT)**.5D0   
 450 :       VARF(1)=VAR0(1)+EPSPT    
 451 :       VARF(2)=SDT 
 452 :       VARF(3)=SUCF0
 453 :       VARF(4)=PCT0  
 454 : *  
 455 : *  
 456 :       ELSE  
 457 : * 
 458 : *  On plastifie  
 459 : *=========================================================  
 460 : *   
 461 : *---> Mise du flag IPLAS à 1: on plastifie en contact   
 462 : *     Mise du flag IGONF à 1: on plastifie en contact 
 463 : * 
 464 :       IPLAS=1 
 465 :       IGONF=1 
 466 : *  
 467 : *---> Condition de consistance: calcul du paramètre plastique 
 468 : * 
 469 :       IF (dif0.LE.1.D-5) THEN
 470 : *
 471 : *  Cas où XN0=1
 472 : * 
 473 :         DF1=XM0*XM0*(2.D0*PRES1-PCT1)  
 474 :         DF2=XM0*XM0*PCT1  
 475 :         DF0=12.D0*XGA0*PRES00*Stest*Stest 
 476 :         denom0=DF0+XKA0*DF1*DF1*PRES1+PRES1*BET1*DF1*DF2 
 477 : *  
 478 :       ELSE
 479 : *
 480 : *  Autres cas  
 481 : *
 482 :         DF1=XM0*XM0*(2.D0*PRES1-PCT1)
 483 :         DF2=XM0*XM0*PCT1 
 484 :         DF0=12.D0*XGA1*Stest*Stest  
 485 :         denom0=DF0+XKA1*DF1*DF1+PRES1*BET1*DF1*DF2  
 486 :       ENDIF 
 487 : *  
 488 :       dlam0=PHIT/denom0 
 489 : * 
 490 : *---> Mise à jour des contraintes 
 491 : *  
 492 :       IF (dif0.LE.1.D-5) THEN
 493 : *
 494 : *  Cas où XN0=1
 495 : * 
 496 :         PRES1=PRES1*EXP(-1.D0*XKA0*DF1*dlam0)
 497 :         DO 12 I=1,6
 498 :           A=0.D0
 499 :           IF (I.LE.3) A=1.D0
 500 :           DEVT(I)=DEVT(I)-6.D0*XGA0*PRES00*DEVT(I)*dlam0 
 501 :           SIGT(I)=DEVT(I)-PRES1*A 
 502 :  12     CONTINUE 
 503 :       ELSE
 504 : *
 505 : *  Autres cas  
 506 : *
 507 :         PRES1=PRES1-(XKA1*DF1*dlam0)     
 508 :         DO 22 I=1,6
 509 :           A=0.D0
 510 :           IF (I.LE.3) A=1.D0
 511 :           DEVT(I)=DEVT(I)-6.D0*XGA1*DEVT(I)*dlam0
 512 :           SIGT(I)=DEVT(I)-PRES1*A
 513 :  22     CONTINUE  
 514 :       ENDIF 
 515 : * 
 516 : *---> Mise à jour de la pression de consolidation à la succion finale    
 517 : *  
 518 :       PCT1=PCT1*EXP(BET1*DF1*dlam0)   
 519 :       PCT0=PCT0*EXP(XBET1*DF1*dlam0) 
 520 : *  
 521 : *---> Déformation élastiques et plastiques  
 522 : *  
 523 :       IF (dif0.LE.1.D-5) THEN
 524 : *
 525 : *  Cas où XN0=1
 526 : *
 527 :       TREPEL0=-1.D0/XKA0*LOG(PRES1/PRES00)  
 528 :       DO 13 I=1,6
 529 :         A=0.D0
 530 :         IF (I.LE.3) A=1.D0
 531 :         DEFT(I)=(DEVT(I)-RSIG1(I)-PRES00*A)/(2.D0*XGA0*PRES00) 
 532 :         DEFT(I)=RDEPS0(I)-DEFT(I)-TREPEL0*A/3.D0       
 533 :  13   CONTINUE 
 534 :       ELSE
 535 : *
 536 : *  Autres cas  
 537 : *
 538 :       TREPEL0=-1.D0/XKA1*(PRES1-PRES00)
 539 :       DO 23 I=1,6
 540 :         A=0.D0
 541 :         IF (I.LE.3) A=1.D0
 542 :         DEFT(I)=(DEVT(I)-RSIG1(I)-PRES00*A)/(2.D0*XGA1)
 543 :         DEFT(I)=RDEPS0(I)-DEFT(I)-TREPEL0*A/3.D0
 544 :  23   CONTINUE 
 545 :       ENDIF 
 546 : * 
 547 : *---> Mise à jour de la contrainte équivalente 
 548 : *
 549 :       STEST2=3.D0*PROCON(DEVT,DEVT,6)/2.D0   
 550 :       IF (STEST2.LE.(1.D-10*YOUN0)) STEST2=0.D0
 551 :       Stest=(STEST2)**(0.5D0)
 552 : * 
 553 : *---> Mise à jour de la fonction de charge 
 554 : * 
 555 :       PHIT=Stest*Stest+XM0*XM0*PRES1*(PRES1-PCT1) 
 556 :       PHI0=ABS(PHIT) 
 557 : *    
 558 : *---> Test de convergence ou itération suivante
 559 : *
 560 :       iter0=iter0+1
 561 :       IF (iter0.LT.200) THEN
 562 :          GOTO 99
 563 :       ELSE
 564 :          PHI0=0.D0 
 565 :          KERRE=460
 566 :          GOTO 99 
 567 :       ENDIF 
 568 : *
 569 :       ENDIF   
 570 : *
 571 : * 
 572 : *   Vérification des sous incrémentations 
 573 : *========================================================================  
 574 : *  
 575 :       IF ((iter2.LT.nmax0).AND.(KERRE.EQ.0)) THEN 
 576 :          GOTO 51 
 577 :       ENDIF  
 578 : * 
 579 : * 
 580 : *  
 581 : *  
 582 : *=========================================================================== 
 583 : * 
 584 : *  
 585 : *  
 586 : *   Passage des deformations de cisaillement exprimées
 587 : *   en déformations aux déformations de cisaillement exprimées
 588 : *   en GAMA
 589 : *
 590 :       DO 117 I=1,6
 591 :          A=1.D0
 592 :          IF (I.GT.3) A=2.D0
 593 :          RDEFP(I)=RDEFP(I)*A
 594 :  117  CONTINUE
 595 : * 
 596 : *  
 597 : *  Passage a l'option de calcul pour les contraintes  
 598 : *  Grandeurs finales   
 599 : *=========================================================
 600 : *
 601 :       IF (MFR1 .EQ. 1 .OR. MFR1 .EQ. 31)  THEN
 602 :         IF (NSTRS .EQ. 6) THEN
 603 : *
 604 : *---> MASSIF 3D 
 605 : *
 606 :           DO 170 I=1,NSTRS
 607 :             SIGF(I)=RSIGF(I)
 608 :             DEFP(I)=RDEFP(I)
 609 :             DSIGT(I)=RSIGF(I)-RSIG0(I)  
 610 :  170      CONTINUE
 611 :         ELSE IF ( NSTRS .EQ. 4 ) THEN
 612 : *
 613 : *---> Calcul axisymétrique ou contraintes planes 
 614 : *
 615 :           DO 180 I=1,NSTRS
 616 :             SIGF(I)=RSIGF(I)
 617 :             DEFP(I)=RDEFP(I)
 618 :             DSIGT(I)=RSIGF(I)-RSIG0(I)    
 619 :  180      CONTINUE 
 620 :         ENDIF
 621 :       ENDIF  
 622 : * 
 623 :       RETURN 
 624 : *
 625 :       END 
 626 :  
 627 :  
 628 :  
 629 :  
 630 : 
 631 :  
 632 :  
 633 :  

© Cast3M 2003 - All rights reserved.
Disclaimer