OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
aleflux.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "vect01_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine aleflux (pm, ixs, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, vdx1, vdx2, vdx3, vdx4, vdx5, vdx6, vdx7, vdx8, vdy1, vdy2, vdy3, vdy4, vdy5, vdy6, vdy7, vdy8, vdz1, vdz2, vdz3, vdz4, vdz5, vdz6, vdz7, vdz8, flux, flu1, ale_connect, alpha)

Function/Subroutine Documentation

◆ aleflux()

subroutine aleflux ( pm,
integer, dimension(nixs,numels) ixs,
x1,
x2,
x3,
x4,
x5,
x6,
x7,
x8,
y1,
y2,
y3,
y4,
y5,
y6,
y7,
y8,
z1,
z2,
z3,
z4,
z5,
z6,
z7,
z8,
vdx1,
vdx2,
vdx3,
vdx4,
vdx5,
vdx6,
vdx7,
vdx8,
vdy1,
vdy2,
vdy3,
vdy4,
vdy5,
vdy6,
vdy7,
vdy8,
vdz1,
vdz2,
vdz3,
vdz4,
vdz5,
vdz6,
vdz7,
vdz8,
flux,
flu1,
type(t_ale_connectivity), intent(in) ale_connect,
alpha )

Definition at line 31 of file aleflux.F.

