1 : C OUGLFI SOURCE CHAT 10/12/16 21:16:31 6819 2 : C sub ouglofibc 3 : C====&===1=========2=========3=========4=========5=========6=========7== 4 : C Commentaires : Subroutine permettant de mettre en oeuvre le 5 : C modele d'OUGLOVA d'acier corrodé 6 : C Traits : - Endommagement isotrope couplé à la plasticité 7 : C - Monotone et cyclique 8 : C Auteurs : B. Richard 9 : C Date : Février 2008 10 : C====&===1=========2=========3=========4=========5=========6=========7== 11 : SUBROUTINE OUGLFI(XMAT,DEPST,SIG0,VAR0,SIGA,VARF) 12 : 13 : REAL*8 XMAT(20),VAR0(25),VARF(25),DEPST(3) 14 : REAL*8 SIG0(3),SIGA(3) 15 : REAL*8 ES,NUS,DCS,SIGMAES,TCS,MS,KS 16 : REAL*8 ENDS,PVAR,DEPP,RVAR,SIGS,EPSP 17 : REAL*8 SIGMA,XLAM,EPTO,EPSR,PR,PD 18 : REAL*8 CRITPLAS,J2,CRITPLAS0,CRITP,DELTAP,CRITENDO 19 : REAL*8 TAU,DFDSIG,DGDSIG,DFDR 20 : 21 : INTEGER INDITER,ITER,FLAG,I1,ITERMAX,I2 22 : 23 : C 24 : C OPTIONS INTERNES 25 : C 26 : ITERMAX = 100000 27 : C --------------------------- 28 : C | ACIER CORRODE | 29 : C --------------------------- 30 : C XMAT( 1) ES 31 : C XMAT( 2) NUS 32 : C XMAT( 3) 33 : C XMAT( 4) 34 : C XMAT( 5) 35 : C XMAT( 6) DCS 36 : C XMAT( 7) SIGMAES 37 : C XMAT( 8) TCS 38 : C XMAT( 9) MS 39 : C XMAT(10) KS 40 : C 41 : C --------------------------- 42 : C | ACIER CORRODE | 43 : C --------------------------- 44 : C VAR0( 1) VARF( 1) ENDS 45 : C VAR0( 2) VARF( 2) PVAR 46 : C VAR0( 3) VARF( 3) DEPP 47 : C VAR0( 4) VARF( 4) RVAR 48 : C VAR0( 5) VARF( 5) SIGS 49 : C VAR0( 6) VARF( 6) EPSP 50 : C VAR0( 7) VARF( 7) 51 : C VAR0( 8) VARF( 8) 52 : C VAR0( 9) VARF( 9) 53 : C VAR0(10) VARF(10) 54 : C 55 : C --------------------------- 56 : C | AUTRES | 57 : C --------------------------- 58 : C VAR0(21) VARF(21) XLAM 59 : C VAR0(22) VARF(22) EPTO 60 : C VAR0(23) VARF(23) INDITER 61 : 62 : C 63 : C LES PARAMETRES MATERIAUX 64 : C 65 : ES = XMAT( 1) 66 : NUS = XMAT( 2) 67 : DCS = XMAT( 6) 68 : SIGMAES = XMAT( 7) 69 : TCS = XMAT( 8) 70 : MS = XMAT( 9) 71 : KS = XMAT(10) 72 : C 73 : C LES VARIABLES INTERNES 74 : C 75 : ENDS = VAR0( 1) 76 : PVAR = VAR0( 2) 77 : DEPP = VAR0( 3) 78 : RVAR = VAR0( 4) 79 : SIGS = VAR0( 5) 80 : EPSP = VAR0( 6) 81 : 82 : XLAM = 1.0D0 83 : 84 : EPTO = VAR0(22) 85 : INDITER = VAR0(23) 86 : C 87 : C AVANCE EN DEFORMATION 88 : C 89 : EPTO = (EPTO + DEPST(1))*XLAM 90 : C 91 : C CALCUL DE QUELQUES GRANDEURS 92 : C 93 : IF (TCS.LE.15.0D0) THEN 94 : EPSR = -0.0111D0*TCS+0.2345D0 95 : ELSE 96 : EPSR = -0.0006D0*TCS+0.0510D0 97 : END IF 98 : 99 : PR = EPSR 100 : 101 : PD = 0.8D0*PR 102 : C 103 : C PREDICTION ELASTIQUE 104 : C 105 : SIGMA = (1.0D0-ENDS)*ES*(EPTO-EPSP) 106 : C 107 : C CRITERE DE PLASTICITE ET INITIALISATIONS 108 : C 109 : J2 = DABS(SIGMA) 110 : CRITPLAS = J2/(1.0D0-ENDS)-(RVAR+SIGMAES) 111 : CRITPLAS0 = CRITPLAS 112 : CRITP = 1.0D0 113 : DELTAP = 20.0D0 114 : ITER = 0 115 : 116 : IF ((CRITPLAS.LE.0.0D0).OR.((DEPST(1)*EPTO).LE.0.0D0)) THEN 117 : FLAG = 1 118 : DEPP = 0.0D0 119 : GOTO 30 120 : ELSE IF (CRITPLAS.GT.0.0D0) THEN 121 : FLAG = 0 122 : GOTO 10 123 : END IF 124 : C 125 : C DEBUT DES ITERATIONS INTERNES 126 : C 127 : 10 DO I1=1,ITERMAX 128 : C 129 : C ON VERIFIE LE CRITERE 130 : C 131 : 132 : DO I2=1,ITERMAX 133 : IF ((CRITP.GT.1.0D-5).AND. 134 : & ((DELTAP.GT.1.0D-15).OR.(CRITPLAS.GT.0.0D0)).AND. 135 : & (ITER.LT.50)) THEN 136 : 137 : ITER = ITER +1 138 : 139 : DFDSIG = (DABS(SIGMA)/SIGMA)/(1.0D0-ENDS) 140 : DGDSIG = DFDSIG 141 : DFDR = -1.0D0 142 : 143 : TAU = DGDSIG*ES 144 : DELTAP = CRITPLAS/(DFDSIG*TAU- 145 : & DFDR*KS/MS*(J2/(KS*(1.0D0-ENDS))- 146 : & SIGMAES/KS)**(1.0D0-MS)) 147 : 148 : IF (DELTAP.LT.0.0D0) THEN 149 : DELTAP = 0.0D0 150 : END IF 151 : C 152 : C ACTUALISATION 153 : C 154 : SIGMA = SIGMA - DELTAP*TAU 155 : EPSP = EPSP + DELTAP*DGDSIG 156 : DEPP = DELTAP*DGDSIG 157 : PVAR = PVAR + DELTAP/(1.0D0-ENDS) 158 : RVAR = KS*(PVAR)**(1.0D0/MS) 159 : C 160 : C ACTUALISATION DU SEUIL 161 : C 162 : J2 = DABS(SIGMA) 163 : CRITPLAS = J2/(1.0D0-ENDS)-(RVAR+SIGMAES) 164 : CRITP = CRITPLAS/CRITPLAS0 165 : 166 : ELSE 167 : 168 : GOTO 15 169 : 170 : END IF 171 : END DO 172 : C 173 : C BALISE DE SORTIE DE LA SECONDE BOUCLE D ITERATIONS INTERNES 174 : C 175 : 15 CONTINUE 176 : RVAR = J2/(1.0D0-ENDS)-SIGMAES 177 : 178 : GOTO 20 179 : 180 : 20 CONTINUE 181 : CRITENDO = PVAR - PD 182 : 183 : IF (CRITENDO.LT.0.0D0) THEN 184 : FLAG = 1 185 : 186 : GOTO 30 187 : 188 : ELSE 189 : ENDS = DCS/(PR-PD)*(PVAR-PD) 190 : 191 : FLAG = 1 192 : 193 : IF (ENDS.GT.0.99D0) THEN 194 : ENDS = 0.99D0 195 : END IF 196 : 197 : GOTO 30 198 : 199 : END IF 200 : 201 : END DO 202 : C 203 : C BALISE DE SORTIE FINALE 204 : C 205 : 30 CONTINUE 206 : 207 : IF (PVAR.GT.PR) THEN 208 : PVAR = PR 209 : SIGMA = 0.0D0 210 : ELSE 211 : SIGMA = (1.0D0-ENDS)*ES*(EPTO-EPSP) 212 : END IF 213 : C 214 : C LES SORTIES 215 : C 216 : VARF( 1) = ENDS 217 : VARF( 2) = PVAR 218 : VARF( 3) = DEPP 219 : VARF( 4) = RVAR 220 : VARF( 5) = SIGMA 221 : VARF( 6) = EPSP 222 : VARF( 9) = EPTO 223 : 224 : VARF(22) = EPTO 225 : VARF(23) = INDITER 226 : 227 : C 228 : C LES CONTRAINTES 229 : C 230 : SIGA(1) = SIGMA 231 : SIGA(2) = SIG0(2)+(ES/(2.0D0*(1.0D0+NUS)))*DEPST(2)*XLAM 232 : SIGA(3) = SIG0(3)+(ES/(2.0D0*(1.0D0+NUS)))*DEPST(3)*XLAM 233 : 234 : RETURN 235 : END 236 : 237 : 238 :
© Cast3M 2003 - All rights reserved.
Disclaimer