File: N:\mfix\model\des\des_thermo_mod.f

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2     !                                                                      !
3     !  Module name: DES_THERMO                                             !
4     !  Author: J.Musser                                   Date: 16-Jun-10  !
5     !                                                                      !
6     !  Purpose: Common elements for MFIX-DEM heat transfer.                !
7     !                                                                      !
8     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
9           MODULE DES_THERMO
10     
11           USE param, only: dim_m
12     
13     ! Heat transfer correlation specified in mfix.dat
14     ! Default [RANZ_1952]
15           CHARACTER(LEN=24) :: DES_CONV_CORR
16     
17           INTEGER :: DES_CONV_CORR_ENUM
18           INTEGER, PARAMETER :: RANZ_1952 = 0
19     
20     ! Run time flags for calculating the various modes of heat transfer
21           LOGICAL :: CALC_CONV_DES = .FALSE.
22           LOGICAL :: CALC_COND_DES(DIM_M) = .FALSE.
23           LOGICAL :: CALC_RADT_DES(DIM_M) = .FALSE.
24     
25     ! Particle properties
26     !-----------------------------------------------------------------------
27     ! Particle temperature
28           DOUBLE PRECISION, ALLOCATABLE :: DES_T_s(:)
29     
30     ! DES specific heat of particles by particle
31           DOUBLE PRECISION, ALLOCATABLE :: DES_C_ps(:)
32     
33     ! Emissivity of particles
34           DOUBLE PRECISION :: DES_Em(DIM_M)
35     ! Stefan-Boltzmann Constant
36           DOUBLE PRECISION :: SB_CONST
37     ! Bulk solids temperature for radiative heat transfer
38           DOUBLE PRECISION, ALLOCATABLE :: avgDES_T_s(:)
39     
40     ! Convective heat transfer coefficient TIMES particle surface area
41           DOUBLE PRECISION, ALLOCATABLE :: GAMMAxSA(:)
42     
43     
44     ! Thermodynamic Neighborhood
45     !-----------------------------------------------------------------------
46     ! Fluid Lens Proportion Constant used to calculate the radius of the
47     ! fluid lens that surrounds the particle for particle-fluid-particle
48     ! conduction.  Default [ 0.2 ]
49           DOUBLE PRECISION :: FLPC
50     
51     ! Mininum separation distance between the surface of two contacting
52     ! particles. This value is used to remove the singluarity that the
53     ! particle-fluid-particle conduciton model develops at the contact
54     ! interface. [4.0x10^(-10) meters]
55           DOUBLE PRECISION :: DES_MIN_COND_DIST
56     
57     
58     
59     ! Rates of heat transfer
60     !-----------------------------------------------------------------------
61     ! Generic heat transfer source to the particle.
62           DOUBLE PRECISION, ALLOCATABLE :: Q_Source(:), Q_Source0(:)
63     ! Convective heat transfer source
64           DOUBLE PRECISION, ALLOCATABLE :: CONV_Qs(:)
65     ! Heat source resulting from chemical reactions
66           DOUBLE PRECISION, ALLOCATABLE :: RXNS_Qs(:)
67     
68     
69     ! Fluid/Particle coupling
70     !---------------------------------------------------------------------//
71     ! Gas Phase Energy Eq source terms for gas-particle convection
72           DOUBLE PRECISION, ALLOCATABLE :: CONV_Sc(:), CONV_Sp(:)
73     
74           contains
75     
76     
77     !----------------------------------------------------------------------!
78     ! Function: CALC_Cp_DES                                                !
79     ! Author: J.Musser                                    Date: 11-DEC-15  !
80     !                                                                      !
81     ! Purpose: Calculate the specific heat of a particle.                  !
82     !----------------------------------------------------------------------!
83           PURE DOUBLE PRECISION FUNCTION CALC_Cp_DES(pNP)
84     
85     ! Universal gas constant in cal/mol.K
86           use constant, only: RGAS => GAS_CONST_cal
87     ! Calculate the specific heat from polynomical data obtained from the
88     ! thermodynamic databases.
89           use read_thermochemical, only: calc_CpoR
90     ! Number of species comprising species
91           use physprop, only: NMAX_s
92           use physprop, only: C_PS0
93           use physprop, only: MW_s
94           use discretelement, only: PIJK
95           use des_rxns, only: DES_X_s
96           use run, only: UNITS
97     
98           use param1, only: ZERO, UNDEFINED
99     
100           IMPLICIT NONE
101     
102     ! Dummy arguments
103     !---------------------------------------------------------------------//
104           INTEGER, INTENT(IN) :: pNP
105     !     DOUBLE PRECISION, INTENT(IN) :: pTs
106     ! Local Variables
107     !---------------------------------------------------------------------//
108     ! loop counter and error indicator
109           INTEGER :: NN, IER, MM
110           DOUBLE PRECISION :: lTs
111     !......................................................................!
112     
113     ! Temperature of particle
114           lTs = DES_T_s(pNP)
115     ! Phase of particle.
116           MM=PIJK(pNP,5)
117     
118     ! Calculate the specific heat based on the species composition of the
119     ! particle and the data from the thermodynamic databases.
120           IF(C_PS0(MM) == UNDEFINED) THEN
121              CALC_Cp_DES = ZERO
122              DO NN = 1, NMAX_s(MM)
123                 CALC_Cp_DES = CALC_Cp_DES + calc_CpoR(lTs, MM, NN) *  &
124                    DES_X_s(pNP,NN)*RGAS / MW_s(MM,NN)
125              ENDDO
126     ! Convert to SI units if needed.
127              IF (UNITS == 'SI') CALC_Cp_DES = 4183.925D0*CALC_Cp_DES
128           ELSE
129     ! If a constant value specific heat has been assigned to the particle
130     ! in the mfix.dat file, use this value.
131              CALC_CP_DES = C_PS0(MM)
132           ENDIF
133           END FUNCTION CALC_Cp_DES
134     
135           END MODULE DES_THERMO
136