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