1   
  2   
  3   
  4   
  5   
  6   
  7   
  8   
  9   
 10   
 11   
 12   
 13   
 14   
 15   
 16   
 17   
 18   
 19   
 20   
 21   
 22   
 23  """Module containing a Python object representation of the period table.""" 
 24   
 25   
 26  from lib.errors import RelaxError 
 27   
 28   
 30      """The periodic table object.""" 
 31   
 33          """Set up the object.""" 
 34   
 35           
 36          self.symbol = [] 
 37          self.name = [] 
  38   
 39   
 40 -    def add(self, Z=None, symbol=None, name=None): 
  41          """Add an element to the table. 
 42   
 43          @keyword Z:         The atomic number. 
 44          @type Z:            int 
 45          @keyword symbol:    The atomic symbol. 
 46          @type symbol:       str 
 47          @keyword name:      The chemical element name. 
 48          @type name:         str 
 49          """ 
 50   
 51           
 52          if Z != len(self.symbol)+1: 
 53              raise RelaxError("Incorrect setup.") 
 54   
 55           
 56          self.symbol.append(symbol) 
 57          self.name.append(name) 
  58   
 59   
 61          """Return the atomic symbol corresponding to the atomic number. 
 62   
 63          @keyword Z:         The atomic number. 
 64          @type Z:            int 
 65          @return:            The atomic symbol. 
 66          @rtype:             str 
 67          """ 
 68   
 69           
 70          return self.symbol[Z-1] 
   71   
 72   
 73   
 74   
 75  periodic_table = Table() 
 76   
 77   
 78  periodic_table.add(Z=1,   symbol='H',   name='Hydrogen') 
 79  periodic_table.add(Z=2,   symbol='He',  name='Helium') 
 80  periodic_table.add(Z=3,   symbol='Li',  name='Lithium') 
 81  periodic_table.add(Z=4,   symbol='Be',  name='Beryllium') 
 82  periodic_table.add(Z=5,   symbol='B',   name='Boron') 
 83  periodic_table.add(Z=6,   symbol='C',   name='Carbon') 
 84  periodic_table.add(Z=7,   symbol='N',   name='Nitrogen') 
 85  periodic_table.add(Z=8,   symbol='O',   name='Oxygen') 
 86  periodic_table.add(Z=9,   symbol='F',   name='Fluorine') 
 87  periodic_table.add(Z=10,  symbol='Ne',  name='Neon') 
 88  periodic_table.add(Z=11,  symbol='Na',  name='Sodium') 
 89  periodic_table.add(Z=12,  symbol='Mg',  name='Magnesium') 
 90  periodic_table.add(Z=13,  symbol='Al',  name='Aluminium') 
 91  periodic_table.add(Z=14,  symbol='Si',  name='Silicon') 
 92  periodic_table.add(Z=15,  symbol='P',   name='Phosphorus') 
 93  periodic_table.add(Z=16,  symbol='S',   name='Sulfur') 
 94  periodic_table.add(Z=17,  symbol='Cl',  name='Chlorine') 
 95  periodic_table.add(Z=18,  symbol='Ar',  name='Argon') 
 96  periodic_table.add(Z=19,  symbol='K',   name='Potassium') 
 97  periodic_table.add(Z=20,  symbol='Ca',  name='Calcium') 
 98  periodic_table.add(Z=21,  symbol='Sc',  name='Scandium') 
 99  periodic_table.add(Z=22,  symbol='Ti',  name='Titanium') 
