File: /nfs/home/0/users/jenkins/mfix.git/model/qmomk/qmomk_gas_drag.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SUBROUTINE QMOMK_GAS_DRAG(A_M, B_M, IER, UV, VV, WV)
15
16
17
18 USE param
19 USE param1
20 USE parallel
21 USE matrix
22 USE scales
23 USE constant
24 USE physprop
25 USE fldvar
26 USE visc_g
27 USE rxns
28 USE run
29 USE toleranc
30 USE geometry
31 USE indices
32 USE is
33 USE tau_g
34 USE bc
35 USE compar
36 USE sendrecv
37 USE discretelement
38 USE qmom_kinetic_equation
39 USE drag
40 USE fun_avg
41 USE functions
42
43 IMPLICIT NONE
44
45
46
47
48
49
50
51
52
53 INTEGER IER
54
55
56 INTEGER IJK
57
58
59 INTEGER M, UV, VV, WV
60
61 DOUBLE PRECISION :: AVG_FACTOR
62
63 INTEGER I,J,K,IN
64
65 DOUBLE PRECISION USFCM, VSFCM, WSFCM
66 DOUBLE PRECISION A_M(DIMENSION_3, -3:3, 0:DIMENSION_M)
67 DOUBLE PRECISION B_M(DIMENSION_3, 0:DIMENSION_M)
68 DOUBLE PRECISION VXF_GS(DIMENSION_3, DIMENSION_M)
69 DOUBLE PRECISION tmp_A, tmp_B
70
71
72 = 0.25D0*(DIMN-2) + 0.5D0*(3-DIMN)
73 IF(UV.EQ.1) THEN
74 DO M = 1, MMAX
75 DO IJK = IJKSTART3, IJKEND3
76 IF(FLUID_AT(IJK)) THEN
77 I = I_OF(IJK)
78 J = J_OF(IJK)
79 K = K_OF(IJK)
80
81 DO IN = 1, QMOMK_NN
82 USFCM = AVG_X(QMOMK_U1(IN,IJK,M),QMOMK_U1(IN,EAST_OF(IJK),M),I_OF(IJK))
83 tmp_A = -AVG_X(QMOMK_F_GS(IN,IJK,M),QMOMK_F_GS(IN,EAST_OF(IJK),M),I)*VOL_U(IJK)
84 tmp_B = tmp_A*USFCM
85
86 A_M(IJK,0,0) = A_M(IJK,0,0) + tmp_A
87 B_M(IJK,0) = B_M(IJK,0) + tmp_B
88 END DO
89 END IF
90 END DO
91 END DO
92
93
94 ELSE IF(VV.EQ.1) THEN
95
96 DO M = 1, MMAX
97 DO IJK = IJKSTART3, IJKEND3
98 IF(FLUID_AT(IJK)) THEN
99 I = I_OF(IJK)
100 J = J_OF(IJK)
101 K = K_OF(IJK)
102
103 DO IN = 1, QMOMK_NN
104 VSFCM = AVG_Y(QMOMK_V1(IN,IJK,M), QMOMK_V1(IN,NORTH_OF(IJK),M),J_OF(IJK))
105 tmp_A = -AVG_Y(QMOMK_F_GS(IN,IJK,M),QMOMK_F_GS(IN,NORTH_OF(IJK),M),J)*VOL_V(IJK)
106 tmp_B = tmp_A*VSFCM
107
108 A_M(IJK,0,0) = A_M(IJK,0,0) + tmp_A
109 B_M(IJK,0) = B_M(IJK,0) + tmp_B
110 END DO
111 END IF
112
113 END DO
114 END DO
115 90 FORMAT(3(1x,i2),10(2x,E12.5))
116 close(900)
117
118 ELSE IF(WV.EQ.1) THEN
119 DO M = 1, MMAX
120 DO IJK = IJKSTART3, IJKEND3
121 IF(FLUID_AT(IJK)) THEN
122 I = I_OF(IJK)
123 J = J_OF(IJK)
124 K = K_OF(IJK)
125
126 DO IN = 1, QMOMK_NN
127 WSFCM = AVG_Z(QMOMK_W1(IN,IJK,M),QMOMK_W1(IN,TOP_OF(IJK),M),K_OF(IJK))
128 tmp_A = -AVG_Z(QMOMK_F_GS(IN,IJK,M),QMOMK_F_GS(IN,TOP_OF(IJK),M),K)*VOL_W(IJK)
129 tmp_B = tmp_A*WSFCM
130
131 A_M(IJK,0,0) = A_M(IJK,0,0) + tmp_A
132 B_M(IJK,0) = B_M(IJK,0) + tmp_B
133 END DO
134 END IF
135 END DO
136 END DO
137
138 END IF
139
140 RETURN
141 END SUBROUTINE QMOMK_GAS_DRAG
142