Download ricbetf1.eso

Back to the list

   1 : C RICBETF1  SOURCE    BR232186  12/08/01    22:53:38     7456           
   2 :       SUBROUTINE RICBETF1(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
   3 : C
   4 : C====&===1=========2=========3=========4=========5=========6=========7==
   5 : C Commentaires : Subroutine permettant de mettre en oeuvre le 
   6 : C                modele RICBET pour representer
   7 : C                le comportement simplifie d'un beton ordinaire sous                 
   8 : C                sollicitations cycliques
   9 : C
  10 : C Traits       : - Endommagement scalaire 
  11 : C                - Glissement frottant
  12 : C                - multifibre
  13 : C                - Monotone et cyclique
  14 : C                - Effet unilatteral
  15 : C                - Comportement non lineaire en compression
  16 : C
  17 : C Auteurs      : B. Richard
  18 : C              : CEA-DEN/DANS/DM2S/SEMT/EMSI
  19 : C              : Benjamin.Richard@cea.fr
  20 : C
  21 : C Date         : Mars 2011
  22 : C====&===1=========2=========3=========4=========5=========6=========7==
  23 : C
  24 : C-----DECLARATION GENERALE----------------------------------------------
  25 : C
  26 :       IMPLICIT INTEGER(I-N)
  27 :       IMPLICIT REAL*8(A-H,O-Z)
  28 : C
  29 : C-----DECLARATION DES VARIABLES-----------------------------------------
  30 : C
  31 :       DIMENSION XMAT(15),DEPS(3),SIG0(3),VAR0(10),SIGF(3),VARF(10)
  32 :       REAL*8 VAR1(10),DEPS1(3)
  33 : 
  34 : C     Parametre pour le nombre d iteration locales internes
  35 :       IMAX = 500
  36 : 
  37 : C     Parametre pour le nombre de sous pas lie au sub-steeping
  38 :       NENTIER = 50
  39 : 
  40 : C
  41 : C-----DONNEES MATERIAUX-------------------------------------------------
  42 : C       
  43 :       XYG  = XMAT(1)
  44 :       XGC  = XMAT(1)/2.0D0/(XMAT(2)+1.0D0)
  45 :       XNU  = XMAT(2)
  46 :       XY0  = 0.5D0*XYG*(XMAT(5)/XMAT(1))**2.0D0
  47 : 
  48 :       XAT  = XMAT(6)
  49 :       XGAM = XMAT(7)
  50 :       XAA  = XMAT(8)
  51 :       XSIGF= XMAT(9)
  52 :       
  53 :       XFC = XMAT(10)
  54 :       XAF = XMAT(11)
  55 :       XAG = XMAT(12)
  56 :       XAC = XMAT(13)
  57 :       XBC = XMAT(14)
  58 :       XSIGU = XMAT(15)
  59 :       
  60 :       SXX = SIG0(1)
  61 : C
  62 : C-----PREPARATION SUBSTEPPING-------------------------------------------
  63 : C
  64 :       DO I=1,10
  65 :       
  66 :          VAR1(I) = VAR0(I)
  67 :       
  68 :       ENDDO
  69 : 
  70 :       DO I=1,3
  71 :       
  72 :          DEPS1(I) = DEPS(I)/NENTIER
  73 :       
  74 :       ENDDO
  75 : C
  76 : C-----LANCEMENT DU SUBSTEPPING------------------------------------------
  77 : C
  78 :       DO IQ=1,NENTIER
  79 : C
  80 : C-----VARIABLES INTERNES------------------------------------------------
  81 : C
  82 :       EPSXX = VAR1(1)+DEPS1(1)
  83 :       EPSXY = (VAR1(2)+DEPS1(2))/2.0D0
  84 :       EPSXZ = (VAR1(3)+DEPS1(3))/2.0D0
  85 : 
  86 : C
  87 :       XD = VAR1(4)
  88 :       XZ = VAR1(5)
  89 :       EPSPI = VAR1(6)
  90 :       XEC = VAR1(7)
  91 : C
  92 :       RECO = VAR1(8)
  93 :       DEFN = VAR1(9)
  94 :       DEFP = VAR1(10)
  95 :       
  96 :       IF (SXX.GE.0.0D0) THEN
  97 : C
  98 : C-----ENDOMMAGEMENT-----------------------------------------------------
  99 : C
 100 : 
 101 : C     Partie positive de la deformation
 102 :       EPSXXP = 0.5D0*(DABS(EPSXX-DEFN)+(EPSXX-DEFN))
 103 : 
 104 : C     Seuil en energie
 105 :       XYE=0.5D0*XYG*EPSXXP*EPSXXP
 106 : 
 107 : C     Calcul du seuil
 108 :       XENDO = XYE - (XY0 + XZ)
 109 : 
 110 :       IF ((XENDO.GT.0.0D0).AND.(SXX.GE.0.0D0)) THEN
 111 :          XD=1.0D0-1.0D0/(1.0D0+XAT*(XYE-XY0))
 112 :          XZ=XYE-XY0
 113 :       ENDIF
 114 : C
 115 : C-----GLISSEMENT INTERNE------------------------------------------------
 116 : C
 117 : 
 118 : C     La contrainte de frottement
 119 :       SPI = XD*XYG*((EPSXX-DEFN)-EPSPI)
 120 : 
 121 : C     Verification du seuil de glissement interne
 122 : C      IF ((DABS(SPI-XEC).GT.0.0D0).AND.(SXX.GE.0.0D0)) THEN
 123 : 
 124 :       IF (DABS(SPI-XEC).GT.0.0D0) THEN
 125 : C       Valeur initiale du seuil pour critere relatif   
 126 :         XF0=DABS(SPI-XEC)
 127 :         
 128 : C       Initialisation du multiplicateur de Lagrange
 129 :         XDLAM=1.0D0
 130 :   
 131 : C       Debut des iterations internes
 132 :         DO I=1,IMAX
 133 :   
 134 : C          Calcul du critere relatif
 135 :            SEUIL=DABS(SPI-XEC)/XF0
 136 : 
 137 : C          Calcul de la derive du critere           
 138 :            XSG=DABS(SPI-XEC)/(SPI-XEC)
 139 : 
 140 : C          Calcul du multiplicateur de Lagrange            
 141 :            XDLAM=DABS(SPI-XEC)/(XYG*XD-XSG*XGAM*(-XSG+XAA*XEC))
 142 : 
 143 : C          Actualisation des variables internes
 144 :            XEC=XEC-XGAM*XDLAM*(-XSG+XAA*XEC)
 145 :          
 146 :            SPI=SPI-XD*XYG*XDLAM*XSG
 147 : 
 148 : C          Calcul de la deformation de glissement
 149 :            EPSPI=-SPI/(XD*XYG)+(EPSXX-DEFN)
 150 : 
 151 : C          Recalcul du seuil pour eventuel arret           
 152 :            SEUIL=DABS(SPI-XEC)/XF0
 153 :            
 154 : C          Critere d arret       
 155 :            IF ((SEUIL.LE.1.0D-8).OR.(XDLAM.LE.1.0D-10)) THEN
 156 :    
 157 :               GOTO 900
 158 :            
 159 :            ENDIF
 160 :          
 161 :         ENDDO
 162 : 
 163 :       ENDIF
 164 : 
 165 : C     Balise de sortie
 166 :  900  CONTINUE 
 167 :         
 168 :       SXX=XYG*(EPSXX-DEFN-XD*EPSPI)
 169 : 
 170 :       GOTO 761
 171 :       
 172 :       ELSEIF (SXX.LE.XSIGF) THEN
 173 : 
 174 : C        Calcul de la contrainte effective
 175 :          SXX=XYG*(EPSXX-DEFN)
 176 : 
 177 : C        Calcul du seuil plastique
 178 :          XFP = XAF*DABS(SXX) - (RECO + XFC)
 179 :          
 180 : C        On test le seuil plastique         
 181 :          IF (XFP.GT.0.0D0) THEN
 182 : 
 183 : C           On retient le seuil pour le critere relatif         
 184 :             XFP0 = XFP
 185 : 
 186 : C           Debut des iterations internes            
 187 :             DO NT=1,IMAX
 188 : 
 189 :                XFP = XAF*DABS(SXX) - (RECO + XFC)
 190 :             
 191 :                DXFP = XAF*DABS(SXX)/SXX
 192 :             
 193 :                DXGP = XAG*DABS(SXX)/SXX
 194 :             
 195 :                XTEMP1 = XYG*DXGP
 196 :                
 197 :                XTEMP2 = DEXP(-XBC*DEFP)*(XAC-(XAC*DEFP+XFC+XSIGU)*XBC)
 198 :                
 199 :                XLAMP = XFP/(XTEMP1*DXFP+XTEMP2)
 200 :                
 201 :                RECO = RECO + XTEMP2*XLAMP
 202 :                
 203 :                DEFP = DEFP + XLAMP
 204 :                
 205 :                DEFN = DEFN + XLAMP*DXGP
 206 :                
 207 :                SXX = SXX - XLAMP*XTEMP1
 208 :                
 209 :                XFP = XAF*DABS(SXX) - (RECO + XFC)
 210 :                
 211 :              IF ((DABS(XFP/XFP0).LE.1.0D-8).OR.(XLAMP.LE.1.0D-10)) THEN
 212 :                               
 213 :                   GOTO 666
 214 :                
 215 :                ENDIF
 216 :             
 217 :             ENDDO
 218 :             
 219 :          ENDIF
 220 :          
 221 :  666     CONTINUE      
 222 :          GOTO 761
 223 :       
 224 :       ELSE
 225 : 
 226 :          SXX = SXX + DEPS1(1)*XYG/
 227 :      &         (1.0D0-(XYG*XD*EPSPI)/(XSIGF))
 228 :          GOTO 761
 229 :       
 230 :       ENDIF
 231 :       
 232 :  761  CONTINUE
 233 : 
 234 : C
 235 : C-----MISE A JOUR DE VAR1-----------------------------------------------
 236 : C
 237 :       VAR1(1 ) = EPSXX
 238 :       VAR1(2 ) = 2.0D0*EPSXY
 239 :       VAR1(3 ) = 2.0D0*EPSXZ
 240 :       VAR1(4 ) = XD
 241 :       VAR1(5 ) = XZ
 242 :       VAR1(6 ) = EPSPI
 243 :       VAR1(7 ) = XEC
 244 :       VAR1(8 ) = RECO
 245 :       VAR1(9 ) = DEFN
 246 :       VAR1(10) = DEFP
 247 : C
 248 : C-----FIN DU SUBSTEPPING------------------------------------------------
 249 : C
 250 :       ENDDO
 251 : C
 252 : C-----SOCKAGE EN SORTIE-------------------------------------------------
 253 : C
 254 : C     Les variables internes
 255 :       VARF(1) = EPSXX
 256 :       VARF(2) = 2.0D0*EPSXY
 257 :       VARF(3) = 2.0D0*EPSXZ
 258 :       VARF(4) = XD
 259 :       VARF(5) = XZ
 260 :       VARF(6) = EPSPI
 261 :       VARF(7) = XEC
 262 :       VARF(8) = RECO
 263 :       VARF(9) = DEFN
 264 :       VARF(10) = DEFP
 265 : 
 266 : C     Les contraintes
 267 :       SIGF(1) = SXX
 268 :       SIGF(2) = SIG0(2)+XGC*DEPS(2)
 269 :       SIGF(3) = SIG0(3)+XGC*DEPS(3)
 270 : 
 271 : C     Fin de l integration
 272 :       RETURN
 273 :       END
 274 : 
 275 : 
 276 : 
 277 : 
 278 : 
 279 : 
 280 : 
 281 :  

© Cast3M 2003 - All rights reserved.
Disclaimer