This model calculates particle aggregation based on discrete aggregate size classes within a volume (0D box).
It is based on paper of Jackson and Lochmann (1992) and Adrian Burd (2013).
This python implementation is based on Matlab code by Adrian Burd (found in coag_model_adrian_matlab
) which was adapted from the code of George Jackson.
For a more detailed description and context read the Jackson and Lochmann (1992) paper, but the general idea goes as follows.
We would like to make predictions about the time evolution of a aggregate size distribution
Integrating this directly proves difficult. To gain some traction we therefore discretize the aggreates into a discrete size spectrum.
To make the calculations easier a size bin is defined to range from their lower mass boundary to twice their lower mass boundary,
Based on the index ranges within the table, the interactions can be visualized as interactions between bins as follows:
The model is currently not running as expected and produces in part non-physical results. The calculation of the sectional coagulation functions is suspected to be incorrect. In particular an indexing error seems to be present.
To side step this issue, we hardcoded the sectional coagulation functions from the matlab code for the 20 size classes case. However, this seems to also produce declining total volume concentrations over time even tho the total volume concentration is expected to be conserved.
- Fix sectional coagulation functions
- Fix total volume concentration issue in time integration
To install the package from source:
git clone https://github.com/465b/particle_aggregation_model.git
cd particle_aggregation_model
python -m build
pip install -e .
To get started, take a look at the demo notebooktsm in particular model_demo_and_validation.ipynb
This is an early draft of the model. If you are curious to use it, or have any questions, please get in touch with me: [email protected]