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