Author: bugman
Date: Thu Aug 28 11:08:50 2014
New Revision: 25371
URL: http://svn.gna.org/viewcvs/relax?rev=25371&view=rev
Log:
Added all of the IUPAC 2011 atomic weights to the lib.periodic_table module.
These will be useful for correctly calculating the centre of mass of a molecule.
Modified:
trunk/lib/periodic_table.py
Modified: trunk/lib/periodic_table.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/lib/periodic_table.py?rev=25371&r1=25370&r2=25371&view=diff
==============================================================================
--- trunk/lib/periodic_table.py (original)
+++ trunk/lib/periodic_table.py Thu Aug 28 11:08:50 2014
@@ -20,7 +20,12 @@
###############################################################################
# Module docstring.
-"""Module containing a Python object representation of the period table."""
+"""Module containing a Python object representation of the period table.
+
+The currently used atomic weights are from:
+
+ - Atomic weights of the elements 2011 (IUPAC Technical Report) (U{DOI:
10.1351/PAC-REP-13-03-02<http://dx.doi.org/10.1351/PAC-REP-13-03-02>).
+"""
# relax module imports.
from lib.errors import RelaxError
@@ -35,9 +40,11 @@
# Initialise some data structures.
self.symbol = []
self.name = []
-
-
- def add(self, atomic_number=None, symbol=None, name=None):
+ self.atomic_weights = []
+
+
+ def add(self, atomic_number=None, symbol=None, name=None,
atomic_weight=None):,
+ atomic_weight=""
"""Add an element to the table.
@keyword atomic_number: The atomic number.
@@ -46,6 +53,8 @@
@type symbol: str
@keyword name: The chemical element name.
@type name: str
+ @keyword atomic_weight: The atomic weight number for the atom.
This is a string as it uses the IUPAC notation of, for example, "[1.00784,
1.00811]" and "4.002602(2)" to represent ranges and uncertainty.
+ @type atomic_weight: str
"""
# Check that atomic_number is correctly ordered.
@@ -55,6 +64,7 @@
# Append the values.
self.symbol.append(symbol)
self.name.append(name)
+ self.atomic_weights.append(atomic_weight)
def lookup_symbol(self, atomic_number=None):
@@ -78,707 +88,825 @@
periodic_table.add(
atomic_number=1,
symbol='H',
- name='Hydrogen'
+ name='Hydrogen',
+ atomic_weight="[1.00784, 1.00811]"
)
periodic_table.add(
atomic_number=2,
symbol='He',
- name='Helium'
+ name='Helium',
+ atomic_weight="4.002602(2)"
)
periodic_table.add(
atomic_number=3,
symbol='Li',
- name='Lithium'
+ name='Lithium',
+ atomic_weight="[6.938, 6.997]"
)
periodic_table.add(
atomic_number=4,
symbol='Be',
- name='Beryllium'
+ name='Beryllium',
+ atomic_weight="9.012182(3)"
)
periodic_table.add(
atomic_number=5,
symbol='B',
- name='Boron'
+ name='Boron',
+ atomic_weight="[10.806, 10.821]"
)
periodic_table.add(
atomic_number=6,
symbol='C',
- name='Carbon'
+ name='Carbon',
+ atomic_weight="[12.0096, 12.0116]"
)
periodic_table.add(
atomic_number=7,
symbol='N',
- name='Nitrogen'
+ name='Nitrogen',
+ atomic_weight="[14.00643, 14.00728]"
)
periodic_table.add(
atomic_number=8,
symbol='O',
- name='Oxygen'
+ name='Oxygen',
+ atomic_weight="[15.99903, 15.99977]"
)
periodic_table.add(
atomic_number=9,
symbol='F',
- name='Fluorine'
+ name='Fluorine',
+ atomic_weight="18.9984032(5)"
)
periodic_table.add(
atomic_number=10,
symbol='Ne',
- name='Neon'
+ name='Neon',
+ atomic_weight="20.1797(6)"
)
periodic_table.add(
atomic_number=11,
symbol='Na',
- name='Sodium'
+ name='Sodium',
+ atomic_weight="22.98976928(2)"
)
periodic_table.add(
atomic_number=12,
symbol='Mg',
- name='Magnesium'
+ name='Magnesium',
+ atomic_weight="[24.304, 24.307]"
)
periodic_table.add(
atomic_number=13,
symbol='Al',
- name='Aluminium'
+ name='Aluminium',
+ atomic_weight="26.9815386(8)"
)
periodic_table.add(
atomic_number=14,
symbol='Si',
- name='Silicon'
+ name='Silicon',
+ atomic_weight="[28.084, 28.086]"
)
periodic_table.add(
atomic_number=15,
symbol='P',
- name='Phosphorus'
+ name='Phosphorus',
+ atomic_weight="30.973762(2)"
)
periodic_table.add(
atomic_number=16,
symbol='S',
- name='Sulfur'
+ name='Sulfur',
+ atomic_weight="[32.059, 32.076]"
)
periodic_table.add(
atomic_number=17,
symbol='Cl',
- name='Chlorine'
+ name='Chlorine',
+ atomic_weight="[35.446, 35.457]"
)
periodic_table.add(
atomic_number=18,
symbol='Ar',
- name='Argon'
+ name='Argon',
+ atomic_weight="39.948(1)"
)
periodic_table.add(
atomic_number=19,
symbol='K',
- name='Potassium'
+ name='Potassium',
+ atomic_weight="39.0983(1)"
)
periodic_table.add(
atomic_number=20,
symbol='Ca',
- name='Calcium'
+ name='Calcium',
+ atomic_weight="40.078(4)"
)
periodic_table.add(
atomic_number=21,
symbol='Sc',
- name='Scandium'
+ name='Scandium',
+ atomic_weight="44.955912(6)"
)
periodic_table.add(
atomic_number=22,
symbol='Ti',
- name='Titanium'
+ name='Titanium',
+ atomic_weight="47.867(1)"
)
periodic_table.add(
atomic_number=23,
symbol='V',
- name='Vanadium'
+ name='Vanadium',
+ atomic_weight="50.9415(1)"
)
periodic_table.add(
atomic_number=24,
symbol='Cr',
- name='Chromium'
+ name='Chromium',
+ atomic_weight="51.9961(6)"
)
periodic_table.add(
atomic_number=25,
symbol='Mn',
- name='Manganese'
+ name='Manganese',
+ atomic_weight="54.938045(5)"
)
periodic_table.add(
atomic_number=26,
symbol='Fe',
- name='Iron'
+ name='Iron',
+ atomic_weight="55.845(2)"
)
periodic_table.add(
atomic_number=27,
symbol='Co',
- name='Cobalt'
+ name='Cobalt',
+ atomic_weight="58.933195(5)"
)
periodic_table.add(
atomic_number=28,
symbol='Ni',
- name='Nickel'
+ name='Nickel',
+ atomic_weight="58.6934(4)"
)
periodic_table.add(
atomic_number=29,
symbol='Cu',
- name='Copper'
+ name='Copper',
+ atomic_weight="63.546(3)"
)
periodic_table.add(
atomic_number=30,
symbol='Zn',
- name='Zinc'
+ name='Zinc',
+ atomic_weight="65.38(2)"
)
periodic_table.add(
atomic_number=31,
symbol='Ga',
- name='Gallium'
+ name='Gallium',
+ atomic_weight="69.723(1)"
)
periodic_table.add(
atomic_number=32,
symbol='Ge',
- name='Germanium'
+ name='Germanium',
+ atomic_weight="72.630(8)"
)
periodic_table.add(
atomic_number=33,
symbol='As',
- name='Arsenic'
+ name='Arsenic',
+ atomic_weight="74.92160(2)"
)
periodic_table.add(
atomic_number=34,
symbol='Se',
- name='Selenium'
+ name='Selenium',
+ atomic_weight="78.96(3)"
)
periodic_table.add(
atomic_number=35,
symbol='Br',
- name='Bromine'
+ name='Bromine',
+ atomic_weight="[79.901, 79.907]"
)
periodic_table.add(
atomic_number=36,
symbol='Kr',
- name='Krypton'
+ name='Krypton',
+ atomic_weight="83.798(2)"
)
periodic_table.add(
atomic_number=37,
symbol='Rb',
- name='Rubidium'
+ name='Rubidium',
+ atomic_weight="85.4678(3)"
)
periodic_table.add(
atomic_number=38,
symbol='Sr',
- name='Strontium'
+ name='Strontium',
+ atomic_weight="87.62(1)"
)
periodic_table.add(
atomic_number=39,
symbol='Y',
- name='Yttrium'
+ name='Yttrium',
+ atomic_weight="88.90585(2)"
)
periodic_table.add(
atomic_number=40,
symbol='Zr',
- name='Zirconium'
+ name='Zirconium',
+ atomic_weight="91.224(2)"
)
periodic_table.add(
atomic_number=41,
symbol='Nb',
- name='Niobium'
+ name='Niobium',
+ atomic_weight="92.90638(2)"
)
periodic_table.add(
atomic_number=42,
symbol='Mo',
- name='Molybdenum'
+ name='Molybdenum',
+ atomic_weight="95.96(2)"
)
periodic_table.add(
atomic_number=43,
symbol='Tc',
- name='Technetium'
+ name='Technetium',
+ atomic_weight="[98]"
)
periodic_table.add(
atomic_number=44,
symbol='Ru',
- name='Ruthenium'
+ name='Ruthenium',
+ atomic_weight="101.07(2)"
)
periodic_table.add(
atomic_number=45,
symbol='Rh',
- name='Rhodium'
+ name='Rhodium',
+ atomic_weight="102.90550(2)"
)
periodic_table.add(
atomic_number=46,
symbol='Pd',
- name='Palladium'
+ name='Palladium',
+ atomic_weight="106.42(1)"
)
periodic_table.add(
atomic_number=47,
symbol='Ag',
- name='Silver'
+ name='Silver',
+ atomic_weight="107.8682(2)"
)
periodic_table.add(
atomic_number=48,
symbol='Cd',
- name='Cadmium'
+ name='Cadmium',
+ atomic_weight="112.411(8)"
)
periodic_table.add(
atomic_number=49,
symbol='In',
- name='Indium'
+ name='Indium',
+ atomic_weight="114.818(1)"
)
periodic_table.add(
atomic_number=50,
symbol='Sn',
- name='Tin'
+ name='Tin',
+ atomic_weight="118.710(7)"
)
periodic_table.add(
atomic_number=51,
symbol='Sb',
- name='Antimony'
+ name='Antimony',
+ atomic_weight="121.760(1)"
)
periodic_table.add(
atomic_number=52,
symbol='Te',
- name='Tellurium'
+ name='Tellurium',
+ atomic_weight="127.60(3)"
)
periodic_table.add(
atomic_number=53,
symbol='I',
- name='Iodine'
+ name='Iodine',
+ atomic_weight="126.90447(3)"
)
periodic_table.add(
atomic_number=54,
symbol='Xe',
- name='Xenon'
+ name='Xenon',
+ atomic_weight="131.293(6)"
)
periodic_table.add(
atomic_number=55,
symbol='Cs',
- name='Caesium'
+ name='Caesium',
+ atomic_weight="132.9054519(2)"
)
periodic_table.add(
atomic_number=56,
symbol='Ba',
- name='Barium'
+ name='Barium',
+ atomic_weight="137.327(7)"
)
periodic_table.add(
atomic_number=57,
symbol='La',
- name='Lanthanum'
+ name='Lanthanum',
+ atomic_weight="138.90547(7)"
)
periodic_table.add(
atomic_number=58,
symbol='Ce',
- name='Cerium'
+ name='Cerium',
+ atomic_weight="140.116(1)"
)
periodic_table.add(
atomic_number=59,
symbol='Pr',
- name='Praseodymium'
+ name='Praseodymium',
+ atomic_weight="140.90765(2)"
)
periodic_table.add(
atomic_number=60,
symbol='Nd',
- name='Neodymium'
+ name='Neodymium',
+ atomic_weight="144.242(3)"
)
periodic_table.add(
atomic_number=61,
symbol='Pm',
- name='Promethium'
+ name='Promethium',
+ atomic_weight="[145]"
)
periodic_table.add(
atomic_number=62,
symbol='Sm',
- name='Samarium'
+ name='Samarium',
+ atomic_weight="150.36(2)"
)
periodic_table.add(
atomic_number=63,
symbol='Eu',
- name='Europium'
+ name='Europium',
+ atomic_weight="151.964(1)"
)
periodic_table.add(
atomic_number=64,
symbol='Gd',
- name='Gadolinium'
+ name='Gadolinium',
+ atomic_weight="157.25(3)"
)
periodic_table.add(
atomic_number=65,
symbol='Tb',
- name='Terbium'
+ name='Terbium',
+ atomic_weight="158.92535(2)"
)
periodic_table.add(
atomic_number=66,
symbol='Dy',
- name='Dysprosium'
+ name='Dysprosium',
+ atomic_weight="162.500(1)"
)
periodic_table.add(
atomic_number=67,
symbol='Ho',
- name='Holmium'
+ name='Holmium',
+ atomic_weight="164.93032(2)"
)
periodic_table.add(
atomic_number=68,
symbol='Er',
- name='Erbium'
+ name='Erbium',
+ atomic_weight="167.259(3)"
)
periodic_table.add(
atomic_number=69,
symbol='Tm',
- name='Thulium'
+ name='Thulium',
+ atomic_weight="168.93421(2)"
)
periodic_table.add(
atomic_number=70,
symbol='Yb',
- name='Ytterbium'
+ name='Ytterbium',
+ atomic_weight="173.054(5)"
)
periodic_table.add(
atomic_number=71,
symbol='Lu',
- name='Lutetium'
+ name='Lutetium',
+ atomic_weight="174.9668(1)"
)
periodic_table.add(
atomic_number=72,
symbol='Hf',
- name='Hafnium'
+ name='Hafnium',
+ atomic_weight="178.49(2)"
)
periodic_table.add(
atomic_number=73,
symbol='Ta',
- name='Tantalum'
+ name='Tantalum',
+ atomic_weight="180.94788(2)"
)
periodic_table.add(
atomic_number=74,
symbol='W',
- name='Tungsten'
+ name='Tungsten',
+ atomic_weight="183.84(1)"
)
periodic_table.add(
atomic_number=75,
symbol='Re',
- name='Rhenium'
+ name='Rhenium',
+ atomic_weight="186.207(1)"
)
periodic_table.add(
atomic_number=76,
symbol='Os',
- name='Osmium'
+ name='Osmium',
+ atomic_weight="190.23(3)"
)
periodic_table.add(
atomic_number=77,
symbol='Ir',
- name='Iridium'
+ name='Iridium',
+ atomic_weight="192.217(3)"
)
periodic_table.add(
atomic_number=78,
symbol='Pt',
- name='Platinum'
+ name='Platinum',
+ atomic_weight="195.084(9)"
)
periodic_table.add(
atomic_number=79,
symbol='Au',
- name='Gold'
+ name='Gold',
+ atomic_weight="196.966569(4)"
)
periodic_table.add(
atomic_number=80,
symbol='Hg',
- name='Mercury'
+ name='Mercury',
+ atomic_weight="200.592(3)"
)
periodic_table.add(
atomic_number=81,
symbol='Tl',
- name='Thallium'
+ name='Thallium',
+ atomic_weight="[204.382, 204.385]"
)
periodic_table.add(
atomic_number=82,
symbol='Pb',
- name='Lead'
+ name='Lead',
+ atomic_weight="207.2(1)"
)
periodic_table.add(
atomic_number=83,
symbol='Bi',
- name='Bismuth'
+ name='Bismuth',
+ atomic_weight="208.98040(1)"
)
periodic_table.add(
atomic_number=84,
symbol='Po',
- name='Polonium'
+ name='Polonium',
+ atomic_weight="[209]"
)
periodic_table.add(
atomic_number=85,
symbol='At',
- name='Astatine'
+ name='Astatine',
+ atomic_weight="[210]"
)
periodic_table.add(
atomic_number=86,
symbol='Rn',
- name='Radon'
+ name='Radon',
+ atomic_weight="[222]"
)
periodic_table.add(
atomic_number=87,
symbol='Fr',
- name='Francium'
+ name='Francium',
+ atomic_weight="[223]"
)
periodic_table.add(
atomic_number=88,
symbol='Ra',
- name='Radium'
+ name='Radium',
+ atomic_weight="[226]"
)
periodic_table.add(
atomic_number=89,
symbol='Ac',
- name='Actinium'
+ name='Actinium',
+ atomic_weight="[227]"
)
periodic_table.add(
atomic_number=90,
symbol='Th',
- name='Thorium'
+ name='Thorium',
+ atomic_weight="232.03806(2)"
)
periodic_table.add(
atomic_number=91,
symbol='Pa',
- name='Protactinium'
+ name='Protactinium',
+ atomic_weight="231.03588(2)"
)
periodic_table.add(
atomic_number=92,
symbol='U',
- name='Uranium'
+ name='Uranium',
+ atomic_weight="238.02891(3)"
)
periodic_table.add(
atomic_number=93,
symbol='Np',
- name='Neptunium'
+ name='Neptunium',
+ atomic_weight="[237]"
)
periodic_table.add(
atomic_number=94,
symbol='Pu',
- name='Plutonium'
+ name='Plutonium',
+ atomic_weight="[244]"
)
periodic_table.add(
atomic_number=95,
symbol='Am',
- name='Americium'
+ name='Americium',
+ atomic_weight="[243]"
)
periodic_table.add(
atomic_number=96,
symbol='Cm',
- name='Curium'
+ name='Curium',
+ atomic_weight="[247]"
)
periodic_table.add(
atomic_number=97,
symbol='Bk',
- name='Berkelium'
+ name='Berkelium',
+ atomic_weight="[247]"
)
periodic_table.add(
atomic_number=98,
symbol='Cf',
- name='Californium'
+ name='Californium',
+ atomic_weight="[251]"
)
periodic_table.add(
atomic_number=99,
symbol='Es',
- name='Einsteinium'
+ name='Einsteinium',
+ atomic_weight="[252]"
)
periodic_table.add(
atomic_number=100,
symbol='Fm',
- name='Fermium'
+ name='Fermium',
+ atomic_weight="[257]"
)
periodic_table.add(
atomic_number=101,
symbol='Md',
- name='Mendelevium'
+ name='Mendelevium',
+ atomic_weight="[258]"
)
periodic_table.add(
atomic_number=102,
symbol='No',
- name='Nobelium'
+ name='Nobelium',
+ atomic_weight="[259]"
)
periodic_table.add(
atomic_number=103,
symbol='Lr',
- name='Lawrencium'
+ name='Lawrencium',
+ atomic_weight="[266]"
)
periodic_table.add(
atomic_number=104,
symbol='Rf',
- name='Rutherfordium'
+ name='Rutherfordium',
+ atomic_weight="[267]"
)
periodic_table.add(
atomic_number=105,
symbol='Db',
- name='Dubnium'
+ name='Dubnium',
+ atomic_weight="[268]"
)
periodic_table.add(
atomic_number=106,
symbol='Sg',
- name='Seaborgium'
+ name='Seaborgium',
+ atomic_weight="[269]"
)
periodic_table.add(
atomic_number=107,
symbol='Bh',
- name='Bohrium'
+ name='Bohrium',
+ atomic_weight="[270]"
)
periodic_table.add(
atomic_number=108,
symbol='Hs',
- name='Hassium'
+ name='Hassium',
+ atomic_weight="[269]"
)
periodic_table.add(
atomic_number=109,
symbol='Mt',
- name='Meitnerium'
+ name='Meitnerium',
+ atomic_weight="[278]"
)
periodic_table.add(
atomic_number=110,
symbol='Ds',
- name='Darmstadtium'
+ name='Darmstadtium',
+ atomic_weight="[281]"
)
periodic_table.add(
atomic_number=111,
symbol='Rg',
- name='Roentgenium'
+ name='Roentgenium',
+ atomic_weight="[281]"
)
periodic_table.add(
atomic_number=112,
symbol='Cn',
- name='Copernicium'
+ name='Copernicium',
+ atomic_weight="[285]"
)
periodic_table.add(
atomic_number=113,
symbol='Uut',
- name='Ununtrium'
+ name='Ununtrium',
+ atomic_weight="[286]"
)
periodic_table.add(
atomic_number=114,
symbol='Fl',
- name='Flerovium'
+ name='Flerovium',
+ atomic_weight="[289]"
)
periodic_table.add(
atomic_number=115,
symbol='Uup',
- name='Ununpentium'
+ name='Ununpentium',
+ atomic_weight="[289]"
)
periodic_table.add(
atomic_number=116,
symbol='Lv',
- name='Livermorium'
+ name='Livermorium',
+ atomic_weight="[293]"
)
periodic_table.add(
atomic_number=117,
symbol='Uus',
- name='Ununseptium'
+ name='Ununseptium',
+ atomic_weight="[294]"
)
periodic_table.add(
atomic_number=118,
symbol='Uuo',
- name='Ununoctium'
-)
+ name='Ununoctium',
+ atomic_weight="[294]"
+)
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-commits mailing list
[email protected]
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits