plasmapy.formulary.frequencies.plasma_frequency(n: Quantity, particle: str | Integral | Particle | CustomParticle | Quantity, *, mass_numb: Integral | None = None, Z: Real | None = None, to_hz=False) Quantity[source]

Calculate the particle plasma frequency.

Aliases: wp_

Lite Version: plasma_frequency_lite

  • n (Quantity) – Particle number density in units convertible to m-3.

  • particle (particle-like) – Representation of the particle species (e.g., "p+" for protons, "D+" for deuterium, or "He-4 1+" for singly ionized helium-4). If no charge state information is provided, then the particles are assumed to be singly charged.

  • Z (real number, optional) – The charge number of an ion or neutral atom, if not provided in particle.

  • mass_numb (integer, optional) – The mass number of an isotope, if not provided in particle.


The particle plasma frequency in radians per second. Setting keyword to_hz=True will apply the factor of \(1/2π\) and yield a value in Hz.

Return type:


  • TypeError – If n is not a Quantity or particle is not of an appropriate type.

  • UnitConversionError – If n is not in correct units.

  • ValueError – If n contains invalid values or particle cannot be used to identify a particle or isotope.


UnitsWarning – If units are not provided, SI units are assumed.


The particle plasma frequency is

\[ω_p = \sqrt{\frac{n |q|}{ε_0 m}}\]

where \(n\) is the number density, \(q\) is the particle charge, and \(m\) is the particle mass.

This form of the plasma frequency has units of rad/s, but using the to_hz keyword argument will apply the factor of \(1/2π\) to give the frequency in Hz.


>>> import astropy.units as u
>>> plasma_frequency(1e19 * u.m**-3, particle="p+")
<Quantity 4.16329...e+09 rad / s>
>>> plasma_frequency(1e19 * u.m**-3, particle="p+", to_hz=True)
<Quantity 6.62608...e+08 Hz>
>>> plasma_frequency(1e19 * u.m**-3, particle="D+")
<Quantity 2.94462...e+09 rad / s>
>>> plasma_frequency(1e19 * u.m**-3, "e-")
<Quantity 1.78398...e+11 rad / s>
>>> plasma_frequency(1e19 * u.m**-3, "e-", to_hz=True)
<Quantity 2.83930...e+10 Hz>

For user convenience plasma_frequency_lite is bound to this function and can be used as follows.

>>> from plasmapy.particles import Particle
>>> mass = Particle("p+").mass.value
>>> plasma_frequency.lite(n=1e19, mass=mass, Z=1)
>>> plasma_frequency.lite(n=1e19, mass=mass, Z=1, to_hz=True)

to_hz (bool) – Set True to convert function output from angular frequency to Hz