Download ricj2.eso

Back to the list

   1 : C RICJ2     SOURCE    PV        11/03/07    21:18:05     6885           
   2 : C sub ricjoi2d
   3 : C RICJOI2D     SOURCE    CHAT      05/01/12    22:24:09     5004            
   4 :       SUBROUTINE RICJ2(IB,IGAU,NSTRS,SIG0,EPIN0,VAR0,NVARI, 
   5 :      &     DEPST,IFOUR,XMAT,NMATT,IVAL,DD,SIGF,DEFP,VARF,KERRE) 
   6 : C----------------------------------------------------------------------- 
   7 : C Modele RICJOI en version element joint 2D 
   8 : C----------------------------------------------------------------------- 
   9 : C Développé par :       Benjamin Richard 
  10 : C 
  11 : C Supervisé par :       Frederic Ragueneau 
  12 : C                               Lucas Hector Adelaide 
  13 : C                               Christian Cremona 
  14 : C                               Jean Louis Tailhan 
  15 : C----------------------------------------------------------------------- 
  16 :  
  17 : C 
  18 : C-----DECLARATION GENERALE---------------------------------------------- 
  19 : C 
  20 :       IMPLICIT INTEGER(I-N) 
  21 :       IMPLICIT REAL*8(A-H,O-Z) 
  22 : C 
  23 : C-----APPEL AUX INCLUDES------------------------------------------------ 
  24 : C 
  25 : -INC CCREEL 
  26 : C 
  27 : C-----PARAMETRES 
  28 : C 
  29 :       PARAMETER(XDILAT = 80.0D0) 
  30 : C 
  31 : C-----DIMENSION--------------------------------------------------------- 
  32 : C 
  33 :       DIMENSION SIG0(*),EPIN0(*),VAR0(*),DEPST(*),XMAT(*) 
  34 :       DIMENSION DD(NSTRS,NSTRS) 
  35 :       DIMENSION SIGF(*),DEFP(*),VARF(*) 
  36 :  
  37 :       FVARLIM = 2.0D-5 
  38 : C 
  39 : C-----COMPTEUR POUR LE NOMBRE DE PASSAGE DAS LA BOUCLE 
  40 : C 
  41 :       COUN  = VAR0(13) 
  42 : C 
  43 : C-----ETAT PRECEDENT---------------------------------------------------- 
  44 : C 
  45 :       D     = VAR0(1) 
  46 :       EPSF  = VAR0(2) 
  47 :       XEC   = VAR0(3) 
  48 :       EPST  = VAR0(4) 
  49 :       EPSN  = VAR0(5) 
  50 :       CINE  = VAR0(6) 
  51 :  
  52 :       EPSR  = VAR0(7) 
  53 :       IFLAG = nint(VAR0(8))
  54 :       FVAR  = VAR0(9) 
  55 :       SIGM  = VAR0(10) 
  56 :       XKS   = VAR0(11) 
  57 :       XKN   = VAR0(12) 
  58 : C 
  59 : C-----INITIALISATION SPECIFIQUE POUR LES VARIABLES INTERNES DIFF. DE ZERO 
  60 : C 
  61 :       IF (COUN.EQ.0.0D0) THEN 
  62 :          FVAR = 0.2D0 
  63 :          SIGM = XMAT(13) 
  64 :          XKS  = XMAT(1) 
  65 :          XKN  = XMAT(2) 
  66 :       ENDIF 
  67 : C 
  68 : C-----CONSTANTES MATERIAUX---------------------------------------------- 
  69 : C 
  70 :       XKS0 = XMAT(1) 
  71 :       XKN0 = XMAT(2) 
  72 :  
  73 :       XAD  = XMAT(5) 
  74 :       XY0  = XMAT(6) 
  75 :       XAL  = XMAT(7) 
  76 :       XGA  = XMAT(8) 
  77 :       XAA  = XMAT(9) 
  78 :  
  79 :       Q1COE = XMAT(10) 
  80 :       Q2COE = XMAT(11) 
  81 :       Q3COE = XMAT(12) 
  82 :       SYCOE = XMAT(13) 
  83 :       NCOEF = nint(XMAT(14))
  84 :       KCOEF = nint(XMAT(15) )
  85 :  
  86 :       TCCOR = XMAT(16) 
  87 :       NGONF = nint(XMAT(17))
  88 :  
  88 :       CALL APP2(TCCOR,YR,15) 
  89 :  
  90 : C 
  91 : C-----ACTUALISATION DE LA DEFORMATION----------------------------------- 
  92 : C 
  93 :       EPST = EPST + DEPST(1) 
  94 :       EPSN = EPSN + DEPST(2) 
  95 :  
  96 :       IF (NGONF.EQ.1) THEN 
  97 :          GOTO 123 
  98 :       ENDIF 
  99 :  
 100 : C 
 101 : C-----CALCUL DE L ENERGIE----------------------------------------------- 
 102 : C 
 103 :       EPSNP = 0.5D0*(DABS(EPSN)+EPSN) 
 104 :       YN    = 0.5D0*XKN*EPSNP*EPSNP 
 105 :       YD    = 0.5D0*XKS*EPST*EPST 
 106 : C 
 107 : C-----CALCUL DU SEUIL D ENDOMMAGEMENT----------------------------------- 
 108 : C 
 109 :       XFD = XAL*YN+YD-(XY0+XEC+YR) 
 110 : C 
 111 : C-----TEST SUR LE SEUIL D ENDOMMAGEMENT--------------------------------- 
 112 : C 
 113 :       IF (XFD.GT.0.0D0) THEN 
 114 :          Dn  = 1.0D0-1.0D0/(1+XAD*(XAL*YN+YD-XY0-YR)) 
 115 :          XEC = XAL*YN+YD-XY0-YR 
 116 :       ENDIF 
 117 :  
 118 :       IF (Dn.GT.D) THEN 
 119 :          D = Dn 
 120 :       ENDIF 
 121 :  
 122 :       IF (D.GE.1.0D0) THEN 
 123 :          D = 0.999D0 
 124 :       ENDIF 
 125 : C 
 126 : C-----SUBSTEPPING------------------------------------------------------- 
 127 : C 
 128 :       NENTIER = 1 
 129 :  
 130 :       DO IQ = 1,NENTIER 
 131 :  
 132 :          EPST  = VAR0(4)+DEPST(1)*(IQ/NENTIER) 
 133 :          EPSN  = VAR0(5)+DEPST(2)*(IQ/NENTIER) 
 134 :          XSTE  = XKN*EPSN 
 135 : C 
 136 : C-----FROTTEMENT--------------------------------------------------------- 
 137 : C 
 138 :         SPI   = D*XKS*(EPST-EPSF) 
 139 :  
 140 :         CRITF = DABS(SPI-CINE)+XDILAT*0.5D0*(-DABS(XSTE)+XSTE) 
 141 :  
 142 :            IF (CRITF.GT.(0.0D0)) THEN 
 143 :               XF0   = DABS(SPI-CINE)+XDILAT*0.5D0*(-DABS(XSTE)+XSTE) 
 144 :               XDLAM = 1.0D0 
 145 :  
 146 :               DO I=1,500 
 147 :                  SEUIL = (DABS(SPI-CINE)+ 
 148 :      &                 XDILAT*0.5D0*(-DABS(XSTE)+XSTE))/XF0 
 149 :  
 150 :                  IF ((SEUIL.LE.1.0D-5).OR.(XDLAM.LE.1.0D-10)) THEN 
 151 :                       GOTO 900 
 152 :                  ELSE 
 153 :                       XSG   = DABS(SPI-CINE)/(SPI-CINE) 
 154 :                       XDLAM = (DABS(SPI-CINE)+ 
 155 :      &                    XDILAT*0.5D0*(-DABS(XSTE)+XSTE))/ 
 156 :      &                    (XKS*D-XSG*XGA*(-XSG+XAA*CINE)) 
 157 :                     CINE  = CINE-XGA*XDLAM*(-XSG+XAA*CINE) 
 158 :                       SPI   = SPI-D*XKS*XDLAM*XSG 
 159 :                  ENDIF 
 160 :  
 161 :                  EPSF = -SPI/(D*XKS)+EPST 
 162 :  
 163 :               ENDDO 
 164 :            ENDIF 
 165 :  
 166 :  900     CONTINUE 
 167 :  
 168 :       ENDDO 
 169 : C 
 170 : C-----ANELASTICITE-------------------------------------------------------- 
 171 : C 
 172 :       IF (EPSN.GT.0.0D0) THEN 
 173 :          SIGN = (1-D)*XKN*EPSN 
 174 :       ELSE 
 175 :          SIGN =       XKN*(EPSN-EPSR) 
 176 :       ENDIF 
 177 : C 
 178 : C-----CONTRAINTE DUE AUX EFFETS INELASTIQUE DE LA ROUILLE----------------- 
 179 : C 
 180 :       IF (EPSN.LE.0.0D0) THEN 
 181 :          SIGR = -1.0D0*SIGN 
 182 :       ENDIF 
 183 : C 
 184 : C-----CRITERE D ANELASTICITE DE LA ROUILLE-------------------------------- 
 185 : C 
 186 :         IF (IFLAG.EQ.1) THEN 
 187 :                 GOTO 20 
 188 :         ELSE 
 189 :                 CRIT2 = 2.0D0*Q1COE*FVAR*DCOSH(Q2COE*SIGR/2.0D0/SYCOE)- 
 190 :      &                  (1.0D0+(Q3COE*FVAR)**2.0D0) 
 191 :         ENDIF 
 192 :  
 193 : C 
 194 : C SI LE CRITERE EST DEPASSE ON DEMARRE LE RETURN MAPPING 
 195 : C 
 196 :       IF ((CRIT2.GT.0.0D0).AND. 
 197 :      1    (EPSN .LE.0.0D0).AND. 
 198 :      2    (TCCOR.GT.0.0D0).AND. 
 199 :      3    (FVAR.GT.FVARLIM).AND. 
 200 :      4    (IFLAG.EQ.0).AND. 
 201 :      5    ((EPSN*DEPST(2)).GT.0.0D0)) THEN 
 202 :          CRIT20 = CRIT2 
 203 :            DLAM2  = 1.0D0 
 204 :          GOTO 10 
 205 :       ELSE IF (FVAR.EQ.FVARLIM) THEN 
 206 :            IFLAG = 1 
 207 :            GOTO 20 
 208 :         ELSE 
 209 :          GOTO 30 
 210 :       END IF 
 211 : C 
 212 : C-----DEBUT DES ITERATIONS INTERNES 
 213 : C 
 214 :  10   DO I=1,10000 
 215 : C 
 216 : C EVALUATION DU CRITERE 
 217 : C 
 218 :          CRIT2 = 2.0D0*Q1COE*FVAR*DCOSH(Q2COE*SIGR/2.0D0/SYCOE)- 
 219 :      &           (1.0D0+(Q3COE*FVAR)**2.0D0) 
 220 : C 
 221 : C TEST DE CONVERGENCE SUR LA VALEUR DU CRITERE RELATIVE 
 222 : C 
 223 :          IF ((DABS(CRIT2/CRIT20).LE.CRIT2TOL).OR. 
 224 :      &       (DLAM2.LT.0.0D0).OR. 
 225 :      &       (CRIT2.LT.0.0D0)) THEN 
 226 :             GOTO 20 
 227 :          END IF 
 228 : C 
 229 : C CALCUL DES DERIVEES DU CRITERES 
 230 : C 
 231 : C     dFr/dSIGR : DERIV21 
 232 : C     dFr/dSIGM : DERIV22 
 233 : C     dFr/dFVAR : DERIV23 
 234 : C 
 235 :          DERIV21 = DSINH(Q2COE*SIGR/2.0D0/SIGM)* 
 236 :      &             Q1COE*Q2COE*FVAR/SIGM 
 237 :  
 238 :          DERIV22 = DSINH(Q2COE*SIGR/2.0D0/SIGM)* 
 239 :      &             (-1.0D0)*Q1COE*Q2COE*FVAR*SIGR/SIGM**2.0D0 
 240 :  
 241 :          DERIV23 = 2.0D0*Q1COE*DCOSH(Q2COE*SIGR/2.0D0/SIGM)- 
 242 :      &             2.0D0*(Q3COE**2.0D0)*FVAR 
 243 : C 
 244 : C CALUL DU MODULE TANGENT COHERENTS ENTRE DSIGM ET DEPSM 
 245 : C 
 246 :          ETAN    = XKN/NCOEF*(SYCOE/SIGM)**(NCOEF-1.0D0) 
 247 :          ESTA    = 1.0D0/ETAN - 1.0D0/XKN 
 248 :          ESTA    = 1.0D0/ESTA 
 249 : C 
 250 : C CALCUL DU MULTIPLICATEUR DE LAGRANGE 
 251 : C 
 252 :          DLAM2   = -CRIT2/(XKN*(DERIV21)**2.0D0- 
 253 :      &             DERIV23*KCOEF*FVAR*(1.0D0-FVAR)*DERIV21- 
 254 :      &             ESTA/((1.0D0-FVAR)*SIGM)*DERIV21*SIGR*DERIV22) 
 255 : C 
 256 : C ACTUALISATION DES VARIABLES FORCES 
 257 : C 
 258 :          SIGR    = SIGR + DLAM2 * XKN * DERIV21 
 259 :          FVAR    = FVAR - DLAM2 * KCOEF * FVAR * (1.0D0-FVAR) * DERIV21 
 260 :          SIGM    = SIGM - DLAM2 * SIGR * DERIV21 *  
 261 :      &             ESTA/(1.0D0-FVAR)/SIGM 
 262 : C 
 263 : C SECURITE SUR LA VALEUR DE FVAR (CAS OU ELLE DEVIENT TROP FAIBLE) 
 264 : C 
 265 :          IF (FVAR.LE.FVARLIM) THEN 
 266 :               FVAR = FVARLIM 
 267 :                   MODR = nint(DLAM2 * XKN * DERIV21/DEPST(2))
 268 :          END IF 
 269 : C 
 270 : C -------------------------------------------- 
 271 : C RETURN MAPPING : FIN DES ITERATIONS INTERNES 
 272 : C -------------------------------------------- 
 273 : C 
 274 :       END DO 
 275 : C 
 276 : C BALISE DE SORTIE DU RETURN MAPPING AVANT ACUALISATION 
 277 : C 
 278 :  20   CONTINUE 
 279 : C 
 280 : C CAS OU LA FRACTION VOLUMIQUE DES PORES EST EGALE A 0.02 
 281 : C 
 282 :         IF ((FVAR.EQ.FVARLIM).AND. 
 283 :      &    (IFLAG.EQ.1)) THEN 
 284 :                 SIGR = SIGR - MODR * DEPST(2) 
 285 :         END IF 
 286 : C 
 287 : C CALCUL DES QUANTITES RESULTATS (EPSR, VKACT ET XKN) 
 288 : C 
 289 :       SIGN   = -SIGR 
 290 :       EPSR   = -(EPSN - SIGR/XKN) 
 291 : C 
 292 : C BALISE DE SORTIE DU RETURN MAPPING APRES ACUALISATION 
 293 : C 
 294 :  30   CONTINUE 
 295 : C 
 296 : C ACTUALISATION DES PARAMETRES ELASTIQUES 
 297 : C 
 298 :         XKNACT = 4.0D0*XKN0*XKS0*(1.0D0-FVAR)/ 
 299 :      &      (4.0D0*XKS0+3.0D0*XKN0*FVAR) 
 300 :       XKSACT = XKS0*(1.0D0-FVAR)/ 
 301 :      &        (1.0D0+((6.0D0*XKN0+12.0D0*XKS0)/ 
 302 :      &        (9.0D0*XKN0+8.0D0*XKS0))*FVAR) 
 303 :  
 304 :         XKN      = XKNACT 
 305 :         XKS    = XKSACT 
 306 :  
 307 : C 
 308 : C-----CALCUL DES CONTRAINTES FINALES------------------------------------ 
 309 : C 
 310 :       SIGF(1) = XKS*(1-D)*EPST + SPI 
 311 :  
 312 :       IF (EPSN.GT.0.0D0) THEN 
 313 :          SIGF(2) = XKN*(1-D)*EPSN 
 314 :       ELSE 
 315 :          SIGF(2) = XKN*(EPSN-EPSR) 
 316 :       ENDIF 
 317 :  
 318 : C 
 319 : C-----STOCKAGE EN SORTIE DES VARIABLES INTERNES------------------------- 
 320 : C 
 321 :       VARF(1 ) = D 
 322 :       VARF(2 ) = EPSF 
 323 :       VARF(3 ) = XEC 
 324 :       VARF(6 ) = CINE 
 325 :       VARF(7 ) = EPSR 
 326 :       VARF(8 ) = IFLAG 
 327 :       VARF(9 ) = FVAR 
 328 :       VARF(10) = SIGM  
 329 :       VARF(11) = XKSACT 
 330 :       VARF(12) = XKNACT 
 331 :       VARF(13) = COUN + 1 
 332 :  
 333 :  123  CONTINUE 
 334 :  
 335 :       IF (NGONF.EQ.1) THEN 
 336 :          SIGF(1) = XMAT(1)*EPST 
 337 :          SIGF(2) = XMAT(2)*EPSN 
 338 :       ENDIF 
 339 :  
 340 :       VARF(4 ) = EPST 
 341 :       VARF(5 ) = EPSN 
 342 :  
 343 :  
 344 :       RETURN 
 345 :       END 
 346 :  
 347 :  
 348 :  
 349 :  
 350 :  
 351 :  
 352 :  
 353 :  

© Cast3M 2003 - All rights reserved.
Disclaimer