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