OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
multi_bilan.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!|| multi_bilan ../engine/source/multifluid/multi_bilan.f
25!||--- called by ------------------------------------------------------
26!|| multi_globalize ../engine/source/multifluid/multi_globalize.F
27!|| multi_update_global ../engine/source/multifluid/multi_update_global.f
28!||--- uses -----------------------------------------------------
29!|| multi_fvm_mod ../common_source/modules/ale/multi_fvm_mod.F90
30!||====================================================================
31 SUBROUTINE multi_bilan(PARTSAV, VOL, MULTI_FVM,
32 . NEL, NFT, IPARTS, GRESAV, IGRTH, GRTH)
33C-----------------------------------------------
34C M o d u l e s
35C-----------------------------------------------
36 USE multi_fvm_mod
37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C C o m m o n B l o c k s
43C-----------------------------------------------
44#include "param_c.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 my_real, INTENT(INOUT) :: partsav(npsav, *), gresav(*)
49 my_real, INTENT(IN) :: vol(*)
50 TYPE(multi_fvm_struct), INTENT(IN) :: MULTI_FVM
51 INTEGER, INTENT(IN) :: NEL, NFT, IPARTS(*), IGRTH(*), GRTH(*)
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER :: I, M
56 my_real :: ei_sav(nel), ek_sav(nel),
57 . xm_sav(nel), ym_sav(nel), zm_sav(nel), rbidon(1), va2(nel),
58 . mas(nel), off(nel), vx(nel), vy(nel), vz(nel)
59
60 rbidon(1) = zero
61 off(1:nel) = one
62 DO i = 1, nel
63 mas(i) = vol(i) * multi_fvm%RHO(i + nft)
64 vx(i) = multi_fvm%VEL(1, i + nft)
65 vy(i) = multi_fvm%VEL(2, i + nft)
66 vz(i) = multi_fvm%VEL(3, i + nft)
67 va2(i) = vx(i)**2 + vy(i)**2 + vz(i)**2
68 ENDDO
69 m = iparts(1)
70 DO i=1,nel
71 partsav(1, m) = partsav(1, m) + multi_fvm%EINT(i + nft) * vol(i)
72 partsav(2, m) = partsav(2, m) + half * mas(i) * va2(i)
73 partsav(6, m) = partsav(6, m) + mas(i)
74 partsav(3, m) = partsav(3, m) + mas(i) * vx(i)
75 partsav(4, m) = partsav(4, m) + mas(i) * vy(i)
76 partsav(5, m) = partsav(5, m) + mas(i) * vz(i)
77 ENDDO
78
79 END SUBROUTINE multi_bilan
#define my_real
Definition cppsort.cpp:32
subroutine multi_bilan(partsav, vol, multi_fvm, nel, nft, iparts, gresav, igrth, grth)
Definition multi_bilan.F:33
subroutine multi_update_global(ng, elbuf_tab, iparg, itask, multi_fvm, partsav, iparts, gresav, igrth, grth, volnew, pred, timestep)