PartMC  2.6.1
Functions/Subroutines | Variables
pmc_coag_kernel Module Reference

Generic coagulation kernel. More...

Functions/Subroutines

character(len=coag_kernel_type_len) function coag_kernel_type_to_string (coag_kernel_type)
 Return a string representation of a kernel type. More...
 
subroutine kernel (coag_kernel_type, aero_particle_1, aero_particle_2, aero_data, env_state, k)
 Evalulate a coagulation kernel function. More...
 
subroutine kernel_minmax (coag_kernel_type, v1, v2, aero_data, env_state, k_min, k_max)
 Compute the minimum and maximum coagulation kernel. More...
 
subroutine num_conc_weighted_kernel (coag_kernel_type, aero_particle_1, aero_particle_2, i_class, j_class, ij_class, aero_data, aero_weight_array, env_state, k)
 Compute the kernel value with the given number concentration weighting. More...
 
subroutine bin_kernel (n_bin, bin_r, aero_data, coag_kernel_type, env_state, k)
 Computes an array of kernel values for each bin pair. k(i,j) is the kernel value at the centers of bins i and j. This assumes the kernel is only a function of the particle volumes. More...
 
subroutine est_k_minmax_binned_unweighted (bin_grid, coag_kernel_type, aero_data, env_state, k_min, k_max)
 Estimate an array of minimum and maximum kernel values. Given particles v1 in bin b1 and v2 in bin b2, it is probably true that k_min(b1,b2) <= kernel(v1,v2) <= k_max(b1,b2). More...
 
subroutine est_k_minmax_for_bin_unweighted (bin_grid, coag_kernel_type, b1, b2, aero_data, env_state, k_min, k_max)
 Samples within bins b1 and b2 to find the minimum and maximum value of the kernel between particles from the two bins. More...
 
real(kind=dp) function coag_num_conc_factor (aero_weight_array, aero_data, i_r, j_r, i_class, j_class, ij_class)
 Coagulation scale factor due to number concentrations. More...
 
integer function coag_dest_class (aero_weight_array, aero_data, bin_grid, i_bin, j_bin, i_class, j_class)
 Determine the weight class in which coagulated particles will be placed. More...
 
subroutine max_coag_num_conc_factor (aero_weight_array, aero_data, bin_grid, i_bin, j_bin, i_class, j_class, ij_class, f_max)
 Determine the minimum and maximum number concentration factors for coagulation. More...
 

Variables

integer, parameter coag_kernel_type_len = 20
 Maximum length of a mode type. More...
 
integer, parameter coag_kernel_type_invalid = 0
 Type code for an undefined or invalid kernel. More...
 
integer, parameter coag_kernel_type_sedi = 1
 Type code for a sedimentation kernel. More...
 
integer, parameter coag_kernel_type_additive = 2
 Type code for an additive kernel. More...
 
integer, parameter coag_kernel_type_constant = 3
 Type code for a constant kernel. More...
 
integer, parameter coag_kernel_type_brown = 4
 Type code for a Brownian kernel. More...
 
integer, parameter coag_kernel_type_zero = 5
 Type code for a zero kernel. More...
 
integer, parameter coag_kernel_type_brown_free = 6
 Type code for a Brownian kernel in free molecular regime from Vemury and Pratsinis [1995]. More...
 
integer, parameter coag_kernel_type_brown_cont = 7
 Type code for a Brownian kernel in continuum regime from Vemury and Pratsinis [1995]. More...
 

Detailed Description

Generic coagulation kernel.

Function/Subroutine Documentation

◆ bin_kernel()

subroutine pmc_coag_kernel::bin_kernel ( integer, intent(in)  n_bin,
real(kind=dp), dimension(n_bin), intent(in)  bin_r,
type(aero_data_t), intent(in)  aero_data,
integer, intent(in)  coag_kernel_type,
type(env_state_t), intent(in)  env_state,
real(kind=dp), dimension(n_bin,n_bin), intent(out)  k 
)

Computes an array of kernel values for each bin pair. k(i,j) is the kernel value at the centers of bins i and j. This assumes the kernel is only a function of the particle volumes.

Parameters
[in]n_binNumber of bins.
[in]bin_rRadii of particles in bins (m).
[in]aero_dataAerosol data.
[in]coag_kernel_typeCoagulation kernel type.
[in]env_stateEnvironment state.
[out]kKernel values.

Definition at line 216 of file coag_kernel.F90.

◆ coag_dest_class()

integer function pmc_coag_kernel::coag_dest_class ( type(aero_weight_array_t), intent(in)  aero_weight_array,
type(aero_data_t), intent(in)  aero_data,
type(bin_grid_t), intent(in)  bin_grid,
integer, intent(in)  i_bin,
integer, intent(in)  j_bin,
integer, intent(in)  i_class,
integer, intent(in)  j_class 
)

