MFIX  2016-1
calc_drag_des.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2 ! !
3 ! Subroutine: CALC_DRAG_DES !
4 ! !
5 ! Purpose: This subroutine is called from DES routines. It calls !
6 ! functions that calcultate the drag force acting on particles. No !
7 ! field variables are updated. !
8 ! !
9 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
10  SUBROUTINE calc_drag_des
11 
12 ! Modules
13 !---------------------------------------------------------------------//
14  use discretelement, only: des_continuum_coupled
15  use discretelement, only: des_continuum_hybrid
16  use discretelement, only: des_explicitly_coupled
17  use discretelement, only: drag_fc, fc, max_pip
18  use functions, only: is_normal
21  IMPLICIT NONE
22 
23 ! Local variables
24 !---------------------------------------------------------------------//
25  INTEGER :: II
26 !......................................................................!
27 
28 ! Apply the drag force calculated by the gas phase.
29  IF(des_explicitly_coupled) THEN
30 
31  IF(des_continuum_coupled) THEN
32 !$omp parallel do default(none) private(II) &
33 !$omp shared(FC, DRAG_FC, MAX_PIP)
34  DO ii = 1, max_pip
35  IF(is_normal(ii)) &
36  fc(ii,:) = fc(ii,:) + drag_fc(ii,:)
37  ENDDO
38 !$omp end parallel do
39  ENDIF
40 
41 
42  ELSE
43 
44 ! Calculate gas-solids drag force on particle
45  IF(des_continuum_coupled) THEN
46  SELECT CASE(des_interp_scheme_enum)
47  CASE(des_interp_garg) ; CALL drag_gs_des0
48  CASE DEFAULT; CALL drag_gs_des1
49  END SELECT
50  ENDIF
51 
52 ! Calculate solids-solids drag force on particle.
53  IF(des_continuum_hybrid) THEN
54  SELECT CASE(des_interp_scheme_enum)
55  CASE DEFAULT; CALL drag_ss_dem_noninterp
56  END SELECT
57  ENDIF
58  ENDIF
59 
60  RETURN
61  END SUBROUTINE calc_drag_des
subroutine drag_ss_dem_noninterp
integer, parameter des_interp_garg
integer des_interp_scheme_enum
subroutine calc_drag_des
Definition: calc_drag_des.f:11
subroutine drag_gs_des1
Definition: drag_gs_des1.f:20
subroutine drag_gs_des0
Definition: drag_gs_des0.f:15