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