plasmapy.formulary.lengths.gyroradius(B: Unit("T"), particle: str | ~numbers.Integral | ~plasmapy.particles.particle_class.Particle | ~plasmapy.particles.particle_class.CustomParticle | ~astropy.units.quantity.Quantity, *, Vperp: Unit("m / s") = <Quantity nan m / s>, T: Unit("K") = None, lorentzfactor=nan, relativistic: bool = True, mass_numb=None, Z=None) -> Unit("m")

Return the particle gyroradius.

Aliases: rc_, rhoc_

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

  • particle (Particle) – 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.

  • Vperp (Quantity, optional, keyword-only) – The component of particle velocity that is perpendicular to the magnetic field in units convertible to meters per second.

  • T (Quantity, optional, keyword-only) – The particle temperature in units convertible to kelvin.

  • lorentzfactor (float or ndarray, optional, keyword-only) – The Lorentz factor for the particles, use for high precision.

  • relativistic (bool, optional, keyword-only) – Whether or not you want to use a relativistic approximation. True by default.

  • mass_numb (integer, keyword-only, optional) – The mass number associated with particle.

  • Z (real number, keyword-only, optional) – The charge number associated with particle.


r_Li – The particle gyroradius in units of meters. This Quantity will be based on either the perpendicular component of particle velocity as inputted, or the most probable speed for a particle within a Maxwellian distribution for the particle temperature. It is relativistically accurate.

Return type:



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


One but not both of Vperp and T must be inputted.

lorentzfactor can be inferred from Vperp or T but near the speed of light, this can lead to rounding errors.

If any of B, Vperp, or T is a number rather than a Quantity, then SI units will be assumed and a warning will be raised.

The particle gyroradius is also known as the particle Larmor radius and is given by

\[r_{Li} = \frac{γ V_⟂}{ω_{ci}}\]

where \(V_⟂\) is the component of particle velocity that is perpendicular to the magnetic field, \(ω_{ci}\) is the particle gyrofrequency, and \(γ\) is the Lorentz factor. If a temperature is provided, then \(V_⟂\) will be the most probable thermal velocity of a particle at that temperature. The relativistic keyword can be set to False to avoid the relativistic correction.


>>> from astropy import units as u
>>> gyroradius(0.2*u.T, particle='p+', T=1e5*u.K)
<Quantity 0.002120... m>
>>> gyroradius(0.2*u.T, particle='p+', T=1e5*u.K)
<Quantity 0.002120... m>
>>> gyroradius(5*u.uG, particle='alpha', T=1*u.eV)
<Quantity 288002.38... m>
>>> gyroradius(400*u.G, particle='Fe+++', Vperp=1e7*u.m/u.s)
<Quantity 48.25815... m>
>>> gyroradius(B=0.01*u.T, particle='e-', T=1e6*u.K)
<Quantity 0.003130... m>
>>> gyroradius(0.01*u.T, 'e-', Vperp=1e6*u.m/u.s)
<Quantity 0.000568... m>
>>> gyroradius(0.2*u.T, 'e-', T=1e5*u.K)
<Quantity 4.94957...e-05 m>
>>> gyroradius(5*u.uG, 'e-', T=1*u.eV)
<Quantity 6744.27... m>
>>> gyroradius(400*u.G, 'e-', Vperp=1e7*u.m/u.s)
<Quantity 0.001422... m>
>>> gyroradius(400*u.G, 'e-', Vperp=1e7*u.m/u.s, lorentzfactor=1.0)
<Quantity 0.001421... m>
>>> gyroradius(400*u.G, 'e-', Vperp=1e7*u.m/u.s, relativistic=False)
<Quantity 0.001421... m>