36
37
38
39
40
41
42
43
44
45
46
47
49
50
51
52#include "implicit_f.inc"
53
54
55
56#include "mvsiz_p.inc"
57
58
59
60#include "vect01_c.inc"
61#include "com01_c.inc"
62#include "param_c.inc"
63
64
65
66
67
68
69
70
71
72
73 INTEGER :: IXS(NIXS,*),NV46,IPM(NPROPMI,*),NEL
74 my_real :: vol(mvsiz),dxx(mvsiz),dyy(mvsiz), dzz(mvsiz),x(3,*)
75 my_real :: n1x(*), n2x(*), n3x(*), n4x(*), n5x(*), n6x(*),
76 . n1y(*), n2y(*), n3y(*), n4y(*), n5y(*), n6y(*),
77 . n1z(*), n2z(*), n3z(*), n4z(*), n5z(*), n6z(*)
78
79
80
81 INTEGER :: I, II, MT, IALEFVM_FLG
82 my_real :: vface(3,6), gradv(3,3), epsdot(6)
83 INTEGER :: NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ),NC4(MVSIZ),NC5(MVSIZ),NC6(MVSIZ),NC7(MVSIZ),NC8(MVSIZ)
84 my_real :: x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz), x5(mvsiz), x6(mvsiz), x7(mvsiz), x8(mvsiz),
85 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz), y5(mvsiz), y6(mvsiz), y7(mvsiz), y8(mvsiz),
86 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz), z5(mvsiz), z6(mvsiz), z7(mvsiz), z8(mvsiz)
87
88 LOGICAL :: debug_outp
89 INTEGER :: idbf,idbl
90
91
92
94 mt = ixs(1,nft+1)
95 ialefvm_flg = ipm(251,mt)
96 IF(ialefvm_flg <= 1)RETURN
97 epsdot(1:6) = zero
98
99
100
101
102
103
104
105 IF(jale==1)THEN
106 DO i=1,nel
107 ii = i + nft
108
109 nc1(i)=ixs(2,ii)
110 nc2(i)=ixs(3,ii)
111 nc3(i)=ixs(4,ii)
112 nc4(i)=ixs(5,ii)
113 nc5(i)=ixs(6,ii)
114 nc6(i)=ixs(7,ii)
115 nc7(i)=ixs(8,ii)
116 nc8(i)=ixs(9,ii)
117
118
119 x1(i)=x(1,nc1(i))
120 y1(i)=x(2,nc1(i))
121 z1(i)=x(3,nc1(i))
122
123 x2(i)=x(1,nc2(i))
124 y2(i)=x(2,nc2(i))
125 z2(i)=x(3,nc2(i))
126
127 x3(i)=x(1,nc3(i))
128 y3(i)=x(2,nc3(i))
129 z3(i)=x(3,nc3(i))
130
131 x4(i)=x(1,nc4(i))
132 y4(i)=x(2,nc4(i))
133 z4(i)=x(3,nc4(i))
134
135 x5(i)=x(1,nc5(i))
136 y5(i)=x(2,nc5(i))
137 z5(i)=x(3,nc5(i))
138
139 x6(i)=x(1,nc6(i))
140 y6(i)=x(2,nc6(i))
141 z6(i)=x(3,nc6(i))
142
143 x7(i)=x(1,nc7(i))
144 y7(i)=x(2,nc7(i))
145 z7(i)=x(3,nc7(i))
146
147 x8(i)=x(1,nc8(i))
148 y8(i)=x(2,nc8(i))
149 z8(i)=x(3,nc8(i))
150 ENDDO
151 DO i=1,nel
152
153 n1x(i)=(y3(i)-y1(i))*(z2(i)-z4(i)) - (z3(i)-z1(i))*(y2(i)-y4(i))
154 n1y(i)=(z3(i)-z1(i))*(x2(i)-x4(i)) - (x3(i)-x1(i))*(z2(i)-z4(i))
155 n1z(i)=(x3(i)-x1(i))*(y2(i)-y4(i)) - (y3(i)-y1(i))*(x2(i)-x4(i))
156
157 n2x(i)=(y7(i)-y4(i))*(z3(i)-z8(i)) - (z7(i)-z4(i))*(y3(i)-y8(i))
158 n2y(i)=(z7(i)-z4(i))*(x3(i)-x8(i)) - (x7(i)-x4(i))*(z3(i)-z8(i))
159 n2z(i)=(x7(i)-x4(i))*(y3(i)-y8(i)) - (y7(i)-y4(i))*(x3(i)-x8(i))
160
161 n3x(i)=(y6(i)-y8(i))*(z7(i)-z5(i)) - (z6(i)-z8(i))*(y7(i)-y5(i))
162 n3y(i)=(z6(i)-z8(i))*(x7(i)-x5(i)) - (x6(i)-x8(i))*(z7(i)-z5(i))
163 n3z(i)=(x6(i)-x8(i))*(y7(i)-y5(i)) - (y6(i)-y8(i))*(x7(i)-x5(i))
164
165 n4x(i)=(y2(i)-y5(i))*(z6(i)-z1(i)) - (z2(i)-z5(i))*(y6(i)-y1(i))
166 n4y(i)=(z2(i)-z5(i))*(x6(i)-x1(i)) - (x2(i)-x5(i))*(z6(i)-z1(i))
167 n4z(i)=(x2(i)-x5(i))*(y6(i)-y1(i)) - (y2(i)-y5(i))*(x6(i)-x1(i))
168
169 n5x(i)=(y7(i)-y2(i))*(z6(i)-z3(i)) - (z7(i)-z2(i))*(y6(i)-y3(i))
170 n5y(i)=(z7(i)-z2(i))*(x6(i)-x3(i)) - (x7(i)-x2(i))*(z6(i)-z3(i))
171 n5z(i)=(x7(i)-x2(i))*(y6(i)-y3(i)) - (y7(i)-y2(i))*(x6(i)-x3(i))
172
173 n6x(i)=(y8(i)-y1(i))*(z4(i)-z5(i)) - (z8(i)-z1(i))*(y4(i)-y5(i))
174 n6y(i)=(z8(i)-z1(i))*(x4(i)-x5(i)) - (x8(i)-x1(i))*(z4(i)-z5(i))
175 n6z(i)=(x8(i)-x1(i))*(y4(i)-y5(i)) - (y8(i)-y1(i))*(x4(i)-x5(i))
176 ENDDO
177 ENDIF
178
179
180
181
182 DO i=1,nel
183 ii = i + nft
190 ENDDO
191
192
193
194
195
196
197
198
199
200
201
202 DO i=1,nel
203 ii=i+nft
204 gradv(1,1) = half/vol(i) * ( vface(1,1)*n1x(i) + vface(1,2)*n2x(i) + vface(1,3)*n3x(i)
205 . + vface(1,4)*n4x(i) + vface(1,5)*n5x(i) + vface(1,6)*n6x(i) )
206 gradv(1,2) = half/vol(i) * ( vface(1,1)*n1y(i) + vface(1,2)*n2y(i) + vface(1,3)*n3y(i)
207 . + vface(1,4)*n4y(i) + vface(1,5)*n5y(i) + vface(1,6)*n6y(i) )
208 gradv(1,3) = half/vol(i) * ( vface(1,1)*n1z(i) + vface(1,2)*n2z(i) + vface(1,3)*n3z(i)
209 . + vface(1,4)*n4z(i) + vface(1,5)*n5z(i) + vface(1,6)*n6z(i) )
210
211 gradv(2,1) = half/vol(i) * ( vface(2,1)*n1x(i) + vface(2,2)*n2x(i) + vface(2,3)*n3x(i)
212 . + vface(2,4)*n4x(i) + vface(2,5)*n5x(i) + vface(2,6)*n6x(i) )
213 gradv(2,2) = half/vol(i) * ( vface(2,1)*n1y(i) + vface(2,2)*n2y(i) + vface(2,3)*n3y(i)
214 . + vface(2,4)*n4y(i) + vface(2,5)*n5y(i) + vface(2,6)*n6y(i) )
215 gradv(2,3) = half/vol(i) * ( vface(2,1)*n1z(i) + vface(2,2)*n2z(i) + vface(2,3)*n3z(i)
216 . + vface(2,4)*n4z(i) + vface(2,5)*n5z(i) + vface(2,6)*n6z(i) )
217
218 gradv(3,1) = half/vol(i) * ( vface(3,1)*n1x(i) + vface(3,2)*n2x(i) + vface(3,3)*n3x(i)
219 . + vface(3,4)*n4x(i) + vface(3,5)*n5x(i) + vface(3,6)*n6x(i) )
220 gradv(3,2) = half/vol(i) * ( vface(3,1)*n1y(i) + vface(3,2)*n2y(i) + vface(3,3)*n3y(i)
221 . + vface(3,4)*n4y(i) + vface(3,5)*n5y(i) + vface(3,6)*n6y(i) )
222 gradv(3,3) = half/vol(i) * ( vface(3,1)*n1z(i) + vface(3,2)*n2z(i) + vface(3,3)*n3z(i)
223 . + vface(3,4)*n4z(i) + vface(3,5)*n5z(i) + vface(3,6)*n6z(i) )
224
225 epsdot(1) = gradv(1,1)
226 epsdot(2) = gradv(2,2)
227 epsdot(3) = gradv(3,3)
228 epsdot(4) = half*(gradv(1,2)+gradv(2,1))
229 epsdot(5) = half*(gradv(2,3)+gradv(3,2))
230 epsdot(6) = half*(gradv(1,3)+gradv(3,1))
231
232 dxx(i) = epsdot(1)
233 dyy(i) = epsdot(2)
234 dzz(i) = epsdot(3)
235
236
237 dxx(i) = zero
238 dyy(i) = zero
239 dzz(i) = zero
240
241 ENDDO
242
243
244
246 debug_outp = .false.
248 do i=lft,llt
249 ii = nft + i
251 debug_outp = .true.
252 idbf = i
253 idbl = i
254 EXIT
255 endif
256 enddo
258 debug_outp=.true.
259 idbf = lft
260 idbl = llt
261 endif
262 if(debug_outp)then
263
264 print *, " |----alefvm_stress.F-----|"
265 print *, " | THREAD INFORMATION |"
266 print *, " |------------------------|"
267 print *, " NCYCLE =", ncycle
268 do i=idbf,idbl
269 ii = nft + i
270 print *, " brique=", ixs(11,nft+i)
271 write(*,fmt='(A24,1A26)') " ",
272 . "#-stress Tensor (P+VIS+Q)#"
273
274
275
276
277
278
279
280
281 write (*,fmt='(A,1E26.14 )') " tr(Eps_dot)/3. = ", third*(epsdot(1)+epsdot(2)+epsdot(3))
282
283 enddo
284
285 endif
286 endif
287
288
289 RETURN
type(alefvm_buffer_), target alefvm_buffer
type(alefvm_param_), target alefvm_param