Download ric2nl.eso

Back to the list

   1 : C RIC2NL    SOURCE    PV        11/02/18    21:15:20     6875           
   2 : C   sub ricnl2D 
   3 : C====&===1=========2=========3=========4=========5=========6=========7== 
   4 : C Commentaires : Subroutine permettant de mettre en oeuvre le  
   5 : C                    modele RICRAG en 2D et en non local 
   6 : C Traits       : - Endommagement anisotrope 
   7 : C                - Monotone 
   8 : C Auteurs      : B. Richard (doctorant) 
   9 : C Date         : Février 2008 
  10 : C====&===1=========2=========3=========4=========5=========6=========7== 
  11 :         SUBROUTINE RIC2NL(wrk52,wrk53,wrk54,nvari,iecou) 
  12 : C---------------------------------------------------------------------- 
  13 : C-----DECLARATION GENERALE---------------------------------------------- 
  14 : C---------------------------------------------------------------------- 
  15 :       IMPLICIT REAL*8(A-H,O-Z) 
  16 : C---------------------------------------------------------------------- 
  17 : C-----APPEL AUX LIBRAIRIES---------------------------------------------- 
  18 : C---------------------------------------------------------------------- 
  19 : -INC CCOPTIO 
  20 : -INC DECHE 
  21 : C---------------------------------------------------------------------- 
  22 : C-----OUVERTURE DE SEGMENTS--------------------------------------------- 
  23 : C---------------------------------------------------------------------- 
  24 : C      SEGMENT WRK0 
  25 : C        REAL*8 XMAT(NMATT) 
  26 : C      ENDSEGMENT 
  27 : C 
  28 : C      SEGMENT WRK1 
  29 : C        REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS) 
  30 : C        REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI) 
  31 : C        REAL*8 DEFP(NSTRS),XCAR(ICARA) 
  32 : C      ENDSEGMENT 
  33 : C 
  34 : C      SEGMENT WRK5 
  35 : C        REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS) 
  36 : C      ENDSEGMENT 
  37 : C 
  38 : C      SEGMENT WRK6 
  39 : C        REAL*8 SIG0S(NSTRS),DEPSTS(NSTRS) 
  40 : C      END SEGMENT 
  41 : C      CHARACTER*8 CMATE 
  42 :  
  43 : C      INTEGER NSTRS,NVARI,NMATT,REMP,KIN,NENTIER,COCO 
  44 : C---------------------------------------------------------------------- 
  45 : C-----DECLARATION PARTICULIERES----------------------------------------- 
  46 : C---------------------------------------------------------------------- 
  47 :       REAL*8 UNIT(3,3),E,NU,FT,K,ALIND,ALDIR,GAMMA1,A1,D,Dn 
  48 :       REAL*8 EPSI(3,3),EPSIPI(3,3),ALPHA(3,3),DEPSI(3,3) 
  49 :       REAL*8 XLAM,XMU,EPSDIR(3,3),EPSIND(3,3),FFFZ,Y0,EPSILO(4) 
  50 :       REAL*8 SIGMA(3,3),VPEPS(3),X(3,3),FORCED,FORCEI,EPSILI(4) 
  51 :       REAL*8 EPSILB(4),SIGMP(4),EPSILC(4),EPSILP(4),SIGMPI(3,3) 
  52 :       REAL*8 SIGMOX(3,3),SIGMOD(3,3),TERME4,TERME6(3,3),TERME7(3,3) 
  53 :       REAL*8 TERME8(3,3),TERME9(3,3),DEVDGS(3,3),TERM11,DLAM2 
  54 :       REAL*8 DEVTRO(3,3),EPSDEV(3,3),DEVPI(3,3),TRA,TRAPI,TRASX 
  55 :       REAL*8 SEUINI,SEUIL2,TRDGZ,TERM10,TROGO,XPDC 
  56 : C---------------------------------------------------------------------- 
  57 : C-----PARAMETRES DE CALCUL---------------------------------------------- 
  58 : C---------------------------------------------------------------------- 
  59 :       PARAMETER (XZERO=0.0D0 , UN=1.0D0 , DEUX=2.0D0, XCOEF=0.09D0) 
  60 :  
  61 :       DO I=1,3 
  62 :          DO J=1,3 
  63 :             IF (I.EQ.J) THEN 
  64 :                UNIT(I,J)=UN 
  65 :             ELSE 
  66 :                UNIT(I,J)=XZERO 
  67 :             ENDIF 
  68 :          ENDDO 
  69 :       ENDDO 
  70 : C---------------------------------------------------------------------- 
  71 : C-----LES VARIABLES INTERNES D ENTREE----------------------------------- 
  72 : C---------------------------------------------------------------------- 
  73 :  
  74 : C 
  75 : C-----GLISSEMENT (EPSILON_PI) 
  76 : C 
  77 :       EPSIPI(1,1)=VAR0(2) 
  78 :       EPSIPI(2,2)=VAR0(3) 
  79 :       EPSIPI(3,3)=VAR0(4) 
  80 :  
  81 :       EPSIPI(1,2)=VAR0(5) 
  82 :       EPSIPI(1,3)=VAR0(6) 
  83 :       EPSIPI(2,3)=VAR0(7) 
  84 :  
  85 :       EPSIPI(2,1)=VAR0(5) 
  86 :       EPSIPI(3,1)=VAR0(6) 
  87 :       EPSIPI(3,2)=VAR0(7) 
  88 : C 
  89 : C-----ECROUISSAGE CINEMATIQUE (ALPHA) 
  90 : C 
  91 :       ALPHA(1,1)=VAR0(8) 
  92 :       ALPHA(2,2)=VAR0(9) 
  93 :       ALPHA(3,3)=VAR0(10) 
  94 : C 
  95 :       ALPHA(1,2)=VAR0(11) 
  96 :       ALPHA(1,3)=VAR0(12) 
  97 :       ALPHA(2,3)=VAR0(13) 
  98 : C 
  99 :       ALPHA(2,1)=VAR0(11) 
 100 :       ALPHA(3,1)=VAR0(12) 
 101 :       ALPHA(3,2)=VAR0(13) 
 102 : C 
 103 : C-----ENDOMMAGEMENT (D) 
 104 : C 
 105 :       D=VAR0(14) 
 106 : C 
 107 : C-----FORCE ECROUISSAGE ISOTROPE 
 108 : C 
 109 :       FFFZ=VAR0(17) 
 110 : C 
 111 : C-----DEFORMATION TOTALES 
 112 : C 
 113 :       DO I=1,4 
 114 :          EPSILO(I)=VAR0(17+I)+DEPST(I) 
 115 :          EPSILI(I)=VAR0(17+I) 
 116 :       ENDDO 
 117 : C 
 118 : C-----ECCROUISSAGE 
 119 : C 
 120 :         FORCED=VAR0(25) 
 121 :         FORCEI=VAR0(26) 
 122 : C---------------------------------------------------------------------- 
 123 : C-----RENOMMAGE DES CONSTANTES ELASTIQUES------------------------------- 
 124 : C---------------------------------------------------------------------- 
 125 :         E      = XMAT(1) 
 126 :       NU     = XMAT(2) 
 127 :       FT     = XMAT(5) 
 128 :       ALIND  = XMAT(6) 
 129 :       GAMMA1 = XMAT(7) 
 130 :       A1     = XMAT(8) 
 131 :       ALDIR  = XMAT(9) 
 132 :  
 133 :         EPS0   = FT/E 
 134 :       K      = E/(1.D0-2.D0*NU) 
 135 :       G      = E/(2.D0*(1.D0+NU)) 
 136 :       Y0     = K/6.0D0*EPS0**2.D0 
 137 : C---------------------------------------------------------------------- 
 138 : C-----INDICATEURS POUR LES OPTIONS DE CALCUL---------------------------- 
 139 : C---------------------------------------------------------------------- 
 140 :       NSTRSV = NSTRS 
 141 :       IFOUR2 = IFOUR 
 142 :       JDIM   = IDIM 
 143 : C---------------------------------------------------------------------- 
 144 : C-----CALCUL DE LA CONTRAINTE ELASTIQUE--------------------------------- 
 145 : C---------------------------------------------------------------------- 
 146 :       CMATE = 'ISOTROPE' 
 147 :       KCAS=1 
 148 :  
 148 :         CALL DOHMAS (XMAT,CMATE,IFOUR2,NSTRSV,KCAS,DDHOOK,IRTD)  
 148 :       CALL MATVE1 (DDHOOK,DEPST,NSTRSV,NSTRSV,DSIGT,1) 
 149 :  
 150 :       PREC=1.D-08 
 150 :       CALL DOHMAS (XMAT,CMATE,IFOUR2,NSTRSV,2,DDHOOK,IRTD)  
 150 :       CALL INVALM (DDHOOK,NSTRSV,NSTRSV,IRTD,PREC) 
 151 :  
 151 :       CALL MATVE1 (DDHOOK,SIG0,NSTRSV,NSTRSV,EPSILI,1) 
 152 :  
 152 :       CALL ENDOCB (EPSILO,EPSI,2,IFOUR2) 
 152 :       CALL ENDOCB (DEPST,DEPSI,2,IFOUR2) 
 153 :  
 154 :       KCAS=1 
 154 :       CALL DOHMAS (XMAT,CMATE,IFOUR2,NSTRSV,KCAS,DDHOOK,IRTD) 
 154 :       CALL MATVE1 (DDHOOK,EPSILO,NSTRSV,NSTRSV,SIGF,2) 
 155 :  
 156 :       SIGMA(1,1) = SIGF(1) 
 157 :       SIGMA(1,2) = SIGF(4) 
 158 :       SIGMA(1,3) = 0.0D0 
 159 :  
 160 :       SIGMA(2,1) = SIGF(4) 
 161 :       SIGMA(2,2) = SIGF(2) 
 162 :       SIGMA(2,3) = 0.0D0 
 163 :  
 164 :       SIGMA(3,1) = 0.0D0 
 165 :       SIGMA(3,2) = 0.0D0 
 166 :       SIGMA(3,3) = SIGF(3) 
 167 : C---------------------------------------------------------------------- 
 168 : C-----INTEGRATION DE L ENDOMMAGEMENT----------------------------------- 
 169 : C---------------------------------------------------------------------- 
 170 : C 
 171 : C-----CALCUL DES VALEURS PRINCIPALES 
 172 : C 
 172 :         CALL JACOD3(EPSI,2,VPEPS) 
 173 : C 
 174 : C-----CALCUL DE EPSILON DIRECT 
 175 : C 
 176 :  
 177 :       TRA = EPSI(1,1) + EPSI(2,2) + EPSI(3,3) 
 178 :  
 179 :         IF (TRA.GE.XZERO) THEN 
 180 : c         A1 = 7.0D-6 
 181 :          XPDC=1.0D0 
 182 :       ELSE 
 183 : c         A1 = 7.0D-7 
 184 :          XPDC=XZERO 
 185 :       ENDIF 
 186 :  
 187 :         DO I=1,3 
 188 :          DO J=1,3 
 189 :             IF (I.EQ.J) THEN 
 190 :                EPSDIR(I,J)=0.5D0*(DABS(VPEPS(I))+VPEPS(I))*XPDC 
 191 :             ELSE 
 192 :                EPSDIR(I,J)=XZERO 
 193 :             ENDIF 
 194 :          ENDDO 
 195 :       ENDDO 
 196 : C 
 197 : C-----CALCUL DE EPSILON INDUIT 
 198 : C        
 199 :         DO I=1,3 
 200 :          DO J=1,3 
 201 :             IF (I.EQ.J) THEN 
 202 :                EPSIND(I,J)=0.5D0*(DABS(VPEPS(I))+VPEPS(I))-EPSDIR(I,J) 
 203 :             ELSE 
 204 :                EPSIND(I,J)=XZERO 
 205 :             ENDIF 
 206 :          ENDDO 
 207 :       ENDDO 
 208 : C 
 209 : C-----TAUX D ENERGIES CORRESPONDANTES 
 210 : C 
 211 :         DONMDNL=XZERO    
 212 :       DONMINL=XZERO 
 213 :  
 214 :       DO I=1,3 
 215 :            DO J=1,3 
 216 :               DONMDNL=DONMDNL+(K/6.0D0)*EPSDIR(I,J)*EPSDIR(I,J) 
 217 :               DONMINL=DONMINL+(K/6.0D0)*EPSIND(I,J)*EPSIND(I,J) 
 218 :            ENDDO 
 219 :       ENDDO 
 220 :  
 221 :         SEUIL1NL=DONMDNL*XPDC+DONMINL*(1.0D0-XPDC) 
 222 : C 
 223 : C-----LE NON LOCAL 
 224 : C 
 225 :       IF (ISTEP.EQ.0) THEN 
 226 :          SEUIL1=SEUIL1NL 
 227 :          VARF(1)=SEUIL1 
 228 :       ELSE IF (ISTEP.EQ.1) THEN 
 229 :          VARF(1)=SEUIL1NL 
 230 :          DO I=2,26 
 231 :             VARF(I)=VAR0(I) 
 232 :          ENDDO 
 233 :          GOTO 2000 
 234 :       ELSE IF (ISTEP.EQ.2) THEN 
 235 :          SEUIL1=VAR0(1) 
 236 :          VARF(1)=SEUIL1 
 237 :       ENDIF 
 238 :  
 239 :       FFFZ=XZERO 
 240 :       FFFZ=FORCED*XPDC+FORCEI*(1.0D0-XPDC) 
 241 :         SEUILT=SEUIL1-(FFFZ+Y0) 
 242 : C 
 243 : C-----EVOLUTION ENDOMMAGEMENT 
 244 : C 
 245 :         IF (SEUILT.GT.XZERO) THEN       
 246 :            IF (TRA.GE.XZERO) THEN 
 247 :               Dn      = 1.0D0-1.0D0/(1.0D0+ALDIR*(SEUIL1-Y0)) 
 248 :               FORCED = SEUIL1-Y0 
 249 :            ELSE 
 250 :               Dn      = 1.0D0-1.0D0/(1.0D0+ALIND*(SEUIL1-Y0)) 
 251 :               FORCEI = SEUIL1-Y0 
 252 :            ENDIF 
 253 : C 
 254 : C-----ON VERIFIE LA CROISSANCE DE D 
 255 : C 
 256 :         IF (Dn.GE.D) THEN 
 257 :            D=Dn 
 258 :         ENDIF 
 259 : C 
 260 : C-----ON LIMITE LA VALEUR DE D 
 261 : C 
 262 :       IF (D.GE.0.9999D0) THEN 
 263 :          D=0.9999D0 
 264 :       ENDIF 
 265 : C 
 266 : C-----ON BLOQUE LES ECROUISSAGES 
 267 : C 
 268 :            FFFZ=FORCED*XPDC+FORCEI*(1.0D0-XPDC) 
 269 :         ENDIF 
 270 : C 
 271 : C---------------------------------------------------------------------- 
 272 : C-----INTEGRATION DU FROTTEMENT----------------------------------------- 
 273 : C---------------------------------------------------------------------- 
 274 : C 
 275 : C-----CALCUL DE X ET DU DEVIATEUR DE EPSILON TOTAL 
 276 : C       
 277 :       DO I=1,3 
 278 :            DO J=1,3 
 279 :               X(I,J)=GAMMA1*ALPHA(I,J) 
 280 :             EPSDEV(I,J)=EPSI(I,J)-(1.0D0/3.0D0)*TRA*UNIT(I,J) 
 281 :            ENDDO 
 282 :       ENDDO 
 283 : C 
 284 : C-----PREPARATION AU SUBSTEPPING 
 285 : C 
 286 :       NENTIER=1 
 287 :         DO KIN=1,NENTIER 
 288 :  
 289 :       DO I=1,4 
 290 :            EPSILO(I)=VAR0(17+I)+KIN*DEPST(I)/NENTIER 
 291 :       ENDDO 
 292 : C 
 293 : C-----ON PASSE EPSILO DANS EPSI 
 294 : C 
 295 :       EPSI(1,1)=EPSILO(1) 
 296 :         EPSI(2,2)=EPSILO(2) 
 297 :         EPSI(3,3)=EPSILO(3) 
 298 :         EPSI(1,2)=EPSILO(4)/2.0D0 
 299 :         EPSI(1,3)=0.0D0 
 300 :         EPSI(2,3)=0.0D0 
 301 :         EPSI(2,1)=EPSILO(4)/2.0D0 
 302 :         EPSI(3,1)=0.0D0 
 303 :         EPSI(3,2)=0.0D0 
 304 : C 
 305 : C-----ON CALCUL LA TRACE DE EPSILON ET DE EPSILON_PI 
 306 : C 
 307 :       TRA   = EPSI(1,1)+EPSI(2,2)+EPSI(3,3) 
 308 :       TRAPI = EPSIPI(1,1)+EPSIPI(2,2)+EPSIPI(3,3) 
 309 :  
 310 :       DO I=1,3 
 311 :           DO J=1,3 
 312 :             EPSDEV(I,J)=EPSI(I,J)-(1.0D0/3.0D0)*TRA*UNIT(I,J) 
 313 :                 DEVPI(I,J)=EPSIPI(I,J)-(1.0D0/3.0D0)*TRAPI*UNIT(I,J) 
 314 :           ENDDO 
 315 :       ENDDO 
 316 : C 
 317 : C-----ON PASSE EPSILON_PI DANS EPSILP 
 318 : C 
 319 :       EPSILP(1)=EPSIPI(1,1) 
 320 :       EPSILP(2)=EPSIPI(2,2) 
 321 :       EPSILP(3)=EPSIPI(3,3) 
 322 :       EPSILP(4)=2.0D0*EPSIPI(1,2) 
 323 : C 
 324 : C-----ON FORME LES DEFORMATIONS ASSOCIEES A SIGMA_PI 
 325 : C 
 326 :       DO I=1,4 
 327 :          EPSILC(I)=(EPSILO(I)-EPSILP(I))*D 
 328 :       ENDDO 
 329 : C 
 330 : C-----CALCUL DE SIGMPI 
 331 : C 
 332 :       KCAS=1 
 332 :       CALL DOHMAS (XMAT,CMATE,IFOUR2,NSTRSV,KCAS,DDHOOK,IRTD) 
 332 :       CALL MATVE1 (DDHOOK,EPSILC,NSTRSV,NSTRSV,SIGMP,2) 
 333 : C 
 334 : C-----ON PASSE SIGMP DANS SIGMPI 
 335 : C     
 336 :       DO I=1,3 
 337 :          DO J=1,3 
 338 :             SIGMPI(I,J)=XZERO 
 339 :          ENDDO 
 340 :       ENDDO 
 341 :  
 342 :       SIGMPI(1,1)=SIGMP(1) 
 343 :       SIGMPI(2,2)=SIGMP(2) 
 344 :       SIGMPI(3,3)=SIGMP(3) 
 345 :       SIGMPI(1,2)=SIGMP(4) 
 346 :       SIGMPI(2,1)=SIGMP(4) 
 347 : C 
 348 : C-----ON FORME LES DEFORMATIONS ASSOCIEES A SIGMA 
 349 : C 
 350 :       DO I=1,4 
 351 :          EPSILB(I)=(EPSILO(I)-EPSILP(I)*D) 
 352 :       ENDDO 
 353 : C 
 354 : C-----ON CALCUL SIGMA EN VECTEUR STOCKEE DANS SIGF 
 355 : C 
 356 :       KCAS=1 
 356 :       CALL DOHMAS (XMAT,CMATE,IFOUR2,NSTRSV,KCAS,DDHOOK,IRTD) 
 356 :       CALL MATVE1 (DDHOOK,EPSILB,NSTRSV,NSTRSV,SIGF,2) 
 357 : C 
 358 : C-----ON PASSE SIGF DANS SIGMA 
 359 : C 
 360 :       SIGMA(1,1)=SIGF(1) 
 361 :       SIGMA(2,2)=SIGF(2) 
 362 :       SIGMA(3,3)=SIGF(3) 
 363 :       SIGMA(1,2)=SIGF(4) 
 364 :       SIGMA(2,1)=SIGF(4) 
 365 : C 
 366 : C-----DEBUT DES ITERATIONS INTERNES 
 367 : C 
 368 :         DO 500 IREMP=1,500
 369 : C 
 370 : C     1) EVALUATION DU SEUIL 
 371 : C     ---------------------- 
 372 :         DO 101 I=1,3 
 373 :           DO 201 J=1,3 
 374 :             SIGMOX(I,J)=XZERO 
 375 :             SIGMOX(I,J)=SIGMPI(I,J)-X(I,J) 
 376 :  201      CONTINUE 
 377 :  101    CONTINUE 
 378 :  
 379 :         TRASX=XZERO 
 380 :         TRASX=SIGMOX(1,1)+SIGMOX(2,2)+SIGMOX(3,3) 
 381 :  
 382 :         DO 102 I=1,3 
 383 :           DO 202 J=1,3 
 384 :             SIGMOD(I,J)=XZERO 
 385 :             SIGMOD(I,J)=SIGMOX(I,J)-(1.0D0/3.0D0)*TRASX*UNIT(I,J) 
 386 :  202      CONTINUE 
 387 :  102    CONTINUE 
 388 :  
 389 :         TERME4=XZERO 
 390 :         DO 103 I=1,3 
 391 :           DO 203 J=1,3 
 392 :             TERME4=TERME4+SIGMOD(I,J)*SIGMOD(I,J) 
 393 :  203      CONTINUE 
 394 :  103    CONTINUE 
 395 : C 
 396 : C         CALCUL DU J2(SIGMPI-X) 
 397 : C 
 398 :         TERME4=DSQRT(3.D0/2.D0*TERME4) 
 399 :  
 400 :         SEUIL2=TERME4+XCOEF*(1.0D0/3.0D0)*TRASX 
 401 :          
 402 :         IF (IREMP.EQ.1) THEN
 403 :           SEUINI=SEUIL2 
 404 :         ENDIF 
 405 :  
 406 :         IF (SEUINI.GT.1.0D0) THEN 
 407 :           CRIT=SEUIL2/SEUINI 
 408 :         ELSE 
 409 :           CRIT=XZERO 
 410 :         ENDIF 
 411 :  
 412 :         IF (IREMP.EQ.1) ICOCO=2
 413 : C 
 414 : C       2) ON VERIFIE LA VALEUR RELATIVE DU SEUIL 
 415 : C       -----------------------------------------         
 416 :         IF ((CRIT.LE.1.0D-5).OR.(DLAM2.LE.1.0D-10.AND.IREMP.GT.1).OR.
 417 :      &       (D.EQ.XZERO)) THEN 
 418 :           GOTO 666 
 419 :         ELSE 
 420 :  
 421 :         IF (IREMP.EQ.1) ICOCO=1
 422 : C 
 423 : C       3) CALCUL DES DERIVÉES POUR LA REDESCENTE AU GRADIENT 
 424 : C       ----------------------------------------------------- 
 425 :         DO I=1,3 
 426 :           DO J=1,3 
 427 :             TERME6(I,J)=XZERO 
 428 :             TERME7(I,J)=XZERO 
 429 :             TERME8(I,J)=XZERO 
 430 :             TERME9(I,J)=XZERO 
 431 :             ENDDO 
 432 :           ENDDO 
 433 : C 
 434 : C       CALCUL DE DF/DS.................................................... 
 435 : C 
 436 :         DO I=1,3 
 437 :           DO J=1,3 
 438 :             TERME6(I,J)=(3.D0/2.D0)*SIGMOX(I,J)/TERME4+XCOEF*1.0D0/3.D0* 
 439 :      &                  UNIT(I,J) 
 440 :             ENDDO 
 441 :           ENDDO 
 442 : C 
 443 : C       CALCUL DE DF/DX.................................................... 
 444 : C 
 445 :         DO I=1,3 
 446 :           DO J=1,3 
 447 :             TERME7(I,J)=-TERME6(I,J) 
 448 :             ENDDO 
 449 :           ENDDO 
 450 : C 
 451 : C       CALCUL DE DG/DS.................................................... 
 452 : C 
 453 :         DO I=1,3 
 454 :           DO J=1,3 
 455 :             TERME8(I,J)=(3.D0/2.D0)*SIGMOX(I,J)/TERME4+XCOEF*1.0D0/3.D0* 
 456 :      &                  UNIT(I,J) 
 457 :             ENDDO 
 458 :           ENDDO 
 459 : C 
 460 : C       CALCUL DE DG/DX.................................................... 
 461 : C 
 462 :         DO I=1,3 
 463 :           DO J=1,3 
 464 :             TERME9(I,J)=-(3.D0/2.D0)*SIGMOX(I,J)/TERME4+A1*X(I,J)- 
 465 :      &                  XCOEF*1.0D0/3.D0*UNIT(I,J) 
 466 :             ENDDO 
 467 :           ENDDO 
 468 : C 
 469 : C       4) CALCUL DU MULTIPLICATEUR DE GLISSEMENT 
 470 : C       ----------------------------------------- 
 471 :           TRDGZ=TERME8(1,1)+TERME8(2,2)+TERME8(3,3) 
 472 :  
 473 :           DO I=1,3 
 474 :           DO J=1,3 
 475 :             DEVDGS(I,J)=TERME8(I,J)-(1.0D0/3.0D0)*TRDGZ*UNIT(I,J) 
 476 :             ENDDO 
 477 :           ENDDO 
 478 :  
 479 :         TERM10=XZERO 
 480 :         DO I=1,3 
 481 :           DO J=1,3 
 482 :             TERM10=TERM10+TERME6(I,J)*((K/3.0D0)*TRDGZ*UNIT(I,J)+ 
 483 :      &             2.0D0*G*DEVDGS(I,J)) 
 484 :             ENDDO 
 485 :           ENDDO 
 486 :  
 487 :         TERM11=XZERO 
 488 :         DO I=1,3 
 489 :           DO J=1,3 
 490 :             TERM11=TERM11+TERME7(I,J)*TERME9(I,J) 
 491 :             ENDDO 
 492 :           ENDDO 
 493 :  
 494 :         DLAM2=XZERO 
 495 :         DLAM2=SEUIL2/(TERM10+GAMMA1*TERM11) 
 496 : C 
 497 : C       5) ACTUALISATION DES VARIABLES FORCES 
 498 : C       ------------------------------------- 
 499 :         DO I=1,3 
 500 :           DO J=1,3 
 501 :             SIGMPI(I,J)=SIGMPI(I,J)-DLAM2*D*((K/3.0D0)*TRDGZ*UNIT(I,J)+ 
 502 :      &             2.0D0*G*DEVDGS(I,J)) 
 503 :             ENDDO 
 504 :           ENDDO 
 505 :  
 506 :         DO I=1,3 
 507 :           DO J=1,3 
 508 :             X(I,J)=X(I,J)-GAMMA1*DLAM2*TERME9(I,J) 
 509 :             ENDDO 
 510 :           ENDDO 
 511 :  
 512 :         ENDIF 
 513 :  500  CONTINUE 
 514 : C 
 515 : C-----ACTUALISATION DES VARIABLES FLUX (S'IL Y A LIEU) 
 516 : C  
 517 : C     1) ALPHA 
 518 : C       ------ 
 519 :  666  CONTINUE 
 520 :       IF (ICOCO.EQ.1) THEN
 521 :         DO 303 I=1,3 
 522 :           DO 403 J=1,3 
 523 :             ALPHA(I,J)=XZERO 
 524 :             ALPHA(I,J)=X(I,J)/GAMMA1 
 525 :  403      CONTINUE 
 526 :  303    CONTINUE 
 527 : C 
 528 : C     2) EPSILON_PI 
 529 : C        ---------- 
 530 :         TROGO = TRA-(SIGMPI(1,1)+SIGMPI(2,2)+SIGMPI(3,3))/(D*K) 
 531 :         DO I=1,3 
 532 :           DO J=1,3 
 533 :             DEVTRO(I,J)=EPSDEV(I,J)-(SIGMPI(I,J)-(1.0D0/3.0D0)* 
 534 :      &      (SIGMPI(1,1)+SIGMPI(2,2)+SIGMPI(3,3))*UNIT(I,J))/(2.0D0*G*D) 
 535 :             ENDDO 
 536 :         ENDDO 
 537 :  
 538 :         DO I=1,3 
 539 :           DO J=1,3 
 540 :             EPSIPI(I,J)=(1.0D0/3.0D0)*TROGO*UNIT(I,J)+DEVTRO(I,J) 
 541 :             ENDDO 
 542 :         ENDDO 
 543 :  
 544 :       EPSILP(1)=EPSIPI(1,1) 
 545 :       EPSILP(2)=EPSIPI(2,2) 
 546 :       EPSILP(3)=EPSIPI(3,3) 
 547 :       EPSILP(4)=2.0D0*EPSIPI(1,2) 
 548 :  
 549 :       ENDIF 
 550 :  
 551 :  
 552 :       ENDDO 
 553 : C 
 554 : C-----ACTUALISATION DES CONTRAINTES 
 555 : C 
 556 :  777  CONTINUE 
 557 :       DO I=1,4 
 558 :          EPSILB(I)=(EPSILO(I)-D*EPSILP(I)) 
 559 :       ENDDO 
 560 :  
 560 :       CALL DOHMAS (XMAT,CMATE,IFOUR2,NSTRSV,KCAS,DDHOOK,IRTD) 
 560 :       CALL MATVE1 (DDHOOK,EPSILB,NSTRSV,NSTRSV,SIGF,2) 
 561 : C 
 562 : C-----MISE DE SIGF DANS SIGMA 
 563 : C 
 564 :       SIGMA(1,1) = SIGF(1) 
 565 :       SIGMA(1,2) = SIGF(4) 
 566 :       SIGMA(1,3) = 0.0D0 
 567 :  
 568 :       SIGMA(2,1) = SIGF(4) 
 569 :       SIGMA(2,2) = SIGF(2) 
 570 :       SIGMA(2,3) = 0.0D0 
 571 :  
 572 :       SIGMA(3,1) = 0.0D0 
 573 :       SIGMA(3,2) = 0.0D0 
 574 :       SIGMA(3,3) = SIGF(3) 
 575 :  
 576 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 
 577 : C     STOCKAGE EN SORTIE 
 578 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 
 579 : C 
 580 : C     VECTEUR DES CONTRAINTES 
 581 : C 
 582 :         SIGF(1) = SIGMA(1,1) 
 583 :         SIGF(2) = SIGMA(2,2) 
 584 :         SIGF(3) = SIGMA(3,3) 
 585 :         SIGF(4) = SIGMA(1,2) 
 586 : C 
 587 : C     GLISSEMENT (EPSILON_PI)  
 588 : C 
 589 :       VARF(2)=EPSILP(1) 
 590 :       VARF(3)=EPSILP(2) 
 591 :       VARF(4)=EPSILP(3) 
 592 :       VARF(5)=EPSILP(4)/2.0D0 
 593 :       VARF(6)=0.0D0 
 594 :       VARF(7)=0.0D0 
 595 : C 
 596 : C     ECROUISSAGE CINEMATIQUE (ALPHA) 
 597 : C 
 598 :       VARF(8 )=ALPHA(1,1) 
 599 :       VARF(9 )=ALPHA(2,2) 
 600 :       VARF(10)=ALPHA(3,3) 
 601 :       VARF(11)=ALPHA(1,2) 
 602 :       VARF(12)=ALPHA(1,3) 
 603 :       VARF(13)=ALPHA(2,3) 
 604 : C 
 605 : C     ENDOMMAGEMENT (D) 
 606 : C 
 607 :       VARF(14)=D 
 608 : C 
 609 : C     FORCE LIEE A L ECROUISSAGE ISOTROPE  
 610 : C 
 611 :       VARF(17)=FFFZ 
 612 : C 
 613 : C     DEFORMATION TOTALE 
 614 : C 
 615 :       DO I=1,4 
 616 :          VARF(I+17)=EPSILO(I) 
 617 :       ENDDO 
 618 : C 
 619 : C     ECCROUISSAGE 
 620 : C 
 621 :         VARF(25)=FORCED 
 622 :         VARF(26)=FORCEI 
 623 :  
 624 :  2000 CONTINUE 
 625 :  
 626 :       RETURN 
 627 :       END 
 628 :  
 629 :  
 630 :  
 631 :  

© Cast3M 2003 - All rights reserved.
Disclaimer