15 SUBROUTINE calc_d_e(A_M, VXF_GS, VXF_SS, D_E, IER)
24 use discretelement
, only: des_continuum_coupled
26 use discretelement
, only: des_continuum_hybrid
28 use discretelement
, only: vxf_gds, vxf_sds
44 INTEGER,
INTENT(INOUT) :: IER
61 DOUBLE PRECISION,
dimension(:,:),
allocatable :: AM0
63 LOGICAL :: ANY_SOLIDS_X_MOMENTUM
76 IF(des_continuum_coupled)
THEN 77 am0(:,0) = am0(:,0) - vxf_gds(:)
78 IF (des_continuum_hybrid) &
85 IF(any_solids_x_momentum)
THEN 91 ELSEIF(any_solids_x_momentum)
THEN 161 DOUBLE PRECISION,
INTENT(IN) :: VxF_ss(
dimension_3, dimension_lm)
169 INTEGER :: LM, M, L, LPL, LP
170 INTEGER :: I, IJK, IJKE
174 DOUBLE PRECISION :: EPGA
176 DOUBLE PRECISION :: AREA_FACE
178 DOUBLE PRECISION :: SUM_VXF_GS
182 DOUBLE PRECISION :: SUM_VXF_SS_wt_M
185 DOUBLE PRECISION :: DEN_MGas, NUM_MGas
197 DOUBLE PRECISION :: NUM_MSol_LGas
201 DOUBLE PRECISION :: DEN_MSol_LGas
203 DOUBLE PRECISION :: TMPdp
214 IF (ip_at_e(ijk) .OR. mflow_at_e(ijk))
THEN 224 epga = avg_x(
ep_g(ijk),
ep_g(ijke),i)
228 epsa(m) = avg_x(
ep_s(ijk,m),
ep_s(ijke,m),i)
230 sum_vxf_gs = sum_vxf_gs + vxf_gs(ijk,m)
236 sum_vxf_ss(m) = sum_vxf_ss(m) + vxf_ss(ijk,lm)
245 IF (momentum_x_eq(m))
THEN 246 num_mgas = num_mgas + (epsa(m)*vxf_gs(ijk,m)/ &
247 ((-am0(ijk,m)) + vxf_gs(ijk,m) + sum_vxf_ss(m) + &
249 den_mgas = den_mgas + (vxf_gs(ijk,m)* &
250 ((-am0(ijk,m))+sum_vxf_ss(m))/ &
251 ((-am0(ijk,m))+vxf_gs(ijk,m)+sum_vxf_ss(m)+ &
254 den_mgas = den_mgas + vxf_gs(ijk,m)
262 tmpdp = -am0(ijk,0) + den_mgas
264 d_e(ijk,0) =
p_scale*area_face/tmpdp
270 IF(momentum_x_eq(m))
THEN 271 tmpdp = -am0(ijk,m) + vxf_gs(ijk,m)
273 d_e(ijk,m) = d_e(ijk,0)*vxf_gs(ijk,m)/tmpdp
287 tmpdp = -am0(ijk,0) + den_mgas
289 d_e(ijk,0) =
p_scale*area_face*(epga+num_mgas)/tmpdp
296 num_msol_lgas = vxf_gs(ijk,m)*epga/ &
298 den_msol_lgas = vxf_gs(ijk,m)*( &
299 ((-am0(ijk,0)) + (sum_vxf_gs - vxf_gs(ijk,m)))/ &
303 num_msol_lsol(m) =
zero 304 den_msol_lsol(m) =
zero 308 sum_vxf_ss_wt_m =
zero 310 IF((lp /= l) .AND. (lp /= m) )
THEN 314 sum_vxf_ss_wt_m + vxf_ss(ijk,lpl)
318 IF(momentum_x_eq(l))
THEN 319 num_msol_lsol(m) = num_msol_lsol(m) + &
320 ( vxf_ss(ijk,lm)*epsa(l)/ &
321 ((-am0(ijk,l))+vxf_gs(ijk,l)+sum_vxf_ss(l)+ &
324 den_msol_lsol(m) = den_msol_lsol(m) + &
325 vxf_ss(ijk,lm)*(((-am0(ijk,l))+ &
326 vxf_gs(ijk,l)+sum_vxf_ss_wt_m)/ &
327 ((-am0(ijk,l))+vxf_gs(ijk,l)+sum_vxf_ss(l)+ &
331 den_msol_lsol(m) + vxf_ss(ijk,lm)
337 IF(momentum_x_eq(m))
THEN 338 tmpdp = -am0(ijk,m) + den_msol_lgas + den_msol_lsol(m)
340 d_e(ijk,m) =
p_scale*area_face * (epsa(m) + &
341 num_msol_lsol(m) + num_msol_lgas)/tmpdp
393 use functions, only: ip_at_e, mflow_at_e, east_of
424 INTEGER :: I, IJK, IJKE
428 DOUBLE PRECISION :: EPGA
430 DOUBLE PRECISION :: AREA_FACE
432 DOUBLE PRECISION :: SUM_VXF_GS
434 DOUBLE PRECISION :: TMPdp
444 IF (ip_at_e(ijk) .OR. mflow_at_e(ijk))
THEN 453 epga = avg_x(
ep_g(ijk),
ep_g(ijke),i)
456 IF (.NOT. qmomk)
THEN 459 sum_vxf_gs = sum_vxf_gs + vxf_gs(ijk,m)
464 sum_vxf_gs = sum_vxf_gs +
vol_u(ijk)* &
470 tmpdp = -am0(ijk,0) + sum_vxf_gs
473 d_e(ijk,0) =
p_scale*area_face/tmpdp
475 d_e(ijk,0) =
p_scale*area_face*epga/tmpdp
549 DOUBLE PRECISION,
INTENT(IN) :: VxF_ss(
dimension_3, dimension_lm)
558 INTEGER :: LM, M, L, LPL, LP
559 INTEGER :: I, IJK, IJKE
563 DOUBLE PRECISION :: AREA_FACE
567 DOUBLE PRECISION :: SUM_VXF_SS_wt_M
577 DOUBLE PRECISION :: TMPdp
586 IF (ip_at_e(ijk) .OR. mflow_at_e(ijk) .OR.
model_b)
THEN 598 epsa(m) = avg_x(
ep_s(ijk,m),
ep_s(ijke,m),i)
604 sum_vxf_ss(m) = sum_vxf_ss(m) + vxf_ss(ijk,lm)
611 num_msol_lsol(m) =
zero 612 den_msol_lsol(m) =
zero 616 sum_vxf_ss_wt_m =
zero 618 IF ( (lp .NE. l) .AND. (lp .NE. m) )
THEN 622 sum_vxf_ss_wt_m + vxf_ss(ijk,lpl)
625 IF (momentum_x_eq(l))
THEN 626 num_msol_lsol(m) = num_msol_lsol(m) + &
627 (vxf_ss(ijk,lm)*epsa(l) / &
628 ((-am0(ijk,l))+vxf_gs(ijk,l)+sum_vxf_ss(l)+ &
631 den_msol_lsol(m) = den_msol_lsol(m) + &
632 vxf_ss(ijk,lm)*(((-am0(ijk,l))+vxf_gs(ijk,l) + &
633 sum_vxf_ss_wt_m)/((-am0(ijk,l))+vxf_gs(ijk,l)+ &
636 den_msol_lsol(m) = den_msol_lsol(m)+vxf_ss(ijk,lm)
642 IF (momentum_x_eq(m))
THEN 643 tmpdp = -am0(ijk,m)+vxf_gs(ijk,m)+den_msol_lsol(m)
645 d_e(ijk,m) =
p_scale*area_face* &
646 (epsa(m) + num_msol_lsol(m))/tmpdp
integer, dimension(:), allocatable i_of
double precision, dimension(:), allocatable ep_g
double precision, parameter one
logical, dimension(0:dim_m) momentum_x_eq
double precision, dimension(:), allocatable ayz
double precision, parameter small_number
subroutine calc_d_e_gas_only(AM0, VXF_GS, D_E)
subroutine calc_d_e(A_M, VXF_GS, VXF_SS, D_E, IER)
double precision function ep_s(IJK, xxM)
double precision, dimension(:), allocatable vol_u
subroutine calc_d_e_gas_and_solids(AM0, VXF_GS, VXF_SS, D_E)
subroutine calc_d_e_solids_only(AM0, VXF_GS, VXF_SS, D_E)
double precision, parameter zero
double precision, dimension(:,:,:), allocatable qmomk_f_gs