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
Featured Examples
-
Aerosol Tutorial — Learn how to build gas species, atmospheres, particle distributions, and combine them into an
Aerosolobject. -
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-onlyNucleationrunnable; 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, andparticula.dynamics.get_latent_heat_energy_released - Condensation Strategies —
CondensationIsothermalplusCondensationLatentHeatwith latent-heat-correctedmass_transfer_rate()/rate()andstep()energy tracking vialast_latent_heat_energy, with optionaldynamic_viscosityoverride - Latent Heat Factories — Build constant, linear, and power-law latent heat
strategies via
particula.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
Metadata
Release files for particula 0.2.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| particula-0.2.15.tar.gz | 2.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| particula-0.2.15-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.2 MB
Release files / particula-0.2.15.tar.gz
| Download URL | particula-0.2.15.tar.gz |
|---|---|
| Size | 2.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2851738e0fd36ebba376dd32a0347d73cae1a204a5b13a4c6ded02ea004beb37
|
|
BLAKE2b-256 checksum How to use checksums |
1efc9f62cc4bbaf2e0954517ad6bc87c40ac459d1b2c9cd985d74c36eb3fce79
|
| 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.15-py3-none-any.whl
| Download URL | particula-0.2.15-py3-none-any.whl |
|---|---|
| Size | 2.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4fd354f180f8364eaf4aecd8bb12837e98f8e728e9c3c34982c5eed46f676353
|
|
BLAKE2b-256 checksum How to use checksums |
f4644be4795256e19426cbd9ccb8a23de91ae17cadc89805bda664612ec4615b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|