MFIX  2016-1
vf_gs_x.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2 ! !
3 ! Subroutine: VF_gs_X !
4 ! Author: M. Syamlal Date: 20-MAY-96 !
5 ! !
6 ! Purpose: Calculate the average drag coefficient at i+1/2, j, k and !
7 ! multiply with u-momentum cell volume. !
8 ! !
9 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
10 
11  SUBROUTINE vf_gs_x(VXF_GS)
12 
13 !-----------------------------------------------
14 ! Modules
15 !-----------------------------------------------
16  USE compar
17  USE discretelement
18  USE drag
19  USE fun_avg
20  USE functions
21  USE geometry
22  USE indices
23  USE param
24  USE param1
25  USE physprop
26 
27  IMPLICIT NONE
28 !-----------------------------------------------
29 ! Dummy arguments
30 !-----------------------------------------------
31 ! Volume x Drag
32  DOUBLE PRECISION, INTENT(OUT) :: VxF_gs(dimension_3, dimension_m)
33 !-----------------------------------------------
34 ! Local variables
35 !-----------------------------------------------
36 ! Indices
37  INTEGER :: I, IJK, IJKE
38 ! Index of continuum solids phases
39  INTEGER :: M
40 !-----------------------------------------------
41 
42  DO m = 1, smax
43  DO ijk = ijkstart3, ijkend3
44  IF(ip_at_e(ijk)) THEN
45  vxf_gs(ijk,m) = zero
46  ELSE
47  i = i_of(ijk)
48  ijke = east_of(ijk)
49  vxf_gs(ijk,m) = vol_u(ijk) * &
50  avg_x(f_gs(ijk,m),f_gs(ijke,m),i)
51  ENDIF
52  ENDDO
53  ENDDO
54 
55 ! Calculate the combined effect for all discrete solids.
56  IF(discrete_element .AND. .NOT.des_oneway_coupled) THEN
57  DO ijk = ijkstart3, ijkend3
58  IF(ip_at_e(ijk)) THEN
59  vxf_gds(ijk) = zero
60  ELSE
61  i = i_of(ijk)
62  ijke = east_of(ijk)
63  vxf_gds(ijk) = vol_u(ijk) * &
64  avg_x(f_gds(ijk),f_gds(ijke),i)
65  ENDIF
66  ENDDO
67  ENDIF
68 
69  RETURN
70  END SUBROUTINE vf_gs_x
71 
72 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
73 ! C
74 ! Subroutine: VF_SS_X C
75 ! Purpose: Calculate the average Solid-Solid drag coefficient at C
76 ! i+1/2, j, k and multiply with u-momentum cell volume. C
77 ! C
78 ! Author: S. Dartevelle, LANL Date: 28-FEB-04 C
79 ! Reviewer: Date: C
80 ! C
81 ! Literature/Document References: C
82 ! C
83 ! Variables referenced: C
84 ! Variables modified: C
85 ! Local variables: C
86 ! C
87 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
88 
89  SUBROUTINE vf_ss_x(VXF_SS)
90 
91 !-----------------------------------------------
92 ! Modules
93 !-----------------------------------------------
94  USE param
95  USE param1
96  USE geometry
97  USE indices
98  USE physprop
99  USE compar
100  USE drag
101  USE discretelement
102  USE fun_avg
103  USE functions
104 
105  IMPLICIT NONE
106 !-----------------------------------------------
107 ! Dummy arguments
108 !-----------------------------------------------
109 ! Volume x Drag
110  DOUBLE PRECISION, INTENT(OUT) :: VxF_SS(dimension_3, dimension_lm)
111 !-----------------------------------------------
112 ! Local variables
113 !-----------------------------------------------
114 ! Indices
115  INTEGER :: I, IJK, IJKE
116 ! Index of continuum solids phases
117  INTEGER :: L, M, LM
118 !-----------------------------------------------
119 
120 ! initialize every call
121  vxf_ss(:,:) = zero
122 
123  DO m = 1, mmax
124  DO l = 1, mmax
125  lm = funlm(l,m)
126  IF (l .NE. m) THEN
127  DO ijk = ijkstart3, ijkend3
128  IF (.NOT.ip_at_e(ijk)) THEN
129  i = i_of(ijk)
130  ijke = east_of(ijk)
131  vxf_ss(ijk,lm) = avg_x(f_ss(ijk,lm),f_ss(ijke,lm),i)*vol_u(ijk)
132  ELSE !Impermeable wall
133  vxf_ss(ijk,lm) = zero
134  ENDIF
135  ENDDO
136  ENDIF
137  ENDDO ! end do loop (l=1,mmax)
138  ENDDO ! end do loop (m=1,mmax
139 
140  IF (des_continuum_hybrid) THEN
141  DO m = 1, mmax
142  DO ijk = ijkstart3, ijkend3
143  IF (ip_at_e(ijk)) THEN
144  vxf_sds(ijk,m) = zero
145  ELSE
146  i = i_of(ijk)
147  ijke = east_of(ijk)
148  vxf_sds(ijk,m) = avg_x(f_sds(ijk,m),f_sds(ijke,m),i)*vol_u(ijk)
149  ENDIF
150  ENDDO ! end do loop (dm=1,des_mmax)
151  ENDDO ! end do loop (m=1,mmax)
152  ENDIF ! end if (discrete_element and des_continuum_hybrid)
153 
154  RETURN
155  END SUBROUTINE vf_ss_x
156 
integer, dimension(:), allocatable i_of
Definition: indices_mod.f:45
integer ijkend3
Definition: compar_mod.f:80
integer dimension_lm
Definition: param1_mod.f:13
integer dimension_3
Definition: param_mod.f:11
double precision, dimension(:,:), allocatable f_ss
Definition: drag_mod.f:17
Definition: drag_mod.f:11
subroutine vf_gs_x(VXF_GS)
Definition: vf_gs_x.f:12
integer mmax
Definition: physprop_mod.f:19
Definition: param_mod.f:2
integer ijkstart3
Definition: compar_mod.f:80
double precision, dimension(:,:), allocatable f_gs
Definition: drag_mod.f:14
double precision, dimension(:), allocatable vol_u
Definition: geometry_mod.f:224
integer smax
Definition: physprop_mod.f:22
subroutine vf_ss_x(VXF_SS)
Definition: vf_gs_x.f:90
integer dimension_m
Definition: param_mod.f:18
double precision, parameter zero
Definition: param1_mod.f:27