alon1
C ALON1 SOURCE OF166741 25/11/04 21:15:03 12349 . MFR1,IB,IGAU, . XMAT,SIG0,VAR0,SIGF,VARF,DEFP,KERRE,DSIGT, . SUCC1,SUCC2) *************************************************************** * * Modèle d'argile partiellement saturé de ALONSO et al * *************************************************************** * *_________________________________________________________________ * * * ENTREES : * --------- * * DEPST = INCREMENT DE DEFORMATIONS TOTALES * NSTRS = NBRE DE COMPOSANTES DES DEFORMATIONS * NCOMAT= NBRE DE CARACTERISTIQUES MECANIQUES DU MATERIAU * NVARI = NBRE DE VARIABLES INTERNES * MFR1 = NUMERO DE LA FORMULATION * IB = NUMERO DE L ELEMENT COURANT * IGAU = NUMERO DU POINT COURANT * SIG0(NSTRS) = CONTRAINTES AU DEBUT DU PAS D'INTEGRATION * VAR0(NVARI) = VARIABLES INTERNES AU DEBUT DU PAS DE TEMPS * XMAT(NCOMAT) = CARACTERISTIQUES MECANIQUES DU MATERIAU * SUCC1 SUCCION AU DEBUT DU PAS * SUCC2 SUCCION A LA FIN DU PAS * * SORTIE : * -------- * * SIGF(NSTRS) = CONTRAINTES FINALES * VARF(NVARI) = VARIALES INTERNES A LA FIN DU PAS D'INTEGRATION * DEFP(NSTRS) = INCREMENT DE DEFORMATION PLASTIQUE A LA FIN * DU PAS D'INTEGRATION * ============================================================ * ICI IL FAUT PROGRAMMER EN FORTRAN PUR *============================================================= * IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO DIMENSION SIG0(*),DEPST(*),VAR0(*),XMAT(*),SIGF(*), & VARF(*),DEFP(*),DSIGT(*) PARAMETER (c1s3 = 1.D0/3.D0) DIMENSION RSIG0(6),RDEPS0(6),RSIGF(6),RDEFP(6) DIMENSION DEPM(6),DEPEL(6),DEVT(6) REAL*8 LOGSUC * * Adaptation de l'option de calcul vers le 3D massif de SIG0 a RSIG0 *==================================================================== * IF (MFR1 .EQ. 1 .OR. MFR1 .EQ. 31) THEN * *---> 1 formulation massive *---> 2 formulation quasi incompressible *---> MASSIF 3D * IF (NSTRS .EQ. 6) THEN DO 110 I=1,NSTRS RSIG0(I)=SIG0(I) RDEPS0(I)=DEPST(I) 110 CONTINUE ELSE IF ( NSTRS .EQ. 4 .AND. ((IFOUR .EQ. 0) & .OR.(IFOUR .EQ. -1))) THEN * *---> Calcul en mode deformations planes ou axisymetrique * DO 115 I=1,NSTRS RSIG0(I)=SIG0(I) RDEPS0(I)=DEPST(I) 115 CONTINUE RSIG0(5)=0.D0 RSIG0(6)=0.D0 RDEPS0(5)=0.D0 RDEPS0(6)=0.D0 ENDIF ELSE KERRE = 99 RETURN ENDIF * * Passage des deformations de cisaillement exprimées * en GAMA aux déformations de cisaillement exprimées * en déformations RDEPS0(4)=RDEPS0(4)*0.5D0 RDEPS0(5)=RDEPS0(5)*0.5D0 RDEPS0(6)=RDEPS0(6)*0.5D0 * * Données du materiau *=========================================================== * YOUN0=XMAT(1) XNU0=XMAT(2) XKS0=XMAT(5) XLAM0=XMAT(6) XM0=XMAT(7) XKK0=XMAT(8) PC00=XMAT(9) P0=XMAT(10) XLAM1=XMAT(11) T0=XMAT(12) TAU0=XMAT(13) XG0=XMAT(14) XK0=XMAT(15) XE0=XMAT(16) * XXALF=XMAT(19) XXBET=XMAT(20) XXGAM=XMAT(3) XXPREF=XMAT(4) * * AM RHO ET ALPHA SONT DANS XMAT(17) ET XMAT(18) * CF BIZARRERIE DANS ECOU70 * * Quelques initialisations *============================================================== * * *---> Variables internes initiales * . déformation plastique équivalente * . pression de consolidation à l'état saturé * . limite élastique en succion * . succions initiale et finale * La succion finale est déstinée à etre calculée au préalable * dans un opérateur particulier indépendant de ECOULE * VOLU0=1.D0+XE0 PC0=VAR0(2) IF (PC0.LE.1.D-30) PC0=PC00 SLIM0=VAR0(3) ****************************** * MODIFICATION POUR LA SUCCION le 5/11/97 * IF (SUCC1.LT.-1.E34.AND.SUCC2.LT.-1.E34) THEN * * cas à succion constante : on la prend dans var0 * SUCI0=VAR0(4) VARF(4)=VAR0(4) ELSE SUCI0=SUCC1 VARF(4)=SUCC2 ENDIF SUCF0=VARF(4) * * TRAITEMENT DU CAS SATURE * PSAT0 =0.D0 PSAT1 =0.D0 IF(SUCI0.LT.0.D0) THEN PSAT0=-SUCI0 SUCI0=0.D0 ENDIF IF(SUCF0.LT.0.D0) THEN PSAT1=-SUCF0 SUCF0=0.D0 ENDIF * * PASSAGE EN CONTRAINTES EFFECTIVES * RSIG0(1)=RSIG0(1) + PSAT0 RSIG0(2)=RSIG0(2) + PSAT0 RSIG0(3)=RSIG0(3) + PSAT0 * * MODIF POUR REACTUALISER XKS0 EN FONCTION DE * LA PRESSION MOYENNE ET DE LA SUCCION * ON PREND LES VALEURS AU DEBUT DU PAS * IF(XXBET.NE.0.D0) THEN XTRR = ABS ( (RSIG0(1)+RSIG0(2)+RSIG0(3))*c1s3 ) XKS0 =XKS0*(1.D0-XXBET*LOG(XTRR/XXPREF)) & *EXP(-XXGAM*SUCI0) ENDIF * * AM 13/05/98 * ON MODIFIE LA LOI DE VARIATION DE K * ATTENTION : DANS LA FORMULE, LA SUCCION DOIT * ETRE EN MPA ET ON CONSIDERE QU'ELLE ARRIVE EN PA * ( CF COMMENTAIRE CI DESSOUS ) * ***** XK0= XK0*( 1.D0-XXALF*SUCI0) * SUCMPA = SUCI0 * 1.D-6 LOGSUC=0.D0 IF(SUCMPA.GT.1.D0) THEN LOGSUC=LOG(SUCMPA) ENDIF XK0= XK0*( 1.D0-XXALF*LOGSUC) * *---> Pression atmosphérique *ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ * ATTENTION : LA PRESSION ATMOSPHERIQUE EST EN Pa *ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ * Pat0=1.E5 * *---> Initialisation du logique de l'écrouissage en succion * succ0=vrai : il y a écrouissage en succion * SUCC0=-1.D0 * *---> Pente élasto-plastique (courbe de consolidation) * XLAM2=XLAM1*((1.D0-T0)*EXP(-1.D0*TAU0*SUCF0)+T0) * *---> Pression de saturation * PS0=XKK0*SUCF0 * * Déformation mécanique test *====================================================================== * *---> Trace de la déformation élastique de succion * TREPSS0=-XKS0/VOLU0*LOG((SUCF0+Pat0)/(SUCI0+Pat0)) * *---> Déformations mécaniques * A = TREPSS0*c1s3 DEPM(1)=RDEPS0(1)-A DEPM(2)=RDEPS0(2)-A DEPM(3)=RDEPS0(3)-A DEPM(4)=RDEPS0(4) DEPM(5)=RDEPS0(5) DEPM(6)=RDEPS0(6) * * Ecrouissage en succion ? *====================================================================== * IF ((SUCF0.GT.SLIM0).AND.(SUCC0.LE.0.D0)) THEN * * HYPOTHESE: on écrouit en succion * *---> Limite en succion à la fin du pas * SLIM1=SUCF0 * *---> Trace de la déformation plastique due à la succion * TREPPS0=(XKS0-XLAM0)/VOLU0*LOG((SLIM1+Pat0)/(SLIM0+Pat0)) * *---> Pression de consolidation * . à l'état saturé * . à la succion finale * PC1=PC0*EXP(-VOLU0/(XLAM1-XK0)*TREPPS0) PCS1=P0*(PC1/P0)**((XLAM1-XK0)/(XLAM2-XK0)) * *---> On vérifie l'hypothèse * * Déformations élastiques test et déformation plastique * A = TREPPS0*c1s3 DEPEL(1)=DEPM(1)-A DEPEL(2)=DEPM(2)-A DEPEL(3)=DEPM(3)-A DEPEL(4)=DEPM(4) DEPEL(5)=DEPM(5) DEPEL(6)=DEPM(6) RDEFP(1)=A RDEFP(2)=A RDEFP(3)=A RDEFP(4)=0.D0 RDEFP(5)=0.D0 RDEFP(6)=0.D0 * * Contraintes * PRES0= -c1s3*(RSIG0(1)+RSIG0(2)+RSIG0(3)) TREPS0=DEPEL(1)+DEPEL(2)+DEPEL(3) PRES1=PRES0*EXP(-VOLU0/XK0*TREPS0) DO 12 I=1,6 A=0.D0 IF (I.LE.3) A=1.D0 DEVT(I)=RSIG0(I)+PRES0*A DEVT(I)=DEVT(I)+2.D0*XG0*(DEPEL(I)-TREPS0*c1s3*A) RSIGF(I)=DEVT(I)-PRES1*A 12 CONTINUE * * Contrainte équivalente * IF (STEST2.LE.1.D-10) STEST2=0.D0 * * Fonction de charge * PHIT=STEST2+XM0*XM0*(PRES1+PS0)*(PRES1-PCS1) * * On vérifie qu'on est élastique * IF (PHIT.LE.0.D0) THEN VARF(1)=VAR0(1) VARF(2)=PC1 VARF(3)=SLIM1 GOTO 99 ELSE SUCC0=1.D0 GOTO 98 ENDIF * *---> Fin de la vérification de l'hypothèse * ENDIF * * Fin du traitement de l'écrouissage en succion *=========================================================================== * * Ecrouissage en pression *=========================================================================== * 98 CONTINUE IF ((SUCF0.LE.SLIM0).OR.(SUCC0.GT.0.D0)) THEN * . RSIGF,VARF,RDEFP,KERRE,IB,IGAU) * ENDIF * * Fin de l'écrouissage en pression *=========================================================================== * Passage des deformations de cisaillement exprimées * en déformations aux déformations de cisaillement exprimées * en GAMA * 99 CONTINUE RDEFP(4)=RDEFP(4)*2.D0 RDEFP(5)=RDEFP(5)*2.D0 RDEFP(6)=RDEFP(6)*2.D0 * * Passage a l'option de calcul pour les contraintes *========================================================= * IF (MFR1 .EQ. 1 .OR. MFR1 .EQ. 31) THEN * * RETOUR EN CONTRAINTES TOTALES * DO I=1,3 RSIGF(I)=RSIGF(I) - PSAT1 ENDDO DO 170 I=1,NSTRS SIGF(I)=RSIGF(I) DEFP(I)=RDEFP(I) 170 CONTINUE ENDIF * RETURN * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales