"""Periodic table data: element symbol, mass, and name."""
from dataclasses import dataclass
[docs]
@dataclass
class Element:
"""
Dataclass for a chemical element.
Attributes
----------
atomicNum : int
Atomic number.
symbol : str
Element symbol (e.g. ``'C'``, ``'H'``).
mass : float
Atomic mass in amu.
name : str
Full element name.
"""
atomicNum: int
symbol: str
mass: float
name: str
H = Element( 1, 'H' , 1.0079, 'Hydrogen')
He = Element( 2, 'He', 4.0026, 'Helium')
Li = Element( 3, 'Li', 6.9410, 'Lithium')
Be = Element( 4, 'Be', 9.0122, 'Beryllium')
B = Element( 5, 'B' , 10.8110, 'Boron')
C = Element( 6, 'C' , 12.0107, 'Carbon')
N = Element( 7, 'N' , 14.0067, 'Nitrogen')
O = Element( 8, 'O' , 15.9994, 'Oxygen')
F = Element( 9, 'F' , 18.9984, 'Fluorine')
Ne = Element( 10, 'Ne', 20.1797, 'Neon')
Na = Element( 11, 'Na', 22.9898, 'Sodium')
Mg = Element( 12, 'Mg', 24.3050, 'Magnesium')
Al = Element( 13, 'Al', 26.9815, 'Aluminum')
Si = Element( 14, 'Si', 28.0855, 'Silicon')
P = Element( 15, 'P' , 30.9738, 'Phosphorus')
S = Element( 16, 'S' , 32.0650, 'Sulfur')
Cl = Element( 17, 'Cl', 35.4530, 'Chlorine')
Ar = Element( 18, 'Ar', 39.9480, 'Argon')
K = Element( 19, 'K' , 39.0983, 'Potassium')
Ca = Element( 20, 'Ca', 40.0780, 'Calcium')
Sc = Element( 21, 'Sc', 44.9559, 'Scandium')
Ti = Element( 22, 'Ti', 47.8670, 'Titanium')
V = Element( 23, 'V' , 50.9415, 'Vanadium')
Cr = Element( 24, 'Cr', 51.9961, 'Chromium')
Mn = Element( 25, 'Mn', 54.9380, 'Manganese')
Fe = Element( 26, 'Fe', 55.8450, 'Iron')
Co = Element( 27, 'Co', 58.9331, 'Cobalt')
Ni = Element( 28, 'Ni', 58.6934, 'Nickel')
Cu = Element( 29, 'Cu', 63.5460, 'Copper')
Zn = Element( 30, 'Zn', 65.4090, 'Zinc')
Ga = Element( 31, 'Ga', 69.7230, 'Gallium')
Ge = Element( 32, 'Ge', 72.6400, 'Germanium')
As = Element( 33, 'As', 74.9216, 'Arsenic')
Se = Element( 34, 'Se', 78.9600, 'Selenium')
Br = Element( 35, 'Br', 79.9040, 'Bromine')
Kr = Element( 36, 'Kr', 83.7980, 'Krypton')
Rb = Element( 37, 'Rb', 85.4678, 'Rubidium')
Sr = Element( 38, 'Sr', 87.6200, 'Strontium')
Y = Element( 39, 'Y' , 88.9059, 'Yttrium')
Zr = Element( 40, 'Zr', 91.2240, 'Zirconium')
Nb = Element( 41, 'Nb', 92.9064, 'Niobium')
Mo = Element( 42, 'Mo', 95.9400, 'Molybdenum')
Tc = Element( 43, 'Tc', 98.0000, 'Technetium')
Ru = Element( 44, 'Ru', 101.0700, 'Ruthenium')
Rh = Element( 45, 'Rh', 102.9055, 'Rhodium')
Pd = Element( 46, 'Pd', 106.4200, 'Palladium')
Ag = Element( 47, 'Ag', 107.8682, 'Silver')
Cd = Element( 48, 'Cd', 112.4110, 'Cadmium')
In = Element( 49, 'In', 114.8180, 'Indium')
Sn = Element( 50, 'Sn', 118.7100, 'Tin')
Sb = Element( 51, 'Sb', 121.7600, 'Antimony')
Te = Element( 52, 'Te', 127.6000, 'Tellurium')
I = Element( 53, 'I' , 126.9045, 'Iodine')
Xe = Element( 54, 'Xe', 131.2930, 'Xenon')
Cs = Element( 55, 'Cs', 132.9055, 'Cesium')
Ba = Element( 56, 'Ba', 137.3270, 'Barium')
La = Element( 57, 'La', 138.9055, 'Lanthanum')
Ce = Element( 58, 'Ce', 140.1160, 'Cerium')
Pr = Element( 59, 'Pr', 140.9077, 'Praseodymium')
Nd = Element( 60, 'Nd', 144.2420, 'Neodymium')
Pm = Element( 61, 'Pm', 145.0000, 'Promethium')
Sm = Element( 62, 'Sm', 150.3600, 'Samarium')
Eu = Element( 63, 'Eu', 151.9640, 'Europium')
Gd = Element( 64, 'Gd', 157.2500, 'Gadolinium')
Tb = Element( 65, 'Tb', 158.9254, 'Terbium')
Dy = Element( 66, 'Dy', 162.5000, 'Dysprosium')
Ho = Element( 67, 'Ho', 164.9303, 'Holmium')
Er = Element( 68, 'Er', 167.2590, 'Erbium')
Tm = Element( 69, 'Tm', 168.9342, 'Thulium')
Yb = Element( 70, 'Yb', 173.0400, 'Ytterbium')
Lu = Element( 71, 'Lu', 174.9670, 'Lutetium')
Hf = Element( 72, 'Hf', 178.4900, 'Hafnium')
Ta = Element( 73, 'Ta', 180.9479, 'Tantalum')
W = Element( 74, 'W' , 183.8400, 'Tungsten')
Re = Element( 75, 'Re', 186.2070, 'Rhenium')
Os = Element( 76, 'Os', 190.2300, 'Osmium')
Ir = Element( 77, 'Ir', 192.2170, 'Iridium')
Pt = Element( 78, 'Pt', 195.0840, 'Platinum')
Au = Element( 79, 'Au', 196.9666, 'Gold')
Hg = Element( 80, 'Hg', 200.5900, 'Mercury')
Tl = Element( 81, 'Tl', 204.3833, 'Thallium')
Pb = Element( 82, 'Pb', 207.2000, 'Lead')
Bi = Element( 83, 'Bi', 208.9804, 'Bismuth')
Po = Element( 84, 'Po', 209.0000, 'Polonium')
At = Element( 85, 'At', 210.0000, 'Astatine')
Rn = Element( 86, 'Rn', 222.0000, 'Radon')
Fr = Element( 87, 'Fr', 223.0000, 'Francium')
Ra = Element( 88, 'Ra', 226.0000, 'Radium')
Ac = Element( 89, 'Ac', 227.0000, 'Actinium')
Th = Element( 90, 'Th', 232.0381, 'Thorium')
Pa = Element( 91, 'Pa', 231.0359, 'Proactinium')
U = Element( 92, 'U' , 238.0289, 'Uranium')
Np = Element( 93, 'Np', 237.0000, 'Neptunium')
Pu = Element( 94, 'Pu', 244.0000, 'Plutonium')
Am = Element( 95, 'Am', 243.0000, 'Americium')
Cm = Element( 96, 'Cm', 247.0000, 'Curium')
Bk = Element( 97, 'Bk', 247.0000, 'Berkelium')
Cf = Element( 98, 'Cf', 251.0000, 'Californium')
Es = Element( 99, 'Es', 252.0000, 'Einsteinium')
Fm = Element(100, 'Fm', 257.0000, 'Fermium')
Md = Element(101, 'Md', 258.0000, 'Mendelevium')
No = Element(102, 'No', 259.0000, 'Nobelium')
Lr = Element(103, 'Lr', 262.0000, 'Lawrencium')
Rf = Element(104, 'Rf', 261.0000, 'Rutherfordium')
Db = Element(105, 'Db', 262.0000, 'Dubnium')
Sg = Element(106, 'Sg', 266.0000, 'Seaborgium')
Bh = Element(107, 'Bh', 264.0000, 'Bohrium')
Hs = Element(108, 'Hs', 277.0000, 'Hassium')
Mt = Element(109, 'Mt', 268.0000, 'Meitnerium')
Ds = Element(110, 'Ds', 281.0000, 'Darmstadtium')
Rg = Element(111, 'Rg', 272.0000, 'Roentgenium')
Cn = Element(112, 'Cn', 285.0000, 'Copernicium')
Nh = Element(113, 'Nh', 286.0000, 'Nihonium')
Fl = Element(114, 'Fl', 289.0000, 'Flerovium')
Mc = Element(115, 'Mc', 289.0000, 'Moscovium')
Lv = Element(116, 'Lv', 293.0000, 'Livermorium')
Ts = Element(117, 'Ts', 294.0000, 'Tennessine')
Og = Element(118, 'Og', 294.0000, 'Oganesson')
ELEMENTS = {
'H': H,
'He': He,
'Li': Li,
'Be': Be,
'B': B,
'C': C,
'N': N,
'O': O,
'F': F,
'Ne': Ne,
'Na': Na,
'Mg': Mg,
'Al': Al,
'Si': Si,
'P': P,
'S': S,
'Cl': Cl,
'Ar': Ar,
'K': K,
'Ca': Ca,
'Sc': Sc,
'Ti': Ti,
'V': V,
'Cr': Cr,
'Mn': Mn,
'Fe': Fe,
'Co': Co,
'Ni': Ni,
'Cu': Cu,
'Zn': Zn,
'Ga': Ga,
'Ge': Ge,
'As': As,
'Se': Se,
'Br': Br,
'Kr': Kr,
'Rb': Rb,
'Sr': Sr,
'Y': Y,
'Zr': Zr,
'Nb': Nb,
'Mo': Mo,
'Tc': Tc,
'Ru': Ru,
'Rh': Rh,
'Pd': Pd,
'Ag': Ag,
'Cd': Cd,
'In': In,
'Sn': Sn,
'Sb': Sb,
'Te': Te,
'I': I,
'Xe': Xe,
'Cs': Cs,
'Ba': Ba,
'La': La,
'Ce': Ce,
'Pr': Pr,
'Nd': Nd,
'Pm': Pm,
'Sm': Sm,
'Eu': Eu,
'Gd': Gd,
'Tb': Tb,
'Dy': Dy,
'Ho': Ho,
'Er': Er,
'Tm': Tm,
'Yb': Yb,
'Lu': Lu,
'Hf': Hf,
'Ta': Ta,
'W': W,
'Re': Re,
'Os': Os,
'Ir': Ir,
'Pt': Pt,
'Au': Au,
'Hg': Hg,
'Tl': Tl,
'Pb': Pb,
'Bi': Bi,
'Po': Po,
'At': At,
'Rn': Rn,
'Fr': Fr,
'Ra': Ra,
'Ac': Ac,
'Th': Th,
'Pa': Pa,
'U': U,
'Np': Np,
'Pu': Pu,
'Am': Am,
'Cm': Cm,
'Bk': Bk,
'Cf': Cf,
'Es': Es,
'Fm': Fm,
'Md': Md,
'No': No,
'Lr': Lr,
'Rf': Rf,
'Db': Db,
'Sg': Sg,
'Bh': Bh,
'Hs': Hs,
'Mt': Mt,
'Ds': Ds,
'Rg': Rg,
'Cn': Cn,
'Nh': Nh,
'Fl': Fl,
'Mc': Mc,
'Lv': Lv,
'Ts': Ts,
'Og': Og,
}
#for key in ELEMENTS:
# if len(key) > 1:
# ELEMENTS[key.upper()] = ELEMENTS[key]