fecrdi
C FECRDI SOURCE STRU 08/12/22 21:15:20 6246
c Sous-Programme du module MISTRAL0
C --------------------------------------------------------------------------
C --------------------------------------------------------------------------
C Calcul de SR, contrainte seuil ou de reference ou pente d'ecrouissage,
C de la forme generale suivante :
C
C SR = R0 + R1(TT)*(EPS+EPS0)**N1(TT)*exp(-G1*EPS)
C + R2(TT)*(EPS+EPS0)**N2(TT)*(1-exp(-G2*EPS))
C + RP(PSI,TT) * RI(TT)*(EPS+EPS0)**NI(TT)*exp(-GI*EPS)
C
C et de ses derivees partielles DSRDTT, DSRDEP et DSRPSI si ID = 1,
C en fonction :
C - de la temperature TT,
C - d'une deformation EPS positive ou nulle,
C - de la variable de durcissement du a l'irradiation PSI,
C et des parametres transmis dans PECDI.
C --------------------------------------------------------------------------
IMPLICIT INTEGER (I-N)
IMPLICIT REAL*8 (A-H, O-Z)
PARAMETER ( NPTTM = 5 , NPPSIM = 6 )
DIMENSION PECDI(1:*)
c (NPEDIM = 13+6*NPTTM+NPPSIM)
DIMENSION PTT(1:NPTTM),PPSI(1:NPPSIM)
C ------------------------------------------------------------------
C Initialisation, R0
C
NP = 1
SR = PECDI(NP+1)
EPS0 = PECDI(NP+2)
EPE0 = EPS+EPS0
IF (ID.EQ.1) THEN
DSRDTT = 0.D0
DSRDEP = 0.D0
DSRPSI = 0.D0
END IF
C ------------------------------------------------------------------
C Ajout du terme R1(TT)*(EPS+EPS0)**N1(TT)*exp(-G1*EPS)
C
NP = NP+3
KR1 = NINT(PECDI(NP+1))
IF (KR1.EQ.0) THEN
NP = NP+1
ELSE
IF (KR1.EQ.-1) THEN
NP = NP+2
R1 = PECDI(NP)
R1P = 0.D0
ELSE IF (KR1.GT.0) THEN
NPTT = NINT(PECDI(NP))
DO IP = 1,NPTT
PTT(IP) = PECDI(NP+IP)
END DO
NP = NP+NPTT
END IF
NP = NP+1
KN1 = NINT(PECDI(NP+1))
IF (KN1.EQ.0) THEN
NP = NP+2
G1 = PECDI(NP)
SR1 = R1*EXP(-G1*EPS)
ELSE
IF (KN1.EQ.-1) THEN
NP = NP+2
EN1 = PECDI(NP)
ELSE IF (KN1.GT.0) THEN
NPTT = NINT(PECDI(NP))
DO IP = 1,NPTT
PTT(IP) = PECDI(NP+IP)
END DO
NP = NP+NPTT
END IF
NP = NP+1
G1 = PECDI(NP)
SR1 = R1*EPE0**EN1*EXP(-G1*EPS)
END IF
SR = SR+SR1
IF (ID.EQ.1) THEN
IF (KN1.EQ.0) THEN
DSRDTT = R1P*EXP(-G1*EPS)
DSRDEP = -G1*SR1
ELSE
EPE0N1 = EPE0**EN1
EMGIE = EXP(-G1*EPS)
IF (KN1.EQ.-1) THEN
DSRDTT = R1P*EPE0N1*EMGIE
ELSE IF (KN1.GT.0) THEN
DSRDTT = (R1P+R1*LOG(EPE0)*EN1P)*EPE0N1*EMGIE
END IF
DSRDEP = R1*EPE0N1*(EN1/EPE0-G1)*EMGIE
END IF
END IF
END IF
C ------------------------------------------------------------------
C Ajout du terme R2(TT)*(EPS+EPS0)**N2(TT)*(1-exp(-G2*EPS))
C
NP = NP+1
KR2 = NINT(PECDI(NP+1))
IF (KR2.EQ.0) THEN
NP = NP+1
ELSE
IF (KR2.EQ.-1) THEN
NP = NP+2
R2 = PECDI(NP)
R2P = 0.D0
ELSE IF (KR2.GT.0) THEN
NPTT = NINT(PECDI(NP))
DO IP = 1,NPTT
PTT(IP) = PECDI(NP+IP)
END DO
NP = NP+NPTT
END IF
NP = NP+1
KN2 = NINT(PECDI(NP+1))
IF (KN2.EQ.0) THEN
NP = NP+2
G2 = PECDI(NP)
SR2 = R2*(1.-EXP(-G2*EPS))
ELSE
IF (KN2.EQ.-1) THEN
NP = NP+2
EN2 = PECDI(NP)
ELSE IF (KN2.GT.0) THEN
NPTT = NINT(PECDI(NP))
DO IP = 1,NPTT
PTT(IP) = PECDI(NP+IP)
END DO
NP = NP+NPTT
END IF
NP = NP+1
G2 = PECDI(NP)
SR2 = R2*EPE0**EN2*(1.-EXP(-G2*EPS))
END IF
SR = SR+SR2
IF (ID.EQ.1) THEN
EMGIE = EXP(-G2*EPS)
IF (KN2.EQ.0) THEN
DSRDTT = DSRDTT+R2P*(1.-EMGIE)
DSRDEP = DSRDEP+R2*G2*EMGIE
ELSE
EPE0N2 = EPE0**EN2
IF (KN2.EQ.-1) THEN
DSRDTT = DSRDTT+R2P*EPE0N2*(1.-EMGIE)
ELSE IF (KN2.GT.0) THEN
DSRDTT = DSRDTT+(R2P+R2*LOG(EPE0)*EN2P)*EPE0N2*(1.-EMGIE)
END IF
DSRDEP = DSRDEP+R2*EPE0N2*(EN2/EPE0*(1.-EMGIE)+G2*EMGIE)
END IF
END IF
END IF
C ------------------------------------------------------------------
C Ajout du terme RP(PSI,TT)*RI(TT)*(EPS+EPS0)**NI(TT)*exp(-GI*EPS)
C
NP = NP+1
KRP = NINT(PECDI(NP+1))
IF (KRP.EQ.0) RETURN
NPPSI = NINT(PECDI(NP))
DO IP = 1,NPPSI
PPSI(IP) = PECDI(NP+IP)
END DO
NP = NP+NPPSI+1
KRI = NINT(PECDI(NP+1))
IF (KRI.EQ.0) RETURN
IF (KRI.EQ.-1) THEN
NP = NP+2
RI = PECDI(NP)
RIP = 0.D0
ELSE IF (KRI.GT.0) THEN
NPTT = NINT(PECDI(NP))
DO IP = 1,NPTT
PTT(IP) = PECDI(NP+IP)
END DO
NP = NP+NPTT
END IF
NP = NP+1
KNI = NINT(PECDI(NP+1))
IF (KNI.EQ.0) THEN
NP = NP+2
GI = PECDI(NP)
SRI = RP*RI*EXP(-GI*EPS)
ELSE
IF (KNI.EQ.-1) THEN
NP = NP+2
ENI = PECDI(NP)
ELSE IF (KNI.GT.0) THEN
NPTT = NINT(PECDI(NP))
DO IP = 1,NPTT
PTT(IP) = PECDI(NP+IP)
END DO
NP = NP+NPTT
END IF
NP = NP+1
GI = PECDI(NP)
SRI = RP*RI*EPE0**ENI*EXP(-GI*EPS)
END IF
SR = SR+SRI
IF (ID.EQ.1) THEN
EMGIE = EXP(-GI*EPS)
IF (KNI.EQ.0) THEN
DSRDTT = DSRDTT+(DRPDTT*RI+RP*RIP)*EMGIE
DSRDEP = DSRDEP-GI*SRI
DSRPSI = DRPDP*RI*EMGIE
ELSE
EPE0NI = EPE0**ENI
IF (KNI.EQ.-1) THEN
DSRDTT = DSRDTT+(DRPDTT*RI+RP*RIP)*EPE0NI*EMGIE
ELSE IF (KNI.GT.0) THEN
DSRDTT = DSRDTT
& +(DRPDTT*RI+RP*(RIP+RI*LOG(EPE0)*ENIP))*EPE0NI*EMGIE
END IF
DSRDEP = DSRDEP+RP*RI*EPE0NI*(ENI/EPE0-GI)*EMGIE
DSRPSI = DRPDP*RI*EPE0NI*EMGIE
END IF
END IF
C ------------------------------------------------------------------
RETURN
END
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales