nmazar
C NMAZAR SOURCE LJASON 07/10/24 21:15:03 5930
& SIGF,DEPST,NSTRS,ISTEP)
IMPLICIT INTEGER(I-N)
IMPLICIT REAL*8(A-H,O-Z)
* Entrees
INTEGER NMATT, NVARI, NSTRS, ISTEP
REAL*8 XMAT(NMATT), VAR0(NVARI), SIG0(NSTRS), DEPST(NSTRS)
REAL*8 SIGF(NSTRS), VARF(NVARI)
* Variables intermediaires
REAL*8 EPS33(3,3),EPSIPP(3),EPSILT(3),VALP33(3,3)
REAL*8 SIGP(3),SIGPT(3),SIGPC(3),TRSIGT,TRSIGC
REAL*8 SIG00(6), EPSTIM
REAL*8 YOUN,XNU,EPSD0,ACOM,BCOM,ATRA,BTRA,BETA
REAL*8 XZERO,UN,DEUX,XPETIT, DDHOOK(6,6)
REAL*8 EPSILO(6), PREC
INTEGER ISTRS,JSTRS,KCAS,IRTD
CHARACTER CMATE
PARAMETER (XZERO=0.D0 , UN=1.D0 , DEUX=2.D0, XPETIT=1.D-12)
CMATE = 'ISOTROPE'
YOUN = XMAT(1)
XNU = XMAT(2)
EPSD0= XMAT(9)
ACOM = XMAT(5)
BCOM = XMAT(7)
ATRA = XMAT(6)
BTRA = XMAT(8)
BETA = XMAT(20)
DINI = VAR0(2)
C
C calcul des seuils
C
C
C calcul de la deformation élastique
C
* Calcul de la matrice elastique
KCAS=2
PREC=1.D-20
* Calcul de La partie élastique des déformations
* DO ISTRS = 1,NSTRS
* EPSILO(ISTRS) = 1/(1-DINI)*EPSILO(ISTRS) + DEPST(ISTRS)
* END DO
C
C calcul des deformations principales
C
C
C on reecrit les deformations sous forme matricielle
C
C
C et on diagonalise
C
IF (ISTEP .EQ. 0 .OR. ISTEP.EQ.2) THEN
C
C on calcule la matrice de hooke et les contraintes ppales
C
CMATE = 'ISOTROPE'
KCAS=2
DO 200 ISTRS=1,3
SIGP(ISTRS)= XZERO
DO 210 JSTRS=1,3
SIGP(ISTRS)=SIGP(ISTRS)+DDHOOK(ISTRS,JSTRS)*EPSIPP(JSTRS)
210 CONTINUE
200 CONTINUE
END IF
C on calcule le epsilontild
C
EPSTIL=MAX( XZERO , EPSIPP(1) )**2 +
1 MAX( XZERO , EPSIPP(2) )**2 +
2 MAX( XZERO , EPSIPP(3) )**2
EPSTIL=SQRT (EPSTIL)
IF (ISTEP .EQ. 0) THEN
EPSTIM=EPSTIL
VARF(1)=EPSTIL
ELSE IF (ISTEP .EQ. 1) THEN
VARF(9)=VAR0(9)
VARF(3)=VAR0(3)
VARF(4)=VAR0(4)
VARF(5)=VAR0(5)
VARF(6)=VAR0(6)
VARF(7)=VAR0(7)
VARF(8)=VAR0(8)
VARF(2)=DINI
VARF(1)=EPSTIL
ELSE IF (ISTEP .EQ. 2) THEN
EPSTIM=VAR0(1)
VARF(1)=EPSTIM
ELSE
PRINT*,'DANS MAZARS ISTEP = 0,1,2 ET PAS ',ISTEP
END IF
IF ( (ISTEP .EQ. 0) .OR. (ISTEP .EQ. 2)) THEN
C
C on calcule l'endommagement et les contraintes
C
C
C on calcule ALFAT ALFAC DT et DC puis D
C dans le cas ou le seuil initial est depasse
C
IF ( EPSTIM .GT. EPSD0) THEN
C
C calcul de l'endommagement
C
C
C on calcule le signe des contraintes elastiques
C
DO 300 ISTRS=1,3
IF (SIGP(ISTRS).LT. XZERO) THEN
SIGPC(ISTRS)=SIGP(ISTRS)
SIGPT(ISTRS)=XZERO
ELSE
SIGPT(ISTRS)=SIGP(ISTRS)
SIGPC(ISTRS)=XZERO
END IF
300 CONTINUE
TRSIGT=SIGPT(1)+SIGPT(2)+SIGPT(3)
TRSIGC=SIGPC(1)+SIGPC(2)+SIGPC(3)
C
C on calcule les deformations dues aux contraintes positives
C
DO 400 ISTRS=1,3
EPSILT(ISTRS)=(SIGPT(ISTRS)*(UN+XNU)-TRSIGT*XNU)/YOUN
400 CONTINUE
C
C on en deduit ALFAT et ALFAC
C
ALFAT = MAX(XZERO,EPSIPP(1))*EPSILT(1) +
1 MAX(XZERO,EPSIPP(2))*EPSILT(2) +
2 MAX(XZERO,EPSIPP(3))*EPSILT(3)
ALFAT = ALFAT/(EPSTIL*EPSTIL)
ALFAC = UN - ALFAT
C
C modification pour la bi ou tricompression
C
* IF (TRSIGC.LT. -XPETIT .AND. TRSIGT.LT.XPETIT) THEN
* GAMMA=SIGPC(1)*SIGPC(1)+SIGPC(2)*SIGPC(2)+
* 1 SIGPC(3)*SIGPC(3)
* GAMMA=-SQRT(GAMMA)/TRSIGC
* EPSTIM=EPSTIM*GAMMA
* END IF
C
C amelioration de la reponse en cisaillement pour beta > 1.
C
IF (BETA .GT. UN) THEN
IF ( ALFAT .GT. XPETIT ) THEN
ALFAT=ALFAT**BETA
END IF
IF ( ALFAC .GT. XPETIT ) THEN
ALFAC=ALFAC**BETA
END IF
END IF
C
C on calcule DT et DC puis D
C dans le cas ou le seuil initial est depasse
C
C on est oblige de verifier car on a pu multiplier par gamma
C
IF (EPSTIM .GT. EPSD0) THEN
DT=UN - EPSD0*(UN-ATRA)/EPSTIM -
1 ATRA*EXP(-BTRA*(EPSTIM-EPSD0))
DC=UN - EPSD0*(UN-ACOM)/EPSTIM -
1 ACOM*EXP(-BCOM*(EPSTIM-EPSD0))
ELSE
DT=XZERO
DC=XZERO
END IF
D = ALFAT*DT + ALFAC*DC
C
C on borne la valeur de D a 0.99999
C
D=MIN ( D , UN-1.D-05 )
ELSE
D=XZERO
END IF
C
C on teste la croissance de D
C
D=MAX ( D , DINI )
C
C on le stocke dans les variables internes finales
C
VARF(2)= D
C
C on calcule les contraintes finales
C
DO 500 ISTRS=1,NSTRS
SIGF(ISTRS)=SIG0(ISTRS)*(UN-D)
500 CONTINUE
* Et on stocke la différence entre contraintes réelles et contraintes plastiques
DO ISTRS=1,NSTRS
VARF(ISTRS+2) = SIG0(ISTRS)-SIGF(ISTRS)
END DO
END IF
RETURN
END
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales