Coagulation Kernels
StochParticles.CoagulationKernel — Type
abstract type CoagulationKernel{A}Supertype for coagulation rate kernels. A kernel computes the coagulation rate between two particles: K(μ_i, μ_j) -> Float64 [m³/s].
A is the number of species (dimension of the mass vector).
Subtypes must implement the callable interface (kernel)(μ_i, μ_j).
StochParticles.CoagulationSampling — Type
abstract type CoagulationSamplingSupertype for coagulation pair-selection sampling strategies. Different strategies trade off between per-event cost and acceptance rate.
Subtypes must implement compute_majorant(sampling, kernel, u, sys).
StochParticles.BrownianKernel — Type
BrownianKernel{A} <: CoagulationKernelFull transition-regime Brownian diffusion coagulation kernel (Jacobson 2005, Eq. 15.33). Covers 1 nm – 100 um spherical particles via Cunningham slip correction and delta-correction.
Fields
T::Float64— temperature [K]p::Float64— pressure [Pa]rho_air::Float64— air density [kg/m³]mu_f::Float64— dynamic viscosity of carrier fluid [Pa·s]nu_f::Float64— kinematic viscosity [m²/s]gasspeed::Float64— mean molecular speed [m/s]gasfreepath::Float64— mean free path [m]densities::SVector{A, Float64}— per-species densities [kg/m³]kb::Float64— Boltzmann constant
StochParticles.CompositeKernel — Type
CompositeKernel{A, K1, K2} <: CoagulationKernelSum of two kernels: K(μi, μj) = K1(μi, μj) + K2(μi, μj).
StochParticles.GlobalMajorant — Type
GlobalMajorant <: CoagulationSamplingUse a single global upper bound K_max over all particle pairs. Simple but can have low acceptance rate for broad size distributions.
StochParticles.compute_majorant — Function
compute_majorant(sampling::CoagulationSampling, kernel, u, sys) -> Float64Compute the majorant kernel value Kmax ≥ K(μi, μ_j) for all active particle pairs in state u.
Used by the Majorant/Null-event method to upper-bound the coagulation rate and drive the acceptance/rejection step.
Implementation contract
Concrete subtypes of CoagulationSampling must implement this method.
compute_majorant(sampling, kernel, u, sys) -> Float64Compute the majorant kernel value Kmax ≥ K(μi, μ_j) for all active pairs.
StochParticles.majorant_rate — Function
majorant_rate(sampling::CoagulationSampling, kernel, u, sys) -> Float64Compute the total coagulation event rate using the majorant method:
Λ = (K_max / V) × N × (N − 1) / 2where Kmax = `computemajorant(sampling, kernel, u, sys)`, V is the computational volume, and N is the number of active particles.
Default implementation delegates to compute_majorant.
majorant_rate(sampling, kernel, u, sys) -> Float64Compute the total coagulation event rate using the majorant method: Λ = (K_max / V) × N × (N-1) / 2
StochParticles.make_coagulation_jump — Function
make_coagulation_jump(kernel, sampling) -> ConstantRateJumpCreate a SciML ConstantRateJump for the coagulation process using the Majorant/Null-event method.