1 : C AVAN1 SOURCE CHAT 05/01/12 21:29:47 5004
2 : C----------------------------------------------------------------
3 : SUBROUTINE AVAN1(TAU,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,
4 : + EPSVPT,VARPT,XPM,DSPT,
5 : + XMAT,NSTRS0,NVARI,NCOMAT,IFOUR,IVTEST,
6 : + MFR)
7 : C
8 : IMPLICIT INTEGER(I-N)
9 : IMPLICIT REAL*8(A-H,O-Z)
10 : DIMENSION SIG(*),EPSV(*),VAR(*),SIG1(*),EPSV1(*),VAR1(*)
11 : DIMENSION EPSVPT(*),VARPT(*),XPM(*),DSPT(*),XMAT(*)
12 : DIMENSION XX(6),EPSV0(6),EPSV00(6)
13 : C----------------------------------------------------------------
14 : C ====> connaissant l'{tat, c'est @ dire SIG, EPSV et VAR
15 : C ainsi que les deriv{es EPSVPT, VARPT et DSPT
16 : C on calcule l'{tat SIG1, EPSV1, VAR1 au temps T + TAU
17 : C----------------------------------------------------------------
18 : C
19 : NSTRS=NSTRS0
20 : C
21 : C------ AFFECTATION DE QUELQUES VARIABLES
22 : YOU = XMAT(1)
23 : XNU = XMAT(2)
24 : XM = XMAT(10)
25 : AN = XMAT(17)
26 : C
27 : C------- MAJ DE EPSV
28 : DO 30 I =1,NSTRS
29 : EPSV1(I) = EPSV(I) + TAU*EPSVPT(I)
30 : 30 CONTINUE
31 : C
32 : C------- MAJ DE SIG
33 : C SIG1 = SIG + T.(E:EPSPT - E:EPSVPT ) , DSPT = E:EPSPT
34 : C cas des contraintes planes
35 : IF (IFOUR.EQ.-2) THEN
36 : SIG(3) = 0.0
37 : X2MU = YOU/(1.+XNU)
38 : XCO = X2MU/(1.-XNU)
39 : SIG1(1) =SIG(1) + TAU*(DSPT(1)- XCO*(EPSVPT(1)+XNU*EPSVPT(2)))
40 : SIG1(2) =SIG(2) + TAU*(DSPT(2)- XCO*(EPSVPT(2)+XNU*EPSVPT(1)))
41 : SIG1(4) =SIG(4) + TAU*(DSPT(4)- X2MU*EPSVPT(4))
42 : SIG1(3) = 0.0
43 : C cas tri dim
44 : ELSEIF (IFOUR.EQ.2.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-1.OR.
45 : & IFOUR.EQ.1.OR.IFOUR.EQ.-3) THEN
46 : IF (MFR.EQ.5) THEN
47 : X2MU=YOU/(1.0+XNU)
48 : XCO = X2MU/(1.0-XNU)
49 : SIG1(1)=SIG(1)+TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2)))
50 : SIG1(2)=SIG(2)+TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1)))
51 : SIG1(3)=SIG(3)+TAU*(DSPT(3)-X2MU*EPSVPT(3))
52 : SIG1(4)=SIG(4)+TAU*(DSPT(4)-X2MU*EPSVPT(4))
53 : SIG1(5)=SIG(5)+TAU*(DSPT(5)-X2MU*EPSVPT(5))
54 : ELSE
55 : TRACE = EPSVPT(1)+EPSVPT(2)+EPSVPT(3)
56 : X2MU = YOU/(1+XNU)
57 : XLAMB = X2MU*XNU/(1-2*XNU)
58 : DO 31 I=1,NSTRS
59 : A = 0.0
60 : IF (I.LE.3) A=1.0
61 : SIG1(I) = SIG(I) + TAU*(DSPT(I)-XLAMB*A*TRACE-X2MU*EPSVPT(I))
62 : 31 CONTINUE
63 : ENDIF
64 : C= Modes de calcul 1D contraintes planes suivant z (DYCZ et GYCZ)
65 : ELSE IF (IFOUR.EQ.4.OR.IFOUR.EQ.8) THEN
66 : SIG(3) = 0.
67 : XCO = YOU/(1.-XNU*XNU)
68 : SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2)))
69 : SIG1(2) = SIG(2) + TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1)))
70 : SIG1(3) = 0.
71 : C= Modes de calcul 1D contraintes planes suivant y (CYDZ et CYGZ) et
72 : C= 1D axisymetrique contraintes axiales nulles (AXCZ)
73 : ELSE IF (IFOUR.EQ.5.OR.IFOUR.EQ.10.OR.IFOUR.EQ.13) THEN
74 : SIG(2) = 0.
75 : XCO = YOU/(1.-XNU*XNU)
76 : SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(3)))
77 : SIG1(2) = 0.
78 : SIG1(3) = SIG(3) + TAU*(DSPT(3)-XCO*(EPSVPT(3)+XNU*EPSVPT(1)))
79 : C= Modes de calcul 1D contraintes planes suivant y et z (CYCZ)
80 : ELSE IF (IFOUR.EQ.6) THEN
81 : SIG(2) = 0.
82 : SIG(3) = 0.
83 : SIG1(1) = SIG(1) + TAU*(DSPT(1)-YOU*EPSVPT(1))
84 : SIG1(2) = 0.
85 : SIG1(3) = 0.
86 : C= Autres modes de calcul 1D deformations planes (DYDZ GYDZ DYGZ GYGZ)
87 : C= 1D axisymetrique (AXDZ AXGZ) et 1D spherique
88 : ELSE IF (IFOUR.EQ. 3.OR.IFOUR.EQ. 7.OR.IFOUR.EQ. 9.OR.IFOUR.EQ.11
89 : . .OR.IFOUR.EQ.12.OR.IFOUR.EQ.14.OR.IFOUR.EQ.15) THEN
90 : X2MU = YOU/(1.+XNU)
91 : TRACE = EPSVPT(1)+EPSVPT(2)+EPSVPT(3)
92 : XCO = X2MU*XNU*TRACE/(1.-XNU)
93 : SIG1(1) = SIG(1) + TAU*(DSPT(1)-X2MU*EPSVPT(1)-XCO)
94 : SIG1(2) = SIG(2) + TAU*(DSPT(2)-X2MU*EPSVPT(2)-XCO)
95 : SIG1(3) = SIG(3) + TAU*(DSPT(3)-X2MU*EPSVPT(3)-XCO)
96 : ELSE
97 : WRITE(*,*) 'CAS NON PREVU DANS AVAN1 (GUIONNET)'
98 : STOP
99 : ENDIF
100 : C
101 : C------ SAUVEGARDE DE VAR, MEMOIRE COMPRISE
102 : DO 32 I=1,NVARI,1
103 : VAR1(I) = VAR(I)
104 : 32 CONTINUE
105 : C
106 : C il n'y a que 4+NSTRS valeurs dans VARPT,
107 : C
108 : C------ MAJ DE VAR(1..4)
109 : IF (MFR.EQ.5) THEN
110 : NSTRS=NSTRS0+1
111 : EPSV0(1)=EPSV1(1)
112 : EPSV0(2)=EPSV1(2)
113 : EPSV0(3)=-1.*(EPSV0(1)+EPSV0(2))
114 : EPSV0(4)=EPSV1(3)
115 : EPSV0(5)=EPSV1(4)
116 : EPSV0(6)=EPSV1(5)
117 : EPSV00(1)=EPSV(1)
118 : EPSV00(2)=EPSV(2)
119 : EPSV00(3)=-1.*(EPSV00(1)+EPSV00(2))
120 : EPSV00(4)=EPSV(3)
121 : EPSV00(5)=EPSV(4)
122 : EPSV00(6)=EPSV(5)
123 : ELSE
124 : NSTRS=NSTRS0
125 : DO 01 I=1,NSTRS
126 : EPSV0(I)=EPSV1(I)
127 : EPSV00(I)=EPSV(I)
128 : 01 CONTINUE
129 : ENDIF
130 : VAR1(1) = VAR(1) + TAU*VARPT(1)
131 : VAR1(2) = VAR(2) + TAU*VARPT(2)
132 : C Chargement cyclique ?
133 : IF (VAR(2).LT.VAR(5+NSTRS)) THEN
134 : VAR1(3) = VAR(3) + TAU*VARPT(3)
135 : VAR1(4) = VAR(4) + TAU*VARPT(4)
136 : ELSE
137 : DPN = VAR1(2)**AN - VAR(2)**AN
138 : VAR1(3) = VAR(3) + DPN
139 : VAR1(4) = VAR(4) + DPN
140 : ENDIF
141 : C
142 : C------ MAJ DE VAR(4+1..NSTRS)
143 : C D X = XPM * D P**XM + XPT * D T
144 : C P1 = VAR(2)
145 : DPM = VAR1(2)**XM - VAR(2)**XM
146 : DO 34 I=1,NSTRS,1
147 : VAR1(4+I) = VAR(4+I) + XPM(I)*DPM + VARPT(4+I)*TAU
148 : 34 CONTINUE
149 : C
150 : C CRITERE D'INVERSION : EXTREMUM D'UNE DES COMPOSANTES DU TENSEUR
151 : C DES DEFORMATIONS VISCOPLASTIQUES
152 : C
152 : CALL GIOCRT(EPSV0,EPSV00,NSTRS,VAR1,NVARI,IVTEST)
153 : C
154 : RETURN
155 : END
156 :
157 :
158 :
159 :
160 :
161 :
162 :
163 :
164 :
© Cast3M 2003 - All rights reserved.
Disclaimer