flowtube.coated_wall_reactor ============================ .. py:module:: flowtube.coated_wall_reactor .. autoapi-nested-parse:: Main coated wall reactor class and associated calculations. Citations: Bertram, A.K., Ivanov, A.V., Hunter, M., Molina, L.T., Molina, M.J., 2001. The Reaction Probability of OH on Organic Surfaces of Tropospheric Interest. J. Phys. Chem. A 105, 9415-9421. https://doi.org/10.1021/jp0114034 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 Hanson, D.R., Ravishankara, A.R., 1993. Uptake of hydrochloric acid and hypochlorous acid onto sulfuric acid: solubilities, diffusivities, and reaction. J. Phys. Chem. 97, 12309-12319. https://doi.org/10.1021/j100149a035 Fuchs, N.A., Sutugin, A.G., 1971. HIGH-DISPERSED AEROSOLS, in: Hidy, G.M., Brock, J.R. (Eds.), Topics in Current Aerosol Research, International Reviews in Aerosol Physics and Chemistry. Pergamon, p. 1. https://doi.org/10.1016/B978-0-08-016674-2.50006-6 Ivanov, A.V., Molina, M.J., Park, J., 2021. Experimental study on HCl uptake by MgCl2 and sea salt under humid conditions. J Mass Spectrom 56, e4601. https://doi.org/10.1002/jms.4601 Tang, M.J., Cox, R.A., Kalberer, M., 2014. Compilation and evaluation of gas phase diffusion coefficients of reactive trace gases in the atmosphere: volume 1. Inorganic compounds. Atmos. Chem. Phys. 14, 9233-9247. https://doi.org/10.5194/acp-14-9233-2014 Classes ------- .. autoapisummary:: flowtube.coated_wall_reactor.CoatedWallReactor Module Contents --------------- .. py:class:: CoatedWallReactor(FT_ID: float, FT_length: float, injector_ID: float, injector_OD: float, reactant_gas: str, carrier_gas: str, reactant_conc_type: str, reactant_conc: float, insert_ID: float = np.nan, insert_OD: float = np.nan, insert_length: float = 0) .. py:attribute:: FT_ID .. py:attribute:: FT_length .. py:attribute:: injector_ID .. py:attribute:: injector_OD .. py:attribute:: reactant_gas .. py:attribute:: reactant_conc_type .. py:attribute:: reactant_conc .. py:attribute:: carrier_gas .. py:attribute:: insert_ID .. py:attribute:: insert_OD .. py:attribute:: insert_length :value: 0 .. py:method:: initialize(reactant_FR: float, reactant_carrier_FR: float, carrier_FR: float, P: float, P_units: str, T: float, reactant_diffusion_rate: float = np.nan, radial_delta_T: float = 1, axial_delta_T: float = 1, disp: bool = True) -> None Sets experimental conditions and calls calculation functions for numerous flow and diffusion parameters. :param reactant_FR: Reactant flow rate (sccm). :type reactant_FR: float :param reactant_carrier_FR: Carrier flow rate (sccm) used to dilute the reactant. :type reactant_carrier_FR: float :param carrier_FR: Carrier flow rate (sccm) typically injected near the start of the flow tube. :type carrier_FR: float :param P: Pressure. :type P: float :param P_units: Pressure units. :type P_units: str :param T: Temperature (C). :type T: float :param reactant_diffusion_rate: Reactant diffusion rate (cm2 s-1). :type reactant_diffusion_rate: float :param radial_delta_T: Radial temperature gradient (K) (default = 1 K). :type radial_delta_T: float :param axial_delta_T: Axial temperature gradient (K) (default = 1 K). :type axial_delta_T: float :param disp: Display calculated calculated values. :type disp: bool :returns: None .. py:method:: flows(reactant_FR: float, reactant_carrier_FR: float, carrier_FR: float, disp: bool = True) -> None Calculates Flow Tube flows. :param reactant_FR: Reactant flow rate (sccm). :type reactant_FR: float :param reactant_carrier_FR: Carrier flow rate (sccm) used to dilute the reactant. :type reactant_carrier_FR: float :param carrier_FR: Carrier flow rate (sccm) typically injected near the start of the flow tube. :type carrier_FR: float :param disp: Display calculated calculated values. :type disp: bool :returns: None .. py:method:: carrier_flow(radial_delta_T: float = 1, axial_delta_T: float = 1, disp: bool = True) Performs and displays carrier gas transport calculations. :param delta_T_radial: Radial temperature gradient (K). :type delta_T_radial: float :param delta_T_axial: Axial temperature gradient (K). :type delta_T_axial: float :param disp: Display calculated values. :type disp: bool :returns: None .. py:method:: reactant_diffusion(reactant_diffusion_rate: float = np.nan, disp: bool = True) -> None Performs and displays reactant diffusion calculations. :param reactant_diffusion_rate: Reactant diffusion rate (cm2 s-1). :type reactant_diffusion_rate: float :param disp: Display calculated calculated values. :type disp: bool :returns: None .. py:method:: reactant_uptake(hypothetical_gamma: numpy.typing.ArrayLike | float | int, exposure_time: float = 10, gamma_wall: float = 5e-06, disp: bool = True) -> None Calculates reactant uptake to coated wall or insert and loss to flow tube walls. :param hypothetical_gamma: Hypothetical uptake coefficient to calculate diffusion correction factor. :type hypothetical_gamma: ArrayLike or float or int :param gamma_wall: Wall uptake coefficient (default: 5e-6 for halocarbon wax coating - Ivanov et al., J. Mass Spectrom., 2021). :type gamma_wall: float :param exposure_time (float: 10): Time in minutes over which the surface is exposed to the reactant. :param default: 10): Time in minutes over which the surface is exposed to the reactant. :param disp: Display calculated values. :type disp: bool :returns: None. .. py:method:: calculate_gamma_effective(concentrations: numpy.typing.ArrayLike, exposure: numpy.typing.ArrayLike, exposure_units: str) -> tuple[float, float, float, float, float, float] Fits the observed loss to the coated wall to a first order kinetic model to extract the effective uptake coefficient. :param concentrations: Reactant concentrations (arbitrary units). :type concentrations: ArrayLike :param exposure: Reactant exposure (s or cm). :type exposure: ArrayLike :param exposure_units: Units of exposure (s or cm). :type exposure_units: str :returns: k, first order loss rate (s-1). float: intercept, y-intercept of the fit. float: r_value, correlation coefficient of the fit. float: gamma, effective uptake coefficient. float: gamma_lower, lower bound of 95% confidence interval for gamma. float: gamma_upper, upper bound of 95% confidence interval for gamma. :rtype: float .. py:method:: diffusion_corrected_uptake_coefficient(effective_gamma: float) -> float Calculate the diffusion-corrected uptake coefficient. :param effective_gamma: Effective uptake coefficient. :type effective_gamma: float :returns: Diffusion-corrected uptake coefficient. :rtype: float