mailr25371 - /trunk/lib/periodic_table.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on August 28, 2014 - 11:08:
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]"
+)




Related Messages


Powered by MHonArc, Updated Thu Aug 28 11:20:03 2014