Download ouglfl.eso

Back to the list

   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