MFIX  2016-1
des_thermo_rad.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2 ! !
3 ! Module name: DES_RADIATION !
4 ! !
5 ! Purpose: !
6 ! !
7 ! Author: J.Musser Date: 25-Jun-10 !
8 ! !
9 ! Commen: !
10 ! !
11 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
12  SUBROUTINE des_radiation
13 
14  USE constant
15  USE des_thermo
16  USE discretelement
17  USE fldvar
18  USE param1
19  USE physprop, only: smax
20  USE toleranc
21  use functions, only: fluid_at
22  use functions, only: is_normal
23  IMPLICIT NONE
24 
25 ! Passed variables
26 !---------------------------------------------------------------------//
27 ! Global index of particle
28  INTEGER :: NP
29 ! Solid phase of particle I
30  INTEGER :: lM
31 ! Fluid cell index containing particle I
32  INTEGER :: IJK
33 
34 ! Local variables
35 !---------------------------------------------------------------------//
36 ! Environment temperature
37  DOUBLE PRECISION :: Tenv
38 ! SB constant TIMES particle surface area
39  DOUBLE PRECISION :: SBx4Pi
40  INTEGER, PARAMETER :: lUpdateFreq=5
41  INTEGER, SAVE :: lUpdate_avgTs=0
42 !......................................................................!
43 
44 
45 ! Coupled simulations update the average solids temperature at the start
46 ! of the DEM time march. Granular flow (no gas) simulations update the
47 ! average solids temperature every "lUpdateFreq" time steps.
48  IF(.NOT.des_continuum_coupled) THEN
49  IF(mod(lupdate_avgts,lupdatefreq) == 0) THEN
51  CALL calc_avgts
52  lupdate_avgts = 0
53  ELSE
54  lupdate_avgts = lupdate_avgts + 1
55  ENDIF
56  ENDIF
57 
58  sbx4pi = sb_const*4.0d0*pi
59 
60  DO np=1,max_pip
61  IF(is_normal(np)) THEN
62  lm = pijk(np,5)
63  IF(calc_radt_des(lm)) THEN
64 
65  ijk = pijk(np,4)
66  IF(fluid_at(ijk)) THEN
67  tenv = ep_g(ijk)*t_g(ijk) + &
68  (one-ep_g(ijk))*avgdes_t_s(ijk)
69  ELSE
70  tenv = avgdes_t_s(ijk)
71  ENDIF
72 ! Calculate the heat source.
73  q_source(np) = q_source(np) + des_em(lm)* sbx4pi * &
74  (des_radius(np)**2)*(tenv**4 - des_t_s(np)**4)
75 ! Update the thermal source term.
76  ENDIF
77  ENDIF
78  ENDDO
79 
80  RETURN
81  END SUBROUTINE des_radiation
82 
83 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
84 ! !
85 ! Module name: CALC_avgTs !
86 ! Author: J.Musser Date: 06-NOV-12 !
87 ! !
88 ! Purpose: !
89 ! !
90 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
91  SUBROUTINE calc_avgts
92 
93  USE compar
94  USE derived_types, only: pic
95  USE des_rxns
96  USE des_thermo
97  USE discretelement
98  USE functions
99  USE geometry
100  USE indices
101  USE param1
102  USE physprop
103  USE run, only: energy_eq
104 
105  IMPLICIT NONE
106 
107 ! Passed variables
108 !-----------------------------------------------
109 ! NONE
110 
111 ! Local variables
112 !---------------------------------------------------------------------//
113 ! Index of neighbor particle of particle I such that I < J
114  INTEGER :: IJK
115 ! Loop index for particles.
116  INTEGER :: NP, lNP
117 ! Sum of particle temperatures in fluid cell.
118  DOUBLE PRECISION :: SUM_T_s
119  INTEGER, SAVE :: PASS=0
120 !---------------------------------------------------------------------//
121 
122  IF(.NOT.energy_eq) RETURN
123 
124 ! Loop over fluid cells.
125  ijk_lp: DO ijk = ijkstart3, ijkend3
126 
127  avgdes_t_s(ijk) = zero
128  IF(.NOT.fluid_at(ijk)) cycle ijk_lp
129 
130  IF(pinc(ijk) > 0) THEN
131 ! Initialize local solids temperature.
132  sum_t_s = zero
133 ! Loop over all particles in cell IJK.
134  lnp_lp: DO lnp = 1, pinc(ijk)
135  np = pic(ijk)%p(lnp)
136 ! Update the sum of particle temperatures in fluid cell IJK.
137  IF(is_normal(np)) sum_t_s = sum_t_s + des_t_s(np)
138  ENDDO lnp_lp
139 
140 ! Average solids temperature in fluid cell IJK. The average method
141 ! (over particles) will need changed for Hybrid model (mass? volume?).
142  avgdes_t_s(ijk) = sum_t_s/pinc(ijk)
143  ENDIF
144  ENDDO ijk_lp
145 
146  RETURN
147  END SUBROUTINE calc_avgts
integer ijkend3
Definition: compar_mod.f:80
double precision sb_const
double precision, dimension(:), allocatable ep_g
Definition: fldvar_mod.f:15
double precision, dimension(:), allocatable des_t_s
double precision, parameter one
Definition: param1_mod.f:29
logical, dimension(dim_m) calc_radt_des
double precision, dimension(:), allocatable t_g
Definition: fldvar_mod.f:63
double precision, dimension(dim_m) des_em
double precision, dimension(:), allocatable avgdes_t_s
Definition: run_mod.f:13
subroutine particles_in_cell
subroutine des_radiation
logical energy_eq
Definition: run_mod.f:100
integer ijkstart3
Definition: compar_mod.f:80
integer smax
Definition: physprop_mod.f:22
double precision, dimension(:), allocatable q_source
type(iap1), dimension(:), allocatable pic
double precision, parameter pi
Definition: constant_mod.f:158
double precision, parameter zero
Definition: param1_mod.f:27
subroutine calc_avgts