18 use discretelement
, only: des_oneway_coupled
20 use discretelement
, only: drag_am, f_gds
22 use discretelement
, only: drag_bm
41 use compar, only: funijk_map_c
57 INTEGER,
INTENT(INOUT) :: IER
63 INTEGER :: I, J, K, IJK, IJMK, IJKM, IJMKM, IJKE
65 DOUBLE PRECISION :: tmp_A, tmp_B
67 DOUBLE PRECISION :: AVG_FACTOR
74 IF(des_oneway_coupled)
RETURN 79 avg_factor = merge(0.25d0, 0.5d0,
do_k)
85 DO ijk = ijkstart3, ijkend3
87 IF(.NOT.fluid_at(ijk)) cycle
93 IF (i.LT.istart2 .OR. i.GT.
iend2) cycle
94 IF (j.LT.jstart2 .OR. j.GT.
jend2) cycle
95 IF (k.LT.kstart2 .OR. k.GT.
kend2) cycle
97 ijmk = funijk_map_c(i, j-1, k)
99 tmp_a = -avg_factor*(drag_am(ijk) + drag_am(ijmk))
100 tmp_b = -avg_factor*(drag_bm(ijk,1) + drag_bm(ijmk,1))
103 ijkm = funijk_map_c(i, j, k-1)
104 ijmkm = funijk_map_c(i, j-1, k-1)
105 tmp_a = tmp_a - avg_factor* &
106 (drag_am(ijkm) + drag_am(ijmkm))
107 tmp_b = tmp_b - avg_factor* &
108 (drag_bm(ijkm,1) + drag_bm(ijmkm,1))
111 a_m(ijk,0,0) = a_m(ijk,0,0) + tmp_a*vol_u(ijk)
112 b_m(ijk,0) = b_m(ijk,0) + tmp_b*vol_u(ijk)
122 DO ijk = ijkstart3, ijkend3
123 IF(fluid_at(ijk))
THEN 127 tmp_a = avg_x(f_gds(ijk), f_gds(ijke), i)
128 tmp_b = avg_x(drag_bm(ijk,1), drag_bm(ijke,1), i)
130 a_m(ijk,0,0) = a_m(ijk,0,0) - vol_u(ijk) * tmp_a
131 b_m(ijk,0) = b_m(ijk,0) - vol_u(ijk) * tmp_b
157 use discretelement
, only: des_oneway_coupled
159 use discretelement
, only: drag_am, f_gds
161 use discretelement
, only: drag_bm
180 use compar, only: funijk_map_c
197 INTEGER,
INTENT(INOUT) :: IER
202 INTEGER :: I, J, K, IJK, IMJK, IJKM, IMJKM, IJKN
204 DOUBLE PRECISION tmp_A, tmp_B
206 DOUBLE PRECISION :: AVG_FACTOR
213 IF(des_oneway_coupled)
RETURN 217 avg_factor = merge(0.25d0, 0.5d0,
do_k)
223 DO ijk = ijkstart3, ijkend3
224 IF(.NOT.fluid_at(ijk)) cycle
230 IF (i.LT.istart2 .OR. i.GT.
iend2) cycle
231 IF (j.LT.jstart2 .OR. j.GT.
jend2) cycle
232 IF (k.LT.kstart2 .OR. k.GT.
kend2) cycle
234 imjk = funijk_map_c(i-1,j,k)
236 tmp_a = -avg_factor*(drag_am(ijk) + drag_am(imjk))
237 tmp_b = -avg_factor*(drag_bm(ijk,2) + drag_bm(imjk,2))
241 ijkm = funijk_map_c(i,j,k-1)
242 imjkm = funijk_map_c(i-1,j,k-1)
244 tmp_a = tmp_a - avg_factor* &
245 (drag_am(ijkm) + drag_am(imjkm))
246 tmp_b = tmp_b - avg_factor* &
247 (drag_bm(ijkm,2) + drag_bm(imjkm,2))
250 a_m(ijk,0,0) = a_m(ijk,0,0) + tmp_a*vol_v(ijk)
251 b_m(ijk,0) = b_m(ijk,0) + tmp_b*vol_v(ijk)
261 DO ijk = ijkstart3, ijkend3
262 IF(fluid_at(ijk))
THEN 266 tmp_a = avg_y(f_gds(ijk), f_gds(ijkn), j)
267 tmp_b = avg_y(drag_bm(ijk,2), drag_bm(ijkn,2), j)
269 a_m(ijk,0,0) = a_m(ijk,0,0) - vol_v(ijk) * tmp_a
270 b_m(ijk,0) = b_m(ijk,0) - vol_v(ijk) * tmp_b
295 use discretelement
, only: des_oneway_coupled
297 use discretelement
, only: drag_am, f_gds
299 use discretelement
, only: drag_bm
316 use compar, only: funijk_map_c
332 INTEGER,
INTENT(INOUT) :: IER
337 INTEGER :: I, J, K, IJK, IMJK, IJMK, IMJMK, IJKT
339 DOUBLE PRECISION tmp_A, tmp_B
342 DOUBLE PRECISION :: AVG_FACTOR
349 IF(des_oneway_coupled)
RETURN 359 DO ijk = ijkstart3, ijkend3
360 IF(.NOT.fluid_at(ijk)) cycle
366 IF (i.LT.istart2 .OR. i.GT.
iend2) cycle
367 IF (j.LT.jstart2 .OR. j.GT.
jend2) cycle
368 IF (k.LT.kstart2 .OR. k.GT.
kend2) cycle
370 imjk = funijk_map_c(i-1,j,k)
371 ijmk = funijk_map_c(i,j-1,k)
372 imjmk = funijk_map_c(i-1,j-1,k)
374 tmp_a = -avg_factor*(drag_am(ijk) + drag_am(imjk) + &
375 drag_am(ijmk) + drag_am(imjmk))
377 tmp_b = -avg_factor*(drag_bm(ijk,3) + drag_bm(imjk,3) + &
378 drag_bm(ijmk,3) + drag_bm(imjmk,3))
380 a_m(ijk,0,0) = a_m(ijk,0,0) + tmp_a*
vol_w(ijk)
381 b_m(ijk,0) = b_m(ijk,0) + tmp_b*
vol_w(ijk)
391 DO ijk = ijkstart3, ijkend3
392 IF(fluid_at(ijk))
THEN 396 tmp_a = avg_z(f_gds(ijk), f_gds(ijkt), k)
397 tmp_b = avg_z(drag_bm(ijk,3), drag_bm(ijkt,3), k)
399 a_m(ijk,0,0) = a_m(ijk,0,0) -
vol_w(ijk) * tmp_a
400 b_m(ijk,0) = b_m(ijk,0) -
vol_w(ijk) * tmp_b
double precision, dimension(:), allocatable vol_w
integer, dimension(:), allocatable i_of
integer, parameter des_interp_garg
subroutine gas_drag_u(A_M, B_M, IER)
integer, dimension(:), allocatable k_of
integer, dimension(:), allocatable j_of
subroutine gas_drag_w(A_M, B_M, IER)
integer des_interp_scheme_enum
double precision, dimension(:), allocatable vol_u
subroutine gas_drag_v(A_M, B_M, IER)
double precision, dimension(:), allocatable vol_v