Download steel1.eso

Back to the list

   1 : C STEEL1    SOURCE    CHAT      12/04/06    21:15:24     7348           
   2 : *---------------------------------------------------------------------
   3 : *
   4 :       SUBROUTINE STEEL1
   5 :      .       ( EYOUN, FSY__, FSU__, EPSH_, EPSU_, ROFAC, BFACT,
   6 :      .         A1FAC, A2FAC, FACLD, A6FAC, CFACT, AFACT, IFLAG,
   7 :      .         STRAI, RFACT, EPSON, SIGMA, TANGE, STRES )
   8 : *
   9 : *---------------------------------------------------------------------
  10 : *
  11 : *   STEEL BEHAVIOUR MODEL (MENEGOTTO-PINTO MODEL)
  12 : *                         (INCLUDING THE MONOTONIC CURVE)
  13 : *                         (AND THE BUCKLING EFFECT)
  14 : *---------------------------------------------------------------------
  15 : *
  16 : *   INPUT :
  17 : *   -----
  18 : *               EYOUN : YOUNG MODULUS
  19 : *               FSY__ : YELDING STRESS
  20 : *               FSU__ : ULTIMATE STRESS
  21 : *               EPSH_ : HARDENING STRAIN
  22 : *               EPSU_ : ULTIMATE STRAIN
  23 : *               ROFAC : Ro FACTOR
  24 : *               BFACT : b  FACTOR
  25 : *               A1FAC : a1 FACTOR
  26 : *               A2FAC : a2 FACTOR
  27 : *               FACLD : L/D FACTOR (BUCKLING EFFECT)
  28 : *               A6FAC : a6 FACTOR FOR THE NEW YOUNG MODULUS
  29 : *               CFACT : c FACTOR FOR THE "GAMAs" VALUE
  30 : *               AFACT : a FACTOR FOR THE NEW "BFACT"
  31 : *               IFLAG : FLAG DEFINING THE STEEL STAGE
  32 : *               STRAI : ACTUAL STRAIN VALUE
  33 : *               RFACT : R FACTOR
  34 : *               EPSON : HISTORY OF REVERSAL STRAIN POINTS
  35 : *               SIGMA : HISTORY OF REVERSAL STRESS POINTS
  36 : *
  37 : *   OUTPUT :
  38 : *   ------
  39 : *               TANGE : ACTUAL TANGENT MODULUS
  40 : *               STRES : ACTUAL STRESS VALUE
  41 : *
  42 : *       NOTE : POSITIVE STRESSES = TENSION STRESSES
  43 : *              NEGATIVE STRESSES = COMPRESSION STRESSES
  44 : *
  45 : *              POSITIVE STRAIN = TENSION STRAIN
  46 : *              NEGATIVE STRAIN = COMPRESSION STRAIN
  47 : *
  48 : *---------------------------------------------------------------------
  49 : *
  50 : *       DIFERENT POSSIBLE STAGES OF THE MATERIAL
  51 : *
  52 : *       ***********************************************************
  53 : *       IFLAG = 0  ....  FIRST LOADING ON THE ENVELOPE
  54 : *       IFLAG = 1  ....  STEEL IS DISTROIED
  55 : *       IFLAG = 2  ....  LOADING OR UNLOD. IN THE POSITIVE DIRECTION
  56 : *       IFLAG = 3  ....  LOADING OR UNLOD. IN THE NEGATIVE DIRECTION
  57 : *       IFLAG =-4  ....  IDEM "IFLAG = 2" FOR UNLOD. FROM THE MONOTONIC
  58 : *       IFLAG =-5  ....  IDEM "IFLAG = 3" FOR UNLOD. FROM THE MONOTONIC
  59 : *
  60 : *       NOTE: A NEGATIVE VALUE FOR "IFLAG" MEANS THAT THE ENVOLVENT
  61 : *             CURVE IS STILL THE MONOTONIC ONE
  62 : *
  63 : *---------------------------------------------------------------------
  64 : C
  65 :       IMPLICIT INTEGER(I-N)
  66 :        IMPLICIT REAL*8 (A-H,O-Z)
  67 : C
  68 :        DIMENSION EPSON (5), SIGMA (5)
  69 : C
  70 : C-------------------------------------------------------------
  71 : C       VALUES TO BE KEPT IN EPSON (AND SIGMA) VECTOR(S):
  72 : C           EPSON (1) ....  LAST REVERSAL STRAIN
  73 : C           EPSON (2) ....  INTERSEPTION POINT OF THE ASYMPTOTES
  74 : C           EPSON (3) ....  LAST STRAIN VALUE
  75 : C           EPSON (4) ....  MAXIMUM REVERSAL STRAIN IN THE POSIT. DIR.
  76 : C           EPSON (5) ....  MAXIMUM REVERSAL STRAIN IN THE NEGAT. DIR.
  77 : C-------------------------------------------------------------
  78 :        EPSY_ = FSY__/EYOUN
  79 : C
  80 :        IF (FACLD .GT. 5.0D0) THEN
  81 : C-------------------------------------------------------------
  82 : C         BUCKLING EFFECT
  83 : C-------------------------------------------------------------
  84 :           A5FAC = 1.0D0 + (5.0D0-FACLD) / 7.5D0
  85 :           FSINF = 4.0D0 * FSY__ / FACLD
  86 :           GAMAS = (11.0D0-FACLD) / (EXP(CFACT*FACLD)-1.0D0) / 10.0D0
  87 :        ENDIF
  88 : C
  89 :        IF (IFLAG .EQ. 0) THEN
  90 : C-------------------------------------------------------------
  91 : C         DEFINITION OF THE FIRST STEP PARAMETERS
  92 : C-------------------------------------------------------------
  93 :           IF (ABS(STRAI) .LE. 1.0D-10) THEN
  94 :              STRES = 0.0D0
  95 :              TANGE = EYOUN
  96 :              GO TO 2000
  97 :           ENDIF
  98 : C
  99 :           SIGN_ = STRAI/ABS(STRAI)
 100 : C
 101 :           EPSON(1) = -SIGN_*EPSY_
 102 :           SIGMA(1) = -SIGN_*FSY__
 103 : C
 104 :           EPSON(2) = SIGN_*EPSY_
 105 :           SIGMA(2) = SIGN_*FSY__
 106 : C
 107 :           EPSON(3) = 0.D0
 108 :           SIGMA(3) = 0.D0
 109 : C
 110 :           EPSON(4) = EPSY_
 111 :           SIGMA(4) = FSY__
 112 : C
 113 :           EPSON(5) = -EPSY_
 114 :           SIGMA(5) = -FSY__
 115 : C
 116 :           RFACT = ROFAC
 117 : C
 118 :           IF (SIGN_ .GT. 0.0D0) THEN
 119 :              IFLAG = -2
 120 :           ELSE
 121 :              IFLAG = -3
 122 :           ENDIF
 123 :           GO TO 100
 124 :        ENDIF
 125 : C
 126 :        IF (IFLAG .EQ. -4) THEN
 127 : C-------------------------------------------------------------
 128 : C         DISCHARGE UNDER THE LIMITS OF THE MONOTONIC CURVE
 129 : C-------------------------------------------------------------
 130 :           IF ((EPSON(4)-STRAI) .GT. (EPSY_/3.0D0)) THEN
 131 :              IFLAG = 3
 132 :           ELSE
 133 :              STRES = EYOUN * (STRAI-EPSON(4)) + SIGMA(4)
 134 :              TANGE = EYOUN
 135 : C
 136 :              ACOEF = -1.0D0 * (FSU__-FSY__) / ((EPSU_-EPSH_)**2)
 137 :              BCOEF = -2.0D0 * ACOEF * EPSU_
 138 :              CCOEF = FSU__ - ACOEF * (EPSU_**2) - BCOEF * EPSU_
 139 :              STRE1 = ACOEF * STRAI**2 +
 140 :      .               BCOEF * STRAI +
 141 :      .               CCOEF
 142 : C
 143 :              IF (STRES .LT. STRE1) GOTO 2000
 144 :              IFLAG = -2
 145 :           ENDIF
 146 :        ELSEIF (IFLAG .EQ. -5) THEN
 147 :           IF ((STRAI-EPSON(5)) .GT. (EPSY_/3.0D0)) THEN
 148 :              IFLAG = 2
 149 :           ELSE
 150 :              STRES = EYOUN * (STRAI-EPSON(5)) + SIGMA(5)
 151 :              TANGE = EYOUN
 152 : C
 153 :              ACOEF = -1.0D0 * (FSU__-FSY__) / ((EPSU_-EPSH_)**2)
 154 :              BCOEF = -2.0D0 * ACOEF * EPSU_
 155 :              CCOEF = FSU__ - ACOEF * (EPSU_**2) - BCOEF * EPSU_
 156 :              STRE1 = -1.0D0 * ACOEF * STRAI**2 +
 157 :      .                      BCOEF * STRAI -
 158 :      .                      CCOEF
 159 : C
 160 :              IF (STRES .GT. STRE1) GOTO 2000
 161 :              IFLAG = -3
 162 :           ENDIF
 163 :        ENDIF
 164 : C-------------------------------------------------------------
 165 :        IF (ABS(STRAI) .GT. EPSU_) IFLAG = 1
 166 : C
 167 :        IF (IFLAG .EQ. 1) THEN
 168 : C-------------------------------------------------------------
 169 : C         THE STEEL IS DISTROIED
 170 : C-------------------------------------------------------------
 171 : CPP       WRITE (*,*) ' THE STEEL IS DISTROIED !!!'
 172 :           STRES = 0.0D0
 173 :           TANGE = 0.0D0
 174 :           GO TO 2000
 175 :        ENDIF
 176 : C-------------------------------------------------------------
 177 :        IF (IABS(IFLAG) .EQ. 2) THEN
 178 :           IF (STRAI .GT. EPSON(3)) THEN
 179 : C-------------------------------------------------------------
 180 : C            MOVEMENT IN THE SAME DIRECTION
 181 : C-------------------------------------------------------------
 182 :              GO TO 100
 183 :           ENDIF
 184 : C-------------------------------------------------------------
 185 : C         MOVEMENT IN THE OPPOSITE DIRECTION
 186 : C-------------------------------------------------------------
 187 :           SIGN_= 1.0D0
 188 : C
 189 :           IFLAG = IABS(IFLAG) / IFLAG * 3
 190 :           IF (IFLAG .LT. 0) THEN
 191 :              IF (ABS(EPSON(3)) .GT. EPSY_) THEN
 192 : C-------------------------------------------------------------
 193 : C               CORRECTION OF REVERSAL STRAIN AND STRESS VALUES
 194 : C-------------------------------------------------------------
 195 :                 EPSOO = EPSON(3)
 196 :                 EPSON(3) = EPSY_ - SIGMA(3) /
 197 :      .                     (EYOUN*(1.0D0-BFACT)) +
 198 :      .                     EPSOO / (1.0D0-BFACT)
 199 :                 SIGMA(3) = EYOUN * (EPSON(3)-EPSOO) + SIGMA(3)
 200 : C
 201 :                 IF ((EPSON(3)-STRAI) .GT. (EPSY_/3.0D0)) THEN
 202 :                    IFLAG = 3
 203 :                 ELSE
 204 :                    IFLAG = -4
 205 :                    STRES = EYOUN * (STRAI-EPSON(3)) + SIGMA(3)
 206 :                    TANGE = EYOUN
 207 :                 ENDIF
 208 :              ENDIF
 209 :           ENDIF
 210 :           IF (EPSON(3) .GT. EPSON(4)) THEN
 211 :              EPSON(4) = EPSON(3)
 212 :              SIGMA(4) = SIGMA(3)
 213 :           ENDIF
 214 :        ELSEIF (IABS(IFLAG) .EQ. 3) THEN
 215 :           IF (STRAI .LT. EPSON(3)) THEN
 216 : C-------------------------------------------------------------
 217 : C            MOVEMENT IN THE SAME DIRECTION
 218 : C-------------------------------------------------------------
 219 :              IF (FACLD .GT. 5.0D0 .AND.
 220 :      .           STRAI .LT. (-0.95D0*EPSY_)) IFLAG = 3
 221 :              GO TO 100
 222 :           ENDIF
 223 : C-------------------------------------------------------------
 224 : C         MOVEMENT IN THE OPPOSITE DIRECTION
 225 : C-------------------------------------------------------------
 226 :           SIGN_= -1.0D0
 227 : C
 228 :           IFLAG = IABS(IFLAG) / IFLAG * 2
 229 :           IF (IFLAG .LT. 0) THEN
 230 :              IF (ABS(EPSON(3)) .GT. EPSY_) THEN
 231 : C-------------------------------------------------------------
 232 : C               CORRECTION OF REVERSAL STRAIN AND STRESS VALUES
 233 : C-------------------------------------------------------------
 234 :                 EPSOO = EPSON(3)
 235 :                 EPSON(3) = EPSY_ + SIGMA(3) /
 236 :      .                     (EYOUN*(1.0D0-BFACT)) -
 237 :      .                     EPSOO / (1.0D0-BFACT)
 238 :                 EPSON(3) = -1.D0 * EPSON(3)
 239 :                 SIGMA(3) = EYOUN * (EPSON(3)-EPSOO) + SIGMA(3)
 240 : C
 241 :                 IF ((STRAI-EPSON(3)) .GT. (EPSY_/3.0D0)) THEN
 242 :                    IFLAG = 2
 243 :                 ELSE
 244 :                    IFLAG = -5
 245 :                    STRES = EYOUN * (STRAI-EPSON(3)) + SIGMA(3)
 246 :                    TANGE = EYOUN
 247 :                 ENDIF
 248 :              ENDIF
 249 :           ENDIF
 250 :           IF (EPSON(3) .lT. EPSON(5)) THEN
 251 :              EPSON(5) = EPSON(3)
 252 :              SIGMA(5) = SIGMA(3)
 253 :           ENDIF
 254 :        ENDIF
 255 : C
 256 : C
 257 : C      ######################################
 258 : C
 259 : C      ......   CHANGE OF PARAMETERS   ......
 260 : C
 261 : C      ######################################
 262 : C
 263 : C
 264 :   200  EPSON(1) = EPSON(3)
 265 :        SIGMA(1) = SIGMA(3)
 266 : C
 267 :        R1FAC = ROFAC
 268 :        YOUNG = EYOUN
 269 :        BFACN = BFACT
 270 : C
 271 :        STRSH = 0.0D0
 272 :        EPSSH = 0.0D0
 273 :        IF (FACLD .GT. 5.0D0) THEN
 274 :           IF (IABS(IFLAG) .EQ. 2) THEN
 275 :              DO ITEST = 1,5
 276 :                 EPSON(2) = (-SIGN_*BFACN*EPSY_-EPSON(1)+
 277 :      .                     (SIGMA(1)+SIGN_*FSY__)/YOUNG)/(BFACN-1.0D0)
 278 :                 EPSIS = ABS(EPSON(IABS(IFLAG)+2)-EPSON(2))
 279 :              YOUNG = EYOUN * (A5FAC+(1.0D0-A5FAC)*EXP(-A6FAC*EPSIS**2))
 280 :                 BFACN = BFACT * EYOUN / YOUNG
 281 :              ENDDO
 282 :           ELSEIF (IABS(IFLAG) .EQ. 3) THEN
 283 :              EPSIM = EPSON(4) - EPSON(5) - 2.0D0*FSY__/EYOUN
 284 : C
 285 :              BFACN = AFACT * (5.0D0-FACLD)
 286 :              BFACN = BFACN * EXP(BFACN*EPSIM*EYOUN/(FSY__-FSINF))
 287 : C
 288 :              STRSH = GAMAS * EYOUN * (BFACT-BFACN) / (1.0D0-BFACN)
 289 :              EPSSH = STRSH / EYOUN
 290 : C
 291 :              BFACN = BFACT
 292 :           ENDIF
 293 :        ENDIF
 294 :        EPSON(2) = (-SIGN_*BFACN*(EPSY_+EPSSH)-EPSON(1)+
 295 :      .            (SIGMA(1)+SIGN_*(FSY__+STRSH))/YOUNG)/(BFACN-1.0D0)
 296 :        SIGMA(2) = YOUNG*(EPSON(2)-EPSON(1))+SIGMA(1)
 297 : C
 298 :        EPSIL = ABS((EPSON(IABS(IFLAG)+2)-EPSON(2))/
 299 :      .                                  (EPSON(2)-EPSON(1)))
 300 :        RFACT = R1FAC-A1FAC*EPSIL/(A2FAC+EPSIL)
 301 :        IF (IFLAG .LT. -3) GOTO 2000
 302 : C
 303 : C
 304 : C      ############################################
 305 : C
 306 : C      ......   STRESS AND TANGENT MODULUS   ......
 307 : C
 308 : C      ############################################
 309 : C
 310 : C
 311 :   100  IF (IFLAG .LT.  0) GOTO 3000
 312 :        BFACN = BFACT
 313 :        YOUNG = EYOUN
 314 :        IF (FACLD .GT. 5.0D0) THEN
 315 :           IF (IFLAG .EQ. 2) THEN
 316 :              EPSIS = ABS(EPSON(IFLAG+2)-EPSON(2))
 317 :              YOUNG = EYOUN * (A5FAC+(1.0D0-A5FAC)*EXP(-A6FAC*EPSIS**2))
 318 :              BFACN = BFACT * EYOUN / YOUNG
 319 :           ELSEIF (IFLAG .EQ. 3) THEN
 320 :              EPSIM = EPSON(4) - EPSON(5) - 2.0D0 * FSY__/EYOUN
 321 : C
 322 :              BFACN = AFACT * (5.0D0-FACLD)
 323 :              BFACN = BFACN * EXP(BFACN*EPSIM*EYOUN/(FSY__-FSINF))
 324 :           ENDIF
 325 :        ENDIF
 326 :        EPSAS = (STRAI-EPSON(1))/(EPSON(2)-EPSON(1))
 327 : C
 328 :        STRES = SIGMA(1)+(SIGMA(2)-SIGMA(1))*(BFACN+(1.0D0-BFACN)/
 329 :      .         ((1.0D0+EPSAS**RFACT)**(1.0D0/RFACT)))*EPSAS
 330 :        TANGE = YOUNG*(BFACN+(1.0D0-BFACN)/
 331 :      .               (1.0D0+EPSAS**RFACT)**(1.0D0/RFACT+1.0D0))
 332 : C-------------------------------------------------------------
 333 : C      MONOTONIC CURVE
 334 : C-------------------------------------------------------------
 335 :  3000  IF (IFLAG .LT. 0) THEN
 336 :           IF (ABS(STRAI) .LT. EPSY_) THEN
 337 :              STRES = EYOUN * STRAI
 338 :              TANGE = EYOUN
 339 :           ELSE IF (ABS(STRAI) .LT. EPSH_) THEN
 340 :              STRES = STRAI / ABS(STRAI) * FSY__
 341 :              TANGE = 0.0D0
 342 :           ELSE IF (ABS(STRAI) .LT. EPSU_) THEN
 343 : C-------------------------------------------------------------
 344 : C            EQUATION OF DEGREE "EXPOE"
 345 : C-------------------------------------------------------------
 346 :              EXPOE = 4.0D0
 347 : C
 348 :              STRES = FSU__ - (FSU__-FSY__) *
 349 :      .               (((EPSU_-ABS(STRAI)) / (EPSU_-EPSH_))**EXPOE)
 350 :              STRES = STRAI / (ABS(STRAI)) * STRES
 351 :              TANGE = EXPOE * (FSU__-FSY__) *
 352 :      .               ((EPSU_-ABS(STRAI))**(EXPOE-1D0)) /
 353 :      .               ((EPSU_-EPSH_)**EXPOE)
 354 :              TANGE = 2.0D0 * ACOEF * (ABS(STRAI)) + BCOEF
 355 :           ELSE
 356 :              STRES = 0.0D0
 357 :              TANGE = 0.0D0
 358 :           ENDIF
 359 :        ENDIF
 360 : C
 361 :  2000  EPSON(3) = STRAI
 362 :        SIGMA(3) = STRES
 363 : C
 364 :        RETURN
 365 :        END
 366 :  
 367 :  
 368 :  

© Cast3M 2003 - All rights reserved.
Disclaimer