100  periodic_table.add(Z=23,  symbol='V',   name='Vanadium') 
101  periodic_table.add(Z=24,  symbol='Cr',  name='Chromium') 
102  periodic_table.add(Z=25,  symbol='Mn',  name='Manganese') 
103  periodic_table.add(Z=26,  symbol='Fe',  name='Iron') 
104  periodic_table.add(Z=27,  symbol='Co',  name='Cobalt') 
105  periodic_table.add(Z=28,  symbol='Ni',  name='Nickel') 
106  periodic_table.add(Z=29,  symbol='Cu',  name='Copper') 
107  periodic_table.add(Z=30,  symbol='Zn',  name='Zinc') 
108  periodic_table.add(Z=31,  symbol='Ga',  name='Gallium') 
109  periodic_table.add(Z=32,  symbol='Ge',  name='Germanium') 
110  periodic_table.add(Z=33,  symbol='As',  name='Arsenic') 
111  periodic_table.add(Z=34,  symbol='Se',  name='Selenium') 
112  periodic_table.add(Z=35,  symbol='Br',  name='Bromine') 
113  periodic_table.add(Z=36,  symbol='Kr',  name='Krypton') 
114  periodic_table.add(Z=37,  symbol='Rb',  name='Rubidium') 
115  periodic_table.add(Z=38,  symbol='Sr',  name='Strontium') 
116  periodic_table.add(Z=39,  symbol='Y',   name='Yttrium') 
117  periodic_table.add(Z=40,  symbol='Zr',  name='Zirconium') 
118  periodic_table.add(Z=41,  symbol='Nb',  name='Niobium') 
119  periodic_table.add(Z=42,  symbol='Mo',  name='Molybdenum') 
120  periodic_table.add(Z=43,  symbol='Tc',  name='Technetium') 
121  periodic_table.add(Z=44,  symbol='Ru',  name='Ruthenium') 
122  periodic_table.add(Z=45,  symbol='Rh',  name='Rhodium') 
123  periodic_table.add(Z=46,  symbol='Pd',  name='Palladium') 
124  periodic_table.add(Z=47,  symbol='Ag',  name='Silver') 
125  periodic_table.add(Z=48,  symbol='Cd',  name='Cadmium') 
126  periodic_table.add(Z=49,  symbol='In',  name='Indium') 
127  periodic_table.add(Z=50,  symbol='Sn',  name='Tin') 
128  periodic_table.add(Z=51,  symbol='Sb',  name='Antimony') 
129  periodic_table.add(Z=52,  symbol='Te',  name='Tellurium') 
130  periodic_table.add(Z=53,  symbol='I',   name='Iodine') 
131  periodic_table.add(Z=54,  symbol='Xe',  name='Xenon') 
132  periodic_table.add(Z=55,  symbol='Cs',  name='Caesium') 
133  periodic_table.add(Z=56,  symbol='Ba',  name='Barium') 
134  periodic_table.add(Z=57,  symbol='La',  name='Lanthanum') 
135  periodic_table.add(Z=58,  symbol='Ce',  name='Cerium') 
136  periodic_table.add(Z=59,  symbol='Pr',  name='Praseodymium') 
137  periodic_table.add(Z=60,  symbol='Nd',  name='Neodymium') 
138  periodic_table.add(Z=61,  symbol='Pm',  name='Promethium') 
139  periodic_table.add(Z=62,  symbol='Sm',  name='Samarium') 
140  periodic_table.add(Z=63,  symbol='Eu',  name='Europium') 
141  periodic_table.add(Z=64,  symbol='Gd',  name='Gadolinium') 
142  periodic_table.add(Z=65,  symbol='Tb',  name='Terbium') 
143  periodic_table.add(Z=66,  symbol='Dy',  name='Dysprosium') 
144  periodic_table.add(Z=67,  symbol='Ho',  name='Holmium') 
145  periodic_table.add(Z=68,  symbol='Er',  name='Erbium') 
146  periodic_table.add(Z=69,  symbol='Tm',  name='Thulium') 
147  periodic_table.add(Z=70,  symbol='Yb',  name='Ytterbium') 
148  periodic_table.add(Z=71,  symbol='Lu',  name='Lutetium') 
149  periodic_table.add(Z=72,  symbol='Hf',  name='Hafnium') 
150  periodic_table.add(Z=73,  symbol='Ta',  name='Tantalum') 
151  periodic_table.add(Z=74,  symbol='W',   name='Tungsten') 
152  periodic_table.add(Z=75,  symbol='Re',  name='Rhenium') 
153  periodic_table.add(Z=76,  symbol='Os',  name='Osmium') 
154  periodic_table.add(Z=77,  symbol='Ir',  name='Iridium') 
155  periodic_table.add(Z=78,  symbol='Pt',  name='Platinum') 
156  periodic_table.add(Z=79,  symbol='Au',  name='Gold') 
157  periodic_table.add(Z=80,  symbol='Hg',  name='Mercury') 
158  periodic_table.add(Z=81,  symbol='Tl',  name='Thallium') 
159  periodic_table.add(Z=82,  symbol='Pb',  name='Lead') 
160  periodic_table.add(Z=83,  symbol='Bi',  name='Bismuth') 
161  periodic_table.add(Z=84,  symbol='Po',  name='Polonium') 
162  periodic_table.add(Z=85,  symbol='At',  name='Astatine') 
163  periodic_table.add(Z=86,  symbol='Rn',  name='Radon') 
164  periodic_table.add(Z=87,  symbol='Fr',  name='Francium') 
165  periodic_table.add(Z=88,  symbol='Ra',  name='Radium') 
166  periodic_table.add(Z=89,  symbol='Ac',  name='Actinium') 
167  periodic_table.add(Z=90,  symbol='Th',  name='Thorium') 
168  periodic_table.add(Z=91,  symbol='Pa',  name='Protactinium') 
169  periodic_table.add(Z=92,  symbol='U',   name='Uranium') 
170  periodic_table.add(Z=93,  symbol='Np',  name='Neptunium') 
171  periodic_table.add(Z=94,  symbol='Pu',  name='Plutonium') 
172  periodic_table.add(Z=95,  symbol='Am',  name='Americium') 
173  periodic_table.add(Z=96,  symbol='Cm',  name='Curium') 
174  periodic_table.add(Z=97,  symbol='Bk',  name='Berkelium') 
175  periodic_table.add(Z=98,  symbol='Cf',  name='Californium') 
176  periodic_table.add(Z=99,  symbol='Es',  name='Einsteinium') 
177  periodic_table.add(Z=100, symbol='Fm',  name='Fermium') 
178  periodic_table.add(Z=101, symbol='Md',  name='Mendelevium') 
179  periodic_table.add(Z=102, symbol='No',  name='Nobelium') 
180  periodic_table.add(Z=103, symbol='Lr',  name='Lawrencium') 
181  periodic_table.add(Z=104, symbol='Rf',  name='Rutherfordium') 
182  periodic_table.add(Z=105, symbol='Db',  name='Dubnium') 
183  periodic_table.add(Z=106, symbol='Sg',  name='Seaborgium') 
184  periodic_table.add(Z=107, symbol='Bh',  name='Bohrium') 
185  periodic_table.add(Z=108, symbol='Hs',  name='Hassium') 
186  periodic_table.add(Z=109, symbol='Mt',  name='Meitnerium') 
187  periodic_table.add(Z=110, symbol='Ds',  name='Darmstadtium') 
188  periodic_table.add(Z=111, symbol='Rg',  name='Roentgenium') 
189  periodic_table.add(Z=112, symbol='Cn',  name='Copernicium') 
190  periodic_table.add(Z=113, symbol='Uut', name='Ununtrium') 
191  periodic_table.add(Z=114, symbol='Fl',  name='Flerovium') 
192  periodic_table.add(Z=115, symbol='Uup', name='Ununpentium') 
193  periodic_table.add(Z=116, symbol='Lv',  name='Livermorium') 
194  periodic_table.add(Z=117, symbol='Uus', name='Ununseptium') 
195  periodic_table.add(Z=118, symbol='Uuo', name='Ununoctium') 
196