1 : C LISPP1 SOURCE CHAT 05/01/13 01:23:10 5004 2 : SUBROUTINE LISPP1(XN0,XM0,XNT,XMT,QSI,W,YOU,XNU,WORK, 3 : 1 XLAM0,PRECIS,XNE,XME,XNP,XMP,DLAM,KERRE) 4 : C======================================================================= 5 : C CALCULE L ECOULEMENT PLASTIQUE DANS LE CAS DU LINESPRING 6 : C ENTREES 7 : C XN0,XM0 = EFFORTS SUR LE DEBUT DU PAS 8 : C XNT,XMT = EFFORTS TOATAUX 9 : C QSI = RAPPORT PROFONDEUR DE FISSURE SUR EPAISSEUR 10 : C W = EPAISSEUR LINESPRING 11 : C YOU = MODULE D YOUNG 12 : C XNU = COEFFICIENT DE POISSON 13 : C SIG,XLAM = COURBE (SIG0,PHIP) 14 : C NCOURB = NOMBRE DE POINTS DE LA COURBE DE TRACTION 15 : C XLAM0 = PARAMETRE D ECROUISSAGE AU DEBUT DU PAS 16 : C PRECIS = PRECISION DES ITERATIONS 17 : C SORTIES 18 : C XNE,XME = EFFORTS FIN DU PAS SUR SURFACE DE CHARGE 19 : C XNP,XMP = DEFORMATIONS PLASTIQUES FIN DU PAS 20 : C DLAM = INCREMENT SUR LE PAS DU PARAMETRE D ECROUISSAGE 21 : C KERRE = INDICATEUR D ERREUR 22 : C EBERSOLT AVRIL 86 23 : C REVISION J. BROCHARD AOUT 90 ECOULEMENT NON ASSOCIE 24 : C 25 : C======================================================================= 26 : IMPLICIT INTEGER(I-N) 27 : IMPLICIT REAL*8(A-H,O-Z) 28 : SEGMENT/WORK/(SIG(NCOURB)*D,XLAM(NCOURB)*D) 29 : PARAMETER(UNSIX=.166666666666666D0,SIX=6.D0) 30 : PARAMETER(DEUX=2.D0,UNDEMI=.5D0,UN=1.D0,XZER=0.D0) 31 : PARAMETER(NITER=50,PENA=1.D6,EPSINV=1.D-3) 32 : C 33 : PREC=PRECIS*UNDEMI 34 : IBI=0 35 : C 36 : C 37 : C ON CALCULE LES PARAMETRES DE L ECOULEMENT 38 : C 39 : NCOURB=SIG(/1) 39 : CALL TRACTI(SIGMA0,XLAM0,SIG,XLAM,NCOURB,2,IBI) 40 : IF(IBI.EQ.1) THEN 41 : KERRE=75 42 : RETURN 43 : ENDIF 43 : CALL LISPPA(QSI,W,SIGMA0,GA,GB,A,B,C,D,E,F) 44 : C 45 : C CALCUL DE LA MATRICE DE HOOKE 46 : C 47 : DD2 = YOU*UNDEMI/(UN-XNU*XNU) 48 : IF(QSI.GT.EPSINV) THEN 48 : CALL LISPAL(QSI,ALMM,ALMF,ALFF,DELTA) 49 : C 50 : DDD = DD2/DELTA 51 : D11 = ALFF * DDD 52 : D12 =-ALMF * DDD * W * UNSIX 53 : D21 =-ALMF * DDD * W * UNSIX 54 : D22 = ALMM * DDD * W * W * UNSIX * UNSIX 55 : ELSE 56 : D11 =DD2*PENA*W 57 : D22 =DD2*PENA*W*W*W*UNSIX*UNDEMI 58 : D12 =XZER 59 : D21 =XZER 60 : ENDIF 61 : C 62 : C VARIABLE D ECROUISSAGE : ROTATION PLASTIQUE 63 : C RECHERCHE DE LA SOLUTION PAR DICHOTOMIE 64 : C ENTRE LE CAS TOUT ELASTIQUE ET LE CAS TOUT PLASTIQUE 65 : C 66 : XNE1=XNT 67 : XME1=XMT 68 : XNP1=XZER 69 : XMP1=XZER 70 : XLAM1=XLAM0 70 : CALL LISPQ(XNE1,XME1,W,SIGMA0,GA,GB,QSI,Q1) 71 : XNE2=XN0 72 : XME2=XM0 73 : XX1=XNT - XN0 74 : XX2=XMT - XM0 75 : DDX= 2.D0*(1.D0 -XNU* XNU)/YOU 76 : XNP2= ALMM*XX1 + ALMF*XX2*SIX/W 77 : XMP2= ALMF*XX1*SIX/W + ALFF*XX2*SIX*SIX/(W*W) 78 : XNP2= XNP2*DDX 79 : XMP2= XMP2*DDX 80 : ALPH= XNP2 / XMP2 81 : XLAM2=XLAM0+ABS(XMP2) 81 : CALL TRACTI(SIGMA2,XLAM2,SIG,XLAM,NCOURB,2,IBI) 82 : IF(IBI.EQ.1) THEN 83 : KERRE=75 84 : RETURN 85 : ENDIF 85 : CALL LISPQ(XNE2,XME2,W,SIGMA2,GA,GB,QSI,Q2) 86 : IF(ABS(Q2).LT.PREC) THEN 87 : XNE3=XNE2 88 : XME3=XME2 89 : XNP3=XNP2 90 : XMP3=XMP2 91 : GOTO 200 92 : ENDIF 93 : NBIT=0 94 : 100 CONTINUE 95 : NBIT=NBIT+1 96 : IF(NBIT.GT.NITER) THEN 97 : C 98 : C PAS DE CONVERGENCE EN MOINS DE NITER ITERATIONS 99 : C 100 : KERRE=2 101 : RETURN 102 : ENDIF 103 : DQ = (Q2 - Q1) / (XMP2 - XMP1) 104 : XMP3= XMP1 - Q1 / DQ 105 : XNP3= ALPH * XMP3 106 : XNE3=XNT - D11*XNP3 - D12*XMP3 107 : XME3=XMT - D21*XNP3 - D22*XMP3 108 : XLAM3=XLAM0+ABS(XMP3) 108 : CALL TRACTI(SIGMA3,XLAM3,SIG,XLAM,NCOURB,2,IBI) 109 : IF(IBI.EQ.1) THEN 110 : KERRE=75 111 : RETURN 112 : ENDIF 112 : CALL LISPQ(XNE3,XME3,W,SIGMA3,GA,GB,QSI,Q3) 113 : IF(ABS(Q3).LT.PREC) GOTO 200 114 : IF ((Q1*Q3).LT.XZER) THEN 115 : XNP2=XNP3 116 : XMP2=XMP3 117 : Q2=Q3 118 : GOTO 100 119 : ENDIF 120 : IF ((Q2*Q3).LT.XZER) THEN 121 : XNP1=XNP3 122 : XMP1=XMP3 123 : Q1=Q3 124 : GOTO 100 125 : ENDIF 126 : C 127 : C 128 : C ON A CONVERGE EN MOINS DE NITER ITERATIONS 129 : C 130 : 200 CONTINUE 131 : XNE=XNE3 132 : XME=XME3 133 : XNP=XNP3 134 : XMP=XMP3 135 : DLAM=ABS(XMP) 136 : C 137 : RETURN 138 : END 139 : 140 :
© Cast3M 2003 - All rights reserved.
Disclaimer