plasmapy.physics.parameters.thermal_speed(T, particle: plasmapy.atomic.particle_class.Particle = 'e-', method='most_probable', mass=<Quantity nan kg>)

Return the most probable speed for a particle within a Maxwellian distribution.

  • T (Quantity) – The particle temperature in either kelvin or energy per particle
  • particle (str, optional) – Representation of the particle species (e.g., 'p' for protons, 'D+' for deuterium, or 'He-4 +1' for singly ionized helium-4), which defaults to electrons. If no charge state information is provided, then the particles are assumed to be singly charged.
  • method (str, optional) – Method to be used for calculating the thermal speed. Options are 'most_probable' (default), 'rms', and 'mean_magnitude'.
  • mass (Quantity) – The particle’s mass override. Defaults to NaN and if so, doesn’t do anything, but if set, overrides mass acquired from particle. Useful with relative velocities of particles.

V – particle thermal speed

Return type:


  • TypeError – The particle temperature is not a ~astropy.units.Quantity
  • UnitConversionError – If the particle temperature is not in units of temperature or energy per particle
  • ValueError – The particle temperature is invalid or particle cannot be used to identify an isotope or particle
  • RelativityWarning – If the ion sound speed exceeds 5% of the speed of light, or
  • ~astropy.units.UnitsWarning – If units are not provided, SI units are assumed.


The particle thermal speed is given by:

\[V_{th,i} = \sqrt{\frac{2 k_B T_i}{m_i}}\]

This function yields the most probable speed within a distribution function. However, the definition of thermal velocity varies by the square root of two depending on whether or not this velocity absorbs that factor in the expression for a Maxwellian distribution. In particular, the expression given in the NRL Plasma Formulary [1] is a square root of two smaller than the result from this function.


>>> from astropy import units as u
>>> thermal_speed(5*u.eV, 'p')
<Quantity 30949.69018286 m / s>
>>> thermal_speed(1e6*u.K, particle='p')
<Quantity 128486.55193256 m / s>
>>> thermal_speed(5*u.eV)
<Quantity 1326205.12123959 m / s>
>>> thermal_speed(1e6*u.K)
<Quantity 5505693.98842538 m / s>
>>> thermal_speed(1e6*u.K, method="rms")
<Quantity 6743070.47577549 m / s>
>>> thermal_speed(1e6*u.K, method="mean_magnitude")
<Quantity 6212510.3969422 m / s>