module Chem::PeriodicTable
Overview
NOTE Standard atom weights (in Da) are taken from Meija, J., et al., Pure Appl. Chem., 2016, 88 (3), pp 265-291, doi:10.1515/pac-2015-0305
NOTE Covalent radii (in Å) are taken from Cordero, B., et al., Dalton Trans., 2008, 21, pp 2832-2838, doi:10.1039/b801115j. Missing values are set to 1.5 Å
NOTE vdW radii (in Å) are taken from Alvarez, S., Dalton Trans., 2013, 42, pp 8617-8636, doi:10.1039/c3dt50599e. Missing values are set to covalent radius + 0.9 Å
Extended Modules
Defined in:
chem/core/periodic_table.crchem/core/periodic_table/elements.cr
chem/core/periodic_table/macros.cr
Constant Summary
-
Ac =
Element.new(covalent_radius: 2.15, mass: 227, vdw_radius: 2.8, atomic_number: 89, name: "Actinium", symbol: "Ac") -
Ag =
Element.new(covalent_radius: 1.45, mass: 107.8682, vdw_radius: 2.53, atomic_number: 47, name: "Silver", symbol: "Ag") -
Al =
Element.new(covalent_radius: 1.21, mass: 26.9815, vdw_radius: 2.25, atomic_number: 13, name: "Aluminum", symbol: "Al") -
Am =
Element.new(covalent_radius: 1.80, mass: 243, vdw_radius: 2.83, atomic_number: 95, name: "Americium", symbol: "Am") -
Ar =
Element.new(covalent_radius: 1.06, mass: 39.948, vdw_radius: 1.83, atomic_number: 18, name: "Argon", symbol: "Ar") -
As =
Element.new(covalent_radius: 1.19, mass: 74.9216, vdw_radius: 1.88, atomic_number: 33, name: "Arsenic", symbol: "As") -
At =
Element.new(covalent_radius: 1.5, mass: 210, atomic_number: 85, name: "Astatine", symbol: "At") -
Au =
Element.new(covalent_radius: 1.36, mass: 196.9666, vdw_radius: 2.32, atomic_number: 79, name: "Gold", symbol: "Au") -
B =
Element.new(covalent_radius: 0.84, mass: 10.811, vdw_radius: 1.91, atomic_number: 5, name: "Boron", symbol: "B") -
Ba =
Element.new(covalent_radius: 2.15, mass: 137.327, vdw_radius: 3.03, atomic_number: 56, name: "Barium", symbol: "Ba") -
Be =
Element.new(covalent_radius: 0.96, mass: 9.0122, vdw_radius: 1.98, atomic_number: 4, name: "Beryllium", symbol: "Be") -
Bh =
Element.new(mass: 264, atomic_number: 107, name: "Bohrium", symbol: "Bh") -
Bi =
Element.new(covalent_radius: 1.48, mass: 208.9804, vdw_radius: 2.54, atomic_number: 83, name: "Bismuth", symbol: "Bi") -
Bk =
Element.new(mass: 247, vdw_radius: 3.4, atomic_number: 97, name: "Berkelium", symbol: "Bk") -
Br =
Element.new(covalent_radius: 1.20, mass: 79.904, valencies: [1], vdw_radius: 1.86, atomic_number: 35, name: "Bromine", symbol: "Br") -
C =
Element.new(covalent_radius: 0.76, mass: 12.0107, valencies: [4], vdw_radius: 1.77, atomic_number: 6, name: "Carbon", symbol: "C") -
Ca =
Element.new(covalent_radius: 1.76, mass: 40.078, ionic: true, valencies: [2], vdw_radius: 2.62, atomic_number: 20, name: "Calcium", symbol: "Ca") -
Cd =
Element.new(covalent_radius: 1.44, mass: 112.411, vdw_radius: 2.49, atomic_number: 48, name: "Cadmium", symbol: "Cd") -
Ce =
Element.new(covalent_radius: 2.04, mass: 140.116, vdw_radius: 2.88, atomic_number: 58, name: "Cerium", symbol: "Ce") -
Cf =
Element.new(mass: 251, vdw_radius: 3.05, atomic_number: 98, name: "Californium", symbol: "Cf") -
Cl =
Element.new(covalent_radius: 1.02, mass: 35.453, valencies: [1], vdw_radius: 1.82, atomic_number: 17, name: "Chlorine", symbol: "Cl") -
Cm =
Element.new(covalent_radius: 1.69, mass: 247, vdw_radius: 3.05, atomic_number: 96, name: "Curium", symbol: "Cm") -
Cn =
Element.new(mass: 285, atomic_number: 112, name: "Copernicium", symbol: "Cn") -
Co =
Element.new(covalent_radius: 1.50, mass: 58.9331, vdw_radius: 2.4, atomic_number: 27, name: "Cobalt", symbol: "Co") -
Cr =
Element.new(covalent_radius: 1.39, mass: 51.9961, vdw_radius: 2.45, atomic_number: 24, name: "Chromium", symbol: "Cr") -
Cs =
Element.new(covalent_radius: 2.44, mass: 132.9055, vdw_radius: 3.48, atomic_number: 55, name: "Cesium", symbol: "Cs") -
Cu =
Element.new(covalent_radius: 1.32, mass: 63.546, vdw_radius: 2.38, atomic_number: 29, name: "Copper", symbol: "Cu") -
D =
Element.new(1, "Deuterium", "D", covalent_radius: 0.31, mass: 2.0141, valencies: [1], vdw_radius: 1.2) -
Special elements that are used internally
-
Db =
Element.new(mass: 262, atomic_number: 105, name: "Dubnium", symbol: "Db") -
Ds =
Element.new(mass: 281, atomic_number: 110, name: "Darmstadtium", symbol: "Ds") -
Dy =
Element.new(covalent_radius: 1.92, mass: 162.5, vdw_radius: 2.87, atomic_number: 66, name: "Dysprosium", symbol: "Dy") -
Er =
Element.new(covalent_radius: 1.89, mass: 167.259, vdw_radius: 2.83, atomic_number: 68, name: "Erbium", symbol: "Er") -
Es =
Element.new(mass: 252, vdw_radius: 2.7, atomic_number: 99, name: "Einsteinium", symbol: "Es") -
Eu =
Element.new(covalent_radius: 1.98, mass: 151.964, vdw_radius: 2.87, atomic_number: 63, name: "Europium", symbol: "Eu") -
F =
Element.new(covalent_radius: 0.57, mass: 18.9984, valencies: [1], vdw_radius: 1.46, atomic_number: 9, name: "Fluorine", symbol: "F") -
Fe =
Element.new(covalent_radius: 1.52, mass: 55.845, vdw_radius: 2.44, atomic_number: 26, name: "Iron", symbol: "Fe") -
Fm =
Element.new(mass: 257, atomic_number: 100, name: "Fermium", symbol: "Fm") -
Fr =
Element.new(covalent_radius: 2.6, mass: 223, atomic_number: 87, name: "Francium", symbol: "Fr") -
Ga =
Element.new(covalent_radius: 1.22, mass: 69.723, vdw_radius: 2.32, atomic_number: 31, name: "Gallium", symbol: "Ga") -
Gd =
Element.new(covalent_radius: 1.96, mass: 157.25, vdw_radius: 2.83, atomic_number: 64, name: "Gadolinium", symbol: "Gd") -
Ge =
Element.new(covalent_radius: 1.20, mass: 72.64, vdw_radius: 2.29, atomic_number: 32, name: "Germanium", symbol: "Ge") -
H =
Element.new(covalent_radius: 0.31, mass: 1.0079, valencies: [1], vdw_radius: 1.2, atomic_number: 1, name: "Hydrogen", symbol: "H") -
He =
Element.new(covalent_radius: 0.2, mass: 4.0026, vdw_radius: 1.43, atomic_number: 2, name: "Helium", symbol: "He") -
Hf =
Element.new(covalent_radius: 1.75, mass: 178.49, vdw_radius: 2.63, atomic_number: 72, name: "Hafnium", symbol: "Hf") -
Hg =
Element.new(covalent_radius: 1.32, mass: 200.59, vdw_radius: 2.45, atomic_number: 80, name: "Mercury", symbol: "Hg") -
Ho =
Element.new(covalent_radius: 1.92, mass: 164.9303, vdw_radius: 2.81, atomic_number: 67, name: "Holmium", symbol: "Ho") -
Hs =
Element.new(mass: 277, atomic_number: 108, name: "Hassium", symbol: "Hs") -
I =
Element.new(covalent_radius: 1.39, mass: 126.9045, valencies: [1], vdw_radius: 2.04, atomic_number: 53, name: "Iodine", symbol: "I") -
In =
Element.new(covalent_radius: 1.42, mass: 114.818, vdw_radius: 2.43, atomic_number: 49, name: "Indium", symbol: "In") -
Ir =
Element.new(covalent_radius: 1.41, mass: 192.217, vdw_radius: 2.41, atomic_number: 77, name: "Iridium", symbol: "Ir") -
K =
Element.new(covalent_radius: 2.03, mass: 39.0983, ionic: true, valencies: [1], vdw_radius: 2.73, atomic_number: 19, name: "Potassium", symbol: "K") -
Kr =
Element.new(covalent_radius: 1.16, mass: 83.798, vdw_radius: 2.25, atomic_number: 36, name: "Krypton", symbol: "Kr") -
La =
Element.new(covalent_radius: 2.07, mass: 138.9055, vdw_radius: 2.98, atomic_number: 57, name: "Lanthanum", symbol: "La") -
Li =
Element.new(covalent_radius: 1.28, mass: 6.941, vdw_radius: 2.12, atomic_number: 3, name: "Lithium", symbol: "Li") -
Lr =
Element.new(mass: 262, atomic_number: 103, name: "Lawrencium", symbol: "Lr") -
Lu =
Element.new(covalent_radius: 1.87, mass: 174.967, vdw_radius: 2.74, atomic_number: 71, name: "Lutetium", symbol: "Lu") -
Md =
Element.new(mass: 258, atomic_number: 101, name: "Mendelevium", symbol: "Md") -
Mg =
Element.new(covalent_radius: 1.41, mass: 24.305, ionic: true, valencies: [2], vdw_radius: 2.51, atomic_number: 12, name: "Magnesium", symbol: "Mg") -
Mn =
Element.new(covalent_radius: 1.61, mass: 54.938, vdw_radius: 2.45, atomic_number: 25, name: "Manganese", symbol: "Mn") -
Mo =
Element.new(covalent_radius: 1.54, mass: 95.94, vdw_radius: 2.45, atomic_number: 42, name: "Molybdenum", symbol: "Mo") -
Mt =
Element.new(mass: 268, atomic_number: 109, name: "Meitnerium", symbol: "Mt") -
N =
Element.new(covalent_radius: 0.71, mass: 14.0067, valencies: [3], vdw_radius: 1.66, atomic_number: 7, name: "Nitrogen", symbol: "N") -
Na =
Element.new(covalent_radius: 1.66, mass: 22.9898, ionic: true, valencies: [1], vdw_radius: 2.5, atomic_number: 11, name: "Sodium", symbol: "Na") -
Nb =
Element.new(covalent_radius: 1.64, mass: 92.9064, vdw_radius: 2.56, atomic_number: 41, name: "Niobium", symbol: "Nb") -
Nd =
Element.new(covalent_radius: 2.01, mass: 144.242, vdw_radius: 2.95, atomic_number: 60, name: "Neodymium", symbol: "Nd") -
Ne =
Element.new(covalent_radius: 0.5, mass: 20.1797, vdw_radius: 1.58, atomic_number: 10, name: "Neon", symbol: "Ne") -
Ni =
Element.new(covalent_radius: 1.24, mass: 58.6934, vdw_radius: 2.4, atomic_number: 28, name: "Nickel", symbol: "Ni") -
No =
Element.new(mass: 259, atomic_number: 102, name: "Nobelium", symbol: "No") -
Np =
Element.new(covalent_radius: 1.90, mass: 237, vdw_radius: 2.82, atomic_number: 93, name: "Neptunium", symbol: "Np") -
O =
Element.new(covalent_radius: 0.66, mass: 15.9994, valencies: [2], vdw_radius: 1.5, atomic_number: 8, name: "Oxygen", symbol: "O") -
Os =
Element.new(covalent_radius: 1.44, mass: 190.23, vdw_radius: 2.48, atomic_number: 76, name: "Osmium", symbol: "Os") -
P =
Element.new(covalent_radius: 1.07, mass: 30.9738, valencies: [3, 5], vdw_radius: 1.9, atomic_number: 15, name: "Phosphorus", symbol: "P") -
Pa =
Element.new(covalent_radius: 2.00, mass: 231.0359, vdw_radius: 2.88, atomic_number: 91, name: "Proactinium", symbol: "Pa") -
Pb =
Element.new(covalent_radius: 1.46, mass: 207.2, vdw_radius: 2.6, atomic_number: 82, name: "Lead", symbol: "Pb") -
Pd =
Element.new(covalent_radius: 1.39, mass: 106.42, vdw_radius: 2.15, atomic_number: 46, name: "Palladium", symbol: "Pd") -
Pm =
Element.new(covalent_radius: 1.9, mass: 145, atomic_number: 61, name: "Promethium", symbol: "Pm") -
Po =
Element.new(covalent_radius: 1.40, mass: 209, atomic_number: 84, name: "Polonium", symbol: "Po") -
Pr =
Element.new(covalent_radius: 2.03, mass: 140.9077, vdw_radius: 2.92, atomic_number: 59, name: "Praseodymium", symbol: "Pr") -
Pt =
Element.new(covalent_radius: 1.36, mass: 195.084, vdw_radius: 2.29, atomic_number: 78, name: "Platinum", symbol: "Pt") -
Pu =
Element.new(covalent_radius: 1.87, mass: 244, vdw_radius: 2.81, atomic_number: 94, name: "Plutonium", symbol: "Pu") -
Ra =
Element.new(covalent_radius: 2.21, mass: 226, atomic_number: 88, name: "Radium", symbol: "Ra") -
Rb =
Element.new(covalent_radius: 2.20, mass: 85.4678, vdw_radius: 3.21, atomic_number: 37, name: "Rubidium", symbol: "Rb") -
Re =
Element.new(covalent_radius: 1.51, mass: 186.207, vdw_radius: 2.49, atomic_number: 75, name: "Rhenium", symbol: "Re") -
Rf =
Element.new(mass: 261, atomic_number: 104, name: "Rutherfordium", symbol: "Rf") -
Rg =
Element.new(mass: 272, atomic_number: 111, name: "Roentgenium", symbol: "Rg") -
Rh =
Element.new(covalent_radius: 1.42, mass: 102.9055, vdw_radius: 2.44, atomic_number: 45, name: "Rhodium", symbol: "Rh") -
Rn =
Element.new(covalent_radius: 1.5, mass: 222, atomic_number: 86, name: "Radon", symbol: "Rn") -
Ru =
Element.new(covalent_radius: 1.46, mass: 101.07, vdw_radius: 2.46, atomic_number: 44, name: "Ruthenium", symbol: "Ru") -
S =
Element.new(covalent_radius: 1.05, mass: 32.065, valencies: [2, 6], vdw_radius: 1.89, atomic_number: 16, name: "Sulfur", symbol: "S") -
Sb =
Element.new(covalent_radius: 1.39, mass: 121.76, vdw_radius: 2.47, atomic_number: 51, name: "Antimony", symbol: "Sb") -
Sc =
Element.new(covalent_radius: 1.70, mass: 44.9559, vdw_radius: 2.58, atomic_number: 21, name: "Scandium", symbol: "Sc") -
Se =
Element.new(covalent_radius: 1.20, mass: 78.96, vdw_radius: 1.82, atomic_number: 34, name: "Selenium", symbol: "Se") -
Sg =
Element.new(mass: 266, atomic_number: 106, name: "Seaborgium", symbol: "Sg") -
Si =
Element.new(covalent_radius: 1.11, mass: 28.0855, vdw_radius: 2.19, atomic_number: 14, name: "Silicon", symbol: "Si") -
Sm =
Element.new(covalent_radius: 1.98, mass: 150.36, vdw_radius: 2.9, atomic_number: 62, name: "Samarium", symbol: "Sm") -
Sn =
Element.new(covalent_radius: 1.39, mass: 118.71, vdw_radius: 2.42, atomic_number: 50, name: "Tin", symbol: "Sn") -
Sr =
Element.new(covalent_radius: 1.95, mass: 87.62, vdw_radius: 2.84, atomic_number: 38, name: "Strontium", symbol: "Sr") -
Ta =
Element.new(covalent_radius: 1.70, mass: 180.9479, vdw_radius: 2.53, atomic_number: 73, name: "Tantalum", symbol: "Ta") -
Tb =
Element.new(covalent_radius: 1.94, mass: 158.9254, vdw_radius: 2.79, atomic_number: 65, name: "Terbium", symbol: "Tb") -
Tc =
Element.new(covalent_radius: 1.47, mass: 98, vdw_radius: 2.44, atomic_number: 43, name: "Technetium", symbol: "Tc") -
Te =
Element.new(covalent_radius: 1.38, mass: 127.6, vdw_radius: 1.99, atomic_number: 52, name: "Tellurium", symbol: "Te") -
Th =
Element.new(covalent_radius: 2.06, mass: 232.0381, vdw_radius: 2.93, atomic_number: 90, name: "Thorium", symbol: "Th") -
Ti =
Element.new(covalent_radius: 1.60, mass: 47.867, vdw_radius: 2.46, atomic_number: 22, name: "Titanium", symbol: "Ti") -
Tl =
Element.new(covalent_radius: 1.45, mass: 204.3833, vdw_radius: 2.47, atomic_number: 81, name: "Thallium", symbol: "Tl") -
Tm =
Element.new(covalent_radius: 1.90, mass: 168.9342, vdw_radius: 2.79, atomic_number: 69, name: "Thulium", symbol: "Tm") -
U =
Element.new(covalent_radius: 1.96, mass: 238.0289, vdw_radius: 2.71, atomic_number: 92, name: "Uranium", symbol: "U") -
Uuh =
Element.new(mass: 292, atomic_number: 116, name: "Ununhexium", symbol: "Uuh") -
Uuo =
Element.new(mass: 294, atomic_number: 118, name: "Ununoctium", symbol: "Uuo") -
Uup =
Element.new(mass: 288, atomic_number: 115, name: "Ununpentium", symbol: "Uup") -
Uuq =
Element.new(mass: 289, atomic_number: 114, name: "Ununquadium", symbol: "Uuq") -
Uus =
Element.new(mass: 291, atomic_number: 117, name: "Ununseptium", symbol: "Uus") -
Uut =
Element.new(mass: 284, atomic_number: 113, name: "Ununtrium", symbol: "Uut") -
V =
Element.new(covalent_radius: 1.53, mass: 50.9415, vdw_radius: 2.42, atomic_number: 23, name: "Vanadium", symbol: "V") -
W =
Element.new(covalent_radius: 1.62, mass: 183.84, vdw_radius: 2.57, atomic_number: 74, name: "Tungsten", symbol: "W") -
X =
Element.new(0, "Unknown", "X", mass: 0) -
Xe =
Element.new(covalent_radius: 1.40, mass: 131.293, vdw_radius: 2.06, atomic_number: 54, name: "Xenon", symbol: "Xe") -
Y =
Element.new(covalent_radius: 1.90, mass: 88.9059, vdw_radius: 2.75, atomic_number: 39, name: "Yttrium", symbol: "Y") -
Yb =
Element.new(covalent_radius: 1.87, mass: 173.04, vdw_radius: 2.8, atomic_number: 70, name: "Ytterbium", symbol: "Yb") -
Zn =
Element.new(covalent_radius: 1.22, mass: 65.409, vdw_radius: 2.39, atomic_number: 30, name: "Zinc", symbol: "Zn") -
Zr =
Element.new(covalent_radius: 1.75, mass: 91.224, vdw_radius: 2.52, atomic_number: 40, name: "Zirconium", symbol: "Zr")
Instance Method Summary
- #[](*args, **options) : Element
- #[]?(number : Int32) : Element | Nil
- #[]?(symbol : String | Char) : Element | Nil
- #[]?(*, name : String) : Element | Nil
-
#[]?(*, atom_name : String) : Element | Nil
TODO rename to guess_element? TODO test different atom names
-
#covalent_cutoff(ele : Element, other : Element) : Float64
NOTE The additional term (0.3 Å) is taken from the covalent radii reference, which states that about 96% of the surveyed bonds are within three standard deviations of the sum of the radii, where the found average standard deviation is about 0.1 Å.
- #covalent_cutoff(atom : Atom, other : Atom) : Float64
- #elements : Tuple
Macro Summary
Instance Method Detail
TODO rename to guess_element?
TODO test different atom names
NOTE The additional term (0.3 Å) is taken from the covalent radii reference, which states that about 96% of the surveyed bonds are within three standard deviations of the sum of the radii, where the found average standard deviation is about 0.1 Å.