MFIX  2016-1
source_granular_energy.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2 ! C
3 ! Subroutine: SOURCE_GRANULAR_ENERGY C
4 ! Purpose: Calculate the source terms in the granular energy equation C
5 ! Note: The center coefficient and source vector are negative. C
6 ! The off-diagonal coefficients are positive. C
7 ! C
8 ! Author: Kapil Agrawal, Princeton University Date: 04-FEB-98 C
9 ! Reviewer: M. Syamlal Date: C
10 ! C
11 ! Revision Number:1 C
12 ! Purpose: Add Simonin and Ahmadi models C
13 ! Author: Sofiane Benyahia, Fluent Inc. Date: 02-01-05 C
14 ! C
15 ! Literature/Document References: C
16 ! Lun, C.K.K., S.B. Savage, D.J. Jeffrey, and N. Chepurniy, C
17 ! Kinetic theories for granular flow - inelastic particles in C
18 ! Couette-flow and slightly inelastic particles in a general C
19 ! flow field. Journal of Fluid Mechanics, 1984. 140(MAR): C
20 ! p. 223-256 C
21 ! Gidaspow, D., Multiphase flow and fluidziation, 1994, Academic C
22 ! Press Inc., California, Chapter 9. C
23 ! Koch, D. L., and Sangani, A. S., Particle pressure and marginal C
24 ! stability limits for a homogeneous monodisperse gas-fluidized C
25 ! bed: kinetic theory and numerical simulations, Journal of C
26 ! Fluid Mechanics, 1999, 400, 229-263. C
27 ! C
28 ! Simonin, O., 1996. Combustion and turbulence in two-phase flows, C
29 ! Von Karman institute for fluid dynamics, lecture series, C
30 ! 1996-02 C
31 ! Balzer, G., Simonin, O., Boelle, A., and Lavieville, J., 1996, C
32 ! A unifying modelling approach for the numerical prediction C
33 ! of dilute and dense gas-solid two phase flow. CFB5, 5th int. C
34 ! conf. on circulating fluidized beds, Beijing, China. C
35 ! Cao, J. and Ahmadi, G., 1995, Gas-particle two-phase turbulent C
36 ! flow in a vertical duct. Int. J. Multiphase Flow, vol. 21, C
37 ! No. 6, pp. 1203-1228. C
38 ! C
39 ! C
40 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
41 
42  SUBROUTINE source_granular_energy(SOURCELHS, &
43  sourcerhs, ijk, m)
44 
45 !-----------------------------------------------
46 ! Modules
47 !-----------------------------------------------
48  USE compar
49  USE constant
50  USE drag
51  USE fldvar
52  USE fun_avg
53  USE functions
54  USE geometry
55  USE indices
56  USE kintheory
57  USE mms
58  USE parallel
59  USE param
60  USE param1
61  USE physprop
62  USE rdf
63  USE run
64  USE solids_pressure
65  USE toleranc
66  USE trace
67  USE turb
68  USE visc_g
69  USE visc_s
70 
71  IMPLICIT NONE
72 !-----------------------------------------------
73 ! Dummy Arguments
74 !-----------------------------------------------
75 ! Source terms to be kept on rhs (source vector)
76  DOUBLE PRECISION, INTENT(INOUT) :: sourcerhs
77 ! Source terms to be kept on lhs (center coefficient)
78  DOUBLE PRECISION, INTENT(INOUT) :: sourcelhs
79 ! Solid phase index
80  INTEGER, INTENT(IN) :: M
81 ! Indices
82  INTEGER, INTENT(IN) :: IJK
83 !-----------------------------------------------
84 ! Local variables
85 !-----------------------------------------------
86 ! Indices
87  INTEGER :: I, J, K, IM, JM, KM, IMJK, IJMK, IJKM, &
88  IJKE, IJKW, IJKN, IJKS, IJKT, IJKB
89 ! Solid phase index
90  INTEGER :: MM
91 ! Particle relaxation time
92  DOUBLE PRECISION :: Tau_12_st
93 ! Sum of eps*G_0
94  DOUBLE PRECISION :: SUM_EpsGo
95 ! Slip velocity
96  DOUBLE PRECISION :: VSLIP
97 ! coefficients in heat flux term
98  DOUBLE PRECISION :: Knu_e, Knu_w, Knu_n, Knu_s, &
99  Knu_t, Knu_b
100 ! Source terms to be kept on rhs
101  DOUBLE PRECISION :: S1_rhs, S2_rhs, S3_rhs, &
102  S5a_rhs, S5b_rhs, S5c_rhs, S5_rhs, &
103  S7_rhs
104 ! Source terms to be kept on lhs
105  DOUBLE PRECISION :: S1_lhs, S3_lhs, S4_lhs, S6_lhs
106 !-----------------------------------------------
107 
108  i = i_of(ijk)
109  j = j_of(ijk)
110  k = k_of(ijk)
111  im = im1(i)
112  jm = jm1(j)
113  km = km1(k)
114  imjk = im_of(ijk)
115  ijmk = jm_of(ijk)
116  ijkm = km_of(ijk)
117  ijke = east_of(ijk)
118  ijkw = west_of(ijk)
119  ijkn = north_of(ijk)
120  ijks = south_of(ijk)
121  ijkt = top_of(ijk)
122  ijkb = bottom_of(ijk)
123 
124 ! initialize summation variables
125  s1_rhs = zero
126  s1_lhs = zero
127  s2_rhs = zero
128  s3_rhs = zero
129  s3_lhs = zero
130  s4_lhs = zero
131  s6_lhs = zero
132  s7_rhs = zero
133 
134 ! Changes needed for multitype particles, sof June 16 2005
135 ! Sum of eps*G_0 is used instead of Eps*G_0
136  sum_epsgo = zero
137  DO mm = 1, mmax
138  sum_epsgo = sum_epsgo+ep_s(ijk,mm)*g_0(ijk,mm,mm)
139  ENDDO
140 
141 ! Production by shear: (S:grad(vi))
142 ! Pi_s*tr(Di) (Lun et al. 1984)
143  s1_rhs = p_s_c(ijk,m)*zmax(( -trd_s_c(ijk,m) ))
144  s1_lhs = p_s_c(ijk,m)*zmax(( trd_s_c(ijk,m) ))
145 
146 ! Production by shear: (S:grad(vi))
147 ! Mu_s*tr(Di^2) (Lun et al. 1984)
148  s2_rhs = 2.d0*mu_s_c(ijk,m)*trd_s2(ijk,m)
149 
150 ! Production by shear: (S:grad(vi))
151 ! Lambda_s*tr(Di)^2 (Lun et al. 1984)
152  s3_rhs = (trd_s_c(ijk,m)**2)*zmax( lambda_s_c(ijk,m) )
153  s3_lhs = (trd_s_c(ijk,m)**2)*zmax( -lambda_s_c(ijk,m) )
154 
155 ! Energy dissipation by collisions
156  s4_lhs = (48.d0/dsqrt(pi))*eta*(one-eta)*rop_s(ijk,m)*&
157  sum_epsgo*dsqrt(theta_m(ijk,m))/d_p(ijk,m)
158 
159 ! Need to revisit this part about granular energy MMS source terms.
160  IF (use_mms) s4_lhs = zero
161 
162 ! Energy dissipation by viscous dampening
163 ! Gidaspow (1994) : addition due to role of interstitial fluid
164  IF(kt_type_enum == simonin_1996 .OR. &
165  kt_type_enum == ahmadi_1995) THEN
166  s6_lhs = 3.d0 * f_gs(ijk,m)
167  ELSE IF(switch > zero .AND. ro_g0 /= zero) THEN
168  s6_lhs = switch * 3.d0 * f_gs(ijk,m)
169  ENDIF
170 
171 ! Energy production due to gas-particle slip
172 ! Koch & Sangani (1999) : addition due to role of interstitial fluid
173  IF(kt_type_enum == simonin_1996) THEN
174  s7_rhs = f_gs(ijk,m)*k_12(ijk)
175  ELSEIF(kt_type_enum == ahmadi_1995) THEN
176 ! note specific reference to F_GS of solids phase 1!
177  IF(ep_s(ijk,m) > dil_ep_s .AND. f_gs(ijk,1) > small_number) THEN
178  tau_12_st = ep_s(ijk,m)*ro_s(ijk,m)/f_gs(ijk,1)
179  s7_rhs = 2.d0*f_gs(ijk,m) * (one/(one+tau_12_st/ &
180  (tau_1(ijk)+small_number)))*k_turb_g(ijk)
181  ELSE
182  s7_rhs = zero
183  ENDIF
184  ELSEIF(switch > zero .AND. ro_g0 /= zero) THEN
185  vslip = dsqrt( (u_s(ijk,m)-u_g(ijk))**2 + &
186  (v_s(ijk,m)-v_g(ijk))**2 + (w_s(ijk,m)-w_g(ijk))**2 )
187  s7_rhs = switch*81.d0*ep_s(ijk,m)*(mu_g(ijk)*vslip)**2 /&
188  (g_0(ijk,m,m)*d_p(ijk,m)**3 * ro_s(ijk,m)*&
189  dsqrt(pi)*dsqrt( theta_m(ijk,m)+small_number ) )
190 ! Need to revisit this part about granular energy MMS source terms.
191  IF (use_mms) s7_rhs = zero
192 
193  ENDIF
194 
195 
196 ! The following lines are essentially commented out since Kphi_s has
197 ! been set to zero in subroutine calc_mu_s. To activate the feature
198 ! activate the following lines and the lines in calc_mu_s.
199 ! Part of Heat Flux: div (q)
200 ! Kphi_s*grad(eps) (Lun et al. 1984)
201  IF (.false.) THEN
202  knu_e = avg_x_h(kphi_s(ijk,m), kphi_s(ijke,m),i)
203  knu_w = avg_x_h(kphi_s(ijkw,m),kphi_s(ijk,m),im)
204  knu_n = avg_y_h(kphi_s(ijk,m), kphi_s(ijkn,m),j)
205  knu_s = avg_y_h(kphi_s(ijks,m),kphi_s(ijk,m),jm)
206  knu_t = avg_z_h(kphi_s(ijk,m), kphi_s(ijkt,m),k)
207  knu_b = avg_z_h(kphi_s(ijkb,m),kphi_s(ijk,m),km)
208 
209  s5a_rhs = knu_e*(ep_s(ijke,m)-ep_s(ijk,m))*&
210  odx_e(i)*ayz(ijk) - &
211  knu_w*(ep_s(ijk,m)-ep_s(ijkw,m))*&
212  odx_e(im)*ayz(imjk)
213  s5b_rhs = knu_n*(ep_s(ijkn,m)-ep_s(ijk,m))*&
214  ody_n(j)*axz(ijk) - &
215  knu_s*(ep_s(ijk,m)-ep_s(ijks,m))*&
216  ody_n(jm)*axz(ijmk)
217  s5c_rhs = knu_t*(ep_s(ijkt,m)-ep_s(ijk,m))*&
218  ox(i)*odz_t(k)*axy(ijk) - &
219  knu_b*(ep_s(ijk,m)-ep_s(ijkb,m))*&
220  ox(i)*odz_t(km)*axy(ijkm)
221  s5_rhs = s5a_rhs + s5b_rhs + s5c_rhs
222  ENDIF
223  s5_rhs = zero
224 
225 
226  sourcerhs = (s1_rhs + s2_rhs + s3_rhs + s7_rhs)*vol(ijk) + &
227  s5_rhs
228 
229  sourcelhs = ( ((s1_lhs + s3_lhs)/(theta_m(ijk,m)+small_number)) + &
230  s4_lhs + s6_lhs) * vol(ijk)
231 
232  RETURN
233  END SUBROUTINE source_granular_energy
234 
235 
236 
237 
238 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
239 ! C
240 ! Subroutine: SOURCE_IA_GRANULAR_ENERGY C
241 ! Purpose: Calculate the source terms of the Mth solids phase C
242 ! granular energy equation C
243 ! C
244 ! Author: Janine E. Galvin, Univeristy of Colorado C
245 ! C
246 ! Literature/Document References: C
247 ! Iddir, Y.H., Modeling of the multiphase mixture of particles C
248 ! using the kinetic theory approach, PhD Thesis, Illinois C
249 ! Institute of Technology, Chicago, Illinois, 2004 C
250 ! Iddir, Y.H., & H. Arastoopour, Modeling of multitype particle C
251 ! flow using the kinetic theory approach, AIChE J., Vol 51, C
252 ! No 6, June 2005 C
253 ! C
254 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
255 
256  SUBROUTINE source_granular_energy_ia(SOURCELHS, &
257  sourcerhs, ijk, m)
259 !-----------------------------------------------
260 ! Modules
261 !-----------------------------------------------
262  USE param
263  USE param1
264  USE parallel
265  USE physprop
266  USE run
267  USE drag
268  USE geometry
269  USE fldvar
270  USE visc_g
271  USE visc_s
272  USE trace
273  USE turb
274  USE indices
275  USE constant
276  USE toleranc
277  USE residual
278  use kintheory
279  USE compar
280  USE fun_avg
281  USE functions
282  IMPLICIT NONE
283 !-----------------------------------------------
284 ! Dummy Arguments
285 !-----------------------------------------------
286 ! Source terms to be kept on rhs (source vector)
287  DOUBLE PRECISION, INTENT(INOUT) :: sourcerhs
288 ! Source terms to be kept on lhs (center coefficient)
289  DOUBLE PRECISION, INTENT(INOUT) :: sourcelhs
290 ! Solid phase index
291  INTEGER, INTENT(IN) :: M
292 ! Indices
293  INTEGER, INTENT(IN) :: IJK
294 !-----------------------------------------------
295 ! Local variables
296 !-----------------------------------------------
297 ! Indices
298  INTEGER :: I, J, K, IM, JM, KM, IMJK, IJMK, IJKM,&
299  IJKE, IJKW, IJKN, IJKS, IJKT, IJKB
300 ! phase index
301  INTEGER :: L, LM
302 ! velocities
303  DOUBLE PRECISION :: UsM_e, UsM_w, VsM_n, VsM_s, WsM_t, WsM_b,&
304  UsL_e, UsL_w, VsL_n, VsL_s, WsL_t, WsL_b,&
305  UsM_p, VsM_p, WsM_P, UsL_p, VsL_p, WsL_p
306 ! number densities
307  DOUBLE PRECISION :: NU_PM_E, NU_PM_W, NU_PM_N, NU_PM_S, NU_PM_T,&
308  NU_PM_B, NU_PM_p,&
309  NU_PL_E, NU_PL_W, NU_PL_N, NU_PL_S, NU_PL_T,&
310  NU_PL_B, NU_PL_p
311 ! temperature of species L
312  DOUBLE PRECISION :: T_PL_E, T_PL_W, T_PL_N, T_PL_S, T_PL_T,&
313  T_PL_B, T_PL_p
314 ! particle characteristics
315  DOUBLE PRECISION :: M_PM, M_PL, D_PM, D_PL
316 ! coefficients in heat flux term
317  DOUBLE PRECISION :: Knu_sL_e, Knu_sL_w, Knu_sL_n, Knu_sL_s, Knu_sL_t,&
318  Knu_sL_b, Knu_sM_e, Knu_sM_w, Knu_sM_n, Knu_sM_s,&
319  Knu_sM_t, Knu_sM_b,&
320  Kvel_s_e, Kvel_s_w, Kvel_s_n, Kvel_s_s, Kvel_s_t,&
321  Kvel_s_b,&
322  Kth_sL_e, Kth_sL_w, Kth_sL_n, Kth_sL_s, Kth_sL_t,&
323  Kth_sL_b
324 ! Source terms to be kept on rhs
325  DOUBLE PRECISION :: S10_rhs, S15_rhs, S16_rhs,&
326  S11_sum_rhs, S12_sum_rhs,&
327  S13_sum_rhs, S17_sum_rhs, S18_sum_rhs
328 ! Source terms
329  DOUBLE PRECISION :: S14a_sum, S14b_sum, S14c_sum, &
330  S9_sum, s21a_sum, s21b_sum, s21c_sum
331 ! Source terms to be kept on lhs
332  DOUBLE PRECISION :: S10_lhs, S16_lhs,&
333  S11_sum_lhs, S12_sum_lhs, S13_sum_lhs,&
334  S17_sum_lhs, S18_sum_lhs, S20_sum_lhs
335 !-----------------------------------------------
336 
337  i = i_of(ijk)
338  j = j_of(ijk)
339  k = k_of(ijk)
340  im = im1(i)
341  jm = jm1(j)
342  km = km1(k)
343  imjk = im_of(ijk)
344  ijmk = jm_of(ijk)
345  ijkm = km_of(ijk)
346  ijke = east_of(ijk)
347  ijkw = west_of(ijk)
348  ijkn = north_of(ijk)
349  ijks = south_of(ijk)
350  ijkt = top_of(ijk)
351  ijkb = bottom_of(ijk)
352 
353 ! initialize summation variables
354  s9_sum = zero
355  s14a_sum = zero
356  s14b_sum = zero
357  s14c_sum = zero
358  s21a_sum = zero
359  s21b_sum = zero
360  s21c_sum = zero
361 
362  s11_sum_rhs = zero
363  s12_sum_rhs = zero
364  s13_sum_rhs = zero
365  s17_sum_rhs = zero
366  s18_sum_rhs = zero
367 
368  s11_sum_lhs = zero
369  s12_sum_lhs = zero
370  s13_sum_lhs = zero
371  s17_sum_lhs = zero
372  s18_sum_lhs = zero
373  s20_sum_lhs = zero
374 
375  usm_e = u_s(ijk,m)
376  usm_w = u_s(imjk,m)
377  vsm_n = v_s(ijk,m)
378  vsm_s = v_s(ijmk,m)
379  wsm_t = w_s(ijk,m)
380  wsm_b = w_s(ijkm,m)
381  usm_p = avg_x_e(u_s(imjk,m),u_s(ijk,m),i)
382  vsm_p = avg_y_n(v_s(ijmk,m),v_s(ijk,m) )
383  wsm_p = avg_z_t(w_s(ijkm,m),w_s(ijk,m) )
384 
385  d_pm = d_p(ijk,m)
386  m_pm = (pi/6.d0)*d_pm**3 * ro_s(ijk,m)
387  nu_pm_p = rop_s(ijk,m)/m_pm
388  nu_pm_e = rop_s(ijke,m)/m_pm
389  nu_pm_w = rop_s(ijkw,m)/m_pm
390  nu_pm_n = rop_s(ijkn,m)/m_pm
391  nu_pm_s = rop_s(ijks,m)/m_pm
392  nu_pm_t = rop_s(ijkt,m)/m_pm
393  nu_pm_b = rop_s(ijkb,m)/m_pm
394 
395 ! Production by shear: (S:grad(vi))
396 ! Pi_s*tr(Di)
397  s10_lhs = p_s_c(ijk,m) * zmax(trd_s_c(ijk,m))
398  s10_rhs = p_s_c(ijk,m) * zmax(-trd_s_c(ijk,m))
399 
400 
401 ! Production by shear: (S:grad(vi))
402 ! Mu_s*tr(Di^2)
403  s15_rhs = 2.d0*mu_s_c(ijk,m)*trd_s2(ijk,m)
404 
405 ! Production by shear: (S:grad(vi))
406 ! Lambda_s*tr(Di)^2
407  s16_lhs = (trd_s_c(ijk,m)**2)*zmax( -lambda_s_c(ijk,m) )
408  s16_rhs = (trd_s_c(ijk,m)**2)*zmax( lambda_s_c(ijk,m) )
409 
410  DO l = 1, mmax
411  d_pl = d_p(ijk,l)
412  m_pl = (pi/6.d0)*d_pl**3 * ro_s(ijk,l)
413  nu_pl_p = rop_s(ijk,l)/m_pl
414  nu_pl_e = rop_s(ijke,l)/m_pl
415  nu_pl_w = rop_s(ijkw,l)/m_pl
416  nu_pl_n = rop_s(ijkn,l)/m_pl
417  nu_pl_s = rop_s(ijks,l)/m_pl
418  nu_pl_t = rop_s(ijkt,l)/m_pl
419  nu_pl_b = rop_s(ijkb,l)/m_pl
420 
421  t_pl_p = theta_m(ijk,l)
422  t_pl_e = theta_m(ijke,l)
423  t_pl_w = theta_m(ijkw,l)
424  t_pl_n = theta_m(ijkn,l)
425  t_pl_s = theta_m(ijks,l)
426  t_pl_t = theta_m(ijkt,l)
427  t_pl_b = theta_m(ijkb,l)
428 
429  usl_e = u_s(ijk,l)
430  usl_w = u_s(imjk,l)
431  vsl_n = v_s(ijk,l)
432  vsl_s = v_s(ijmk,l)
433  wsl_t = w_s(ijk,l)
434  wsl_b = w_s(ijkm,l)
435  usl_p = avg_x_e(u_s(imjk,l),u_s(ijk,l),i)
436  vsl_p = avg_y_n(v_s(ijmk,l),v_s(ijk,l) )
437  wsl_p = avg_z_t(w_s(ijkm,l),w_s(ijk,l) )
438 
439 ! Energy dissipation by collisions: Sum(Nip)
440 ! SUM( EDT_s_ip )
441  s20_sum_lhs = s20_sum_lhs + edt_s_ip(ijk,m,l)
442 
443 ! Energy dissipation by collisions: SUM(Nip)
444 ! SUM( EDvel_sL_ip* div(vp) ) !Modified by sof to include trace of V_s_L
445  s11_sum_lhs = s11_sum_lhs + zmax(-edvel_sl_ip(ijk,m,l)* &
446  trd_s_c(ijk,l) ) * vol(ijk)
447  s11_sum_rhs = s11_sum_rhs + zmax( edvel_sl_ip(ijk,m,l)* &
448  trd_s_c(ijk,l) ) * vol(ijk)
449 
450 ! Energy dissipation by collisions: Sum(Nip)
451 ! SUM( EDvel_sM_ip* div(vi) ) !Modified by sof to include trace of V_s_M
452  s12_sum_lhs = s12_sum_lhs + zmax(-edvel_sm_ip(ijk,m,l)*&
453  trd_s_c(ijk,m) ) * vol(ijk)
454  s12_sum_rhs = s12_sum_rhs + zmax( edvel_sm_ip(ijk,m,l)*&
455  trd_s_c(ijk,m) ) * vol(ijk)
456 
457  IF (m .NE. l) THEN
458  lm = funlm(l,m)
459 
460 ! Production by shear: (S:grad(vi))
461 ! SUM(2*Mu_sL_ip*tr(Dk*Di) )
462  s17_sum_lhs = s17_sum_lhs + 2.d0*mu_sl_ip(ijk,m,l)*&
463  zmax( - trd_s2_ip(ijk,m,l) )
464  s17_sum_rhs = s17_sum_rhs + 2.d0*mu_sl_ip(ijk,m,l)*&
465  zmax( trd_s2_ip(ijk,m,l) )
466 
467 ! These two terms can be treated explicitly here by uncommenting the following
468 ! two lines. They are currently treated by PEA algorithm in solve_granular_energy
469 !
470 ! S13_sum_lhs = S13_sum_lhs + ED_ss_ip(IJK,LM)*Theta_m(IJK,M)
471 ! S13_sum_rhs = S13_sum_rhs + ED_ss_ip(IJK,LM)*Theta_m(IJK,L)
472 !
473 !
474 ! Production by shear: (S:grad(vi))
475 ! SUM( (Xi_sL_ip-(2/3)*Mu_sL_ip)*tr(Dk)tr(Di) )
476  s18_sum_lhs = s18_sum_lhs + zmax(-1.d0* &
477  (xi_sl_ip(ijk,m,l)-(2.d0/3.d0)*mu_sl_ip(ijk,m,l))*&
478  trd_s_c(ijk,m)*trd_s_c(ijk,l) )
479  s18_sum_rhs = s18_sum_rhs + zmax(&
480  (xi_sl_ip(ijk,m,l)-(2.d0/3.d0)*mu_sl_ip(ijk,m,l))*&
481  trd_s_c(ijk,m)*trd_s_c(ijk,l) )
482 
483 ! Part of Heat Flux: div (q)
484 ! Kth_sL_ip*[grad(Tp)]
485 ! Note for L=M S21 terms cancel with similar term arising from grad(Ti)
486  kth_sl_e = avg_x_s(kth_sl_ip(ijk,m,l), kth_sl_ip(ijke,m,l),i)
487  kth_sl_w = avg_x_s(kth_sl_ip(ijkw,m,l),kth_sl_ip(ijk,m,l), im)
488  kth_sl_n = avg_y_s(kth_sl_ip(ijk,m,l), kth_sl_ip(ijkn,m,l),j)
489  kth_sl_s = avg_y_s(kth_sl_ip(ijks,m,l),kth_sl_ip(ijk,m,l), jm)
490  kth_sl_t = avg_z_s(kth_sl_ip(ijk,m,l), kth_sl_ip(ijkt,m,l),k)
491  kth_sl_b = avg_z_s(kth_sl_ip(ijkb,m,l),kth_sl_ip(ijk,m,l), km)
492 
493  s21a_sum = s21a_sum + ( (kth_sl_e*(t_pl_e-t_pl_p) )*&
494  odx_e(i)*ayz(ijk) - (kth_sl_w*(t_pl_p-t_pl_w) )*odx_e(im)*&
495  ayz(imjk) )
496  s21b_sum = s21b_sum + ( (kth_sl_n*(t_pl_n-t_pl_p) )*&
497  ody_n(j)*axz(ijk) - (kth_sl_s*(t_pl_p-t_pl_s) )*ody_n(jm)*&
498  axz(ijmk) )
499  s21c_sum = s21c_sum + ( (kth_sl_t*(t_pl_t-t_pl_p) )*&
500  odz_t(k)*ox(i)*axy(ijk) - (kth_sl_b*(t_pl_p-t_pl_b) )*&
501  odz_t(km)*ox(i)*axy(ijkm) )
502 
503 ! Part of Heat Flux: div (q)
504 ! Knu_s_ip*[ni*grad(np)-np*grad(ni)]
505 ! Note S14 terms should evaluate to zero for particles from the same phase
506  knu_sl_e = avg_x_s(knu_sl_ip(ijk,m,l), knu_sl_ip(ijke,m,l),i)
507  knu_sm_e = avg_x_s(knu_sm_ip(ijk,m,l), knu_sm_ip(ijke,m,l),i)
508  knu_sl_w = avg_x_s(knu_sl_ip(ijkw,m,l),knu_sl_ip(ijk,m,l), im)
509  knu_sm_w = avg_x_s(knu_sm_ip(ijkw,m,l),knu_sm_ip(ijk,m,l), im)
510  knu_sl_n = avg_y_s(knu_sl_ip(ijk,m,l), knu_sl_ip(ijkn,m,l),j)
511  knu_sm_n = avg_y_s(knu_sm_ip(ijk,m,l), knu_sm_ip(ijkn,m,l),j)
512  knu_sl_s = avg_y_s(knu_sl_ip(ijks,m,l),knu_sl_ip(ijk,m,l), jm)
513  knu_sm_s = avg_y_s(knu_sm_ip(ijks,m,l),knu_sm_ip(ijk,m,l), jm)
514  knu_sl_t = avg_z_s(knu_sl_ip(ijk,m,l), knu_sl_ip(ijkt,m,l),k)
515  knu_sm_t = avg_z_s(knu_sm_ip(ijk,m,l), knu_sm_ip(ijkt,m,l),k)
516  knu_sl_b = avg_z_s(knu_sl_ip(ijkb,m,l),knu_sl_ip(ijk,m,l), km)
517  knu_sm_b = avg_z_s(knu_sm_ip(ijkb,m,l),knu_sm_ip(ijk,m,l), km)
518 
519  s14a_sum = s14a_sum + ( (knu_sl_e*(nu_pl_e-nu_pl_p) - &
520  knu_sm_e*(nu_pm_e-nu_pm_p) )*odx_e(i)*ayz(ijk) - (knu_sl_w*&
521  (nu_pl_p-nu_pl_w) - knu_sm_w*(nu_pm_p-nu_pm_w) )*odx_e(im)*&
522  ayz(imjk) )
523  s14b_sum = s14b_sum + ( (knu_sl_n*(nu_pl_n-nu_pl_p) - &
524  knu_sm_n*(nu_pm_n-nu_pm_p) )*ody_n(j)*axz(ijk) - (knu_sl_s*&
525  (nu_pl_p-nu_pl_s) - knu_sm_s*(nu_pm_p-nu_pm_s) )*ody_n(jm)*&
526  axz(ijmk) )
527  s14c_sum = s14c_sum + ( (knu_sl_t*(nu_pl_t-nu_pl_p) - &
528  knu_sm_t*(nu_pm_t-nu_pm_p) )*odz_t(k)*ox(i)*axy(ijk) - &
529  (knu_sl_b*(nu_pl_p-nu_pl_b) - knu_sm_b*(nu_pm_p-nu_pm_b) )*&
530  odz_t(km)*ox(i)*axy(ijkm) )
531 
532 ! Part of Heat Flux: div (q)
533 ! Kvel_s_ip*[vi-vp]
534 ! Note S9 terms should evaluate to zero for particles from the same phase
535  kvel_s_e = avg_x_h(kvel_s_ip(ijk,m,l), kvel_s_ip(ijke,m,l),i)
536  kvel_s_w = avg_x_h(kvel_s_ip(ijkw,m,l),kvel_s_ip(ijk,m,l), im)
537  kvel_s_n = avg_y_h(kvel_s_ip(ijk,m,l), kvel_s_ip(ijkn,m,l),j)
538  kvel_s_s = avg_y_h(kvel_s_ip(ijks,m,l),kvel_s_ip(ijk,m,l), jm)
539  kvel_s_t = avg_z_h(kvel_s_ip(ijk,m,l), kvel_s_ip(ijkt,m,l),k)
540  kvel_s_b = avg_z_h(kvel_s_ip(ijkb,m,l),kvel_s_ip(ijk,m,l), km)
541 
542  s9_sum = s9_sum + ( kvel_s_e*(usm_e-usl_e)*ayz(ijk) - &
543  kvel_s_w*(usm_w-usl_w)*ayz(imjk) + kvel_s_n*(vsm_n-vsl_n)*axz(ijk)-&
544  kvel_s_s*(vsm_s-vsl_s)*axz(ijmk) + kvel_s_t*(wsm_t-wsl_t)*axy(ijk)-&
545  kvel_s_b*(wsm_b-wsl_b)*axy(ijkm) )
546 
547  ENDIF ! (IF M.NE.L)
548 
549  ENDDO
550 
551 ! WARNING: The terms due to granular temperature gradients S21 (a,b,c) have caused
552 ! some converegence issues, remove them from LHS and RHS for debugging (sof).
553 
554  sourcelhs = ( (s11_sum_lhs+s12_sum_lhs)+&
555  (s10_lhs+s16_lhs+s17_sum_lhs+&
556  s18_sum_lhs-s20_sum_lhs+s13_sum_lhs)*vol(ijk) + &
557  zmax(s21a_sum+s21b_sum+s21c_sum)+ &
558  zmax(s14a_sum+s14b_sum+s14c_sum)+ zmax(s9_sum) ) / &
559  theta_m(ijk,m)
560 
561  sourcerhs = ( s10_rhs+s15_rhs+s16_rhs+s17_sum_rhs+s18_sum_rhs+&
562  s13_sum_rhs) * vol(ijk) + s11_sum_rhs+s12_sum_rhs+ &
563  zmax(- (s14a_sum+s14b_sum+s14c_sum) ) + zmax(-s9_sum) + &
564  zmax(- (s21a_sum+s21b_sum+s21c_sum) )
565 
566 
567  RETURN
568  END SUBROUTINE source_granular_energy_ia
569 
570 
571 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
572 ! C
573 ! Subroutine: SOURCE_GRANULAR_ENERGY_GD C
574 ! Purpose: Calculate the source terms of the Mth pahse granular C
575 ! energy equation C
576 ! C
577 ! Author: Janine E. Galvin C
578 ! C
579 ! Literature/Document References: C
580 ! Garzo, V., and Dufty, J., Homogeneous cooling state for a C
581 ! granular mixture, Physical Review E, 1999, Vol 60 (5), 5706- C
582 ! 5713 C
583 ! Garzo, Tenneti, Subramaniam, Hrenya, J. Fluid Mech., 2012, 712, C
584 ! pp 129-404 C
585 ! C
586 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
587 
588  SUBROUTINE source_granular_energy_gd(SOURCELHS, &
589  sourcerhs, ijk, m)
591 !-----------------------------------------------
592 ! Modules
593 !-----------------------------------------------
594  USE compar
595  USE constant
596  USE drag
597  USE fldvar
598  USE fun_avg
599  USE functions
600  USE geometry
601  USE indices
602  USE parallel
603  USE param
604  USE param1
605  USE physprop
606  USE rdf
607  USE residual
608  USE run
609  USE toleranc
610  USE trace
611  USE turb
612  USE visc_g
613  USE visc_s
614  use kintheory
615  IMPLICIT NONE
616 !-----------------------------------------------
617 ! Dummy Arguments
618 !-----------------------------------------------
619 ! Source terms to be kept on rhs (source vector)
620  DOUBLE PRECISION, INTENT(INOUT) :: sourcerhs
621 ! Source terms to be kept on lhs (center coefficient)
622  DOUBLE PRECISION, INTENT(INOUT) :: sourcelhs
623 ! Solid phase index
624  INTEGER, INTENT(IN) :: M
625 ! Indices
626  INTEGER, INTENT(IN) :: IJK
627 !-----------------------------------------------
628 ! Local variables
629 !-----------------------------------------------
630 ! Indices
631  INTEGER :: I, J, K, IM, JM, KM, IMJK, IJMK, IJKM,&
632  IJKE, IJKW, IJKN, IJKS, IJKT, IJKB
633 ! number densities
634  DOUBLE PRECISION :: NU_PM_E, NU_PM_W, NU_PM_N, NU_PM_S, NU_PM_T,&
635  NU_PM_B, NU_PM_p
636 ! particle characteristics
637  DOUBLE PRECISION :: M_PM, D_PM
638 ! coefficients in heat flux term
639  DOUBLE PRECISION :: Knu_sM_e, Knu_sM_w, Knu_sM_n, Knu_sM_s,&
640  Knu_sM_t, Knu_sM_b
641 ! Source terms to be kept on rhs
642  DOUBLE PRECISION :: S8_rhs, S9_rhs, S10_rhs, S11_rhs, S12_rhs,&
643  S13a_rhs, S13b_rhs, S14a_rhs, S14b_rhs, S15a_rhs,&
644  S15b_rhs
645 ! Source terms to be kept on lhs
646  DOUBLE PRECISION :: S8_lhs, S10_lhs, S11_lhs, S12_lhs, S13a_lhs,&
647  S13b_lhs, S14a_lhs, S14b_lhs, S15a_lhs, S15b_lhs
648 ! Source terms from interstitial effects
649  DOUBLE PRECISION :: VSLIP, Kslip, Tslip_rhs, Tslip_lhs, Tvis_lhs
650  DOUBLE PRECISION :: ep_sM
651 ! local var. for GTSH theory
652  DOUBLE PRECISION :: chi, Sgama_lhs, Spsi_rhs
653 !-----------------------------------------------
654 
655  i = i_of(ijk)
656  j = j_of(ijk)
657  k = k_of(ijk)
658  im = im1(i)
659  jm = jm1(j)
660  km = km1(k)
661  imjk = im_of(ijk)
662  ijmk = jm_of(ijk)
663  ijkm = km_of(ijk)
664  ijke = east_of(ijk)
665  ijkw = west_of(ijk)
666  ijkn = north_of(ijk)
667  ijks = south_of(ijk)
668  ijkt = top_of(ijk)
669  ijkb = bottom_of(ijk)
670 
671  s8_lhs = zero
672  s10_lhs = zero
673  s11_lhs = zero
674  s12_lhs = zero
675  s13a_lhs = zero
676  s13b_lhs = zero
677  s14a_lhs = zero
678  s14b_lhs = zero
679  s15a_lhs = zero
680  s15b_lhs = zero
681  s8_rhs = zero
682  s9_rhs = zero
683  s10_rhs = zero
684  s11_rhs = zero
685  s12_rhs = zero
686  s13a_rhs = zero
687  s13b_rhs = zero
688  s14a_rhs = zero
689  s14b_rhs = zero
690  s15a_rhs = zero
691  s15b_rhs = zero
692  sgama_lhs = zero ! for GTSH theory
693  spsi_rhs = zero ! for GTSH theory
694 
695  d_pm = d_p(ijk,m)
696  m_pm = (pi/6.d0)*d_pm**3 * ro_s(ijk,m)
697  ep_sm = ep_s(ijk,m)
698  chi = g_0(ijk,m,m)
699 
700  nu_pm_p = rop_s(ijk,m)/m_pm
701  nu_pm_e = rop_s(ijke,m)/m_pm
702  nu_pm_w = rop_s(ijkw,m)/m_pm
703  nu_pm_n = rop_s(ijkn,m)/m_pm
704  nu_pm_s = rop_s(ijks,m)/m_pm
705  nu_pm_t = rop_s(ijkt,m)/m_pm
706  nu_pm_b = rop_s(ijkb,m)/m_pm
707 
708 ! Production by shear: (S:grad(v))
709 ! P_s*tr(D)
710  s8_lhs = p_s_c(ijk,m) * zmax(trd_s_c(ijk,m))
711  s8_rhs = p_s_c(ijk,m) * zmax(-trd_s_c(ijk,m))
712 
713 ! Production by shear: (S:grad(v))
714 ! Mu_s*tr(D^2)
715  s9_rhs = 2.d0*mu_s_c(ijk,m)*trd_s2(ijk,m)
716 
717 ! Production by shear: (S:grad(v))
718 ! Lambda_s*tr(D)^2
719  s10_lhs = (trd_s_c(ijk,m)**2)*zmax( -lambda_s_c(ijk,m) )
720  s10_rhs = (trd_s_c(ijk,m)**2)*zmax( lambda_s_c(ijk,m) )
721 
722 ! Energy dissipation by collisions: (3/2)*n*kboltz*T*zeta0
723 ! linearized (3/2)*rop_s*T*zeta0
724  s11_lhs = (3.d0/2.d0)*edt_s_ip(ijk,m,m)
725  s11_rhs = (1.d0/2.d0)*edt_s_ip(ijk,m,m)*theta_m(ijk,m)
726 
727 ! Energy dissipation by collisions: (3/2)*n*kboltz*T*zeta1
728 ! (3/2)*rop_s*T*zeta1
729  s12_lhs = zmax( edvel_sm_ip(ijk,m,m) * trd_s_c(ijk,m) )
730  s12_rhs = zmax( -edvel_sm_ip(ijk,m,m) * trd_s_c(ijk,m) )*theta_m(ijk,m)
731 
732 ! for GTSH theory, the dissipation terms above need to be multiplied
733 ! by 3/2 rop_s(ijk,m)
734 ! GTSH theory has two additional terms as source (Psi) and sink (gama)
735 ! in eq (4.9) of GTSH JFM paper
736  IF(kt_type_enum == gtsh_2012) THEN
737  s11_lhs = 1.5d0*rop_s(ijk,m) * s11_lhs
738  s11_rhs = 1.5d0*rop_s(ijk,m) * s11_rhs
739  s12_lhs = 1.5d0*rop_s(ijk,m) * s12_lhs
740  s12_rhs = 1.5d0*rop_s(ijk,m) * s12_rhs
741  sgama_lhs = 3d0*nu_pm_p * g_gtsh(ep_sm, chi, ijk, m)
742  spsi_rhs = 1.5d0*rop_s(ijk,m) * xsi_gtsh(ijk)
743  ENDIF
744 
745 ! Part of Heat Flux: div (q)
746 ! Knu_s_ip*grad(nu)
747  knu_sm_e = avg_x_s(kphi_s(ijk,m), kphi_s(ijke,m),i)
748  knu_sm_w = avg_x_s(kphi_s(ijkw,m),kphi_s(ijk,m), im)
749  knu_sm_n = avg_y_s(kphi_s(ijk,m), kphi_s(ijkn,m),j)
750  knu_sm_s = avg_y_s(kphi_s(ijks,m),kphi_s(ijk,m), jm)
751  knu_sm_t = avg_z_s(kphi_s(ijk,m), kphi_s(ijkt,m),k)
752  knu_sm_b = avg_z_s(kphi_s(ijkb,m),kphi_s(ijk,m), km)
753 
754  s13a_rhs = knu_sm_e*zmax( (nu_pm_e-nu_pm_p) )*odx_e(i)*ayz(ijk)
755  s13a_lhs = knu_sm_e*zmax( -(nu_pm_e-nu_pm_p) )*odx_e(i)*ayz(ijk)
756 
757  s13b_rhs = knu_sm_w*zmax( -(nu_pm_p-nu_pm_w) )*odx_e(im)*ayz(imjk)
758  s13b_lhs = knu_sm_w*zmax( (nu_pm_p-nu_pm_w) )*odx_e(im)*ayz(imjk)
759 
760  s14a_rhs = knu_sm_n*zmax( (nu_pm_n-nu_pm_p) )*ody_n(j)*axz(ijk)
761  s14a_lhs = knu_sm_n*zmax( -(nu_pm_n-nu_pm_p) )*ody_n(j)*axz(ijk)
762 
763  s14b_rhs = knu_sm_s*zmax( -(nu_pm_p-nu_pm_s) )*ody_n(jm)*axz(ijmk)
764  s14b_lhs = knu_sm_s*zmax( (nu_pm_p-nu_pm_s) )*ody_n(jm)*axz(ijmk)
765 
766  s15a_rhs = knu_sm_t*zmax( (nu_pm_t-nu_pm_p) )*odz_t(k)*ox(i)*axy(ijk)
767  s15a_lhs = knu_sm_t*zmax( -(nu_pm_t-nu_pm_p) )*odz_t(k)*ox(i)*axy(ijk)
768 
769  s15b_rhs = knu_sm_b*zmax( -(nu_pm_p-nu_pm_b) )*odz_t(km)*ox(i)*axy(ijkm)
770  s15b_lhs = knu_sm_b*zmax( (nu_pm_p-nu_pm_b) )*odz_t(km)*ox(i)*axy(ijkm)
771 
772  sourcelhs = ( (s8_lhs+s10_lhs)*vol(ijk) + &
773  s13a_lhs+s13b_lhs+s14a_lhs+s14b_lhs+s15a_lhs+s15b_lhs)/theta_m(ijk,m)&
774  + (s11_lhs + s12_lhs + sgama_lhs)*vol(ijk)
775 
776 
777  sourcerhs = ( s8_rhs+s9_rhs+s10_rhs+s11_rhs+s12_rhs+spsi_rhs) * vol(ijk) + &
778  s13a_rhs+s13b_rhs+s14a_rhs+s14b_rhs+s15a_rhs+s15b_rhs
779 
780 
781 ! this is only done for GD_99, do not add these terms to GTSH
782  IF(switch > zero .AND. ro_g0 /= zero .AND. &
783  (kt_type_enum == gd_1999)) THEN
784 
785  vslip = (u_s(ijk,m)-u_g(ijk))**2 + (v_s(ijk,m)-v_g(ijk))**2 +&
786  (w_s(ijk,m)-w_g(ijk))**2
787  vslip = dsqrt(vslip)
788 
789 ! production by gas-particle slip: Koch & Sangani (1999)
790  kslip = switch*81.d0*ep_sm*(mu_g(ijk)*vslip)**2.d0 / &
791  (chi*d_p(ijk,m)**3.d0*ro_s(ijk,m)*dsqrt(pi))
792 
793  tslip_rhs = 1.5d0*kslip/( (theta_m(ijk,m)+small_number)**0.50)*vol(ijk)
794  tslip_lhs = 0.5d0*kslip/( (theta_m(ijk,m)+small_number)**1.50)*vol(ijk)
795 
796 ! dissipation by viscous damping: Gidaspow (1994)
797  tvis_lhs = switch*3d0*f_gs(ijk,m)*vol(ijk)
798 
799  sourcelhs = sourcelhs + tslip_lhs + tvis_lhs
800  sourcerhs = sourcerhs + tslip_rhs
801  ENDIF
802 
803  RETURN
804  END SUBROUTINE source_granular_energy_gd
805 
806 
double precision, dimension(:,:), allocatable v_s
Definition: fldvar_mod.f:105
double precision, dimension(:), allocatable tau_1
Definition: turb_mod.f:19
double precision, dimension(:,:,:), allocatable trd_s2_ip
Definition: trace_mod.f:19
double precision, dimension(:,:,:), allocatable kvel_s_ip
Definition: kintheory_mod.f:56
integer, dimension(:), allocatable i_of
Definition: indices_mod.f:45
double precision, dimension(:,:), allocatable trd_s_c
Definition: trace_mod.f:6
double precision, dimension(:,:), allocatable mu_s_c
Definition: visc_s_mod.f:28
double precision, dimension(:,:,:), allocatable mu_sl_ip
Definition: kintheory_mod.f:27
double precision, dimension(:), allocatable k_turb_g
Definition: fldvar_mod.f:161
subroutine source_granular_energy_ia(SOURCELHS, SOURCERHS, IJK, M)
double precision, parameter one
Definition: param1_mod.f:29
double precision, dimension(:,:), allocatable kphi_s
Definition: physprop_mod.f:104
double precision, dimension(:), allocatable axy
Definition: geometry_mod.f:210
double precision, dimension(:,:), allocatable w_s
Definition: fldvar_mod.f:117
double precision, dimension(:,:), allocatable trd_s2
Definition: trace_mod.f:9
integer, dimension(:), allocatable im1
Definition: indices_mod.f:50
double precision, dimension(:,:,:), allocatable knu_sm_ip
Definition: kintheory_mod.f:52
double precision, parameter switch
Definition: constant_mod.f:53
Definition: drag_mod.f:11
double precision, dimension(:), allocatable k_12
Definition: turb_mod.f:17
double precision function g_0(IJK, M1, M2)
Definition: rdf_mod.f:240
double precision, dimension(:), allocatable ayz
Definition: geometry_mod.f:206
subroutine source_granular_energy(SOURCELHS, SOURCERHS, IJK, M)
double precision, dimension(:,:), allocatable u_s
Definition: fldvar_mod.f:93
double precision, dimension(:,:), allocatable lambda_s_c
Definition: visc_s_mod.f:51
Definition: turb_mod.f:2
integer, dimension(:), allocatable k_of
Definition: indices_mod.f:47
double precision, dimension(:), allocatable ody_n
Definition: geometry_mod.f:123
double precision, dimension(:,:), allocatable p_s_c
Definition: fldvar_mod.f:127
double precision, dimension(:), allocatable xsi_gtsh
Definition: kintheory_mod.f:71
double precision, dimension(:,:), allocatable d_p
Definition: fldvar_mod.f:57
integer mmax
Definition: physprop_mod.f:19
integer, dimension(:), allocatable j_of
Definition: indices_mod.f:46
double precision, dimension(:), allocatable odx_e
Definition: geometry_mod.f:121
integer, dimension(:), allocatable jm1
Definition: indices_mod.f:51
double precision ro_g0
Definition: physprop_mod.f:59
double precision, parameter small_number
Definition: param1_mod.f:24
double precision, dimension(:,:,:), allocatable xi_sl_ip
Definition: kintheory_mod.f:31
double precision, dimension(:), allocatable ox
Definition: geometry_mod.f:140
double precision eta
Definition: constant_mod.f:108
double precision function g_gtsh(EP_SM, Chi, IJK, M)
double precision, dimension(:,:), allocatable theta_m
Definition: fldvar_mod.f:149
Definition: mms_mod.f:12
double precision, dimension(:), allocatable v_g
Definition: fldvar_mod.f:99
double precision, dimension(:), allocatable w_g
Definition: fldvar_mod.f:111
Definition: run_mod.f:13
double precision, dimension(:), allocatable axz
Definition: geometry_mod.f:208
double precision, dimension(:,:,:), allocatable knu_sl_ip
Definition: kintheory_mod.f:54
Definition: param_mod.f:2
double precision, parameter dil_ep_s
Definition: toleranc_mod.f:24
double precision, dimension(:,:), allocatable ro_s
Definition: fldvar_mod.f:45
integer, dimension(:), allocatable km1
Definition: indices_mod.f:52
double precision, dimension(:), allocatable mu_g
Definition: physprop_mod.f:68
logical use_mms
Definition: mms_mod.f:15
double precision, dimension(:), allocatable u_g
Definition: fldvar_mod.f:87
subroutine source_granular_energy_gd(SOURCELHS, SOURCERHS, IJK, M)
double precision function ep_s(IJK, xxM)
Definition: fldvar_mod.f:178
double precision, dimension(:,:), allocatable f_gs
Definition: drag_mod.f:14
double precision, dimension(:,:,:), allocatable kth_sl_ip
Definition: kintheory_mod.f:50
Definition: rdf_mod.f:11
double precision, dimension(:,:), allocatable rop_s
Definition: fldvar_mod.f:51
double precision, dimension(:,:,:), allocatable edt_s_ip
Definition: kintheory_mod.f:64
double precision, parameter pi
Definition: constant_mod.f:158
Definition: trace_mod.f:1
double precision, dimension(:), allocatable vol
Definition: geometry_mod.f:212
double precision, dimension(:,:,:), allocatable edvel_sl_ip
Definition: kintheory_mod.f:68
double precision, dimension(:), allocatable odz_t
Definition: geometry_mod.f:125
double precision, parameter zero
Definition: param1_mod.f:27
double precision, dimension(:,:,:), allocatable edvel_sm_ip
Definition: kintheory_mod.f:66