PyCHAM: CHemistry with Aerosol Microphysics in Python

PyCHAM (CHemistry with Aerosol Microphysics in Python) is an open-access 0-D box model for aerosol chamber studies. Aerosol chambers provide a means for atmospheric scientists to interrogate aerosol processes (Finlayson-Pitts & Pitts, 2000; Hidy, 2019; Schwantes et al., 2017). Allying PyCHAM with chamber measurements allows quantification of unknown parameters, such as branching ratios for oxidation schemes (Chen & Griffin, 2005). Although several box models have already been published (Pierce et al., 2008; Roldin et al., 2019, 2014; Sunol, Charan, & Seinfeld, 2018), PyCHAM is novel in its ease of accessibility and utility. To the best of our knowledge, PyBOX (Topping, Connolly, & Reid, 2018), which formed the basis of PyCHAM, and AtChem (Borońska et al., 2019), are the only other open source box models with graphical user interfaces. However, PyCHAM provides a considerable upgrade to the functionality of both prior models, as AtChem only simulates gas-phase photochemistry and PyBOX has limited particle effects, whilst PyCHAM models significantly more particle microphysics (detailed below) and wall effects, in addition to gas-phase photochemistry. The intention therefore, is that it will be readily employed by research groups undertaking aerosol chamber measurements.


Summary
PyCHAM (CHemistry with Aerosol Microphysics in Python) is an open-access 0-D box model for aerosol chamber studies. Aerosol chambers provide a means for atmospheric scientists to interrogate aerosol processes (Finlayson-Pitts & Pitts, 2000;Hidy, 2019;Schwantes et al., 2017). Allying PyCHAM with chamber measurements allows quantification of unknown parameters, such as branching ratios for oxidation schemes (Chen & Griffin, 2005). Although several box models have already been published (Pierce et al., 2008;Roldin et al., 2019Roldin et al., , 2014Sunol, Charan, & Seinfeld, 2018), PyCHAM is novel in its ease of accessibility and utility. To the best of our knowledge, PyBOX (Topping, Connolly, & Reid, 2018), which formed the basis of PyCHAM, and AtChem (Borońska et al., 2019), are the only other open source box models with graphical user interfaces. However, PyCHAM provides a considerable upgrade to the functionality of both prior models, as AtChem only simulates gas-phase photochemistry and PyBOX has limited particle effects, whilst PyCHAM models significantly more particle microphysics (detailed below) and wall effects, in addition to gas-phase photochemistry. The intention therefore, is that it will be readily employed by research groups undertaking aerosol chamber measurements.
With air quality and climate models increasingly important to guiding sustainable societies, the accuracy of simulations must suffice (Tong et al., 2019). However, research shows that the simulated aerosol effects in these models provides a relatively high amount of uncertainty (Johnson et al., 2018). The combination of box models like PyCHAM with aerosol chamber measurements to better constrain aerosol processes is therefore necessary to ultimately improve societal sustainability.
At the time of writing, PyCHAM is being used to investigate the autoxidation of organic vapours in the atmosphere. The autoxidation process has recently been discovered to play a significant role in the formation of airbourne particulates (Ehn et al., 2014), however its exact chemical mechanism is yet to be elucidated. Through comparison of chamber measurements with PyCHAM outputs using various mechanism possibilities, a constrained autoxidation chemical scheme is being generated.
The model employs non-equilibrium equations to simulate the known processes occurring in aerosol chambers. At its core is integration of ordinary differential equations (ODEs) for gasphase photochemistry and gas partitioning to particles and walls. Here, the CVode function of the Assimulo package (Andersson, Führer, & Åkesson, 2015) for ODE solvers is called on, using the backward differentiation formula of the Sundials solvers (Hindmarsh et al., 2005), which studies have shown is most reliable for solution of these equations (Jacobson, 2005). The general equation for chemical reactions is (Jacobson, 2005): where square brackets represent concentrations, with g representing the gas phase, i is the affected component, t is time, k is the reaction rate coefficient for reaction n, a and b are example reactants, with stoichiometries s . The equation is positive for products of reactions and negative for reactants.
The gas-particle partitioning equation is (Jacobson, 2005): where k is the mass transfer coefficient, p 0 is the liquid saturation vapour pressure, x is particle-phase mole fraction and K v is the Kelvin effect.
Gas partitioning to walls is an area of ongoing research (Zhang et al., 2015), therefore we provide an equation analogous to gas-particle partitioning given above: where w represents the wall, k gwt is the gas-wall mass transfer coefficient, C w is the effective absorbing concentration of the wall. Users set the values of k gwt and C w as wall effects vary significantly between chambers.
Outside the ODE solver, particle loss to walls, coagulation and nucleation are also solved, with equations for the former two given in Jacobson (2005) and the parameters inside the nucleation expression (for relevent experiments) tuned by the user. PyCHAM takes a sectional approach to particulates, dividing particles into a number of size bins and treating their changing size using the moving-centre approach (Jacobson, 2005). It builds upon PyBOX (Topping et al., 2018), which did not include coagulation, nucleation or a sectional method.
Several variables change between different aerosol chambers and different experiments; therefore, the software is designed to allow the user to set these with ease.