1 : C VPARF SOURCE CHAT 05/01/13 04:09:39 5004 2 : SUBROUTINE VPARF(YOUNG,POISSON,Y,CK,CN,RSIG0,RDSIG,RDEFP, 3 : & RSIGF,DT) 4 : C 5 : C ================================================================== 6 : C CE SOUS-PROGRAMME REALISE L'INTEGRATION DE LA LOI DE VISCOPLASTICITE 7 : C 8 : C ENTREES: 9 : C ------- 10 : C YOUNG 11 : C POISSON 12 : C Y limite elastique 13 : C CK coefficient de viscosite 14 : C CN puissance de la loi d'ecoulement 15 : C RSIG0(6) = CONTR. AU DEBUT DU PAS D'INTEGRATION 16 : C RDSIG(6) = INCREMENT DES CONTR. CALCULE ELASTIQUEMENT 17 : C A PARTIR DE L'INCREMENT DES DEFORM. TOTALES 18 : C 19 : C SORTIES: 20 : C ------- 21 : C RSIGF(NSTRS)= CONTR. A LA FIN DU PAS D'INTEGRATION 22 : C RDEFP(NSTRS)= INCREMENT DES DEFORM. PLASTIQUES A LA FIN DU PAS 23 : C D'INTEGRATION 24 : C 25 : IMPLICIT INTEGER(I-N) 26 : IMPLICIT REAL*8(A-H,O-Z) 27 : DIMENSION RSIG0(6),RDSIG(6),RDEFP(6),RSIGF(6),RSIGTR(6) 28 : DIMENSION COEF(6) 29 : F(X,A,B,C,D,E,G) = X + 2.D0*G*B*((X-A)/C)**D - E 30 : c a c'est y 31 : c b c'est mu 32 : c c c'est k 33 : c d c'est cn 34 : c e c'est seqtr 35 : c g c'est dt 36 : c 37 : c executable 38 : * 39 : DATA COEF/1.D0,1.D0,1.D0,2.D0,2.D0,2.D0/ 40 : * 41 : DO 5 I=1,6 42 : RDEFP(I) = 0.D0 43 : RSIGF(I) = 0.D0 44 : 5 CONTINUE 45 : CMU = YOUNG / 2.D0 / (1.d0 +POISSON) 46 : DO 10 I=1,6 47 : RSIGTR(I) = RSIG0(I) + RDSIG(I) 48 : 10 CONTINUE 49 : c 50 : c partie hydrostatique du trial stress 51 : PTR = (RSIGTR(1) + RSIGTR(2) + RSIGTR(3))/3.D0 52 : c 53 : c on calcul la partie deviatorique du trial stress 54 : DO 20 I=1,3 55 : RSIGTR(I) = RSIGTR(I) - PTR 56 : 20 CONTINUE 57 : c 58 : c contrainte equivalente du trial stress 59 : SEQTR = 0.D0 60 : DO 30 I=1,6 61 : SEQTR = SEQTR + RSIGTR(I)*RSIGTR(I)*COEF(I) 62 : 30 CONTINUE 63 : SEQTR = SQRT( 1.5D0 * SEQTR) 64 : c 65 : IF ( SEQTR .GT. Y ) THEN 66 : c le materiau subit une evolution nonlineaire 67 : c 68 : c ordre de grandeur de l'equation pour la convergence 69 : ODG = ABS (Y-SEQTR) 70 : c resolution de l'equation f(x) = 0 71 : X1 = Y 72 : X2 = SEQTR 73 : c Y1 = F(X1,Y,CMU,CK,CN,SEQTR,DT) 74 : c Y2 = F(X2,Y,CMU,CK,CN,SEQTR,DT) 75 : c 76 : DO 40 I=1,200 77 : c resolution par dicotomie 78 : c X3 = X1 + abs((X2 - X1)*Y1/ (Y2-Y1)) 79 : X3 = (X1 +X2) /2.d0 80 : Y3 = F(X3,Y,CMU,CK,CN,SEQTR,DT) 81 : IF ( Y3 .GT. (1.D-4*ODG) ) THEN 82 : X2 = X3 83 : c Y2 = Y3 84 : ELSE IF ( Y3 .LT. (-1.D-4*ODG) ) THEN 85 : X1 = X3 86 : c Y1 = Y3 87 : ELSE 88 : c on a converge 89 : GOTO 50 90 : ENDIF 91 : 40 CONTINUE 91 : CALL ERREUR(268) 92 : c write (*,1000) young,poisson,y,ck,cn 93 : c 1000 format('E=',1X,G12.7,1X,'Nu=',G12.7,1X,'Y=',G12.7/ 94 : c & 'K=',G12.7,1X,'N=',G12.7) 95 : c WRITE(*,1001) X1,X2 96 : c WRITE(*,1001) Y1,Y2 97 : c 1001 format('X1=',G12.7,' X2=',G12.7) 98 : c Print *, 'AIE CA NE CONVERGE PAS' 99 : 50 CONTINUE 100 : * 101 : AMPLI = X3 / SEQTR 102 : DO 60 I=1,6 103 : RSIGF(I) = RSIGTR(I) * AMPLI 104 : 60 CONTINUE 105 : AMPLI = (1.D0/AMPLI -1.D0) / 2.D0 / CMU 106 : DO 70 I=1,6 107 : RDEFP(I) = RSIGF(I) * AMPLI * COEF(I) 108 : 70 CONTINUE 109 : c de deviatorique a complet 110 : DO 80 I=1,3 111 : RSIGF(I) = RSIGF(I) + PTR 112 : 80 CONTINUE 113 : c verification 114 : c zero = rsigtr(1) - rsigf(1)+ptr - 2.d0*cmu*rdefp(1) 115 : c if ( (abs(zero)) .GT. 1.d-3 ) then 116 : c print *, 'ouille',zero 117 : c endif 118 : ELSE 119 : c l'evolution est elastique 120 : DO 90 I=1,6 121 : RSIGF(I) = RSIGTR(I) 122 : 90 CONTINUE 123 : DO 100 I=1,3 124 : RSIGF(I) = RSIGF(I) + PTR 125 : 100 CONTINUE 126 : ENDIF 127 : c 128 : RETURN 129 : END 130 : 131 : 132 :
© Cast3M 2003 - All rights reserved.
Disclaimer