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