camcla
C CAMCLA SOURCE FANDEUR 22/05/02 21:15:02 11359 . SIGF,VARF,DEFP,PRECIS,MFR,KERRE) C---------------------------------------------------------------------- C PLASTICITE MODELE CAM-CLAY 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) = E0 C XMAT(6) = PI0 C XMAT(7) = COHE C XMAT(8) = M C XMAT(9) = LAMD C XMAT(10) = KAPA C XMAT(11) = G1 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),COVNMS(6),DEFPLA(6) EXTERNAL DDOT * DATA ITMAX/25/ DATA COVNMS / 6 * 0.D0 / ALFAH=0.D0 * * TEST SUR IFOUR : ON ACCEPTE 2D DP, AXI, 3D , FOUR * KERRE=0 IF(IFOUR.NE.0.AND.IFOUR.NE.2.AND.IFOUR.NE.-1 & .AND.IFOUR.NE.1) THEN KERRE=99 RETURN ENDIF * * QUELQUES INITIALISATIONS * JEBOUC=0 IIMPI0=IIMPI 2020 JEBOUC=JEBOUC+1 * IF(IIMPI.EQ.33) THEN WRITE(IOIMP,77881) (XMAT(I),I=1,11) 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) XNU = XMAT(2) E0 = XMAT(5) PI0 = XMAT(6) COHE = XMAT(7) GM = XMAT(8) XLAMD= XMAT(9) XKAPA= XMAT(10) G = XMAT(11) * * TESTS SUR LES DONNEES * IF(XKAPA.GE.XLAMD) THEN KERRE=60 RETURN ENDIF IF(COHE.EQ.0.D0) COHE = 1.D-10 * PI0 * G2= G * 2.D0 * * ON CALCULE LES CONTRAINTES FINALES EN ELASTIQUE * XK0=(1.D0+E0)/XKAPA FAC = TRASI0 * (EXP(-XK0*TRACEP) -1.D0) 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.GE.1) 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.33) THEN WRITE(IOIMP,77875) XK0,TRACEP 77875 FORMAT(1X,' XK0 = ',1PE12.5,2X,'TRACEP = ',1PE12.5/) WRITE(IOIMP,77885) (DEPST(I),I=1,NSTRS) 77885 FORMAT(1X,' DEPST ' /(6(1X,1PE12.5))/) WRITE(IOIMP,77886) (STOT(I),I=1,NSTRS) 77886 FORMAT(1X,' STOT ' /(6(1X,1PE12.5))/) ENDIF * * ON CALCULE LE CRITERE * * IF(IIMPI.EQ.33) THEN WRITE(IOIMP,77887) XINV(1),XINV(2),Y,SELAS,PI 77887 FORMAT(1X,' XINV(1)= ',1PE12.5,2X,'XINV(2)= ',1PE12.5, . 2X,'Y= ',1PE12.5,2X,'SELAS= ',1PE12.5,2X,'PI= ',1PE12.5/) ENDIF * PETI=1.1D00*PRECIS*Y IF(ITRY.EQ.0.AND.Y.GT.SELAS) GO TO 4 * * 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.33) 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.33) THEN WRITE(IOIMP,77888) ITER 77888 FORMAT(1X,' >>>>>>>>>>> CAMCLA - ITER =',I4/) ENDIF * IF(IIMPI.EQ.33) THEN WRITE(IOIMP,77889) (DFDS(IJ),IJ=1,NSTRS) 77889 FORMAT(1X,' DFDS '/(6(1X,1PE12.5))/) WRITE(IOIMP,77890) DFDPI,H 77890 FORMAT(1X,' DFDPI= ',1PE12.5,2X,'H= ',1PE12.5/) ENDIF * * CALCUL DE D*DFDS * BULKGT=((COHE-XINV(1))*(1.D0+E0)/XKAPA - G2/3.D0) STOT(1)=G2*DFDS(1)+BULKGT STOT(2)=G2*DFDS(2)+BULKGT STOT(3)=G2*DFDS(3)+BULKGT STOT(4)=G*DFDS(4) IF(IFOUR.GE.1) THEN STOT(5)=G*DFDS(5) STOT(6)=G*DFDS(6) ELSE STOT(5)=0.D0 STOT(6)=0.D0 ENDIF * IF(IIMPI.EQ.33) THEN WRITE(IOIMP,77891) (STOT(IJ),IJ=1,NSTRS) 77891 FORMAT(1X,' D*DFDS '/(6(1X,1PE12.5))/) ENDIF * DEPSI=(Y-SELAS)/(DFTDDG - DFDPI*H +1.D-20) DEPS = DEPS+DEPSI IF(IIMPI.EQ.33) 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)+DFDS(I)*DEPSI STOT(I)=DEPST(I)-DEFPLA(I) 66 CONTINUE IF(IFOUR.LT.1) THEN DEFPLA(5)=0.D0 DEFPLA(6)=0.D0 STOT(5)=0.D0 STOT(6)=0.D0 ENDIF IF(IIMPI.EQ.33) THEN WRITE(IOIMP,77991) (DEFPLA(IJ),IJ=1,NSTRS) 77991 FORMAT(1X,' DEFPLA '/(6(1X,1PE12.5))/) ENDIF * FAC = TRASI0 * (EXP(-XK0*TRACEP) -1.D0) 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.GE.1) 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 * * * TEST DE CONVERGENCE * STST=ABS((Y-SELAS)/SELAS) * IF(IIMPI.EQ.33) 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=33 GO TO 2020 ELSE IIMPI=IIMPI0 ENDIF * 8 CONTINUE * * REMPLISSAGE * DO 12 IBA=1,NSTRS SIGF(IBA)=SIGEL(IBA) DEFP(IBA)=DEFPLA(IBA) 12 CONTINUE * IF(IIMPI.EQ.33) 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