ParticleLike
- plasmapy.particles.particle_class.ParticleLike: TypeAlias = str | int | numpy.integer | plasmapy.particles.particle_class.Particle | plasmapy.particles.particle_class.CustomParticle | astropy.units.quantity.Quantity
An
objectis particle-like if it can be identified as an instance ofParticleorCustomParticle, or cast into one.When used as a type annotation,
ParticleLikeindicates that an argument should represent a physical particle. Particle-like objects can include strings, integers, or instances of theParticleorCustomParticleclasses.Notes
Real world particles are typically represented as instances of the
Particleclass in PlasmaPy.>>> from plasmapy.particles import Particle >>> Particle("proton") Particle("p+")
All
Particleinstances, and objects that can be cast intoParticleinstances, are particle-like.Elements
An element may also be represented by a string that contains the atomic symbol (case-sensitive) or the name of the element, or an integer representing the atomic number. The element iron can be represented as
"Fe","iron","Iron",26, orParticle("Fe").Isotopes
An isotope may be represented by a string that contains an atomic symbol or element name, followed by a hyphen and the mass number (with no spaces in between). The isotope 56Fe can be represented as
"Fe-56","iron-56", orParticle("Fe-56"). 1H can be represented by"protium", 2H can be represented by"D"or"deuterium", and 3H can be represented by"T"or"tritium".Ions
An ion or ionic level may be represented by a string that contains a representation of an element or isotope, followed by charge information. For example,
"He 1+","He+","helium 1+", and"He II"all represent singly ionized helium.Charge information is typically separated from the element or isotope by a space, and given as an integer paired with a plus or minus sign. The sign can either precede or follow the integer (e.g.,
"Fe 0+"or"Fe +0"). The charge information can also be given as a series of plus signs or of minus signs that immediately follow the element or isotope (e.g.,"Fe++"for Fe2+).Ions can also be represented using Roman numeral notation, where the Roman numeral indicates the charge number plus one (e.g.,
"H I"represents H0+ and"He-4 II"represents 4He1+).D1+ can also be represented by
"deuteron", T1+ can be represented by"triton", and 4He2+ can be represented by"alpha".Special particles
A special particle may be represented by a string that contains the name of the particle (case-insensitive) or a standard symbol for it (case-sensitive). A neutron can be represented as
"n"or"neutron"; a proton can be represented as"p+","p", or"Proton"; and an electron can be represented by"e-","e", or"ELECTRON".Custom particles
CustomParticleinstances are particle-like because particle properties are provided in physical units. AQuantitywith a physical type of mass or charge is particle-like because it can be used to generate aCustomParticle.>>> import astropy.units as u >>> CustomParticle(mass = 1e-26 * u.kg, charge = 1e-18 * u.C) CustomParticle(mass=1e-26 kg, charge=1e-18 C)
Note
DimensionlessParticleinstances are not particle-like because, without normalization information, they do not uniquely identify a physical particle.See also
Examples
Using
ParticleLikeas a type annotation indicates that an argument or variable should represent a physical particle.>>> from plasmapy.particles import ParticleLike, Particle >>> def is_electron(particle: ParticleLike): ... return particle == Particle("e-")