C INTFIB SOURCE PV 11/03/07 21:17:04 6885 C sub C====&===1=========2=========3=========4=========5=========6=========7== C Commentaires : Subroutine permettant de mettre en oeuvre le C modele RICINT pour une formulation à fibre C Auteurs : B. Richard (doctorant) C Date : Février 2008 C====&===1=========2=========3=========4=========5=========6=========7== SUBROUTINE INTFIB(XMAT,XSECT,DEPST,SIG0,VAR0,SIGF,VARF) C C-----DECLARATION GENERALE C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C C-----DECLARATION DES VARIABLES C REAL*8 XMAT(18),VAR0(25),VARF(25),XSECT,DEPST REAL*8 SIG0(3),SIGF,EINT REAL*8 GCOEFF,AD,ACOEFF,GAMCOE,LCCOEF,EPS0CO,TCI REAL*8 ENDI,ALPH,EPSF,XVAR,ZVAR,XLAM,EPTO,SIGMA INTEGER INDITER,I1,ITERMAX REAL*8 XENER,SIGMP,CRIT1,XENRR,CRIT2,DLAMPI,CRIT20 REAL*8 DFSIGF,DFXVAR,DGSIGF,DGXVAR,XENE0 C C-----LES PARAMETRES C ITERMAX = 100000 C C-----NOMENCLATURE DES PARAMETRES MATERIAUX (XMAT) ET VARIABLES INTERNES C (VAR0 ET VARF) C C --------------------------- C | INTERFACE A/B CORRODEE | C --------------------------- C XMAT(11) GCOEFF C XMAT(12) AD C XMAT(13) ACOEFF C XMAT(14) GAMCOE C XMAT(15) LCCOEF C XMAT(16) EPS0CO C XMAT(17) TCI C XMAT(18) CALA C C --------------------------- C | INTERFACE A/B CORRODEE | C --------------------------- C VAR0(11) VARF(11) ENDI C VAR0(12) VARF(12) ALPH C VAR0(13) VARF(13) EPSF C VAR0(14) VARF(14) XVAR C VAR0(15) VARF(15) ZVAR C VAR0(16) VARF(16) EINT C VAR0(17) VARF(17) SIGF C VAR0(18) VARF(18) C VAR0(19) VARF(19) C VAR0(20) VARF(20) C C --------------------------- C | AUTRES | C --------------------------- C VAR0(21) VARF(21) XLAM C VAR0(22) VARF(22) EPTO C VAR0(23) VARF(23) INDITER C C-----LES PARAMETRES MATERIAUX C GCOEFF = XMAT(11) AD = XMAT(12) ACOEFF = XMAT(13) GAMCOE = XMAT(14) LCCOEF = XMAT(15) EPS0CO = XMAT(16) TCI = XMAT(17) C C-----LES VARIABLES INTERNES C ENDI = VAR0(11) ALPH = VAR0(12) EPSF = VAR0(13) XVAR = VAR0(14) ZVAR = VAR0(15) EINT = VAR0(16) SIGF = VAR0(17) XLAM = VAR0(21) EPTO = VAR0(22) INDITER = nint(VAR0(23)) C C-----AVANCE EN DEFORMATION C EPTO = (EPTO + DEPST)*LCCOEF*(1.0D0-XLAM) C C-----PREDICTION ELASTIQUE C SIGMA = 2.0D0*GCOEFF*EPTO*(1.0D0-ENDI) + 2.0D0*GCOEFF*(EPTO-EPSF)* & ENDI XENER = GCOEFF*EPTO*EPTO XENE0 = GCOEFF*EPS0CO*EPS0CO SIGMP = 2.0D0*GCOEFF*ENDI*(EPTO-EPSF) C C-----CALCUL DE YR POUR L ACCROISSEMENT DE LA ROUILLE C CALL APPFIB(TCI,XENRR,15) C C-----CALCUL DU CRITERE D ENDOMMAGEMENT C CRIT1 = XENER - (XENE0 + ZVAR + XENRR) IF (CRIT1.GT.0.0D0) THEN ENDI = 1.0D0-1.0D0/(1.0D0+AD*(XENER-(XENE0+XENRR))) ZVAR = XENER-XENE0-XENRR END IF C C-----CALCUL DU CRITERE POUR LE FROTTEMENT C CRIT2 = DABS(SIGMP-XVAR) IF (CRIT2.GT.0.0D0) THEN CRIT20 = DABS(CRIT2) DO I1=1,ITERMAX CRIT2 = DABS(SIGMP-XVAR) IF (DABS(CRIT2/CRIT20).LE.1.0D-5) THEN GOTO 10 END IF DFSIGF = DABS(SIGMP-XVAR)/(SIGMP-XVAR) DFXVAR = -DABS(SIGMP-XVAR)/(SIGMP-XVAR) DGSIGF = DABS(SIGMP-XVAR)/(SIGMP-XVAR) DGXVAR = -DABS(SIGMP-XVAR)/(SIGMP-XVAR) + ACOEFF*XVAR DLAMPI = CRIT2/(ENDI*2.0D0*GCOEFF*DFSIGF*DGSIGF+ & GAMCOE*DFXVAR*DGXVAR) XVAR = XVAR - GAMCOE*DLAMPI*DGXVAR SIGMP = SIGMP - 2.0D0*GCOEFF*ENDI*DGSIGF*DLAMPI END DO 10 CONTINUE ALPH = XVAR/GAMCOE EPSF = EPTO - SIGMP/(2.0D0*ENDI*GCOEFF) END IF C C-----ON REAJUSTE LES CONTRAINTES C SIGMA = 2.0D0*GCOEFF*EPTO*(1.0D0-ENDI) + 2.0D0*GCOEFF*(EPTO-EPSF)* & ENDI C C-----LES SORTIES C VARF(11) = ENDI VARF(12) = ALPH VARF(13) = EPSF VARF(14) = XVAR VARF(15) = ZVAR VARF(16) = EINT VARF(17) = SIGMA VARF( 7) = EPTO VARF( 8) = SIGMA C C-----LES CONTRAINTES EN SORTIE C SIGF = SIGMA RETURN END