Elements#
- type quadrupole.elements.ElementLike = Element | str | int#
Union of all types that could be coerced into an Element. These afford programmatic access by calling
Element(ElementLike).
- class quadrupole.elements.ElementData(symbol: str, number: int, mass: float)#
Dataclass for storing element data.
- class quadrupole.elements.Element(*values)#
Bases:
ElementData,EnumEnumeration of all elements on the periodic table. All element data here was taken from the International Union of Pure and Applied Chemistry (IUPAC) [1].
Notes
If you are going to use the
Elementenumeration in your own project be aware that, as it inherits fromEnum, its members are singletons [2]. This means that performing comparisons between elements should be done usingisand not==. The comparison with==invokes the__eq__method of the object which can take nearly twice as long as the identity comparison withis.References
Examples
Directly accessing an element can be done by name or symbol. Programmatic access can be done by symbol (as
str) or number (asint).>>> Element.Hydrogen is Element.H is Element("H") is Element(1) True
Element access by string is case-insensitive:
>>> Element.Ruthenium is Element("Ru") is Element("ru") is Element("rU") is Element("RU") True
You can use dot access to get an element’s data:
>>> Element.Hydrogen <Element.Hydrogen: symbol='H', number=1, mass=1.008> >>> Element.Hydrogen.name 'Hydrogen' >>> Element.Hydrogen.symbol 'H' >>> Element.Hydrogen.number 1 >>> Element.Hydrogen.mass 1.008
A “zero” element is available as a placeholder:
>>> Element.Unknown is Element.Xx is Element("Xx") is Element(0) True >>> Element.Xx.name 'Unknown' >>> Element.Xx.symbol 'Xx' >>> Element.Xx.number 0 >>> Element.Xx.mass 0.0
Printing an element directly calls its __str__() method, which returns the atomic symbol.
>>> str(hydrogen) 'H' >>> print(hydrogen) H
Since the
ElementDatadataclass is marked as frozen, you can create unordered sets of elements:>>> elem = [Element.H, Element.H, Element.C, Element.C, Element.N] >>> elem_set = set(elem) >>> len(elem_set) 3 >>> for e in elem_set: ... print(e) C H N
You can also iterate through all of the elements in order of their atomic number:
>>> for elem in Element: ... print(elem) Xx H He Li Be B C ...
- Actinium = ElementData(symbol='Ac', number=89, mass=227.0)#
- Aluminum = ElementData(symbol='Al', number=13, mass=26.9815384)#
- Americium = ElementData(symbol='Am', number=95, mass=243.0)#
- Antimony = ElementData(symbol='Sb', number=51, mass=121.76)#
- Argon = ElementData(symbol='Ar', number=18, mass=39.95)#
- Arsenic = ElementData(symbol='As', number=33, mass=74.921595)#
- Astatine = ElementData(symbol='At', number=85, mass=210.0)#
- Barium = ElementData(symbol='Ba', number=56, mass=137.327)#
- Berkelium = ElementData(symbol='Bk', number=97, mass=247.0)#
- Beryllium = ElementData(symbol='Be', number=4, mass=9.0121831)#
- Bismuth = ElementData(symbol='Bi', number=83, mass=208.9804)#
- Bohrium = ElementData(symbol='Bh', number=107, mass=270.0)#
- Boron = ElementData(symbol='B', number=5, mass=10.81)#
- Bromine = ElementData(symbol='Br', number=35, mass=79.904)#
- Cadmium = ElementData(symbol='Cd', number=48, mass=112.414)#
- Calcium = ElementData(symbol='Ca', number=20, mass=40.078)#
- Californium = ElementData(symbol='Cf', number=98, mass=251.0)#
- Carbon = ElementData(symbol='C', number=6, mass=12.011)#
- Cerium = ElementData(symbol='Ce', number=58, mass=140.116)#
- Cesium = ElementData(symbol='Cs', number=55, mass=132.90545196)#
- Chlorine = ElementData(symbol='Cl', number=17, mass=35.45)#
- Chromium = ElementData(symbol='Cr', number=24, mass=51.9961)#
- Cobalt = ElementData(symbol='Co', number=27, mass=58.933194)#
- Copernicium = ElementData(symbol='Cn', number=112, mass=285.0)#
- Copper = ElementData(symbol='Cu', number=29, mass=63.546)#
- Curium = ElementData(symbol='Cm', number=96, mass=247.0)#
- Darmstadtium = ElementData(symbol='Ds', number=110, mass=281.0)#
- Dubnium = ElementData(symbol='Db', number=105, mass=270.0)#
- Dysprosium = ElementData(symbol='Dy', number=66, mass=162.5)#
- Einsteinium = ElementData(symbol='Es', number=99, mass=252.0)#
- Erbium = ElementData(symbol='Er', number=68, mass=167.259)#
- Europium = ElementData(symbol='Eu', number=63, mass=151.964)#
- Fermium = ElementData(symbol='Fm', number=100, mass=257.0)#
- Flerovium = ElementData(symbol='Fl', number=114, mass=289.0)#
- Fluorine = ElementData(symbol='F', number=9, mass=18.998403162)#
- Francium = ElementData(symbol='Fr', number=87, mass=223.0)#
- Gadolinium = ElementData(symbol='Gd', number=64, mass=157.249)#
- Gallium = ElementData(symbol='Ga', number=31, mass=69.723)#
- Germanium = ElementData(symbol='Ge', number=32, mass=72.63)#
- Gold = ElementData(symbol='Au', number=79, mass=196.96657)#
- Hafnium = ElementData(symbol='Hf', number=72, mass=178.486)#
- Hassium = ElementData(symbol='Hs', number=108, mass=270.0)#
- Helium = ElementData(symbol='He', number=2, mass=4.002602)#
- Holmium = ElementData(symbol='Ho', number=67, mass=164.930329)#
- Hydrogen = ElementData(symbol='H', number=1, mass=1.008)#
- Indium = ElementData(symbol='In', number=49, mass=114.818)#
- Iodine = ElementData(symbol='I', number=53, mass=126.90447)#
- Iridium = ElementData(symbol='Ir', number=77, mass=192.217)#
- Iron = ElementData(symbol='Fe', number=26, mass=55.845)#
- Krypton = ElementData(symbol='Kr', number=36, mass=83.798)#
- Lanthanum = ElementData(symbol='La', number=57, mass=138.90547)#
- Lawrencium = ElementData(symbol='Lr', number=103, mass=262.0)#
- Lead = ElementData(symbol='Pb', number=82, mass=207.2)#
- Lithium = ElementData(symbol='Li', number=3, mass=6.94)#
- Livermorium = ElementData(symbol='Lv', number=116, mass=293.0)#
- Lutetium = ElementData(symbol='Lu', number=71, mass=174.96669)#
- Magnesium = ElementData(symbol='Mg', number=12, mass=24.305)#
- Manganese = ElementData(symbol='Mn', number=25, mass=54.938043)#
- Meitnerium = ElementData(symbol='Mt', number=109, mass=278.0)#
- Mendelevium = ElementData(symbol='Md', number=101, mass=258.0)#
- Mercury = ElementData(symbol='Hg', number=80, mass=200.592)#
- Molybdenum = ElementData(symbol='Mo', number=42, mass=95.95)#
- Moscovium = ElementData(symbol='Mc', number=115, mass=289.0)#
- Neodymium = ElementData(symbol='Nd', number=60, mass=144.242)#
- Neon = ElementData(symbol='Ne', number=10, mass=20.1797)#
- Neptunium = ElementData(symbol='Np', number=93, mass=237.0)#
- Nickel = ElementData(symbol='Ni', number=28, mass=58.6934)#
- Nihonium = ElementData(symbol='Nh', number=113, mass=286.0)#
- Niobium = ElementData(symbol='Nb', number=41, mass=92.90637)#
- Nitrogen = ElementData(symbol='N', number=7, mass=14.007)#
- Nobelium = ElementData(symbol='No', number=102, mass=259.0)#
- Oganesson = ElementData(symbol='Og', number=118, mass=294.0)#
- Osmium = ElementData(symbol='Os', number=76, mass=190.23)#
- Oxygen = ElementData(symbol='O', number=8, mass=15.999)#
- Palladium = ElementData(symbol='Pd', number=46, mass=106.42)#
- Phosphorus = ElementData(symbol='P', number=15, mass=30.973761998)#
- Platinum = ElementData(symbol='Pt', number=78, mass=195.084)#
- Plutonium = ElementData(symbol='Pu', number=94, mass=244.0)#
- Polonium = ElementData(symbol='Po', number=84, mass=209.0)#
- Potassium = ElementData(symbol='K', number=19, mass=39.0983)#
- Praseodymium = ElementData(symbol='Pr', number=59, mass=140.90766)#
- Promethium = ElementData(symbol='Pm', number=61, mass=145.0)#
- Protactinium = ElementData(symbol='Pa', number=91, mass=231.03588)#
- Radium = ElementData(symbol='Ra', number=88, mass=226.0)#
- Radon = ElementData(symbol='Rn', number=86, mass=222.0)#
- Rhenium = ElementData(symbol='Re', number=75, mass=186.207)#
- Rhodium = ElementData(symbol='Rh', number=45, mass=102.90549)#
- Roentgenium = ElementData(symbol='Rg', number=111, mass=281.0)#
- Rubidium = ElementData(symbol='Rb', number=37, mass=85.4678)#
- Ruthenium = ElementData(symbol='Ru', number=44, mass=101.07)#
- Rutherfordium = ElementData(symbol='Rf', number=104, mass=267.0)#
- Samarium = ElementData(symbol='Sm', number=62, mass=150.36)#
- Scandium = ElementData(symbol='Sc', number=21, mass=44.955907)#
- Seaborgium = ElementData(symbol='Sg', number=106, mass=269.0)#
- Selenium = ElementData(symbol='Se', number=34, mass=78.971)#
- Silicon = ElementData(symbol='Si', number=14, mass=28.085)#
- Silver = ElementData(symbol='Ag', number=47, mass=107.8682)#
- Sodium = ElementData(symbol='Na', number=11, mass=22.98976928)#
- Strontium = ElementData(symbol='Sr', number=38, mass=87.62)#
- Sulfur = ElementData(symbol='S', number=16, mass=32.06)#
- Tantalum = ElementData(symbol='Ta', number=73, mass=180.94788)#
- Technetium = ElementData(symbol='Tc', number=43, mass=97.0)#
- Tellurium = ElementData(symbol='Te', number=52, mass=127.6)#
- Tennessine = ElementData(symbol='Ts', number=117, mass=293.0)#
- Terbium = ElementData(symbol='Tb', number=65, mass=158.925354)#
- Thallium = ElementData(symbol='Tl', number=81, mass=204.38)#
- Thorium = ElementData(symbol='Th', number=90, mass=232.0377)#
- Thulium = ElementData(symbol='Tm', number=69, mass=168.934219)#
- Tin = ElementData(symbol='Sn', number=50, mass=118.71)#
- Titanium = ElementData(symbol='Ti', number=22, mass=47.867)#
- Tungsten = ElementData(symbol='W', number=74, mass=183.84)#
- Unknown = ElementData(symbol='Xx', number=0, mass=0.0)#
- Uranium = ElementData(symbol='U', number=92, mass=238.02891)#
- Vanadium = ElementData(symbol='V', number=23, mass=50.9415)#
- Xenon = ElementData(symbol='Xe', number=54, mass=131.293)#
- Ytterbium = ElementData(symbol='Yb', number=70, mass=173.045)#
- Yttrium = ElementData(symbol='Y', number=39, mass=88.905838)#
- Zinc = ElementData(symbol='Zn', number=30, mass=65.38)#
- Zirconium = ElementData(symbol='Zr', number=40, mass=91.222)#