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 32 of file aleflux.F.

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