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