hujeux
C HUJEUX SOURCE FANDEUR 22/05/02 21:15:24 11359 . SIGF,VARF,DEFP,PRECIS,MFR,KERRE) C---------------------------------------------------------------------- C PLASTICITE MODELE HUJEUX C C ENTREES C SIG0(NSTRS) = CONTRAINTES INITIALES C NSTRS = NOMBRE DE CONTRAINTES C DEPST(NSTRS) = INCREMENT DE DEFORMATIONS TOTALES C VAR0(NVARI) = VARIABLES INTERNES DEBUT C VAR0(1) = EPSE C VAR0(2) = TRAP C XMAT(NCOMAT) = COMPOSANTES DE MATERIAU C XMAT(1) = YOUN C XMAT(2) = NU C XMAT(3) = RHO C XMAT(4) = ALPH C XMAT(5) = PI0 C XMAT(6) = COHE C XMAT(7) = M C XMAT(8) = BETA C XMAT(9) = HUA C XMAT(10) = HUB C XMAT(11) = HUR C XMAT(12) = P1 C XMAT(13) = N C XMAT(14) = E1 C NCOMAT = NOMBRE DE COMPOSANTES DE MATERIAU C XCAR(ICARA) = CARACTERISTIQUES C MFR = NUMERO DE LA FORMULATION DE L'ELEMENT FINI C = 1 MASSIF C C SORTIES C SIGF(NSTRS) = CONTRAINTES FINALES C VARF(NVARI) = VARIABLES INTERNES FINALES C DEFP(NSTRS) = DEFORMATIONS PLASTIQUES C KERRE = 0 TOUT OK C 1 SI DLAMBDA NEGATIF C 2 NOMBRE MAX D ITERATIONS INTERNES DEPASSE C 21 ON NE TROUVE PAS L INTERSECTION AVEC LA SURFACE DE CHARGE C 22 SIG0 A L EXTERIEUR DE LA SURFACE DE CHARGE C C----------------------------------------------------------------------- C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO C DIMENSION SIG0(*),DEPST(*),VAR0(*),XMAT(*),XCAR(*) DIMENSION SIGF(*),VARF(*),DEFP(*) DIMENSION STOT(6),XINV(2),SIGEL(6) DIMENSION DFDS(6),DGDS(6),COVNMS(1),DEFPLA(6),DDEFPL(6) EXTERNAL DDOT DATA ITMAX/25/ ALFAH=0.D0 COVNMS(1) = 0.D0 * * TEST SUR IFOUR : ON ACCEPTE 2D DP, AXI, 3D * KERRE=0 IF(IFOUR.NE.0.AND.IFOUR.NE.2.AND.IFOUR.NE.-1) THEN KERRE=99 RETURN ENDIF * * QUELQUES INITIALISATIONS * JEBOUC=0 IIMPI0=IIMPI 2020 JEBOUC=JEBOUC+1 * IF(IIMPI.EQ.48) THEN WRITE(IOIMP,77881) (XMAT(I),I=1,NCOMAT) 77881 FORMAT(1X,' XMAT=',1PE12.5/) WRITE(IOIMP,77882) (SIG0(I),I=1,NSTRS) 77882 FORMAT(1X,' SIG0 ' /(6(1X,1PE12.5))/) WRITE(IOIMP,77883) (VAR0(I),I=1,NVARI) 77883 FORMAT(1X,' VAR0 ' /(6(1X,1PE12.5))/) WRITE(IOIMP,77884) (DEPST(I),I=1,NSTRS) 77884 FORMAT(1X,' DEPST ' /(6(1X,1PE12.5))/) ENDIF * * ON RECUPERE LES CONSTANTES DU MATERIAU * YOUN = XMAT(1) YOUE1= XMAT(14) XNU = XMAT(2) PI0 = XMAT(5) COHE = XMAT(6) GM = XMAT(7) BETA = XMAT(8) HUA = XMAT(9) HUB = XMAT(10) HUR = XMAT(11) P1 = XMAT(12) ZN = XMAT(13) * * TESTS SUR LES DONNEES * IF(COHE.EQ.0.D0) COHE = 1.D-10 * PI0 IF(TRASI0.LT.0.D0.OR.HUB.LE.0.D0) THEN KERRE=22 RETURN ENDIF IF(ZN.LT.0.D0.OR.ZN.GE.1.D0) THEN KERRE=22 RETURN ENDIF * E2=YOUE1/(P1**ZN) E1=E2*(TRASI0**ZN) G2=E1/(1.D0+XNU) G=G2*0.5D0 UNSURE=1.D0/E1 BULK2=E2/(3.D0*(1.D0-2.D0*XNU)) * * ON CALCULE LES CONTRAINTES FINALES EN ELASTIQUE * ZN1=1.D0-ZN UNSURN=1.D0/ZN1 FAC= TRASI0 - (TRASI0**ZN1 - ZN1*BULK2*TRACEP)**UNSURN STOT(1)= SIG0(1)+G2*(DEPST(1)-TRACEP/3.D0) +FAC STOT(2)= SIG0(2)+G2*(DEPST(2)-TRACEP/3.D0) +FAC STOT(3)= SIG0(3)+G2*(DEPST(3)-TRACEP/3.D0) +FAC STOT(4)= SIG0(4)+G*DEPST(4) IF(IFOUR.EQ.2) THEN STOT(5)= SIG0(5)+G*DEPST(5) STOT(6)= SIG0(6)+G*DEPST(6) ELSE STOT(5)= 0.D0 STOT(6)= 0.D0 ENDIF * IF(IIMPI.EQ.48) THEN WRITE(IOIMP,77875) TRACEP 77875 FORMAT(1X,' TRACEP = ',1PE12.5/) WRITE(IOIMP,77886) (STOT(I),I=1,NSTRS) 77886 FORMAT(1X,' STOT ' /(6(1X,1PE12.5))/) ENDIF * * ON CALCULE LE CRITERE * PI= (PI0+COHE)*EXP(-BETA*VAR0(2)) - COHE IF(HUA.EQ.0.D0) THEN XKSI=1.D0+HUR ELSE XKSI=VAR0(1)/(HUA+VAR0(1)) + HUR ENDIF * IF(IIMPI.EQ.48) THEN WRITE(IOIMP,77887) XINV(1),XINV(2),Y,SELAS,PI,XKSI 77887 FORMAT(1X,' XINV(1)= ',1PE12.5,2X,'XINV(2)= ',1PE12.5, . 2X,'Y= ',1PE12.5,2X,'SELAS= ',1PE12.5,2X,'PI= ',1PE12.5/ . 2X,'KSI=',1PE12.5/) ENDIF * PETI=1.1D00*PRECIS*Y * * SORTIE ELASTIQUE * VARF(1)=VAR0(1) VARF(2)=VAR0(2) DO 3 IBA=1,NSTRS SIGF(IBA)=STOT(IBA) DEFP(IBA)=0.D0 3 CONTINUE IF(IIMPI.EQ.48) THEN WRITE(IOIMP,77003) 77003 FORMAT(1X,' SORTIE ELASTIQUE ' /) ENDIF RETURN * * ECOULEMENT PLASTIQUE * 4 CONTINUE ITER =0 DEPS =0.D0 DEPSI=0.D0 * * ------------------------------- * | LES ITERATIONS INTERNES | * ------------------------------- 555 CONTINUE ITER=ITER+1 IF(IIMPI.EQ.48) THEN WRITE(IOIMP,77888) ITER 77888 FORMAT(1X,' >>>>>>>>>>> HUJEUX - ITER =',I4/) ENDIF * . DFDKSI,DGDS,HV,HQ) IF(IIMPI.EQ.48) THEN WRITE(IOIMP,77889) (DFDS(IJ),IJ=1,NSTRS) 77889 FORMAT(1X,' DFDS '/(6(1X,1PE12.5))/) WRITE(IOIMP,77899) (DGDS(IJ),IJ=1,NSTRS) 77899 FORMAT(1X,' DGDS '/(6(1X,1PE12.5))/) WRITE(IOIMP,77890) DFDPI,DFDKSI,HV,HQ 77890 FORMAT(1X,' DFDPI= ',1PE12.5,2X,'DFDKSI= ',1PE12.5/ . 1X,' HV=',1PE12.5,2X,'HQ=',1PE12.5/) ENDIF * * CALCUL DE D*DGDS * ABSI=ABS(COHE-XINV(1)) STOT(1)=G2*DGDS(1)+BULKGT STOT(2)=G2*DGDS(2)+BULKGT STOT(3)=G2*DGDS(3)+BULKGT STOT(4)=G*DGDS(4) IF(IFOUR.EQ.2) THEN STOT(5)=G*DGDS(5) STOT(6)=G*DGDS(6) ELSE STOT(5)=0.D0 STOT(6)=0.D0 ENDIF * IF(IIMPI.EQ.48) THEN WRITE(IOIMP,77891) (STOT(IJ),IJ=1,NSTRS) 77891 FORMAT(1X,' D*DFDS '/(6(1X,1PE12.5))/) ENDIF * DEPSI=Y/(DFTDDG - DFDPI*HV - DFDKSI*HQ +1.D-20) DEPS = DEPS+DEPSI IF(IIMPI.EQ.48) THEN WRITE(IOIMP,77892) DEPSI,DEPS 77892 FORMAT(1X,' DEPSI=',1PE12.5,2X,'DEPS=',1PE12.5/) ENDIF IF(DEPS.LT.0.D0) GO TO 6 * * ON INCREMENTE * DO 66 I=1,NSTRS DEFPLA(I)=DEFPLA(I)+DGDS(I)*DEPSI STOT(I)=DEPST(I)-DEFPLA(I) 66 CONTINUE IF(IFOUR.NE.2) THEN DEFPLA(5)=0.D0 DEFPLA(6)=0.D0 STOT(5)=0.D0 STOT(6)=0.D0 ENDIF * * DEVIATEUR DE DEFPLA * DO 67 I=1,6 IF(I.LE.3) THEN ELSE DDEFPL(I)=DEFPLA(I) ENDIF 67 CONTINUE IF(IIMPI.EQ.48) THEN WRITE(IOIMP,77991) (DEFPLA(IJ),IJ=1,NSTRS) 77991 FORMAT(1X,' DEFPLA '/(6(1X,1PE12.5))/) WRITE(IOIMP,73991) (DDEFPL(IJ),IJ=1,NSTRS) 73991 FORMAT(1X,' DDEFPL '/(6(1X,1PE12.5))/) ENDIF * FAC = TRASI0 - (TRASI0**ZN1 - ZN1*BULK2*TRACEP)**UNSURN SIGEL(1)= SIG0(1)+G2*(STOT(1)-TRACEP/3.D0) +FAC SIGEL(2)= SIG0(2)+G2*(STOT(2)-TRACEP/3.D0) +FAC SIGEL(3)= SIG0(3)+G2*(STOT(3)-TRACEP/3.D0) +FAC SIGEL(4)= SIG0(4)+G*STOT(4) IF(IFOUR.EQ.2) THEN SIGEL(5)= SIG0(5)+G*STOT(5) SIGEL(6)= SIG0(6)+G*STOT(6) ELSE SIGEL(5)= 0.D0 SIGEL(6)= 0.D0 ENDIF * IF(HUA.EQ.0.D0) THEN XKSI=1.D0+HUR ELSE XKSI=EPSE/(HUA+EPSE) + HUR ENDIF * * TEST DE CONVERGENCE * STST=ABS(Y/SELAS) * IF(IIMPI.EQ.48) THEN WRITE(IOIMP,77893) (SIGEL(IJ),IJ=1,NSTRS) 77893 FORMAT(1X,' NEW SIG '/(6(1X,1PE12.5))/) WRITE(IOIMP,77894) PI,Y,SELAS,STST 77894 FORMAT(1X,' PI= ',1PE12.5,2X,'Y= ',1PE12.5,2X, . 'SELAS= ',1PE12.5,2X,'STST= ',1PE12.5/) ENDIF * IF(STST.LE.PRECIS) GO TO 8 IF(ITER.GT.ITMAX) GO TO 7 GO TO 555 * 6 CONTINUE KERRE=1 GO TO 9 7 CONTINUE KERRE=2 9 CONTINUE IF (JEBOUC.EQ.1) THEN IIMPI=48 GO TO 2020 ELSE IIMPI=IIMPI0 ENDIF * 8 CONTINUE * * REMPLISSAGE * VARF(1)=EPSE DO 12 IBA=1,NSTRS SIGF(IBA)=SIGEL(IBA) DEFP(IBA)=DEFPLA(IBA) 12 CONTINUE * IF(IIMPI.EQ.48) THEN WRITE(IOIMP,77895) (STOT(IJ),IJ=1,NSTRS) 77895 FORMAT(1X,' DEF_ELA '/(6(1X,1PE12.5))/) WRITE(IOIMP,77896) (DEFP(IJ),IJ=1,NSTRS) 77896 FORMAT(1X,' DEF_PLA '/(6(1X,1PE12.5))/) WRITE(IOIMP,77897) VARF(1),VARF(2) 77897 FORMAT(1X,' VARF(1)= ',1PE12.5,2X,'VARF(2)= ',1PE12.5/) ENDIF * 1000 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales