PartMC
2.2.0
|
Generic coagulation kernel. More...
Public Member Functions | |
character(len=COAG_KERNEL_TYPE_LEN) function | coag_kernel_type_to_string (coag_kernel_type) |
Return a string representation of a kernel type. | |
subroutine | kernel (coag_kernel_type, aero_particle_1, aero_particle_2, aero_data, env_state, k) |
Evalulate a coagulation kernel function. | |
subroutine | kernel_minmax (coag_kernel_type, v1, v2, aero_data, env_state, k_min, k_max) |
Compute the minimum and maximum coagulation kernel. | |
subroutine | weighted_kernel (coag_kernel_type, aero_particle_1, aero_particle_2, aero_data, aero_weight, env_state, k) |
Compute the kernel value with the given weight. | |
subroutine | num_conc_weighted_kernel (coag_kernel_type, aero_particle_1, aero_particle_2, aero_data, aero_weight_array, env_state, k) |
Compute the kernel value with the given number concentration weighting. | |
subroutine | weighted_kernel_minmax (coag_kernel_type, v1, v2, aero_data, aero_weight, env_state, k_min, k_max) |
Compute the minimum and maximum kernel value with the given weight. | |
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. | |
subroutine | est_k_minmax_binned (bin_grid, coag_kernel_type, aero_data, aero_weight, 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) . | |
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) . | |
subroutine | est_k_minmax_for_bin (bin_grid, coag_kernel_type, b1, b2, aero_data, aero_weight, 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. | |
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. | |
real(kind=dp) function | coag_num_conc_factor (aero_weight_array, r_1, r_2) |
Coagulation scale factor due to number concentrations. | |
subroutine | max_coag_num_conc_factor (aero_weight_array, bin_grid, i_bin, j_bin, f_max) |
Determine the minimum and maximum number concentration factors for coagulation. | |
subroutine | max_coag_num_conc_factor_better (aero_weight_array, bin_grid, i_bin, j_bin, f_max) |
Determine the minimum and maximum number concentration factors for coagulation. | |
subroutine | spec_file_read_coag_kernel_type (file, coag_kernel_type) |
Read the specification for a kernel type from a spec file and generate it. | |
Public Attributes | |
integer, parameter | COAG_KERNEL_TYPE_LEN = 20 |
Maximum length of a mode type. | |
integer, parameter | COAG_KERNEL_TYPE_INVALID = 0 |
Type code for an undefined or invalid kernel. | |
integer, parameter | COAG_KERNEL_TYPE_SEDI = 1 |
Type code for a sedimentation kernel. | |
integer, parameter | COAG_KERNEL_TYPE_ADDITIVE = 2 |
Type code for an additive kernel. | |
integer, parameter | COAG_KERNEL_TYPE_CONSTANT = 3 |
Type code for a constant kernel. | |
integer, parameter | COAG_KERNEL_TYPE_BROWN = 4 |
Type code for a Brownian kernel. | |
integer, parameter | COAG_KERNEL_TYPE_ZERO = 5 |
Type code for a zero kernel. |
Generic coagulation kernel.
Definition at line 9 of file coag_kernel.F90.
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 266 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 43 of file coag_kernel.F90.
real(kind=dp) function pmc_coag_kernel::coag_num_conc_factor | ( | type(aero_weight_t), dimension(:), intent(in) | aero_weight_array, |
real(kind=dp), intent(in) | r_1, | ||
real(kind=dp), intent(in) | r_2 | ||
) |
Coagulation scale factor due to number concentrations.
[in] | aero_weight_array | Aerosol weight array. |
[in] | r_1 | Radius of first particle. |
[in] | r_2 | Radius of second particle. |
Definition at line 495 of file coag_kernel.F90.
subroutine pmc_coag_kernel::est_k_minmax_binned | ( | type(bin_grid_t), intent(in) | bin_grid, |
integer, intent(in) | coag_kernel_type, | ||
type(aero_data_t), intent(in) | aero_data, | ||
type(aero_weight_t), intent(in) | aero_weight, | ||
type(env_state_t), intent(in) | env_state, | ||
real(kind=dp), dimension(bin_grid%n_bin,bin_grid%n_bin), intent(out) | k_min, | ||
real(kind=dp), dimension(bin_grid%n_bin,bin_grid%n_bin), 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] | aero_weight | Aerosol weight. |
[in] | env_state | Environment state. |
[out] | k_min | Minimum kernel vals. |
[out] | k_max | Maximum kernel vals. |
Definition at line 307 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%n_bin,bin_grid%n_bin), intent(out) | k_min, | ||
real(kind=dp), dimension(bin_grid%n_bin,bin_grid%n_bin), 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 341 of file coag_kernel.F90.
subroutine pmc_coag_kernel::est_k_minmax_for_bin | ( | 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(aero_weight_t), intent(in) | aero_weight, | ||
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] | aero_weight | Aerosol weight. |
[in] | env_state | Environment state. |
[out] | k_min | Minimum kernel value. |
[out] | k_max | Maximum kernel value. |
Definition at line 372 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. |
Definition at line 435 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 70 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 111 of file coag_kernel.F90.
subroutine pmc_coag_kernel::max_coag_num_conc_factor | ( | type(aero_weight_t), dimension(:), intent(in) | aero_weight_array, |
type(bin_grid_t), intent(in) | bin_grid, | ||
integer, intent(in) | i_bin, | ||
integer, intent(in) | j_bin, | ||
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] | bin_grid | Bin grid. |
[in] | i_bin | First bin number. |
[in] | j_bin | Second bin number. |
[out] | f_max | Maximum coagulation factor. |
Definition at line 520 of file coag_kernel.F90.
subroutine pmc_coag_kernel::max_coag_num_conc_factor_better | ( | type(aero_weight_t), dimension(:), intent(in) | aero_weight_array, |
type(bin_grid_t), intent(in) | bin_grid, | ||
integer, intent(in) | i_bin, | ||
integer, intent(in) | j_bin, | ||
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] | bin_grid | Bin grid. |
[in] | i_bin | First bin number. |
[in] | j_bin | Second bin number. |
[out] | f_max | Maximum coagulation factor. |
Definition at line 577 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, | ||
type(aero_data_t), intent(in) | aero_data, | ||
type(aero_weight_t), dimension(:), 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] | aero_data | Aerosol data. |
[in] | aero_weight_array | Aerosol weight array. |
[in] | env_state | Environment state. |
[out] | k | Coagulation kernel. |
Definition at line 191 of file coag_kernel.F90.
subroutine pmc_coag_kernel::spec_file_read_coag_kernel_type | ( | type(spec_file_t), intent(inout) | file, |
integer, intent(out) | coag_kernel_type | ||
) |
Read the specification for a kernel type from a spec file and generate it.
[in,out] | file | Spec file. |
[out] | coag_kernel_type | Kernel type. |
Definition at line 617 of file coag_kernel.F90.
subroutine pmc_coag_kernel::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, | ||
type(aero_data_t), intent(in) | aero_data, | ||
type(aero_weight_t), intent(in) | aero_weight, | ||
type(env_state_t), intent(in) | env_state, | ||
real(kind=dp), intent(out) | k | ||
) |
Compute the kernel value with the given weight.
[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] | aero_weight | Aerosol weight. |
[in] | env_state | Environment state. |
[out] | k | Coagulation kernel. |
Definition at line 149 of file coag_kernel.F90.
subroutine pmc_coag_kernel::weighted_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(aero_weight_t), intent(in) | aero_weight, | ||
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 kernel value with the given weight.
[in] | coag_kernel_type | Coagulation kernel type. |
[in] | v1 | Volume of first particle. |
[in] | v2 | Volume of second particle. |
[in] | aero_data | Aerosol data. |
[in] | aero_weight | Aerosol weight. |
[in] | env_state | Environment state. |
[out] | k_min | Coagulation kernel minimum value. |
[out] | k_max | Coagulation kernel maximum value. |
Definition at line 223 of file coag_kernel.F90.
integer, parameter pmc_coag_kernel::COAG_KERNEL_TYPE_ADDITIVE = 2 |
Type code for an additive kernel.
Definition at line 30 of file coag_kernel.F90.
integer, parameter pmc_coag_kernel::COAG_KERNEL_TYPE_BROWN = 4 |
Type code for a Brownian kernel.
Definition at line 34 of file coag_kernel.F90.
integer, parameter pmc_coag_kernel::COAG_KERNEL_TYPE_CONSTANT = 3 |
Type code for a constant kernel.
Definition at line 32 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 26 of file coag_kernel.F90.
integer, parameter pmc_coag_kernel::COAG_KERNEL_TYPE_LEN = 20 |
Maximum length of a mode type.
Definition at line 23 of file coag_kernel.F90.
integer, parameter pmc_coag_kernel::COAG_KERNEL_TYPE_SEDI = 1 |
Type code for a sedimentation kernel.
Definition at line 28 of file coag_kernel.F90.
integer, parameter pmc_coag_kernel::COAG_KERNEL_TYPE_ZERO = 5 |
Type code for a zero kernel.
Definition at line 36 of file coag_kernel.F90.