Skip to main content

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

See the migration guide for current APIs, compatibility notes, and direct-kernel troubleshooting.

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
  • Aerosol Tutorial — Learn how to build gas species, atmospheres, particle distributions, and combine them into an Aerosol object.

  • CPU Latent-Heat Condensation Bookkeeping — CPU-only walkthrough showing diagnostic latent-heat bookkeeping from real condensation mass transfer with no temperature feedback.

  • Direct-Warp GPU Nucleation — Explicit-transfer, fixed-capacity low-level example using the package- exported nucleation_step_gpu. It requires Warp and is separate from the CPU-only Nucleation runnable; it provides no CPU fallback.

  • 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 — CondensationIsothermal plus CondensationLatentHeat with latent-heat-corrected mass_transfer_rate()/rate() and step() energy tracking via last_latent_heat_energy, with optional dynamic_viscosity override
  • Latent Heat Factories — Build constant, linear, and power-law latent heat strategies via particula.gas.LatentHeatFactory with 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

Metadata

Release files for particula 0.2.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for particula 0.2.13
File Size Uploaded
particula-0.2.13.tar.gz 2.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for particula 0.2.13
File Interpreter ABI Platform
particula-0.2.13-py3-none-any.whl Python 3 none any Details

Total release size: 4.4 MB

Release files / particula-0.2.13.tar.gz

Download URL particula-0.2.13.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
b6d175e8b6100809f9e4e0d3b73d9f937de405f77334c453b3b5a54640f4d8db
BLAKE2b-256 checksum
How to use checksums
87b468eb5302ccece6631d55f6860db51e567f961c1ab0f31b575f98cd7bf07a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / particula-0.2.13-py3-none-any.whl

Download URL particula-0.2.13-py3-none-any.whl
Size 2.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
8d3d5c5aede9835e00ac60242ff44ab0b5705ac6e6ae3c038d56dddfa2d1c204
BLAKE2b-256 checksum
How to use checksums
a90100e8218d9e2848a448b194cf582cf6537779c9ccb07d0a0294d6ac26d84c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page