Particula
An Python-based aerosol simulator. Particula captures gas-particle interactions, transformations, and dynamics to power predictive aerosol science.
https://github.com/uncscode/particula
Category: Atmosphere
Sub Category: Atmospheric Chemistry and Aerosol
Keywords
aerosol atmosphere model package particle research science simulation
Keywords from Contributors
climate
Last synced: about 13 hours ago
JSON representation
Repository metadata
Particula is an open-source, aerosol simulation library.
- 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: 2026-03-05T22:22:59.000Z (about 1 month ago)
- Last Synced: 2026-04-02T08:07:12.723Z (9 days ago)
- Topics: aerosol, atmosphere, model, package, particle, research, science, simulation
- Language: Python
- Homepage: https://uncscode.github.io/particula/
- Size: 829 MB
- Stars: 11
- Watchers: 0
- Forks: 10
- Open Issues: 6
- Releases: 38
-
Metadata Files:
- Readme: readme.md
- License: license
- Citation: citation
- Codeowners: .github/CODEOWNERS
- Agents: AGENTS.md
readme.md
Particula
A simple, fast, and powerful particle simulator for aerosol science.
Requires: Python 3.12+
Documentation | Examples | PyPI
Installation
pip install particula
or via conda:
conda install -c conda-forge particula
Quick Start
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)
Migration / What's New
For migration details and updated API mappings, see the canonical guide:
ParticleData and GasData Migration Guide.
Legacy facades remain available, with deprecation planned for v0.3.0.
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/ |
| Scientific background | Theory/ |
| API reference | Full Docs |
| Contributing | contribute/ |
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 — Learn how to build gas species, atmospheres, particle distributions, and combine them into an
Aerosolobject. -
Organic Partitioning & Coagulation — Full simulation of secondary organic aerosol (SOA) formation from 10 organic vapors, followed by Brownian coagulation over 10 minutes.
-
Cloud Chamber Cycles
— 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 - Condensation Utilities — Non-isothermal helpers via
particula.dynamics.get_thermal_resistance_factor,
particula.dynamics.get_mass_transfer_rate_latent_heat, and
particula.dynamics.get_latent_heat_energy_released - Condensation Strategies —
CondensationIsothermalplus
CondensationLatentHeatwith latent-heat-corrected
mass_transfer_rate()/rate()andstep()energy tracking via
last_latent_heat_energy, with optionaldynamic_viscosityoverride - Latent Heat Factories — Build constant, linear, and power-law latent heat
strategies viaparticula.gas.LatentHeatFactorywith unit-aware builders and
gas-phase exports for upcoming non-isothermal workflows
Citation
If you use Particula in your research, please cite:
Particula [Computer software]. DOI: 10.5281/zenodo.6634653
License
MIT
Citation (citation)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: Particula
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Particula
family-names: Developers
doi: 10.5281/zenodo.6634653
repository-code: 'https://github.com/uncscode/particula'
url: 'https://uncscode.github.io/particula/'
license: MIT
Owner metadata
- Name: uncscode
- Login: uncscode
- Email:
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/91224023?v=4
- Repositories: 5
- Last ynced at: 2023-03-06T04:14:15.749Z
- Profile URL: https://github.com/uncscode
GitHub Events
Total
- Create event: 268
- Release event: 8
- Issues event: 172
- Watch event: 4
- Delete event: 227
- Issue comment event: 409
- Push event: 1480
- Pull request review comment event: 353
- Pull request review event: 418
- Pull request event: 269
Last Year
- Create event: 255
- Release event: 7
- Issues event: 166
- Watch event: 4
- Delete event: 216
- Issue comment event: 393
- Push event: 1417
- Pull request review comment event: 347
- Pull request review event: 410
- Pull request event: 260
Committers metadata
Last synced: 16 days ago
Total Commits: 1,988
Total Committers: 10
Avg Commits per committer: 198.8
Development Distribution Score (DDS): 0.161
Commits in past year: 790
Committers in past year: 5
Avg Commits per committer in past year: 158.0
Development Distribution Score (DDS) in past year: 0.078
| Name | Commits | |
|---|---|---|
| Kyle Gorkowski | k****w@g****m | 1668 |
| ngam | 6****m | 148 |
| dependabot[bot] | 4****] | 68 |
| copilot-swe-agent[bot] | 1****t | 40 |
| Naser Mahfouz | n****z@p****v | 35 |
| wkchuang | w****7@c****u | 16 |
| sourcery-ai[bot] | 5****] | 6 |
| Naser Mahfouz | 1****z | 5 |
| Akshay Kumar | a****0@g****m | 1 |
| Sourcery AI | 1 |
Committer domains:
- columbia.edu: 1
- pnnl.gov: 1
Issue and Pull Request metadata
Last synced: 18 days ago
Total issues: 202
Total pull requests: 500
Average time to close issues: 25 days
Average time to close pull requests: 5 days
Total issue authors: 6
Total pull request authors: 7
Average comments per issue: 0.45
Average comments per pull request: 1.66
Merged pull request: 389
Bot issues: 2
Bot pull requests: 95
Past year issues: 37
Past year pull requests: 148
Past year average time to close issues: 9 days
Past year average time to close pull requests: 3 days
Past year issue authors: 3
Past year pull request authors: 4
Past year average comments per issue: 0.3
Past year average comments per pull request: 1.74
Past year merged pull request: 110
Past year bot issues: 0
Past year bot pull requests: 9
Top Issue Authors
- Gorkowski (146)
- ngam (31)
- mahf708 (16)
- ngmahfouz (4)
- wkchuang (3)
- sourcery-ai[bot] (2)
Top Pull Request Authors
- Gorkowski (343)
- dependabot[bot] (70)
- ngam (36)
- sourcery-ai[bot] (25)
- mahf708 (15)
- wkchuang (6)
- ngmahfouz (5)
Top Issue Labels
- enhancement (75)
- bug (43)
- sourcery-ai (13)
- no-issue-activity (12)
- documentation (12)
- .data (10)
- next (4)
- analysis (4)
- .Lagrangian (4)
- Tests (3)
- .equilibria (2)
- question (2)
- wait (2)
- particlephase (1)
- .activity (1)
- release (1)
- type:complete (1)
- model:base (1)
- agent (1)
Top Pull Request Labels
- dependencies (72)
- github_actions (70)
- enhancement (69)
- documentation (66)
- codex (57)
- next (19)
- Refactor (17)
- Tests (16)
- bug (15)
- release (9)
- no-pr-activity (7)
- .Lagrangian (3)
- .data (3)
- packaging (3)
- analysis (1)
- agent (1)
- blocked (1)
Package metadata
- Total packages: 2
-
Total downloads:
- conda: 46,268 total
- pypi: 229 last-month
- Total dependent packages: 1 (may contain duplicates)
- Total dependent repositories: 1 (may contain duplicates)
- Total versions: 47
- Total maintainers: 1
pypi.org: particula
a simple, fast, and powerful particle simulator
- Homepage:
- Documentation: https://particula.readthedocs.io/
- Licenses: MIT License
- Latest release: 0.2.12 (published about 2 months ago)
- Last Synced: 2026-03-30T23:02:28.928Z (12 days ago)
- Versions: 36
- Dependent Packages: 1
- Dependent Repositories: 1
- Downloads: 229 Last month
-
Rankings:
- Dependent packages count: 4.736%
- Average: 13.362%
- Downloads: 13.693%
- Dependent repos count: 21.657%
- Maintainers (1)
conda-forge.org: particula
Particula is a Python-based aerosol particle simulator. Its goal is to provide a robust aerosol simulation (including both gas and particle phases) that can be used to answer scientific questions arising from experiments and research endeavors.
- Homepage: https://uncscode.github.io/particula
- Licenses: MIT
- Latest release: 0.0.12 (published over 3 years ago)
- Last Synced: 2026-03-24T18:10:42.694Z (18 days ago)
- Versions: 11
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 46,268 Total
-
Rankings:
- Dependent repos count: 34.025%
- Average: 48.811%
- Dependent packages count: 51.175%
- Forks count: 51.645%
- Stargazers count: 58.398%
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4.5.0 composite
- peaceiris/actions-gh-pages v3.9.2 composite
- actions/checkout v3 composite
- actions/setup-python v4.5.0 composite
- actions/checkout v3 composite
- actions/setup-python v4.5.0 composite
- pypa/gh-action-pypi-publish c7f29f7adef1a245bd91520e94867e5c6eedddcc composite
- actions/stale v7 composite
- actions/checkout v3 composite
- actions/setup-python v4.5.0 composite
- mcr.microsoft.com/vscode/devcontainers/python latest build
- hypersolver ==0.0.8
- numpy *
- pint *
- scipy *
Score: 15.88300602862571