1 : C RICBETF2 SOURCE BR232186 12/08/01 22:53:39 7456 2 : SUBROUTINE RICBETF2(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 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(*),DEPS(3),SIG0(3),VAR0(*),SIGF(3),VARF(*) 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 : C 40 : C-----DONNEES MATERIAUX------------------------------------------------- 41 : C 42 : XYG = XMAT(1) 43 : XGC = XMAT(1)/2.0D0/(XMAT(2)+1.0D0) 44 : XNU = XMAT(2) 45 : XY0 = 0.5D0*XYG*(XMAT(5)/XMAT(1))**2.0D0 46 : XAT = XMAT(6) 47 : XGAM = XMAT(7) 48 : XAA = XMAT(8) 49 : XSIGF= XMAT(9) 50 : 51 : XFC = XMAT(10) 52 : XAF = XMAT(11) 53 : XAG = XMAT(12) 54 : XAC = XMAT(13) 55 : XBC = XMAT(14) 56 : XSIGU = XMAT(15) 57 : 58 : SXX = SIG0(1) 59 : C 60 : C-----PREPARATION SUBSTEPPING------------------------------------------- 61 : C 62 : DO I=1,10 63 : 64 : VAR1(I) = VAR0(I) 65 : 66 : ENDDO 67 : 68 : DO I=1,3 69 : 70 : DEPS1(I) = DEPS(I)/NENTIER 71 : 72 : ENDDO 73 : C 74 : C-----LANCEMENT DU SUBSTEPPING------------------------------------------ 75 : C 76 : DO IQ=1,NENTIER 77 : 78 : C 79 : C-----VARIABLES INTERNES------------------------------------------------ 80 : C 81 : EPSXX = VAR1(1)+DEPS1(1) 82 : EPSXY = (VAR1(2)+DEPS1(2))/2.0D0 83 : EPSXZ = (VAR1(3)+DEPS1(3))/2.0D0 84 : C 85 : XD = VAR1(4) 86 : XZ = VAR1(5) 87 : EPSPI = VAR1(6) 88 : XEC = VAR1(7) 89 : C 90 : RECO = VAR1(8) 91 : DEFN = VAR1(9) 92 : DEFP = VAR1(10) 93 : C 94 : C-----ENDOMMAGEMENT----------------------------------------------------- 95 : C 96 : 97 : C Partie positive de la deformation 98 : EPSXXP = 0.5D0*(DABS(EPSXX-DEFN)+(EPSXX-DEFN)) 99 : 100 : C Seuil en energie 101 : XYE=0.5D0*XYG*EPSXXP*EPSXXP 102 : 103 : C Calcul du seuil 104 : XENDO = XYE - (XY0 + XZ) 105 : 106 : IF ((XENDO.GT.0.0D0).AND.(SXX.GE.0.0D0)) THEN 107 : XD=1.0D0-1.0D0/(1.0D0+XAT*(XYE-XY0)) 108 : XZ=XYE-XY0 109 : ENDIF 110 : C 111 : C-----GLISSEMENT INTERNE------------------------------------------------ 112 : C 113 : 114 : C La contrainte de frottement 115 : SPI = XD*XYG*((EPSXX-DEFN)-EPSPI) 116 : 117 : C Verification du seuil de glissement interne 118 : IF ((DABS(SPI-XEC).GT.0.0D0).AND.(EPSXX.GE.0.0D0)) THEN 119 : 120 : C Valeur initiale du seuil pour critere relatif 121 : XF0=DABS(SPI-XEC) 122 : 123 : C Initialisation du multiplicateur de Lagrange 124 : XDLAM=1.0D0 125 : 126 : C Debut des iterations internes 127 : DO I=1,IMAX 128 : 129 : C Calcul du critere relatif 130 : SEUIL=DABS(SPI-XEC)/XF0 131 : 132 : C Calcul de la derive du critere 133 : XSG=DABS(SPI-XEC)/(SPI-XEC) 134 : 135 : C Calcul du multiplicateur de Lagrange 136 : XDLAM=DABS(SPI-XEC)/(XYG*XD-XSG*XGAM*(-XSG+XAA*XEC)) 137 : 138 : C Actualisation des variables internes 139 : XEC=XEC-XGAM*XDLAM*(-XSG+XAA*XEC) 140 : 141 : SPI=SPI-XD*XYG*XDLAM*XSG 142 : 143 : C Calcul de la deformation de glissement 144 : EPSPI=-SPI/(XD*XYG)+(EPSXX-DEFN) 145 : 146 : C Recalcul du seuil pour eventuel arret 147 : SEUIL=DABS(SPI-XEC)/XF0 148 : 149 : C Critere d arret 150 : IF ((SEUIL.LE.1.0D-8).OR.(XDLAM.LE.1.0D-10)) THEN 151 : 152 : GOTO 900 153 : 154 : ENDIF 155 : 156 : ENDDO 157 : 158 : ENDIF 159 : 160 : C Balise de sortie 161 : 900 CONTINUE 162 : 163 : 164 : IF (EPSXX.GE.0.0D0) THEN 165 : SXX=XYG*(EPSXX-XD*EPSPI) 166 : ELSE 167 : SXX=SIG0(1) + XYG*DEPS(1) 168 : ENDIF 169 : 170 : C 171 : C-----MISE A JOUR DE VAR1----------------------------------------------- 172 : C 173 : VAR1(1 ) = EPSXX 174 : VAR1(2 ) = 2.0D0*EPSXY 175 : VAR1(3 ) = 2.0D0*EPSXZ 176 : VAR1(4 ) = XD 177 : VAR1(5 ) = XZ 178 : VAR1(6 ) = EPSPI 179 : VAR1(7 ) = XEC 180 : VAR1(8 ) = RECO 181 : VAR1(9 ) = DEFN 182 : VAR1(10) = DEFP 183 : C 184 : C-----FIN DU SUBSTEPPING------------------------------------------------ 185 : C 186 : ENDDO 187 : C 188 : C-----SOCKAGE EN SORTIE------------------------------------------------- 189 : C 190 : 191 : C Les variables internes 192 : VARF(1) = EPSXX 193 : VARF(2) = 2.0D0*EPSXY 194 : VARF(3) = 2.0D0*EPSXZ 195 : VARF(4) = XD 196 : VARF(5) = XZ 197 : VARF(6) = EPSPI 198 : VARF(7) = XEC 199 : VARF(8) = RECO 200 : VARF(9) = DEFN 201 : VARF(10) = DEFP 202 : 203 : C Les contraintes 204 : SIGF(1) = SXX 205 : SIGF(2) = SIG0(2)+XGC*DEPS(2)*(1.0D0-XD) 206 : SIGF(3) = SIG0(3)+XGC*DEPS(3)*(1.0D0-XD) 207 : 208 : C Fin de l integration 209 : RETURN 210 : END 211 : 212 : 213 : 214 : 215 : 216 : 217 : 218 :
© Cast3M 2003 - All rights reserved.
Disclaimer