Source code for util.atomic_weight

import numpy as np


[docs]def get_atomic_weight(element: str): """ Parser function to return atomic weight. :param element: Atomic number of name :type element: str :return: Atomic weight :rtype: float """ _element = element.capitalize() mask = np.isin(periodic_table, _element) if np.any(mask): return Atomic_Weight[mask.nonzero()[0][0]] else: raise NameError("A given element is not searchable. \n" "The searchable types of name are: 'He', 'HE, 'he' or 'Helium', 'HELIUM','helium' or '2' " "for the case of He atom. \n" "Please check the name of elements.")
periodic_table = np.array([ ['Short_name', 'Full_name', 'Atomic_number'], ['H', 'Hydrogen', '1'], ['He', 'Helium', '2'], ['Li', 'Lithium', '3'], ['Be', 'Beryllium', '4'], ['B', 'Boron', '5'], ['C', 'Carbon', '6'], ['N', 'Nitrogen', '7'], ['O', 'Oxygen', '8'], ['F', 'Fluorine', '9'], ['Ne', 'Neon', '10'], ['Na', 'Sodium', '11'], ['Mg', 'Magnesium', '12'], ['Al', 'Aluminium', '13'], ['Si', 'Silicon', '14'], ['P', 'Phosphorus', '15'], ['S', 'Sulfur', '16'], ['Cl', 'Chlorine', '17'], ['Ar', 'Argon', '18'], ['K', 'Potassium', '19'], ['Ca', 'Calcium', '20'], ['Sc', 'Scandium', '21'], ['Ti', 'Titanium', '22'], ['V', 'Vanadium', '23'], ['Cr', 'Chromium', '24'], ['Mn', 'Manganese', '25'], ['Fe', 'Iron', '26'], ['Co', 'Cobalt', '27'], ['Ni', 'Nickel', '28'], ['Cu', 'Copper', '29'], ['Zn', 'Zinc', '30'], ['Ga', 'Gallium', '31'], ['Ge', 'Germanium', '32'], ['As', 'Arsenic', '33'], ['Se', 'Selenium', '34'], ['Br', 'Bromine', '35'], ['Kr', 'Krypton', '36'], ['Rb', 'Rubidium', '37'], ['Sr', 'Strontium', '38'], ['Y', 'Yttrium', '39'], ['Zr', 'Zirconium', '40'], ['Nb', 'Niobium', '41'], ['Mo', 'Molybdenum', '42'], ['Tc', 'Technetium', '43'], ['Ru', 'Ruthenium', '44'], ['Rh', 'Rhodium', '45'], ['Pd', 'Palladium', '46'], ['Ag', 'Silver', '47'], ['Cd', 'Cadmium', '48'], ['In', 'Indium', '49'], ['Sn', 'Tin', '50'], ['Sb', 'Antimony', '51'], ['Te', 'Tellurium', '52'], ['I', 'Iodine', '53'], ['Xe', 'Xenon', '54'], ['Cs', 'Caesium', '55'], ['Ba', 'Barium', '56'], ['La', 'Lanthanum', '57'], ['Ce', 'Cerium', '58'], ['Pr', 'Praseodymium', '59'], ['Nd', 'Neodymium', '60'], ['Pm', 'Promethium', '61'], ['Sm', 'Samarium', '62'], ['Eu', 'Europium', '63'], ['Gd', 'Gadolinium', '64'], ['Tb', 'Terbium', '65'], ['Dy', 'Dysprosium', '66'], ['Ho', 'Holmium', '67'], ['Er', 'Erbium', '68'], ['Tm', 'Thulium', '69'], ['Yb', 'Ytterbium', '70'], ['Lu', 'Lutetium', '71'], ['Hf', 'Hafnium', '72'], ['Ta', 'Tantalum', '73'], ['W', 'Tungsten', '74'], ['Re', 'Rhenium', '75'], ['Os', 'Osmium', '76'], ['Ir', 'Iridium', '77'], ['Pt', 'Platinum', '78'], ['Au', 'Gold', '79'], ['Hg', 'Mercury', '80'], ['Tl', 'Thallium', '81'], ['Pb', 'Lead', '82'], ['Bi', 'Bismuth', '83'], ['Po', 'Polonium', '84'], ['At', 'Astatine', '85'], ['Rn', 'Radon', '86'], ['Fr', 'Francium', '87'], ['Ra', 'Radium', '88'], ['Ac', 'Actinium', '89'], ['Th', 'Thorium', '90'], ['Pa', 'Protactinium', '91'], ['U', 'Uranium', '92'], ['Np', 'Neptunium', '93'], ['Pu', 'Plutonium', '94'], ['Am', 'Americium', '95'], ['Cm', 'Curium', '96'], ['Bk', 'Berkelium', '97'], ['Cf', 'Californium', '98'], ['Es', 'Einsteinium', '99'], ['Fm', 'Fermium', '100'], ['Md', 'Mendelevium', '101'], ['No', 'Nobelium', '102'], ['Lr', 'Lawrencium', '103'], ['Rf', 'Rutherfordium', '104'], ['Db', 'Dubnium', '105'], ['Sg', 'Seaborgium', '106'], ['Bh', 'Bohrium', '107'], ['Hs', 'Hassium', '108'], ['Mt', 'Meitnerium', '109'], ['Ds', 'Darmstadtium', '110'], ['Rg', 'Roentgenium', '111'], ['Cn', 'Copernicium', '112'], ['Nh', 'Nihonium', '113'], ['Fl', 'Flerovium', '114'], ['Mc', 'Moscovium', '115'], ['Lv', 'Livermorium', '116'], ['Ts', 'Tennessine', '117'], ['Og', 'Oganesson', '118'], ]) # The atomic weights below are arranged in the order of atomic number. # The elements with integer mass correspond to the elements with no stable isotopes. # Source: https://ptable.com/?lang=en#Properties Atomic_Weight = (None, # 0 1.008, # 1 4.0026, # 2 6.94, # 3 9.0122, # 4 10.81, # 5 12.011, # 6 14.007, # 7 15.999, # 8 18.998, # 9 20.180, # 10 22.990, # 11 24.305, # 12 26.982, # 13 28.085, # 14 30.974, # 15 32.06, # 16 35.45, # 17 39.948, # 18 39.098, # 19 40.078, # 20 44.956, # 21 47.867, # 22 50.942, # 23 51.996, # 24 54.938, # 25 55.845, # 26 58.933, # 27 58.693, # 28 63.546, # 29 65.38, # 30 69.723, # 31 72.630, # 32 74.922, # 33 78.971, # 34 79.904, # 35 83.798, # 36 85.468, # 37 87.62, # 38 88.906, # 39 91.224, # 40 92.906, # 41 95.95, # 42 98, # 43 101.07, # 44 102.91, # 45 106.42, # 46 107.87, # 47 112.41, # 48 114.82, # 49 118.71, # 50 121.76, # 51 127.60, # 52 126.90, # 53 131.29, # 54 132.91, # 55 137.33, # 56 138.91, # 57 140.12, # 58 140.91, # 59 144.24, # 60 145, # 61 150.36, # 62 151.96, # 63 157.25, # 64 158.93, # 65 162.50, # 66 164.93, # 67 167.26, # 68 168.93, # 69 173.05, # 70 174.97, # 71 178.49, # 72 180.95, # 73 183.84, # 74 186.21, # 75 190.23, # 76 192.22, # 77 195.08, # 78 196.97, # 79 200.59, # 80 204.38, # 81 207.2, # 82 208.98, # 83 209, # 84 210, # 85 222, # 86 223, # 87 226, # 88 227, # 89 232.04, # 90 231.04, # 91 238.03, # 92 237, # 93 244, # 94 243, # 95 247, # 96 247, # 97 251, # 98 252, # 99 257, # 100 258, # 101 259, # 102 266, # 103 267, # 104 268, # 105 269, # 106 270, # 107 277, # 108 278, # 109 281, # 110 282, # 111 285, # 112 286, # 113 289, # 114 290, # 115 293, # 116 294, # 117 294, # 118 )