OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
aleflow.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| aleflow ../engine/source/ale/porous/aleflow.F
25!||--- called by ------------------------------------------------------
26!|| sforc3 ../engine/source/elements/solid/solide/sforc3.F
27!||--- calls -----------------------------------------------------
28!|| aleconve ../engine/source/ale/porous/aleconv.F
29!|| aleflux ../engine/source/ale/porous/aleflux.f
30!||--- uses -----------------------------------------------------
31!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
32!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
33!|| element_mod ../common_source/modules/elements/element_mod.F90
34!||====================================================================
35 SUBROUTINE aleflow(
36 . PM ,MAT ,X ,
37 . MBUF ,NEL ,
38 . IXS ,ALE_CONNECT ,V ,A ,
39 . W ,DFE ,FRHO0 ,ALPHA ,
40 . NC1 ,NC2 ,NC3 ,NC4 ,NC5 ,NC6 ,
41 . NC7 ,NC8 ,X1 ,X2 ,X3 ,X4 ,
42 . X5 ,X6 ,X7 ,X8 ,Y1 ,Y2 ,
43 . Y3 ,Y4 ,Y5 ,Y6 ,Y7 ,Y8 ,
44 . Z1 ,Z2 ,Z3 ,Z4 ,Z5 ,Z6 ,
45 . Z7 ,Z8 ,PHI1 ,PHI2 ,FLUX ,FLU1 ,
46 . VX1 ,VX2 ,VX3 ,VX4 ,VX5 ,VX6 ,
47 . VX7 ,VX8 ,VY1 ,VY2 ,VY3 ,VY4 ,
48 . VY5 ,VY6 ,VY7 ,VY8 ,VZ1 ,VZ2 ,
49 . VZ3 ,VZ4 ,VZ5 ,VZ6 ,VZ7 ,VZ8 ,
50 . VDX1 ,VDX2 ,VDX3 ,VDX4 ,VDX5 ,VDX6 ,
51 . VDX7 ,VDX8 ,VDY1 ,VDY2 ,VDY3 ,VDY4 ,
52 . VDY5 ,VDY6 ,VDY7 ,VDY8 ,VDZ1 ,VDZ2 ,
53 . VDZ3 ,VDZ4 ,VDZ5 ,VDZ6 ,VDZ7 ,VDZ8 ,
54 . VDX ,VDY ,VDZ ,VD2 ,
55 . LVX1 ,LVX2 ,LVX3 ,LVX4 ,LVX5 ,LVX6 ,
56 . LVX7 ,LVX8 ,LVY1 ,LVY2 ,LVY3 ,LVY4 ,
57 . LVY5 ,LVY6 ,LVY7 ,LVY8 ,LVZ1 ,LVZ2 ,
58 . LVZ3 ,LVZ4 ,LVZ5 ,LVZ6 ,LVZ7 ,LVZ8 ,
59 . POR ,ICONTACT ,IFOAM)
60C-----------------------------------------------
61C D e s c r i p t i o n
62C-----------------------------------------------
63C This subroutine is related to porous material law 77
64C-----------------------------------------------
65C M o d u l e s
66C-----------------------------------------------
67 USE elbufdef_mod
69 use element_mod , only : nixs
70C-----------------------------------------------
71C I m p l i c i t T y p e s
72C-----------------------------------------------
73#include "implicit_f.inc"
74#include "comlock.inc"
75C-----------------------------------------------
76C C o m m o n B l o c k s
77C-----------------------------------------------
78#include "com01_c.inc"
79#include "com04_c.inc"
80#include "com08_c.inc"
81#include "param_c.inc"
82#include "vect01_c.inc"
83#include "mvsiz_p.inc"
84C-----------------------------------------------
85C D u m m y A r g u m e n t s
86C-----------------------------------------------
87 INTEGER NEL
88 INTEGER NC1(*),NC2(*),NC3(*),NC4(*),NC5(*),NC6(*),NC7(*),NC8(*),IXS(NIXS,*),MAT(*),ICONTACT(*),IFOAM(*)
89 my_real
90 . V(3,NUMNOD),W(3,NUMNOD) ,FLUX(MVSIZ,6),
91 . phi1(*),phi2(*),a(3,numnod),
92 . flu1(*) ,x1(*) ,x2(*) ,x3(*) ,x4(*) ,
93 . x5(*) ,x6(*) ,x7(*) ,x8(*) ,y1(*) ,y2(*) ,
94 . y3(*) ,y4(*) ,y5(*) ,y6(*) ,y7(*) ,y8(*) ,
95 . z1(*) ,z2(*) ,z3(*) ,z4(*) ,z5(*) ,z6(*) ,
96 . z7(*) ,z8(*) ,
97 . vx1(*) ,vx2(*) ,vx3(*) ,vx4(*) ,vx5(*) ,vx6(*) ,
98 . vx7(*) ,vx8(*) ,vy1(*) ,vy2(*) ,vy3(*) ,vy4(*) ,
99 . vy5(*) ,vy6(*) ,vy7(*) ,vy8(*) ,vz1(*) ,vz2(*) ,
100 . vz3(*) ,vz4(*) ,vz5(*) ,vz6(*) ,vz7(*) ,vz8(*) ,
101 . vdx1(*) ,vdx2(*) ,vdx3(*) ,vdx4(*) ,vdx5(*) ,vdx6(*) ,
102 . vdx7(*) ,vdx8(*) ,vdy1(*) ,vdy2(*) ,vdy3(*) ,vdy4(*) ,
103 . vdy5(*) ,vdy6(*) ,vdy7(*) ,vdy8(*) ,vdz1(*) ,vdz2(*) ,
104 . vdz3(*) ,vdz4(*) ,vdz5(*) ,vdz6(*) ,vdz7(*) ,vdz8(*),
105 . dfe(mvsiz,3), frho0(*),pm(npropm,nummat), alpha(*),vdx(*),
106 . vdy(*), vdz(*),vd2(*),x(3,*),
107 . lvx1(*) ,lvx2(*) ,lvx3(*) ,lvx4(*) ,lvx5(*) ,lvx6(*) ,
108 . lvx7(*) ,lvx8(*) ,lvy1(*) ,lvy2(*) ,lvy3(*) ,lvy4(*) ,
109 . lvy5(*) ,lvy6(*) ,lvy7(*) ,lvy8(*) ,lvz1(*) ,lvz2(*) ,
110 . lvz3(*) ,lvz4(*) ,lvz5(*) ,lvz6(*) ,lvz7(*) ,lvz8(*),
111 . por(*)
112C-----------------------------------------------,
113 TYPE(buf_mat_) :: MBUF
114 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
115C-----------------------------------------------
116C L o c a l V a r i a b l e s
117C-----------------------------------------------
118 INTEGER J,IV,IE,MX,IAD2
119 my_real FAC, VFE(3),AFE(3),DTINV,RV,REXCH(MVSIZ,6), ALPHA0,RHOEXT(MVSIZ),EIEXT(MVSIZ),KK(MVSIZ)
120 my_real AA,BB,TAUX
121 INTEGER NVAR,I
122 INTEGER ICLOS,II,ICONGAS
123C-----------------------------------------------
124C S o u r c e L i n e s
125C-----------------------------------------------
126 DO I = 1, nel
127 rhoext(i) = zero
128 eiext(i) = zero
129
130 vx1(i)=v(1,nc1(i))
131 vy1(i)=v(2,nc1(i))
132 vz1(i)=v(3,nc1(i))
133
134 vx2(i)=v(1,nc2(i))
135 vy2(i)=v(2,nc2(i))
136 vz2(i)=v(3,nc2(i))
137
138 vx3(i)=v(1,nc3(i))
139 vy3(i)=v(2,nc3(i))
140 vz3(i)=v(3,nc3(i))
141
142 vx4(i)=v(1,nc4(i))
143 vy4(i)=v(2,nc4(i))
144 vz4(i)=v(3,nc4(i))
145
146 vx5(i)=v(1,nc5(i))
147 vy5(i)=v(2,nc5(i))
148 vz5(i)=v(3,nc5(i))
149
150 vx6(i)=v(1,nc6(i))
151 vy6(i)=v(2,nc6(i))
152 vz6(i)=v(3,nc6(i))
153
154 vx7(i)=v(1,nc7(i))
155 vy7(i)=v(2,nc7(i))
156 vz7(i)=v(3,nc7(i))
157
158 vx8(i)=v(1,nc8(i))
159 vy8(i)=v(2,nc8(i))
160 vz8(i)=v(3,nc8(i))
161
162 vdx1(i)=v(1,nc1(i)) - w(1,nc1(i))
163 vdy1(i)=v(2,nc1(i)) - w(2,nc1(i))
164 vdz1(i)=v(3,nc1(i)) - w(3,nc1(i))
165
166 vdx2(i)=v(1,nc2(i)) - w(1,nc2(i))
167 vdy2(i)=v(2,nc2(i)) - w(2,nc2(i))
168 vdz2(i)=v(3,nc2(i)) - w(3,nc2(i))
169
170 vdx3(i)=v(1,nc3(i)) - w(1,nc3(i))
171 vdy3(i)=v(2,nc3(i)) - w(2,nc3(i))
172 vdz3(i)=v(3,nc3(i)) - w(3,nc3(i))
173
174 vdx4(i)=v(1,nc4(i)) - w(1,nc4(i))
175 vdy4(i)=v(2,nc4(i)) - w(2,nc4(i))
176 vdz4(i)=v(3,nc4(i)) - w(3,nc4(i))
177
178 vdx5(i)=v(1,nc5(i)) - w(1,nc5(i))
179 vdy5(i)=v(2,nc5(i)) - w(2,nc5(i))
180 vdz5(i)=v(3,nc5(i)) - w(3,nc5(i))
181
182 vdx6(i)=v(1,nc6(i)) - w(1,nc6(i))
183 vdy6(i)=v(2,nc6(i)) - w(2,nc6(i))
184 vdz6(i)=v(3,nc6(i)) - w(3,nc6(i))
185
186 vdx7(i)=v(1,nc7(i)) - w(1,nc7(i))
187 vdy7(i)=v(2,nc7(i)) - w(2,nc7(i))
188 vdz7(i)=v(3,nc7(i)) - w(3,nc7(i))
189
190 vdx8(i)=v(1,nc8(i)) - w(1,nc8(i))
191 vdy8(i)=v(2,nc8(i)) - w(2,nc8(i))
192 vdz8(i)=v(3,nc8(i)) - w(3,nc8(i))
193
194C coordinates
195 x1(i)=x(1,nc1(i))
196 y1(i)=x(2,nc1(i))
197 z1(i)=x(3,nc1(i))
198 x2(i)=x(1,nc2(i))
199 y2(i)=x(2,nc2(i))
200 z2(i)=x(3,nc2(i))
201 x3(i)=x(1,nc3(i))
202 y3(i)=x(2,nc3(i))
203 z3(i)=x(3,nc3(i))
204 x4(i)=x(1,nc4(i))
205 y4(i)=x(2,nc4(i))
206 z4(i)=x(3,nc4(i))
207 x5(i)=x(1,nc5(i))
208 y5(i)=x(2,nc5(i))
209 z5(i)=x(3,nc5(i))
210 x6(i)=x(1,nc6(i))
211 y6(i)=x(2,nc6(i))
212 z6(i)=x(3,nc6(i))
213 x7(i)=x(1,nc7(i))
214 y7(i)=x(2,nc7(i))
215 z7(i)=x(3,nc7(i))
216 x8(i)=x(1,nc8(i))
217 y8(i)=x(2,nc8(i))
218 z8(i)=x(3,nc8(i))
219 ENDDO
220
221C different Alpha values
222 DO i=1,nel
223 ie =nft+i
224 iad2 = ale_connect%ee_connect%iad_connect(ie)
225 alpha(i) = por(ie)
226 DO j=1,6
227 iv=ale_connect%ee_connect%connected(iad2 + j - 1)
228 rexch(i,j)= alpha(i)
229 IF(iv /= 0) THEN
230 rv = por(iv)
231 rexch(i,j) = min(alpha(i),rv)
232 ENDIF
233 ENDDO
234 ENDDO
235C External gas
236 mx = mat(1)
237 icongas = nint(pm(201, mx))
238 IF(icongas > 0) THEN
239 DO i= 1,nel
240 rhoext(i) = pm(199, mx)
241 eiext(i) = pm(200, mx)
242 ENDDO
243 ENDIF
244C
245C with interface
246C
247 iclos = nint(pm(198, mat(1)))
248 IF(iclos == 2 .AND. intbag > 0 ) THEN
249 DO i=1,nel
250 iad2 = ale_connect%ee_connect%iad_connect(i+nft)
251 ii=ale_connect%ee_connect%connected(iad2 + 1 - 1)
252 IF(ii == 0) THEN
253 alpha0 = rexch(i,1)
254 IF(icontact(nc1(i)) > 0)rexch(i,1)=rexch(i,1)-fourth*alpha0
255 IF(icontact(nc2(i)) > 0)rexch(i,1)=rexch(i,1)-fourth*alpha0
256 IF(icontact(nc3(i)) > 0)rexch(i,1)=rexch(i,1)-fourth*alpha0
257 IF(icontact(nc4(i)) > 0)rexch(i,1)=rexch(i,1)-fourth*alpha0
258 ENDIF
259 ii=ale_connect%ee_connect%connected(iad2 + 2 - 1)
260 IF(ii == 0) THEN
261 alpha0 = rexch(i,2)
262 IF(icontact(nc3(i)) > 0)rexch(i,2)=rexch(i,2)-fourth*alpha0
263 IF(icontact(nc4(i)) > 0)rexch(i,2)=rexch(i,2)-fourth*alpha0
264 IF(icontact(nc7(i)) > 0)rexch(i,2)=rexch(i,2)-fourth*alpha0
265 IF(icontact(nc8(i)) > 0)rexch(i,2)=rexch(i,2)-fourth*alpha0
266 ENDIF
267 ii=ale_connect%ee_connect%connected(iad2 + 3 - 1)
268 IF(ii == 0) THEN
269 alpha0 = rexch(i,3)
270 IF(icontact(nc5(i)) > 0)rexch(i,3)=rexch(i,3)-fourth*alpha0
271 IF(icontact(nc6(i)) > 0)rexch(i,3)=rexch(i,3)-fourth*alpha0
272 IF(icontact(nc7(i)) > 0)rexch(i,3)=rexch(i,3)-fourth*alpha0
273 IF(icontact(nc8(i)) > 0)rexch(i,3)=rexch(i,3)-fourth*alpha0
274 ENDIF
275
276 ii=ale_connect%ee_connect%connected(iad2 + 4 - 1)
277 IF(ii == 0) THEN
278 alpha0 = rexch(i,4)
279 IF(icontact(nc1(i)) > 0)rexch(i,4)=rexch(i,4)-fourth*alpha0
280 IF(icontact(nc2(i)) > 0)rexch(i,4)=rexch(i,4)-fourth*alpha0
281 IF(icontact(nc5(i)) > 0)rexch(i,4)=rexch(i,4)-fourth*alpha0
282 IF(icontact(nc6(i)) > 0)rexch(i,4)=rexch(i,4)-fourth*alpha0
283 ENDIF
284 ii=ale_connect%ee_connect%connected(iad2 + 5 - 1)
285 IF(ii == 0) THEN
286 alpha0 = rexch(i,5)
287 IF(icontact(nc2(i)) > 0)rexch(i,5)=rexch(i,5)-fourth*alpha0
288 IF(icontact(nc3(i)) > 0)rexch(i,5)=rexch(i,5)-fourth*alpha0
289 IF(icontact(nc6(i)) > 0)rexch(i,5)=rexch(i,5)-fourth*alpha0
290 IF(icontact(nc7(i)) > 0)rexch(i,5)=rexch(i,5)-fourth*alpha0
291 ENDIF
292 ii=ale_connect%ee_connect%connected(iad2 + 6 - 1)
293 IF(ii == 0) THEN
294 alpha0 = rexch(i,6)
295 IF(icontact(nc1(i)) > 0)rexch(i,6)=rexch(i,6)-fourth*alpha0
296 IF(icontact(nc4(i)) > 0)rexch(i,6)=rexch(i,6)-fourth*alpha0
297 IF(icontact(nc5(i)) > 0)rexch(i,6)=rexch(i,6)-fourth*alpha0
298 IF(icontact(nc8(i)) > 0)rexch(i,6)=rexch(i,6)-fourth*alpha0
299 ENDIF
300 ENDDO
301 ENDIF
302C
303C
304C Closed foam
305C
306
307 IF(iclos == 1 ) THEN
308#include "lockon.inc"
309 DO i=1,nel
310 iad2 = ale_connect%ee_connect%iad_connect(i + nft)
311 ii=ale_connect%ee_connect%connected(iad2 + 1 - 1)
312 IF(ii == 0)THEN
313
314 vdx1(i) = zero
315 vdx2(i) = zero
316 vdx3(i) = zero
317 vdx4(i) = zero
318
319 vdy1(i) = zero
320 vdy2(i) = zero
321 vdy3(i) = zero
322 vdy4(i) = zero
323
324 vdz1(i) = zero
325 vdz2(i) = zero
326 vdz3(i) = zero
327 vdz4(i) = zero
328
329 vx1(i) = lvx1(i)
330 vx2(i) = lvx2(i)
331 vx3(i) = lvx3(i)
332 vx4(i) = lvx4(i)
333
334 vy1(i) = lvy1(i)
335 vy2(i) = lvy2(i)
336 vy3(i) = lvy3(i)
337 vy4(i) = lvy4(i)
338
339 vz1(i) = lvz1(i)
340 vz2(i) = lvz2(i)
341 vz3(i) = lvz3(i)
342 vz4(i) = lvz4(i)
343
344 ifoam(nc1(i)) = 1
345 ifoam(nc2(i)) = 1
346 ifoam(nc3(i)) = 1
347 ifoam(nc4(i)) = 1
348
349 ENDIF
350 ii=ale_connect%ee_connect%connected(iad2 + 2 - 1)
351 IF(ii == 0) THEN
352
353 vdx3(i) = zero
354 vdx4(i) = zero
355 vdx7(i) = zero
356 vdx8(i) = zero
357
358 vdy3(i) = zero
359 vdy4(i) = zero
360 vdy7(i) = zero
361 vdy8(i) = zero
362
363 vdz3(i) = zero
364 vdz4(i) = zero
365 vdz7(i) = zero
366 vdz8(i) = zero
367
368 vx3(i) = lvx3(i)
369 vx4(i) = lvx4(i)
370 vx7(i) = lvx7(i)
371 vx8(i) = lvx8(i)
372
373 vy3(i) = lvy3(i)
374 vy4(i) = lvy4(i)
375 vy7(i) = lvy7(i)
376 vy8(i) = lvy8(i)
377
378 vz3(i) = lvz3(i)
379 vz4(i) = lvz4(i)
380 vz7(i) = lvz7(i)
381 vz8(i) = lvz8(i)
382
383 ifoam(nc3(i)) = 1
384 ifoam(nc4(i)) = 1
385 ifoam(nc7(i)) = 1
386 ifoam(nc8(i)) = 1
387
388 ENDIF
389 ii=ale_connect%ee_connect%connected(iad2 + 3 - 1)
390 IF(ii == 0)THEN
391
392 vdx5(i) = zero
393 vdx6(i) = zero
394 vdx7(i) = zero
395 vdx8(i) = zero
396
397 vdy5(i) = zero
398 vdy6(i) = zero
399 vdy7(i) = zero
400 vdy8(i) = zero
401
402 vdz5(i) = zero
403 vdz6(i) = zero
404 vdz7(i) = zero
405 vdz8(i) = zero
406
407 vx5(i) = lvx5(i)
408 vx6(i) = lvx6(i)
409 vx7(i) = lvx7(i)
410 vx8(i) = lvx8(i)
411
412 vy5(i) = lvy5(i)
413 vy6(i) = lvy6(i)
414 vy7(i) = lvy7(i)
415 vy8(i) = lvy8(i)
416
417 vz5(i) = lvz5(i)
418 vz6(i) = lvz6(i)
419 vz7(i) = lvz7(i)
420 vz8(i) = lvz8(i)
421
422 ifoam(nc5(i)) =1
423 ifoam(nc6(i)) =1
424 ifoam(nc7(i)) =1
425 ifoam(nc8(i)) =1
426
427 ENDIF
428 ii=ale_connect%ee_connect%connected(iad2 + 4 - 1)
429 IF(ii == 0)THEN
430
431 vdx1(i) = zero
432 vdx2(i) = zero
433 vdx5(i) = zero
434 vdx6(i) = zero
435
436 vdy1(i) = zero
437 vdy2(i) = zero
438 vdy5(i) = zero
439 vdy6(i) = zero
440
441 vdz1(i) = zero
442 vdz2(i) = zero
443 vdz5(i) = zero
444 vdz6(i) = zero
445
446 vx1(i) = lvx1(i)
447 vx2(i) = lvx2(i)
448 vx5(i) = lvx5(i)
449 vx6(i) = lvx6(i)
450
451 vy1(i) = lvy1(i)
452 vy2(i) = lvy2(i)
453 vy5(i) = lvy5(i)
454 vy6(i) = lvy6(i)
455
456 vz1(i) = lvz1(i)
457 vz2(i) = lvz2(i)
458 vz5(i) = lvz5(i)
459 vz6(i) = lvz6(i)
460
461 ifoam(nc1(i)) = 1
462 ifoam(nc2(i)) = 1
463 ifoam(nc5(i)) = 1
464 ifoam(nc6(i)) = 1
465
466 ENDIF
467 ii=ale_connect%ee_connect%connected(iad2 + 5 - 1)
468 IF(ii == 0)THEN
469
470 vdx2(i) = zero
471 vdx3(i) = zero
472 vdx6(i) = zero
473 vdx7(i) = zero
474
475 vdy2(i) = zero
476 vdy3(i) = zero
477 vdy6(i) = zero
478 vdy7(i) = zero
479
480 vdz2(i) = zero
481 vdz3(i) = zero
482 vdz6(i) = zero
483 vdz7(i) = zero
484
485 vx2(i) = lvx2(i)
486 vx3(i) = lvx3(i)
487 vx6(i) = lvx6(i)
488 vx7(i) = lvx7(i)
489
490 vy2(i) = lvy2(i)
491 vy3(i) = lvy3(i)
492 vy6(i) = lvy6(i)
493 vy7(i) = lvy7(i)
494
495 vz2(i) = lvz2(i)
496 vz3(i) = lvz3(i)
497 vz6(i) = lvz6(i)
498 vz7(i) = lvz7(i)
499
500 ifoam(nc2(i)) = 1
501 ifoam(nc3(i)) = 1
502 ifoam(nc6(i)) = 1
503 ifoam(nc7(i)) = 1
504
505 ENDIF
506 ii=ale_connect%ee_connect%connected(iad2 + 6 - 1)
507 IF(ii == 0)THEN
508
509 vdx1(i) = zero
510 vdx4(i) = zero
511 vdx5(i) = zero
512 vdx8(i) = zero
513
514 vdy1(i) = zero
515 vdy4(i) = zero
516 vdy5(i) = zero
517 vdy8(i) = zero
518
519 vdz1(i) = zero
520 vdz4(i) = zero
521 vdz5(i) = zero
522 vdz8(i) = zero
523
524 vx1(i) = lvx1(i)
525 vx4(i) = lvx4(i)
526 vx5(i) = lvx5(i)
527 vx8(i) = lvx8(i)
528
529 vy1(i) = lvy1(i)
530 vy4(i) = lvy4(i)
531 vy5(i) = lvy5(i)
532 vy8(i) = lvy8(i)
533
534 vz1(i) = lvz1(i)
535 vz4(i) = lvz4(i)
536 vz5(i) = lvz5(i)
537 vz8(i) = lvz8(i)
538
539 ifoam(nc1(i)) = 1
540 ifoam(nc4(i)) = 1
541 ifoam(nc5(i)) = 1
542 ifoam(nc8(i)) = 1
543 ENDIF
544 ENDDO
545#include "lockoff.inc"
546 ELSEIF(iclos == 2 .AND. intbag > 0 ) THEN
547#include "lockon.inc"
548 DO i=1,nel
549 iad2 = ale_connect%ee_connect%iad_connect(i + nft)
550 ii=ale_connect%ee_connect%connected(iad2 + 1 - 1)
551 IF(ii == 0 .AND. rexch(i,1) < em15 )THEN
552
553 vdx1(i) = zero
554 vdx2(i) = zero
555 vdx3(i) = zero
556 vdx4(i) = zero
557
558 vdy1(i) = zero
559 vdy2(i) = zero
560 vdy3(i) = zero
561 vdy4(i) = zero
562
563 vdz1(i) = zero
564 vdz2(i) = zero
565 vdz3(i) = zero
566 vdz4(i) = zero
567
568 vx1(i) = lvx1(i)
569 vx2(i) = lvx2(i)
570 vx3(i) = lvx3(i)
571 vx4(i) = lvx4(i)
572
573
574 vy1(i) = lvy1(i)
575 vy2(i) = lvy2(i)
576 vy3(i) = lvy3(i)
577 vy4(i) = lvy4(i)
578
579 vz1(i) = lvz1(i)
580 vz2(i) = lvz2(i)
581 vz3(i) = lvz3(i)
582 vz4(i) = lvz4(i)
583
584 ifoam(nc1(i)) = 1
585 ifoam(nc2(i)) = 1
586 ifoam(nc3(i)) = 1
587 ifoam(nc4(i)) = 1
588 ENDIF
589 ii=ale_connect%ee_connect%connected(iad2 + 2 - 1)
590 IF(ii == 0 .AND. rexch(i,2) < em15) THEN
591
592 vdx3(i) = zero
593 vdx4(i) = zero
594 vdx7(i) = zero
595 vdx8(i) = zero
596
597 vdy3(i) = zero
598 vdy4(i) = zero
599 vdy7(i) = zero
600 vdy8(i) = zero
601
602 vdz3(i) = zero
603 vdz4(i) = zero
604 vdz7(i) = zero
605 vdz8(i) = zero
606
607 vx3(i) = lvx3(i)
608 vx4(i) = lvx4(i)
609 vx7(i) = lvx7(i)
610 vx8(i) = lvx8(i)
611
612 vy3(i) = lvy3(i)
613 vy4(i) = lvy4(i)
614 vy7(i) = lvy7(i)
615 vy8(i) = lvy8(i)
616
617 vz3(i) = lvz3(i)
618 vz4(i) = lvz4(i)
619 vz7(i) = lvz7(i)
620 vz8(i) = lvz8(i)
621
622 ifoam(nc3(i)) = 1
623 ifoam(nc4(i)) = 1
624 ifoam(nc7(i)) = 1
625 ifoam(nc8(i)) = 1
626 ENDIF
627 ii=ale_connect%ee_connect%connected(iad2 + 3 - 1)
628 IF(ii == 0 .AND. rexch(i,3) < em15)THEN
629
630 vdx5(i) = zero
631 vdx6(i) = zero
632 vdx7(i) = zero
633 vdx8(i) = zero
634
635 vdy5(i) = zero
636 vdy6(i) = zero
637 vdy7(i) = zero
638 vdy8(i) = zero
639
640 vdz5(i) = zero
641 vdz6(i) = zero
642 vdz7(i) = zero
643 vdz8(i) = zero
644
645 vx5(i) = lvx5(i)
646 vx6(i) = lvx6(i)
647 vx7(i) = lvx7(i)
648 vx8(i) = lvx8(i)
649
650 vy5(i) = lvy5(i)
651 vy6(i) = lvy6(i)
652 vy7(i) = lvy7(i)
653 vy8(i) = lvy8(i)
654
655 vz5(i) = lvz5(i)
656 vz6(i) = lvz6(i)
657 vz7(i) = lvz7(i)
658 vz8(i) = lvz8(i)
659
660 ifoam(nc5(i)) = 1
661 ifoam(nc6(i)) = 1
662 ifoam(nc7(i)) = 1
663 ifoam(nc8(i)) = 1
664
665 ENDIF
666 ii=ale_connect%ee_connect%connected(iad2 + 4 - 1)
667 IF(ii == 0 .AND. rexch(i,4) < em15)THEN
668
669 vdx1(i) = zero
670 vdx2(i) = zero
671 vdx5(i) = zero
672 vdx6(i) = zero
673
674 vdy1(i) = zero
675 vdy2(i) = zero
676 vdy5(i) = zero
677 vdy6(i) = zero
678
679 vdz1(i) = zero
680 vdz2(i) = zero
681 vdz5(i) = zero
682 vdz6(i) = zero
683
684 vx1(i) = lvx1(i)
685 vx2(i) = lvx2(i)
686 vx5(i) = lvx5(i)
687 vx6(i) = lvx6(i)
688
689 vy1(i) = lvy1(i)
690 vy2(i) = lvy2(i)
691 vy5(i) = lvy5(i)
692 vy6(i) = lvy6(i)
693
694 vz1(i) = lvz1(i)
695 vz2(i) = lvz2(i)
696 vz5(i) = lvz5(i)
697 vz6(i) = lvz6(i)
698
699 ifoam(nc1(i)) = 1
700 ifoam(nc2(i)) = 1
701 ifoam(nc5(i)) = 1
702 ifoam(nc6(i)) = 1
703 ENDIF
704 ii=ale_connect%ee_connect%connected(iad2 + 5 - 1)
705 IF(ii == 0 .AND. rexch(i,5) < em15)THEN
706
707 vdx2(i) = zero
708 vdx3(i) = zero
709 vdx6(i) = zero
710 vdx7(i) = zero
711
712 vdy2(i) = zero
713 vdy3(i) = zero
714 vdy6(i) = zero
715 vdy7(i) = zero
716
717 vdz2(i) = zero
718 vdz3(i) = zero
719 vdz6(i) = zero
720 vdz7(i) = zero
721
722 vx2(i) = lvx2(i)
723 vx3(i) = lvx3(i)
724 vx6(i) = lvx6(i)
725 vx7(i) = lvx7(i)
726
727 vy2(i) = lvy2(i)
728 vy3(i) = lvy3(i)
729 vy6(i) = lvy6(i)
730 vy7(i) = lvy7(i)
731
732 vz2(i) = lvz2(i)
733 vz3(i) = lvz3(i)
734 vz6(i) = lvz6(i)
735 vz7(i) = lvz7(i)
736
737 ifoam(nc2(i)) = 1
738 ifoam(nc3(i)) = 1
739 ifoam(nc6(i)) = 1
740 ifoam(nc7(i)) = 1
741 ENDIF
742 ii=ale_connect%ee_connect%connected(iad2 + 6 - 1)
743 IF(ii == 0 .AND. rexch(i,6) < em15)THEN
744
745 vdx1(i) = zero
746 vdx4(i) = zero
747 vdx5(i) = zero
748 vdx8(i) = zero
749
750 vdy1(i) = zero
751 vdy4(i) = zero
752 vdy5(i) = zero
753 vdy8(i) = zero
754
755 vdz1(i) = zero
756 vdz4(i) = zero
757 vdz5(i) = zero
758 vdz8(i) = zero
759
760 vx1(i) = lvx1(i)
761 vx4(i) = lvx4(i)
762 vx5(i) = lvx5(i)
763 vx8(i) = lvx8(i)
764
765 vy1(i) = lvy1(i)
766 vy4(i) = lvy4(i)
767 vy5(i) = lvy5(i)
768 vy8(i) = lvy8(i)
769
770 vz1(i) = lvz1(i)
771 vz4(i) = lvz4(i)
772 vz5(i) = lvz5(i)
773 vz8(i) = lvz8(i)
774
775 ifoam(nc1(i)) = 1
776 ifoam(nc4(i)) = 1
777 ifoam(nc5(i)) = 1
778 ifoam(nc8(i)) = 1
779 ENDIF
780 ENDDO
781#include "lockoff.inc"
782 ENDIF
783C----------------------------
784C CALCULATION OF CONVECTIVE FLUXES
785C MASSES SET TO ZERO
786C-----------------------------
787C
788 CALL aleflux(pm ,ixs ,
789 . x1 ,x2 ,x3 ,x4 ,
790 . x5 ,x6 ,x7 ,x8 ,y1 ,y2 ,y3 ,
791 . y4 ,y5 ,y6 ,y7 ,y8 ,z1 ,z2 ,
792 . z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
793 . vdx1,vdx2,vdx3,vdx4,vdx5,vdx6,vdx7,vdx8,
794 . vdy1,vdy2,vdy3,vdy4,vdy5,vdy6,vdy7,vdy8,
795 . vdz1,vdz2,vdz3,vdz4,vdz5,vdz6,vdz7,vdz8,
796 . flux,flu1,ale_connect,rexch )
797
798 IF(icongas == 0) THEN
799#include "lockon.inc"
800 DO i=1,nel
801 iad2 = ale_connect%ee_connect%iad_connect(i + nft)
802 ii=ale_connect%ee_connect%connected(iad2 + 1 - 1)
803 IF(ii == 0 .AND. flux(i,1) < zero )THEN
804
805 vdx1(i) = zero
806 vdx2(i) = zero
807 vdx3(i) = zero
808 vdx4(i) = zero
809
810 vdy1(i) = zero
811 vdy2(i) = zero
812 vdy3(i) = zero
813 vdy4(i) = zero
814
815 vdz1(i) = zero
816 vdz2(i) = zero
817 vdz3(i) = zero
818 vdz4(i) = zero
819
820 vx1(i) = lvx1(i)
821 vx2(i) = lvx2(i)
822 vx3(i) = lvx3(i)
823 vx4(i) = lvx4(i)
824
825
826 vy1(i) = lvy1(i)
827 vy2(i) = lvy2(i)
828 vy3(i) = lvy3(i)
829 vy4(i) = lvy4(i)
830
831 vz1(i) = lvz1(i)
832 vz2(i) = lvz2(i)
833 vz3(i) = lvz3(i)
834 vz4(i) = lvz4(i)
835
836 ifoam(nc1(i)) = 1
837 ifoam(nc2(i)) = 1
838 ifoam(nc3(i)) = 1
839 ifoam(nc4(i)) = 1
840 ENDIF
841 ii=ale_connect%ee_connect%connected(iad2 + 2 - 1)
842 IF(ii == 0 .AND. flux(i,2) < zero) THEN
843
844 vdx3(i) = zero
845 vdx4(i) = zero
846 vdx7(i) = zero
847 vdx8(i) = zero
848
849 vdy3(i) = zero
850 vdy4(i) = zero
851 vdy7(i) = zero
852 vdy8(i) = zero
853
854 vdz3(i) = zero
855 vdz4(i) = zero
856 vdz7(i) = zero
857 vdz8(i) = zero
858
859 vx3(i) = lvx3(i)
860 vx4(i) = lvx4(i)
861 vx7(i) = lvx7(i)
862 vx8(i) = lvx8(i)
863
864 vy3(i) = lvy3(i)
865 vy4(i) = lvy4(i)
866 vy7(i) = lvy7(i)
867 vy8(i) = lvy8(i)
868
869 vz3(i) = lvz3(i)
870 vz4(i) = lvz4(i)
871 vz7(i) = lvz7(i)
872 vz8(i) = lvz8(i)
873
874 ifoam(nc3(i)) = 1
875 ifoam(nc4(i)) = 1
876 ifoam(nc7(i)) = 1
877 ifoam(nc8(i)) = 1
878 ENDIF
879 ii=ale_connect%ee_connect%connected(iad2 + 3 - 1)
880 IF(ii == 0 .AND. flux(i,3) < zero)THEN
881
882 vdx5(i) = zero
883 vdx6(i) = zero
884 vdx7(i) = zero
885 vdx8(i) = zero
886
887 vdy5(i) = zero
888 vdy6(i) = zero
889 vdy7(i) = zero
890 vdy8(i) = zero
891
892 vdz5(i) = zero
893 vdz6(i) = zero
894 vdz7(i) = zero
895 vdz8(i) = zero
896
897 vx5(i) = lvx5(i)
898 vx6(i) = lvx6(i)
899 vx7(i) = lvx7(i)
900 vx8(i) = lvx8(i)
901
902 vy5(i) = lvy5(i)
903 vy6(i) = lvy6(i)
904 vy7(i) = lvy7(i)
905 vy8(i) = lvy8(i)
906
907 vz5(i) = lvz5(i)
908 vz6(i) = lvz6(i)
909 vz7(i) = lvz7(i)
910 vz8(i) = lvz8(i)
911
912 ifoam(nc5(i)) = 1
913 ifoam(nc6(i)) = 1
914 ifoam(nc7(i)) = 1
915 ifoam(nc8(i)) = 1
916
917 ENDIF
918 ii=ale_connect%ee_connect%connected(iad2 + 4 - 1)
919 IF(ii == 0 .AND. flux(i,4) < zero)THEN
920
921 vdx1(i) = zero
922 vdx2(i) = zero
923 vdx5(i) = zero
924 vdx6(i) = zero
925
926 vdy1(i) = zero
927 vdy2(i) = zero
928 vdy5(i) = zero
929 vdy6(i) = zero
930
931 vdz1(i) = zero
932 vdz2(i) = zero
933 vdz5(i) = zero
934 vdz6(i) = zero
935
936 vx1(i) = lvx1(i)
937 vx2(i) = lvx2(i)
938 vx5(i) = lvx5(i)
939 vx6(i) = lvx6(i)
940
941 vy1(i) = lvy1(i)
942 vy2(i) = lvy2(i)
943 vy5(i) = lvy5(i)
944 vy6(i) = lvy6(i)
945
946 vz1(i) = lvz1(i)
947 vz2(i) = lvz2(i)
948 vz5(i) = lvz5(i)
949 vz6(i) = lvz6(i)
950
951 ifoam(nc1(i)) = 1
952 ifoam(nc2(i)) = 1
953 ifoam(nc5(i)) = 1
954 ifoam(nc6(i)) = 1
955 ENDIF
956 ii=ale_connect%ee_connect%connected(iad2 + 5 - 1)
957 IF(ii == 0 .AND. flux(i,5) < zero)THEN
958
959 vdx2(i) = zero
960 vdx3(i) = zero
961 vdx6(i) = zero
962 vdx7(i) = zero
963
964 vdy2(i) = zero
965 vdy3(i) = zero
966 vdy6(i) = zero
967 vdy7(i) = zero
968
969 vdz2(i) = zero
970 vdz3(i) = zero
971 vdz6(i) = zero
972 vdz7(i) = zero
973
974 vx2(i) = lvx2(i)
975 vx3(i) = lvx3(i)
976 vx6(i) = lvx6(i)
977 vx7(i) = lvx7(i)
978
979 vy2(i) = lvy2(i)
980 vy3(i) = lvy3(i)
981 vy6(i) = lvy6(i)
982 vy7(i) = lvy7(i)
983
984 vz2(i) = lvz2(i)
985 vz3(i) = lvz3(i)
986 vz6(i) = lvz6(i)
987 vz7(i) = lvz7(i)
988
989 ifoam(nc2(i)) = 1
990 ifoam(nc3(i)) = 1
991 ifoam(nc6(i)) = 1
992 ifoam(nc7(i)) = 1
993 ENDIF
994 ii=ale_connect%ee_connect%connected(iad2 + 6 - 1)
995 IF(ii == 0 .AND. flux(i,6) < zero)THEN
996
997 vdx1(i) = zero
998 vdx4(i) = zero
999 vdx5(i) = zero
1000 vdx8(i) = zero
1001
1002 vdy1(i) = zero
1003 vdy4(i) = zero
1004 vdy5(i) = zero
1005 vdy8(i) = zero
1006
1007 vdz1(i) = zero
1008 vdz4(i) = zero
1009 vdz5(i) = zero
1010 vdz8(i) = zero
1011
1012 vx1(i) = lvx1(i)
1013 vx4(i) = lvx4(i)
1014 vx5(i) = lvx5(i)
1015 vx8(i) = lvx8(i)
1016
1017 vy1(i) = lvy1(i)
1018 vy4(i) = lvy4(i)
1019 vy5(i) = lvy5(i)
1020 vy8(i) = lvy8(i)
1021
1022 vz1(i) = lvz1(i)
1023 vz4(i) = lvz4(i)
1024 vz5(i) = lvz5(i)
1025 vz8(i) = lvz8(i)
1026
1027 ifoam(nc1(i)) = 1
1028 ifoam(nc4(i)) = 1
1029 ifoam(nc5(i)) = 1
1030 ifoam(nc8(i)) = 1
1031 ENDIF
1032 ENDDO
1033#include "lockoff.inc"
1034 ENDIF
1035
1036C-----------------------------
1037C CONVECTION OF ENERGY AND MASS ...
1038C-----------------------------
1039 nvar = 1
1040 CALL aleconve(mbuf%VAR((nvar-1)*nel+1),flux ,flu1 ,phi1 ,ale_connect ,rhoext )
1041 nvar = 2
1042 CALL aleconve(mbuf%VAR((nvar-1)*nel+1),flux ,flu1 ,phi2 ,ale_connect ,eiext )
1043C-----------
1044C Darcy force computed from flow velocity
1045C------------
1046 aa = pm(194,mat(1))
1047 bb = pm(195,mat(1))
1048 taux = pm(196,mat(1))
1049
1050 dtinv = dt1/max(dt1*dt1, em20)
1051
1052 mx = mat(1)
1053 DO i=1,nel
1054 frho0(i) =pm(192,mx)
1055 kk(i) = mbuf%VAR(21*nel + i)
1056 fac = one_over_8*(one - alpha(i))/max(em20,kk(i))
1057
1058 vdx(i)=one_over_8*(vdx1(i)+vdx2(i)+vdx3(i)+vdx4(i)+vdx5(i)+vdx6(i)+vdx7(i)+vdx8(i))
1059 vdy(i)=one_over_8*(vdy1(i)+vdy2(i)+vdy3(i)+vdy4(i)+vdy5(i)+vdy6(i)+vdy7(i)+vdy8(i))
1060 vdz(i)=one_over_8*(vdz1(i)+vdz2(i)+vdz3(i)+vdz4(i)+vdz5(i)+vdz6(i)+vdz7(i)+vdz8(i))
1061 vd2(i)=(vdx(i)**2+vdy(i)**2+vdz(i)**2)
1062C darcy forces
1063 vfe(1) = one_over_8*(vdx1(i) + vdx2(i) + vdx3(i) + vdx4(i) +vdx5(i) + vdx6(i) + vdx7(i) + vdx8(i))
1064 vfe(2) = one_over_8*(vdy1(i) + vdy2(i) + vdy3(i) + vdy4(i) +vdy5(i) + vdy6(i) + vdy7(i) + vdy8(i))
1065 vfe(3) = one_over_8*(vdz1(i) + vdz2(i) + vdz3(i) + vdz4(i) +vdz5(i) + vdz6(i) + vdz7(i) + vdz8(i))
1066C acceleration
1067C But is always A=Zero is not activated. Is the Gaz acceleration .
1068C if is required we should use the relative acceleration as velocity
1069C A= (A_gaz - A_foam).
1070 afe(1) = one_over_8*(a(1,nc1(i)) + a(1,nc2(i)) + a(1,nc3(i)) +
1071 . a(1,nc4(i)) + a(1,nc5(i)) + a(1,nc6(i)) + a(1,nc7(i)) + a(1,nc8(i)))
1072C
1073 afe(2) = one_over_8*(a(2,nc1(i)) + a(2,nc2(i)) + a(2,nc3(i)) +
1074 . a(2,nc4(i)) + a(2,nc5(i)) + a(2,nc6(i)) + a(2,nc7(i)) + a(2,nc8(i)))
1075C
1076 afe(3) = one_over_8*(a(3,nc1(i)) + a(3,nc2(i)) + a(3,nc3(i)) +
1077 . a(3,nc4(i)) + a(3,nc5(i)) + a(3,nc6(i)) + a(3,nc7(i)) + a(3,nc8(i)))
1078C
1079 dfe(i,1)=fac*(aa*vfe(1) + bb*abs(vfe(1))*vfe(1) + taux*afe(1))
1080 dfe(i,2)=fac*(aa*vfe(2) + bb*abs(vfe(2))*vfe(2) + taux*afe(2))
1081 dfe(i,3)=fac*(aa*vfe(3) + bb*abs(vfe(3))*vfe(3) + taux*afe(3))
1082 ENDDO
1083c-----------
1084 RETURN
1085 END
subroutine aleconve(var, flux, flu1, phi, ale_connect, phiv)
Definition aleconv.F:33
subroutine aleflow(pm, mat, x, mbuf, nel, ixs, ale_connect, v, a, w, dfe, frho0, alpha, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, phi1, phi2, flux, flu1, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, vdx1, vdx2, vdx3, vdx4, vdx5, vdx6, vdx7, vdx8, vdy1, vdy2, vdy3, vdy4, vdy5, vdy6, vdy7, vdy8, vdz1, vdz2, vdz3, vdz4, vdz5, vdz6, vdz7, vdz8, vdx, vdy, vdz, vd2, lvx1, lvx2, lvx3, lvx4, lvx5, lvx6, lvx7, lvx8, lvy1, lvy2, lvy3, lvy4, lvy5, lvy6, lvy7, lvy8, lvz1, lvz2, lvz3, lvz4, lvz5, lvz6, lvz7, lvz8, por, icontact, ifoam)
Definition aleflow.F:60
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)
Definition aleflux.F:41
#define alpha
Definition eval.h:35
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21