Determine the weight class in which coagulated particles will be placed.

Parameters
[in]aero_weight_arrayAerosol weight array.
[in]aero_dataAerosol data.
[in]bin_gridBin grid.
[in]i_binFirst bin number.
[in]j_binSecond bin number.
[in]i_classWeight class of first particle.
[in]j_classWeight class of second particle.

Definition at line 382 of file coag_kernel.F90.

◆ coag_kernel_type_to_string()

character(len=coag_kernel_type_len) function pmc_coag_kernel::coag_kernel_type_to_string ( integer, intent(in)  coag_kernel_type)

Return a string representation of a kernel type.

Parameters
[in]coag_kernel_typeCoagulation kernel type.

Definition at line 52 of file coag_kernel.F90.

◆ coag_num_conc_factor()

real(kind=dp) function pmc_coag_kernel::coag_num_conc_factor ( type(aero_weight_array_t), intent(in)  aero_weight_array,
type(aero_data_t), intent(in)  aero_data,
real(kind=dp), intent(in)  i_r,
real(kind=dp), intent(in)  j_r,
integer, intent(in)  i_class,
integer, intent(in)  j_class,
integer, intent(in)  ij_class 
)

Coagulation scale factor due to number concentrations.

Parameters
[in]aero_weight_arrayAerosol weight array.
[in]aero_dataAerosol data.
[in]i_rRadius of first particle.
[in]j_rRadius of second particle.
[in]i_classWeight class of first particle.
[in]j_classWeight class of second particle.
[in]ij_classWeight class of combined particle.

Definition at line 346 of file coag_kernel.F90.

◆ est_k_minmax_binned_unweighted()

subroutine pmc_coag_kernel::est_k_minmax_binned_unweighted ( type(bin_grid_t), intent(in)  bin_grid,
integer, intent(in)  coag_kernel_type,
type(aero_data_t), intent(in)  aero_data,
type(env_state_t), intent(in)  env_state,
real(kind=dp), dimension(bin_grid_size(bin_grid), bin_grid_size(bin_grid)), intent(out)  k_min,
real(kind=dp), dimension(bin_grid_size(bin_grid), bin_grid_size(bin_grid)), intent(out)  k_max 
)

Estimate an array of minimum and maximum kernel values. Given particles v1 in bin b1 and v2 in bin b2, it is probably true that k_min(b1,b2) <= kernel(v1,v2) <= k_max(b1,b2).

Parameters
[in]bin_gridBin_grid.
[in]coag_kernel_typeCoagulation kernel type.
[in]aero_dataAerosol data.
[in]env_stateEnvironment state.
[out]k_minMinimum kernel vals.
[out]k_maxMaximum kernel vals.

Definition at line 253 of file coag_kernel.F90.

◆ est_k_minmax_for_bin_unweighted()

subroutine pmc_coag_kernel::est_k_minmax_for_bin_unweighted ( type(bin_grid_t), intent(in)  bin_grid,
integer, intent(in)  coag_kernel_type,
integer, intent(in)  b1,
integer, intent(in)  b2,
type(aero_data_t), intent(in)  aero_data,
type(env_state_t), intent(in)  env_state,
real(kind=dp), intent(out)  k_min,
real(kind=dp), intent(out)  k_max 
)

Samples within bins b1 and b2 to find the minimum and maximum value of the kernel between particles from the two bins.

Parameters
[in]bin_gridBin_grid.
[in]coag_kernel_typeCoagulation kernel type.
[in]b1First bin.
[in]b2Second bin.
[in]aero_dataAerosol data.
[in]env_stateEnvironment state.
[out]k_minMinimum kernel value.
[out]k_maxMaximum kernel value.

Number of sample points per bin.

Over-estimation scale factor parameter.

Definition at line 286 of file coag_kernel.F90.

◆ kernel()

subroutine pmc_coag_kernel::kernel ( integer, intent(in)  coag_kernel_type,
type(aero_particle_t), intent(in)  aero_particle_1,
type(aero_particle_t), intent(in)  aero_particle_2,
type(aero_data_t), intent(in)  aero_data,
type(env_state_t), intent(in)  env_state,
real(kind=dp), intent(out)  k 
)

Evalulate a coagulation kernel function.

Parameters
[in]coag_kernel_typeCoagulation kernel type.
[in]aero_particle_1First particle.
[in]aero_particle_2Second particle.
[in]aero_dataAerosol data.
[in]env_stateEnvironment state.
[out]kKernel k(a,b) (m^3/s).

Definition at line 83 of file coag_kernel.F90.

◆ kernel_minmax()

subroutine pmc_coag_kernel::kernel_minmax ( integer, intent(in)  coag_kernel_type,
real(kind=dp), intent(in)  v1,
real(kind=dp), intent(in)  v2,
type(aero_data_t), intent(in)  aero_data,
type(env_state_t), intent(in)  env_state,
real(kind=dp), intent(out)  k_min,
real(kind=dp), intent(out)  k_max 
)

