steel1
C STEEL1 SOURCE PV 17/07/20 21:15:05 9512 *--------------------------------------------------------------------- * SUBROUTINE STEEL1 . ( EYOUN, FSY__, FSU__, EPSH_, EPSU_, ROFAC, BFACT, . A1FAC, A2FAC, FACLD, A6FAC, CFACT, AFACT, IFLAG, * *--------------------------------------------------------------------- * * STEEL BEHAVIOUR MODEL (MENEGOTTO-PINTO MODEL) * (INCLUDING THE MONOTONIC CURVE) * (AND THE BUCKLING EFFECT) *--------------------------------------------------------------------- * * INPUT : * ----- * EYOUN : YOUNG MODULUS * FSY__ : YELDING STRESS * FSU__ : ULTIMATE STRESS * EPSH_ : HARDENING STRAIN * EPSU_ : ULTIMATE STRAIN * ROFAC : Ro FACTOR * BFACT : b FACTOR * A1FAC : a1 FACTOR * A2FAC : a2 FACTOR * FACLD : L/D FACTOR (BUCKLING EFFECT) * A6FAC : a6 FACTOR FOR THE NEW YOUNG MODULUS * CFACT : c FACTOR FOR THE "GAMAs" VALUE * AFACT : a FACTOR FOR THE NEW "BFACT" * IFLAG : FLAG DEFINING THE STEEL STAGE * STRAI : ACTUAL STRAIN VALUE * RFACT : R FACTOR * EPSON : HISTORY OF REVERSAL STRAIN POINTS * SIGMA : HISTORY OF REVERSAL STRESS POINTS * * OUTPUT : * ------ * TANGE : ACTUAL TANGENT MODULUS * STRES : ACTUAL STRESS VALUE * * NOTE : POSITIVE STRESSES = TENSION STRESSES * NEGATIVE STRESSES = COMPRESSION STRESSES * * POSITIVE STRAIN = TENSION STRAIN * NEGATIVE STRAIN = COMPRESSION STRAIN * *--------------------------------------------------------------------- * * DIFERENT POSSIBLE STAGES OF THE MATERIAL * * *********************************************************** * IFLAG = 0 .... FIRST LOADING ON THE ENVELOPE * IFLAG = 1 .... STEEL IS DISTROIED * IFLAG = 2 .... LOADING OR UNLOD. IN THE POSITIVE DIRECTION * IFLAG = 3 .... LOADING OR UNLOD. IN THE NEGATIVE DIRECTION * IFLAG =-4 .... IDEM "IFLAG = 2" FOR UNLOD. FROM THE MONOTONIC * IFLAG =-5 .... IDEM "IFLAG = 3" FOR UNLOD. FROM THE MONOTONIC * * NOTE: A NEGATIVE VALUE FOR "IFLAG" MEANS THAT THE ENVOLVENT * CURVE IS STILL THE MONOTONIC ONE * *--------------------------------------------------------------------- C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C C C------------------------------------------------------------- C VALUES TO BE KEPT IN EPSON (AND SIGMA) VECTOR(S): C EPSON (1) .... LAST REVERSAL STRAIN C EPSON (2) .... INTERSEPTION POINT OF THE ASYMPTOTES C EPSON (3) .... LAST STRAIN VALUE C EPSON (4) .... MAXIMUM REVERSAL STRAIN IN THE POSIT. DIR. C EPSON (5) .... MAXIMUM REVERSAL STRAIN IN THE NEGAT. DIR. C------------------------------------------------------------- EPSY_ = FSY__/EYOUN C IF (FACLD .GT. 5.0D0) THEN C------------------------------------------------------------- C BUCKLING EFFECT C------------------------------------------------------------- A5FAC = 1.0D0 + (5.0D0-FACLD) / 7.5D0 FSINF = 4.0D0 * FSY__ / FACLD GAMAS = (11.0D0-FACLD) / (EXP(CFACT*FACLD)-1.0D0) / 10.0D0 ENDIF C IF (IFLAG .EQ. 0) THEN C------------------------------------------------------------- C DEFINITION OF THE FIRST STEP PARAMETERS C------------------------------------------------------------- IF (ABS(STRAI) .LE. 1.0D-10) THEN STRES = 0.0D0 TANGE = EYOUN GO TO 2000 ENDIF C SIGN_ = STRAI/ABS(STRAI) C EPSON(1) = -SIGN_*EPSY_ C EPSON(2) = SIGN_*EPSY_ C EPSON(3) = 0.D0 C EPSON(4) = EPSY_ C EPSON(5) = -EPSY_ C RFACT = ROFAC C IF (SIGN_ .GT. 0.0D0) THEN IFLAG = -2 ELSE IFLAG = -3 ENDIF GO TO 100 ENDIF C IF (IFLAG .EQ. -4) THEN C------------------------------------------------------------- C DISCHARGE UNDER THE LIMITS OF THE MONOTONIC CURVE C------------------------------------------------------------- IF ((EPSON(4)-STRAI) .GT. (EPSY_/3.0D0)) THEN IFLAG = 3 ELSE TANGE = EYOUN C ACOEF = -1.0D0 * (FSU__-FSY__) / ((EPSU_-EPSH_)**2) BCOEF = -2.0D0 * ACOEF * EPSU_ CCOEF = FSU__ - ACOEF * (EPSU_**2) - BCOEF * EPSU_ STRE1 = ACOEF * STRAI**2 + . BCOEF * STRAI + . CCOEF C IF (STRES .LT. STRE1) GOTO 2000 IFLAG = -2 ENDIF ELSEIF (IFLAG .EQ. -5) THEN IF ((STRAI-EPSON(5)) .GT. (EPSY_/3.0D0)) THEN IFLAG = 2 ELSE TANGE = EYOUN C ACOEF = -1.0D0 * (FSU__-FSY__) / ((EPSU_-EPSH_)**2) BCOEF = -2.0D0 * ACOEF * EPSU_ CCOEF = FSU__ - ACOEF * (EPSU_**2) - BCOEF * EPSU_ STRE1 = -1.0D0 * ACOEF * STRAI**2 + . BCOEF * STRAI - . CCOEF C IF (STRES .GT. STRE1) GOTO 2000 IFLAG = -3 ENDIF ENDIF C------------------------------------------------------------- IF (ABS(STRAI) .GT. EPSU_) IFLAG = 1 C IF (IFLAG .EQ. 1) THEN C------------------------------------------------------------- C THE STEEL IS DISTROIED C------------------------------------------------------------- CPP WRITE (*,*) ' THE STEEL IS DISTROIED !!!' STRES = 0.0D0 TANGE = 0.0D0 GO TO 2000 ENDIF C------------------------------------------------------------- IF (IABS(IFLAG) .EQ. 2) THEN IF (STRAI .GT. EPSON(3)) THEN C------------------------------------------------------------- C MOVEMENT IN THE SAME DIRECTION C------------------------------------------------------------- GO TO 100 ENDIF C------------------------------------------------------------- C MOVEMENT IN THE OPPOSITE DIRECTION C------------------------------------------------------------- SIGN_= 1.0D0 C IFLAG = IABS(IFLAG) / IFLAG * 3 IF (IFLAG .LT. 0) THEN IF (ABS(EPSON(3)) .GT. EPSY_) THEN C------------------------------------------------------------- C CORRECTION OF REVERSAL STRAIN AND STRESS VALUES C------------------------------------------------------------- EPSOO = EPSON(3) . (EYOUN*(1.0D0-BFACT)) + . EPSOO / (1.0D0-BFACT) C IF ((EPSON(3)-STRAI) .GT. (EPSY_/3.0D0)) THEN IFLAG = 3 ELSE IFLAG = -4 TANGE = EYOUN ENDIF ENDIF ENDIF IF (EPSON(3) .GT. EPSON(4)) THEN EPSON(4) = EPSON(3) ENDIF ELSEIF (IABS(IFLAG) .EQ. 3) THEN IF (STRAI .LT. EPSON(3)) THEN C------------------------------------------------------------- C MOVEMENT IN THE SAME DIRECTION C------------------------------------------------------------- IF (FACLD .GT. 5.0D0 .AND. . STRAI .LT. (-0.95D0*EPSY_)) IFLAG = 3 GO TO 100 ENDIF C------------------------------------------------------------- C MOVEMENT IN THE OPPOSITE DIRECTION C------------------------------------------------------------- SIGN_= -1.0D0 C IFLAG = IABS(IFLAG) / IFLAG * 2 IF (IFLAG .LT. 0) THEN IF (ABS(EPSON(3)) .GT. EPSY_) THEN C------------------------------------------------------------- C CORRECTION OF REVERSAL STRAIN AND STRESS VALUES C------------------------------------------------------------- EPSOO = EPSON(3) . (EYOUN*(1.0D0-BFACT)) - . EPSOO / (1.0D0-BFACT) EPSON(3) = -1.D0 * EPSON(3) C IF ((STRAI-EPSON(3)) .GT. (EPSY_/3.0D0)) THEN IFLAG = 2 ELSE IFLAG = -5 TANGE = EYOUN ENDIF ENDIF ENDIF IF (EPSON(3) .lT. EPSON(5)) THEN EPSON(5) = EPSON(3) ENDIF ENDIF C C C ###################################### C C ...... CHANGE OF PARAMETERS ...... C C ###################################### C C 200 EPSON(1) = EPSON(3) C R1FAC = ROFAC YOUNG = EYOUN BFACN = BFACT C STRSH = 0.0D0 EPSSH = 0.0D0 IF (FACLD .GT. 5.0D0) THEN IF (IABS(IFLAG) .EQ. 2) THEN DO ITEST = 1,5 EPSON(2) = (-SIGN_*BFACN*EPSY_-EPSON(1)+ EPSIS = ABS(EPSON(IABS(IFLAG)+2)-EPSON(2)) YOUNG = EYOUN * (A5FAC+(1.0D0-A5FAC)*EXP(-A6FAC*EPSIS**2)) BFACN = BFACT * EYOUN / YOUNG ENDDO ELSEIF (IABS(IFLAG) .EQ. 3) THEN EPSIM = EPSON(4) - EPSON(5) - 2.0D0*FSY__/EYOUN C BFACN = AFACT * (5.0D0-FACLD) BFACN = BFACN * EXP(BFACN*EPSIM*EYOUN/(FSY__-FSINF)) C STRSH = GAMAS * EYOUN * (BFACT-BFACN) / (1.0D0-BFACN) EPSSH = STRSH / EYOUN C BFACN = BFACT ENDIF ENDIF EPSON(2) = (-SIGN_*BFACN*(EPSY_+EPSSH)-EPSON(1)+ IF (IFLAG .LT. -3) GOTO 2000 C EPSIL = ABS((EPSON(IABS(IFLAG)+2)-EPSON(2))/ . (EPSON(2)-EPSON(1))) RFACT = R1FAC-A1FAC*EPSIL/(A2FAC+EPSIL) C C C ############################################ C C ...... STRESS AND TANGENT MODULUS ...... C C ############################################ C C 100 IF (IFLAG .LT. 0) GOTO 3000 BFACN = BFACT YOUNG = EYOUN IF (FACLD .GT. 5.0D0) THEN IF (IFLAG .EQ. 2) THEN EPSIS = ABS(EPSON(IFLAG+2)-EPSON(2)) YOUNG = EYOUN * (A5FAC+(1.0D0-A5FAC)*EXP(-A6FAC*EPSIS**2)) BFACN = BFACT * EYOUN / YOUNG ELSEIF (IFLAG .EQ. 3) THEN EPSIM = EPSON(4) - EPSON(5) - 2.0D0 * FSY__/EYOUN C BFACN = AFACT * (5.0D0-FACLD) BFACN = BFACN * EXP(BFACN*EPSIM*EYOUN/(FSY__-FSINF)) ENDIF ENDIF EPSAS = (STRAI-EPSON(1))/(EPSON(2)-EPSON(1)) C . ((1.0D0+EPSAS**RFACT)**(1.0D0/RFACT)))*EPSAS TANGE = YOUNG*(BFACN+(1.0D0-BFACN)/ . (1.0D0+EPSAS**RFACT)**(1.0D0/RFACT+1.0D0)) C------------------------------------------------------------- C MONOTONIC CURVE C------------------------------------------------------------- 3000 IF (IFLAG .LT. 0) THEN IF (ABS(STRAI) .LT. EPSY_) THEN STRES = EYOUN * STRAI TANGE = EYOUN ELSE IF (ABS(STRAI) .LT. EPSH_) THEN STRES = STRAI / ABS(STRAI) * FSY__ TANGE = 0.0D0 ELSE IF (ABS(STRAI) .LT. EPSU_) THEN C------------------------------------------------------------- C EQUATION OF DEGREE "EXPOE" C------------------------------------------------------------- EXPOE = 4.0D0 C STRES = FSU__ - (FSU__-FSY__) * . (((EPSU_-ABS(STRAI)) / (EPSU_-EPSH_))**EXPOE) STRES = STRAI / (ABS(STRAI)) * STRES TANGE = EXPOE * (FSU__-FSY__) * . ((EPSU_-ABS(STRAI))**(EXPOE-1D0)) / . ((EPSU_-EPSH_)**EXPOE) TANGE = 2.0D0 * ACOEF * (ABS(STRAI)) + BCOEF ELSE STRES = 0.0D0 TANGE = 0.0D0 ENDIF ENDIF C 2000 EPSON(3) = STRAI C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales