plasmapy.formulary.parameters.Alfven_speed(B: Unit(‘T’), density: [Unit(‘1 / m3’), Unit(‘kg / m3’)], ion: Optional[plasmapy.particles.particle_class.Particle] = None, z_mean: Optional[numbers.Real] = None)

Calculate the Alfvén speed.

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

\[V_A = \frac{B}{\sqrt{\mu_0\rho}}\]

where \(B\) is the magnetic field and \(\rho = 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).

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 \(\rho\) 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 paramter 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 \(\rho = 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 \(m/s\).

Return type


  • RelativityError – If the Alfven velocity is greater than or equal to the speed of light.

  • TypeError – If B and/or density are not of type Quantity, or convertible.

  • TypeError – If ion is not of type or convertible to Particle.

  • TypeError – If z_mean is not of type int or float.

  • UnitTypeError – If the magnetic field B does not have units equivalent to \(Tesla\).

  • UnitTypeError – If the density does not have units equivalent to a number density or mass density.

  • ValueError – If density is negative.

  • RelativityWarning – If the Alfven 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>