ParticleLike
- plasmapy.particles.particle_class.ParticleLike
An
object
is particle-like if it can be identified as an instance ofParticle
orCustomParticle
, or cast into one.When used as a type hint annotation,
ParticleLike
indicates that an argument should represent a physical particle. Particle-like objects can include strings, integers, or instances of theParticle
orCustomParticle
classes.Notes
Real world particles are typically represented as instances of the
Particle
class in PlasmaPy.>>> from plasmapy.particles import Particle >>> Particle("proton") Particle("p+")
All
Particle
instances, and objects that can be cast intoParticle
instances, 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
CustomParticle
instances are particle-like because particle properties are provided in physical units. AQuantity
with 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
DimensionlessParticle
instances are not particle-like because, without normalization information, they do not uniquely identify a physical particle.See also
Examples
Using
ParticleLike
as a type hint 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-")
alias of
str
|int
|integer
|Particle
|CustomParticle
|Quantity