Download ouglfi.eso

Back to the list

   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