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