Classical transport theory (plasmapy.formulary.braginskii)

Functions to calculate classical transport coefficients.


This functionality is under development. Backward incompatible changes might occur in future releases.


Classical transport theory is derived by using kinetic theory to close the plasma two-fluid (electron and ion fluid) equations in the collisional limit. The first complete model in this form was done by Braginskii [1965].

As described in the next section, this module uses fitting functions from the literature [Braginskii, 1965, Epperlein and Haynes, 1986, Ji and Held, 2013, Spitzer, 1962, Spitzer and Härm, 1953] to calculate the transport coefficients, which are the resistivity, thermoelectric conductivity, thermal conductivity, and viscosity.

Keep in mind the following assumptions under which the transport equations are derived:

  1. The plasma is fully ionized, only consisting of ions and electrons. Neutral atoms are neglected.

  2. Turbulent transport does not dominate.

  3. The velocity distribution is close to Maxwellian. This implies:

    1. Collisional mean free path ≪ gradient scale length along field.

    2. Gyroradius ≪ gradient scale length perpendicular to field.

  4. The plasma is highly collisional: collisional frequency ≫ gyrofrequency.

When classical transport is not valid, e.g. due to the presence of strong gradients or turbulent transport, the transport is significantly increased by these other effects. Thus classical transport often serves as a lower bound on the losses / transport encountered in a plasma.

Transport Variables

For documentation on the individual transport variables, please take the following links to documentation of methods of ClassicalTransport.

Using the module

Given that many of the transport variables share a lot of the same computation and many are often needed to be calculated simultaneously, this module provides a ClassicalTransport class that can be initialized once with all of the variables necessary for calculation. It then provides all of the functionality as methods (please refer to its documentation).

If you only wish to calculate a single transport variable (or if just don’t like object-oriented interfaces), we have also provided wrapper functions in the main module namespace that use ClassicalTransport under the hood (see below, in the Functions section).


The API for this package is not yet stable.

Classical transport models

In this section, we present a broad overview of classical transport models implemented within this module.

Braginskii [Braginskii, 1965]

The original Braginskii treatment as presented in the highly cited review paper from 1965. Coefficients are found from expansion of the kinetic equation in Laguerre polynomials, truncated at the second term in their series expansion (\(k = 2\)). This theory allows for arbitrary Hall parameter and include results for Z = 1, 2, 3, 4, and infinity (the case of Lorentz gas completely stripped of electrons, and the stationary ion approximation).

Spitzer-Harm [Spitzer, 1962, Spitzer and Härm, 1953]

These coefficients were obtained from a numerical solution of the Fokker-Planck equation. They give one of the earliest and most accurate (in the Fokker-Planck sense) results for electron transport in simple plasma. They principally apply in the unmagnetized / parallel field case, although for resistivity Spitzer also calculated a famous result for a strong perpendicular magnetic field. Results are for Z = 1, 2, 4, 16, and infinity (Lorentz gas / stationary ion approximation).

Epperlein-Haines [Epperlein and Haynes, 1986]

Not yet implemented.

Ji-Held [Ji and Held, 2013]

This is a modern treatment of the classical transport problem that has been carried out with laudable care. It allows for arbitrary hall parameter and arbitrary \(Z\) for all coefficients. Similar to the Epperlein-Haines model, it corrects some known inaccuracies in the original Braginskii results, notably the asymptotic behavior of alpha-cross and beta_perp as Hall → +infinity. It also studies effects of electron collisions in the ion terms, which all other treatments have not. To neglect electron-electron collisions, leave \(μ = 0\). To consider them, specify mu and theta.


ClassicalTransport(T_e, n_e, T_i, n_i, ion, m_i)

Classical transport coefficients (e.g. Braginskii, 1965).

Inheritance diagram of plasmapy.formulary.braginskii.ClassicalTransport


electron_thermal_conductivity(T_e, n_e, T_i, ...)

Calculate the thermal conductivity for electrons.

electron_viscosity(T_e, n_e, T_i, n_i, ion)

Calculate the electron viscosity.

ion_thermal_conductivity(T_e, n_e, T_i, n_i, ion)

Calculate the thermal conductivity for ions.

ion_viscosity(T_e, n_e, T_i, n_i, ion[, ...])

Calculate the ion viscosity.

resistivity(T_e, n_e, T_i, n_i, ion[, m_i, ...])

Calculate the resistivity.

thermoelectric_conductivity(T_e, n_e, T_i, ...)

Calculate the thermoelectric conductivity.