vishin
C VISHIN SOURCE CHAT 05/01/13 04:07:23 5004 C************************************************************* . XCAR,SIGF,VARF,DEFP,PRECIS,MFR,KERRE,DT) C************************************************************* C L GORNET VERSION DL/LG MacNu modif 99 C Version 1D de interface C ENTREES C ------- C SIG0 (NSTRS) :Contraintes initiales C DSIGT (NSTRS) :Increment de contraintes (deformations 97) C VAR0 (NVARI) :Variables internes C C XMAT (NCOMAT) :Composantes materiaux C PRECIS : Prec integration locale C C SORTIES C ------- C SIGF :Contraintes finales C VARF : V Interne a t + dt C DEFP : Def Plastiques t + dt C MFR : C KERRE : C C*********************************************************************** IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO REAL*8 SIG0(*),VAR0(*),XMAT(*),XCAR(*) REAL*8 SIGF(*),VARF(*),DEFP(*),DSIGT(*) REAL*8 PRECIS,ZOB INTEGER NSTRS,NVARI,NCOMAT,KERRE,MFR C++++++++ VARIABLES COMPORTEMENT +++++++++++++ REAL*8 DSIGTL(6),SIG0L(6),SIGFL(6) REAL*8 SIG0T(6),DSIGTT(6),SIGFT(6) C NVARI =10 C NCOMAT=10 C cos directeur de la premiere direction C XMAT(6) cos tet sur x C XMAT(7) sin tet sur y REAL*8 d3R,d1R,YDBR,d3,d1,YDB, WWY REAL*8 K10,K30 REAL*8 SU3,SU1,SUD3,SUD1 REAL*8 GA1,AL REAL*8 akk,ann,amm,Y0,YC,YDBPR,YDBP REAL*8 ZX1,ZX3 REAL*8 YD1,YD3,DCRI REAL*8 TESTG,DT C C PRINT*,'+++++++++ HINTE ++++++++++++' C PRINT*,' ' C PRINT*,' NSTRS= ',NSTRS,' NVARI= ',NVARI C PRINT*,' NCOMAT= ',NCOMAT,' PRECIS= ',PRECIS C PRINT*,' MFR= ',MFR,' KERRE= ',KERRE C C DO I= 1,NCOMAT C PRINT*,'XMAT(',I,') :',XMAT (I) C C END DO C +++++++++++++++++++ INTERGRATION LOCALE ++++++++ C VERIF DE LA RUPTURE C234567 d3 = VAR0(2) d1 = VAR0(4) YDB = VAR0(5) YDBPR = VAR0(5) d3R = VAR0(2) d1R = VAR0(4) C Parametre utile pour une rupture fragile <1 DCRI = 1.0D0 C IF ( (d3. eq. 1.0D0 ) ) THEN DO I= 1,NSTRS SIGF(I)= 1.0D-15 END DO DO I= 2,NVARI VARF(I)= VAR0(I) END DO C PRINT*,'>>>> SORTIE GINTE RUPTURE 1<<<<<' RETURN ENDIF K10 = XMAT(1) K30 = XMAT(2) GA1 = XMAT(5) AL = XMAT(6) akk = XMAT(7) ann = XMAT(8) Y0 = XMAT(9) YC = XMAT(10) amm = XMAT(11) C SAUT DE U SU3 = SIG0(2) / ( K30 * (1.0D0 - d3)) SU1 = SIG0(1) / ( K10 * (1.0D0 - d1)) C SAUT DE DU Prediction CVersion 97 DSIGT est la deformation a l appel C apres DSIGT est la contrainte!!!!! DSIGT(2) = K30 * (1.0D0 - d3) * DSIGT(2) DSIGT(1) = K10 * (1.0D0 - d1) * DSIGT(1) CVersion 96 DSIGT contrainte C Version classique SUD3 = DSIGT(2) / ( K30 * (1.0D0 - d3)) SUD1 = DSIGT(1) / ( K10 * (1.0D0 - d1)) ZX1 = SU1 + SUD1 ZX3 = SU3 + SUD3 C Variable pilotes IF(( (ABS( ZX1 ) ) .le. 1.D-15)) THEN YD1 = 0.0D0 C YD1 = 1.0D-15 ELSE YD1 = 0.5D0 * K10 * ( ZX1 )**(2.) C MODIF IF( ABS( YD1).ge. 1.D15) THEN YD1 = 1.D15 ENDIF ENDIF IF( (( ABS( ZX3 ) ) .le. 1.D-15).OR.(ZX3 .le .0.D0)) THEN C PAS EN COMPRESSION YD3 = 0.0D0 ELSE YD3 = 0.5D0 * K30 * ( ZX3 )**(2.) IF( ABS( YD3).ge. 1.D15) THEN YD3 = 1.0D15 ENDIF ENDIF C print*, ' K30, K20,K10', K30, K20,K10 C print*,'SU3 SU2 SU1',SU3 , SU2 , SU1 C print*,' SUD3 , SUD2, SUD1',SUD3 , SUD2, SUD1 C print*,' YD1 YD2 YD3', YD1, YD2, YD3 C print*,'GA1 GA2', GA1, GA2 C COMPRESSION NORMALE IF ( YD3 .le. 0.0D0) THEN YD3 = 0.0D0 C YD3 = 1.0D-15 YDB = (GA1 * YD1 )**AL ELSE YDB = YD3**AL + (GA1 * YD1 )**AL ENDIF C YDBP = YDB**(1.0D0/AL) C++++++++++++++ WWY =((ann/(ann+1.0D0) )*(YDBP - Y0 )/( YC - Y0) )**ann C PRINT*,' WWY : ', WWY,YDBP,Y0P,YCP TESTG = WWY - D3R C ENDO A PROGRESSE OU PAS C234567 IF ( TESTG .le. (0.0D0) ) THEN DO I= 1,NSTRS SIGF(I)= SIG0(I) + DSIGT(I) END DO DO I= 2,NVARI VARF(I)= VAR0(I) END DO C PRINT*,'>>>> PAS D EVOLUTION DE L ENDO 1 <<<<<' RETURN ENDIF C OUI ON ENDOMMAGE C OUI ON ENDOMMAGE IF(WWY.GE. 1.0D0) THEN WWY = 1.0D0 C PRINT*,' WWY EST BORNE' ENDIF C PRINT*,' WWY : ', WWY,YDBP,Y0P,YCP IF ( (WWY .le. (1.0D0)).AND.(WWY .gt. (0.0D0)) ) THEN C+++++++++ D1 = D1R + (D3 - D3R) C+++++++++ C TEST IF ( d1.gt. 1.0D0) THEN C PRINT*, 'ERREUR d1>1 ',d1 d1 =1.0D0 VARF(4) = 1.0D0 ENDIF IF ( d3 .gt. 1.0D0) THEN C PRINT*, 'ERREUR d3>1 ',d3 d2=1.0D0 VARF(2) = 1.0D0 ENDIF CACTU ET SORTIE DU LOCAL IF ( d1.lt. d1R) THEN PRINT*, 'ERREUR d1 ',d1 VARF(4) = d1R VARF(5) = YDBPR VARF(2) = d3R RETURN ELSE VARF(4) = d1 VARF(5) = YDBP ENDIF IF ( d3.lt. d3R) THEN PRINT*, 'ERREUR d3 ',d3 VARF(2) = d3R ELSE VARF(2) = d3 ENDIF SIGF(1)= (1.0D0- d1) / (1.0D0- d1R) * (SIG0(1) + DSIGT(1) ) SIGF(2)= (1.0D0- d3) / (1.0D0- d3R) * (SIG0(2) + DSIGT(2) ) IF (SIGF(1).EQ.0.D0)THEN SIGF(1)=1.0D-15 ENDIF IF (SIGF(2).EQ.0.D0)THEN SIGF(2)=1.0D-15 ENDIF C PRINT*,'**** AT ********' C PRINT*,' d1R :',d1R C PRINT*,' d2R :',d2R C PRINT*,' d3R :',d3R C PRINT*,'***** ATDT *****' C PRINT*,' d2 :',d2 C PRINT*,' d1 :',d1 C PRINT*,' d1 :',d1 C PRINT*,' d3 :',d3 C PRINT*,'***************' C DO I= 1,NSTRS C PRINT*, ' SIGF(',I,') :' , SIGF(I) C END DO C PRINT*,'>>>> SORTIE GINTE <<<<<' RETURN C ENDIF C234567 ELSEIF( (WWY .ge. (1.0D0)).AND.(WWY .ge. (0.0D0)) )THEN ELSEIF( (d1 .eq. 1.0D0) & .or. (d3 .eq. 1.0D0))THEN d3 = 1.0D0 d1 = 1.0D0 DO I= 1,NSTRS SIGF(I)= 1.0D-15 END DO DO I= 2,NVARI VARF(I)= 1.0D0 END DO C+++++ VARF(5) = YDBP C PRINT*,'>>>> SORTIE GINTE RUPTURE 2<<<<<' RETURN ENDIF C234567 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales