File: /nfs/home/0/users/jenkins/mfix.git/model/k_epsilon_prop.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 SUBROUTINE K_Epsilon_PROP( IER)
23
24
25
26
27
28
29 USE param
30 USE param1
31 USE parallel
32 USE physprop
33 USE drag
34 USE run
35 USE output
36 USE geometry
37 USE fldvar
38 USE visc_g
39 USE visc_s
40 USE trace
41 USE indices
42 USE constant
43 Use vshear
44 USE turb
45 USE toleranc
46 USE compar
47 USE TAU_G
48 USE sendrecv
49
50 USE cutcell
51 USE fun_avg
52 USE functions
53
54 IMPLICIT NONE
55
56
57
58 DIMENSION D_g(3,3)
59
60
61
62
63
64 INTEGER IER
65
66
67
68
69
70 DOUBLE PRECISION, PARAMETER :: F2O3 = 2.D0/3.D0
71
72
73
74
75
76
77 INTEGER I, J, K, IJK, IMJK, IPJK, IJMK, IJPK, IJKM, IJKP, &
78 IM, JM, KM
79 INTEGER IMJPK, IMJMK, IMJKP, IMJKM, IPJKM, IPJMK, IJMKP, &
80 IJMKM, IJPKM, I1, J1, K1
81
82
83 INTEGER M
84
85
86
87 DOUBLE PRECISION U_g_N
88
89
90 DOUBLE PRECISION U_g_S
91
92
93 DOUBLE PRECISION U_g_T
94
95
96 DOUBLE PRECISION U_g_B
97
98
99
100 DOUBLE PRECISION U_g_C
101
102
103 DOUBLE PRECISION V_g_E
104
105
106 DOUBLE PRECISION V_g_W
107
108
109 DOUBLE PRECISION V_g_T
110
111
112 DOUBLE PRECISION V_g_B
113
114
115 DOUBLE PRECISION W_g_E
116
117
118 DOUBLE PRECISION W_g_W
119
120
121 DOUBLE PRECISION W_g_N
122
123
124 DOUBLE PRECISION W_g_S
125
126
127
128 DOUBLE PRECISION W_g_C
129
130
131 DOUBLE PRECISION UGC
132
133
134 DOUBLE PRECISION VGC
135
136
137 DOUBLE PRECISION WGC
138
139
140 DOUBLE PRECISION Trace_G, Mu_gas_t
141
142
143 DOUBLE PRECISION C_Eps_Pope, Xsi_Pope, UG(3,3), D_g
144
145
146
147 DOUBLE PRECISION Tauij_gDUi_gODxj, C_MU, Sigma_k, Sigma_E, Kappa
148 DOUBLE PRECISION Pos_Tauij_gDUi_gODxj, Neg_Tauij_gDUi_gODxj
149 DOUBLE PRECISION Ceps_1, Ceps_2, C_Eps_3, Check_Log
150 DOUBLE PRECISION Pos_PI_kq_2, Neg_PI_kq_2
151
152
153 INTEGER :: P,Q
154
155
156 IF( .NOT. K_Epsilon) RETURN
157
158
159 = ONE
160
161
162
163
164
165 = 9.0D-02
166 Kappa = 0.42D+0
167 Sigma_k = 1.0D0
168 Sigma_E = 1.3D0
169 Ceps_1 = 1.44D0
170 = 1.92D0
171 C_Eps_3 = 1.2D0
172 = 0.79D0
173
174
175
176
177
178 DO IJK = IJKSTART3, IJKEND3
179 IF (FLUID_AT(IJK)) THEN
180
181
182
183
184
185
186
187
188 = I_OF(IJK)
189 J = J_OF(IJK)
190 K = K_OF(IJK)
191 IM = IM1(I)
192 JM = JM1(J)
193 KM = KM1(K)
194
195 IMJK = IM_OF(IJK)
196 IPJK = IP_OF(IJK)
197 IJMK = JM_OF(IJK)
198 IJPK = JP_OF(IJK)
199 IJKM = KM_OF(IJK)
200 IJKP = KP_OF(IJK)
201 IMJPK = IM_OF(IJPK)
202 IMJMK = IM_OF(IJMK)
203 IMJKP = IM_OF(IJKP)
204 IMJKM = IM_OF(IJKM)
205 IPJKM = IP_OF(IJKM)
206 IPJMK = IP_OF(IJMK)
207 IJMKP = JM_OF(IJKP)
208 IJMKM = JM_OF(IJKM)
209 IJPKM = JP_OF(IJKM)
210
211
212 = AVG_Y(AVG_X_E(U_G(IMJK),U_G(IJK),I),AVG_X_E(U_G(IMJPK),U_G(&
213 IJPK),I),J)
214 = AVG_Y(AVG_X_E(U_G(IMJMK),U_G(IJMK),I),AVG_X_E(U_G(IMJK),U_G&
215 (IJK),I),JM)
216 = AVG_Z(AVG_X_E(U_G(IMJK),U_G(IJK),I),AVG_X_E(U_G(IMJKP),U_G(&
217 IJKP),I),K)
218 = AVG_Z(AVG_X_E(U_G(IMJKM),U_G(IJKM),I),AVG_X_E(U_G(IMJK),U_G&
219 (IJK),I),KM)
220 = AVG_X(AVG_Y_N(V_G(IJMK),V_G(IJK)),AVG_Y_N(V_G(IPJMK),V_G(&
221 IPJK)),I)
222 = AVG_X(AVG_Y_N(V_G(IMJMK),V_G(IMJK)),AVG_Y_N(V_G(IJMK),V_G(&
223 IJK)),IM)
224 = AVG_Z(AVG_Y_N(V_G(IJMK),V_G(IJK)),AVG_Y_N(V_G(IJMKP),V_G(&
225 IJKP)),K)
226 = AVG_Z(AVG_Y_N(V_G(IJMKM),V_G(IJKM)),AVG_Y_N(V_G(IJMK),V_G(&
227 IJK)),KM)
228 = AVG_Y(AVG_Z_T(W_G(IJKM),W_G(IJK)),AVG_Z_T(W_G(IJPKM),W_G(&
229 IJPK)),J)
230 = AVG_Y(AVG_Z_T(W_G(IJMKM),W_G(IJMK)),AVG_Z_T(W_G(IJKM),W_G(&
231 IJK)),JM)
232 = AVG_X(AVG_Z_T(W_G(IJKM),W_G(IJK)),AVG_Z_T(W_G(IPJKM),W_G(&
233 IPJK)),I)
234 = AVG_X(AVG_Z_T(W_G(IMJKM),W_G(IMJK)),AVG_Z_T(W_G(IJKM),W_G(&
235 IJK)),IM)
236
237 IF (CYLINDRICAL) THEN
238
239 = AVG_X_E(U_G(IMJK),U_G(IJK),I)
240
241 = AVG_Z_T(W_G(IJKM),W_G(IJK))
242 ELSE
243 U_G_C = ZERO
244 W_G_C = ZERO
245 ENDIF
246
247
248 = AVG_X_E(U_G(IMJK),U_G(IJK),I)
249 VGC = AVG_Y_N(V_G(IJMK),V_G(IJK))
250 WGC = AVG_Z_T(W_G(IJKM),W_G(IJK))
251
252
253
254
255
256 IF(.NOT.CUT_CELL_AT(IJK)) THEN
257
258
259
260 (1,1) = (U_G(IJK)-U_G(IMJK))*ODX(I)
261 UG(1,2) = (U_G_N - U_G_S)*ODY(J)
262 UG(1,3) = (U_G_T-U_G_B)*(OX(I)*ODZ(K))-W_G_C*OX(I)
263 UG(2,1) = (V_G_E-V_G_W)*ODX(I)
264 UG(2,2) = (V_G(IJK)-V_G(IJMK))*ODY(J)
265 UG(2,3) = (V_G_T-V_G_B)*(OX(I)*ODZ(K))
266 UG(3,1) = (W_G_E - W_G_W)*ODX(I)
267 UG(3,2) = (W_G_N-W_G_S)*ODY(J)
268 UG(3,3) = (W_G(IJK)-W_G(IJKM))*(OX(I)*ODZ(K)) + U_G_C*OX(I)
269
270
271
272
273 (1,1) = (U_G(IJK)-U_G(IMJK))*ODX(I)
274 D_G(1,2) = HALF*((U_G_N - U_G_S)*ODY(J)+(V_G_E-V_G_W)*ODX(I))
275 D_G(1,3) = HALF*((W_G_E - W_G_W)*ODX(I)+(U_G_T-U_G_B)*(OX(I)*ODZ(K)&
276 )-W_G_C*OX(I))
277 D_G(2,1) = D_G(1,2)
278 D_G(2,2) = (V_G(IJK)-V_G(IJMK))*ODY(J)
279 D_G(2,3)=HALF*((V_G_T-V_G_B)*(OX(I)*ODZ(K))+(W_G_N-W_G_S)*ODY(J))
280 D_G(3,1) = D_G(1,3)
281 D_G(3,2) = D_G(2,3)
282 D_G(3,3) = (W_G(IJK)-W_G(IJKM))*(OX(I)*ODZ(K)) + U_G_C*OX(I)
283
284
285
286 ELSE
287
288 CALL CG_CALC_VEL_G_GRAD(IJK,UG)
289
290 DO P = 1,3
291 DO Q = 1,3
292 D_G(P,Q) = HALF * (UG(P,Q)+UG(Q,P))
293 ENDDO
294 ENDDO
295
296 ENDIF
297
298
299
300
301
302 = D_G(1,1) + D_G(2,2) + D_G(3,3)
303
304
305
306
307
308
309 = ZERO
310 DO I1 = 1,3
311 DO J1 = 1,3
312 DO K1 = 1,3
313 Xsi_Pope = Xsi_Pope + (UG(I1,J1) - UG(J1,I1))&
314 *(UG(J1,K1) - UG(K1,J1))*(UG(K1,I1) + UG(I1,K1))
315 END DO
316 END DO
317 END DO
318
319
320 = Xsi_Pope/6. * K_Turb_G(IJK)**2/(E_Turb_G(IJK)+Small_number)
321
322
323
324
325
326 IF (MU_GT(IJK) .GE. MU_g(IJK)) THEN
327 Mu_gas_t = MU_GT(IJK) - MU_g(IJK)
328 ELSE
329 Mu_gas_t = ZERO
330 ENDIF
331
332
333
334
335
336
337
338 IF(.NOT.CUT_CELL_AT(IJK)) THEN
339
340 Tauij_gDUi_gODxj = 2D0*Mu_gas_t*( &
341 D_G(1,1) * D_G(1,1) + &
342 D_G(1,2) * (U_G_N - U_G_S)*ODY(J) + &
343 D_G(1,3) * ((U_G_T-U_G_B)* &
344 (OX(I)*ODZ(K))-W_G_C*OX(I)) + &
345 D_G(2,1) * (V_G_E-V_G_W)*ODX(I) + &
346 D_G(2,2) * D_G(2,2) + &
347 D_G(2,3) * (V_G_T-V_G_B)*(OX(I)*ODZ(K)) + &
348 D_G(3,1) * (W_G_E - W_G_W)*ODX(I) + &
349 D_G(3,2) * (W_G_N-W_G_S)*ODY(J) + &
350 D_G(3,3) * D_G(3,3)) - &
351 F2O3 * RO_G(IJK) * K_Turb_G(IJK)*Trace_g &
352 - F2O3 * Mu_gas_t * Trace_g**2
353
354 ELSE
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370 ENDIF
371
372
373
374
375
376
377
378
379
380 IF (Tauij_gDUi_gODxj .GE. ZERO) THEN
381 Pos_Tauij_gDUi_gODxj = Tauij_gDUi_gODxj
382 Neg_Tauij_gDUi_gODxj = ZERO
383 ELSE
384 Pos_Tauij_gDUi_gODxj = ZERO
385 Neg_Tauij_gDUi_gODxj = Tauij_gDUi_gODxj
386 ENDIF
387
388
389
390
391 IF(SIMONIN) THEN
392 Pos_PI_kq_2 = F_GS(IJK,1)*K_12(IJK)
393 Neg_PI_kq_2 = F_GS(IJK,1)*2.0D0* K_Turb_G(IJK)
394 ELSE IF(AHMADI) THEN
395 Pos_PI_kq_2 = F_GS(IJK,1)*3.0D0*Theta_m(IJK,M)
396 Neg_PI_kq_2 = F_GS(IJK,1)*2.0D0* K_Turb_G(IJK)
397 C_Eps_3 = zero
398 ELSE
399 Pos_PI_kq_2 = ZERO
400 Neg_PI_kq_2 = ZERO
401 ENDIF
402
403 IF(K_Turb_G(IJK) > Small_number .AND. E_Turb_G(IJK) > Small_number) THEN
404
405
406
407 (IJK) = (EP_g(IJK) * Pos_Tauij_gDUi_gODxj + &
408 Pos_PI_kq_2 )
409
410 (IJK) =(-EP_g(IJK) * Neg_Tauij_gDUi_gODxj+ &
411 EP_g(IJK)*RO_G(IJK)*E_Turb_G(IJK)+ &
412 Neg_PI_kq_2)/K_Turb_G(IJK)
413
414
415
416
417
418 IF(WALL_AT(JP_OF(IJK)).OR.WALL_AT(JM_OF(IJK))) THEN
419
420 = LOG(9.81*C_mu**0.25* &
421 RO_G(IJK)*SQRT(K_Turb_G(IJK))*DY(J)/ &
422 2.0D+0/Mu_g(IJK))
423 IF(Check_Log .LE. ZERO) THEN
424 K_Turb_G_c (IJK) = zero
425 K_Turb_G_p (IJK) = zero
426 ELSE
427 K_Turb_G_c (IJK) = SQRT(C_mu)*2.D+0/DY(J)* &
428 MAX(ABS(UGC),ABS(WGC))* &
429 EP_g(IJK)*RO_G(IJK)*K_Turb_G(IJK) &
430 /Check_Log
431
432 K_Turb_G_p (IJK) = ((EP_g(IJK)*RO_G(IJK) &
433 *C_mu**0.75*K_Turb_G(IJK)**1.5/DY(J)*2.0D+0/Kappa) &
434 )/K_Turb_G(IJK)
435 ENDIF
436
437 ELSE IF(WALL_AT(KP_OF(IJK)).OR.WALL_AT(KM_OF(IJK))) THEN
438
439 = LOG(9.81*C_mu**0.25* &
440 RO_G(IJK)*SQRT(K_Turb_G(IJK))/ &
441 (ODZ(K)*OX(I)*2.0D+0)/Mu_g(IJK))
442 IF(Check_Log .LE. ZERO) THEN
443 K_Turb_G_c (IJK) = zero
444 K_Turb_G_p (IJK) = zero
445 ELSE
446 K_Turb_G_c (IJK) = SQRT(C_mu)*(ODZ(K)*OX(I)*2.0D+0)* &
447 MAX(ABS(UGC),ABS(VGC)) &
448 *EP_g(IJK)*RO_G(IJK)*K_Turb_G(IJK) &
449 /Check_Log
450
451 K_Turb_G_p (IJK) = ((EP_g(IJK)*RO_G(IJK) &
452 *C_mu**0.75*K_Turb_G(IJK)**1.5/Kappa* &
453 (ODZ(K)*OX(I)*2.0D+0)) &
454 )/K_Turb_G(IJK)
455 ENDIF
456
457 ENDIF
458
459
460
461
462
463 IF(CYLINDRICAL) THEN
464 IF (WALL_AT(IP_OF(IJK))) THEN
465
466 = LOG(9.81*C_mu**0.25* &
467 RO_G(IJK)*SQRT(K_Turb_G(IJK))*DX(I)/ &
468 2.0D+0/Mu_g(IJK))
469
470 IF(Check_Log .LE. ZERO) THEN
471 K_Turb_G_c (IJK) = zero
472 K_Turb_G_p (IJK) = zero
473 ELSE
474 K_Turb_G_c (IJK) = SQRT(C_mu)*2.D+0/DX(I)* &
475 MAX(ABS(VGC),ABS(WGC)) &
476 *EP_g(IJK)*RO_G(IJK)*K_Turb_G(IJK) &
477 /Check_Log
478
479 K_Turb_G_p (IJK) = ((EP_g(IJK)*RO_G(IJK) &
480 *C_mu**0.75*K_Turb_G(IJK)**1.5/DX(I)*2.0D+0/Kappa) &
481 )/K_Turb_G(IJK)
482
483 ENDIF
484 ENDIF
485 ELSE IF (WALL_AT(IP_OF(IJK)).OR.WALL_AT(IM_OF(IJK))) THEN
486
487 = LOG(9.81*C_mu**0.25* &
488 RO_G(IJK)*SQRT(K_Turb_G(IJK))*DX(I)/ &
489 2.0D+0/Mu_g(IJK))
490
491 IF(Check_Log .LE. ZERO) THEN
492 K_Turb_G_c (IJK) = zero
493 K_Turb_G_p (IJK) = zero
494 ELSE
495 K_Turb_G_c (IJK) = SQRT(C_mu)*2.D+0/DX(I)* &
496 MAX(ABS(VGC),ABS(WGC))* &
497 EP_g(IJK)*RO_G(IJK)*K_Turb_G(IJK) &
498 /Check_Log
499
500 K_Turb_G_p (IJK) = ((EP_g(IJK)*RO_G(IJK) &
501 *C_mu**0.75*K_Turb_G(IJK)**1.5/DX(I)*2.0D+0/Kappa) &
502 )/K_Turb_G(IJK)
503 ENDIF
504 ENDIF
505
506
507
508 IF(CUT_CELL_AT(IJK)) THEN
509
510 = LOG(9.81*C_mu**0.25* &
511 RO_G(IJK)*SQRT(K_Turb_G(IJK))*DELH_Scalar(IJK)/Mu_g(IJK))
512 IF(Check_Log .LE. ZERO) THEN
513 K_Turb_G_c (IJK) = zero
514 K_Turb_G_p (IJK) = zero
515 ELSE
516
517
518
519
520
521
522 (IJK) = SQRT(C_mu)/DELH_Scalar(IJK)* &
523 DSQRT(UGC**2 + VGC**2 + WGC**2) * &
524 EP_g(IJK)*RO_G(IJK)*K_Turb_G(IJK) &
525 /Check_Log
526
527 K_Turb_G_p (IJK) = (EP_g(IJK)*RO_G(IJK) &
528 *C_mu**0.75*K_Turb_G(IJK)**1.5)/(DELH_Scalar(IJK)*Kappa) &
529 /K_Turb_G(IJK)
530 ENDIF
531
532
533 ENDIF
534
535
536
537
538
539
540 (IJK) = EP_g(IJK)* (MU_G(IJK) + Mu_gas_t /Sigma_k)
541
542
543
544 (IJK) = (Ceps_1 *EP_g(IJK)*Pos_Tauij_gDUi_gODxj &
545 *E_Turb_G(IJK)/K_Turb_G(IJK) + &
546 C_Eps_3*Pos_PI_kq_2* &
547 E_Turb_G(IJK)/K_Turb_G(IJK))
548
549
550
551
552
553
554 (IJK) = -Ceps_1 *EP_g(IJK)*Neg_Tauij_gDUi_gODxj &
555 /K_Turb_G(IJK) + &
556 Ceps_2 * EP_g(IJK) *RO_G(IJK) &
557 *E_Turb_G(IJK)/K_Turb_G(IJK) &
558 + C_Eps_3*(Neg_PI_kq_2) &
559 /K_Turb_G(IJK)
560
561
562
563
564 (IJK) =EP_g(IJK)* (MU_G(IJK) + Mu_gas_t /Sigma_E)
565
566 ELSE
567 K_Turb_G_c (IJK) = zero
568 K_Turb_G_p (IJK) = zero
569 E_Turb_G_c (IJK) = zero
570 E_Turb_G_p (IJK) = zero
571 Dif_K_Turb_G(IJK) = zero
572 Dif_E_Turb_G(IJK) = zero
573
574 ENDIF
575
576 ENDIF
577 END DO
578
579
580 RETURN
581 END SUBROUTINE K_Epsilon_PROP
582