PartMC  2.2.0
Public Member Functions | Public Attributes
pmc_coag_kernel Module Reference

Generic coagulation kernel. More...

List of all members.

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.

Detailed Description

Generic coagulation kernel.

Definition at line 9 of file coag_kernel.F90.


Member Function/Subroutine Documentation

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 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.

Parameters:
[in]coag_kernel_typeCoagulation 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.

Parameters:
[in]aero_weight_arrayAerosol weight array.
[in]r_1Radius of first particle.
[in]r_2Radius 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).

Parameters:
[in]bin_gridBin_grid.
[in]coag_kernel_typeCoagulation kernel type.
[in]aero_dataAerosol data.
[in]aero_weightAerosol weight.
[in]env_stateEnvironment state.
[out]k_minMinimum kernel vals.
[out]k_maxMaximum 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).

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 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.

Parameters:
[in]bin_gridBin_grid.
[in]coag_kernel_typeCoagulation kernel type.
[in]b1First bin.
[in]b2Second bin.
[in]aero_dataAerosol data.
[in]aero_weightAerosol weight.
[in]env_stateEnvironment state.
[out]k_minMinimum kernel value.
[out]k_maxMaximum 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.

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.

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.

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 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.

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 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.

Parameters:
[in]aero_weight_arrayAerosol weight array.
[in]bin_gridBin grid.
[in]i_binFirst bin number.
[in]j_binSecond bin number.
[out]f_maxMaximum 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.

Parameters:
[in]aero_weight_arrayAerosol weight array.
[in]bin_gridBin grid.
[in]i_binFirst bin number.
[in]j_binSecond bin number.
[out]f_maxMaximum 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.

Parameters:
[in]coag_kernel_typeCoagulation kernel type.
[in]aero_particle_1First particle.
[in]aero_particle_2Second particle.
[in]aero_dataAerosol data.
[in]aero_weight_arrayAerosol weight array.
[in]env_stateEnvironment state.
[out]kCoagulation 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.

Parameters:
[in,out]fileSpec file.
[out]coag_kernel_typeKernel 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.

Parameters:
[in]coag_kernel_typeCoagulation kernel type.
[in]aero_particle_1First particle.
[in]aero_particle_2Second particle.
[in]aero_dataAerosol data.
[in]aero_weightAerosol weight.
[in]env_stateEnvironment state.
[out]kCoagulation 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.

Parameters:
[in]coag_kernel_typeCoagulation kernel type.
[in]v1Volume of first particle.
[in]v2Volume of second particle.
[in]aero_dataAerosol data.
[in]aero_weightAerosol weight.
[in]env_stateEnvironment state.
[out]k_minCoagulation kernel minimum value.
[out]k_maxCoagulation kernel maximum value.

Definition at line 223 of file coag_kernel.F90.


Member Data Documentation

Type code for an additive kernel.

Definition at line 30 of file coag_kernel.F90.

Type code for a Brownian kernel.

Definition at line 34 of file coag_kernel.F90.

Type code for a constant kernel.

Definition at line 32 of file coag_kernel.F90.

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.

Type code for a sedimentation kernel.

Definition at line 28 of file coag_kernel.F90.

Type code for a zero kernel.

Definition at line 36 of file coag_kernel.F90.


The documentation for this module was generated from the following file: