A python package to model aerosol drying, brought to you by this cat's tears.
This is a software package designed to model the kinetics of aerosols under various conditions.
This is not intended as a black box: we tried to keep the python code as simple as possible so the user can see how the model is implemented. No knowledge of python is needed to actually use the model through the GUI, however with a little python experience it should be straightforward to extend the model (by e.g. introducing new solutions) or automate running simulations over a range of conditions.
This package implements a widely used theoretical model for aerosol drying described in the following literature:
- Xie, X. et al, "How far droplets can move in indoor environments - revisiting the Wells evaporation-falling curve", Indoor Air 17(3), 211-225 (2007). DOI: 10.1111/j.1600-0668.2007.00469.x.
- Liu, L. et al, "Evaporation and dispersion of respiratory droplets from coughing", Indoor Air 27(1), 179-180 (2017). DOI: 10.1111/ina.12297.
- Walker, J. S. et al, "Accurate Representations of the Microphysical Processes Occurring during the Transport of Exhaled Aerosols and Droplets", ACS Cent. Sci.(7), 200-209 (2021). DOI: 10.1021/acscentsci.0c01522.
We tried to make usage by the end-user as simple as possible, so the end product is a jupyter notebook. However, to allow for legible revision code the jupyter notebook is generated from an underlying plain-text python code. This means that the full library can still be installed and imported as regular python modules. The notebooks are generated from the source files using jupytext.
Authors:
- Joshua Robinson (joshua.robinson@bristol.ac.uk)
- Dan Hardy (dan.hardy@bristol.ac.uk)
Elements of the code were inspired by an earlier numerical model built by Jim Walker (jim.walker@bristol.ac.uk).
This software requires the following packages:
- python3, and the following scientific packages: numpy, scipy, matplotlib, pandas and chemicals
- jupyter notebook and jupytext to generate the example notebooks
Make sure these are installed before proceeding.
If you have the python package manager pip installed, then you can install the prerequisite python libraries via:
pip install numpy scipy matplotlib pandas chemicals jupytext
on the command line. Note this command may require administrator privileges or you must pass the additional --user
flag.
Alternatively, these packages are frequently bundled with scientific distributions of python, e.g. anaconda.
TBD.
Inside the source directory run:
pip install --user .
to install for the user profile. To install system-wide run without the user
flag (but you will probably need administrator priviliges e.g. via sudo
).
To build the example notebooks run:
python make-notebooks.py
This should generate a notebook sadkat.ipynb
which can be opened from your browser after launching the jupyter notebook kernel. That is, run:
jupyter notebook
which should open a new window in your browser. You should then be able to select the new notebook.
TBD.