Download alon1.eso

Back to the list

   1 : C ALON1     SOURCE    CHAT      05/01/12    21:20:49     5004           
   2 :        SUBROUTINE ALON1(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 partiellement saturé de ALONSO et al 
  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 :       REAL*8 LOGSUC
  48 : *
  49 : -INC CCOPTIO  
  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 : 
  59 : *  
  60 : *      COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  61 : *     . ITYP,IFOURB,IFLUAG,
  62 : *     . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  63 : *     . JFLUAG,KFLUAG,LFLUAG,
  64 : *     . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF
  65 : *
  66 :       DIMENSION SIG0(*),DEPST(*),VAR0(*),XMAT(*),SIGF(*), 
  67 :      &          VARF(*),DEFP(*),DSIGT(*)   
  68 :       DIMENSION RSIG0(6),RDEPS0(6),RSIGF(6),RDEFP(6)        
  69 :       DIMENSION DEPM(6),DEPEL(6),DEVT(6)    
  70 : *  
  71 : *  Adaptation de l'option de calcul vers le 3D massif de SIG0 a RSIG0
  72 : *====================================================================
  73 : * 
  74 :       IF (MFR1 .EQ. 1 .OR. MFR1 .EQ. 31)  THEN
  75 : *
  76 : *---> 1 formulation massive
  77 : *---> 2 formulation quasi incompressible
  78 : *---> MASSIF 3D 
  79 : *
  80 :         IF (NSTRS .EQ. 6) THEN
  81 :           DO 110 I=1,NSTRS
  82 :             RSIG0(I)=SIG0(I)
  83 :             RDEPS0(I)=DEPST(I)  
  84 :  110      CONTINUE
  85 :         ELSE IF ( NSTRS .EQ. 4 .AND. ((IFOUR .EQ. 0) 
  86 :      &    .OR.(IFOUR .EQ. -1))) THEN
  87 : *
  88 : *---> Calcul en mode deformations planes ou axisymetrique
  89 : * 
  90 :           DO 115 I=1,NSTRS
  91 :             RSIG0(I)=SIG0(I)
  92 :             RDEPS0(I)=DEPST(I)  
  93 :  115      CONTINUE       
  94 :           RSIG0(5)=0.D0
  95 :           RSIG0(6)=0.D0
  96 :           RDEPS0(5)=0.D0  
  97 :           RDEPS0(6)=0.D0   
  98 :         ENDIF  
  99 :       ELSE 
 100 :         KERRE = 99
 101 :         RETURN
 102 :       ENDIF
 103 : * 
 104 : *
 105 : *   Passage des deformations de cisaillement exprimées
 106 : *   en GAMA aux déformations de cisaillement exprimées
 107 : *   en déformations
 108 : *
 109 :       DO 116 I=1,6
 110 :          A=1.D0
 111 :          IF (I.GT.3) A=2.D0
 112 :          RDEPS0(I)=RDEPS0(I)/A
 113 :  116  CONTINUE 
 114 : * 
 115 : *   Données du materiau  
 116 : *=========================================================== 
 117 : *
 118 :       YOUN0=XMAT(1) 
 119 :       XNU0=XMAT(2)  
 120 :       XKS0=XMAT(5) 
 121 :       XLAM0=XMAT(6)  
 122 :       XM0=XMAT(7)  
 123 :       XKK0=XMAT(8)  
 124 :       PC00=XMAT(9)  
 125 :       P0=XMAT(10) 
 126 :       XLAM1=XMAT(11) 
 127 :       T0=XMAT(12) 
 128 :       TAU0=XMAT(13)  
 129 :       XG0=XMAT(14)   
 130 :       XK0=XMAT(15)      
 131 :       XE0=XMAT(16)  
 132 : *
 133 :       XXALF=XMAT(19)
 134 :       XXBET=XMAT(20)
 135 :       XXGAM=XMAT(3)
 136 :       XXPREF=XMAT(4)
 137 : *
 138 : *   AM   RHO ET ALPHA SONT DANS XMAT(17) ET XMAT(18)
 139 : *   CF BIZARRERIE DANS ECOU70
 140 : 
 141 : * 
 142 : *
 143 : *   Quelques initialisations 
 144 : *============================================================== 
 145 : *  
 146 : * 
 147 : *---> Variables internes initiales 
 148 : *     . déformation plastique équivalente 
 149 : *     . pression de consolidation à l'état saturé 
 150 : *     . limite élastique en succion 
 151 : *     . succions initiale et finale 
 152 : *  La succion finale est déstinée à etre calculée au préalable 
 153 : *  dans un opérateur particulier indépendant de ECOULE 
 154 : *  
 155 :       VOLU0=1.D0+XE0    
 156 :       PC0=VAR0(2) 
 157 :       IF (PC0.LE.1.D-30) PC0=PC00 
 158 :       SLIM0=VAR0(3) 
 159 : ******************************
 160 : *   MODIFICATION POUR LA SUCCION   le 5/11/97
 161 : *
 162 :       IF(SUCC1.LT.-1.E34.AND.SUCC2.LT.-1.E34)  THEN
 163 : *
 164 : *       cas à succion constante : on la prend dans var0
 165 : *
 166 :         SUCI0=VAR0(4)
 167 :         VARF(4)=VAR0(4)
 168 :       ELSE
 169 :         SUCI0=SUCC1
 170 :         VARF(4)=SUCC2
 171 :       ENDIF
 172 :       SUCF0=VARF(4)  
 173 : *
 174 : *       TRAITEMENT DU CAS SATURE
 175 : *
 176 :         PSAT0 =0.D0
 177 :         PSAT1 =0.D0
 178 :         IF(SUCI0.LT.0.D0) THEN
 179 :           PSAT0=-SUCI0
 180 :           SUCI0=0.D0
 181 :         ENDIF
 182 :         IF(SUCF0.LT.0.D0) THEN
 183 :           PSAT1=-SUCF0
 184 :           SUCF0=0.D0
 185 :         ENDIF
 186 : *
 187 : *       PASSAGE EN CONTRAINTES EFFECTIVES
 188 : *
 189 :         DO I=1,3
 190 :           RSIG0(I)=RSIG0(I) + PSAT0
 191 :         ENDDO
 192 : *
 193 : *    MODIF POUR REACTUALISER XKS0 EN FONCTION DE
 194 : *    LA PRESSION MOYENNE ET DE LA SUCCION
 195 : *    ON PREND LES VALEURS AU DEBUT DU PAS
 196 : *
 197 :        IF(XXBET.NE.0.D0) THEN
 198 :           XTRR = ABS (( RSIG0(1)+RSIG0(2)+RSIG0(3))/3.D0)
 199 :           XKS0 =XKS0*(1.D0-XXBET*LOG(XTRR/XXPREF))
 200 :      &                                 *EXP(-XXGAM*SUCI0)
 201 :        ENDIF
 202 : *
 203 : *  AM  13/05/98
 204 : *  ON MODIFIE LA LOI DE VARIATION DE K
 205 : *  ATTENTION : DANS LA FORMULE, LA SUCCION DOIT
 206 : *   ETRE EN MPA ET ON CONSIDERE QU'ELLE ARRIVE EN PA
 207 : *   ( CF COMMENTAIRE CI DESSOUS )
 208 : *
 209 : *****  XK0= XK0*( 1.D0-XXALF*SUCI0)
 210 : *
 211 :        SUCMPA = SUCI0 * 1.D-6
 212 :        LOGSUC=0.D0
 213 :        IF(SUCMPA.GT.1.D0) THEN
 214 :           LOGSUC=LOG(SUCMPA)
 215 :        ENDIF
 216 :        XK0= XK0*( 1.D0-XXALF*LOGSUC)
 217 : *  
 218 : *---> Pression atmosphérique 
 219 : *ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
 220 : *  ATTENTION : LA PRESSION ATMOSPHERIQUE EST EN Pa
 221 : *ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
 222 : *
 223 : 
 224 :       Pat0=1.E5 
 225 : *  
 226 : *---> Initialisation du logique de l'écrouissage en succion 
 227 : *     succ0=vrai : il y a écrouissage en succion 
 228 : *  
 229 :       SUCC0=-1.D0  
 230 : *  
 231 : *---> Pente élasto-plastique (courbe de consolidation)  
 232 : *  
 233 :       XLAM2=XLAM1*((1.D0-T0)*EXP(-1.D0*TAU0*SUCF0)+T0)   
 234 : * 
 235 : *---> Pression de saturation 
 236 : *  
 237 :       PS0=XKK0*SUCF0  
 238 : *  
 239 : *  
 240 : *  Déformation mécanique test 
 241 : *======================================================================   
 242 : *  
 243 : *---> Trace de la déformation élastique de succion 
 244 : *  
 245 :       TREPSS0=-XKS0/VOLU0*LOG((SUCF0+Pat0)/(SUCI0+Pat0))    
 246 : *
 247 : *---> Déformations mécaniques 
 248 : *  
 249 :       DO 10 I=1,6  
 250 :        A=0.D0 
 251 :        IF (I.LE.3) A=1.D0 
 252 :        DEPM(I)=RDEPS0(I)-TREPSS0/3.D0*A  
 253 :  10   CONTINUE 
 254 : * 
 255 : * 
 256 : *  Ecrouissage en succion ?  
 257 : *====================================================================== 
 258 : *  
 259 :       IF ((SUCF0.GT.SLIM0).AND.(SUCC0.LE.0.D0)) THEN 
 260 : * 
 261 : * HYPOTHESE: on écrouit en succion 
 262 : * 
 263 : *---> Limite en succion à la fin du pas 
 264 : *  
 265 :          SLIM1=SUCF0  
 266 : *  
 267 : *---> Trace de la déformation plastique due à la succion 
 268 : *  
 269 :          TREPPS0=(XKS0-XLAM0)/VOLU0*LOG((SLIM1+Pat0)/(SLIM0+Pat0))
 270 : *   
 271 : *---> Pression de consolidation  
 272 : *      . à l'état saturé 
 273 : *      . à la succion finale 
 274 : *  
 275 :          PC1=PC0*EXP(-VOLU0/(XLAM1-XK0)*TREPPS0)  
 276 :          PCS1=P0*(PC1/P0)**((XLAM1-XK0)/(XLAM2-XK0))  
 277 : *  
 278 : *---> On vérifie l'hypothèse  
 279 : *  
 280 : *     Déformations élastiques test et déformation plastique  
 281 : *  
 282 :          DO 11 I=1,6 
 283 :            A=0.D0 
 284 :            IF (I.LE.3) A=1.D0  
 285 :            DEPEL(I)=DEPM(I)-TREPPS0/3.D0*A  
 286 :            RDEFP(I)=TREPPS0/3.D0*A  
 287 :  11      CONTINUE 
 288 : * 
 289 : *     Contraintes 
 290 : *   
 291 :          PRES0=-1.D0*(RSIG0(1)+RSIG0(2)+RSIG0(3))/3.D0    
 292 :          TREPS0=DEPEL(1)+DEPEL(2)+DEPEL(3)  
 293 :          PRES1=PRES0*EXP(-VOLU0/XK0*TREPS0) 
 294 :          DO 12 I=1,6
 295 :            A=0.D0
 296 :            IF (I.LE.3) A=1.D0 
 297 :            DEVT(I)=RSIG0(I)+PRES0*A 
 298 :            DEVT(I)=DEVT(I)+2.D0*XG0*(DEPEL(I)-TREPS0/3.D0*A)   
 299 :            RSIGF(I)=DEVT(I)-PRES1*A  
 300 :  12      CONTINUE
 301 : * 
 302 : *     Contrainte équivalente 
 303 : *  
 304 :          STEST2=3.D0*PROCON(DEVT,DEVT,6)/2.D0 
 305 :          IF (STEST2.LE.1.D-10) STEST2=0.D0
 306 :          Stest=(STEST2)**(0.5D0)   
 307 : * 
 308 : *     Fonction de charge 
 309 : *  
 310 :         PHIT=Stest*Stest+XM0*XM0*(PRES1+PS0)*(PRES1-PCS1)  
 311 : * 
 312 : *     On vérifie qu'on est élastique 
 313 : *  
 314 :         IF (PHIT.LE.0.D0) THEN 
 315 :            VARF(1)=VAR0(1) 
 316 :            VARF(2)=PC1 
 317 :            VARF(3)=SLIM1  
 318 :            GOTO 99 
 319 :         ELSE 
 320 :            SUCC0=1.D0  
 321 :            GOTO 98 
 322 :         ENDIF  
 323 : * 
 324 : *---> Fin de la vérification de l'hypothèse  
 325 : * 
 326 :       ENDIF   
 327 : *
 328 : *  Fin du traitement de l'écrouissage en succion  
 329 : *=========================================================================== 
 330 : *
 331 : *  
 332 : *  Ecrouissage en pression 
 333 : *=========================================================================== 
 334 : * 
 335 :  98   IF ((SUCF0.LE.SLIM0).OR.(SUCC0.GT.0.D0)) THEN  
 336 : *   
 336 :          CALL ALON2(Pat0,XMAT,DEPM,RSIG0,VAR0, 
 337 :      .        RSIGF,VARF,RDEFP,KERRE,IB,IGAU)          
 338 : * 
 339 :       ENDIF  
 340 : * 
 341 : *  Fin de l'écrouissage en pression 
 342 : *=========================================================================== 
 343 : * 
 344 : *  
 345 : *  
 346 : *   Passage des deformations de cisaillement exprimées
 347 : *   en déformations aux déformations de cisaillement exprimées
 348 : *   en GAMA
 349 : *
 350 :  99   DO 117 I=1,6
 351 :          A=1.D0
 352 :          IF (I.GT.3) A=2.D0
 353 :          RDEFP(I)=RDEFP(I)*A
 354 :  117  CONTINUE
 355 : * 
 356 : *  
 357 : *  Passage a l'option de calcul pour les contraintes  
 358 : *=========================================================
 359 : *
 360 :       IF (MFR1 .EQ. 1 .OR. MFR1 .EQ. 31)  THEN
 361 : 
 362 : *
 363 : *       RETOUR EN CONTRAINTES TOTALES
 364 : *
 365 :         DO I=1,3
 366 :           RSIGF(I)=RSIGF(I) - PSAT1
 367 :         ENDDO
 368 : 
 369 :         IF (NSTRS .EQ. 6) THEN
 370 : *
 371 : *---> MASSIF 3D 
 372 : *
 373 :           DO 170 I=1,NSTRS
 374 :             SIGF(I)=RSIGF(I)
 375 :             DEFP(I)=RDEFP(I)
 376 :  170      CONTINUE
 377 :         ELSE IF ( NSTRS .EQ. 4 ) THEN
 378 : *
 379 : *---> Calcul axisymétrique ou contraintes planes 
 380 : *
 381 :           DO 180 I=1,NSTRS
 382 :             SIGF(I)=RSIGF(I)
 383 :             DEFP(I)=RDEFP(I)
 384 :  180      CONTINUE 
 385 :         ENDIF
 386 :       ENDIF  
 387 : * 
 388 :       RETURN 
 389 : *
 390 :       END 
 391 :  
 392 :  
 393 :  
 394 :  
 395 :  
 396 : 
 397 : 
 398 : 
 399 :  
 400 :  
 401 :  

© Cast3M 2003 - All rights reserved.
Disclaimer