25 use discretelement
, only: des_explicitly_coupled
26 use discretelement
, only: dtsolid
27 use discretelement
, only: pijk
28 use discretelement
, only: max_pip
54 INTEGER :: IJK, LC, NP
58 DOUBLE PRECISION :: lRgp(
nmax(0))
59 DOUBLE PRECISION :: lRgc(
nmax(0))
60 DOUBLE PRECISION :: lHoRg
61 DOUBLE PRECISION :: lSUMRg
66 DOUBLE PRECISION :: WEIGHT
69 IF(.NOT.is_normal(np)) cycle
72 IF(.NOT.fluid_at(pijk(np,4)))
THEN 77 ELSEIF(.NOT.des_explicitly_coupled)
THEN 86 IF(des_interp_on)
THEN 88 ijk = filter_cell(lc,np)
89 weight = dtsolid*filter_weight(lc,np)
91 des_r_gp(ijk,:) = des_r_gp(ijk,:)+lrgp*weight
92 des_r_gc(ijk,:) = des_r_gc(ijk,:)+lrgc*weight
93 des_r_phase(ijk,:) = des_r_phase(ijk,:)+lrphase*weight
94 des_hor_g(ijk) = des_hor_g(ijk) + lhorg*weight
95 des_sum_r_g(ijk) = des_sum_r_g(ijk) + lsumrg*weight
101 des_r_gp(ijk,:) = des_r_gp(ijk,:) + lrgp*weight
102 des_r_gc(ijk,:) = des_r_gc(ijk,:) + lrgc*weight
103 des_r_phase(ijk,:) = des_r_phase(ijk,:) + lrphase*weight
104 des_hor_g(ijk) = des_hor_g(ijk) + lhorg*weight
105 des_sum_r_g(ijk) = des_sum_r_g(ijk) + lsumrg*weight
136 use discretelement
, only: max_pip
142 use discretelement
, only: pijk
172 INTEGER :: NP, IJK, LC
174 DOUBLE PRECISION :: GAMMAxTp
176 DOUBLE PRECISION :: lRgp(
nmax(0))
177 DOUBLE PRECISION :: lRgc(
nmax(0))
178 DOUBLE PRECISION :: lHoRg
179 DOUBLE PRECISION :: lSUMRg
184 DOUBLE PRECISION :: WEIGHT
200 IF(.NOT.is_normal(np)) cycle
201 IF(.NOT.fluid_at(pijk(np,4))) cycle
209 IF(stiff_chemistry)
THEN 213 ELSEIF(des_interp_on)
THEN 218 des_r_gp(ijk,:) = des_r_gp(ijk,:)+lrgp*weight
219 des_r_gc(ijk,:) = des_r_gc(ijk,:)+lrgc*weight
222 des_sum_r_g(ijk) = des_sum_r_g(ijk) + lsumrg*weight
225 des_r_gp(ijk,:) = des_r_gp(ijk,:) + lrgp
226 des_r_gc(ijk,:) = des_r_gc(ijk,:) + lrgc
229 des_sum_r_g(ijk) = des_sum_r_g(ijk) + lsumrg
234 IF(stiff_chemistry)
THEN 239 IF(des_interp_on)
THEN 240 CALL des_collect_gdata(des_r_gp)
241 CALL des_collect_gdata(des_r_gc)
244 CALL des_collect_gdata(des_sum_r_g)
284 INTEGER,
INTENT(IN) :: pIJK
285 DOUBLE PRECISION,
INTENT(IN) :: pDT
286 DOUBLE PRECISION,
INTENT(IN) :: pRgp(
nmax(0))
287 DOUBLE PRECISION,
INTENT(IN) :: pRgc(
nmax(0))
288 DOUBLE PRECISION,
INTENT(IN) :: pHoRg
289 DOUBLE PRECISION,
INTENT(IN) :: pSUMRg
293 DOUBLE PRECISION :: lRg(
nmax(0)), sumXg
294 DOUBLE PRECISION :: lDToVOL
299 ldtovol = pdt/
vol(pijk)
307 t_g(pijk) =
t_g(pijk) - ldtovol*(phorg/(
rop_g(pijk)*c_pg(pijk)))
311 x_g(pijk,n) =
x_g(pijk,n) + ldtovol * &
312 (lrg(n) -
x_g(pijk,n)*psumrg)/(
rop_g(pijk))
317 sumxg = sum(
x_g(pijk,:))
318 x_g(pijk,:) =
x_g(pijk,:)/sumxg
328 ro_g(pijk) = huge(0.0)
332 mw_mix_g(pijk) = sum(
x_g(pijk,1:
nmax(0))/mw_g(1:
nmax(0)))
333 mw_mix_g(pijk) =
one/mw_mix_g(pijk)
double precision, dimension(:,:), allocatable des_r_s
integer, dimension(:,:), allocatable filter_cell
double precision, dimension(:), allocatable ep_g
double precision, parameter one
double precision, dimension(:), allocatable des_hor_g
double precision, dimension(:), allocatable t_g
double precision gas_const
double precision, dimension(:), allocatable des_sum_r_g
subroutine calc_rrates_des(NP, pRgp, pRgc, pRPhase, pHoRg, pSUMRg)
double precision, dimension(:), allocatable p_g
double precision, dimension(dim_n_g) mw_g
subroutine finalize_stiff_solver
double precision, dimension(:,:), allocatable filter_weight
subroutine des_stiff_chem(pIJK, pDT, pRgp, pRgc, pHoRg, pSUMRg)
double precision, parameter small_number
double precision, dimension(:,:), allocatable x_g
double precision, dimension(:,:), allocatable des_r_gc
double precision, dimension(:,:), allocatable des_r_phase
double precision, dimension(:), allocatable mw_mix_g
integer, dimension(0:dim_m) nmax
double precision, parameter zero_x_gs
double precision, dimension(:), allocatable rxns_qs
double precision, dimension(:,:), allocatable des_r_gp
double precision, parameter pi
double precision, dimension(:), allocatable vol
double precision, dimension(:), allocatable ro_g
double precision, dimension(:), allocatable rop_g
double precision, parameter zero
double precision, dimension(:), allocatable c_pg