Package lib :: Module periodic_table
[hide private]
[frames] | no frames]

Source Code for Module lib.periodic_table

   1  ############################################################################### 
   2  #                                                                             # 
   3  # Copyright (C) 2013-2014 Edward d'Auvergne                                   # 
   4  #                                                                             # 
   5  # This file is part of the program relax (http://www.nmr-relax.com).          # 
   6  #                                                                             # 
   7  # This program is free software: you can redistribute it and/or modify        # 
   8  # it under the terms of the GNU General Public License as published by        # 
   9  # the Free Software Foundation, either version 3 of the License, or           # 
  10  # (at your option) any later version.                                         # 
  11  #                                                                             # 
  12  # This program is distributed in the hope that it will be useful,             # 
  13  # but WITHOUT ANY WARRANTY; without even the implied warranty of              # 
  14  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               # 
  15  # GNU General Public License for more details.                                # 
  16  #                                                                             # 
  17  # You should have received a copy of the GNU General Public License           # 
  18  # along with this program.  If not, see <http://www.gnu.org/licenses/>.       # 
  19  #                                                                             # 
  20  ############################################################################### 
  21   
  22  # Module docstring. 
  23  """Module containing a Python object representation of the period table. 
  24   
  25  The currently used atomic weights are from: 
  26   
  27      - 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>}). 
  28   
  29  The currently used isotope atomic masses are taken from U{http://www.ciaaw.org/atomic-masses.htm}, itself taken from: 
  30   
  31      - M. Wang et al. (2012).  The Ame2012 Atomic Mass Evaluation Chinese Physics C, 36, 1603-2014.  (U{DOI: 10.1088/1674-1137/36/12/003<http://dx.doi.org/10.1088/1674-1137/36/12/003>}). 
  32  """ 
  33   
  34  # Python module imports. 
  35  from numpy import array, average, float64 
  36  from re import search, split 
  37   
  38  # relax module imports. 
  39  from lib.errors import RelaxError 
  40   
  41   
