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