MFIX  2016-1
calc_gama.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2 ! C
3 ! Subroutine: CALC_GAMA C
4 ! C
5 ! Purpose: Calculate gas-solids heat transfer coefficients C
6 ! C
7 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
8  SUBROUTINE calc_gama(M)
9 
10 ! Modules
11 !---------------------------------------------------------------------//
12  USE sendrecv, only: send_recv
13  USE energy, only: gama_gs
14  USE usr_prop, only: usr_gama, calc_usr_prop
15  USE usr_prop, only: gassolids_heattransfer
16  IMPLICIT NONE
17 
18 ! Dummy arguments
19 !---------------------------------------------------------------------//
20 ! solids phase index
21  INTEGER, INTENT(IN) :: M
22 !---------------------------------------------------------------------//
23 
24  IF (usr_gama(m)) THEN
25  CALL calc_usr_prop(gassolids_heattransfer,lm=m)
26  ELSE
27  CALL calc_default_gama_gs(m)
28  ENDIF
29  call send_recv(gama_gs,2)
30 
31  RETURN
32  END SUBROUTINE calc_gama
33 
34 
35 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
36 ! C
37 ! Subroutine: CALC_DEFAULT_GAMA_GS C
38 ! Purpose: Compute the default value for the gas-solids heat transfer C
39 ! coefficients. C
40 ! C
41 ! Author: M. Syamlal Date: 15-JUL-92 C
42 ! C
43 ! Literature/Document References: C
44 ! Gunn, D. J., (1978), International Journal of Heat and Mass C
45 ! Transfer, Vol. 21, p 467-476. C
46 ! Bird, Stewart, and Lightfoot (1960, p.663) C
47 ! C
48 ! C
49 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
50  SUBROUTINE calc_default_gama_gs(M)
51 
52 ! Modules
53 !---------------------------------------------------------------------//
54  USE compar, only: ijkstart3, ijkend3
55  USE energy, only: gama_gs
56  USE fldvar, only: u_g, v_g, w_g, u_s, v_s, w_s
57  USE fldvar, only: ep_g, ro_g, d_p, ep_s
58  Use fun_avg, only: avg_x_e, avg_y_n, avg_z_t
59  USE functions, only: fluidorp_flow_at
60  use functions, only: im_of, jm_of, km_of
61  use indices, only: i_of
63  USE physprop, only: mu_g, k_g, c_pg
64  USE rxns, only: r_phase
65  IMPLICIT NONE
66 
67 ! Dummy Arguments
68 !---------------------------------------------------------------------//
69 ! solids phase index
70  INTEGER, INTENT(IN) :: M
71 
72 ! Local Variables
73 !---------------------------------------------------------------------//
74 ! Indices
75  INTEGER :: I, IJK, IMJK, IJMK, IJKM
76 ! Cell center value of U_g, Vg, and Wg
77  DOUBLE PRECISION :: UGC, VGC, WGC
78 ! Cell center value of U_sm, V_sm, W_sm
79  DOUBLE PRECISION :: USCM, VSCM, WSCM
80 ! Gas-solids relative velocity
81  DOUBLE PRECISION :: VREL
82 ! function of Prandtl number, Pr^(1/3)
83  DOUBLE PRECISION :: Pr1o3
84 ! Reynolds number, Re
85  DOUBLE PRECISION :: Re
86 ! EP_g^2
87  DOUBLE PRECISION :: EP_g2
88 ! a factor
89  DOUBLE PRECISION :: FAC
90 ! index for storing interphase mass transfer coefficients in the upper
91 ! triangle of the matrix.
92  INTEGER :: LM
93 !---------------------------------------------------------------------//
94 
95  DO ijk = ijkstart3, ijkend3
96  IF (fluidorp_flow_at(ijk)) THEN
97  i = i_of(ijk)
98  imjk = im_of(ijk)
99  ijmk = jm_of(ijk)
100  ijkm = km_of(ijk)
101  ep_g2 = ep_g(ijk)*ep_g(ijk)
102 
103 ! Calculate Prandtl number to the 1/3 power
104  if(k_g(ijk) > zero) then
105  pr1o3 = (c_pg(ijk)*mu_g(ijk)/k_g(ijk))**(1.d0/3.d0)
106  else
107  pr1o3 = large_number
108  endif
109 
110 ! Calculate velocity components at i, j, k
111  ugc = avg_x_e(u_g(imjk),u_g(ijk),i)
112  vgc = avg_y_n(v_g(ijmk),v_g(ijk))
113  wgc = avg_z_t(w_g(ijkm),w_g(ijk))
114 
115  uscm = avg_x_e(u_s(imjk,m),u_s(ijk,m),i)
116  vscm = avg_y_n(v_s(ijmk,m),v_s(ijk,m))
117  wscm = avg_z_t(w_s(ijkm,m),w_s(ijk,m))
118 
119 ! Calculate the magnitude of gas-solids relative velocity
120  vrel=sqrt((ugc-uscm)**2+(vgc-vscm)**2+(wgc-wscm)**2)
121 
122  if(mu_g(ijk) > zero)then
123  re = ep_g(ijk)*d_p(ijk,m)*vrel*ro_g(ijk)/mu_g(ijk)
124  else
125  re = large_number
126  endif
127 
128 ! Calculate gas-solids heat transfer coefficient (Gunn 1978)
129  gama_gs(ijk,m) = ((7.d0 - 10.d0*ep_g(ijk)+5.d0*ep_g2)*&
130  (one+0.7d0*re**0.2d0*pr1o3)+&
131  (1.33d0 - 2.4d0*ep_g(ijk)+1.2d0*ep_g2)*&
132  re**0.7d0*pr1o3)*(k_g(ijk)/d_p(ijk,m))*&
133  (6.d0*ep_s(ijk,m)/d_p(ijk,m))
134 
135 ! Correct the heat transfer coefficient for transpiration
136 ! Bird, Stewart, and Lightfoot (1960, p.663)
137  IF (gama_gs(ijk,m) > small_number) THEN
138 ! Only the effect of gas-solids heat transfer is accounted for so find
139 ! corresponding lm index for gas-solids mass transfer
140  lm = 1+ (m-1)*m/2
141  fac = r_phase(ijk,lm)*c_pg(ijk)/gama_gs(ijk,m)
142  IF (abs(fac) < 0.1d0) THEN
143  gama_gs(ijk,m) = gama_gs(ijk,m)/&
144  (one+fac/2.d0+fac*fac/6.d0)
145  ELSE
146  IF (r_phase(ijk,lm) > zero) THEN
147  gama_gs(ijk,m) = r_phase(ijk,lm)*c_pg(ijk)*&
148  exp((-fac))/(one - exp((-fac)))
149  ELSE
150  gama_gs(ijk,m) = r_phase(ijk,lm)*c_pg(ijk)/&
151  (exp(fac) - one)
152  ENDIF
153  ENDIF
154  ENDIF ! end if gama_gs(ijk,M) > 0
155 
156  ENDIF ! end if (fluidorp_flow_at(ijk)
157  ENDDO ! end do loop (ijk=ijkstart3,ijkend3)
158 
159 
160  RETURN
161  END SUBROUTINE calc_default_gama_gs
double precision, dimension(:,:), allocatable gama_gs
Definition: energy_mod.f:12
double precision, dimension(:,:), allocatable v_s
Definition: fldvar_mod.f:105
integer, dimension(:), allocatable i_of
Definition: indices_mod.f:45
integer ijkend3
Definition: compar_mod.f:80
double precision, dimension(:), allocatable ep_g
Definition: fldvar_mod.f:15
double precision, parameter one
Definition: param1_mod.f:29
double precision, dimension(:,:), allocatable w_s
Definition: fldvar_mod.f:117
Definition: rxns_mod.f:1
double precision, dimension(:,:), allocatable u_s
Definition: fldvar_mod.f:93
subroutine calc_usr_prop(lprop, lM, lL, lerr)
Definition: usr_prop_mod.f:49
double precision, dimension(:,:), allocatable d_p
Definition: fldvar_mod.f:57
double precision, parameter small_number
Definition: param1_mod.f:24
double precision, dimension(:), allocatable v_g
Definition: fldvar_mod.f:99
double precision, dimension(:), allocatable w_g
Definition: fldvar_mod.f:111
double precision, parameter half
Definition: param1_mod.f:28
double precision, dimension(:,:), allocatable r_phase
Definition: rxns_mod.f:38
double precision, parameter large_number
Definition: param1_mod.f:23
double precision, dimension(:), allocatable mu_g
Definition: physprop_mod.f:68
integer ijkstart3
Definition: compar_mod.f:80
double precision, dimension(:), allocatable u_g
Definition: fldvar_mod.f:87
double precision function ep_s(IJK, xxM)
Definition: fldvar_mod.f:178
double precision, dimension(:), allocatable k_g
Definition: physprop_mod.f:92
subroutine calc_gama(M)
Definition: calc_gama.f:9
subroutine calc_default_gama_gs(M)
Definition: calc_gama.f:51
double precision, dimension(:), allocatable ro_g
Definition: fldvar_mod.f:32
double precision, parameter zero
Definition: param1_mod.f:27
double precision, dimension(:), allocatable c_pg
Definition: physprop_mod.f:80
logical, dimension(dim_m) usr_gama
Definition: usr_prop_mod.f:24