plasmapy.formulary.speeds.Alfven_speed(B: Unit('T'), density: (Unit('1 / m3'), Unit('kg / m3')), ion: str | Integral | Particle | CustomParticle | Quantity | None = None, z_mean: Real | None = None)

Calculate the Alfvén speed.

The Alfvén speed \(V_A\) is the typical propagation speed of magnetic disturbances in a plasma, and is given by:

\[V_A = \frac{B}{\sqrt{μ_0 ρ}}\]

where \(B\) is the magnetic field and \(ρ = n_i m_i + n_e m_e\) is the total mass density (\(n_i\) is the ion number density, \(n_e\) is the electron number density, \(m_i\) is the ion mass, and \(m_e\) is the electron mass) [Alfvén, 1942].

Aliases: va_

  • B (Quantity) – The magnetic field magnitude in units convertible to tesla.

  • density (Quantity) – Either the ion number density \(n_i\) in units convertible to m-3 or the total mass density \(ρ\) in units convertible to kg m-3.

  • ion (Particle, optional) – Representation of the ion species (e.g., 'p' for protons, 'D+' for deuterium, 'He-4 +1' for singly ionized helium-4, etc.). If no charge state information is provided, then the ions are assumed to be singly ionized. If the density is an ion number density, then this parameter is required in order to convert to mass density.

  • z_mean (Real, optional) – The average ionization state (arithmetic mean) of the ion composing the plasma. This is used in calculating the mass density \(ρ = n_i (m_i + Z_{mean} m_e)\). z_mean is ignored if density is passed as a mass density and overrides any charge state info provided by ion.


V_A – The Alfvén speed in units of m s-1.

Return type:


  • RelativityWarning – If the Alfvén velocity exceeds 5% of the speed of light.

  • UnitsWarning – If units are not provided for the magnetic field B, units of tesla are assumed.


This expression does not account for relativistic effects, and loses validity when the resulting speed is a significant fraction of the speed of light.


>>> from astropy import units as u
>>> from import m_p, m_e
>>> B = 0.014*u.T
>>> n = 5e19*u.m**-3
>>> rho = n*(m_p+m_e)
>>> ion = 'p'
>>> Alfven_speed(B, n, ion=ion)
<Quantity 43173.870... m / s>
>>> Alfven_speed(B, rho)
<Quantity 43173.870... m / s>
>>> Alfven_speed(B, rho).to(
<Quantity 4.317387 cm / us>
>>> Alfven_speed(B, n, ion="He +2")
<Quantity 21664.18... m / s>
>>> Alfven_speed(B, n, ion="He++")
<Quantity 21664.18... m / s>
>>> Alfven_speed(B, n, ion="He", z_mean=1.8)
<Quantity 21661.51... m / s>