File: N:\mfix\model\des\des_thermo_conv.f
1 #include "version.inc"
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 SUBROUTINE CONV_GS_DES1
22
23 use constant, only: Pi
24 Use des_thermo
25 Use discretelement
26 Use fldvar
27 Use interpolation
28 Use param1
29 use des_thermo, only: GAMMAxSA
30 use geometry, only: NO_K
31 use particle_filter, only: DES_INTERP_ON
32 use particle_filter, only: FILTER_CELL
33 use particle_filter, only: FILTER_WEIGHT
34 use particle_filter, only: FILTER_SIZE
35 use functions, only: FLUID_AT
36 use functions, only: IS_NORMAL
37 IMPLICIT NONE
38
39 DOUBLE PRECISION :: lTg, GAMMA
40 DOUBLE PRECISION :: Qcv_DT, Qcv
41 DOUBLE PRECISION :: l4Pi
42 INTEGER :: IJK, LC, NP
43
44 l4Pi = 4.0d0*Pi
45
46 DO NP=1,MAX_PIP
47 IF(.NOT.IS_NORMAL(NP)) CYCLE
48
49
50 IF(DES_INTERP_ON) THEN
51 lTg = ZERO
52 DO LC=1,FILTER_SIZE
53 IJK = FILTER_CELL(LC,NP)
54 lTg = lTg + T_G(IJK)*FILTER_WEIGHT(LC,NP)
55 ENDDO
56 ELSE
57 IJK = PIJK(NP,4)
58 lTg = T_G(IJK)
59 ENDIF
60
61 IJK = PIJK(NP,4)
62
63
64 IF(.NOT.FLUID_AT(IJK)) THEN
65 GAMMAxSA(NP) = ZERO
66 CONV_Qs(NP) = ZERO
67
68
69
70 ELSEIF(DES_EXPLICITLY_COUPLED) THEN
71 CONV_Qs(NP) = GAMMAxSA(NP)*(lTg - DES_T_s(NP))
72
73 ELSE
74
75
76 CALL CALC_GAMMA_DES(NP, GAMMA)
77 GAMMAxSA(NP) = GAMMA* l4Pi*DES_RADIUS(NP)*DES_RADIUS(NP)
78
79
80 = GAMMAxSA(NP)*(lTg - DES_T_s(NP))
81
82 (NP) = Q_Source(NP) + Qcv
83
84
85 = Qcv*DTSOLID
86 IF(DES_INTERP_ON) THEN
87 DO LC=1,FILTER_SIZE
88 CONV_SC(IJK)=CONV_Sc(IJK)-Qcv_DT*FILTER_WEIGHT(LC,NP)
89 ENDDO
90 ELSE
91 CONV_SC(IJK) = CONV_Sc(IJK) - Qcv_DT
92 ENDIF
93 ENDIF
94 ENDDO
95
96
97
98
99 RETURN
100 END SUBROUTINE CONV_GS_DES1
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120 SUBROUTINE CONV_GS_GAS1
121
122
123 use discretelement, only: DES_EXPLICITLY_COUPLED
124
125 use discretelement, only: MAX_PIP
126
127 use particle_filter, only: DES_INTERP_ON
128
129 use particle_filter, only: FILTER_CELL, FILTER_WEIGHT, FILTER_SIZE
130
131 use discretelement, only: PIJK
132
133 use des_thermo, only: DES_T_s
134
135 use des_thermo, only: CONV_Sp, CONV_Sc
136 Use discretelement, only: DES_RADIUS
137
138 use des_thermo, only: GAMMAxSA
139
140 use functions, only: FLUID_AT
141 use functions, only: IS_NORMAL
142
143 use sendrecvnode, only: DES_COLLECT_gDATA
144
145 use sendrecv, only: SEND_RECV
146
147
148
149
150 use param1, only: ZERO, ONE
151 use constant, only: Pi
152
153 IMPLICIT NONE
154
155
156 INTEGER :: NP, IJK, LC
157
158 DOUBLE PRECISION :: WEIGHT
159 DOUBLE PRECISION :: GAMMAxSAxTp, GAMMA
160 DOUBLE PRECISION :: l4Pi
161
162 l4Pi = 4.0d0*Pi
163
164
165 = ZERO
166 CONV_Sp = ZERO
167
168
169 DO NP=1,MAX_PIP
170
171 IF(.NOT.IS_NORMAL(NP)) CYCLE
172 IF(.NOT.FLUID_AT(PIJK(NP,4))) CYCLE
173
174
175 CALL CALC_GAMMA_DES(NP, GAMMA)
176
177
178
179 (NP) = GAMMA*l4Pi*DES_RADIUS(NP)*DES_RADIUS(NP)
180 GAMMAxSAxTp = GAMMAxSA(NP)*DES_T_s(NP)
181
182 IF(DES_INTERP_ON) THEN
183 DO LC=1,FILTER_SIZE
184 IJK = FILTER_CELL(LC,NP)
185 WEIGHT = FILTER_WEIGHT(LC,NP)
186
187 CONV_Sc(IJK) = CONV_Sc(IJK) + WEIGHT*GAMMAxSAxTp
188 CONV_Sp(IJK) = CONV_Sp(IJK) + WEIGHT*GAMMAxSA(NP)
189 ENDDO
190 ELSE
191 IJK = PIJK(NP,4)
192
193 CONV_Sc(IJK) = CONV_Sc(IJK) + GAMMAxSAxTp
194 CONV_Sp(IJK) = CONV_Sp(IJK) + GAMMAxSA(NP)
195 ENDIF
196
197 ENDDO
198
199
200
201 IF(DES_INTERP_ON) THEN
202 CALL DES_COLLECT_gDATA(CONV_SC)
203 CALL DES_COLLECT_gDATA(CONV_SP)
204 ENDIF
205
206
207 CALL SEND_RECV(CONV_SC, 2)
208 CALL SEND_RECV(CONV_SP, 2)
209
210 RETURN
211 END SUBROUTINE CONV_GS_GAS1
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228 SUBROUTINE ZERO_ENERGY_SOURCE
229
230 Use des_thermo
231 Use param1
232
233 IMPLICIT NONE
234
235 CONV_Sc = ZERO
236 CONV_Sp = ZERO
237
238 RETURN
239 END SUBROUTINE ZERO_ENERGY_SOURCE
240
241