ecoin0
C ECOIN0 SOURCE PV 22/04/25 21:15:03 11344 . SIGF,VARINF,DEFP,KERRE,MFR,IB,IGAU,NSTRS,EPAIST,MELE,NPINT, . NBPGAU,NBGMAT,NELMAT,SECT,LHOOK,TXR,XLOC,XGLOB,D1HOOK, . ROTHOO,DDHOMU,CRIGI,DSIGT,INPLAS,LTRAC,IFOURB) C----------------------------------------------------------------------- C ECOULEMENT PLASTIQUE POUR UN POINT C ALGORITHME ORTIZ ET SIMO C C EN ENTREE : C C SIG0 CONTRAINTES AU DEBUT DU PAS C DEPST INCREMENT DE DEFORMATIONS TOTALES C ( THERMIQUE ENLEVEE ) C VARIN0 VARIABLES INTERNES DEDUT DU PAS C VAREX0 VARIABLES EXTERNES DEBUT DU PAS C VAREXF VARIABLES EXTERNES FIN DU PAS C XMAT COEFFICIENTS DU MATERIAU C PRECIS PRECISION POUR ITERATIONS INTERNES C CARAC DES CARACTERISTIQUES C TRAC COURBE DE TRACTION C MFR INDICE DE FORMULATION C NSTRS NOMBRE DE CONTRAINTES CA2000 C INPLAS NUMERO DU MODELE DE PLASTICITE C DDAUX = MATRICE DE HOOKE ELASTIQUE C CMATE = NOM DU MATERIAU C VALMAT= TABLEAU DE CARACTERISTIQUES DU MATERIAU C VALCAR= TABLEAU DE CARACTERISTIQUES GEOMETRIQUES C N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE C N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE C IFOU = OPTION DE CALCUL C IB = NUMERO DE L ELEMENT COURANT C IGAU = NUMERO DU POINT COURANT C EPAIST= EPAISSEUR C NBPGAU= NBRE DE POINTS DE GAUSS C MELE = NUMERO DE L ELEMENT FINI C NPINT = NBRE DE POINTS D INTEGRATION C NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES C NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES C SECT = SECTION C LHOOK = TAILLE DE LA MATRICE DE HOOKE C TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI = TABLEAUX UTILISES C UTILISES POUR LE CALCUL DE LA MATRICE DE HOOKE C C EN SORTIE : C C SIGF CONTRAINTES A LA FIN DU PAS C VARINF VARIABLES INTERNES FIN DU PAS C DEFP INCR. DE DEFORMATIONS PLASTIQUES C KERRE CODE D'ERREUR C = 0 SI TOUT OK C = 99 SI FORMULATION NON DISPONIBLE C EN PLASTICITE C = 1 SI DEPS EST NEGATIF C = 2 SI NOMBRE MAX D'ITERATIONS INTERNES DEPASSE C C IFOUR : OPTION DE CALCUL C C IFOUR = -3 DEFORMATION PLANE GENERALISEE C IFOUR = -2 CONTRAINTES PLANES C IFOUR = -1 DEFORMATIONS PLANES C IFOUR = 0 AXISYMETRIQUE C IFOUR = 1 SERIE DE FOURIER C IFOUR = 2 TRIDIMENSIONNEL C C MFR : NUMERO DE LA FORMULATION ELEMENT FINI C C MFR = 1 MASSIF C MFR = 3 COQUE C MFR = 5 COQUE EPAISSE C MFR = 7 POUTRE C MFR = 9 COQUE AVEC CISAILLEMENT TRANSVERSE C C INPLAS : NUMERO DU MODELE DE PLASTICITE C C INPLAS = 1 PARFAIT C INPLAS = 4 CINEMATIQUE C INPLAS = 5 ISOTROPE C INPLAS = 7 CHABOCHE1 C INPLAS = 12 CHABOCHE2 C C----------------------------------------------------------------------- C CONVENTION DE REMPLISSAGE DES MEMOIRES C----------------------------------------------------------------------- C C XMAT(1) MODULE D'YOUNG C XMAT(2) COEFFICIENT DE POISSON C C TRAC(1 A 2*LTRAC) COURBE DE TRACTION C CARAC( " +1) ALFAH POUR COQUES PLASTICITE GLOBALE C CARAC( " +..) DONNEES POUR CRITERE POUTRES GLOBALES C C MODELE ISOTROPE C VARIN0(1) EPS* C C MODELE CINEMATIQUE LINEAIRE C VARIN0(1) EPS* C VARIN0(2) A VARIN0(1+NSTRS) DEPLACEMENT DE LA SPHERE C C MODELE CHABOCHE C XMAT(5) .... COEFFICIENTS A,C,... C VARIN0(1) EPS* C VARIN0(2) A VARIN0(1+NSTRS) DEPLACEMENT DE LA SPHERE 1 C VARIN0(2+NSTRS) A VARIN0(1+2*NSTRS) " " " " 2 C C----------------------------------------------------------------------- C 20/09/2017 : modif SG critere de convergence trop serre C TEST=PETI*APHI0 + utilisation CCREEL C idem ccoin0.eso IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCREEL DIMENSION SIG0(*),SIG(130),EPS(130),SIGF(*),DEFP(*) DIMENSION DDAUX(LHOOK,*),VARIN0(*),VARINF(*),DEPST(*),TRAC(*) DIMENSION XMAT(*),VALMAT(*),VALCAR(*),DDHOMU(LHOOK,*) DIMENSION S(8),SX(8),DS(8),DSIG(8),SPHER(8),SPHER1(8),SPHER2(8) DIMENSION DSPHER1(8),DSPHER2(8),DEPSE(8),DEPSP(8),DDEPSE(8) DIMENSION F(8),W1(8),W2(8),SIGB(8),Z1(8),DIV(8),DDA(8,8) DIMENSION TXR(IDIM,*),CRIGI(*),XLOC(3,3),XGLOB(3,3) DIMENSION D1HOOK(LHOOK,*),ROTHOO(LHOOK,*) dimension varex0(*),varexf(*) CHARACTER*8 CMATE C----------------------------------------------------------------------- DO I=1,NSTRS S(I)=0.D0 SPHER(I)=0.D0 SPHER1(I)=0.D0 SPHER2(I)=0.D0 ENDDO KERRE=0 YUNG=XMAT(1) XNU=XMAT(2) C---------CARACTERISTIQUES GEOMETRIQUES--------------------------------- C C COQUES C ALFAH=1.D0 IF(MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN ENDIF C---------COEFFICIENTS CHABOCHE----------------------------------------- IF(INPLAS.EQ.7) THEN A1=XMAT(5) PSI=XMAT(8) OME=XMAT(9) RM=XMAT(10) B=XMAT(11) A2=0.D0 ELSE IF(INPLAS.EQ.12) THEN A1=XMAT(5) A2=XMAT(7) PSI=XMAT(10) OME=XMAT(11) RM=XMAT(12) B=XMAT(13) ELSE DO I=1,LTRAC SIG(I)=TRAC(2*I-1) EPS(I)=TRAC(2*I) ENDDO ENDIF EPST=VARIN0(1) C---------ECROUISSAGE CINEMATIQUE--------------------------------------- IF(INPLAS.EQ.4.OR.INPLAS.EQ.7.OR.INPLAS.EQ.12) THEN DO I=1,NSTRS SPHER1(I)=VARIN0(I+1) ENDDO IF(INPLAS.EQ.12) THEN DO I=1,NSTRS SPHER2(I)=VARIN0(NSTRS+1+I) ENDDO ENDIF DO I=1,NSTRS SPHER(I)=SPHER1(I)+SPHER2(I) ENDDO ENDIF C----------------------------------------------------------------------- C PREDICTEUR ELASTIQUE C S : CONTRAINTE C SPHER : VARIABLE D'ECROUISSAGE CINEMATIQUE C SX = S - X C----------------------------------------------------------------------- * en elastique non lineaire on annule les contraintes initiales * mais on cumule les epsilons elastiques IF(INPLAS.EQ.87) THEN EPST=0.D0 DO I=1,NSTRS SIG0(I)=0.D0 DEPST(I)=DEPST(I) + VARIN0(I+1) ENDDO ENDIF & N2EL,N2PTEL,MFR,IFOURB,IB,IGAU,EPAIST, & NBPGAU,MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR, & XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT,IRTD) IF(IRTD.NE.1) THEN KERRE=69 GOTO 1000 ENDIF DO I=1,NSTRS S(I)=SIG0(I)+DSIGT(I) SIGB(I)=S(I) SX(I)=S(I)-SPHER(I) ENDDO C---------COQUES AVEC CT------------------------------------------------ C ON NE TRAVAILLE QUE SUR LES 6 PREMIERES COMPOSANTES IF(MFR.EQ.9) THEN NCONT=6 ELSE NCONT=NSTRS ENDIF C---------CAS DES POUTRES----------------------------------------------- IF(MFR.EQ.7) THEN DIV(2)=1.D0 DIV(3)=1.D0 DO I=1,NCONT S(I)=S(I)*DIV(I) SX(I)=SX(I)*DIV(I) ENDDO ENDIF C----------------------------------------------------------------------- C CALCUL DE LA LIMITE ELASTIQUE SI C----------------------------------------------------------------------- IF(INPLAS.EQ.1.OR.INPLAS.EQ.4) THEN ELSE IF(INPLAS.EQ.5.OR.INPLAS.EQ.87) THEN IF(IBI.EQ.1) THEN KERRE=75 GOTO 1000 ENDIF ENDIF C----------------------------------------------------------------------- C CALCUL DE LA CONTRAINTE EQUIVALENTE SEQ C----------------------------------------------------------------------- C----------------------------------------------------------------------- C LE CRITERE EST-IL VERIFIE C----------------------------------------------------------------------- NITER=0 PETI=1.1D0*0.5D0*PRECIS*SEQ IF(MFR.EQ.7) THEN DO I=1,NCONT S(I)=S(I)/DIV(I) ENDDO ENDIF DO I=1,NCONT SIGF(I)=S(I) DEFP(I)=0.D0 ENDDO IF(MFR.EQ.9) THEN DEFP(7)=0.D0 DEFP(8)=0.D0 SIGF(7)=S(7) SIGF(8)=S(8) ENDIF VARINF(1)=VARIN0(1) IF(INPLAS.EQ.4.OR.INPLAS.EQ.7) THEN DO I=1,NSTRS VARINF(I+1)=VARIN0(I+1) ENDDO ELSE IF(INPLAS.EQ.12) THEN DO I=1,2*NSTRS VARINF(I+1)=VARIN0(I+1) ENDDO ELSE IF(INPLAS.EQ.87) THEN DO I=1,NSTRS VARINF(I+1)=DEPST(I) ENDDO ENDIF RETURN ENDIF 231 CONTINUE C----------------------------------------------------------------------- C ON A PLASTIFIE C----------------------------------------------------------------------- PHI0=PHI SI0=SI RR=0.D0 DO I=1,NCONT DSIG(I)=0.D0 DEPSP(I)=0.D0 DSPHER1(I)=0.D0 DSPHER2(I)=0.D0 ENDDO C----------------------------------------------------------------------- C DEBUT DE LA BOUCLE D'ITERATIONS INTERNES C----------------------------------------------------------------------- 10 NITER=NITER+1 C---------CALCUL DE W1=DF/D(SIGMA)-------------------------------------- C---------ELEMENTS MASSIFS---------------------------------------------- IF(MFR.EQ.1) THEN F(1)=(2.D0*SX(1)-SX(2)-SX(3))/3.D0 F(2)=(2.D0*SX(2)-SX(1)-SX(3))/3.D0 F(3)=(2.D0*SX(3)-SX(1)-SX(2))/3.D0 DO I=4,NSTRS F(I)=SX(I) ENDDO DO I=1,3 W1(I)=1.5D0*F(I)/SEQ Z1(I)=W1(I) ENDDO DO I=4,NSTRS W1(I)=3.D0*F(I)/SEQ Z1(I)=1.5D0*F(I)/SEQ ENDDO C---------COQUES MINCES------------------------------------------------- ELSE IF(MFR.EQ.3.OR.MFR.EQ.9) THEN AUX=EP1*EP1*EP1*EP1 IF(IFOURB.GE.1) THEN W1(1)=(2.D0*SX(1)-SX(2))/(2.D0*SEQ*EP1*EP1) W1(2)=(2.D0*SX(2)-SX(1))/(2.D0*SEQ*EP1*EP1) W1(3)=3.D0*SX(3)/(SEQ*EP1*EP1) W1(4)=18.D0*ALFAH*(2.D0*SX(4)-SX(5))/(SEQ*AUX) W1(5)=18.D0*ALFAH*(2.D0*SX(5)-SX(4))/(SEQ*AUX) W1(6)=108.D0*ALFAH*SX(6)/(SEQ*AUX) ELSE W1(1)=(2.D0*SX(1)-SX(2))/(2.D0*SEQ*EP1*EP1) W1(2)=(2.D0*SX(2)-SX(1))/(2.D0*SEQ*EP1*EP1) W1(3)=18.D0*ALFAH*(2.D0*SX(3)-SX(4))/(SEQ*AUX) W1(4)=18.D0*ALFAH*(2.D0*SX(4)-SX(3))/(SEQ*AUX) ENDIF C---------COQUES EPAISSES----------------------------------------------- ELSE IF(MFR.EQ.5) THEN F(1)=(2.D0*SX(1)-SX(2))/3.D0 F(2)=(2.D0*SX(2)-SX(1))/3.D0 DO I=3,5 F(I)=SX(I) ENDDO DO I=1,2 W1(I)=1.5D0*F(I)/SEQ Z1(I)=W1(I) ENDDO DO I=3,5 W1(I)=3.D0*F(I)/SEQ Z1(I)=1.5D0*F(I)/SEQ ENDDO C---------POUTRES------------------------------------------------------- ELSE IF(MFR.EQ.7) THEN DO I=1,NCONT DO J=1,NCONT DDA(I,J)=0.D0 ENDDO ENDDO DDA(1,1)=YUNG DDA(4,4)=0.5D0*YUNG/(1.D0+XNU) DDA(5,5)=YUNG DDA(6,6)=YUNG W1(1)=SX(1)/SEQ W1(2)=0.D0 W1(3)=0.D0 W1(4)=SX(4)/SEQ W1(5)=SX(5)/SEQ W1(6)=SX(6)/SEQ ENDIF IF(MFR.EQ.7) THEN DO I=1,NCONT W2(I)=0.D0 DO J=1,NCONT W2(I)=W2(I)+DDA(I,J)*W1(J) ENDDO ENDDO ELSE DO I=1,NCONT W2(I)=0.D0 DO J=1,NCONT W2(I)=W2(I)+DDAUX(I,J)*W1(J) ENDDO ENDDO ENDIF COEF=0.D0 DO I=1,NCONT COEF=COEF+W1(I)*W2(I) ENDDO C----------------------------------------------------------------------- C PLASTICITE PARFAITE, ECROUISSAGE ISOTROPE ET CINEMATIQUE ZIEGLER C----------------------------------------------------------------------- IF(INPLAS.EQ.1.OR.INPLAS.EQ.4.OR.INPLAS.EQ.5 $ .OR.INPLAS.EQ.87) THEN * WRITE(6,*) ' pente epst', pente,epst IF(IBI.EQ.1) THEN KERRE=75 GOTO 1000 ENDIF IF(INPLAS.EQ.1) THEN RP=0.D0 C=0.D0 ELSE IF(INPLAS.EQ.4) THEN RP=0.D0 C=PENTE ELSE IF(INPLAS.EQ.5.OR.INPLAS.EQ.87) THEN RP=PENTE C=0.D0 ENDIF IF(MFR.EQ.3.OR.MFR.EQ.9) THEN DENOM=COEF+C+(RP/EP1) ELSE DENOM=COEF+C+RP ENDIF DELTA=PHI/DENOM DMU=C*DELTA/SEQ DO I=1,NCONT DSIG(I)=-DELTA*W2(I) DSPHER1(I)=DMU*SX(I) ENDDO IF(MFR.EQ.3.OR.MFR.EQ.9) THEN ELSE DP=DELTA ENDIF ELSE C----------------------------------------------------------------------- C MODELE DE CHABOCHE C----------------------------------------------------------------------- C---------UNIQUEMENT POUR LES ELEMENTS MASSIFS-------------------------- XPRO1=0.D0 XPRO2=0.D0 DO I=1,NCONT XPRO1=XPRO1+W1(I)*SPHER1(I) XPRO2=XPRO2+W1(I)*SPHER2(I) ENDDO FIP=1.D0+(PSI-1.D0)*EXP(-OME*EPST) DELTA=PHI/DENOM DO I=1,NCONT DSIG(I)=-DELTA*W2(I) ENDDO DR=B*(RM-RR)*DELTA DP=DELTA ENDIF RR=RR+DR DO I=1,NCONT S(I)=S(I)+DSIG(I) SPHER1(I)=SPHER1(I)+DSPHER1(I) SPHER2(I)=SPHER2(I)+DSPHER2(I) SPHER(I)=SPHER1(I)+SPHER2(I) SX(I)=S(I)-SPHER(I) ENDDO C---------CONTRAINTES PLANES-------------------------------------------- IF(IFOURB.EQ.-2) THEN IF(MFR.EQ.1) THEN F(1)=(2.D0*SX(1)-SX(2)-SX(3))/3.D0 F(2)=(2.D0*SX(2)-SX(1)-SX(3))/3.D0 F(3)=(2.D0*SX(3)-SX(1)-SX(2))/3.D0 DO I=4,NSTRS F(I)=SX(I) ENDDO DO I=1,3 W1(I)=1.5D0*F(I)/SEQ ENDDO DO I=4,NSTRS W1(I)=3.D0*F(I)/SEQ ENDDO ELSE IF(MFR.EQ.3.OR.MFR.EQ.9) THEN AUX=EP1*EP1*EP1*EP1 W1(1)=(2.D0*SX(1)-SX(2))/(2.D0*SEQ*EP1*EP1) W1(2)=(2.D0*SX(2)-SX(1))/(2.D0*SEQ*EP1*EP1) W1(3)=18.D0*ALFAH*(2.D0*SX(3)-SX(4))/(SEQ*AUX) W1(4)=18.D0*ALFAH*(2.D0*SX(4)-SX(3))/(SEQ*AUX) ENDIF DO I=1,NSTRS DEPSP(I)=DEPSP(I)+DELTA*W1(I) ENDDO ENDIF C----------------------------------------------------------------------- C TEST C CALCUL DE LA NOUVELLE VALEUR DE PHI C----------------------------------------------------------------------- IF(INPLAS.EQ.5.OR.INPLAS.EQ.87) THEN ELSE ENDIF PETI=1.D-7 APHI=ABS(PHI) APHI0=ABS(PHI0) *sg TEST=PETI*APHI0 IF(NITER.GT.50) THEN KERRE=2 GO TO 1000 ENDIF IF(MFR.EQ.7) THEN DO I=1,NCONT S(I)=S(I)/DIV(I) ENDDO ENDIF C---------TOUTES FORMULATIONS SAUF CONTRAINTES PLANES------------------- IF(IFOURB.NE.-2) THEN DO I=1,NCONT DS(I)=S(I)-SIGB(I) ENDDO DO I=1,NCONT DEPSE(I)=DEPST(I)+DDEPSE(I) DEPSP(I)=DEPST(I)-DEPSE(I) ENDDO ENDIF DO I=1,NSTRS SIGF(I)=S(I) DEFP(I)=DEPSP(I) ENDDO C---------COQUES AVEC CISAILLEMENT TRANSVERSE--------------------------- IF(MFR.EQ.9) THEN DEFP(7)=0.D0 DEFP(8)=0.D0 SIGF(7)=SIGB(7) SIGF(8)=SIGB(8) ENDIF VARINF(1)=EPST IF(INPLAS.EQ.4.OR.INPLAS.EQ.7.OR.INPLAS.EQ.12) THEN DO I=1,NSTRS VARINF(I+1)=SPHER1(I) ENDDO IF(INPLAS.EQ.12) THEN DO I=1,NSTRS VARINF(NSTRS+1+I)=SPHER2(I) ENDDO ENDIF ENDIF IF(INPLAS.EQ.87) THEN DO I=1,NSTRS VARINF(1+I)=DEPST(I) ENDDO * WRITE(6,*) ' sortie ecoin0' * WRITE(6,*) 'depst',(depst(I),i=1,nstrs) * WRITE(6,*) 'depsp',(depsp(i),i=1,nstrs) ENDIF KERRE=0 RETURN ELSE GOTO 10 ENDIF C ENDIF 1000 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales