PartMC
2.6.1
|
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... | |
Generic coagulation 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.
[in] | n_bin | Number of bins. |
[in] | bin_r | Radii of particles in bins (m). |
[in] | aero_data | Aerosol data. |
[in] | coag_kernel_type | Coagulation kernel type. |
[in] | env_state | Environment state. |
[out] | k | Kernel values. |
Definition at line 216 of file coag_kernel.F90.
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.
[in] | aero_weight_array | Aerosol weight array. |
[in] | aero_data | Aerosol data. |
[in] | bin_grid | Bin grid. |
[in] | i_bin | First bin number. |
[in] | j_bin | Second bin number. |
[in] | i_class | Weight class of first particle. |
[in] | j_class | Weight class of second particle. |
Definition at line 382 of file coag_kernel.F90.
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.
[in] | coag_kernel_type | Coagulation kernel type. |
Definition at line 52 of file coag_kernel.F90.
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.
[in] | aero_weight_array | Aerosol weight array. |
[in] | aero_data | Aerosol data. |
[in] | i_r | Radius of first particle. |
[in] | j_r | Radius of second particle. |
[in] | i_class | Weight class of first particle. |
[in] | j_class | Weight class of second particle. |
[in] | ij_class | Weight class of combined particle. |
Definition at line 346 of file coag_kernel.F90.
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)
.
[in] | bin_grid | Bin_grid. |
[in] | coag_kernel_type | Coagulation kernel type. |
[in] | aero_data | Aerosol data. |
[in] | env_state | Environment state. |
[out] | k_min | Minimum kernel vals. |
[out] | k_max | Maximum kernel vals. |
Definition at line 253 of file coag_kernel.F90.
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.
[in] | bin_grid | Bin_grid. |
[in] | coag_kernel_type | Coagulation kernel type. |
[in] | b1 | First bin. |
[in] | b2 | Second bin. |
[in] | aero_data | Aerosol data. |
[in] | env_state | Environment state. |
[out] | k_min | Minimum kernel value. |
[out] | k_max | Maximum kernel value. |
Number of sample points per bin.
Over-estimation scale factor parameter.
Definition at line 286 of file coag_kernel.F90.
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.
[in] | coag_kernel_type | Coagulation kernel type. |
[in] | aero_particle_1 | First particle. |
[in] | aero_particle_2 | Second particle. |
[in] | aero_data | Aerosol data. |
[in] | env_state | Environment state. |
[out] | k | Kernel k(a,b) (m^3/s). |
Definition at line 83 of file coag_kernel.F90.
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.
[in] | coag_kernel_type | Coagulation kernel type. |
[in] | v1 | Volume of first particle (m^3). |
[in] | v2 | Volume of second particle (m^3). |
[in] | aero_data | Aerosol data. |
[in] | env_state | Environment state. |
[out] | k_min | Minimum kernel value (m^3/s). |
[out] | k_max | Maximum kernel value (m^3/s). |
Definition at line 130 of file coag_kernel.F90.
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.
[in] | aero_weight_array | Aerosol weight array. |
[in] | aero_data | Aerosol data. |
[in] | bin_grid | Bin grid. |
[in] | i_bin | First bin number. |
[in] | j_bin | Second bin number. |
[in] | i_class | Weight class of first particle. |
[in] | j_class | Weight class of second particle. |
[in] | ij_class | Weight class of coagulated particle. |
[out] | f_max | Maximum coagulation factor. |
Definition at line 422 of file coag_kernel.F90.
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.
[in] | coag_kernel_type | Coagulation kernel type. |
[in] | aero_particle_1 | First particle. |
[in] | aero_particle_2 | Second particle. |
[in] | i_class | Weight class of first particle. |
[in] | j_class | Weight class of second particle. |
[in] | ij_class | Weight class of combined particle. |
[in] | aero_data | Aerosol data. |
[in] | aero_weight_array | Aerosol weight array. |
[in] | env_state | Environment state. |
[out] | k | Coagulation kernel. |
Definition at line 175 of file coag_kernel.F90.
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.
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.
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.
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.
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.
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.
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.
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.
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.