Main Parcel Model

The core of the model has its own documentation page, which you can access here.

ParcelModel(aerosols, V, T0, S0, P0[, ...]) Wrapper class for instantiating and running the parcel model.

Driver Tools

Utilities for driving sets of parcel model integration strategies.

Occasionally, a pathological set of input parameters to the parcel model will really muck up the ODE solver’s ability to integrate the model. In that case, it would be nice to quietly adjust some of the numerical parameters for the ODE solver and re-submit the job. This module includes a workhorse function iterate_runs() which can serve this purpose and can serve as an example for more complex integration strategies. Alternatively, :func:`run_model`is a useful shortcut for building/running a model and snagging its output.

run_model(V, initial_aerosols, T, P, dt[, ...]) Setup and run the parcel model with given solver configuration.
iterate_runs(V, initial_aerosols, T, P[, ...]) Iterate through several different strategies for integrating the parcel model.

Thermodynamics/Kohler Theory

Aerosol/atmospheric thermodynamics functions.

The following sets of functions calculate useful thermodynamic quantities that arise in aerosol-cloud studies. Where possible, the source of the parameterization for each function is documented.

dv(T, r, P[, accom]) Diffusivity of water vapor in air, modified for non-continuum effects.
ka(T, rho, r) Thermal conductivity of air, modified for non-continuum effects.
rho_air(T, P[, RH]) Density of moist air with a given relative humidity, temperature, and pressure.
es(T_c) Calculates the saturation vapor pressure over water for a given temperature.
sigma_w(T) Surface tension of water for a given temperature.
Seq(r, r_dry, T, kappa) κ-Kohler theory equilibrium saturation over aerosol.
Seq_approx(r, r_dry, T, kappa) Approximate κ-Kohler theory equilibrium saturation over aerosol.
kohler_crit(T, r_dry, kappa[, approx]) Critical radius and supersaturation of an aerosol particle.
critical_curve(T, r_a, r_b, kappa[, approx]) Calculates curves of critical radii and supersaturations for aerosol.


Container class for encapsulating data about aerosol size distributions.

AerosolSpecies(species, distribution, kappa) Container class for organizing aerosol metadata.

The following are utility functions which might be useful in studying and manipulating aerosol distributions for use in the model or activation routines.

dist_to_conc(dist, r_min, r_max[, rule]) Converts a swath of a size distribution function to an actual number concentration.


Collection of classes for representing aerosol size distributions.

Most commonly, one would use the Lognorm distribution. However, for the sake of completeness, other canonical distributions will be included here, with the notion that this package could be extended to describe droplet size distributions or other collections of objects.

BaseDistribution Interface for distributions, to ensure that they contain a pdf method.
Gamma Gamma size distribution
Lognorm(mu, sigma[, N, base]) Lognormal size distribution.
MultiModeLognorm(mus, sigmas, Ns[, base]) Multimode lognormal distribution class.

The following dictionaries containing (multi) Lognormal aerosol size distributions have also been saved for convenience:

  1. FN2005_single_modes: Fountoukis, C., and A. Nenes (2005), Continued development of a cloud droplet formation parameterization for global climate models, J. Geophys. Res., 110, D11212, doi:10.1029/2004JD005591
  2. NS2003_single_modes: Nenes, A., and J. H. Seinfeld (2003), Parameterization of cloud droplet formation in global climate models, J. Geophys. Res., 108, 4415, doi:10.1029/2002JD002911, D14.
  3. whitby_distributions: Whitby, K. T. (1978), The physical characteristics of sulfur aerosols, Atmos. Environ., 12(1-3), 135–159, doi:10.1016/0004-6981(78)90196-8.
  4. jaenicke_distributions: Jaenicke, R. (1993), Tropospheric Aerosols, in Aerosol-Cloud-Climate Interactions, P. V. Hobbs, ed., Academic Press, San Diego, CA, pp. 1-31.


Collection of activation parameterizations.

lognormal_activation(smax, mu, sigma, N, kappa) Compute the activated number/fraction from a lognormal mode
binned_activation(Smax, T, rs, aerosol[, approx]) Compute the activation statistics of a given aerosol, its transient size distribution, and updraft characteristics.
multi_mode_activation(Smax, T, aerosols, rss) Compute the activation statistics of a multi-mode, binned_activation aerosol population.
arg2000(V, T, P[, aerosols, accom, mus, ...]) Computes droplet activation using a psuedo-analytical scheme.
mbn2014(V, T, P[, aerosols, accom, mus, ...]) Computes droplet activation using an iterative scheme.
shipwayabel2010(V, T, P, aerosol) Activation scheme following Shipway and Abel, 2010 (doi:10.1016/j.atmosres.2009.10.005).
ming2006(V, T, P, aerosol) Ming activation scheme.


Commonly used constants in microphysics and aerosol thermodynamics equations as well as important model parameters.

Symbol Variable Value Units Description
\(g\) g 9.8 m s**-2 gravitational constant
\(C_p\) Cp 1004.0 J/kg specific heat of dry air at constant pressure
\(\rho_w\) rho_w 1000.0 kg m**-3 density of water at STP
\(R_d\) Rd 287.0 J/kg/K gas constant for dry air
\(R_v\) Rv 461.5 J/kg/K gas constant for water vapor
\(R\) R 8.314 J/mol/K universal gas constant
\(M_w\) Mw 0.018 kg/mol molecular weight of water
\(M_a\) Ma 0.0289 kg/mol molecular weight of dry air
\(D_v\) Dv 3e-5 m**2/s diffusivity of water vapor in air
\(L_v\) L 2.25e6 J/kg/K latent heat of vaporization of water
\(\alpha_c\) ac 1.0 unitless condensation coefficient
\(K_a\) Ka 0.02 J/m/s/K thermal conductivity of air
\(a_T\) at 0.96 unitless thermal accommodation coefficient
\(\epsilon\) epsilon 0.622 unitless ratio of \(M_w/M_a\)

Additionally, a reference table containing the 1976 US Standard Atmosphere is implemented in the constant std_atm, which is a pandas DataFrame with the fields

  • alt, altitude in km
  • sigma, ratio of density to sea-level density
  • delta, ratio of pressure to sea-level pressure
  • theta, ratio of temperature to sea-level temperature
  • temp, temperature in K
  • press, pressure in Pa
  • dens, air density in kg/m**3
  • k.visc, air kinematic viscosity
  • ratio, ratio of speed of sound to kinematic viscosity in m**-1

Using default pandas functons, you can interpolate to any reference pressure or height level.