ouglob
C OUGLOB SOURCE BR232186 16/09/12 12:43:40 9078 C C====&===1=========2=========3=========4=========5=========6=========7== C Commentaires : Subroutine permettant de mettre en oeuvre le C modele OUGLOVA pour representer C le comportement de l'acier corrodé C C C Auteurs : R. Paredes C : CEA-DEN/DANS/DM2S/SEMT/EMSI C : Romili.Paredes@cea.fr C C Date : Aout 2016 C====&===1=========2=========3=========4=========5=========6=========7== C C-----DECLARATION GENERALE---------------------------------------------- C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C C-----DECLARATION DES VARIABLES----------------------------------------- C DIMENSION XMAT(*),VAR0(*),VARF(*) C Parametre pour le nombre d iteration locales internes C C-----DONNEES MATERIAUX------------------------------------------------- C XYG = XMAT(1) XNU = XMAT(2) XGC = XYG/(2.0D0*(XNU + 1.0D0)) XSIGY = XMAT(5) XK = XMAT(6) XM = XMAT(7) XTC = XMAT(8) XDC = XMAT(9) C C-----SEUIL DE CORROSION------------------------------------------------ C C-----Deformation plastique a rupture IF (XTC.LE.15.0D0) THEN EPSR = -0.0111D0*XTC + 0.2345D0 ELSE EPSR = -0.0006D0*XTC + 0.051D0 ENDIF C-----Seuil de rupture et d'endommagement XPR = EPSR XPD = 0.8D0*XPR C C-----ETAT INITIAL------------------------------------------------------ C XD = VAR0(1) XR = VAR0(2) XP = VAR0(3) XZT = VAR0(4) XNRUP = VAR0(5) XEPSP = VAR0(6) XEPSF = DEPS + VAR0(10) C C-----CALCUL------------------------------------------------------------ C C-----Prediction elastique SIG = (1.0D0 - XD)*XYG*(XEPSF - XEPSP) SIGEQ = SIG C-----Boucle d'endommagement C--------Evaluation de la fonction seuil FP = (SIGEQ/(1.0D0 - XD)) - (XR + XSIGY) FP0 = FP C--------Boucle de plasticite IF (FP.GT.1.0D0) THEN C--------------Calcul des derives DFDSG = SIG/(SIGEQ*(1.0D0 - XD)) DPHDSG = DFDSG C--------------Calcul du multiplicateur plastique TAU = XYG*DPHDSG AUX1 = DFDSG*TAU AUX2 = SIGEQ/(XK*(1.0D0 - XD)) AUX3 = XSIGY/XK AUX4 = 1.0D0 - XM AUX5 = XK/XM XLAMBDA = FP/(AUX1 + AUX5*((AUX2 - AUX3)**AUX4)) C--------------Mise à jour des variables SIG = SIG - XLAMBDA*TAU SIGEQ = SIG XEPSP = XEPSP + XLAMBDA*DPHDSG XP = XEPSP XR = XK*(XP**(1.0D0/XM)) C--------------Reevaluation de la fonction seuil FP = (SIGEQ/(1.0D0 - XD)) - (XR + XSIGY) GOTO 910 ENDIF ENDDO C-----Sortie de la boucle de plasticité 910 CONTINUE C-----------Evaluation du seuil d'endommagement FD = XP - (XPD + XZT) IF (I.EQ.1) THEN FD0 = FD ENDIF C--------------Calcul de l'endommagement XD = (XDC/(XPR - XPD))*(XP - XPD) XZT = XP - XPD C--------------Endommagement critique IF (XD.GT.XDC) THEN XD = XDC ENDIF ELSE GOTO 900 ENDIF GOTO 900 ENDIF ELSE GOTO 900 ENDIF ENDDO C-----Sortie de la boucle d'endommagement 900 CONTINUE C-----Rupture IF (XP.GE.XPR) THEN XNRUP = 1 XP = XPR SIG = 1.0D0 ENDIF C C-----SOCKAGE EN SORTIE------------------------------------------------- C C-----Les variables internes VARF(1) = XD VARF(2) = XR VARF(3) = XP VARF(4) = XZT VARF(5) = XNRUP VARF(6) = XEPSP VARF(10) = XEPSF C-----Les contraintes SIGF = SIG C-----Fin de l integration RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales