29 . IXS, IXQ, IXTG, XGRID, WGRID)
37#include "implicit_f.inc"
48 TYPE(multi_fvm_struct),
INTENT(INOUT) :: MULTI_FVM
49 INTEGER,
INTENT(IN) :: NELEM, ELEM_LIST(NELEM), FACE_LIST(NELEM)
50 INTEGER,
INTENT(IN) :: IXS(NIXS, *), IXQ(, *), IXTG(NIXTG, *)
51 my_real,
INTENT(IN) :: xgrid(3, *), wgrid(3, *)
55 INTEGER :: IELEM, ELEMID, NODE_ID
56 INTEGER :: KFACE, NB_NOD_FOUND, KNOD, , JJ
57 my_real :: x1(3), x2(3), x3(3), x4(3), p, normvel, vx, vy, vz, ssp, surf, nx, ny, nz
58 my_real :: rho, sstar, pstar, pfac, sl, sr, wfac(3), vii(5), vjj(5), vel2, normalw
59 my_real :: fii(5), fjj(5), viistar(5), vjjstar(5), fiistar(5), fjjstar(5), pp(5)
60 INTEGER :: NODE1, NODE2, IMAT
65 elemid = elem_list(ielem)
68 kface = face_list(ielem)
70 nx = multi_fvm%FACE_DATA%NORMAL(1, kface, elemid)
72 nz = multi_fvm%FACE_DATA%NORMAL(3, kface, elemid)
73 surf = multi_fvm%FACE_DATA%SURF(kface, elemid)
74 wfac(1:3) = multi_fvm%FACE_DATA%WFAC(1:3, kface, elemid)
75 vx = multi_fvm%VEL(1, elemid)
76 vy = multi_fvm%VEL(2, elemid)
77 vz = multi_fvm%VEL(3, elemid)
78 normvel = vx * nx + vy * ny + vz * nz
79 normalw = wfac(1) * nx + wfac(2) * ny + wfac(3) * nz
80 ssp = multi_fvm%SOUND_SPEED(elemid)
81 p = multi_fvm%PRES(elemid)
82 rho = multi_fvm%RHO(elemid)
84 vel2 = vx * vx + vy * vy + vz * vz
90 vii(5) = multi_fvm%EINT(elemid) + half * rho * vel2
92 fii(1) = vii(1) * normvel
93 fii(2) = vii(2) * normvel + p * nx
94 fii(3) = vii(3) * normvel + p * ny
95 fii(4) = vii(4) * normvel + p * nz
96 fii(5) = (vii(5) + p) * normvel
98 multi_fvm%FLUXES(1:5, kface, elemid) = (fii(1:5) - normalw * vii(1:5)) * surf
99 multi_fvm%FLUXES(6, kface, elemid) = surf * normvel
101 IF (multi_fvm%NBMAT > 1)
THEN
102 multi_fvm%FLUXES(1, kface, elemid) = zero
103 DO imat = 1, multi_fvm%NBMAT
104 vii(1) = multi_fvm%PHASE_ALPHA(imat, elemid)
105 vii(2) = multi_fvm%PHASE_ALPHA(imat, elemid) *
106 . multi_fvm%PHASE_RHO(imat, elemid)
107 vii(3) = multi_fvm%PHASE_ALPHA(imat, elemid) *
108 . multi_fvm%PHASE_EINT(imat, elemid)
109 fii(1:3) = vii(1:3) * normvel
110 multi_fvm%SUBVOL_FLUXES(imat, kface, elemid) =
112 multi_fvm%SUBMASS_FLUXES(imat, kface, elemid) =
113 . (fii(2) - normalw * vii(2)) * surf
114 multi_fvm%SUBENER_FLUXES(imat, kface, elemid) =
115 . (fii(3) - normalw * vii(3)) * surf
116 multi_fvm%FLUXES(1, kface, elemid) = multi_fvm%FLUXES(1, kface, elemid) +
117 . (fii(2) - normalw * vii(2)) * surf