Skip to content

Coagulation Rate

Particula Index / Particula / Dynamics / Coagulation / Coagulation Rate

Auto-generated documentation for particula.dynamics.coagulation.coagulation_rate module.

get_coagulation_gain_rate_continuous

Show source in coagulation_rate.py:172

Calculate the coagulation gain rate via continuous integration.

This function converts the distribution to a continuous form, then uses RectBivariateSpline to interpolate and integrate:

  • gain_rate® = ∫ kernel(r, r') × concentration® × concentration(r') dr'

Arguments

  • radius : The particle radius array [m].
  • concentration : The particle distribution.
  • kernel : Coagulation kernel matrix.

Returns

  • The coagulation gain rate, in the shape of radius.

Examples

import numpy as np
import particula as par

r = np.array([1e-7, 2e-7, 3e-7])
conc = np.array([1.0, 0.5, 0.2])
kern = np.ones((3, 3)) * 1e-9

gain_cont = par.dynamics.get_coagulation_gain_rate_continuous(
    r, conc, kern
)
print(gain_cont)

References

  • Seinfeld, J. H., & Pandis, S. N. (2016). Atmospheric chemistry and physics, Chapter 13, Equation 13.61.

Signature

def get_coagulation_gain_rate_continuous(
    radius: Union[float, NDArray[np.float64]],
    concentration: Union[float, NDArray[np.float64]],
    kernel: NDArray[np.float64],
) -> Union[float, NDArray[np.float64]]: ...

get_coagulation_gain_rate_discrete

Show source in coagulation_rate.py:58

Calculate the coagulation gain rate (using a quasi-continuous approach).

Though named "discrete," this function converts the discrete distribution to a PDF and uses interpolation (RectBivariateSpline) to approximate the gain term. The concept is:

  • gain_rate® = ∫ kernel(r, r') × PDF® × PDF(r') dr' (implemented via numeric integration)

Arguments

  • radius : The particle radius array [m].
  • concentration : The particle distribution.
  • kernel : Coagulation kernel matrix.

Returns

  • The coagulation gain rate, matched to the shape of radius.

Examples

import numpy as np
import particula as par

r = np.array([1e-7, 2e-7, 3e-7])
conc = np.array([1.0, 0.5, 0.2])
kern = np.ones((3, 3)) * 1e-9

gain_val = par.dynamics.get_coagulation_gain_rate_discrete(
    r, conc, kern
)
print(gain_val)

References

  • Seinfeld, J. H., & Pandis, S. N. (2016). Atmospheric chemistry and physics, Chapter 13, Equation 13.61.

Signature

def get_coagulation_gain_rate_discrete(
    radius: Union[float, NDArray[np.float64]],
    concentration: Union[float, NDArray[np.float64]],
    kernel: NDArray[np.float64],
) -> Union[float, NDArray[np.float64]]: ...

get_coagulation_loss_rate_continuous

Show source in coagulation_rate.py:128

Calculate the coagulation loss rate via continuous integration.

This method integrates the product of kernel and concentration over the radius grid. The equation is:

  • loss_rate® = concentration® × ∫ kernel(r, r') × concentration(r') dr'

Arguments

  • radius : The particle radius array [m].
  • concentration : The particle distribution.
  • kernel : Coagulation kernel matrix (NDArray[np.float64]).

Returns

  • The coagulation loss rate.

Examples

import numpy as np
import particula as par

r = np.array([1e-7, 2e-7, 3e-7])
conc = np.array([1.0, 0.5, 0.2])
kern = np.ones((3, 3)) * 1e-9

loss_cont = par.dynamics.get_coagulation_loss_rate_continuous(
    r, conc, kern
)
print(loss_cont)

References

  • Seinfeld, J. H., & Pandis, S. N. (2016). Atmospheric chemistry and physics, Chapter 13, Equation 13.61.

Signature

def get_coagulation_loss_rate_continuous(
    radius: Union[float, NDArray[np.float64]],
    concentration: Union[float, NDArray[np.float64]],
    kernel: NDArray[np.float64],
) -> Union[float, NDArray[np.float64]]: ...

get_coagulation_loss_rate_discrete

Show source in coagulation_rate.py:20

Calculate the coagulation loss rate via a discrete summation approach.

This function computes the loss rate of particles from collisions by summing over all size classes. The equation is:

  • loss_rate = ΣᵢΣⱼ [kernel(i, j) × concentration(i) × concentration(j)]

Arguments

  • concentration : The distribution of particles.
  • kernel : The coagulation kernel matrix (NDArray[np.float64]).

Returns

  • The coagulation loss rate (float or NDArray[np.float64]).

Examples

import numpy as np
import particula as par

conc = np.array([1.0, 2.0, 3.0])
kern = np.ones((3, 3))
loss = par.dynamics.get_coagulation_loss_rate_discrete(conc, kern)
print(loss)
# Example output: 36.0

References

  • Seinfeld, J. H., & Pandis, S. N. (2016). Atmospheric chemistry and physics, Chapter 13, Equation 13.61.

Signature

def get_coagulation_loss_rate_discrete(
    concentration: Union[float, NDArray[np.float64]], kernel: NDArray[np.float64]
) -> Union[float, NDArray[np.float64]]: ...