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 19 hours ago
JSON representation

Repository metadata

Particula is an open-source, aerosol simulation library.

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)

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 Aerosol object.

  • 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

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


GitHub Events

Total
Last Year

Committers metadata

Last synced: 12 days ago

Total Commits: 1,901
Total Committers: 10
Avg Commits per committer: 190.1
Development Distribution Score (DDS): 0.168

Commits in past year: 1,065
Committers in past year: 5
Avg Commits per committer in past year: 213.0
Development Distribution Score (DDS) in past year: 0.058

Name Email Commits
Kyle Gorkowski k****w@g****m 1581
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:


Issue and Pull Request metadata

Last synced: 9 days ago

Total issues: 202
Total pull requests: 498
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.67
Merged pull request: 387
Bot issues: 2
Bot pull requests: 95

Past year issues: 56
Past year pull requests: 201
Past year average time to close issues: 10 days
Past year average time to close pull requests: 2 days
Past year issue authors: 4
Past year pull request authors: 4
Past year average comments per issue: 0.21
Past year average comments per pull request: 1.83
Past year merged pull request: 159
Past year bot issues: 1
Past year bot pull requests: 9

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/uncscode/particula

Top Issue Authors

  • Gorkowski (146)
  • ngam (31)
  • mahf708 (16)
  • ngmahfouz (4)
  • wkchuang (3)
  • sourcery-ai[bot] (2)

Top Pull Request Authors

  • Gorkowski (341)
  • 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)
  • bug (15)
  • Tests (15)
  • release (9)
  • no-pr-activity (7)
  • .data (3)
  • .Lagrangian (3)
  • packaging (3)
  • analysis (1)

Package metadata

pypi.org: particula

a simple, fast, and powerful particle simulator

  • Homepage:
  • Documentation: https://particula.readthedocs.io/
  • Licenses: MIT License
  • Latest release: 0.2.11 (published 26 days ago)
  • Last Synced: 2026-02-20T23:07:34.593Z (7 days ago)
  • Versions: 35
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 1,194 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-01-24T17:06:36.112Z (about 1 month ago)
  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.025%
    • Average: 48.811%
    • Dependent packages count: 51.175%
    • Forks count: 51.645%
    • Stargazers count: 58.398%

Dependencies

.github/workflows/book.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4.5.0 composite
  • peaceiris/actions-gh-pages v3.9.2 composite
.github/workflows/lint.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4.5.0 composite
.github/workflows/pypi.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4.5.0 composite
  • pypa/gh-action-pypi-publish c7f29f7adef1a245bd91520e94867e5c6eedddcc composite
.github/workflows/stale.yml actions
  • actions/stale v7 composite
.github/workflows/test.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4.5.0 composite
.devcontainer/Dockerfile docker
  • mcr.microsoft.com/vscode/devcontainers/python latest build
pyproject.toml pypi
  • hypersolver ==0.0.8
  • numpy *
  • pint *
  • scipy *

Score: 11.955108156013555