Activity Examples

February 3, 2026 ยท View on GitHub

This section provides working code examples for computing chemical activity in aerosol particles using Particula's activity strategies. Learn how to use ideal, kappa-Kohler, and BAT (non-ideal) models through practical examples.

Overview

Activity determines how species partition between gas and particle phases and controls water uptake in hygroscopic aerosols. These examples demonstrate:

  • Computing activity from mass concentrations
  • Comparing ideal vs. non-ideal activity models
  • Using the kappa parameter for hygroscopic growth
  • Integrating activity with equilibria calculations

Example Scripts

  • Ideal Activity


    Basic ideal activity calculation using Raoult's Law with ActivityIdealMolar. Good starting point for understanding the activity API.

  • BAT Model Activity


    Non-ideal activity using the Binary Activity Thermodynamic (BAT) model with ActivityNonIdealBinary. Compares ideal vs. non-ideal activity for organic-water mixtures.

  • Kappa Parameter Activity


    Hygroscopic activity using kappa-Kohler theory with ActivityKappaParameter. Demonstrates water activity at different compositions for inorganic aerosols.

  • Equilibria Partitioning


    Liquid-vapor partitioning using LiquidVaporPartitioningStrategy. Shows how activity integrates with equilibria calculations for gas-particle partitioning.

Interactive Tutorial

For a comprehensive hands-on introduction, see the interactive Jupyter notebook:

:octicons-arrow-right-24: Activity Tutorial

This tutorial covers:

  • What is activity and why it matters for aerosol modeling
  • Ideal activity with Raoult's Law
  • Non-ideal activity with the BAT model
  • Kappa parameter for hygroscopic growth
  • Integration with equilibria calculations
  • Visualization of activity vs. composition

Quick Reference

Available Strategies

StrategyImportDescription
ActivityIdealMolarpar.particles.ActivityIdealMolarRaoult's Law (mole fractions)
ActivityIdealMasspar.particles.ActivityIdealMassIdeal (mass fractions)
ActivityKappaParameterpar.particles.ActivityKappaParameterKappa-Kohler model
ActivityNonIdealBinarypar.particles.ActivityNonIdealBinaryBAT non-ideal model

Basic Usage Pattern

import numpy as np
import particula as par

# 1. Create strategy
strategy = par.particles.ActivityIdealMolar(
    molar_mass=np.array([18.015e-3, 200.0e-3]),  # kg/mol
)

# 2. Define mass concentrations
mass = np.array([0.5e-9, 0.5e-9])  # kg/m^3

# 3. Compute activity
activity = strategy.activity(mass_concentration=mass)