40C-----------------------------------------------
41C D e s c r i p t i o n
42C-----------------------------------------------
43C This subroutine is related to porous material law 77
44C-----------------------------------------------
45C M o d u l e s
46C-----------------------------------------------
47 USE initbuf_mod
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "mvsiz_p.inc"
57#include "com01_c.inc"
58#include "com04_c.inc"
59#include "vect01_c.inc"
60#include "param_c.inc"
61C-----------------------------------------------
62C D u m m y A r g u m e n t s
63C-----------------------------------------------
64 INTEGER IXS(NIXS,NUMELS)
65 my_real pm(npropm,nummat),flux(mvsiz,6), flu1(*),
66 . x1(*), x2(*), x3(*), x4(*), x5(*), x6(*), x7(*), x8(*),
67 . y1(*), y2(*), y3(*), y4(*), y5(*), y6(*), y7(*), y8(*),
68 . z1(*), z2(*), z3(*), z4(*), z5(*), z6(*), z7(*), z8(*),
69 . alpha(mvsiz,6),
70 . vdx1(*),vdx2(*),vdx3(*),vdx4(*),vdx5(*),vdx6(*),vdx7(*),vdx8(*),
71 . vdy1(*),vdy2(*),vdy3(*),vdy4(*),vdy5(*),vdy6(*),vdy7(*),vdy8(*),
72 . vdz1(*),vdz2(*),vdz3(*),vdz4(*),vdz5(*),vdz6(*),vdz7(*),vdz8(*)
73 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
74C-----------------------------------------------
75C L o c a l V a r i a b l e s
76C-----------------------------------------------
77 INTEGER MAT(MVSIZ), I,II,ICLOS,IAD2
78 my_real n1x(mvsiz), n2x(mvsiz), n3x(mvsiz), n4x(mvsiz), n5x(mvsiz),
79 . n6x(mvsiz), n1y(mvsiz), n2y(mvsiz), n3y(mvsiz), n4y(mvsiz),
80 . n5y(mvsiz), n6y(mvsiz), n1z(mvsiz), n2z(mvsiz), n3z(mvsiz),
81 . n4z(mvsiz), n5z(mvsiz), n6z(mvsiz),
82 . flux1(mvsiz),flux2(mvsiz), flux3(mvsiz), flux4(mvsiz),
83 . flux5(mvsiz),flux6(mvsiz), vx1(mvsiz),
84 . vx2(mvsiz), vx3(mvsiz), vx4(mvsiz), vx5(mvsiz), vx6(mvsiz),
85 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz), vy5(mvsiz),
86 . vy6(mvsiz), vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz),
87 . vz5(mvsiz), vz6(mvsiz),
88 . upwl(mvsiz,6),xc(mvsiz),yc(mvsiz),
89 . zc(mvsiz) ,xf1(mvsiz),yf1(mvsiz),zf1(mvsiz),xf2(mvsiz),
90 . yf2(mvsiz),zf2(mvsiz), xf3(mvsiz),yf3(mvsiz),zf3(mvsiz),
91 . xf4(mvsiz),yf4(mvsiz),zf4(mvsiz),xf5(mvsiz),yf5(mvsiz),
92 . zf5(mvsiz), xf6(mvsiz),yf6(mvsiz),zf6(mvsiz),test
93C
94 INTEGER MA
95C-----------------------------------------------
96C S o u r c e L i n e s
97C-----------------------------------------------
98 mat(1) = zero
99C-----------------------------------------------
100C RELATIVE VELOCITY OVER THE FACE
101C-----------------------------------------------
102 DO i=lft,llt
103 ii=i+nft
104 mat(i)=ixs(1,ii)
105 vx1(i)=one_over_8*(vdx1(i)+vdx2(i)+vdx3(i)+vdx4(i))
106 vx2(i)=one_over_8*(vdx3(i)+vdx4(i)+vdx8(i)+vdx7(i))
107 vx3(i)=one_over_8*(vdx5(i)+vdx6(i)+vdx7(i)+vdx8(i))
108 vx4(i)=one_over_8*(vdx1(i)+vdx2(i)+vdx6(i)+vdx5(i))
109 vx5(i)=one_over_8*(vdx2(i)+vdx3(i)+vdx7(i)+vdx6(i))
110 vx6(i)=one_over_8*(vdx1(i)+vdx4(i)+vdx8(i)+vdx5(i))
111C
112 vy1(i)=one_over_8*(vdy1(i)+vdy2(i)+vdy3(i)+vdy4(i))
113 vy2(i)=one_over_8*(vdy3(i)+vdy4(i)+vdy8(i)+vdy7(i))
114 vy3(i)=one_over_8*(vdy5(i)+vdy6(i)+vdy7(i)+vdy8(i))
115 vy4(i)=one_over_8*(vdy1(i)+vdy2(i)+vdy6(i)+vdy5(i))
116 vy5(i)=one_over_8*(vdy2(i)+vdy3(i)+vdy7(i)+vdy6(i))
117 vy6(i)=one_over_8*(vdy1(i)+vdy4(i)+vdy8(i)+vdy5(i))
118C
119 vz1(i)=one_over_8*(vdz1(i)+vdz2(i)+vdz3(i)+vdz4(i))
120 vz2(i)=one_over_8*(vdz3(i)+vdz4(i)+vdz8(i)+vdz7(i))
121 vz3(i)=one_over_8*(vdz5(i)+vdz6(i)+vdz7(i)+vdz8(i))
122 vz4(i)=one_over_8*(vdz1(i)+vdz2(i)+vdz6(i)+vdz5(i))
123 vz5(i)=one_over_8*(vdz2(i)+vdz3(i)+vdz7(i)+vdz6(i))
124 vz6(i)=one_over_8*(vdz1(i)+vdz4(i)+vdz8(i)+vdz5(i))
125 ENDDO
126C------------------------------------------
127C NORMAL VECTORS
128C------------------------------------------
129 DO i=lft,llt
130 n1x(i)=(y3(i)-y1(i))*(z2(i)-z4(i)) - (z3(i)-z1(i))*(y2(i)-y4(i))
131 n1y(i)=(z3(i)-z1(i))*(x2(i)-x4(i)) - (x3(i)-x1(i))*(z2(i)-z4(i))
132 n1z(i)=(x3(i)-x1(i))*(y2(i)-y4(i)) - (y3(i)-y1(i))*(x2(i)-x4(i))
133C
134 n2x(i)=(y7(i)-y4(i))*(z3(i)-z8(i)) - (z7(i)-z4(i))*(y3(i)-y8(i))
135 n2y(i)=(z7(i)-z4(i))*(x3(i)-x8(i)) - (x7(i)-x4(i))*(z3(i)-z8(i))
136 n2z(i)=(x7(i)-x4(i))*(y3(i)-y8(i)) - (y7(i)-y4(i))*(x3(i)-x8(i))
137C
138 n3x(i)=(y6(i)-y8(i))*(z7(i)-z5(i)) - (z6(i)-z8(i))*(y7(i)-y5(i))
139 n3y(i)=(z6(i)-z8(i))*(x7(i)-x5(i)) - (x6(i)-x8(i))*(z7(i)-z5(i))
140 n3z(i)=(x6(i)-x8(i))*(y7(i)-y5(i)) - (y6(i)-y8(i))*(x7(i)-x5(i))
141C
142 n4x(i)=(y2(i)-y5(i))*(z6(i)-z1(i)) - (z2(i)-z5(i))*(y6(i)-y1(i))
143 n4y(i)=(z2(i)-z5(i))*(x6(i)-x1(i)) - (x2(i)-x5(i))*(z6(i)-z1(i))
144 n4z(i)=(x2(i)-x5(i))*(y6(i)-y1(i)) - (y2(i)-y5(i))*(x6(i)-x1(i))
145C
146 n5x(i)=(y7(i)-y2(i))*(z6(i)-z3(i)) - (z7(i)-z2(i))*(y6(i)-y3(i))
147 n5y(i)=(z7(i)-z2(i))*(x6(i)-x3(i)) - (x7(i)-x2(i))*(z6(i)-z3(i))
148 n5z(i)=(x7(i)-x2(i))*(y6(i)-y3(i)) - (y7(i)-y2(i))*(x6(i)-x3(i))
149C
150 n6x(i)=(y8(i)-y1(i))*(z4(i)-z5(i)) - (z8(i)-z1(i))*(y4(i)-y5(i))
151 n6y(i)=(z8(i)-z1(i))*(x4(i)-x5(i)) - (x8(i)-x1(i))*(z4(i)-z5(i))
152 n6z(i)=(x8(i)-x1(i))*(y4(i)-y5(i)) - (y8(i)-y1(i))*(x4(i)-x5(i))
153 ENDDO
154C
155C CHECK AREA WITH ELEMENT CLOSURE
156C is not available for this new formulation
157 IF(iclose == 1) THEN
158 DO i=lft,llt
159C
160 xc(i)=one_over_8*(x1(i)+x2(i)+x3(i)+x4(i)+x5(i)+x6(i)+x7(i)+x8(i))
161 yc(i)=one_over_8*(y1(i)+y2(i)+y3(i)+y4(i)+y5(i)+y6(i)+y7(i)+y8(i))
162 zc(i)=one_over_8*(z1(i)+z2(i)+z3(i)+z4(i)+z5(i)+z6(i)+z7(i)+z8(i))
163 xf1(i)=fourth*(x1(i)+x2(i)+x3(i)+x4(i))
164 xf2(i)=fourth*(x3(i)+x4(i)+x8(i)+x7(i))
165 xf3(i)=fourth*(x5(i)+x6(i)+x7(i)+x8(i))
166 xf4(i)=fourth*(x1(i)+x2(i)+x6(i)+x5(i))
167 xf5(i)=fourth*(x2(i)+x3(i)+x7(i)+x6(i))
168 xf6(i)=fourth*(x1(i)+x4(i)+x8(i)+x5(i))
169C
170 yf1(i)=fourth*(y1(i)+y2(i)+y3(i)+y4(i))
171 yf2(i)=fourth*(y3(i)+y4(i)+y8(i)+y7(i))
172 yf3(i)=fourth*(y5(i)+y6(i)+y7(i)+y8(i))
173 yf4(i)=fourth*(y1(i)+y2(i)+y6(i)+y5(i))
174 yf5(i)=fourth*(y2(i)+y3(i)+y7(i)+y6(i))
175 yf6(i)=fourth*(y1(i)+y4(i)+y8(i)+y5(i))
176C
177 zf1(i)=fourth*(z1(i)+z2(i)+z3(i)+z4(i))
178 zf2(i)=fourth*(z3(i)+z4(i)+z8(i)+z7(i))
179 zf3(i)=fourth*(z5(i)+z6(i)+z7(i)+z8(i))
180 zf4(i)=fourth*(z1(i)+z2(i)+z6(i)+z5(i))
181 zf5(i)=fourth*(z2(i)+z3(i)+z7(i)+z6(i))
182 zf6(i)=fourth*(z1(i)+z4(i)+z8(i)+z5(i))
183 ENDDO
184 DO i=lft,llt
185 test=(xf1(i)-xc(i))*n1x(i)+
186 . (yf1(i)-yc(i))*n1y(i)+
187 . (zf1(i)-zc(i))*n1z(i)
188 IF(test <= 0)THEN
189 n1x(i)=zero
190 n1y(i)=zero
191 n1z(i)=zero
192 ENDIF
193 ENDDO
194 DO i=lft,llt
195 test=(xf2(i)-xc(i))*n2x(i)+
196 . (yf2(i)-yc(i))*n2y(i)+
197 . (zf2(i)-zc(i))*n2z(i)
198 IF(test <= 0)THEN
199 n2x(i)=zero
200 n2y(i)=zero
201 n2z(i)=zero
202 ENDIF
203 ENDDO
204 DO i=lft,llt
205 test=(xf3(i)-xc(i))*n3x(i)+
206 . (yf3(i)-yc(i))*n3y(i)+
207 . (zf3(i)-zc(i))*n3z(i)
208 IF(test <= 0)THEN
209 n3x(i)=zero
210 n3y(i)=zero
211 n3z(i)=zero
212 ENDIF
213 ENDDO
214 DO i=lft,llt
215 test=(xf4(i)-xc(i))*n4x(i)+
216 . (yf4(i)-yc(i))*n4y(i)+
217 . (zf4(i)-zc(i))*n4z(i)
218 IF(test <= zero)THEN
219 n4x(i)=zero
220 n4y(i)=zero
221 n4z(i)=zero
222 ENDIF
223 ENDDO
224 DO i=lft,llt
225 test=(xf5(i)-xc(i))*n5x(i)+
226 . (yf5(i)-yc(i))*n5y(i)+
227 . (zf5(i)-zc(i))*n5z(i)
228 IF(test <= zero)THEN
229 n5x(i)=zero
230 n5y(i)=zero
231 n5z(i)=zero
232 ENDIF
233 ENDDO
234 DO i=lft,llt
235 test=(xf6(i)-xc(i))*n6x(i)+
236 . (yf6(i)-yc(i))*n6y(i)+
237 . (zf6(i)-zc(i))*n6z(i)
238 IF(test <= zero)THEN
239 n6x(i)=zero
240 n6y(i)=zero
241 n6z(i)=zero
242 ENDIF
243 ENDDO
244 ENDIF
245C--------------------
246C CALCUL DES FLUX
247C--------------------
248 DO i=lft,llt
249 flux1(i)=(vx1(i)*n1x(i)+vy1(i)*n1y(i)+vz1(i)*n1z(i))
250 flux2(i)=(vx2(i)*n2x(i)+vy2(i)*n2y(i)+vz2(i)*n2z(i))
251 flux3(i)=(vx3(i)*n3x(i)+vy3(i)*n3y(i)+vz3(i)*n3z(i))
252 flux4(i)=(vx4(i)*n4x(i)+vy4(i)*n4y(i)+vz4(i)*n4z(i))
253 flux5(i)=(vx5(i)*n5x(i)+vy5(i)*n5y(i)+vz5(i)*n5z(i))
254 flux6(i)=(vx6(i)*n6x(i)+vy6(i)*n6y(i)+vz6(i)*n6z(i))
255C
256 flux1(i)=alpha(i,1)*flux1(i)
257 flux2(i)=alpha(i,2)*flux2(i)
258 flux3(i)=alpha(i,3)*flux3(i)
259 flux4(i)=alpha(i,4)*flux4(i)
260 flux5(i)=alpha(i,5)*flux5(i)
261 flux6(i)=alpha(i,6)*flux6(i)
262 ENDDO
263C-----------------------------------------------
264C UPWIND
265C-----------------------------------------------
266 ma = mat(lft)
267 DO i=lft,llt
268 upwl(i,1)=pm(16,ma)
269 upwl(i,2)=pm(16,ma)
270 upwl(i,3)=pm(16,ma)
271 upwl(i,4)=pm(16,ma)
272 upwl(i,5)=pm(16,ma)
273 upwl(i,6)=pm(16,ma)
274 ENDDO
275
276 iclos = nint(pm(198, mat(1)))
277 IF(iclos == 1) THEN
278 DO i=lft,llt
279 iad2 = ale_connect%ee_connect%iad_connect(i + nft)
280 ii=ale_connect%ee_connect%connected(iad2 + 1 - 1)
281 IF(ii == 0) flux1(i)= zero
282c
283 ii=ale_connect%ee_connect%connected(iad2 + 2 - 1)
284 IF(ii == 0) flux2(i)= zero
285C
286 ii=ale_connect%ee_connect%connected(iad2 + 3 - 1)
287 IF(ii == 0)flux3(i)= zero
288C
289 ii=ale_connect%ee_connect%connected(iad2 + 4 - 1)
290 IF(ii == 0)flux4(i)= zero
291c
292 ii=ale_connect%ee_connect%connected(iad2 + 5 - 1)
293 IF(ii == 0) flux5(i)=zero
294C
295 ii=ale_connect%ee_connect%connected(iad2 + 6 - 1)
296 IF(ii == 0) flux6(i)= zero
297C
298 ENDDO
299 ENDIF
300C ---
301 DO i=lft,llt
302C
303 flux(i,1)=flux1(i)-upwl(i,1)*abs(flux1(i))
304 flux(i,2)=flux2(i)-upwl(i,2)*abs(flux2(i))
305 flux(i,3)=flux3(i)-upwl(i,3)*abs(flux3(i))
306 flux(i,4)=flux4(i)-upwl(i,4)*abs(flux4(i))
307 flux(i,5)=flux5(i)-upwl(i,5)*abs(flux5(i))
308 flux(i,6)=flux6(i)-upwl(i,6)*abs(flux6(i))
309C
310 flu1(i) =flux1(i)+upwl(i,1)*abs(flux1(i))
311 . +flux2(i)+upwl(i,2)*abs(flux2(i))
312 . +flux3(i)+upwl(i,3)*abs(flux3(i))
313 . +flux4(i)+upwl(i,4)*abs(flux4(i))
314 . +flux5(i)+upwl(i,5)*abs(flux5(i))
315 . +flux6(i)+upwl(i,6)*abs(flux6(i))
316
317 ENDDO
318C
319 RETURN
#define my_real
Definition cppsort.cpp:32
#define alpha
Definition eval.h:35