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 | Provenance | Actions |
|---|---|---|---|---|
| particula-0.2.15.tar.gz | 2.0 MB | Without provenance | Details for particula-0.2.15.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| particula-0.2.15-py3-none-any.whl | Python 3 | none | any | Details for particula-0.2.15-py3-none-any.whl |
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
|
Security for particula 0.2.15
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.