https://github.com/uncscode/particula
Particula is an open-source, Python-based aerosol simulator. Particula captures gas-particle interactions, transformations, and dynamics to power predictive aerosol science.
https://github.com/uncscode/particula
aerosol atmosphere model package particle research science simulation
Last synced: 4 months ago
JSON representation
Particula is an open-source, Python-based aerosol simulator. Particula captures gas-particle interactions, transformations, and dynamics to power predictive aerosol science.
- Host: GitHub
- URL: https://github.com/uncscode/particula
- Owner: uncscode
- License: mit
- Created: 2021-10-31T15:31:16.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-10-21T12:44:41.000Z (8 months ago)
- Last Synced: 2025-10-21T14:28:25.006Z (8 months ago)
- Topics: aerosol, atmosphere, model, package, particle, research, science, simulation
- Language: Python
- Homepage: https://uncscode.github.io/particula/
- Size: 663 MB
- Stars: 11
- Watchers: 0
- Forks: 10
- Open Issues: 4
-
Metadata Files:
- Readme: readme.md
- License: license
- Citation: citation
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- open-sustainable-technology - Particula - An Python-based aerosol simulator. Particula captures gas-particle interactions, transformations, and dynamics to power predictive aerosol science. (Atmosphere / Atmospheric Chemistry and Aerosol)
README
# Particula
A simple, fast, and powerful particle simulator for aerosol science.
**Requires:** Python 3.12+
[Documentation](https://uncscode.github.io/particula) | [Examples](https://uncscode.github.io/particula/Examples/) | [PyPI](https://pypi.org/project/particula/)
## Installation
```bash
pip install particula
```
or via conda:
```bash
conda install -c conda-forge particula
```
## Quick Start
```python
import particula as par
# Build an aerosol system
aerosol = (
par.AerosolBuilder()
.set_atmosphere(atmosphere)
.set_particles(particles)
.build()
)
# Run dynamics (chainable with | operator)
process = par.dynamics.Condensation(strategy) | par.dynamics.Coagulation(strategy)
aerosol = process.execute(aerosol, time_step=10, sub_steps=1000)
```
## Code Structure
```
particula/
├── gas/ # Gas phase: species, vapor pressure, atmosphere
├── particles/ # Particle representations & distributions
├── dynamics/ # Time-dependent processes
│ ├── coagulation/
│ ├── condensation/
│ └── wall_loss/
├── activity/ # Activity coefficients, phase separation
├── equilibria/ # Gas-particle partitioning
└── util/ # Constants, validation, unit conversion
```
## Documentation Guide
| Looking for... | Go to |
|---------------------------|--------------------------------------------|
| Tutorials & walkthroughs | [Examples/](https://uncscode.github.io/particula/Examples/) |
| Scientific background | [Theory/](https://uncscode.github.io/particula/Theory/) |
| API reference | [Full Docs](https://uncscode.github.io/particula) |
| Contributing | [contribute/](./docs/contribute/CONTRIBUTING.md) |
### Examples by Topic
- **Aerosol** — Building and inspecting aerosol objects
- **Dynamics** — Coagulation, condensation, wall loss simulations
- **Equilibria** — Gas-particle partitioning calculations
- **Gas Phase** — Vapor pressure, species properties
- **Particle Phase** — Size distributions, optical properties
- **Simulations** — Full end-to-end scientific scenarios
### Featured Examples
- [**Aerosol Tutorial**](./docs/Examples/Aerosol/Aerosol_Tutorial.ipynb) — Learn how to build gas species, atmospheres, particle distributions, and combine them into an `Aerosol` object.
- [**Organic Partitioning & Coagulation**](./docs/Examples/Simulations/Notebooks/Organic_Partitioning_and_Coagulation.ipynb) — Full simulation of secondary organic aerosol (SOA) formation from 10 organic vapors, followed by Brownian coagulation over 10 minutes.
- [**Cloud Chamber Cycles**](./docs/Examples/Simulations/Notebooks/Cloud_Chamber_Cycles.ipynb) — Multi-cycle cloud droplet activation demonstrating κ-Köhler theory across 3 seed compositions (Ammonium Sulfate, Sucrose, Mixed), showing how hygroscopicity affects activation at different supersaturations.
## Features
- **Gas & Particle Phases** — Full thermodynamic modeling with swappable strategies
- **Dynamics** — Coagulation, condensation, wall loss, dilution
- **Flexible Representations** — Discrete bins, continuous PDF, particle-resolved
- **Builder Pattern** — Clean, validated object construction with unit conversion
- **Composable Processes** — Chain runnables with `|` operator
## Citation
If you use Particula in your research, please cite:
> Particula [Computer software]. DOI: [10.5281/zenodo.6634653](https://doi.org/10.5281/zenodo.6634653)
## License
MIT