OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sfint3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "inter22.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine sfint3 (sig, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px5, px6, px7, px8, py5, py6, py7, py8, pz5, pz6, pz7, pz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, vol, qvis, n1x, n2x, n3x, n4x, n5x, n6x, n1y, n2y, n3y, n4y, n5y, n6y, n1z, n2z, n3z, n4z, n5z, n6z, dfe, pbak, ixs, nel, nft, jale, jeul, svis)

Function/Subroutine Documentation

◆ sfint3()

subroutine sfint3 ( sig,
px1,
px2,
px3,
px4,
py1,
py2,
py3,
py4,
pz1,
pz2,
pz3,
pz4,
px5,
px6,
px7,
px8,
py5,
py6,
py7,
py8,
pz5,
pz6,
pz7,
pz8,
f11,
f21,
f31,
f12,
f22,
f32,
f13,
f23,
f33,
f14,
f24,
f34,
f15,
f25,
f35,
f16,
f26,
f36,
f17,
f27,
f37,
f18,
f28,
f38,
vol,
qvis,
n1x,
n2x,
n3x,
n4x,
n5x,
n6x,
n1y,
n2y,
n3y,
n4y,
n5y,
n6y,
n1z,
n2z,
n3z,
n4z,
n5z,
n6z,
dfe,
pbak,
integer, dimension(nixs,*) ixs,
integer nel,
integer, intent(in) nft,
integer, intent(in) jale,
integer, intent(in) jeul,
intent(inout) svis )

Definition at line 33 of file sfint3.F.

