flowtube.kinetics
Kinetics calculations for flow tube experiments.
- Citations:
Knopf, D.A., Pöschl, U., Shiraiwa, M., 2015. Radial Diffusion and Penetration of Gas Molecules and Aerosol Particles through Laminar Flow Reactors, Denuders, and Sampling Tubes. Anal. Chem. 87, 3746–3754. https://doi.org/10.1021/ac5042395
Functions
|
Calculate diffusion limited rate constant (s-1) - eq. 10 from Knopf |
|
Calculate diffusion limited effective uptake coefficient - eq. 19 |
Calculate correction factor (gamma_eff/gamma)for uptake coefficient |
|
Calculate correction factor (gamma_eff/gamma) for uptake coefficient |
|
|
Calculate observed loss rate (s-1) - eq. 19 from Knopf et al., 2015. |
|
Calculate penetration (unitless) - eq. 21 from Knopf et al., 2015. |
|
Calculate effective uptake coefficient from rate constant. |
|
Fits the observed loss to a first order kinetic model to extract the |
Module Contents
- flowtube.kinetics.diffusion_limited_rate_constant(obj: flowtube.flow_calc.full_attrs, N_eff_Shw: float, diameter: float) float[source]
Calculate diffusion limited rate constant (s-1) - eq. 10 from Knopf et al., 2015.
- Parameters:
obj (full_attrs) – Object with full attributes (P in Pa, T in K, reactant_diffusion_rate in cm2 s-1, carrier_dynamic_viscosity in kg m-1 s-1, carrier_density in kg m-3).
N_eff_Shw (float) – Effective Sherwood number.
diameter (float) – Diameter of the cylinder (cm).
- Returns:
Diffusion limited rate constant (s-1).
- Return type:
float
- flowtube.kinetics.diffusion_limited_uptake_coefficient(obj: flowtube.flow_calc.full_attrs, diameter: float, k_diff: float) float[source]
Calculate diffusion limited effective uptake coefficient - eq. 19 from Knopf et al., 2015.
- Parameters:
obj (full_attrs) – Object with full attributes (P in Pa, T in K, reactant_diffusion_rate in cm2 s-1, carrier_dynamic_viscosity in kg m-1 s-1, carrier_density in kg m-3).
diameter (float) – Diameter of the cylinder (cm).
k_diff (float) – Diffusion limited rate constant (s-1).
- Returns:
Diffusion limited effective uptake coefficient (cm s-1).
- Return type:
float
- flowtube.kinetics.correction_factor_from_gamma(N_eff_Shw: float, Kn: float, gamma: numpy.typing.NDArray[numpy.float64] | float) numpy.typing.NDArray[numpy.float64] | float[source]
Calculate correction factor (gamma_eff/gamma)for uptake coefficient - eq. 15 from Knopf et al., 2015.
- Parameters:
N_eff_Shw (float) – Effective Sherwood number (unitless).
Kn (float) – Knudsen number (unitless).
hypothetical_gamma (float) – Hypothetical uptake coefficient (unitless).
- Returns:
Correction factor (unitless).
- Return type:
float
- flowtube.kinetics.correction_factor_from_effective_gamma(N_eff_Shw: float, Kn: float, effective_gamma: numpy.typing.NDArray[numpy.float64] | float) numpy.typing.NDArray[numpy.float64] | float[source]
Calculate correction factor (gamma_eff/gamma) for uptake coefficient - eq. 20 from Knopf et al., 2015.
- Parameters:
N_eff_Shw (float) – Effective Sherwood number (unitless).
Kn (float) – Knudsen number (unitless).
effective_gamma (float) – Effective uptake coefficient (unitless).
- Returns:
Correction factor (unitless).
- Return type:
float
- flowtube.kinetics.observed_loss_rate(obj: flowtube.flow_calc.full_attrs, diameter: float, gamma_eff: numpy.typing.NDArray[numpy.float64] | float) numpy.typing.NDArray[numpy.float64] | float[source]
Calculate observed loss rate (s-1) - eq. 19 from Knopf et al., 2015.
- Parameters:
obj (full_attrs) – Object with full attributes (P in Pa, T in K, reactant_diffusion_rate in cm2 s-1, carrier_dynamic_viscosity in kg m-1 s-1, carrier_density in kg m-3).
diameter (float) – Diameter of the cylinder (cm).
gamma_eff (float) – Effective uptake coefficient (unitless).
- Returns:
Observed loss rate (s-1).
- Return type:
float
- flowtube.kinetics.cylinder_loss(obj: flowtube.flow_calc.full_attrs, diameter: float, N_eff_Shw: float, Kn: float, gamma: numpy.typing.NDArray[numpy.float64] | float, time: float) numpy.typing.NDArray[numpy.float64] | float[source]
Calculate penetration (unitless) - eq. 21 from Knopf et al., 2015.
- Parameters:
obj (full_attrs) – Object with full attributes (P in Pa, T in K, reactant_diffusion_rate in cm2 s-1, carrier_dynamic_viscosity in kg m-1 s-1, carrier_density in kg m-3).
time (float) – Residence time in cylinder (s).
- Returns:
- Penetration - fraction of initial reactant after passing
through cylinder (unitless).
- Return type:
float
- flowtube.kinetics.gamma_from_k(obj: flowtube.flow_calc.full_attrs, k: float, diameter: float) float[source]
Calculate effective uptake coefficient from rate constant.
- Parameters:
obj (full_attrs) – Object with full attributes (P in Pa, T in K, reactant_diffusion_rate in cm2 s-1, carrier_dynamic_viscosity in kg m-1 s-1, carrier_density in kg m-3).
k (float) – Rate constant (s-1).
diameter (float) – Diameter of the cylinder (cm).
- Returns:
Effective uptake coefficient (unitless).
- Return type:
float
- flowtube.kinetics.fit_first_order_kinetics(obj: flowtube.flow_calc.carrier_attrs, concentrations: numpy.typing.ArrayLike, exposure: numpy.typing.ArrayLike, exposure_units: str) tuple[float, float, float, float, float][source]
Fits the observed loss to a first order kinetic model to extract the uptake coefficient.
- Parameters:
obj (carrier_attrs) – Object with carrier attributes (flow_velocity in cm s-1 needed). carrier_dynamic_viscosity in kg m-1 s-1, carrier_density in kg m-3).
concentrations (ArrayLike) – Array of observed concentrations (unitless).
exposure (ArrayLike) – Array of exposures (s or cm).
exposure_units (str) – Units of exposure (“s”, “sec”, “second”, “seconds”, “cm”, “centimeter”, “centimeters”).
- Returns:
Slope of the linear regression. float: Intercept of the linear regression. float: R-value of the linear regression. float: P-value of the linear regression. float: Standard error of the linear regression.
- Return type:
float