18 REAL*8 :: gas_mass_fraction
33 LOGICAL :: initial_neutral_density
39 REAL*8 :: gas_volume_fraction
42 REAL*8 :: solid_tot_volume_fraction
48 REAL*8 :: gas_volume_fraction0
51 REAL*8 :: gas_mass_fraction0
54 REAL*8 :: solid_tot_mass_fraction0
57 REAL*8 :: mass_flow_rate
66 REAL*8 :: atm_mass_fraction
69 REAL*8 :: wvapour_mass_fraction
93 cp_rhop_mom , mom , rhop_mom , distribution
97 USE plume_module, ONLY: w , r , u , mag_u , phi , mfr_exp0, r0
108 REAL*8 :: rho_solid_avg(n_part)
110 REAL*8 :: rho_solid_tot_avg
112 REAL*8 :: rho_wvapour
116 REAL*8 :: alfa_s(n_part)
118 REAL*8 :: alfa_g_atm , alfa_g_wvapour
120 REAL*8 :: wvapour_volume_fraction , atm_volume_fraction
124 REAL*8,
DIMENSION(n_part,n_nodes) :: xi , wi
130 REAL*8 :: part_dens_array(n_nodes)
132 IF ( verbose_level .GE. 1 )
WRITE(*,*)
'initialize_mixture'
136 IF ( initial_neutral_density )
THEN
146 rho_atm_tp = pa / ( rair * tp )
148 rho_gas = pa / ( rgasmix * tp )
150 rho_wvapour = pa / ( rwvapour * tp )
152 alfa_g_wvapour = ( rho_gas - rho_atm_tp ) / ( rho_wvapour - rho_atm_tp )
154 alfa_g_atm = 1.d0 - alfa_g_wvapour
158 IF ( distribution .EQ.
'constant' )
THEN
169 IF ( verbose_level .GE. 2 )
THEN
171 WRITE(*,*)
'i_part',i_part
172 WRITE(*,*)
'xi',xi(i_part,:)
173 WRITE(*,*)
'wi',wi(i_part,:)
184 IF ( distribution_variable .EQ.
'particles_number' )
THEN
186 rho_solid_avg(i_part) = sum( part_dens_array * wi(i_part,:) &
187 * xi(i_part,:)**3 ) / mom(i_part,3)
189 ELSEIF ( distribution_variable .EQ.
'mass_fraction' )
THEN
191 rho_solid_avg(i_part) = 1.d0 / ( sum( wi(i_part,:) / part_dens_array )&
198 rho_solid_tot_avg = 1.d0 / sum( solid_partial_mass_fraction(1:n_part) / &
199 rho_solid_avg(1:n_part) )
204 alfa_s(i_part) = solid_partial_mass_fraction(i_part) * &
205 rho_solid_tot_avg / rho_solid_avg(i_part)
207 IF ( verbose_level .GE. 1 )
THEN
209 WRITE(*,*)
'i_part',i_part
210 WRITE(*,*)
'rho_solid_avg',rho_solid_avg(i_part)
211 WRITE(*,*)
'rho_solid_avg',rho_solid_avg(i_part)
212 WRITE(*,*)
'alfa_s',i_part,alfa_s(i_part)
221 rho_solid_tot_avg = 1.d0 / sum( solid_partial_mass_fraction(1:n_part) / &
222 rho_solid_avg(1:n_part) )
224 gas_volume_fraction = rho_solid_tot_avg / ( rho_gas * ( 1.d0 / &
225 gas_mass_fraction0 - 1.d0 ) + rho_solid_tot_avg )
227 solid_tot_volume_fraction = 1.d0 - gas_volume_fraction0
229 solid_tot_mass_fraction0 = 1.d0 - gas_mass_fraction0
231 IF ( verbose_level .GE. 1 )
THEN
233 WRITE(*,*)
'solid volume fractions',solid_tot_volume_fraction*alfa_s
234 WRITE(*,*)
'solid_tot_volume_fraction',solid_tot_volume_fraction
235 WRITE(*,*)
'gas_volume_fraction',gas_volume_fraction
236 WRITE(*,*)
'solid_tot_mass_fraction0',solid_tot_mass_fraction0
243 rho_solid_tot_avg = sum( alfa_s * rho_solid_avg )
246 rho_mix = gas_volume_fraction * rho_gas + solid_tot_volume_fraction * &
249 atm_volume_fraction = gas_volume_fraction * alfa_g_atm
251 wvapour_volume_fraction = gas_volume_fraction * alfa_g_wvapour
253 atm_mass_fraction = atm_volume_fraction * rho_atm / rho_mix
261 wvapour_mass_fraction = wvapour_volume_fraction * rho_wvapour / rho_mix
267 WRITE(*,*)
'cp_rhop_mom',cp_rhop_mom(:,3)
268 WRITE(*,*)
'rhop_mom',rhop_mom(:,3)
270 cp_solid0 = sum(solid_partial_mass_fraction * cp_rhop_mom(:,3) / &
273 cpmix = gas_mass_fraction0 * cpwvapour + ( 1.d0 - gas_mass_fraction0 ) * &
276 IF ( mfr_exp0 .GT. 0.d0 )
THEN
278 mass_flow_rate = 10.0**mfr_exp0
280 WRITE(*,*)
'WARNING: Fixed mfr =',mass_flow_rate
282 IF ( r0 .EQ. 0.d0 )
THEN
284 IF ( w .EQ. 0.d0 )
THEN
287 w = 138 * dsqrt( gas_mass_fraction0 * 100.d0 )
288 mag_u = dsqrt(u*u+w*w)
291 WRITE(*,*)
'Calculated initial velocity =',w
295 r = dsqrt( mass_flow_rate / ( pi_g * rho_mix * mag_u ) )
298 WRITE(*,*)
'Calculated radius =',r
304 mass_flow_rate = pi_g * rho_mix * mag_u * (r**2)
308 IF ( verbose_level .GE. 1 )
THEN
310 WRITE(*,*)
'cpsolid',cp_solid0
311 WRITE(*,*)
'rho_atm',rho_atm
312 WRITE(*,*)
'rho_gas',rho_gas
313 WRITE(*,*)
'rho_mix',rho_mix
314 WRITE(*,*)
'mass_flow_rate',mass_flow_rate
320 gas_mass_fraction = gas_volume_fraction * rho_gas / rho_mix
322 WRITE(*,*)
'initial mfr',mass_flow_rate
real *8 function particles_density(i_part, diam_in)
Particle density.
subroutine initialize_mixture
Mixture properties initialization.
Gas/particles mixture module.
Method of Moments module.
subroutine eval_particles_moments(xi, w)
Particles moments computation.
subroutine wheeler_algorithm(m, xi, w)
Wheeler algorithm.