54C-----------------------------------------------
55C D e s c r i p t i o n
56C-----------------------------------------------
57 !-------------------------------------------------!
58 ! ISFINT=1 : volume integration for SIG_total !
59 ! ISFINT=2 : volume integration for SIG_dev only !
60 ! ISFINT=3 : surface integration for SIG_total !
61 !-------------------------------------------------!
62C-----------------------------------------------
63C M o d u l e s
64C-----------------------------------------------
65 USE alefvm_mod , only:alefvm_param
66 USE ale_mod
67 use element_mod , only : nixs
68C-----------------------------------------------
69C I m p l i c i t T y p e s
70C-----------------------------------------------
71#include "implicit_f.inc"
72C-----------------------------------------------
73C G l o b a l P a r a m e t e r s
74C-----------------------------------------------
75#include "mvsiz_p.inc"
76C-----------------------------------------------
77C C o m m o n B l o c k s
78C-----------------------------------------------
79#include "com01_c.inc"
80#include "inter22.inc"
81C-----------------------------------------------
82C D u m m y A r g u m e n t s
83C-----------------------------------------------
84 INTEGER, INTENT(IN) :: NFT
85 INTEGER, INTENT(IN) :: JALE
86 INTEGER, INTENT(IN) :: JEUL
87 INTEGER IXS(NIXS,*),NEL
89 . sig(nel,6),
90 . px1(*), px2(*), px3(*), px4(*),
91 . py1(*), py2(*), py3(*), py4(*),
92 . pz1(*), pz2(*), pz3(*), pz4(*),
93 . px5(*), px6(*), px7(*), px8(*),
94 . py5(*), py6(*), py7(*), py8(*),
95 . pz5(*), pz6(*), pz7(*), pz8(*),
96 . f11(*),f21(*),f31(*),f12(*),f22(*),f32(*),
97 . f13(*),f23(*),f33(*),f14(*),f24(*),f34(*),
98 . f15(*),f25(*),f35(*),f16(*),f26(*),f36(*),
99 . f17(*),f27(*),f37(*),f18(*),f28(*),f38(*),
100 . vol(*),qvis(*)
101 my_real
102 . n1x(*), n2x(*), n3x(*), n4x(*), n5x(*), n6x(*),
103 . n1y(*), n2y(*), n3y(*), n4y(*), n5y(*), n6y(*),
104 . n1z(*), n2z(*), n3z(*), n4z(*), n5z(*), n6z(*),
105 . dfe(mvsiz,3),pbak(mvsiz),
106 . tx,ty,tz
107 my_real, DIMENSION(MVSIZ,6), INTENT(INOUT) :: svis
108C-----------------------------------------------
109C L o c a l V a r i a b l e s
110C-----------------------------------------------
111 INTEGER I
112 my_real s1(mvsiz), s2(mvsiz), s3(mvsiz),s4(mvsiz), s5(mvsiz), s6(mvsiz),fint,qvis_loc,vol_loc,p(mvsiz)
113C-----------------------------------------------
114
115 !-------------------------------------------------!
116 ! ISFINT=3 : surface integration for SIG_total !
117 !-------------------------------------------------!
118 IF(ale%GLOBAL%ISFINT==3 .AND. jale+jeul/=0)THEN
119 !------------------------------!
120 ! TOTAL STRESS TENSOR !
121 !------------------------------!
122 DO i=1,nel
123 qvis_loc = qvis(i)
124 s1(i)=sig(i,1)+svis(i,1)-qvis_loc
125 s2(i)=sig(i,2)+svis(i,2)-qvis_loc
126 s3(i)=sig(i,3)+svis(i,3)-qvis_loc
127 s4(i)=sig(i,4)+svis(i,4)
128 s5(i)=sig(i,5)+svis(i,5)
129 s6(i)=sig(i,6)+svis(i,6)
130 ENDDO
131 !------------------------------!
132 ! PRESSURE !
133 !------------------------------!
134 DO i=1,nel
135 p(i)=third*(s1(i)+s2(i)+s3(i))
136 pbak(i)=one_over_8*p(i)
137 ENDDO
138 !------------------------------!
139 ! DIV(SIGMA) !
140 !------------------------------!
141 ! Integral ( div(sigma) ) dV = Integral (sigma:n) dS
142 DO i=1,nel
143 ! node-1 : faces 1,4,6
144 tx=n1x(i)+n4x(i)+n6x(i)
145 ty=n1y(i)+n4y(i)+n6y(i)
146 tz=n1z(i)+n4z(i)+n6z(i)
147 f11(i)=f11(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
148 !print *, "ID,FINT(11)=", IXS(11,I+NFT), -ONE_OVER_8*(S1(I)*TX + S4(I)*TY + S6(I)*TZ)
149 f21(i)=f21(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
150 f31(i)=f31(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
151 ! node-2 : faces 1,4,5
152 tx=n1x(i)+n4x(i)+n5x(i)
153 ty=n1y(i)+n4y(i)+n5y(i)
154 tz=n1z(i)+n4z(i)+n5z(i)
155 f12(i)=f12(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
156 f22(i)=f22(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
157 f32(i)=f32(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
158 ! node-3 : faces 1,2,5
159 tx=n1x(i)+n2x(i)+n5x(i)
160 ty=n1y(i)+n2y(i)+n5y(i)
161 tz=n1z(i)+n2z(i)+n5z(i)
162 f13(i)=f13(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
163 f23(i)=f23(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
164 f33(i)=f33(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
165 ! node-4 : faces 1,2,6
166 tx=n1x(i)+n2x(i)+n6x(i)
167 ty=n1y(i)+n2y(i)+n6y(i)
168 tz=n1z(i)+n2z(i)+n6z(i)
169 f14(i)=f14(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
170 f24(i)=f24(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
171 f34(i)=f34(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
172 ! node-5 : faces 3,4,6
173 tx=n3x(i)+n4x(i)+n6x(i)
174 ty=n3y(i)+n4y(i)+n6y(i)
175 tz=n3z(i)+n4z(i)+n6z(i)
176 f15(i)=f15(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
177 f25(i)=f25(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
178 f35(i)=f35(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
179 ! node-6 : faces 3,4,5
180 tx=n3x(i)+n4x(i)+n5x(i)
181 ty=n3y(i)+n4y(i)+n5y(i)
182 tz=n3z(i)+n4z(i)+n5z(i)
183 f16(i)=f16(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
184 f26(i)=f26(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
185 f36(i)=f36(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
186 ! node-7 : faces 2,3,5
187 tx=n2x(i)+n3x(i)+n5x(i)
188 ty=n2y(i)+n3y(i)+n5y(i)
189 tz=n2z(i)+n3z(i)+n5z(i)
190 f17(i)=f17(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
191 f27(i)=f27(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
192 f37(i)=f37(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
193 ! node-8 : faces 2,3,6
194 tx=n2x(i)+n3x(i)+n6x(i)
195 ty=n2y(i)+n3y(i)+n6y(i)
196 tz=n2z(i)+n3z(i)+n6z(i)
197 f18(i)=f18(i)-one_over_8*(s1(i)*tx + s4(i)*ty + s6(i)*tz)
198 f28(i)=f28(i)-one_over_8*(s4(i)*tx + s2(i)*ty + s5(i)*tz)
199 f38(i)=f38(i)-one_over_8*(s6(i)*tx + s5(i)*ty + s3(i)*tz)
200 ENDDO
201 RETURN
202 ENDIF
203
204 !-------------------------------------------------!
205 ! ISFINT=1 : volume integration for SIG_total !
206 ! ISFINT=2 : volume integration for SIG_dev only !
207 !-------------------------------------------------!
208 IF((ale%GLOBAL%ICAA==1.OR.ale%GLOBAL%ISFINT==2) .AND. jale+jeul/=0)THEN
209 DO i=1,nel
210 qvis_loc = qvis(i)
211 vol_loc = vol(i)
212 s1(i)=sig(i,1)+svis(i,1)-qvis_loc
213 s2(i)=sig(i,2)+svis(i,2)-qvis_loc
214 s3(i)=sig(i,3)+svis(i,3)-qvis_loc
215 p(i)=(s1(i)+s2(i)+s3(i))/three
216 s1(i)=(s1(i)-p(i))*vol_loc
217 s2(i)=(s2(i)-p(i))*vol_loc
218 s3(i)=(s3(i)-p(i))*vol_loc
219 s4(i)=(sig(i,4)+svis(i,4))*vol_loc
220 s5(i)=(sig(i,5)+svis(i,5))*vol_loc
221 s6(i)=(sig(i,6)+svis(i,6))*vol_loc
222 p(i)=p(i)*0.125
223 ENDDO
224 DO i=1,nel
225 pbak(i) = p(i)
226 ENDDO
227 !--------------------------------------------------------------!
228 ! fint from spherical tensor : FVM !
229 !--------------------------------------------------------------!
230 DO i=1,nel
231 f11(i)=f11(i)-p(i)*(n1x(i) +n4x(i) +n6x(i))
232 f21(i)=f21(i)-p(i)*(n1y(i) +n4y(i) +n6y(i))
233 f31(i)=f31(i)-p(i)*(n1z(i) +n4z(i) +n6z(i))
234 f12(i)=f12(i)-p(i)*(n1x(i) +n4x(i)+n5x(i) )
235 f22(i)=f22(i)-p(i)*(n1y(i) +n4y(i)+n5y(i) )
236 f32(i)=f32(i)-p(i)*(n1z(i) +n4z(i)+n5z(i) )
237 f13(i)=f13(i)-p(i)*(n1x(i)+n2x(i) +n5x(i) )
238 f23(i)=f23(i)-p(i)*(n1y(i)+n2y(i) +n5y(i) )
239 f33(i)=f33(i)-p(i)*(n1z(i)+n2z(i) +n5z(i) )
240 f14(i)=f14(i)-p(i)*(n1x(i)+n2x(i) +n6x(i))
241 f24(i)=f24(i)-p(i)*(n1y(i)+n2y(i) +n6y(i))
242 f34(i)=f34(i)-p(i)*(n1z(i)+n2z(i) +n6z(i))
243 f15(i)=f15(i)-p(i)*( +n3x(i)+n4x(i) +n6x(i))
244 f25(i)=f25(i)-p(i)*( +n3y(i)+n4y(i) +n6y(i))
245 f35(i)=f35(i)-p(i)*( +n3z(i)+n4z(i) +n6z(i))
246 f16(i)=f16(i)-p(i)*( +n3x(i)+n4x(i)+n5x(i) )
247 f26(i)=f26(i)-p(i)*( +n3y(i)+n4y(i)+n5y(i) )
248 f36(i)=f36(i)-p(i)*( +n3z(i)+n4z(i)+n5z(i) )
249 f17(i)=f17(i)-p(i)*( +n2x(i)+n3x(i) +n5x(i) )
250 f27(i)=f27(i)-p(i)*( +n2y(i)+n3y(i) +n5y(i) )
251 f37(i)=f37(i)-p(i)*( +n2z(i)+n3z(i) +n5z(i) )
252 f18(i)=f18(i)-p(i)*( +n2x(i)+n3x(i) +n6x(i))
253 f28(i)=f28(i)-p(i)*( +n2y(i)+n3y(i) +n6y(i))
254 f38(i)=f38(i)-p(i)*( +n2z(i)+n3z(i) +n6z(i))
255 ENDDO
256 ELSE !IF(ICAA == 0 .OR. JALE+JEUL==0 )
257 DO i=1,nel
258 qvis_loc = qvis(i)
259 vol_loc = vol(i)
260 s1(i)=(sig(i,1)+svis(i,1)-qvis_loc)*vol_loc
261 s2(i)=(sig(i,2)+svis(i,2)-qvis_loc)*vol_loc
262 s3(i)=(sig(i,3)+svis(i,3)-qvis_loc)*vol_loc
263 s4(i)=(sig(i,4)+svis(i,4))*vol_loc
264 s5(i)=(sig(i,5)+svis(i,5))*vol_loc
265 s6(i)=(sig(i,6)+svis(i,6))*vol_loc
266 ENDDO
267 IF(alefvm_param%IEnabled/=0)THEN
268 DO i=1,nel
269 pbak(i) =0.125 * (s1(i)+s2(i)+s3(i))/three/vol(i)
270 ENDDO
271 ENDIF
272 ENDIF
273 IF(int22==0)THEN !no yet deviatoric stress contribution with inter22 to simplify (priority : ditching)
274 !--------------------------------------------------------------!
275 ! FEM internal forces !
276 ! /CAA or /INTER/TYPE22 : deviatoric stress tensor !
277 ! otherwise : total stress tensor !
278 !--------------------------------------------------------------!
279 IF(jeul==0 .OR. (jeul==1.AND.integ8==0))THEN
280 DO i=1,nel
281 !shape functions hypothesis : phi1=-phi7, phi2=-phi8, phi3=-phi5, phi4=-phi6
282 !---nodes 1-7 ---!
283 fint=s1(i)*px1(i)+s4(i)*py1(i)+s6(i)*pz1(i)
284 f11(i)=f11(i)-fint
285 f17(i)=f17(i)+fint
286 fint=s2(i)*py1(i)+s4(i)*px1(i)+s5(i)*pz1(i)
287 f21(i)=f21(i)-fint
288 f27(i)=f27(i)+fint
289 fint=s3(i)*pz1(i)+s6(i)*px1(i)+s5(i)*py1(i)
290 f31(i)=f31(i)-fint
291 f37(i)=f37(i)+fint
292 !---nodes 2-8 ---!
293 fint=s1(i)*px2(i)+s4(i)*py2(i)+s6(i)*pz2(i)
294 f12(i)=f12(i)-fint
295 f18(i)=f18(i)+fint
296 fint=s2(i)*py2(i)+s4(i)*px2(i)+s5(i)*pz2(i)
297 f22(i)=f22(i)-fint
298 f28(i)=f28(i)+fint
299 fint=s3(i)*pz2(i)+s6(i)*px2(i)+s5(i)*py2(i)
300 f32(i)=f32(i)-fint
301 f38(i)=f38(i)+fint
302 !---nodes 3-5 ---!
303 fint=s1(i)*px3(i)+s4(i)*py3(i)+s6(i)*pz3(i)
304 f13(i)=f13(i)-fint
305 f15(i)=f15(i)+fint
306 fint=s2(i)*py3(i)+s4(i)*px3(i)+s5(i)*pz3(i)
307 f23(i)=f23(i)-fint
308 f25(i)=f25(i)+fint
309 fint=s3(i)*pz3(i)+s6(i)*px3(i)+s5(i)*py3(i)
310 f33(i)=f33(i)-fint
311 f35(i)=f35(i)+fint
312 !---nodes 4-6 ---!
313 fint=s1(i)*px4(i)+s4(i)*py4(i)+s6(i)*pz4(i)
314 f14(i)=f14(i)-fint
315 f16(i)=f16(i)+fint
316 fint=s2(i)*py4(i)+s4(i)*px4(i)+s5(i)*pz4(i)
317 f24(i)=f24(i)-fint
318 f26(i)=f26(i)+fint
319 fint=s3(i)*pz4(i)+s6(i)*px4(i)+s5(i)*py4(i)
320 f34(i)=f34(i)-fint
321 f36(i)=f36(i)+fint
322 ENDDO
323 ELSE
324 !--------------------------------------------------------------!
325 ! FEM internal forces + INTEG8 !
326 ! /CAA or /INTER/TYPE22 : deviatoric stress tensor !
327 ! otherwise : total stress tensor !
328 !--------------------------------------------------------------!
329 !shape functions are different with hidden flag INTEG8 in /ANALY control card
330 DO i=1,nel
331 f11(i)=f11(i)-(s1(i)*px1(i)+s4(i)*py1(i)+s6(i)*pz1(i))
332 f21(i)=f21(i)-(s2(i)*py1(i)+s4(i)*px1(i)+s5(i)*pz1(i))
333 f31(i)=f31(i)-(s3(i)*pz1(i)+s6(i)*px1(i)+s5(i)*py1(i))
334 f12(i)=f12(i)-(s1(i)*px2(i)+s4(i)*py2(i)+s6(i)*pz2(i))
335 f22(i)=f22(i)-(s2(i)*py2(i)+s4(i)*px2(i)+s5(i)*pz2(i))
336 f32(i)=f32(i)-(s3(i)*pz2(i)+s6(i)*px2(i)+s5(i)*py2(i))
337 f13(i)=f13(i)-(s1(i)*px3(i)+s4(i)*py3(i)+s6(i)*pz3(i))
338 f23(i)=f23(i)-(s2(i)*py3(i)+s4(i)*px3(i)+s5(i)*pz3(i))
339 f33(i)=f33(i)-(s3(i)*pz3(i)+s6(i)*px3(i)+s5(i)*py3(i))
340 f14(i)=f14(i)-(s1(i)*px4(i)+s4(i)*py4(i)+s6(i)*pz4(i))
341 f24(i)=f24(i)-(s2(i)*py4(i)+s4(i)*px4(i)+s5(i)*pz4(i))
342 f34(i)=f34(i)-(s3(i)*pz4(i)+s6(i)*px4(i)+s5(i)*py4(i))
343 f15(i)=f15(i)-(s1(i)*px5(i)+s4(i)*py5(i)+s6(i)*pz5(i))
344 f25(i)=f25(i)-(s2(i)*py5(i)+s4(i)*px5(i)+s5(i)*pz5(i))
345 f35(i)=f35(i)-(s3(i)*pz5(i)+s6(i)*px5(i)+s5(i)*py5(i))
346 f16(i)=f16(i)-(s1(i)*px6(i)+s4(i)*py6(i)+s6(i)*pz6(i))
347 f26(i)=f26(i)-(s2(i)*py6(i)+s4(i)*px6(i)+s5(i)*pz6(i))
348 f36(i)=f36(i)-(s3(i)*pz6(i)+s6(i)*px6(i)+s5(i)*py6(i))
349 f17(i)=f17(i)-(s1(i)*px7(i)+s4(i)*py7(i)+s6(i)*pz7(i))
350 f27(i)=f27(i)-(s2(i)*py7(i)+s4(i)*px7(i)+s5(i)*pz7(i))
351 f37(i)=f37(i)-(s3(i)*pz7(i)+s6(i)*px7(i)+s5(i)*py7(i))
352 f18(i)=f18(i)-(s1(i)*px8(i)+s4(i)*py8(i)+s6(i)*pz8(i))
353 f28(i)=f28(i)-(s2(i)*py8(i)+s4(i)*px8(i)+s5(i)*pz8(i))
354 f38(i)=f38(i)-(s3(i)*pz8(i)+s6(i)*px8(i)+s5(i)*py8(i))
355 ENDDO
356 ENDIF
357 ENDIF
358
359 RETURN
#define my_real
Definition cppsort.cpp:32
type(ale_) ale
Definition ale_mod.F:253
type(alefvm_param_), target alefvm_param
Definition alefvm_mod.F:121