42 -def isotope_to_mass_symbol(isotope):
43 """Convert the given isotope to its mass number and atomic symbol. 44 45 @param isotope: The isotope name, e.g. '15N'. 46 @type isotope: str 47 @return: The mass number A and atomic symbol. 48 @rtype: int, str 49 """ 50 51 # The mass number. 52 A = int(split('[A-Z]', isotope)[0]) 53 54 # The atomic symbol. 55 symbol = process_symbol(split('[0-9]', isotope)[-1]) 56 57 # Return the components. 58 return A, symbol
59 60
61 -def process_mass(mass):
62 """Process the given mass, handling ranges, unstable isotopes, and uncertainties. 63 64 @param mass: The atomic mass of standard atomic weight. 65 @type mass: str 66 @return: The corresponding mass. 67 @rtype: float 68 """ 69 70 # A range, or an unstable isotope. 71 if mass[0] == '[': 72 # Convert to a list. 73 vals = eval(mass) 74 75 # Use numpy to average the list, assuming equal weighting. 76 return average(array(vals, float64)) 77 78 # A mass with uncertainty. 79 else: 80 # Obtain the first part of the number. 81 val = mass.split('(')[0] 82 83 # Convert to a float and return the value. 84 return float(val)
85 86
87 -def process_symbol(symbol):
88 """Make sure the symbol is in the correct format. 89 90 @param symbol: The atomic symbol. 91 @type symbol: str 92 @return: The corrected atomic symbol. 93 @rtype: str 94 """ 95 96 # The format is uppercase first letter, lowercase second. 97 new_symbol = symbol[0].upper() 98 if len(symbol) == 2: 99 new_symbol += symbol[1].lower() 100 101 # Return the corrected atomic symbol. 102 return new_symbol
103 104 105
106 -class Element:
107 """A special object representing each element.""" 108
109 - def __init__(self, atomic_number=None, symbol=None, name=None, atomic_weight=None):
110 """Set up the element object. 111 112 @keyword atomic_number: The atomic number. 113 @type atomic_number: int 114 @keyword symbol: The atomic symbol. 115 @type symbol: str 116 @keyword name: The chemical element name. 117 @type name: str 118 @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. 119 @type atomic_weight: str 120 """ 121 122 # Store the values. 123 self.atomic_number = atomic_number 124 self.name = name 125 self.atomic_weight = atomic_weight 126 127 # Initialise the isotope information for the element. 128 self.isotopes = []
129 130
131 - def _add_isotope(self, A=None, atomic_mass=None, spin=None, gyromagnetic_ratio=None):
132 """Add the isotope information for the element. 133 134 @keyword A: The mass number of the isotope. 135 @type A: int 136 @keyword atomic_mass: The atomic mass of the isotope. This uses the string notation with the uncertainty specified in brackets at the end. 137 @type atomic_mass: str 138 @keyword spin: Nuclear spin or angular momentum of the isotope in units of h/2pi. 139 @type spin: int or float 140 @keyword gyromagnetic_ratio: The nuclear gyromagnetic ratio. 141 @type gyromagnetic_ratio: float 142 """ 143 144 # Create a new isotope container. 145 isotope = Isotope(A=A, atomic_mass=atomic_mass, spin=spin, gyromagnetic_ratio=gyromagnetic_ratio) 146 147 # Store it in the element container. 148 self.isotopes.append(isotope)
149 150 151
152 -class Isotope:
153 """A special object for the element container for holding different isotope information.""" 154
155 - def __init__(self, A=None, atomic_mass=None, spin=None, gyromagnetic_ratio=None):
156 """Set up the isotope object. 157 158 @keyword A: The mass number of the isotope. 159 @type A: int 160 @keyword atomic_mass: The atomic mass of the isotope. This uses the string notation with the uncertainty specified in brackets at the end. 161 @type atomic_mass: str 162 @keyword spin: Nuclear spin or angular momentum of the isotope in units of h/2pi. 163 @type spin: int or float 164 @keyword gyromagnetic_ratio: The nuclear gyromagnetic ratio. 165 @type gyromagnetic_ratio: float 166 """ 167 168 # Store the values. 169 self.A = A 170 self.atomic_mass = atomic_mass 171 self.spin = spin 172 self.gyromagnetic_ratio = gyromagnetic_ratio
173 174 175
176 -class Periodic_table(dict):
177 """The periodic table object.""" 178
179 - def __init__(self):
180 """Set up the periodic table object.""" 181 182 # Initialise a fast lookup table. 183 self._lookup_symbol = {}
184 185
186 - def _add(self, atomic_number=None, symbol=None, name=None, atomic_weight=None):
187 """Add an element to the table. 188 189 @keyword atomic_number: The atomic number Z. 190 @type atomic_number: int 191 @keyword symbol: The atomic symbol. 192 @type symbol: str 193 @keyword name: The chemical element name. 194 @type name: str 195 @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. 196 @type atomic_weight: str 197 @return: The element container object. 198 @rtype: Element instance 199 """ 200 201 # Add the element container. 202 self[symbol] = Element(atomic_number=atomic_number, name=name, atomic_weight=atomic_weight) 203 204 # Update the fast lookup tables. 205 self._lookup_symbol[atomic_number] = symbol 206 207 # Return the container. 208 return self[symbol]
209 210
211 - def _get_isotope(self, symbol=None, A=None):
212 """Return the matching isotope container. 213 214 @keyword symbol: The atomic symbol. 215 @type symbol: str 216 @keyword A: The mass number of the isotope. 217 @type A: int 218 """ 219 220 # The element container. 221 element = self[symbol] 222 223 # Find the isotope. 224 for isotope in element.isotopes: 225 # A match. 226 if isotope.A == A: 227 return isotope 228 229 # No isotope found. 230 raise RelaxError("The isotope '%i%s' cannot be found." % (A, symbol))
231 232
233 - def atomic_mass(self, id=None):
234 """Return the isotopic atomic mass or standard atomic weight as a float. 235 236 @keyword id: The atom or isotope identifier. To select isotopes, merge the mass number A with the symbol to form the ID. To select atoms, just set the ID to the atomic symbol. For example, '15N' selects the 15N nitrogen isotope, whereas 'N' selects the nitrogen atom. 237 @type id: str 238 @return: The isotopic atomic mass or the standard atomic weight. 239 @rtype: float 240 """ 241 242 # An isotope. 243 if search('[0-9]', id): 244 # Convert to the mass number and atomic symbol. 245 A, symbol = isotope_to_mass_symbol(id) 246 247 # Get the isotope container. 248 isotope = self._get_isotope(symbol=symbol, A=A) 249 250 # Return the processed mass. 251 return process_mass(isotope.atomic_mass) 252 253 # A normal atom. 254 else: 255 return self.atomic_weight(symbol=id)
256 257
258 - def atomic_weight(self, symbol=None):
259 """Return the standard atomic weight as a float for the given atom. 260 261 @keyword symbol: The atomic symbol. 262 @type symbol: str 263 @return: The standard atomic weight. 264 @rtype: float 265 """ 266 267 # Process the symbol. 268 symbol = process_symbol(symbol) 269 270 # Checks. 271 if symbol not in self: 272 raise RelaxError("The atomic symbol '%s' cannot be found in the periodic table." % symbol) 273 274 # Return the processed weight. 275 return process_mass(self[symbol].atomic_weight)
276 277
278 - def gyromagnetic_ratio(self, isotope=None):
279 """Return the gyromagnetic ratio for the isotope. 280 281 @keyword isotope: The isotope name, e.g. '15N'. 282 @type isotope: str 283 @raises RelaxError: If the nucleus type is unknown. 284 @returns: The desired gyromagnetic ratio. 285 @rtype: float 286 """ 287 288 # Convert to the mass number and atomic symbol. 289 A, symbol = isotope_to_mass_symbol(isotope) 290 291 # Get the isotope container. 292 isotope = self._get_isotope(symbol=symbol, A=A) 293 294 # Return the gyromagnetic ratio. 295 return isotope.gyromagnetic_ratio
296 297
298 - def has_element(self, symbol=None):
299 """Check if the periodic table contains an atom for the give symbol. 300 301 @keyword symbol: The atomic symbol. 302 @type symbol: str 303 @return: True if the symbol is in the periodic table, False otherwise. 304 @rtype: bool 305 """ 306 307 # Process the symbol. 308 symbol = process_symbol(symbol) 309 310 # Check. 311 if symbol in self: 312 return True 313 else: 314 return False
315 316
317 - def lookup_symbol(self, atomic_number=None):
318 """Return the atomic symbol corresponding to the atomic number Z. 319 320 @keyword atomic_number: The atomic number Z. 321 @type atomic_number: int 322 @return: The atomic symbol. 323 @rtype: str 324 """ 325 326 # Direct lookup. 327 return self._lookup_symbol[atomic_number]
328 329 330 331 # Initialise the table. 332 periodic_table = Periodic_table() 333 334 # Hydrogen. 335 element = periodic_table._add( 336 atomic_number=1, 337 symbol='H', 338 name='Hydrogen', 339 atomic_weight="[1.00784, 1.00811]" 340 ) 341 element._add_isotope( 342 A=1, 343 atomic_mass="1.0078250322(6)", 344 spin = 1/2., 345 gyromagnetic_ratio = 26.7522212 * 1e7 # Pales = 2.675198e+8 346 ) 347 element._add_isotope( 348 A=2, 349 atomic_mass="2.0141017781(8)", 350 spin = 1 351 ) 352 353 # Helium. 354 element = periodic_table._add( 355 atomic_number=2, 356 symbol='He', 357 name='Helium', 358 atomic_weight="4.002602(2)" 359 ) 360 element._add_isotope( 361 A=3, 362 atomic_mass="3.01602932(2)" 363 ) 364 element._add_isotope( 365 A=4, 366 atomic_mass="4.0026032541(4)" 367 ) 368 369 # Lithium. 370 element = periodic_table._add( 371 atomic_number=3, 372 symbol='Li', 373 name='Lithium', 374 atomic_weight="[6.938, 6.997]" 375 ) 376 element._add_isotope( 377 A=6, 378 atomic_mass="6.015122887(9)" 379 ) 380 element._add_isotope( 381 A=7, 382 atomic_mass="7.01600344(3)" 383 ) 384 385 # Beryllium. 386 element = periodic_table._add( 387 atomic_number=4, 388 symbol='Be', 389 name='Beryllium', 390 atomic_weight="9.012182(3)" 391 ) 392 element._add_isotope( 393 A=9, 394 atomic_mass="9.0121831(5)" 395 ) 396 397 # Boron. 398 element = periodic_table._add( 399 atomic_number=5, 400 symbol='B', 401 name='Boron', 402 atomic_weight="[10.806, 10.821]" 403 ) 404 element._add_isotope( 405 A=10, 406 atomic_mass="10.012937(3)" 407 ) 408 element._add_isotope( 409 A=11, 410 atomic_mass="11.009305(3)" 411 ) 412 413 # Carbon. 414 element = periodic_table._add( 415 atomic_number=6, 416 symbol='C', 417 name='Carbon', 418 atomic_weight="[12.0096, 12.0116]" 419 ) 420 element._add_isotope( 421 A=12, 422 atomic_mass="12.0" 423 ) 424 element._add_isotope( 425 A=13, 426 atomic_mass="13.003354835(2)", 427 spin = 1/2., 428 gyromagnetic_ratio = 6.728 * 1e7 429 ) 430 431 # Nitrogen. 432 element = periodic_table._add( 433 atomic_number=7, 434 symbol='N', 435 name='Nitrogen', 436 atomic_weight="[14.00643, 14.00728]" 437 ) 438 element._add_isotope( 439 A=14, 440 atomic_mass="14.003074004(2)" 441 ) 442 element._add_isotope( 443 A=15, 444 atomic_mass="15.000108899(4)", 445 spin = -1/2., 446 gyromagnetic_ratio = -2.7126 * 1e7 # Pales = -2.7116e+7 447 ) 448 449 # Oxygen. 450 element = periodic_table._add( 451 atomic_number=8, 452 symbol='O', 453 name='Oxygen', 454 atomic_weight="[15.99903, 15.99977]" 455 ) 456 element._add_isotope( 457 A=16, 458 atomic_mass="15.994914620(2)" 459 ) 460 element._add_isotope( 461 A=17, 462 atomic_mass="16.999131757(5)", 463 spin = 5/2., 464 gyromagnetic_ratio = -3.628 * 1e7 465 ) 466 element._add_isotope( 467 A=18, 468 atomic_mass="17.999159613(6)" 469 ) 470 471 # Fluorine. 472 element = periodic_table._add( 473 atomic_number=9, 474 symbol='F', 475 name='Fluorine', 476 atomic_weight="18.9984032(5)" 477 ) 478 element._add_isotope( 479 A=19, 480 atomic_mass="18.998403163(6)" 481 ) 482 483 # Neon. 484 element = periodic_table._add( 485 atomic_number=10, 486 symbol='Ne', 487 name='Neon', 488 atomic_weight="20.1797(6)" 489 ) 490 element._add_isotope( 491 A=20, 492 atomic_mass="19.99244018(2)" 493 ) 494 element._add_isotope( 495 A=21, 496 atomic_mass="20.9938467(3)" 497 ) 498 element._add_isotope( 499 A=22, 500 atomic_mass="21.9913851(2)" 501 ) 502 503 # Sodium. 504 element = periodic_table._add( 505 atomic_number=11, 506 symbol='Na', 507 name='Sodium', 508 atomic_weight="22.98976928(2)" 509 ) 510 element._add_isotope( 511 A=23, 512 atomic_mass="22.98976928(2)" 513 ) 514 515 # Magnesium. 516 element = periodic_table._add( 517 atomic_number=12, 518 symbol='Mg', 519 name='Magnesium', 520 atomic_weight="[24.304, 24.307]" 521 ) 522 element._add_isotope( 523 A=24, 524 atomic_mass="23.98504170(9)" 525 ) 526 element._add_isotope( 527 A=25, 528 atomic_mass="24.9858370(3)" 529 ) 530 element._add_isotope( 531 A=26, 532 atomic_mass="25.9825930(2)" 533 ) 534 535 # Aluminium. 536 element = periodic_table._add( 537 atomic_number=13, 538 symbol='Al', 539 name='Aluminium', 540 atomic_weight="26.9815386(8)" 541 ) 542 element._add_isotope( 543 A=27, 544 atomic_mass="26.9815385(7)" 545 ) 546 547 # Silicon. 548 element = periodic_table._add( 549 atomic_number=14, 550 symbol='Si', 551 name='Silicon', 552 atomic_weight="[28.084, 28.086]" 553 ) 554 element._add_isotope( 555 A=28, 556 atomic_mass="27.976926535(3)" 557 ) 558 element._add_isotope( 559 A=29, 560 atomic_mass="28.976494665(3)" 561 ) 562 element._add_isotope( 563 A=30, 564 atomic_mass="29.97377001(2)" 565 ) 566 567 # Phosphorus. 568 element = periodic_table._add( 569 atomic_number=15, 570 symbol='P', 571 name='Phosphorus', 572 atomic_weight="30.973762(2)" 573 ) 574 element._add_isotope( 575 A=31, 576 atomic_mass="30.973761998(5)", 577 spin = 1/2., 578 gyromagnetic_ratio = 10.841 * 1e7 579 ) 580 581 # Sulfur. 582 element = periodic_table._add( 583 atomic_number=16, 584 symbol='S', 585 name='Sulfur', 586 atomic_weight="[32.059, 32.076]" 587 ) 588 element._add_isotope( 589 A=32, 590 atomic_mass="31.972071174(9)" 591 ) 592 element._add_isotope( 593 A=33, 594 atomic_mass="32.971458910(9)" 595 ) 596 element._add_isotope( 597 A=34, 598 atomic_mass="33.9678670(3)" 599 ) 600 element._add_isotope( 601 A=36, 602 atomic_mass="35.967081(2)" 603 ) 604 605 # Chlorine. 606 element = periodic_table._add( 607 atomic_number=17, 608 symbol='Cl', 609 name='Chlorine', 610 atomic_weight="[35.446, 35.457]" 611 ) 612 element._add_isotope( 613 A=35, 614 atomic_mass="34.9688527(3)" 615 ) 616 element._add_isotope( 617 A=37, 618 atomic_mass="36.9659026(4)" 619 ) 620 621 # Argon. 622 element = periodic_table._add( 623 atomic_number=18, 624 symbol='Ar', 625 name='Argon', 626 atomic_weight="39.948(1)" 627 ) 628 element._add_isotope( 629 A=36, 630 atomic_mass="35.9675451(2)" 631 ) 632 element._add_isotope( 633 A=38, 634 atomic_mass="37.962732(2)" 635 ) 636 element._add_isotope( 637 A=40, 638 atomic_mass="39.96238312(2)" 639 ) 640 641 # Potassium. 642 element = periodic_table._add( 643 atomic_number=19, 644 symbol='K', 645 name='Potassium', 646 atomic_weight="39.0983(1)" 647 ) 648 element._add_isotope( 649 A=39, 650 atomic_mass="38.96370649(3)" 651 ) 652 element._add_isotope( 653 A=40, 654 atomic_mass="39.9639982(4)" 655 ) 656 element._add_isotope( 657 A=41, 658 atomic_mass="40.96182526(3)" 659 ) 660 661 # Calcium. 662 element = periodic_table._add( 663 atomic_number=20, 664 symbol='Ca', 665 name='Calcium', 666 atomic_weight="40.078(4)" 667 ) 668 element._add_isotope( 669 A=40, 670 atomic_mass="39.9625909(2)" 671 ) 672 element._add_isotope( 673 A=42, 674 atomic_mass="41.958618(1)" 675 ) 676 element._add_isotope( 677 A=43, 678 atomic_mass="42.958766(2)" 679 ) 680 element._add_isotope( 681 A=44, 682 atomic_mass="43.955482(2)" 683 ) 684 element._add_isotope( 685 A=46, 686 atomic_mass="45.95369(2)" 687 ) 688 element._add_isotope( 689 A=48, 690 atomic_mass="47.9525228(8)" 691 ) 692 693 # Scandium. 694 element = periodic_table._add( 695 atomic_number=21, 696 symbol='Sc', 697 name='Scandium', 698 atomic_weight="44.955912(6)" 699 ) 700 element._add_isotope( 701 A=45, 702 atomic_mass="44.955908(5)" 703 ) 704 705 # Titanium. 706 element = periodic_table._add( 707 atomic_number=22, 708 symbol='Ti', 709 name='Titanium', 710 atomic_weight="47.867(1)" 711 ) 712 element._add_isotope( 713 A=46, 714 atomic_mass="45.952628(3)" 715 ) 716 element._add_isotope( 717 A=47, 718 atomic_mass="46.951759(3)" 719 ) 720 element._add_isotope( 721 A=48, 722 atomic_mass="47.947942(3)" 723 ) 724 element._add_isotope( 725 A=49, 726 atomic_mass="48.947866(3)" 727 ) 728 element._add_isotope( 729 A=50, 730 atomic_mass="49.944787(3)" 731 ) 732 733 # Vanadium. 734 element = periodic_table._add( 735 atomic_number=23, 736 symbol='V', 737 name='Vanadium', 738 atomic_weight="50.9415(1)" 739 ) 740 element._add_isotope( 741 A=50, 742 atomic_mass="49.947156(6)" 743 ) 744 element._add_isotope( 745 A=51, 746 atomic_mass="50.943957(6)" 747 ) 748 749 # Chromium. 750 element = periodic_table._add( 751 atomic_number=24, 752 symbol='Cr', 753 name='Chromium', 754 atomic_weight="51.9961(6)" 755 ) 756 element._add_isotope( 757 A=50, 758 atomic_mass="49.946042(6)" 759 ) 760 element._add_isotope( 761 A=52, 762 atomic_mass="51.940506(4)" 763 ) 764 element._add_isotope( 765 A=53, 766 atomic_mass="52.940648(4)" 767 ) 768 element._add_isotope( 769 A=54, 770 atomic_mass="53.938879(4)" 771 ) 772 773 # Manganese. 774 element = periodic_table._add( 775 atomic_number=25, 776 symbol='Mn', 777 name='Manganese', 778 atomic_weight="54.938045(5)" 779 ) 780 element._add_isotope( 781 A=55, 782 atomic_mass="54.938044(3)" 783 ) 784 785 # Iron. 786 element = periodic_table._add( 787 atomic_number=26, 788 symbol='Fe', 789 name='Iron', 790 atomic_weight="55.845(2)" 791 ) 792 element._add_isotope( 793 A=54, 794 atomic_mass="53.939609(3)" 795 ) 796 element._add_isotope( 797 A=56, 798 atomic_mass="55.934936(3)" 799 ) 800 element._add_isotope( 801 A=57, 802 atomic_mass="56.935393(3)" 803 ) 804 element._add_isotope( 805 A=58, 806 atomic_mass="57.933274(3)" 807 ) 808 809 # Cobalt. 810 element = periodic_table._add( 811 atomic_number=27, 812 symbol='Co', 813 name='Cobalt', 814 atomic_weight="58.933195(5)" 815 ) 816 element._add_isotope( 817 A=59, 818 atomic_mass="58.933194(4)" 819 ) 820 821 # Nickel. 822 element = periodic_table._add( 823 atomic_number=28, 824 symbol='Ni', 825 name='Nickel', 826 atomic_weight="58.6934(4)" 827 ) 828 element._add_isotope( 829 A=58, 830 atomic_mass="57.935342(3)" 831 ) 832 element._add_isotope( 833 A=60, 834 atomic_mass="59.930786(3)" 835 ) 836 element._add_isotope( 837 A=61, 838 atomic_mass="60.931056(3)" 839 ) 840 element._add_isotope( 841 A=62, 842 atomic_mass="61.928345(4)" 843 ) 844 element._add_isotope( 845 A=64, 846 atomic_mass="63.927967(4)" 847 ) 848 849 # Copper. 850 element = periodic_table._add( 851 atomic_number=29, 852 symbol='Cu', 853 name='Copper', 854 atomic_weight="63.546(3)" 855 ) 856 element._add_isotope( 857 A=63, 858 atomic_mass="62.929598(4)" 859 ) 860 element._add_isotope( 861 A=65, 862 atomic_mass="64.927790(5)" 863 ) 864 865 # Zinc. 866 element = periodic_table._add( 867 atomic_number=30, 868 symbol='Zn', 869 name='Zinc', 870 atomic_weight="65.38(2)" 871 ) 872 element._add_isotope( 873 A=64, 874 atomic_mass="63.929142(5)" 875 ) 876 element._add_isotope( 877 A=66, 878 atomic_mass="65.926034(6)" 879 ) 880 element._add_isotope( 881 A=67, 882 atomic_mass="66.927128(6)" 883 ) 884 element._add_isotope( 885 A=68, 886 atomic_mass="67.924845(6)" 887 ) 888 element._add_isotope( 889 A=70, 890 atomic_mass="69.92532(2)" 891 ) 892 893 # Gallium. 894 element = periodic_table._add( 895 atomic_number=31, 896 symbol='Ga', 897 name='Gallium', 898 atomic_weight="69.723(1)" 899 ) 900 element._add_isotope( 901 A=69, 902 atomic_mass="68.925574(8) 71 70.924703(6)" 903 ) 904 905 # Germanium. 906 element = periodic_table._add( 907 atomic_number=32, 908 symbol='Ge', 909 name='Germanium', 910 atomic_weight="72.630(8)" 911 ) 912 element._add_isotope( 913 A=70, 914 atomic_mass="69.924249(6)" 915 ) 916 element._add_isotope( 917 A=72, 918 atomic_mass="71.9220758(5)" 919 ) 920 element._add_isotope( 921 A=73, 922 atomic_mass="72.9234590(4)" 923 ) 924 element._add_isotope( 925 A=74, 926 atomic_mass="73.92117776(9)" 927 ) 928 element._add_isotope( 929 A=76, 930 atomic_mass="75.9214027(2)" 931 ) 932 933 # Arsenic. 934 element = periodic_table._add( 935 atomic_number=33, 936 symbol='As', 937 name='Arsenic', 938 atomic_weight="74.92160(2)" 939 ) 940 element._add_isotope( 941 A=75, 942 atomic_mass="74.921595(6)" 943 ) 944 945 # Selenium. 946 element = periodic_table._add( 947 atomic_number=34, 948 symbol='Se', 949 name='Selenium', 950 atomic_weight="78.96(3)" 951 ) 952 element._add_isotope( 953 A=74, 954 atomic_mass="73.9224759(1)" 955 ) 956 element._add_isotope( 957 A=76, 958 atomic_mass="75.9192137(2)" 959 ) 960 element._add_isotope( 961 A=77, 962 atomic_mass="76.9199142(5)" 963 ) 964 element._add_isotope( 965 A=78, 966 atomic_mass="77.917309(2)" 967 ) 968 element._add_isotope( 969 A=80, 970 atomic_mass="79.916522(8)" 971 ) 972 element._add_isotope( 973 A=82, 974 atomic_mass="81.916700(9)" 975 ) 976 977 # Bromine. 978 element = periodic_table._add( 979 atomic_number=35, 980 symbol='Br', 981 name='Bromine', 982 atomic_weight="[79.901, 79.907]" 983 ) 984 element._add_isotope( 985 A=79, 986 atomic_mass="78.918338(9)" 987 ) 988 element._add_isotope( 989 A=81, 990 atomic_mass="80.916290(9)" 991 ) 992 993 # Krypton. 994 element = periodic_table._add( 995 atomic_number=36, 996 symbol='Kr', 997 name='Krypton', 998 atomic_weight="83.798(2)" 999 ) 1000 element._add_isotope( 1001 A=78, 1002 atomic_mass="77.920365(5)" 1003 ) 1004 element._add_isotope( 1005 A=80, 1006 atomic_mass="79.916378(5)" 1007 ) 1008 element._add_isotope( 1009 A=82, 1010 atomic_mass="81.913483(6)" 1011 ) 1012 element._add_isotope( 1013 A=83, 1014 atomic_mass="82.914127(2)" 1015 ) 1016 element._add_isotope( 1017 A=84, 1018 atomic_mass="83.91149773(3)" 1019 ) 1020 element._add_isotope( 1021 A=86, 1022 atomic_mass="85.91061063(3)" 1023 ) 1024 1025 # Rubidium. 1026 element = periodic_table._add( 1027 atomic_number=37, 1028 symbol='Rb', 1029 name='Rubidium', 1030 atomic_weight="85.4678(3)" 1031 ) 1032 element._add_isotope( 1033 A=85, 1034 atomic_mass="84.91178974(3)" 1035 ) 1036 element._add_isotope( 1037 A=87, 1038 atomic_mass="86.90918053(5)" 1039 ) 1040 1041 # Strontium. 1042 element = periodic_table._add( 1043 atomic_number=38, 1044 symbol='Sr', 1045 name='Strontium', 1046 atomic_weight="87.62(1)" 1047 ) 1048 element._add_isotope( 1049 A=84, 1050 atomic_mass="83.913419(8)" 1051 ) 1052 element._add_isotope( 1053 A=86, 1054 atomic_mass="85.909261(8)" 1055 ) 1056 element._add_isotope( 1057 A=87, 1058 atomic_mass="86.908878(8)" 1059 ) 1060 element._add_isotope( 1061 A=88, 1062 atomic_mass="87.905613(8)" 1063 ) 1064 1065 # Yttrium. 1066 element = periodic_table._add( 1067 atomic_number=39, 1068 symbol='Y', 1069 name='Yttrium', 1070 atomic_weight="88.90585(2)" 1071 ) 1072 element._add_isotope( 1073 A=89, 1074 atomic_mass="88.90584(2)" 1075 ) 1076 1077 # Zirconium. 1078 element = periodic_table._add( 1079 atomic_number=40, 1080 symbol='Zr', 1081 name='Zirconium', 1082 atomic_weight="91.224(2)" 1083 ) 1084 element._add_isotope( 1085 A=90, 1086 atomic_mass="89.90470(2)" 1087 ) 1088 element._add_isotope( 1089 A=91, 1090 atomic_mass="90.90564(2)" 1091 ) 1092 element._add_isotope( 1093 A=92, 1094 atomic_mass="91.90503(2)" 1095 ) 1096 element._add_isotope( 1097 A=94, 1098 atomic_mass="93.90631(2)" 1099 ) 1100 element._add_isotope( 1101 A=96, 1102 atomic_mass="95.90827(2)" 1103 ) 1104 1105 # Niobium. 1106 element = periodic_table._add( 1107 atomic_number=41, 1108 symbol='Nb', 1109 name='Niobium', 1110 atomic_weight="92.90638(2)" 1111 ) 1112 element._add_isotope( 1113 A=93, 1114 atomic_mass="92.90637(2)" 1115 ) 1116 1117 # Molybdenum. 1118 element = periodic_table._add( 1119 atomic_number=42, 1120 symbol='Mo', 1121 name='Molybdenum', 1122 atomic_weight="95.96(2)" 1123 ) 1124 element._add_isotope( 1125 A=92, 1126 atomic_mass="91.906808(5)" 1127 ) 1128 element._add_isotope( 1129 A=94, 1130 atomic_mass="93.905085(3)" 1131 ) 1132 element._add_isotope( 1133 A=95, 1134 atomic_mass="94.905839(3)" 1135 ) 1136 element._add_isotope( 1137 A=96, 1138 atomic_mass="95.904676(3)" 1139 ) 1140 element._add_isotope( 1141 A=97, 1142 atomic_mass="96.906018(3)" 1143 ) 1144 element._add_isotope( 1145 A=98, 1146 atomic_mass="97.905405(3)" 1147 ) 1148 element._add_isotope( 1149 A=100, 1150 atomic_mass="99.907472(7)" 1151 ) 1152 1153 # Technetium. 1154 element = periodic_table._add( 1155 atomic_number=43, 1156 symbol='Tc', 1157 name='Technetium', 1158 atomic_weight="[98]" 1159 ) 1160 element._add_isotope( 1161 A=98, 1162 atomic_mass="97.90721(3)" 1163 ) 1164 1165 # Ruthenium. 1166 element = periodic_table._add( 1167 atomic_number=44, 1168 symbol='Ru', 1169 name='Ruthenium', 1170 atomic_weight="101.07(2)" 1171 ) 1172 element._add_isotope( 1173 A=96, 1174 atomic_mass="95.907590(3)" 1175 ) 1176 element._add_isotope( 1177 A=98, 1178 atomic_mass="97.90529(5)" 1179 ) 1180 element._add_isotope( 1181 A=99, 1182 atomic_mass="98.905934(7)" 1183 ) 1184 element._add_isotope( 1185 A=100, 1186 atomic_mass="99.904214(7)" 1187 ) 1188 element._add_isotope( 1189 A=101, 1190 atomic_mass="100.905577(8)" 1191 ) 1192 element._add_isotope( 1193 A=102, 1194 atomic_mass="101.904344(8)" 1195 ) 1196 element._add_isotope( 1197 A=104, 1198 atomic_mass="103.90543(2)" 1199 ) 1200 1201 # Rhodium. 1202 element = periodic_table._add( 1203 atomic_number=45, 1204 symbol='Rh', 1205 name='Rhodium', 1206 atomic_weight="102.90550(2)" 1207 ) 1208 element._add_isotope( 1209 A=103, 1210 atomic_mass="102.90550(2)" 1211 ) 1212 1213 # Palladium. 1214 element = periodic_table._add( 1215 atomic_number=46, 1216 symbol='Pd', 1217 name='Palladium', 1218 atomic_weight="106.42(1)" 1219 ) 1220 element._add_isotope( 1221 A=102, 1222 atomic_mass="101.90560(2)" 1223 ) 1224 element._add_isotope( 1225 A=104, 1226 atomic_mass="103.904031(9)" 1227 ) 1228 element._add_isotope( 1229 A=105, 1230 atomic_mass="104.905080(8)" 1231 ) 1232 element._add_isotope( 1233 A=106, 1234 atomic_mass="105.903480(8)" 1235 ) 1236 element._add_isotope( 1237 A=108, 1238 atomic_mass="107.903892(8)" 1239 ) 1240 element._add_isotope( 1241 A=110, 1242 atomic_mass="109.905172(5)" 1243 ) 1244 1245 # Silver. 1246 element = periodic_table._add( 1247 atomic_number=47, 1248 symbol='Ag', 1249 name='Silver', 1250 atomic_weight="107.8682(2)" 1251 ) 1252 element._add_isotope( 1253 A=107, 1254 atomic_mass="106.90509(2)" 1255 ) 1256 element._add_isotope( 1257 A=109, 1258 atomic_mass="108.904755(9)" 1259 ) 1260 1261 # Cadmium. 1262 element = periodic_table._add( 1263 atomic_number=48, 1264 symbol='Cd', 1265 name='Cadmium', 1266 atomic_weight="112.411(8)" 1267 ) 1268 element._add_isotope( 1269 A=106, 1270 atomic_mass="105.906460(8)" 1271 ) 1272 element._add_isotope( 1273 A=108, 1274 atomic_mass="107.904183(8)" 1275 ) 1276 element._add_isotope( 1277 A=110, 1278 atomic_mass="109.903007(4)" 1279 ) 1280 element._add_isotope( 1281 A=111, 1282 atomic_mass="110.904183(4)" 1283 ) 1284 element._add_isotope( 1285 A=112, 1286 atomic_mass="111.902763(4)" 1287 ) 1288 element._add_isotope( 1289 A=113, 1290 atomic_mass="112.904408(3)" 1291 ) 1292 element._add_isotope( 1293 A=114, 1294 atomic_mass="113.903365(3)" 1295 ) 1296 element._add_isotope( 1297 A=116, 1298 atomic_mass="115.904763(2)" 1299 ) 1300 1301 # Indium. 1302 element = periodic_table._add( 1303 atomic_number=49, 1304 symbol='In', 1305 name='Indium', 1306 atomic_weight="114.818(1)" 1307 ) 1308 element._add_isotope( 1309 A=113, 1310 atomic_mass="112.904062(6)" 1311 ) 1312 element._add_isotope( 1313 A=115, 1314 atomic_mass="114.90387878(8)" 1315 ) 1316 1317 # Tin. 1318 element = periodic_table._add( 1319 atomic_number=50, 1320 symbol='Sn', 1321 name='Tin', 1322 atomic_weight="118.710(7)" 1323 ) 1324 element._add_isotope( 1325 A=112, 1326 atomic_mass="111.904824(4)" 1327 ) 1328 element._add_isotope( 1329 A=114, 1330 atomic_mass="113.902783(6)" 1331 ) 1332 element._add_isotope( 1333 A=115, 1334 atomic_mass="114.9033447(1)" 1335 ) 1336 element._add_isotope( 1337 A=116, 1338 atomic_mass="115.901743(1)" 1339 ) 1340 element._add_isotope( 1341 A=117, 1342 atomic_mass="116.902954(3)" 1343 ) 1344 element._add_isotope( 1345 A=118, 1346 atomic_mass="117.901607(3)" 1347 ) 1348 element._add_isotope( 1349 A=119, 1350 atomic_mass="118.903311(5)" 1351 ) 1352 element._add_isotope( 1353 A=120, 1354 atomic_mass="119.902202(6)" 1355 ) 1356 element._add_isotope( 1357 A=122, 1358 atomic_mass="121.90344(2)" 1359 ) 1360 element._add_isotope( 1361 A=124, 1362 atomic_mass="123.905277(7)" 1363 ) 1364 1365 # Antimony. 1366 element = periodic_table._add( 1367 atomic_number=51, 1368 symbol='Sb', 1369 name='Antimony', 1370 atomic_weight="121.760(1)" 1371 ) 1372 element._add_isotope( 1373 A=121, 1374 atomic_mass="120.90381(2)" 1375 ) 1376 element._add_isotope( 1377 A=123, 1378 atomic_mass="122.90421(2)" 1379 ) 1380 1381 # Tellurium. 1382 element = periodic_table._add( 1383 atomic_number=52, 1384 symbol='Te', 1385 name='Tellurium', 1386 atomic_weight="127.60(3)" 1387 ) 1388 element._add_isotope( 1389 A=120, 1390 atomic_mass="119.90406(2)" 1391 ) 1392 element._add_isotope( 1393 A=122, 1394 atomic_mass="121.90304(1)" 1395 ) 1396 element._add_isotope( 1397 A=123, 1398 atomic_mass="122.90427(1)" 1399 ) 1400 element._add_isotope( 1401 A=124, 1402 atomic_mass="123.90282(1)" 1403 ) 1404 element._add_isotope( 1405 A=125, 1406 atomic_mass="124.90443(1)" 1407 ) 1408 element._add_isotope( 1409 A=126, 1410 atomic_mass="125.90331(1)" 1411 ) 1412 element._add_isotope( 1413 A=128, 1414 atomic_mass="127.904461(6)" 1415 ) 1416 element._add_isotope( 1417 A=130, 1418 atomic_mass="129.90622275(8)" 1419 ) 1420 1421 # Iodine. 1422 element = periodic_table._add( 1423 atomic_number=53, 1424 symbol='I', 1425 name='Iodine', 1426 atomic_weight="126.90447(3)" 1427 ) 1428 element._add_isotope( 1429 A=127, 1430 atomic_mass="126.90447(3)" 1431 ) 1432 1433 # Xenon. 1434 element = periodic_table._add( 1435 atomic_number=54, 1436 symbol='Xe', 1437 name='Xenon', 1438 atomic_weight="131.293(6)" 1439 ) 1440 element._add_isotope( 1441 A=124, 1442 atomic_mass="123.90589(2)" 1443 ) 1444 element._add_isotope( 1445 A=126, 1446 atomic_mass="125.90430(3)" 1447 ) 1448 element._add_isotope( 1449 A=128, 1450 atomic_mass="127.903531(7)" 1451 ) 1452 element._add_isotope( 1453 A=129, 1454 atomic_mass="128.90478086(4)" 1455 ) 1456 element._add_isotope( 1457 A=130, 1458 atomic_mass="129.9035094(1)" 1459 ) 1460 element._add_isotope( 1461 A=131, 1462 atomic_mass="130.905084(2)" 1463 ) 1464 element._add_isotope( 1465 A=132, 1466 atomic_mass="131.90415509(4)" 1467 ) 1468 element._add_isotope( 1469 A=134, 1470 atomic_mass="133.905395(6)" 1471 ) 1472 element._add_isotope( 1473 A=136, 1474 atomic_mass="135.90721448(7)" 1475 ) 1476 1477 # Caesium. 1478 element = periodic_table._add( 1479 atomic_number=55, 1480 symbol='Cs', 1481 name='Caesium', 1482 atomic_weight="132.9054519(2)" 1483 ) 1484 element._add_isotope( 1485 A=133, 1486 atomic_mass="132.90545196(6)" 1487 ) 1488 1489 # Barium. 1490 element = periodic_table._add( 1491 atomic_number=56, 1492 symbol='Ba', 1493 name='Barium', 1494 atomic_weight="137.327(7)" 1495 ) 1496 element._add_isotope( 1497 A=130, 1498 atomic_mass="129.90632(2)" 1499 ) 1500 element._add_isotope( 1501 A=132, 1502 atomic_mass="131.905061(7)" 1503 ) 1504 element._add_isotope( 1505 A=134, 1506 atomic_mass="133.904508(2)" 1507 ) 1508 element._add_isotope( 1509 A=135, 1510 atomic_mass="134.905688(2)" 1511 ) 1512 element._add_isotope( 1513 A=136, 1514 atomic_mass="135.904576(2)" 1515 ) 1516 element._add_isotope( 1517 A=137, 1518 atomic_mass="136.905827(2)" 1519 ) 1520 element._add_isotope( 1521 A=138, 1522 atomic_mass="137.905247(2)" 1523 ) 1524 1525 # Lanthanum. 1526 element = periodic_table._add( 1527 atomic_number=57, 1528 symbol='La', 1529 name='Lanthanum', 1530 atomic_weight="138.90547(7)" 1531 ) 1532 element._add_isotope( 1533 A=138, 1534 atomic_mass="137.90712(3)" 1535 ) 1536 element._add_isotope( 1537 A=139, 1538 atomic_mass="138.90636(2)" 1539 ) 1540 1541 # Cerium. 1542 element = periodic_table._add( 1543 atomic_number=58, 1544 symbol='Ce', 1545 name='Cerium', 1546 atomic_weight="140.116(1)" 1547 ) 1548 element._add_isotope( 1549 A=136, 1550 atomic_mass="135.907129(3)" 1551 ) 1552 element._add_isotope( 1553 A=138, 1554 atomic_mass="137.90599(7)" 1555 ) 1556 element._add_isotope( 1557 A=140, 1558 atomic_mass="139.90544(2)" 1559 ) 1560 element._add_isotope( 1561 A=142, 1562 atomic_mass="141.90925(2)" 1563 ) 1564 1565 # Praseodymium. 1566 element = periodic_table._add( 1567 atomic_number=59, 1568 symbol='Pr', 1569 name='Praseodymium', 1570 atomic_weight="140.90765(2)" 1571 ) 1572 element._add_isotope( 1573 A=141, 1574 atomic_mass="140.90766(2)" 1575 ) 1576 1577 # Neodymium. 1578 element = periodic_table._add( 1579 atomic_number=60, 1580 symbol='Nd', 1581 name='Neodymium', 1582 atomic_weight="144.242(3)" 1583 ) 1584 element._add_isotope( 1585 A=142, 1586 atomic_mass="141.90773(2)" 1587 ) 1588 element._add_isotope( 1589 A=143, 1590 atomic_mass="142.90982(2)" 1591 ) 1592 element._add_isotope( 1593 A=144, 1594 atomic_mass="143.91009(2)" 1595 ) 1596 element._add_isotope( 1597 A=145, 1598 atomic_mass="144.91258(2)" 1599 ) 1600 element._add_isotope( 1601 A=146, 1602 atomic_mass="145.91312(2)" 1603 ) 1604 element._add_isotope( 1605 A=148, 1606 atomic_mass="147.91690(2)" 1607 ) 1608 element._add_isotope( 1609 A=150, 1610 atomic_mass="149.92090(2)" 1611 ) 1612 1613 # Promethium. 1614 element = periodic_table._add( 1615 atomic_number=61, 1616 symbol='Pm', 1617 name='Promethium', 1618 atomic_weight="[145]" 1619 ) 1620 element._add_isotope( 1621 A=145, 1622 atomic_mass="144.91276(2)" 1623 ) 1624 1625 # Samarium. 1626 element = periodic_table._add( 1627 atomic_number=62, 1628 symbol='Sm', 1629 name='Samarium', 1630 atomic_weight="150.36(2)" 1631 ) 1632 element._add_isotope( 1633 A=144, 1634 atomic_mass="143.91201(2)" 1635 ) 1636 element._add_isotope( 1637 A=147, 1638 atomic_mass="146.91490(2)" 1639 ) 1640 element._add_isotope( 1641 A=148, 1642 atomic_mass="147.91483(2)" 1643 ) 1644 element._add_isotope( 1645 A=149, 1646 atomic_mass="148.91719(2)" 1647 ) 1648 element._add_isotope( 1649 A=150, 1650 atomic_mass="149.91728(2)" 1651 ) 1652 element._add_isotope( 1653 A=152, 1654 atomic_mass="151.91974(2)" 1655 ) 1656 element._add_isotope( 1657 A=154, 1658 atomic_mass="153.92222(2)" 1659 ) 1660 1661 # Europium. 1662 element = periodic_table._add( 1663 atomic_number=63, 1664 symbol='Eu', 1665 name='Europium', 1666 atomic_weight="151.964(1)" 1667 ) 1668 element._add_isotope( 1669 A=151, 1670 atomic_mass="150.91986(2)" 1671 ) 1672 element._add_isotope( 1673 A=153, 1674 atomic_mass="152.92124(2)" 1675 ) 1676 1677 # Gadolinium. 1678 element = periodic_table._add( 1679 atomic_number=64, 1680 symbol='Gd', 1681 name='Gadolinium', 1682 atomic_weight="157.25(3)" 1683 ) 1684 element._add_isotope( 1685 A=152, 1686 atomic_mass="151.91980(2)" 1687 ) 1688 element._add_isotope( 1689 A=154, 1690 atomic_mass="153.92087(2)" 1691 ) 1692 element._add_isotope( 1693 A=155, 1694 atomic_mass="154.92263(2)" 1695 ) 1696 element._add_isotope( 1697 A=156, 1698 atomic_mass="155.92213(2)" 1699 ) 1700 element._add_isotope( 1701 A=157, 1702 atomic_mass="156.92397(2)" 1703 ) 1704 element._add_isotope( 1705 A=158, 1706 atomic_mass="157.92411(2)" 1707 ) 1708 element._add_isotope( 1709 A=160, 1710 atomic_mass="159.92706(2)" 1711 ) 1712 1713 # Terbium. 1714 element = periodic_table._add( 1715 atomic_number=65, 1716 symbol='Tb', 1717 name='Terbium', 1718 atomic_weight="158.92535(2)" 1719 ) 1720 element._add_isotope( 1721 A=159, 1722 atomic_mass="158.92535(2)" 1723 ) 1724 1725 # Dysprosium. 1726 element = periodic_table._add( 1727 atomic_number=66, 1728 symbol='Dy', 1729 name='Dysprosium', 1730 atomic_weight="162.500(1)" 1731 ) 1732 element._add_isotope( 1733 A=156, 1734 atomic_mass="155.92428(2)" 1735 ) 1736 element._add_isotope( 1737 A=158, 1738 atomic_mass="157.92442(2)" 1739 ) 1740 element._add_isotope( 1741 A=160, 1742 atomic_mass="159.92520(2)" 1743 ) 1744 element._add_isotope( 1745 A=161, 1746 atomic_mass="160.92694(2)" 1747 ) 1748 element._add_isotope( 1749 A=162, 1750 atomic_mass="161.92681(2)" 1751 ) 1752 element._add_isotope( 1753 A=163, 1754 atomic_mass="162.92874(2)" 1755 ) 1756 element._add_isotope( 1757 A=164, 1758 atomic_mass="163.92918(2)" 1759 ) 1760 1761 # Holmium. 1762 element = periodic_table._add( 1763 atomic_number=67, 1764 symbol='Ho', 1765 name='Holmium', 1766 atomic_weight="164.93032(2)" 1767 ) 1768 element._add_isotope( 1769 A=165, 1770 atomic_mass="164.93033(2)" 1771 ) 1772 1773 # Erbium. 1774 element = periodic_table._add( 1775 atomic_number=68, 1776 symbol='Er', 1777 name='Erbium', 1778 atomic_weight="167.259(3)" 1779 ) 1780 element._add_isotope( 1781 A=162, 1782 atomic_mass="161.92879(2)" 1783 ) 1784 element._add_isotope( 1785 A=164, 1786 atomic_mass="163.92921(2)" 1787 ) 1788 element._add_isotope( 1789 A=166, 1790 atomic_mass="165.93030(2)" 1791 ) 1792 element._add_isotope( 1793 A=167, 1794 atomic_mass="166.93205(2)" 1795 ) 1796 element._add_isotope( 1797 A=168, 1798 atomic_mass="167.93238(2)" 1799 ) 1800 element._add_isotope( 1801 A=170, 1802 atomic_mass="169.93547(2)" 1803 ) 1804 1805 # Thulium. 1806 element = periodic_table._add( 1807 atomic_number=69, 1808 symbol='Tm', 1809 name='Thulium', 1810 atomic_weight="168.93421(2)" 1811 ) 1812 element._add_isotope( 1813 A=169, 1814 atomic_mass="168.93422(2)" 1815 ) 1816 1817 # Ytterbium. 1818 element = periodic_table._add( 1819 atomic_number=70, 1820 symbol='Yb', 1821 name='Ytterbium', 1822 atomic_weight="173.054(5)" 1823 ) 1824 element._add_isotope( 1825 A=168, 1826 atomic_mass="167.93389(2)" 1827 ) 1828 element._add_isotope( 1829 A=170, 1830 atomic_mass="169.93477(2)" 1831 ) 1832 element._add_isotope( 1833 A=171, 1834 atomic_mass="170.93633(2)" 1835 ) 1836 element._add_isotope( 1837 A=172, 1838 atomic_mass="171.93639(2)" 1839 ) 1840 element._add_isotope( 1841 A=173, 1842 atomic_mass="172.93822(2)" 1843 ) 1844 element._add_isotope( 1845 A=174, 1846 atomic_mass="173.93887(2)" 1847 ) 1848 element._add_isotope( 1849 A=176, 1850 atomic_mass="175.94258(2)" 1851 ) 1852 1853 # Lutetium. 1854 element = periodic_table._add( 1855 atomic_number=71, 1856 symbol='Lu', 1857 name='Lutetium', 1858 atomic_weight="174.9668(1)" 1859 ) 1860 element._add_isotope( 1861 A=175, 1862 atomic_mass="174.94078(2)" 1863 ) 1864 element._add_isotope( 1865 A=176, 1866 atomic_mass="175.94269(2)" 1867 ) 1868 1869 # Hafnium. 1870 element = periodic_table._add( 1871 atomic_number=72, 1872 symbol='Hf', 1873 name='Hafnium', 1874 atomic_weight="178.49(2)" 1875 ) 1876 element._add_isotope( 1877 A=174, 1878 atomic_mass="173.94005(2)" 1879 ) 1880 element._add_isotope( 1881 A=176, 1882 atomic_mass="175.94141(2)" 1883 ) 1884 element._add_isotope( 1885 A=177, 1886 atomic_mass="176.94323(2)" 1887 ) 1888 element._add_isotope( 1889 A=178, 1890 atomic_mass="177.94371(2)" 1891 ) 1892 element._add_isotope( 1893 A=179, 1894 atomic_mass="178.94582(2)" 1895 ) 1896 element._add_isotope( 1897 A=180, 1898 atomic_mass="179.94656(2)" 1899 ) 1900 1901 # Tantalum. 1902 element = periodic_table._add( 1903 atomic_number=73, 1904 symbol='Ta', 1905 name='Tantalum', 1906 atomic_weight="180.94788(2)" 1907 ) 1908 element._add_isotope( 1909 A=180, 1910 atomic_mass="179.94746(2)" 1911 ) 1912 element._add_isotope( 1913 A=181, 1914 atomic_mass="180.94800(2)" 1915 ) 1916 1917 # Tungsten. 1918 element = periodic_table._add( 1919 atomic_number=74, 1920 symbol='W', 1921 name='Tungsten', 1922 atomic_weight="183.84(1)" 1923 ) 1924 element._add_isotope( 1925 A=180, 1926 atomic_mass="179.94671(2)" 1927 ) 1928 element._add_isotope( 1929 A=182, 1930 atomic_mass="181.948204(6)" 1931 ) 1932 element._add_isotope( 1933 A=183, 1934 atomic_mass="182.950223(6)" 1935 ) 1936 element._add_isotope( 1937 A=184, 1938 atomic_mass="183.950931(6)" 1939 ) 1940 element._add_isotope( 1941 A=186, 1942 atomic_mass="185.95436(2)" 1943 ) 1944 1945 # Rhenium. 1946 element = periodic_table._add( 1947 atomic_number=75, 1948 symbol='Re', 1949 name='Rhenium', 1950 atomic_weight="186.207(1)" 1951 ) 1952 element._add_isotope( 1953 A=185, 1954 atomic_mass="184.952955(8)" 1955 ) 1956 element._add_isotope( 1957 A=187, 1958 atomic_mass="186.95575(1)" 1959 ) 1960 1961 # Osmium. 1962 element = periodic_table._add( 1963 atomic_number=76, 1964 symbol='Os', 1965 name='Osmium', 1966 atomic_weight="190.23(3)" 1967 ) 1968 element._add_isotope( 1969 A=184, 1970 atomic_mass="183.952489(9)" 1971 ) 1972 element._add_isotope( 1973 A=186, 1974 atomic_mass="185.95384(1)" 1975 ) 1976 element._add_isotope( 1977 A=187, 1978 atomic_mass="186.95575(1)" 1979 ) 1980 element._add_isotope( 1981 A=188, 1982 atomic_mass="187.95584(1)" 1983 ) 1984 element._add_isotope( 1985 A=189, 1986 atomic_mass="188.95814(2)" 1987 ) 1988 element._add_isotope( 1989 A=190, 1990 atomic_mass="189.95844(2)" 1991 ) 1992 element._add_isotope( 1993 A=192, 1994 atomic_mass="191.96148(2)" 1995 ) 1996 1997 # Iridium. 1998 element = periodic_table._add( 1999 atomic_number=77, 2000 symbol='Ir', 2001 name='Iridium', 2002 atomic_weight="192.217(3)" 2003 ) 2004 element._add_isotope( 2005 A=191, 2006 atomic_mass="190.96059(2)" 2007 ) 2008 element._add_isotope( 2009 A=193, 2010 atomic_mass="192.96292(2)" 2011 ) 2012 2013 # Platinum. 2014 element = periodic_table._add( 2015 atomic_number=78, 2016 symbol='Pt', 2017 name='Platinum', 2018 atomic_weight="195.084(9)" 2019 ) 2020 element._add_isotope( 2021 A=190, 2022 atomic_mass="189.95993(4)" 2023 ) 2024 element._add_isotope( 2025 A=192, 2026 atomic_mass="191.96104(2)" 2027 ) 2028 element._add_isotope( 2029 A=194, 2030 atomic_mass="193.962681(6)" 2031 ) 2032 element._add_isotope( 2033 A=195, 2034 atomic_mass="194.964792(6)" 2035 ) 2036 element._add_isotope( 2037 A=196, 2038 atomic_mass="195.964952(6)" 2039 ) 2040 element._add_isotope( 2041 A=198, 2042 atomic_mass="197.96789(2)" 2043 ) 2044 2045 # Gold. 2046 element = periodic_table._add( 2047 atomic_number=79, 2048 symbol='Au', 2049 name='Gold', 2050 atomic_weight="196.966569(4)" 2051 ) 2052 element._add_isotope( 2053 A=197, 2054 atomic_mass="196.966569(5)" 2055 ) 2056 2057 # Mercury. 2058 element = periodic_table._add( 2059 atomic_number=80, 2060 symbol='Hg', 2061 name='Mercury', 2062 atomic_weight="200.592(3)" 2063 ) 2064 element._add_isotope( 2065 A=196, 2066 atomic_mass="195.96583(2)" 2067 ) 2068 element._add_isotope( 2069 A=198, 2070 atomic_mass="197.966769(3)" 2071 ) 2072 element._add_isotope( 2073 A=199, 2074 atomic_mass="198.968281(3)" 2075 ) 2076 element._add_isotope( 2077 A=200, 2078 atomic_mass="199.968327(3)" 2079 ) 2080 element._add_isotope( 2081 A=201, 2082 atomic_mass="200.970303(5)" 2083 ) 2084 element._add_isotope( 2085 A=202, 2086 atomic_mass="201.970643(5)" 2087 ) 2088 element._add_isotope( 2089 A=204, 2090 atomic_mass="203.973494(3)" 2091 ) 2092 2093 # Thallium. 2094 element = periodic_table._add( 2095 atomic_number=81, 2096 symbol='Tl', 2097 name='Thallium', 2098 atomic_weight="[204.382, 204.385]" 2099 ) 2100 element._add_isotope( 2101 A=203, 2102 atomic_mass="202.972345(9)" 2103 ) 2104 element._add_isotope( 2105 A=205, 2106 atomic_mass="204.974428(9)" 2107 ) 2108 2109 # Lead. 2110 element = periodic_table._add( 2111 atomic_number=82, 2112 symbol='Pb', 2113 name='Lead', 2114 atomic_weight="207.2(1)" 2115 ) 2116 element._add_isotope( 2117 A=204, 2118 atomic_mass="203.973044(8)" 2119 ) 2120 element._add_isotope( 2121 A=206, 2122 atomic_mass="205.974466(8)" 2123 ) 2124 element._add_isotope( 2125 A=207, 2126 atomic_mass="206.975897(8)" 2127 ) 2128 element._add_isotope( 2129 A=208, 2130 atomic_mass="207.976653(8)" 2131 ) 2132 2133 # Bismuth. 2134 element = periodic_table._add( 2135 atomic_number=83, 2136 symbol='Bi', 2137 name='Bismuth', 2138 atomic_weight="208.98040(1)" 2139 ) 2140 element._add_isotope( 2141 A=209, 2142 atomic_mass="208.98040(1)" 2143 ) 2144 2145 # Polonium. 2146 element = periodic_table._add( 2147 atomic_number=84, 2148 symbol='Po', 2149 name='Polonium', 2150 atomic_weight="[209]" 2151 ) 2152 2153 # Astatine. 2154 element = periodic_table._add( 2155 atomic_number=85, 2156 symbol='At', 2157 name='Astatine', 2158 atomic_weight="[210]" 2159 ) 2160 2161 # Radon. 2162 element = periodic_table._add( 2163 atomic_number=86, 2164 symbol='Rn', 2165 name='Radon', 2166 atomic_weight="[222]" 2167 ) 2168 2169 # Francium. 2170 element = periodic_table._add( 2171 atomic_number=87, 2172 symbol='Fr', 2173 name='Francium', 2174 atomic_weight="[223]" 2175 ) 2176 2177 # Radium. 2178 element = periodic_table._add( 2179 atomic_number=88, 2180 symbol='Ra', 2181 name='Radium', 2182 atomic_weight="[226]" 2183 ) 2184 2185 # Actinium. 2186 element = periodic_table._add( 2187 atomic_number=89, 2188 symbol='Ac', 2189 name='Actinium', 2190 atomic_weight="[227]" 2191 ) 2192 2193 # Thorium. 2194 element = periodic_table._add( 2195 atomic_number=90, 2196 symbol='Th', 2197 name='Thorium', 2198 atomic_weight="232.03806(2)" 2199 ) 2200 element._add_isotope( 2201 A=230, 2202 atomic_mass="230.03313(2)" 2203 ) 2204 element._add_isotope( 2205 A=232, 2206 atomic_mass="232.03806(2)" 2207 ) 2208 2209 # Protactinium. 2210 element = periodic_table._add( 2211 atomic_number=91, 2212 symbol='Pa', 2213 name='Protactinium', 2214 atomic_weight="231.03588(2)" 2215 ) 2216 element._add_isotope( 2217 A=231, 2218 atomic_mass="231.03588(2)" 2219 ) 2220 2221 # Uranium. 2222 element = periodic_table._add( 2223 atomic_number=92, 2224 symbol='U', 2225 name='Uranium', 2226 atomic_weight="238.02891(3)" 2227 ) 2228 element._add_isotope( 2229 A=233, 2230 atomic_mass="233.03964(2)" 2231 ) 2232 element._add_isotope( 2233 A=234, 2234 atomic_mass="234.04095(2)" 2235 ) 2236 element._add_isotope( 2237 A=235, 2238 atomic_mass="235.04393(2)" 2239 ) 2240 element._add_isotope( 2241 A=238, 2242 atomic_mass="238.05079(2)" 2243 ) 2244 2245 # Neptunium. 2246 element = periodic_table._add( 2247 atomic_number=93, 2248 symbol='Np', 2249 name='Neptunium', 2250 atomic_weight="[237]" 2251 ) 2252 2253 # Plutonium. 2254 element = periodic_table._add( 2255 atomic_number=94, 2256 symbol='Pu', 2257 name='Plutonium', 2258 atomic_weight="[244]" 2259 ) 2260 2261 # Americium. 2262 element = periodic_table._add( 2263 atomic_number=95, 2264 symbol='Am', 2265 name='Americium', 2266 atomic_weight="[243]" 2267 ) 2268 2269 # Curium. 2270 element = periodic_table._add( 2271 atomic_number=96, 2272 symbol='Cm', 2273 name='Curium', 2274 atomic_weight="[247]" 2275 ) 2276 2277 # Berkelium. 2278 element = periodic_table._add( 2279 atomic_number=97, 2280 symbol='Bk', 2281 name='Berkelium', 2282 atomic_weight="[247]" 2283 ) 2284 2285 # Californium. 2286 element = periodic_table._add( 2287 atomic_number=98, 2288 symbol='Cf', 2289 name='Californium', 2290 atomic_weight="[251]" 2291 ) 2292 2293 # Einsteinium. 2294 element = periodic_table._add( 2295 atomic_number=99, 2296 symbol='Es', 2297 name='Einsteinium', 2298 atomic_weight="[252]" 2299 ) 2300 2301 # Fermium. 2302 element = periodic_table._add( 2303 atomic_number=100, 2304 symbol='Fm', 2305 name='Fermium', 2306 atomic_weight="[257]" 2307 ) 2308 2309 # Mendelevium. 2310 element = periodic_table._add( 2311 atomic_number=101, 2312 symbol='Md', 2313 name='Mendelevium', 2314 atomic_weight="[258]" 2315 ) 2316 2317 # Nobelium. 2318 element = periodic_table._add( 2319 atomic_number=102, 2320 symbol='No', 2321 name='Nobelium', 2322 atomic_weight="[259]" 2323 ) 2324 2325 # Lawrencium. 2326 element = periodic_table._add( 2327 atomic_number=103, 2328 symbol='Lr', 2329 name='Lawrencium', 2330 atomic_weight="[266]" 2331 ) 2332 2333 # Rutherfordium. 2334 element = periodic_table._add( 2335 atomic_number=104, 2336 symbol='Rf', 2337 name='Rutherfordium', 2338 atomic_weight="[267]" 2339 ) 2340 2341 # Dubnium. 2342 element = periodic_table._add( 2343 atomic_number=105, 2344 symbol='Db', 2345 name='Dubnium', 2346 atomic_weight="[268]" 2347 ) 2348 2349 # Seaborgium. 2350 element = periodic_table._add( 2351 atomic_number=106, 2352 symbol='Sg', 2353 name='Seaborgium', 2354 atomic_weight="[269]" 2355 ) 2356 2357 # Bohrium. 2358 element = periodic_table._add( 2359 atomic_number=107, 2360 symbol='Bh', 2361 name='Bohrium', 2362 atomic_weight="[270]" 2363 ) 2364 2365 # Hassium. 2366 element = periodic_table._add( 2367 atomic_number=108, 2368 symbol='Hs', 2369 name='Hassium', 2370 atomic_weight="[269]" 2371 ) 2372 2373 # Meitnerium. 2374 element = periodic_table._add( 2375 atomic_number=109, 2376 symbol='Mt', 2377 name='Meitnerium', 2378 atomic_weight="[278]" 2379 ) 2380 2381 # Darmstadtium. 2382 element = periodic_table._add( 2383 atomic_number=110, 2384 symbol='Ds', 2385 name='Darmstadtium', 2386 atomic_weight="[281]" 2387 ) 2388 2389 # Roentgenium. 2390 element = periodic_table._add( 2391 atomic_number=111, 2392 symbol='Rg', 2393 name='Roentgenium', 2394 atomic_weight="[281]" 2395 ) 2396 2397 # Copernicium. 2398 element = periodic_table._add( 2399 atomic_number=112, 2400 symbol='Cn', 2401 name='Copernicium', 2402 atomic_weight="[285]" 2403 ) 2404 2405 # Ununtrium. 2406 element = periodic_table._add( 2407 atomic_number=113, 2408 symbol='Uut', 2409 name='Ununtrium', 2410 atomic_weight="[286]" 2411 ) 2412 2413 # Flerovium. 2414 element = periodic_table._add( 2415 atomic_number=114, 2416 symbol='Fl', 2417 name='Flerovium', 2418 atomic_weight="[289]" 2419 ) 2420 2421 # Ununpentium. 2422 element = periodic_table._add( 2423 atomic_number=115, 2424 symbol='Uup', 2425 name='Ununpentium', 2426 atomic_weight="[289]" 2427 ) 2428 2429 # Livermorium. 2430 element = periodic_table._add( 2431 atomic_number=116, 2432 symbol='Lv', 2433 name='Livermorium', 2434 atomic_weight="[293]" 2435 ) 2436 2437 # Ununseptium. 2438 element = periodic_table._add( 2439 atomic_number=117, 2440 symbol='Uus', 2441 name='Ununseptium', 2442 atomic_weight="[294]" 2443 ) 2444 2445 # Ununoctium. 2446 element = periodic_table._add( 2447 atomic_number=118, 2448 symbol='Uuo', 2449 name='Ununoctium', 2450 atomic_weight="[294]" 2451 ) 2452