Compute the minimum and maximum coagulation kernel.

Parameters
[in]coag_kernel_typeCoagulation kernel type.
[in]v1Volume of first particle (m^3).
[in]v2Volume of second particle (m^3).
[in]aero_dataAerosol data.
[in]env_stateEnvironment state.
[out]k_minMinimum kernel value (m^3/s).
[out]k_maxMaximum kernel value (m^3/s).

Definition at line 130 of file coag_kernel.F90.

◆ max_coag_num_conc_factor()

subroutine pmc_coag_kernel::max_coag_num_conc_factor ( type(aero_weight_array_t), intent(in)  aero_weight_array,
type(aero_data_t), intent(in)  aero_data,
type(bin_grid_t), intent(in)  bin_grid,
integer, intent(in)  i_bin,
integer, intent(in)  j_bin,
integer, intent(in)  i_class,
integer, intent(in)  j_class,
integer, intent(in)  ij_class,
real(kind=dp), intent(out)  f_max 
)

Determine the minimum and maximum number concentration factors for coagulation.

Parameters
[in]aero_weight_arrayAerosol weight array.
[in]aero_dataAerosol data.
[in]bin_gridBin grid.
[in]i_binFirst bin number.
[in]j_binSecond bin number.
[in]i_classWeight class of first particle.
[in]j_classWeight class of second particle.
[in]ij_classWeight class of coagulated particle.
[out]f_maxMaximum coagulation factor.

Definition at line 422 of file coag_kernel.F90.

◆ num_conc_weighted_kernel()

subroutine pmc_coag_kernel::num_conc_weighted_kernel ( integer, intent(in)  coag_kernel_type,
type(aero_particle_t), intent(in)  aero_particle_1,
type(aero_particle_t), intent(in)  aero_particle_2,
integer, intent(in)  i_class,
integer, intent(in)  j_class,
integer, intent(in)  ij_class,
type(aero_data_t), intent(in)  aero_data,
type(aero_weight_array_t), intent(in)  aero_weight_array,
type(env_state_t), intent(in)  env_state,
real(kind=dp), intent(out)  k 
)

Compute the kernel value with the given number concentration weighting.

Parameters
[in]coag_kernel_typeCoagulation kernel type.
[in]aero_particle_1First particle.
[in]aero_particle_2Second particle.
[in]i_classWeight class of first particle.
[in]j_classWeight class of second particle.
[in]ij_classWeight class of combined particle.
[in]aero_dataAerosol data.
[in]aero_weight_arrayAerosol weight array.
[in]env_stateEnvironment state.
[out]kCoagulation kernel.

Definition at line 175 of file coag_kernel.F90.

Variable Documentation

◆ coag_kernel_type_additive

integer, parameter pmc_coag_kernel::coag_kernel_type_additive = 2

Type code for an additive kernel.

Definition at line 33 of file coag_kernel.F90.

◆ coag_kernel_type_brown

integer, parameter pmc_coag_kernel::coag_kernel_type_brown = 4

Type code for a Brownian kernel.

Definition at line 37 of file coag_kernel.F90.

◆ coag_kernel_type_brown_cont

integer, parameter pmc_coag_kernel::coag_kernel_type_brown_cont = 7

Type code for a Brownian kernel in continuum regime from Vemury and Pratsinis [1995].

Definition at line 45 of file coag_kernel.F90.

◆ coag_kernel_type_brown_free

integer, parameter pmc_coag_kernel::coag_kernel_type_brown_free = 6

Type code for a Brownian kernel in free molecular regime from Vemury and Pratsinis [1995].

Definition at line 42 of file coag_kernel.F90.

◆ coag_kernel_type_constant

integer, parameter pmc_coag_kernel::coag_kernel_type_constant = 3

Type code for a constant kernel.

Definition at line 35 of file coag_kernel.F90.

◆ coag_kernel_type_invalid

integer, parameter pmc_coag_kernel::coag_kernel_type_invalid = 0

Type code for an undefined or invalid kernel.

Definition at line 29 of file coag_kernel.F90.

◆ coag_kernel_type_len

integer, parameter pmc_coag_kernel::coag_kernel_type_len = 20

Maximum length of a mode type.

Definition at line 26 of file coag_kernel.F90.

◆ coag_kernel_type_sedi

integer, parameter pmc_coag_kernel::coag_kernel_type_sedi = 1

Type code for a sedimentation kernel.

Definition at line 31 of file coag_kernel.F90.

◆ coag_kernel_type_zero

integer, parameter pmc_coag_kernel::coag_kernel_type_zero = 5

Type code for a zero kernel.

Definition at line 39 of file coag_kernel.F90.