Skip to content

Instantly share code, notes, and snippets.

@costrouc
Created April 18, 2016 17:10
Show Gist options
  • Save costrouc/31231cb859cea7aac7300f7bc7a172c8 to your computer and use it in GitHub Desktop.
Save costrouc/31231cb859cea7aac7300f7bc7a172c8 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
# elements.py
# Copyright (c) 2005-2015, Christoph Gohlke
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the copyright holders nor the names of any
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
"""Properties of the chemical elements.
Each chemical element is represented as an object instance. Physicochemical
and descriptive properties of the elements are stored as instance attributes.
:Author: `Christoph Gohlke <http://www.lfd.uci.edu/~gohlke/>`_
:Version: 2015.01.29
Requirements
------------
* `CPython 2.7 or 3.4 <http://www.python.org>`_
References
----------
(1) http://physics.nist.gov/PhysRefData/Compositions/
(2) http://physics.nist.gov/PhysRefData/IonEnergy/tblNew.html
(3) http://en.wikipedia.org/wiki/%(element.name)s
(4) http://www.miranda.org/~jkominek/elements/elements.db
Examples
--------
>>> from elements import ELEMENTS
>>> len(ELEMENTS)
109
>>> str(ELEMENTS[109])
'Meitnerium'
>>> ele = ELEMENTS['C']
>>> ele.number, ele.symbol, ele.name, ele.eleconfig
(6, 'C', 'Carbon', '[He] 2s2 2p2')
>>> ele.eleconfig_dict
{(1, 's'): 2, (2, 'p'): 2, (2, 's'): 2}
>>> sum(ele.mass for ele in ELEMENTS)
14659.1115599
>>> for ele in ELEMENTS:
... ele.validate()
... ele = eval(repr(ele))
"""
from __future__ import division, print_function
__version__ = '2015.01.29'
__docformat__ = 'restructuredtext en'
__all__ = 'ELEMENTS',
class lazyattr(object):
"""Lazy object attribute whose value is computed on first access."""
__slots__ = ['func']
def __init__(self, func):
self.func = func
def __get__(self, instance, owner):
result = self.func(instance)
if result is NotImplemented:
return getattr(super(owner, instance), self.func.__name__)
setattr(instance, self.func.__name__, result)
return result
class Element(object):
"""Chemical element.
Attributes
----------
number : int
Atomic number
symbol : str of length 1 or 2
Chemical symbol
name : str
Name in english
group : int
Group in periodic table
period : int
Period in periodic table
block : int
Block in periodic table
series : int
Index to chemical series
protons : int
Number of protons
neutrons : int
Number of neutrons in the most abundant naturally occurring stable
isotope
nominalmass : int
Mass number of the most abundant naturally occurring stable isotope
electrons : int
Number of electrons
mass : float
Relative atomic mass. Ratio of the average mass of atoms
of the element to 1/12 of the mass of an atom of 12C
exactmass : float
Relative atomic mass calculated from the isotopic composition
eleneg : float
Electronegativity (Pauling scale)
covrad : float
Covalent radius in Angstrom
atmrad :
Atomic radius in Angstrom
vdwrad : float
Van der Waals radius in Angstrom
tboil : float
Boiling temperature in K
tmelt : float
Melting temperature in K
density : float
Density at 295K in g/cm3 respectively g/L
oxistates : str
Oxidation states
eleaffin : float
Electron affinity in eV
eleconfig : str
Ground state electron configuration
eleconfig_dict : dict
Ground state electron configuration (shell, subshell): electrons
eleshells : int
Number of electrons per shell
ionenergy : tuple
Ionization energies in eV
isotopes : dict
Isotopic composition.
keys: isotope mass number
values: Isotope(relative atomic mass, abundance)
"""
def __init__(self, number, symbol, name, **kwargs):
self.number = number
self.symbol = symbol
self.name = name
self.electrons = number
self.protons = number
self.__dict__.update(kwargs)
def __str__(self):
return self.name
def __repr__(self):
ionenergy = []
for i, j in enumerate(self.ionenergy):
if i and (i % 5 == 0):
ionenergy.append("\n" + " " * 15)
ionenergy.append("%s, " % j)
ionenergy = "".join(ionenergy)
isotopes = []
for massnum in sorted(self.isotopes):
iso = self.isotopes[massnum]
isotopes.append("%i: Isotope(%s, %s, %i)" % (
massnum, iso.mass, iso.abundance, massnum))
isotopes = ",\n ".join(isotopes)
description = word_wrap(self.description, linelen=66, indent=0,
joinstr=""" "\n \"""")
description = """ e['%s'].description = (\n "%s\")""" % (
self.symbol, description)
# return description
result = [
"Element(\n %i, '%s', '%s'" % (
self.number, self.symbol, self.name),
"group=%s, period=%s, block='%s', series=%i" % (
self.group, self.period, self.block, self.series),
"mass=%s, eleneg=%s, eleaffin=%s" % (
self.mass, self.eleneg, self.eleaffin),
"covrad=%s, atmrad=%s, vdwrad=%s" % (
self.covrad, self.atmrad, self.vdwrad),
"tboil=%s, tmelt=%s, density=%s" % (
self.tboil, self.tmelt, self.density),
"eleconfig='%s'" % self.eleconfig,
"oxistates='%s'" % self.oxistates,
"ionenergy=(%s)" % ionenergy,
"isotopes={%s})" % isotopes
]
return ",\n ".join(result)
@lazyattr
def nominalmass(self):
"""Return mass number of most abundant natural stable isotope."""
nominalmass = 0
maxabundance = 0
for massnum, iso in self.isotopes.items():
if iso.abundance > maxabundance:
maxabundance = iso.abundance
nominalmass = massnum
return nominalmass
@lazyattr
def neutrons(self):
"""Return number neutrons in most abundant natural stable isotope."""
return self.nominalmass - self.protons
@lazyattr
def exactmass(self):
"""Return relative atomic mass calculated from isotopic composition."""
return sum(iso.mass * iso.abundance for iso in self.isotopes.values())
@lazyattr
def eleconfig_dict(self):
"""Return electron configuration as dict."""
adict = {}
if self.eleconfig.startswith('['):
base = self.eleconfig.split(' ', 1)[0][1:-1]
adict.update(ELEMENTS[base].eleconfig_dict)
for e in self.eleconfig.split()[bool(adict):]:
adict[(int(e[0]), e[1])] = int(e[2:]) if len(e) > 2 else 1
return adict
@lazyattr
def eleshells(self):
"""Return number of electrons in shell as tuple."""
eleshells = [0, 0, 0, 0, 0, 0, 0]
for key, val in self.eleconfig_dict.items():
eleshells[key[0] - 1] += val
return tuple(ele for ele in eleshells if ele)
@lazyattr
def description(self):
"""Return text description of element."""
return _descriptions(self.symbol)
def validate(self):
"""Check consistency of data. Raise Error on failure."""
assert self.period in PERIODS
assert self.group in GROUPS
assert self.block in BLOCKS
assert self.series in SERIES
if self.number != self.protons:
raise ValueError(
"%s - atomic number must equal proton number" % self.symbol)
if self.protons != sum(self.eleshells):
raise ValueError(
"%s - number of protons must equal electrons" % self.symbol)
mass = 0.0
frac = 0.0
for iso in self.isotopes.values():
mass += iso.abundance * iso.mass
frac += iso.abundance
if abs(mass - self.mass) > 0.03:
raise ValueError(
"%s - average of isotope masses (%.4f) != mass (%.4f)" % (
self.symbol, mass, self.mass))
if abs(frac - 1.0) > 1e-9:
raise ValueError(
"%s - sum of isotope abundances != 1.0" % self.symbol)
class Isotope(object):
"""Isotope massnumber, relative atomic mass, and abundance."""
__slots__ = ['massnumber', 'mass', 'abundance']
def __init__(self, mass=0.0, abundance=1.0, massnumber=0):
self.mass = mass
self.abundance = abundance
self.massnumber = massnumber
def __str__(self):
return "%i, %.4f, %.6f%%" % (self.massnumber, self.mass,
self.abundance * 100)
def __repr__(self):
return "Isotope(%s, %s, %s)" % (
repr(self.mass), repr(self.abundance), repr(self.massnumber))
class ElementsDict(object):
"""Ordered dict of Elements with lookup by number, symbol, and name."""
def __init__(self, *elements):
self._list = []
self._dict = {}
for element in elements:
if element.number > len(self._list) + 1:
raise ValueError("Elements must be added in order")
if element.number <= len(self._list):
self._list[element.number - 1] = element
else:
self._list.append(element)
self._dict[element.number] = element
self._dict[element.symbol] = element
self._dict[element.name] = element
def __str__(self):
return "[%s]" % ", ".join(ele.symbol for ele in self._list)
def __contains__(self, item):
return item in self._dict
def __iter__(self):
return iter(self._list)
def __len__(self):
return len(self._list)
def __getitem__(self, key):
try:
return self._dict[key]
except KeyError:
try:
start, stop, step = key.indices(len(self._list))
return self._list[slice(start - 1, stop - 1, step)]
except:
raise KeyError
ELEMENTS = ElementsDict(
Element(
1, 'H', 'Hydrogen',
group=1, period=1, block='s', series=1,
mass=1.00794, eleneg=2.2, eleaffin=0.75420375,
covrad=0.32, atmrad=0.79, vdwrad=1.2,
tboil=20.28, tmelt=13.81, density=0.084,
eleconfig='1s',
oxistates='1*, -1',
ionenergy=(13.5984, ),
isotopes={1: Isotope(1.0078250321, 0.999885, 1),
2: Isotope(2.014101778, 0.000115, 2)}),
Element(
2, 'He', 'Helium',
group=18, period=1, block='s', series=2,
mass=4.002602, eleneg=0.0, eleaffin=0.0,
covrad=0.93, atmrad=0.49, vdwrad=1.4,
tboil=4.216, tmelt=0.95, density=0.1785,
eleconfig='1s2',
oxistates='*',
ionenergy=(24.5874, 54.416, ),
isotopes={3: Isotope(3.0160293097, 1.37e-06, 3),
4: Isotope(4.0026032497, 0.99999863, 4)}),
Element(
3, 'Li', 'Lithium',
group=1, period=2, block='s', series=3,
mass=6.941, eleneg=0.98, eleaffin=0.618049,
covrad=1.23, atmrad=2.05, vdwrad=1.82,
tboil=1615.0, tmelt=453.7, density=0.53,
eleconfig='[He] 2s',
oxistates='1*',
ionenergy=(5.3917, 75.638, 122.451, ),
isotopes={6: Isotope(6.0151223, 0.0759, 6),
7: Isotope(7.016004, 0.9241, 7)}),
Element(
4, 'Be', 'Beryllium',
group=2, period=2, block='s', series=4,
mass=9.012182, eleneg=1.57, eleaffin=0.0,
covrad=0.9, atmrad=1.4, vdwrad=0.0,
tboil=3243.0, tmelt=1560.0, density=1.85,
eleconfig='[He] 2s2',
oxistates='2*',
ionenergy=(9.3227, 18.211, 153.893, 217.713, ),
isotopes={9: Isotope(9.0121821, 1.0, 9)}),
Element(
5, 'B', 'Boron',
group=13, period=2, block='p', series=5,
mass=10.811, eleneg=2.04, eleaffin=0.279723,
covrad=0.82, atmrad=1.17, vdwrad=0.0,
tboil=4275.0, tmelt=2365.0, density=2.46,
eleconfig='[He] 2s2 2p',
oxistates='3*',
ionenergy=(8.298, 25.154, 37.93, 59.368, 340.217, ),
isotopes={10: Isotope(10.012937, 0.199, 10),
11: Isotope(11.0093055, 0.801, 11)}),
Element(
6, 'C', 'Carbon',
group=14, period=2, block='p', series=1,
mass=12.0107, eleneg=2.55, eleaffin=1.262118,
covrad=0.77, atmrad=0.91, vdwrad=1.7,
tboil=5100.0, tmelt=3825.0, density=3.51,
eleconfig='[He] 2s2 2p2',
oxistates='4*, 2, -4*',
ionenergy=(11.2603, 24.383, 47.877, 64.492, 392.077,
489.981, ),
isotopes={12: Isotope(12.0, 0.9893, 12),
13: Isotope(13.0033548378, 0.0107, 13)}),
Element(
7, 'N', 'Nitrogen',
group=15, period=2, block='p', series=1,
mass=14.0067, eleneg=3.04, eleaffin=-0.07,
covrad=0.75, atmrad=0.75, vdwrad=1.55,
tboil=77.344, tmelt=63.15, density=1.17,
eleconfig='[He] 2s2 2p3',
oxistates='5, 4, 3, 2, -3*',
ionenergy=(14.5341, 39.601, 47.488, 77.472, 97.888,
522.057, 667.029, ),
isotopes={14: Isotope(14.0030740052, 0.99632, 14),
15: Isotope(15.0001088984, 0.00368, 15)}),
Element(
8, 'O', 'Oxygen',
group=16, period=2, block='p', series=1,
mass=15.9994, eleneg=3.44, eleaffin=1.461112,
covrad=0.73, atmrad=0.65, vdwrad=1.52,
tboil=90.188, tmelt=54.8, density=1.33,
eleconfig='[He] 2s2 2p4',
oxistates='-2*, -1',
ionenergy=(13.6181, 35.116, 54.934, 54.934, 77.412,
113.896, 138.116, 739.315, 871.387, ),
isotopes={16: Isotope(15.9949146221, 0.99757, 16),
17: Isotope(16.9991315, 0.00038, 17),
18: Isotope(17.9991604, 0.00205, 18)}),
Element(
9, 'F', 'Fluorine',
group=17, period=2, block='p', series=6,
mass=18.9984032, eleneg=3.98, eleaffin=3.4011887,
covrad=0.72, atmrad=0.57, vdwrad=1.47,
tboil=85.0, tmelt=53.55, density=1.58,
eleconfig='[He] 2s2 2p5',
oxistates='-1*',
ionenergy=(17.4228, 34.97, 62.707, 87.138, 114.24,
157.161, 185.182, 953.886, 1103.089, ),
isotopes={19: Isotope(18.9984032, 1.0, 19)}),
Element(
10, 'Ne', 'Neon',
group=18, period=2, block='p', series=2,
mass=20.1797, eleneg=0.0, eleaffin=0.0,
covrad=0.71, atmrad=0.51, vdwrad=1.54,
tboil=27.1, tmelt=24.55, density=0.8999,
eleconfig='[He] 2s2 2p6',
oxistates='*',
ionenergy=(21.5645, 40.962, 63.45, 97.11, 126.21,
157.93, 207.27, 239.09, 1195.797, 1362.164, ),
isotopes={20: Isotope(19.9924401759, 0.9048, 20),
21: Isotope(20.99384674, 0.0027, 21),
22: Isotope(21.99138551, 0.0925, 22)}),
Element(
11, 'Na', 'Sodium',
group=1, period=3, block='s', series=3,
mass=22.98977, eleneg=0.93, eleaffin=0.547926,
covrad=1.54, atmrad=2.23, vdwrad=2.27,
tboil=1156.0, tmelt=371.0, density=0.97,
eleconfig='[Ne] 3s',
oxistates='1*',
ionenergy=(5.1391, 47.286, 71.64, 98.91, 138.39,
172.15, 208.47, 264.18, 299.87, 1465.091,
1648.659, ),
isotopes={23: Isotope(22.98976967, 1.0, 23)}),
Element(
12, 'Mg', 'Magnesium',
group=2, period=3, block='s', series=4,
mass=24.305, eleneg=1.31, eleaffin=0.0,
covrad=1.36, atmrad=1.72, vdwrad=1.73,
tboil=1380.0, tmelt=922.0, density=1.74,
eleconfig='[Ne] 3s2',
oxistates='2*',
ionenergy=(7.6462, 15.035, 80.143, 109.24, 141.26,
186.5, 224.94, 265.9, 327.95, 367.53,
1761.802, 1962.613, ),
isotopes={24: Isotope(23.9850419, 0.7899, 24),
25: Isotope(24.98583702, 0.1, 25),
26: Isotope(25.98259304, 0.1101, 26)}),
Element(
13, 'Al', 'Aluminium',
group=13, period=3, block='p', series=7,
mass=26.981538, eleneg=1.61, eleaffin=0.43283,
covrad=1.18, atmrad=1.82, vdwrad=0.0,
tboil=2740.0, tmelt=933.5, density=2.7,
eleconfig='[Ne] 3s2 3p',
oxistates='3*',
ionenergy=(5.9858, 18.828, 28.447, 119.99, 153.71,
190.47, 241.43, 284.59, 330.21, 398.57,
442.07, 2085.983, 2304.08, ),
isotopes={27: Isotope(26.98153844, 1.0, 27)}),
Element(
14, 'Si', 'Silicon',
group=14, period=3, block='p', series=5,
mass=28.0855, eleneg=1.9, eleaffin=1.389521,
covrad=1.11, atmrad=1.46, vdwrad=2.1,
tboil=2630.0, tmelt=1683.0, density=2.33,
eleconfig='[Ne] 3s2 3p2',
oxistates='4*, -4',
ionenergy=(8.1517, 16.345, 33.492, 45.141, 166.77,
205.05, 246.52, 303.17, 351.1, 401.43,
476.06, 523.5, 2437.676, 2673.108, ),
isotopes={28: Isotope(27.9769265327, 0.922297, 28),
29: Isotope(28.97649472, 0.046832, 29),
30: Isotope(29.97377022, 0.030871, 30)}),
Element(
15, 'P', 'Phosphorus',
group=15, period=3, block='p', series=1,
mass=30.973761, eleneg=2.19, eleaffin=0.7465,
covrad=1.06, atmrad=1.23, vdwrad=1.8,
tboil=553.0, tmelt=317.3, density=1.82,
eleconfig='[Ne] 3s2 3p3',
oxistates='5*, 3, -3',
ionenergy=(10.4867, 19.725, 30.18, 51.37, 65.023,
220.43, 263.22, 309.41, 371.73, 424.5,
479.57, 560.41, 611.85, 2816.943, 3069.762, ),
isotopes={31: Isotope(30.97376151, 1.0, 31)}),
Element(
16, 'S', 'Sulfur',
group=16, period=3, block='p', series=1,
mass=32.065, eleneg=2.58, eleaffin=2.0771029,
covrad=1.02, atmrad=1.09, vdwrad=1.8,
tboil=717.82, tmelt=392.2, density=2.06,
eleconfig='[Ne] 3s2 3p4',
oxistates='6*, 4, 2, -2',
ionenergy=(10.36, 23.33, 34.83, 47.3, 72.68,
88.049, 280.93, 328.23, 379.1, 447.09,
504.78, 564.65, 651.63, 707.14, 3223.836,
3494.099, ),
isotopes={32: Isotope(31.97207069, 0.9493, 32),
33: Isotope(32.9714585, 0.0076, 33),
34: Isotope(33.96786683, 0.0429, 34),
36: Isotope(35.96708088, 0.0002, 36)}),
Element(
17, 'Cl', 'Chlorine',
group=17, period=3, block='p', series=6,
mass=35.453, eleneg=3.16, eleaffin=3.612724,
covrad=0.99, atmrad=0.97, vdwrad=1.75,
tboil=239.18, tmelt=172.17, density=2.95,
eleconfig='[Ne] 3s2 3p5',
oxistates='7, 5, 3, 1, -1*',
ionenergy=(12.9676, 23.81, 39.61, 53.46, 67.8,
98.03, 114.193, 348.28, 400.05, 455.62,
529.97, 591.97, 656.69, 749.75, 809.39,
3658.425, 3946.193, ),
isotopes={35: Isotope(34.96885271, 0.7578, 35),
37: Isotope(36.9659026, 0.2422, 37)}),
Element(
18, 'Ar', 'Argon',
group=18, period=3, block='p', series=2,
mass=39.948, eleneg=0.0, eleaffin=0.0,
covrad=0.98, atmrad=0.88, vdwrad=1.88,
tboil=87.45, tmelt=83.95, density=1.66,
eleconfig='[Ne] 3s2 3p6',
oxistates='*',
ionenergy=(15.7596, 27.629, 40.74, 59.81, 75.02,
91.007, 124.319, 143.456, 422.44, 478.68,
538.95, 618.24, 686.09, 755.73, 854.75,
918.0, 4120.778, 4426.114, ),
isotopes={36: Isotope(35.96754628, 0.003365, 36),
38: Isotope(37.9627322, 0.000632, 38),
40: Isotope(39.962383123, 0.996003, 40)}),
Element(
19, 'K', 'Potassium',
group=1, period=4, block='s', series=3,
mass=39.0983, eleneg=0.82, eleaffin=0.501459,
covrad=2.03, atmrad=2.77, vdwrad=2.75,
tboil=1033.0, tmelt=336.8, density=0.86,
eleconfig='[Ar] 4s',
oxistates='1*',
ionenergy=(4.3407, 31.625, 45.72, 60.91, 82.66,
100.0, 117.56, 154.86, 175.814, 503.44,
564.13, 629.09, 714.02, 787.13, 861.77,
968.0, 1034.0, 4610.955, 4933.931, ),
isotopes={39: Isotope(38.9637069, 0.932581, 39),
40: Isotope(39.96399867, 0.000117, 40),
41: Isotope(40.96182597, 0.067302, 41)}),
Element(
20, 'Ca', 'Calcium',
group=2, period=4, block='s', series=4,
mass=40.078, eleneg=1.0, eleaffin=0.02455,
covrad=1.74, atmrad=2.23, vdwrad=0.0,
tboil=1757.0, tmelt=1112.0, density=1.54,
eleconfig='[Ar] 4s2',
oxistates='2*',
ionenergy=(6.1132, 11.71, 50.908, 67.1, 84.41,
108.78, 127.7, 147.24, 188.54, 211.27,
591.25, 656.39, 726.03, 816.61, 895.12,
974.0, 1087.0, 1157.0, 5129.045, 5469.738, ),
isotopes={40: Isotope(39.9625912, 0.96941, 40),
42: Isotope(41.9586183, 0.00647, 42),
43: Isotope(42.9587668, 0.00135, 43),
44: Isotope(43.9554811, 0.02086, 44),
46: Isotope(45.9536928, 4e-05, 46),
48: Isotope(47.952534, 0.00187, 48)}),
Element(
21, 'Sc', 'Scandium',
group=3, period=4, block='d', series=8,
mass=44.95591, eleneg=1.36, eleaffin=0.188,
covrad=1.44, atmrad=2.09, vdwrad=0.0,
tboil=3109.0, tmelt=1814.0, density=2.99,
eleconfig='[Ar] 3d 4s2',
oxistates='3*',
ionenergy=(6.5615, 12.8, 24.76, 73.47, 91.66,
11.1, 138.0, 158.7, 180.02, 225.32,
225.32, 685.89, 755.47, 829.79, 926.0, ),
isotopes={45: Isotope(44.9559102, 1.0, 45)}),
Element(
22, 'Ti', 'Titanium',
group=4, period=4, block='d', series=8,
mass=47.867, eleneg=1.54, eleaffin=0.084,
covrad=1.32, atmrad=2.0, vdwrad=0.0,
tboil=3560.0, tmelt=1935.0, density=4.51,
eleconfig='[Ar] 3d2 4s2',
oxistates='4*, 3',
ionenergy=(6.8281, 13.58, 27.491, 43.266, 99.22,
119.36, 140.8, 168.5, 193.5, 193.2,
215.91, 265.23, 291.497, 787.33, 861.33, ),
isotopes={46: Isotope(45.9526295, 0.0825, 46),
47: Isotope(46.9517638, 0.0744, 47),
48: Isotope(47.9479471, 0.7372, 48),
49: Isotope(48.9478708, 0.0541, 49),
50: Isotope(49.9447921, 0.0518, 50)}),
Element(
23, 'V', 'Vanadium',
group=5, period=4, block='d', series=8,
mass=50.9415, eleneg=1.63, eleaffin=0.525,
covrad=1.22, atmrad=1.92, vdwrad=0.0,
tboil=3650.0, tmelt=2163.0, density=6.09,
eleconfig='[Ar] 3d3 4s2',
oxistates='5*, 4, 3, 2, 0',
ionenergy=(6.7462, 14.65, 29.31, 46.707, 65.23,
128.12, 150.17, 173.7, 205.8, 230.5,
255.04, 308.25, 336.267, 895.58, 974.02, ),
isotopes={50: Isotope(49.9471628, 0.0025, 50),
51: Isotope(50.9439637, 0.9975, 51)}),
Element(
24, 'Cr', 'Chromium',
group=6, period=4, block='d', series=8,
mass=51.9961, eleneg=1.66, eleaffin=0.67584,
covrad=1.18, atmrad=1.85, vdwrad=0.0,
tboil=2945.0, tmelt=2130.0, density=7.14,
eleconfig='[Ar] 3d5 4s',
oxistates='6, 3*, 2, 0',
ionenergy=(6.7665, 16.5, 30.96, 49.1, 69.3,
90.56, 161.1, 184.7, 209.3, 244.4,
270.8, 298.0, 355.0, 384.3, 1010.64, ),
isotopes={50: Isotope(49.9460496, 0.04345, 50),
52: Isotope(51.9405119, 0.83789, 52),
53: Isotope(52.9406538, 0.09501, 53),
54: Isotope(53.9388849, 0.02365, 54)}),
Element(
25, 'Mn', 'Manganese',
group=7, period=4, block='d', series=8,
mass=54.938049, eleneg=1.55, eleaffin=0.0,
covrad=1.17, atmrad=1.79, vdwrad=0.0,
tboil=2235.0, tmelt=1518.0, density=7.44,
eleconfig='[Ar] 3d5 4s2',
oxistates='7, 6, 4, 3, 2*, 0, -1',
ionenergy=(7.434, 15.64, 33.667, 51.2, 72.4,
95.0, 119.27, 196.46, 221.8, 248.3,
286.0, 314.4, 343.6, 404.0, 435.3,
1136.2, ),
isotopes={55: Isotope(54.9380496, 1.0, 55)}),
Element(
26, 'Fe', 'Iron',
group=8, period=4, block='d', series=8,
mass=55.845, eleneg=1.83, eleaffin=0.151,
covrad=1.17, atmrad=1.72, vdwrad=0.0,
tboil=3023.0, tmelt=1808.0, density=7.874,
eleconfig='[Ar] 3d6 4s2',
oxistates='6, 3*, 2, 0, -2',
ionenergy=(7.9024, 16.18, 30.651, 54.8, 75.0,
99.0, 125.0, 151.06, 235.04, 262.1,
290.4, 330.8, 361.0, 392.2, 457.0,
485.5, 1266.1, ),
isotopes={54: Isotope(53.9396148, 0.05845, 54),
56: Isotope(55.9349421, 0.91754, 56),
57: Isotope(56.9353987, 0.02119, 57),
58: Isotope(57.9332805, 0.00282, 58)}),
Element(
27, 'Co', 'Cobalt',
group=9, period=4, block='d', series=8,
mass=58.9332, eleneg=1.88, eleaffin=0.6633,
covrad=1.16, atmrad=1.67, vdwrad=0.0,
tboil=3143.0, tmelt=1768.0, density=8.89,
eleconfig='[Ar] 3d7 4s2',
oxistates='3, 2*, 0, -1',
ionenergy=(7.881, 17.06, 33.5, 51.3, 79.5,
102.0, 129.0, 157.0, 186.13, 276.0,
305.0, 336.0, 376.0, 411.0, 444.0,
512.0, 546.8, 1403.0, ),
isotopes={59: Isotope(58.9332002, 1.0, 59)}),
Element(
28, 'Ni', 'Nickel',
group=10, period=4, block='d', series=8,
mass=58.6934, eleneg=1.91, eleaffin=1.15716,
covrad=1.15, atmrad=1.62, vdwrad=1.63,
tboil=3005.0, tmelt=1726.0, density=8.91,
eleconfig='[Ar] 3d8 4s2',
oxistates='3, 2*, 0',
ionenergy=(7.6398, 18.168, 35.17, 54.9, 75.5,
108.0, 133.0, 162.0, 193.0, 224.5,
321.2, 352.0, 384.0, 430.0, 464.0,
499.0, 571.0, 607.2, 1547.0, ),
isotopes={58: Isotope(57.9353479, 0.680769, 58),
60: Isotope(59.9307906, 0.262231, 60),
61: Isotope(60.9310604, 0.011399, 61),
62: Isotope(61.9283488, 0.036345, 62),
64: Isotope(63.9279696, 0.009256, 64)}),
Element(
29, 'Cu', 'Copper',
group=11, period=4, block='d', series=8,
mass=63.546, eleneg=1.9, eleaffin=1.23578,
covrad=1.17, atmrad=1.57, vdwrad=1.4,
tboil=2840.0, tmelt=1356.6, density=8.92,
eleconfig='[Ar] 3d10 4s',
oxistates='2*, 1',
ionenergy=(7.7264, 20.292, 26.83, 55.2, 79.9,
103.0, 139.0, 166.0, 199.0, 232.0,
266.0, 368.8, 401.0, 435.0, 484.0,
520.0, 557.0, 633.0, 671.0, 1698.0, ),
isotopes={63: Isotope(62.9296011, 0.6917, 63),
65: Isotope(64.9277937, 0.3083, 65)}),
Element(
30, 'Zn', 'Zinc',
group=12, period=4, block='d', series=8,
mass=65.409, eleneg=1.65, eleaffin=0.0,
covrad=1.25, atmrad=1.53, vdwrad=1.39,
tboil=1180.0, tmelt=692.73, density=7.14,
eleconfig='[Ar] 3d10 4s2',
oxistates='2*',
ionenergy=(9.3942, 17.964, 39.722, 59.4, 82.6,
108.0, 134.0, 174.0, 203.0, 238.0,
274.0, 310.8, 419.7, 454.0, 490.0,
542.0, 579.0, 619.0, 698.8, 738.0,
1856.0, ),
isotopes={64: Isotope(63.9291466, 0.4863, 64),
66: Isotope(65.9260368, 0.279, 66),
67: Isotope(66.9271309, 0.041, 67),
68: Isotope(67.9248476, 0.1875, 68),
70: Isotope(69.925325, 0.0062, 70)}),
Element(
31, 'Ga', 'Gallium',
group=13, period=4, block='p', series=7,
mass=69.723, eleneg=1.81, eleaffin=0.41,
covrad=1.26, atmrad=1.81, vdwrad=1.87,
tboil=2478.0, tmelt=302.92, density=5.91,
eleconfig='[Ar] 3d10 4s2 4p',
oxistates='3*',
ionenergy=(5.9993, 20.51, 30.71, 64.0, ),
isotopes={69: Isotope(68.925581, 0.60108, 69),
71: Isotope(70.924705, 0.39892, 71)}),
Element(
32, 'Ge', 'Germanium',
group=14, period=4, block='p', series=5,
mass=72.64, eleneg=2.01, eleaffin=1.232712,
covrad=1.22, atmrad=1.52, vdwrad=0.0,
tboil=3107.0, tmelt=1211.5, density=5.32,
eleconfig='[Ar] 3d10 4s2 4p2',
oxistates='4*',
ionenergy=(7.8994, 15.934, 34.22, 45.71, 93.5, ),
isotopes={70: Isotope(69.9242504, 0.2084, 70),
72: Isotope(71.9220762, 0.2754, 72),
73: Isotope(72.9234594, 0.0773, 73),
74: Isotope(73.9211782, 0.3628, 74),
76: Isotope(75.9214027, 0.0761, 76)}),
Element(
33, 'As', 'Arsenic',
group=15, period=4, block='p', series=5,
mass=74.9216, eleneg=2.18, eleaffin=0.814,
covrad=1.2, atmrad=1.33, vdwrad=1.85,
tboil=876.0, tmelt=1090.0, density=5.72,
eleconfig='[Ar] 3d10 4s2 4p3',
oxistates='5, 3*, -3',
ionenergy=(9.7886, 18.633, 28.351, 50.13, 62.63,
127.6, ),
isotopes={75: Isotope(74.9215964, 1.0, 75)}),
Element(
34, 'Se', 'Selenium',
group=16, period=4, block='p', series=1,
mass=78.96, eleneg=2.55, eleaffin=2.02067,
covrad=1.16, atmrad=1.22, vdwrad=1.9,
tboil=958.0, tmelt=494.0, density=4.82,
eleconfig='[Ar] 3d10 4s2 4p4',
oxistates='6, 4*, -2',
ionenergy=(9.7524, 21.9, 30.82, 42.944, 68.3,
81.7, 155.4, ),
isotopes={74: Isotope(73.9224766, 0.0089, 74),
76: Isotope(75.9192141, 0.0937, 76),
77: Isotope(76.9199146, 0.0763, 77),
78: Isotope(77.9173095, 0.2377, 78),
80: Isotope(79.9165218, 0.4961, 80),
82: Isotope(81.9167, 0.0873, 82)}),
Element(
35, 'Br', 'Bromine',
group=17, period=4, block='p', series=6,
mass=79.904, eleneg=2.96, eleaffin=3.363588,
covrad=1.14, atmrad=1.12, vdwrad=1.85,
tboil=331.85, tmelt=265.95, density=3.14,
eleconfig='[Ar] 3d10 4s2 4p5',
oxistates='7, 5, 3, 1, -1*',
ionenergy=(11.8138, 21.8, 36.0, 47.3, 59.7,
88.6, 103.0, 192.8, ),
isotopes={79: Isotope(78.9183376, 0.5069, 79),
81: Isotope(80.916291, 0.4931, 81)}),
Element(
36, 'Kr', 'Krypton',
group=18, period=4, block='p', series=2,
mass=83.798, eleneg=0.0, eleaffin=0.0,
covrad=1.12, atmrad=1.03, vdwrad=2.02,
tboil=120.85, tmelt=116.0, density=4.48,
eleconfig='[Ar] 3d10 4s2 4p6',
oxistates='2*',
ionenergy=(13.9996, 24.359, 36.95, 52.5, 64.7,
78.5, 110.0, 126.0, 230.39, ),
isotopes={78: Isotope(77.920386, 0.0035, 78),
80: Isotope(79.916378, 0.0228, 80),
82: Isotope(81.9134846, 0.1158, 82),
83: Isotope(82.914136, 0.1149, 83),
84: Isotope(83.911507, 0.57, 84),
86: Isotope(85.9106103, 0.173, 86)}),
Element(
37, 'Rb', 'Rubidium',
group=1, period=5, block='s', series=3,
mass=85.4678, eleneg=0.82, eleaffin=0.485916,
covrad=2.16, atmrad=2.98, vdwrad=0.0,
tboil=961.0, tmelt=312.63, density=1.53,
eleconfig='[Kr] 5s',
oxistates='1*',
ionenergy=(4.1771, 27.28, 40.0, 52.6, 71.0,
84.4, 99.2, 136.0, 150.0, 277.1, ),
isotopes={85: Isotope(84.9117893, 0.7217, 85),
87: Isotope(86.9091835, 0.2783, 87)}),
Element(
38, 'Sr', 'Strontium',
group=2, period=5, block='s', series=4,
mass=87.62, eleneg=0.95, eleaffin=0.05206,
covrad=1.91, atmrad=2.45, vdwrad=0.0,
tboil=1655.0, tmelt=1042.0, density=2.63,
eleconfig='[Kr] 5s2',
oxistates='2*',
ionenergy=(5.6949, 11.03, 43.6, 57.0, 71.6,
90.8, 106.0, 122.3, 162.0, 177.0,
324.1, ),
isotopes={84: Isotope(83.913425, 0.0056, 84),
86: Isotope(85.9092624, 0.0986, 86),
87: Isotope(86.9088793, 0.07, 87),
88: Isotope(87.9056143, 0.8258, 88)}),
Element(
39, 'Y', 'Yttrium',
group=3, period=5, block='d', series=8,
mass=88.90585, eleneg=1.22, eleaffin=0.307,
covrad=1.62, atmrad=2.27, vdwrad=0.0,
tboil=3611.0, tmelt=1795.0, density=4.47,
eleconfig='[Kr] 4d 5s2',
oxistates='3*',
ionenergy=(6.2173, 12.24, 20.52, 61.8, 77.0,
93.0, 116.0, 129.0, 146.52, 191.0,
206.0, 374.0, ),
isotopes={89: Isotope(88.9058479, 1.0, 89)}),
Element(
40, 'Zr', 'Zirconium',
group=4, period=5, block='d', series=8,
mass=91.224, eleneg=1.33, eleaffin=0.426,
covrad=1.45, atmrad=2.16, vdwrad=0.0,
tboil=4682.0, tmelt=2128.0, density=6.51,
eleconfig='[Kr] 4d2 5s2',
oxistates='4*',
ionenergy=(6.6339, 13.13, 22.99, 34.34, 81.5, ),
isotopes={90: Isotope(89.9047037, 0.5145, 90),
91: Isotope(90.905645, 0.1122, 91),
92: Isotope(91.9050401, 0.1715, 92),
94: Isotope(93.9063158, 0.1738, 94),
96: Isotope(95.908276, 0.028, 96)}),
Element(
41, 'Nb', 'Niobium',
group=5, period=5, block='d', series=8,
mass=92.90638, eleneg=1.6, eleaffin=0.893,
covrad=1.34, atmrad=2.08, vdwrad=0.0,
tboil=5015.0, tmelt=2742.0, density=8.58,
eleconfig='[Kr] 4d4 5s',
oxistates='5*, 3',
ionenergy=(6.7589, 14.32, 25.04, 38.3, 50.55,
102.6, 125.0, ),
isotopes={93: Isotope(92.9063775, 1.0, 93)}),
Element(
42, 'Mo', 'Molybdenum',
group=6, period=5, block='d', series=8,
mass=95.94, eleneg=2.16, eleaffin=0.7472,
covrad=1.3, atmrad=2.01, vdwrad=0.0,
tboil=4912.0, tmelt=2896.0, density=10.28,
eleconfig='[Kr] 4d5 5s',
oxistates='6*, 5, 4, 3, 2, 0',
ionenergy=(7.0924, 16.15, 27.16, 46.4, 61.2,
68.0, 126.8, 153.0, ),
isotopes={92: Isotope(91.90681, 0.1484, 92),
94: Isotope(93.9050876, 0.0925, 94),
95: Isotope(94.9058415, 0.1592, 95),
96: Isotope(95.9046789, 0.1668, 96),
97: Isotope(96.906021, 0.0955, 97),
98: Isotope(97.9054078, 0.2413, 98),
100: Isotope(99.907477, 0.0963, 100)}),
Element(
43, 'Tc', 'Technetium',
group=7, period=5, block='d', series=8,
mass=97.907216, eleneg=1.9, eleaffin=0.55,
covrad=1.27, atmrad=1.95, vdwrad=0.0,
tboil=4538.0, tmelt=2477.0, density=11.49,
eleconfig='[Kr] 4d5 5s2',
oxistates='7*',
ionenergy=(7.28, 15.26, 29.54, ),
isotopes={98: Isotope(97.907216, 1.0, 98)}),
Element(
44, 'Ru', 'Ruthenium',
group=8, period=5, block='d', series=8,
mass=101.07, eleneg=2.2, eleaffin=1.04638,
covrad=1.25, atmrad=1.89, vdwrad=0.0,
tboil=4425.0, tmelt=2610.0, density=12.45,
eleconfig='[Kr] 4d7 5s',
oxistates='8, 6, 4*, 3*, 2, 0, -2',
ionenergy=(7.3605, 16.76, 28.47, ),
isotopes={96: Isotope(95.907598, 0.0554, 96),
98: Isotope(97.905287, 0.0187, 98),
99: Isotope(98.9059393, 0.1276, 99),
100: Isotope(99.9042197, 0.126, 100),
101: Isotope(100.9055822, 0.1706, 101),
102: Isotope(101.9043495, 0.3155, 102),
104: Isotope(103.90543, 0.1862, 104)}),
Element(
45, 'Rh', 'Rhodium',
group=9, period=5, block='d', series=8,
mass=102.9055, eleneg=2.28, eleaffin=1.14289,
covrad=1.25, atmrad=1.83, vdwrad=0.0,
tboil=3970.0, tmelt=2236.0, density=12.41,
eleconfig='[Kr] 4d8 5s',
oxistates='5, 4, 3*, 1*, 2, 0',
ionenergy=(7.4589, 18.08, 31.06, ),
isotopes={103: Isotope(102.905504, 1.0, 103)}),
Element(
46, 'Pd', 'Palladium',
group=10, period=5, block='d', series=8,
mass=106.42, eleneg=2.2, eleaffin=0.56214,
covrad=1.28, atmrad=1.79, vdwrad=1.63,
tboil=3240.0, tmelt=1825.0, density=12.02,
eleconfig='[Kr] 4d10',
oxistates='4, 2*, 0',
ionenergy=(8.3369, 19.43, 32.93, ),
isotopes={102: Isotope(101.905608, 0.0102, 102),
104: Isotope(103.904035, 0.1114, 104),
105: Isotope(104.905084, 0.2233, 105),
106: Isotope(105.903483, 0.2733, 106),
108: Isotope(107.903894, 0.2646, 108),
110: Isotope(109.905152, 0.1172, 110)}),
Element(
47, 'Ag', 'Silver',
group=11, period=5, block='d', series=8,
mass=107.8682, eleneg=1.93, eleaffin=1.30447,
covrad=1.34, atmrad=1.75, vdwrad=1.72,
tboil=2436.0, tmelt=1235.1, density=10.49,
eleconfig='[Kr] 4d10 5s',
oxistates='2, 1*',
ionenergy=(7.5762, 21.49, 34.83, ),
isotopes={107: Isotope(106.905093, 0.51839, 107),
109: Isotope(108.904756, 0.48161, 109)}),
Element(
48, 'Cd', 'Cadmium',
group=12, period=5, block='d', series=8,
mass=112.411, eleneg=1.69, eleaffin=0.0,
covrad=1.48, atmrad=1.71, vdwrad=1.58,
tboil=1040.0, tmelt=594.26, density=8.64,
eleconfig='[Kr] 4d10 5s2',
oxistates='2*',
ionenergy=(8.9938, 16.908, 37.48, ),
isotopes={106: Isotope(105.906458, 0.0125, 106),
108: Isotope(107.904183, 0.0089, 108),
110: Isotope(109.903006, 0.1249, 110),
111: Isotope(110.904182, 0.128, 111),
112: Isotope(111.9027572, 0.2413, 112),
113: Isotope(112.9044009, 0.1222, 113),
114: Isotope(113.9033581, 0.2873, 114),
116: Isotope(115.904755, 0.0749, 116)}),
Element(
49, 'In', 'Indium',
group=13, period=5, block='p', series=7,
mass=114.818, eleneg=1.78, eleaffin=0.404,
covrad=1.44, atmrad=2.0, vdwrad=1.93,
tboil=2350.0, tmelt=429.78, density=7.31,
eleconfig='[Kr] 4d10 5s2 5p',
oxistates='3*',
ionenergy=(5.7864, 18.869, 28.03, 28.03, ),
isotopes={113: Isotope(112.904061, 0.0429, 113),
115: Isotope(114.903878, 0.9571, 115)}),
Element(
50, 'Sn', 'Tin',
group=14, period=5, block='p', series=7,
mass=118.71, eleneg=1.96, eleaffin=1.112066,
covrad=1.41, atmrad=1.72, vdwrad=2.17,
tboil=2876.0, tmelt=505.12, density=7.29,
eleconfig='[Kr] 4d10 5s2 5p2',
oxistates='4*, 2*',
ionenergy=(7.3439, 14.632, 30.502, 40.734, 72.28, ),
isotopes={112: Isotope(111.904821, 0.0097, 112),
114: Isotope(113.902782, 0.0066, 114),
115: Isotope(114.903346, 0.0034, 115),
116: Isotope(115.901744, 0.1454, 116),
117: Isotope(116.902954, 0.0768, 117),
118: Isotope(117.901606, 0.2422, 118),
119: Isotope(118.903309, 0.0859, 119),
120: Isotope(119.9021966, 0.3258, 120),
122: Isotope(121.9034401, 0.0463, 122),
124: Isotope(123.9052746, 0.0579, 124)}),
Element(
51, 'Sb', 'Antimony',
group=15, period=5, block='p', series=5,
mass=121.76, eleneg=2.05, eleaffin=1.047401,
covrad=1.4, atmrad=1.53, vdwrad=0.0,
tboil=1860.0, tmelt=903.91, density=6.69,
eleconfig='[Kr] 4d10 5s2 5p3',
oxistates='5, 3*, -3',
ionenergy=(8.6084, 16.53, 25.3, 44.2, 56.0,
108.0, ),
isotopes={121: Isotope(120.903818, 0.5721, 121),
123: Isotope(122.9042157, 0.4279, 123)}),
Element(
52, 'Te', 'Tellurium',
group=16, period=5, block='p', series=5,
mass=127.6, eleneg=2.1, eleaffin=1.970875,
covrad=1.36, atmrad=1.42, vdwrad=2.06,
tboil=1261.0, tmelt=722.72, density=6.25,
eleconfig='[Kr] 4d10 5s2 5p4',
oxistates='6, 4*, -2',
ionenergy=(9.0096, 18.6, 27.96, 37.41, 58.75,
70.7, 137.0, ),
isotopes={120: Isotope(119.90402, 0.0009, 120),
122: Isotope(121.9030471, 0.0255, 122),
123: Isotope(122.904273, 0.0089, 123),
124: Isotope(123.9028195, 0.0474, 124),
125: Isotope(124.9044247, 0.0707, 125),
126: Isotope(125.9033055, 0.1884, 126),
128: Isotope(127.9044614, 0.3174, 128),
130: Isotope(129.9062228, 0.3408, 130)}),
Element(
53, 'I', 'Iodine',
group=17, period=5, block='p', series=6,
mass=126.90447, eleneg=2.66, eleaffin=3.059038,
covrad=1.33, atmrad=1.32, vdwrad=1.98,
tboil=457.5, tmelt=386.7, density=4.94,
eleconfig='[Kr] 4d10 5s2 5p5',
oxistates='7, 5, 1, -1*',
ionenergy=(10.4513, 19.131, 33.0, ),
isotopes={127: Isotope(126.904468, 1.0, 127)}),
Element(
54, 'Xe', 'Xenon',
group=18, period=5, block='p', series=2,
mass=131.293, eleneg=0.0, eleaffin=0.0,
covrad=1.31, atmrad=1.24, vdwrad=2.16,
tboil=165.1, tmelt=161.39, density=4.49,
eleconfig='[Kr] 4d10 5s2 5p6',
oxistates='2, 4, 6',
ionenergy=(12.1298, 21.21, 32.1, ),
isotopes={124: Isotope(123.9058958, 0.0009, 124),
126: Isotope(125.904269, 0.0009, 126),
128: Isotope(127.9035304, 0.0192, 128),
129: Isotope(128.9047795, 0.2644, 129),
130: Isotope(129.9035079, 0.0408, 130),
131: Isotope(130.9050819, 0.2118, 131),
132: Isotope(131.9041545, 0.2689, 132),
134: Isotope(133.9053945, 0.1044, 134),
136: Isotope(135.90722, 0.0887, 136)}),
Element(
55, 'Cs', 'Caesium',
group=1, period=6, block='s', series=3,
mass=132.90545, eleneg=0.79, eleaffin=0.471626,
covrad=2.35, atmrad=3.34, vdwrad=0.0,
tboil=944.0, tmelt=301.54, density=1.9,
eleconfig='[Xe] 6s',
oxistates='1*',
ionenergy=(3.8939, 25.1, ),
isotopes={133: Isotope(132.905447, 1.0, 133)}),
Element(
56, 'Ba', 'Barium',
group=2, period=6, block='s', series=4,
mass=137.327, eleneg=0.89, eleaffin=0.14462,
covrad=1.98, atmrad=2.78, vdwrad=0.0,
tboil=2078.0, tmelt=1002.0, density=3.65,
eleconfig='[Xe] 6s2',
oxistates='2*',
ionenergy=(5.2117, 100.004, ),
isotopes={130: Isotope(129.90631, 0.00106, 130),
132: Isotope(131.905056, 0.00101, 132),
134: Isotope(133.904503, 0.02417, 134),
135: Isotope(134.905683, 0.06592, 135),
136: Isotope(135.90457, 0.07854, 136),
137: Isotope(136.905821, 0.11232, 137),
138: Isotope(137.905241, 0.71698, 138)}),
Element(
57, 'La', 'Lanthanum',
group=3, period=6, block='f', series=9,
mass=138.9055, eleneg=1.1, eleaffin=0.47,
covrad=1.69, atmrad=2.74, vdwrad=0.0,
tboil=3737.0, tmelt=1191.0, density=6.16,
eleconfig='[Xe] 5d 6s2',
oxistates='3*',
ionenergy=(5.5769, 11.06, 19.175, ),
isotopes={138: Isotope(137.907107, 0.0009, 138),
139: Isotope(138.906348, 0.9991, 139)}),
Element(
58, 'Ce', 'Cerium',
group=3, period=6, block='f', series=9,
mass=140.116, eleneg=1.12, eleaffin=0.5,
covrad=1.65, atmrad=2.7, vdwrad=0.0,
tboil=3715.0, tmelt=1071.0, density=6.77,
eleconfig='[Xe] 4f 5d 6s2',
oxistates='4, 3*',
ionenergy=(5.5387, 10.85, 20.2, 36.72, ),
isotopes={136: Isotope(135.90714, 0.00185, 136),
138: Isotope(137.905986, 0.00251, 138),
140: Isotope(139.905434, 0.8845, 140),
142: Isotope(141.90924, 0.11114, 142)}),
Element(
59, 'Pr', 'Praseodymium',
group=3, period=6, block='f', series=9,
mass=140.90765, eleneg=1.13, eleaffin=0.5,
covrad=1.65, atmrad=2.67, vdwrad=0.0,
tboil=3785.0, tmelt=1204.0, density=6.48,
eleconfig='[Xe] 4f3 6s2',
oxistates='4, 3*',
ionenergy=(5.473, 10.55, 21.62, 38.95, 57.45, ),
isotopes={141: Isotope(140.907648, 1.0, 141)}),
Element(
60, 'Nd', 'Neodymium',
group=3, period=6, block='f', series=9,
mass=144.24, eleneg=1.14, eleaffin=0.5,
covrad=1.64, atmrad=2.64, vdwrad=0.0,
tboil=3347.0, tmelt=1294.0, density=7.0,
eleconfig='[Xe] 4f4 6s2',
oxistates='3*',
ionenergy=(5.525, 10.72, ),
isotopes={142: Isotope(141.907719, 0.272, 142),
143: Isotope(142.90981, 0.122, 143),
144: Isotope(143.910083, 0.238, 144),
145: Isotope(144.912569, 0.083, 145),
146: Isotope(145.913112, 0.172, 146),
148: Isotope(147.916889, 0.057, 148),
150: Isotope(149.920887, 0.056, 150)}),
Element(
61, 'Pm', 'Promethium',
group=3, period=6, block='f', series=9,
mass=144.912744, eleneg=1.13, eleaffin=0.5,
covrad=1.63, atmrad=2.62, vdwrad=0.0,
tboil=3273.0, tmelt=1315.0, density=7.22,
eleconfig='[Xe] 4f5 6s2',
oxistates='3*',
ionenergy=(5.582, 10.9, ),
isotopes={145: Isotope(144.912744, 1.0, 145)}),
Element(
62, 'Sm', 'Samarium',
group=3, period=6, block='f', series=9,
mass=150.36, eleneg=1.17, eleaffin=0.5,
covrad=1.62, atmrad=2.59, vdwrad=0.0,
tboil=2067.0, tmelt=1347.0, density=7.54,
eleconfig='[Xe] 4f6 6s2',
oxistates='3*, 2',
ionenergy=(5.6437, 11.07, ),
isotopes={144: Isotope(143.911995, 0.0307, 144),
147: Isotope(146.914893, 0.1499, 147),
148: Isotope(147.914818, 0.1124, 148),
149: Isotope(148.91718, 0.1382, 149),
150: Isotope(149.917271, 0.0738, 150),
152: Isotope(151.919728, 0.2675, 152),
154: Isotope(153.922205, 0.2275, 154)}),
Element(
63, 'Eu', 'Europium',
group=3, period=6, block='f', series=9,
mass=151.964, eleneg=1.2, eleaffin=0.5,
covrad=1.85, atmrad=2.56, vdwrad=0.0,
tboil=1800.0, tmelt=1095.0, density=5.25,
eleconfig='[Xe] 4f7 6s2',
oxistates='3*, 2',
ionenergy=(5.6704, 11.25, ),
isotopes={151: Isotope(150.919846, 0.4781, 151),
153: Isotope(152.921226, 0.5219, 153)}),
Element(
64, 'Gd', 'Gadolinium',
group=3, period=6, block='f', series=9,
mass=157.25, eleneg=1.2, eleaffin=0.5,
covrad=1.61, atmrad=2.54, vdwrad=0.0,
tboil=3545.0, tmelt=1585.0, density=7.89,
eleconfig='[Xe] 4f7 5d 6s2',
oxistates='3*',
ionenergy=(6.1498, 12.1, ),
isotopes={152: Isotope(151.919788, 0.002, 152),
154: Isotope(153.920862, 0.0218, 154),
155: Isotope(154.922619, 0.148, 155),
156: Isotope(155.92212, 0.2047, 156),
157: Isotope(156.923957, 0.1565, 157),
158: Isotope(157.924101, 0.2484, 158),
160: Isotope(159.927051, 0.2186, 160)}),
Element(
65, 'Tb', 'Terbium',
group=3, period=6, block='f', series=9,
mass=158.92534, eleneg=1.2, eleaffin=0.5,
covrad=1.59, atmrad=2.51, vdwrad=0.0,
tboil=3500.0, tmelt=1629.0, density=8.25,
eleconfig='[Xe] 4f9 6s2',
oxistates='4, 3*',
ionenergy=(5.8638, 11.52, ),
isotopes={159: Isotope(158.925343, 1.0, 159)}),
Element(
66, 'Dy', 'Dysprosium',
group=3, period=6, block='f', series=9,
mass=162.5, eleneg=1.22, eleaffin=0.5,
covrad=1.59, atmrad=2.49, vdwrad=0.0,
tboil=2840.0, tmelt=1685.0, density=8.56,
eleconfig='[Xe] 4f10 6s2',
oxistates='3*',
ionenergy=(5.9389, 11.67, ),
isotopes={156: Isotope(155.924278, 0.0006, 156),
158: Isotope(157.924405, 0.001, 158),
160: Isotope(159.925194, 0.0234, 160),
161: Isotope(160.92693, 0.1891, 161),
162: Isotope(161.926795, 0.2551, 162),
163: Isotope(162.928728, 0.249, 163),
164: Isotope(163.929171, 0.2818, 164)}),
Element(
67, 'Ho', 'Holmium',
group=3, period=6, block='f', series=9,
mass=164.93032, eleneg=1.23, eleaffin=0.5,
covrad=1.58, atmrad=2.47, vdwrad=0.0,
tboil=2968.0, tmelt=1747.0, density=8.78,
eleconfig='[Xe] 4f11 6s2',
oxistates='3*',
ionenergy=(6.0215, 11.8, ),
isotopes={165: Isotope(164.930319, 1.0, 165)}),
Element(
68, 'Er', 'Erbium',
group=3, period=6, block='f', series=9,
mass=167.259, eleneg=1.24, eleaffin=0.5,
covrad=1.57, atmrad=2.45, vdwrad=0.0,
tboil=3140.0, tmelt=1802.0, density=9.05,
eleconfig='[Xe] 4f12 6s2',
oxistates='3*',
ionenergy=(6.1077, 11.93, ),
isotopes={162: Isotope(161.928775, 0.0014, 162),
164: Isotope(163.929197, 0.0161, 164),
166: Isotope(165.93029, 0.3361, 166),
167: Isotope(166.932045, 0.2293, 167),
168: Isotope(167.932368, 0.2678, 168),
170: Isotope(169.93546, 0.1493, 170)}),
Element(
69, 'Tm', 'Thulium',
group=3, period=6, block='f', series=9,
mass=168.93421, eleneg=1.25, eleaffin=0.5,
covrad=1.56, atmrad=2.42, vdwrad=0.0,
tboil=2223.0, tmelt=1818.0, density=9.32,
eleconfig='[Xe] 4f13 6s2',
oxistates='3*, 2',
ionenergy=(6.1843, 12.05, 23.71, ),
isotopes={169: Isotope(168.934211, 1.0, 169)}),
Element(
70, 'Yb', 'Ytterbium',
group=3, period=6, block='f', series=9,
mass=173.04, eleneg=1.1, eleaffin=0.5,
covrad=1.74, atmrad=2.4, vdwrad=0.0,
tboil=1469.0, tmelt=1092.0, density=9.32,
eleconfig='[Xe] 4f14 6s2',
oxistates='3*, 2',
ionenergy=(6.2542, 12.17, 25.2, ),
isotopes={168: Isotope(167.933894, 0.0013, 168),
170: Isotope(169.934759, 0.0304, 170),
171: Isotope(170.936322, 0.1428, 171),
172: Isotope(171.9363777, 0.2183, 172),
173: Isotope(172.9382068, 0.1613, 173),
174: Isotope(173.9388581, 0.3183, 174),
176: Isotope(175.942568, 0.1276, 176)}),
Element(
71, 'Lu', 'Lutetium',
group=3, period=6, block='d', series=9,
mass=174.967, eleneg=1.27, eleaffin=0.5,
covrad=1.56, atmrad=2.25, vdwrad=0.0,
tboil=3668.0, tmelt=1936.0, density=9.84,
eleconfig='[Xe] 4f14 5d 6s2',
oxistates='3*',
ionenergy=(5.4259, 13.9, ),
isotopes={175: Isotope(174.9407679, 0.9741, 175),
176: Isotope(175.9426824, 0.0259, 176)}),
Element(
72, 'Hf', 'Hafnium',
group=4, period=6, block='d', series=8,
mass=178.49, eleneg=1.3, eleaffin=0.0,
covrad=1.44, atmrad=2.16, vdwrad=0.0,
tboil=4875.0, tmelt=2504.0, density=13.31,
eleconfig='[Xe] 4f14 5d2 6s2',
oxistates='4*',
ionenergy=(6.8251, 14.9, 23.3, 33.3, ),
isotopes={174: Isotope(173.94004, 0.0016, 174),
176: Isotope(175.9414018, 0.0526, 176),
177: Isotope(176.94322, 0.186, 177),
178: Isotope(177.9436977, 0.2728, 178),
179: Isotope(178.9458151, 0.1362, 179),
180: Isotope(179.9465488, 0.3508, 180)}),
Element(
73, 'Ta', 'Tantalum',
group=5, period=6, block='d', series=8,
mass=180.9479, eleneg=1.5, eleaffin=0.322,
covrad=1.34, atmrad=2.09, vdwrad=0.0,
tboil=5730.0, tmelt=3293.0, density=16.68,
eleconfig='[Xe] 4f14 5d3 6s2',
oxistates='5*',
ionenergy=(7.5496, ),
isotopes={180: Isotope(179.947466, 0.00012, 180),
181: Isotope(180.947996, 0.99988, 181)}),
Element(
74, 'W', 'Tungsten',
group=6, period=6, block='d', series=8,
mass=183.84, eleneg=2.36, eleaffin=0.815,
covrad=1.3, atmrad=2.02, vdwrad=0.0,
tboil=5825.0, tmelt=3695.0, density=19.26,
eleconfig='[Xe] 4f14 5d4 6s2',
oxistates='6*, 5, 4, 3, 2, 0',
ionenergy=(7.864, ),
isotopes={180: Isotope(179.946706, 0.0012, 180),
182: Isotope(181.948206, 0.265, 182),
183: Isotope(182.9502245, 0.1431, 183),
184: Isotope(183.9509326, 0.3064, 184),
186: Isotope(185.954362, 0.2843, 186)}),
Element(
75, 'Re', 'Rhenium',
group=7, period=6, block='d', series=8,
mass=186.207, eleneg=1.9, eleaffin=0.15,
covrad=1.28, atmrad=1.97, vdwrad=0.0,
tboil=5870.0, tmelt=3455.0, density=21.03,
eleconfig='[Xe] 4f14 5d5 6s2',
oxistates='7, 6, 4, 2, -1',
ionenergy=(7.8335, ),
isotopes={185: Isotope(184.9529557, 0.374, 185),
187: Isotope(186.9557508, 0.626, 187)}),
Element(
76, 'Os', 'Osmium',
group=8, period=6, block='d', series=8,
mass=190.23, eleneg=2.2, eleaffin=1.0778,
covrad=1.26, atmrad=1.92, vdwrad=0.0,
tboil=5300.0, tmelt=3300.0, density=22.61,
eleconfig='[Xe] 4f14 5d6 6s2',
oxistates='8, 6, 4*, 3, 2, 0, -2',
ionenergy=(8.4382, ),
isotopes={184: Isotope(183.952491, 0.0002, 184),
186: Isotope(185.953838, 0.0159, 186),
187: Isotope(186.9557479, 0.0196, 187),
188: Isotope(187.955836, 0.1324, 188),
189: Isotope(188.9581449, 0.1615, 189),
190: Isotope(189.958445, 0.2626, 190),
192: Isotope(191.961479, 0.4078, 192)}),
Element(
77, 'Ir', 'Iridium',
group=9, period=6, block='d', series=8,
mass=192.217, eleneg=2.2, eleaffin=1.56436,
covrad=1.27, atmrad=1.87, vdwrad=0.0,
tboil=4700.0, tmelt=2720.0, density=22.65,
eleconfig='[Xe] 4f14 5d7 6s2',
oxistates='6, 4*, 3, 2, 1*, 0, -1',
ionenergy=(8.967, ),
isotopes={191: Isotope(190.960591, 0.373, 191),
193: Isotope(192.962924, 0.627, 193)}),
Element(
78, 'Pt', 'Platinum',
group=10, period=6, block='d', series=8,
mass=195.078, eleneg=2.28, eleaffin=2.1251,
covrad=1.3, atmrad=1.83, vdwrad=1.75,
tboil=4100.0, tmelt=2042.1, density=21.45,
eleconfig='[Xe] 4f14 5d9 6s',
oxistates='4*, 2*, 0',
ionenergy=(8.9588, 18.563, ),
isotopes={190: Isotope(189.95993, 0.00014, 190),
192: Isotope(191.961035, 0.00782, 192),
194: Isotope(193.962664, 0.32967, 194),
195: Isotope(194.964774, 0.33832, 195),
196: Isotope(195.964935, 0.25242, 196),
198: Isotope(197.967876, 0.07163, 198)}),
Element(
79, 'Au', 'Gold',
group=11, period=6, block='d', series=8,
mass=196.96655, eleneg=2.54, eleaffin=2.30861,
covrad=1.34, atmrad=1.79, vdwrad=1.66,
tboil=3130.0, tmelt=1337.58, density=19.32,
eleconfig='[Xe] 4f14 5d10 6s',
oxistates='3*, 1',
ionenergy=(9.2255, 20.5, ),
isotopes={197: Isotope(196.966552, 1.0, 197)}),
Element(
80, 'Hg', 'Mercury',
group=12, period=6, block='d', series=8,
mass=200.59, eleneg=2.0, eleaffin=0.0,
covrad=1.49, atmrad=1.76, vdwrad=0.0,
tboil=629.88, tmelt=234.31, density=13.55,
eleconfig='[Xe] 4f14 5d10 6s2',
oxistates='2*, 1',
ionenergy=(10.4375, 18.756, 34.2, ),
isotopes={196: Isotope(195.965815, 0.0015, 196),
198: Isotope(197.966752, 0.0997, 198),
199: Isotope(198.968262, 0.1687, 199),
200: Isotope(199.968309, 0.231, 200),
201: Isotope(200.970285, 0.1318, 201),
202: Isotope(201.970626, 0.2986, 202),
204: Isotope(203.973476, 0.0687, 204)}),
Element(
81, 'Tl', 'Thallium',
group=13, period=6, block='p', series=7,
mass=204.3833, eleneg=2.04, eleaffin=0.377,
covrad=1.48, atmrad=2.08, vdwrad=1.96,
tboil=1746.0, tmelt=577.0, density=11.85,
eleconfig='[Xe] 4f14 5d10 6s2 6p',
oxistates='3, 1*',
ionenergy=(6.1082, 20.428, 29.83, ),
isotopes={203: Isotope(202.972329, 0.29524, 203),
205: Isotope(204.974412, 0.70476, 205)}),
Element(
82, 'Pb', 'Lead',
group=14, period=6, block='p', series=7,
mass=207.2, eleneg=2.33, eleaffin=0.364,
covrad=1.47, atmrad=1.81, vdwrad=2.02,
tboil=2023.0, tmelt=600.65, density=11.34,
eleconfig='[Xe] 4f14 5d10 6s2 6p2',
oxistates='4, 2*',
ionenergy=(7.4167, 15.032, 31.937, 42.32, 68.8, ),
isotopes={204: Isotope(203.973029, 0.014, 204),
206: Isotope(205.974449, 0.241, 206),
207: Isotope(206.975881, 0.221, 207),
208: Isotope(207.976636, 0.524, 208)}),
Element(
83, 'Bi', 'Bismuth',
group=15, period=6, block='p', series=7,
mass=208.98038, eleneg=2.02, eleaffin=0.942363,
covrad=1.46, atmrad=1.63, vdwrad=0.0,
tboil=1837.0, tmelt=544.59, density=9.8,
eleconfig='[Xe] 4f14 5d10 6s2 6p3',
oxistates='5, 3*',
ionenergy=(7.2855, 16.69, 25.56, 45.3, 56.0,
88.3, ),
isotopes={209: Isotope(208.980383, 1.0, 209)}),
Element(
84, 'Po', 'Polonium',
group=16, period=6, block='p', series=5,
mass=208.982416, eleneg=2.0, eleaffin=1.9,
covrad=1.46, atmrad=1.53, vdwrad=0.0,
tboil=0.0, tmelt=527.0, density=9.2,
eleconfig='[Xe] 4f14 5d10 6s2 6p4',
oxistates='6, 4*, 2',
ionenergy=(8.414, ),
isotopes={209: Isotope(208.982416, 1.0, 209)}),
Element(
85, 'At', 'Astatine',
group=17, period=6, block='p', series=6,
mass=209.9871, eleneg=2.2, eleaffin=2.8,
covrad=1.45, atmrad=1.43, vdwrad=0.0,
tboil=610.0, tmelt=575.0, density=0.0,
eleconfig='[Xe] 4f14 5d10 6s2 6p5',
oxistates='7, 5, 3, 1, -1*',
ionenergy=(),
isotopes={210: Isotope(209.987131, 1.0, 210)}),
Element(
86, 'Rn', 'Radon',
group=18, period=6, block='p', series=2,
mass=222.0176, eleneg=0.0, eleaffin=0.0,
covrad=0.0, atmrad=1.34, vdwrad=0.0,
tboil=211.4, tmelt=202.0, density=9.23,
eleconfig='[Xe] 4f14 5d10 6s2 6p6',
oxistates='2*',
ionenergy=(10.7485, ),
isotopes={222: Isotope(222.0175705, 1.0, 222)}),
Element(
87, 'Fr', 'Francium',
group=1, period=7, block='s', series=3,
mass=223.0197307, eleneg=0.7, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=950.0, tmelt=300.0, density=0.0,
eleconfig='[Rn] 7s',
oxistates='1*',
ionenergy=(4.0727, ),
isotopes={223: Isotope(223.0197307, 1.0, 223)}),
Element(
88, 'Ra', 'Radium',
group=2, period=7, block='s', series=4,
mass=226.025403, eleneg=0.9, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=1413.0, tmelt=973.0, density=5.5,
eleconfig='[Rn] 7s2',
oxistates='2*',
ionenergy=(5.2784, 10.147, ),
isotopes={226: Isotope(226.0254026, 1.0, 226)}),
Element(
89, 'Ac', 'Actinium',
group=3, period=7, block='f', series=10,
mass=227.027747, eleneg=1.1, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=3470.0, tmelt=1324.0, density=10.07,
eleconfig='[Rn] 6d 7s2',
oxistates='3*',
ionenergy=(5.17, 12.1, ),
isotopes={227: Isotope(227.027747, 1.0, 227)}),
Element(
90, 'Th', 'Thorium',
group=3, period=7, block='f', series=10,
mass=232.0381, eleneg=1.3, eleaffin=0.0,
covrad=1.65, atmrad=0.0, vdwrad=0.0,
tboil=5060.0, tmelt=2028.0, density=11.72,
eleconfig='[Rn] 6d2 7s2',
oxistates='4*',
ionenergy=(6.3067, 11.5, 20.0, 28.8, ),
isotopes={232: Isotope(232.0380504, 1.0, 232)}),
Element(
91, 'Pa', 'Protactinium',
group=3, period=7, block='f', series=10,
mass=231.03588, eleneg=1.5, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=4300.0, tmelt=1845.0, density=15.37,
eleconfig='[Rn] 5f2 6d 7s2',
oxistates='5*, 4',
ionenergy=(5.89, ),
isotopes={231: Isotope(231.0358789, 1.0, 231)}),
Element(
92, 'U', 'Uranium',
group=3, period=7, block='f', series=10,
mass=238.02891, eleneg=1.38, eleaffin=0.0,
covrad=1.42, atmrad=0.0, vdwrad=1.86,
tboil=4407.0, tmelt=1408.0, density=18.97,
eleconfig='[Rn] 5f3 6d 7s2',
oxistates='6*, 5, 4, 3',
ionenergy=(6.1941, ),
isotopes={234: Isotope(234.0409456, 5.5e-05, 234),
235: Isotope(235.0439231, 0.0072, 235),
238: Isotope(238.0507826, 0.992745, 238)}),
Element(
93, 'Np', 'Neptunium',
group=3, period=7, block='f', series=10,
mass=237.048167, eleneg=1.36, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=4175.0, tmelt=912.0, density=20.48,
eleconfig='[Rn] 5f4 6d 7s2',
oxistates='6, 5*, 4, 3',
ionenergy=(6.2657, ),
isotopes={237: Isotope(237.0481673, 1.0, 237)}),
Element(
94, 'Pu', 'Plutonium',
group=3, period=7, block='f', series=10,
mass=244.064198, eleneg=1.28, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=3505.0, tmelt=913.0, density=19.74,
eleconfig='[Rn] 5f6 7s2',
oxistates='6, 5, 4*, 3',
ionenergy=(6.026, ),
isotopes={244: Isotope(244.064198, 1.0, 244)}),
Element(
95, 'Am', 'Americium',
group=3, period=7, block='f', series=10,
mass=243.061373, eleneg=1.3, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=2880.0, tmelt=1449.0, density=13.67,
eleconfig='[Rn] 5f7 7s2',
oxistates='6, 5, 4, 3*',
ionenergy=(5.9738, ),
isotopes={243: Isotope(243.0613727, 1.0, 243)}),
Element(
96, 'Cm', 'Curium',
group=3, period=7, block='f', series=10,
mass=247.070347, eleneg=1.3, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=1620.0, density=13.51,
eleconfig='[Rn] 5f7 6d 7s2',
oxistates='4, 3*',
ionenergy=(5.9914, ),
isotopes={247: Isotope(247.070347, 1.0, 247)}),
Element(
97, 'Bk', 'Berkelium',
group=3, period=7, block='f', series=10,
mass=247.070299, eleneg=1.3, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=1258.0, density=13.25,
eleconfig='[Rn] 5f9 7s2',
oxistates='4, 3*',
ionenergy=(6.1979, ),
isotopes={247: Isotope(247.070299, 1.0, 247)}),
Element(
98, 'Cf', 'Californium',
group=3, period=7, block='f', series=10,
mass=251.07958, eleneg=1.3, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=1172.0, density=15.1,
eleconfig='[Rn] 5f10 7s2',
oxistates='4, 3*',
ionenergy=(6.2817, ),
isotopes={251: Isotope(251.07958, 1.0, 251)}),
Element(
99, 'Es', 'Einsteinium',
group=3, period=7, block='f', series=10,
mass=252.08297, eleneg=1.3, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=1130.0, density=0.0,
eleconfig='[Rn] 5f11 7s2',
oxistates='3*',
ionenergy=(6.42, ),
isotopes={252: Isotope(252.08297, 1.0, 252)}),
Element(
100, 'Fm', 'Fermium',
group=3, period=7, block='f', series=10,
mass=257.095099, eleneg=1.3, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=1800.0, density=0.0,
eleconfig='[Rn] 5f12 7s2',
oxistates='3*',
ionenergy=(6.5, ),
isotopes={257: Isotope(257.095099, 1.0, 257)}),
Element(
101, 'Md', 'Mendelevium',
group=3, period=7, block='f', series=10,
mass=258.098425, eleneg=1.3, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=1100.0, density=0.0,
eleconfig='[Rn] 5f13 7s2',
oxistates='3*',
ionenergy=(6.58, ),
isotopes={258: Isotope(258.098425, 1.0, 258)}),
Element(
102, 'No', 'Nobelium',
group=3, period=7, block='f', series=10,
mass=259.10102, eleneg=1.3, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=1100.0, density=0.0,
eleconfig='[Rn] 5f14 7s2',
oxistates='3, 2*',
ionenergy=(6.65, ),
isotopes={259: Isotope(259.10102, 1.0, 259)}),
Element(
103, 'Lr', 'Lawrencium',
group=3, period=7, block='d', series=10,
mass=262.10969, eleneg=1.3, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=1900.0, density=0.0,
eleconfig='[Rn] 5f14 6d 7s2',
oxistates='3*',
ionenergy=(4.9, ),
isotopes={262: Isotope(262.10969, 1.0, 262)}),
Element(
104, 'Rf', 'Rutherfordium',
group=4, period=7, block='d', series=8,
mass=261.10875, eleneg=0.0, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=0.0, density=0.0,
eleconfig='[Rn] 5f14 6d2 7s2',
oxistates='*',
ionenergy=(6.0, ),
isotopes={261: Isotope(261.10875, 1.0, 261)}),
Element(
105, 'Db', 'Dubnium',
group=5, period=7, block='d', series=8,
mass=262.11415, eleneg=0.0, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=0.0, density=0.0,
eleconfig='[Rn] 5f14 6d3 7s2',
oxistates='*',
ionenergy=(),
isotopes={262: Isotope(262.11415, 1.0, 262)}),
Element(
106, 'Sg', 'Seaborgium',
group=6, period=7, block='d', series=8,
mass=266.12193, eleneg=0.0, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=0.0, density=0.0,
eleconfig='[Rn] 5f14 6d4 7s2',
oxistates='*',
ionenergy=(),
isotopes={266: Isotope(266.12193, 1.0, 266)}),
Element(
107, 'Bh', 'Bohrium',
group=7, period=7, block='d', series=8,
mass=264.12473, eleneg=0.0, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=0.0, density=0.0,
eleconfig='[Rn] 5f14 6d5 7s2',
oxistates='*',
ionenergy=(),
isotopes={264: Isotope(264.12473, 1.0, 264)}),
Element(
108, 'Hs', 'Hassium',
group=8, period=7, block='d', series=8,
mass=269.13411, eleneg=0.0, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=0.0, density=0.0,
eleconfig='[Rn] 5f14 6d6 7s2',
oxistates='*',
ionenergy=(),
isotopes={269: Isotope(269.13411, 1.0, 269)}),
Element(
109, 'Mt', 'Meitnerium',
group=9, period=7, block='d', series=8,
mass=268.13882, eleneg=0.0, eleaffin=0.0,
covrad=0.0, atmrad=0.0, vdwrad=0.0,
tboil=0.0, tmelt=0.0, density=0.0,
eleconfig='[Rn] 5f14 6d7 7s2',
oxistates='*',
ionenergy=(),
isotopes={268: Isotope(268.13882, 1.0, 268)}))
PERIODS = {1: 'K', 2: 'L', 3: 'M', 4: 'N', 5: 'O', 6: 'P', 7: 'Q'}
BLOCKS = {'s': '', 'g': '', 'f': '', 'd': '', 'p': ''}
GROUPS = {
1: ('IA', 'Alkali metals'),
2: ('IIA', 'Alkaline earths'),
3: ('IIIB', ''),
4: ('IVB', ''),
5: ('VB', ''),
6: ('VIB', ''),
7: ('VIIB', ''),
8: ('VIIIB', ''),
9: ('VIIIB', ''),
10: ('VIIIB', ''),
11: ('IB', 'Coinage metals'),
12: ('IIB', ''),
13: ('IIIA', 'Boron group'),
14: ('IVA', 'Carbon group'),
15: ('VA', 'Pnictogens'),
16: ('VIA', 'Chalcogens'),
17: ('VIIA', 'Halogens'),
18: ('VIIIA', 'Noble gases')}
SERIES = {
1: 'Nonmetals',
2: 'Noble gases',
3: 'Alkali metals',
4: 'Alkaline earth metals',
5: 'Metalloids',
6: 'Halogens',
7: 'Poor metals',
8: 'Transition metals',
9: 'Lanthanides',
10: 'Actinides'}
def _descriptions(symbol):
"""Delay load descriptions."""
e = ELEMENTS
e['H'].description = (
"Colourless, odourless gaseous chemical element. Lightest and "
"most abundant element in the universe. Present in water and in "
"all organic compounds. Chemically reacts with most elements. "
"Discovered by Henry Cavendish in 1776.")
e['He'].description = (
"Colourless, odourless gaseous nonmetallic element. Belongs to "
"group 18 of the periodic table. Lowest boiling point of all "
"elements and can only be solidified under pressure. Chemically "
"inert, no known compounds. Discovered in the solar spectrum in "
"1868 by Lockyer.")
e['Li'].description = (
"Socket silvery metal. First member of group 1 of the periodic "
"table. Lithium salts are used in psychomedicine.")
e['Be'].description = (
"Grey metallic element of group 2 of the periodic table. Is toxic "
"and can cause severe lung diseases and dermatitis. Shows high "
"covalent character. It was isolated independently by F. Wohler "
"and A.A. Bussy in 1828.")
e['B'].description = (
"An element of group 13 of the periodic table. There are two "
"allotropes, amorphous boron is a brown power, but metallic boron "
"is black. The metallic form is hard (9.3 on Mohs' scale) and a "
"bad conductor in room temperatures. It is never found free in "
"nature. Boron-10 is used in nuclear reactor control rods and "
"shields. It was discovered in 1808 by Sir Humphry Davy and by "
"J.L. Gay-Lussac and L.J. Thenard.")
e['C'].description = (
"Carbon is a member of group 14 of the periodic table. It has "
"three allotropic forms of it, diamonds, graphite and fullerite. "
"Carbon-14 is commonly used in radioactive dating. Carbon occurs "
"in all organic life and is the basis of organic chemistry. Carbon "
"has the interesting chemical property of being able to bond with "
"itself, and a wide variety of other elements.")
e['N'].description = (
"Colourless, gaseous element which belongs to group 15 of the "
"periodic table. Constitutes ~78% of the atmosphere and is an "
"essential part of the ecosystem. Nitrogen for industrial purposes "
"is acquired by the fractional distillation of liquid air. "
"Chemically inactive, reactive generally only at high temperatures "
"or in electrical discharges. It was discovered in 1772 by D. "
"Rutherford.")
e['O'].description = (
"A colourless, odourless gaseous element belonging to group 16 of "
"the periodic table. It is the most abundant element present in "
"the earth's crust. It also makes up 20.8% of the Earth's "
"atmosphere. For industrial purposes, it is separated from liquid "
"air by fractional distillation. It is used in high temperature "
"welding, and in breathing. It commonly comes in the form of "
"Oxygen, but is found as Ozone in the upper atmosphere. It was "
"discovered by Priestley in 1774.")
e['F'].description = (
"A poisonous pale yellow gaseous element belonging to group 17 of "
"the periodic table (The halogens). It is the most chemically "
"reactive and electronegative element. It is highly dangerous, "
"causing severe chemical burns on contact with flesh. Fluorine was "
"identified by Scheele in 1771 and first isolated by Moissan in "
"1886.")
e['Ne'].description = (
"Colourless gaseous element of group 18 on the periodic table "
"(noble gases). Neon occurs in the atmosphere, and comprises "
"0.0018% of the volume of the atmosphere. It has a distinct "
"reddish glow when used in discharge tubes and neon based lamps. "
"It forms almost no chemical compounds. Neon was discovered in "
"1898 by Sir William Ramsey and M.W. Travers.")
e['Na'].description = (
"Soft silvery reactive element belonging to group 1 of the "
"periodic table (alkali metals). It is highly reactive, oxidizing "
"in air and reacting violently with water, forcing it to be kept "
"under oil. It was first isolated by Humphrey Davy in 1807.")
e['Mg'].description = (
"Silvery metallic element belonging to group 2 of the periodic "
"table (alkaline-earth metals). It is essential for living "
"organisms, and is used in a number of light alloys. Chemically "
"very reactive, it forms a protective oxide coating when exposed "
"to air and burns with an intense white flame. It also reacts with "
"sulphur, nitrogen and the halogens. First isolated by Bussy in "
"1828.")
e['Al'].description = (
"Silvery-white lustrous metallic element of group 3 of the "
"periodic table. Highly reactive but protected by a thin "
"transparent layer of the oxide which quickly forms in air. There "
"are many alloys of aluminum, as well as a good number of "
"industrial uses. Makes up 8.1% of the Earth's crust, by weight. "
"Isolated in 1825 by H.C. Oersted.")
e['Si'].description = (
"Metalloid element belonging to group 14 of the periodic table. "
"It is the second most abundant element in the Earth's crust, "
"making up 25.7% of it by weight. Chemically less reactive than "
"carbon. First identified by Lavoisier in 1787 and first isolated "
"in 1823 by Berzelius.")
e['P'].description = (
"Non-metallic element belonging to group 15 of the periodic "
"table. Has a multiple allotropic forms. Essential element for "
"living organisms. It was discovered by Brandt in 1669.")
e['S'].description = (
"Yellow, nonmetallic element belonging to group 16 of the "
"periodic table. It is an essential element in living organisms, "
"needed in the amino acids cysteine and methionine, and hence in "
"many proteins. Absorbed by plants from the soil as sulphate ion.")
e['Cl'].description = (
"Halogen element. Poisonous greenish-yellow gas. Occurs widely in "
"nature as sodium chloride in seawater. Reacts directly with many "
"elements and compounds, strong oxidizing agent. Discovered by "
"Karl Scheele in 1774. Humphrey David confirmed it as an element "
"in 1810.")
e['Ar'].description = (
"Monatomic noble gas. Makes up 0.93% of the air. Colourless, "
"odorless. Is inert and has no true compounds. Lord Rayleigh and "
"Sir william Ramsey identified argon in 1894.")
e['K'].description = (
"Soft silvery metallic element belonging to group 1 of the "
"periodic table (alkali metals). Occurs naturally in seawater and "
"a many minerals. Highly reactive, chemically, it resembles sodium "
"in its behavior and compounds. Discovered by Sir Humphry Davy in "
"1807.")
e['Ca'].description = (
"Soft grey metallic element belonging to group 2 of the periodic "
"table. Used a reducing agent in the extraction of thorium, "
"zirconium and uranium. Essential element for living organisms.")
e['Sc'].description = (
"Rare soft silvery metallic element belonging to group 3 of the "
"periodic table. There are ten isotopes, nine of which are "
"radioactive and have short half-lives. Predicted in 1869 by "
"Mendeleev, isolated by Nilson in 1879.")
e['Ti'].description = (
"White metallic transition element. Occurs in numerous minerals. "
"Used in strong, light corrosion-resistant alloys. Forms a passive "
"oxide coating when exposed to air. First discovered by Gregor in "
"1789.")
e['V'].description = (
"Soft and ductile, bright white metal. Good resistance to "
"corrosion by alkalis, sulphuric and hydrochloric acid. It "
"oxidizes readily about 933K. There are two naturally occurring "
"isotopes of vanadium, and 5 radioisotopes, V-49 having the "
"longest half-life at 337 days. Vanadium has nuclear applications, "
"the foil is used in cladding titanium to steel, and "
"vanadium-gallium tape is used to produce a superconductive "
"magnet. Originally discovered by Andres Manuel del Rio of Mexico "
"City in 1801. His discovery went unheeded, however, and in 1820, "
"Nils Gabriel Sefstron of Sweden rediscovered it. Metallic "
"vanadium was isolated by Henry Enfield Roscoe in 1867. The name "
"vanadium comes from Vanadis, a goddess of Scandinavian mythology. "
"Silvery-white metallic transition element. Vanadium is essential "
"to Ascidians. Rats and chickens are also known to require it. "
"Metal powder is a fire hazard, and vanadium compounds should be "
"considered highly toxic. May cause lung cancer if inhaled.")
e['Cr'].description = (
"Hard silvery transition element. Used in decorative "
"electroplating. Discovered in 1797 by Vauquelin.")
e['Mn'].description = (
"Grey brittle metallic transition element. Rather "
"electropositive, combines with some non-metals when heated. "
"Discovered in 1774 by Scheele.")
e['Fe'].description = (
"Silvery malleable and ductile metallic transition element. Has "
"nine isotopes and is the fourth most abundant element in the "
"earth's crust. Required by living organisms as a trace element "
"(used in hemoglobin in humans.) Quite reactive, oxidizes in moist "
"air, displaces hydrogen from dilute acids and combines with "
"nonmetallic elements.")
e['Co'].description = (
"Light grey transition element. Some meteorites contain small "
"amounts of metallic cobalt. Generally alloyed for use. Mammals "
"require small amounts of cobalt salts. Cobalt-60, an artificially "
"produced radioactive isotope of Cobalt is an important "
"radioactive tracer and cancer-treatment agent. Discovered by G. "
"Brandt in 1737.")
e['Ni'].description = (
"Malleable ductile silvery metallic transition element. "
"Discovered by A.F. Cronstedt in 1751.")
e['Cu'].description = (
"Red-brown transition element. Known by the Romans as 'cuprum.' "
"Extracted and used for thousands of years. Malleable, ductile and "
"an excellent conductor of heat and electricity. When in moist "
"conditions, a greenish layer forms on the outside.")
e['Zn'].description = (
"Blue-white metallic element. Occurs in multiple compounds "
"naturally. Five stable isotopes are six radioactive isotopes have "
"been found. Chemically a reactive metal, combines with oxygen and "
"other non-metals, reacts with dilute acids to release hydrogen.")
e['Ga'].description = (
"Soft silvery metallic element, belongs to group 13 of the "
"periodic table. The two stable isotopes are Ga-69 and Ga-71. "
"Eight radioactive isotopes are known, all having short "
"half-lives. Gallium Arsenide is used as a semiconductor. Corrodes "
"most other metals by diffusing into their lattice. First "
"identified by Francois Lecoq de Boisbaudran in 1875.")
e['Ge'].description = (
"Lustrous hard metalloid element, belongs to group 14 of the "
"periodic table. Forms a large number of organometallic compounds. "
"Predicted by Mendeleev in 1871, it was actually found in 1886 by "
"Winkler.")
e['As'].description = (
"Metalloid element of group 15. There are three allotropes, "
"yellow, black, and grey. Reacts with halogens, concentrated "
"oxidizing acids and hot alkalis. Albertus Magnus is believed to "
"have been the first to isolate the element in 1250.")
e['Se'].description = (
"Metalloid element, belongs to group 16 of the periodic table. "
"Multiple allotropic forms exist. Chemically resembles sulphur. "
"Discovered in 1817 by Jons J. Berzelius.")
e['Br'].description = (
"Halogen element. Red volatile liquid at room temperature. Its "
"reactivity is somewhere between chlorine and iodine. Harmful to "
"human tissue in a liquid state, the vapour irritates eyes and "
"throat. Discovered in 1826 by Antoine Balard.")
e['Kr'].description = (
"Colorless gaseous element, belongs to the noble gases. Occurs in "
"the air, 0.0001% by volume. It can be extracted from liquid air "
"by fractional distillation. Generally not isolated, but used with "
"other inert gases in fluorescent lamps. Five natural isotopes, "
"and five radioactive isotopes. Kr-85, the most stable radioactive "
"isotope, has a half-life of 10.76 years and is produced in "
"fission reactors. Practically inert, though known to form "
"compounds with Fluorine.")
e['Rb'].description = (
"Soft silvery metallic element, belongs to group 1 of the "
"periodic table. Rb-97, the naturally occurring isotope, is "
"radioactive. It is highly reactive, with properties similar to "
"other elements in group 1, like igniting spontaneously in air. "
"Discovered spectroscopically in 1861 by W. Bunsen and G.R. "
"Kirchoff.")
e['Sr'].description = (
"Soft yellowish metallic element, belongs to group 2 of the "
"periodic table. Highly reactive chemically. Sr-90 is present in "
"radioactive fallout and has a half-life of 28 years. Discovered "
"in 1798 by Klaproth and Hope, isolated in 1808 by Humphry Davy.")
e['Y'].description = (
"Silvery-grey metallic element of group 3 on the periodic table. "
"Found in uranium ores. The only natural isotope is Y-89, there "
"are 14 other artificial isotopes. Chemically resembles the "
"lanthanoids. Stable in the air below 400 degrees, celsius. "
"Discovered in 1828 by Friedrich Wohler.")
e['Zr'].description = (
"Grey-white metallic transition element. Five natural isotopes "
"and six radioactive isotopes are known. Used in nuclear reactors "
"for a Neutron absorber. Discovered in 1789 by Martin Klaproth, "
"isolated in 1824 by Berzelius.")
e['Nb'].description = (
"Soft, ductile grey-blue metallic transition element. Used in "
"special steels and in welded joints to increase strength. "
"Combines with halogens and oxidizes in air at 200 degrees "
"celsius. Discovered by Charles Hatchett in 1801 and isolated by "
"Blomstrand in 1864. Called Columbium originally.")
e['Mo'].description = (
"Silvery-white, hard metallic transition element. It is "
"chemically unreactive and is not affected by most acids. It "
"oxidizes at high temperatures. There are seven natural isotopes, "
"and four radioisotopes, Mo-93 being the most stable with a "
"half-life of 3500 years. Molybdenum is used in almost all "
"high-strength steels, it has nuclear applications, and is a "
"catalyst in petroleum refining. Discovered in 1778 by Carl "
"Welhelm Scheele of Sweden. Impure metal was prepared in 1782 by "
"Peter Jacob Hjelm. The name comes from the Greek word molybdos "
"which means lead. Trace amounts of molybdenum are required for "
"all known forms of life. All molybdenum compounds should be "
"considered highly toxic, and will also cause severe birth "
"defects.")
e['Tc'].description = (
"Radioactive metallic transition element. Can be detected in some "
"stars and the fission products of uranium. First made by Perrier "
"and Segre by bombarding molybdenum with deutrons, giving them "
"Tc-97. Tc-99 is the most stable isotope with a half-life of "
"2.6*10^6 years. Sixteen isotopes are known. Organic technetium "
"compounds are used in bone imaging. Chemical properties are "
"intermediate between rhenium and manganese.")
e['Ru'].description = (
"Hard white metallic transition element. Found with platinum, "
"used as a catalyst in some platinum alloys. Dissolves in fused "
"alkalis, and is not attacked by acids. Reacts with halogens and "
"oxygen at high temperatures. Isolated in 1844 by K.K. Klaus.")
e['Rh'].description = (
"Silvery white metallic transition element. Found with platinum "
"and used in some platinum alloys. Not attacked by acids, "
"dissolves only in aqua regia. Discovered in 1803 by W.H. "
"Wollaston.")
e['Pd'].description = (
"Soft white ductile transition element. Found with some copper "
"and nickel ores. Does not react with oxygen at normal "
"temperatures. Dissolves slowly in hydrochloric acid. Discovered "
"in 1803 by W.H. Wollaston.")
e['Ag'].description = (
"White lustrous soft metallic transition element. Found in both "
"its elemental form and in minerals. Used in jewellery, tableware "
"and so on. Less reactive than silver, chemically.")
e['Cd'].description = (
"Soft bluish metal belonging to group 12 of the periodic table. "
"Extremely toxic even in low concentrations. Chemically similar to "
"zinc, but lends itself to more complex compounds. Discovered in "
"1817 by F. Stromeyer.")
e['In'].description = (
"Soft silvery element belonging to group 13 of the periodic "
"table. The most common natural isotope is In-115, which has a "
"half-life of 6*10^4 years. Five other radioisotopes exist. "
"Discovered in 1863 by Reich and Richter.")
e['Sn'].description = (
"Silvery malleable metallic element belonging to group 14 of the "
"periodic table. Twenty-six isotopes are known, five of which are "
"radioactive. Chemically reactive. Combines directly with chlorine "
"and oxygen and displaces hydrogen from dilute acids.")
e['Sb'].description = (
"Element of group 15. Multiple allotropic forms. The stable form "
"of antimony is a blue-white metal. Yellow and black antimony are "
"unstable non-metals. Used in flame-proofing, paints, ceramics, "
"enamels, and rubber. Attacked by oxidizing acids and halogens. "
"First reported by Tholden in 1450.")
e['Te'].description = (
"Silvery metalloid element of group 16. Eight natural isotopes, "
"nine radioactive isotopes. Used in semiconductors and to a degree "
"in some steels. Chemistry is similar to Sulphur. Discovered in "
"1782 by Franz Miller.")
e['I'].description = (
"Dark violet nonmetallic element, belongs to group 17 of the "
"periodic table. Insoluble in water. Required as a trace element "
"for living organisms. One stable isotope, I-127 exists, in "
"addition to fourteen radioactive isotopes. Chemically the least "
"reactive of the halogens, and the most electropositive metallic "
"halogen. Discovered in 1812 by Courtois.")
e['Xe'].description = (
"Colourless, odourless gas belonging to group 18 on the periodic "
"table (the noble gases.) Nine natural isotopes and seven "
"radioactive isotopes are known. Xenon was part of the first "
"noble-gas compound synthesized. Several others involving Xenon "
"have been found since then. Xenon was discovered by Ramsey and "
"Travers in 1898.")
e['Cs'].description = (
"Soft silvery-white metallic element belonging to group 1 of the "
"periodic table. One of the three metals which are liquid at room "
"temperature. Cs-133 is the natural, and only stable, isotope. "
"Fifteen other radioisotopes exist. Caesium reacts explosively "
"with cold water, and ice at temperatures above 157K. Caesium "
"hydroxide is the strongest base known. Caesium is the most "
"electropositive, most alkaline and has the least ionization "
"potential of all the elements. Known uses include the basis of "
"atomic clocks, catalyst for the hydrogenation of some organic "
"compounds, and in photoelectric cells. Caesium was discovered by "
"Gustav Kirchoff and Robert Bunsen in Germany in 1860 "
"spectroscopically. Its identification was based upon the bright "
"blue lines in its spectrum. The name comes from the latin word "
"caesius, which means sky blue. Caesium should be considered "
"highly toxic. Some of the radioisotopes are even more toxic.")
e['Ba'].description = (
"Silvery-white reactive element, belonging to group 2 of the "
"periodic table. Soluble barium compounds are extremely poisonous. "
"Identified in 1774 by Karl Scheele and extracted in 1808 by "
"Humphry Davy.")
e['La'].description = (
"(From the Greek word lanthanein, to line hidden) Silvery "
"metallic element belonging to group 3 of the periodic table and "
"oft considered to be one of the lanthanoids. Found in some "
"rare-earth minerals. Twenty-five natural isotopes exist. La-139 "
"which is stable, and La-138 which has a half-life of 10^10 to "
"10^15 years. The other twenty-three isotopes are radioactive. It "
"resembles the lanthanoids chemically. Lanthanum has a low to "
"moderate level of toxicity, and should be handled with care. "
"Discovered in 1839 by C.G. Mosander.")
e['Ce'].description = (
"Silvery metallic element, belongs to the lanthanoids. Four "
"natural isotopes exist, and fifteen radioactive isotopes have "
"been identified. Used in some rare-earth alloys. The oxidized "
"form is used in the glass industry. Discovered by Martin .H. "
"Klaproth in 1803.")
e['Pr'].description = (
"Soft silvery metallic element, belongs to the lanthanoids. Only "
"natural isotope is Pr-141 which is not radioactive. Fourteen "
"radioactive isotopes have been artificially produced. Used in "
"rare-earth alloys. Discovered in 1885 by C.A. von Welsbach.")
e['Nd'].description = (
"Soft bright silvery metallic element, belongs to the "
"lanthanoids. Seven natural isotopes, Nd-144 being the only "
"radioactive one with a half-life of 10^10 to 10^15 years. Six "
"artificial radioisotopes have been produced. The metal is used in "
"glass works to color class a shade of violet-purple and make it "
"dichroic. One of the more reactive rare-earth metals, quickly "
"reacts with air. Used in some rare-earth alloys. Neodymium is "
"used to color the glass used in welder's glasses. Neodymium is "
"also used in very powerful, permanent magnets (Nd2Fe14B). "
"Discovered by Carl F. Auer von Welsbach in Austria in 1885 by "
"separating didymium into its elemental components Praseodymium "
"and neodymium. The name comes from the Greek words 'neos didymos' "
"which means 'new twin'. Neodymium should be considered highly "
"toxic, however evidence would seem to show that it acts as little "
"more than a skin and eye irritant. The dust however, presents a "
"fire and explosion hazard.")
e['Pm'].description = (
"Soft silvery metallic element, belongs to the lanthanoids. "
"Pm-147, the only natural isotope, is radioactive and has a "
"half-life of 252 years. Eighteen radioisotopes have been "
"produced, but all have very short half-lives. Found only in "
"nuclear decay waste. Pm-147 is of interest as a beta-decay "
"source, however Pm-146 and Pm-148 have to be removed from it "
"first, as they generate gamma radiation. Discovered by J.A. "
"Marinsky, L.E. Glendenin and C.D. Coryell in 1947.")
e['Sm'].description = (
"Soft silvery metallic element, belongs to the lanthanoids. Seven "
"natural isotopes, Sm-147 is the only radioisotope, and has a "
"half-life of 2.5*10^11 years. Used for making special alloys "
"needed in the production of nuclear reactors. Also used as a "
"neutron absorber. Small quantities of samarium oxide is used in "
"special optical glasses. The largest use of the element is its "
"ferromagnetic alloy which produces permanent magnets that are "
"five times stronger than magnets produced by any other material. "
"Discovered by Francois Lecoq de Boisbaudran in 1879.")
e['Eu'].description = (
"Soft silvery metallic element belonging to the lanthanoids. "
"Eu-151 and Eu-153 are the only two stable isotopes, both of which "
"are Neutron absorbers. Discovered in 1889 by Sir William Crookes.")
e['Gd'].description = (
"Soft silvery metallic element belonging to the lanthanoids. "
"Seven natural, stable isotopes are known in addition to eleven "
"artificial isotopes. Gd-155 and Gd-157 and the best neutron "
"absorbers of all elements. Gadolinium compounds are used in "
"electronics. Discovered by J.C.G Marignac in 1880.")
e['Tb'].description = (
"Silvery metallic element belonging to the lanthanoids. Tb-159 is "
"the only stable isotope, there are seventeen artificial isotopes. "
"Discovered by G.G. Mosander in 1843.")
e['Dy'].description = (
"Metallic with a bright silvery-white lustre. Dysprosium belongs "
"to the lanthanoids. It is relatively stable in air at room "
"temperatures, it will however dissolve in mineral acids, evolving "
"hydrogen. It is found in from rare-earth minerals. There are "
"seven natural isotopes of dysprosium, and eight radioisotopes, "
"Dy-154 being the most stable with a half-life of 3*10^6 years. "
"Dysprosium is used as a neutron absorber in nuclear fission "
"reactions, and in compact disks. It was discovered by Paul Emile "
"Lecoq de Boisbaudran in 1886 in France. Its name comes from the "
"Greek word dysprositos, which means hard to obtain.")
e['Ho'].description = (
"Relatively soft and malleable silvery-white metallic element, "
"which is stable in dry air at room temperature. It oxidizes in "
"moist air and at high temperatures. It belongs to the "
"lanthanoids. A rare-earth metal, it is found in the minerals "
"monazite and gadolinite. It possesses unusual magnetic "
"properties. One natural isotope, Ho-165 exists, six radioisotopes "
"exist, the most stable being Ho-163 with a half-life of 4570 "
"years. Holmium is used in some metal alloys, it is also said to "
"stimulate the metabolism. Discovered by Per Theodor Cleve and "
"J.L. Soret in Switzerland in 1879. The name homium comes from the "
"Greek word Holmia which means Sweden. While all holmium compounds "
"should be considered highly toxic, initial evidence seems to "
"indicate that they do not pose much danger. The metal's dust "
"however, is a fire hazard.")
e['Er'].description = (
"Soft silvery metallic element which belongs to the lanthanoids. "
"Six natural isotopes that are stable. Twelve artificial isotopes "
"are known. Used in nuclear technology as a neutron absorber. It "
"is being investigated for other possible uses. Discovered by Carl "
"G. Mosander in 1843.")
e['Tm'].description = (
"Soft grey metallic element that belongs to the lanthanoids. One "
"natural isotope exists, Tm-169, and seventeen artificial isotopes "
"have been produced. No known uses for the element. Discovered in "
"1879 by Per Theodor Cleve.")
e['Yb'].description = (
"Silvery metallic element of the lanthanoids. Seven natural "
"isotopes and ten artificial isotopes are known. Used in certain "
"steels. Discovered by J.D.G. Marignac in 1878.")
e['Lu'].description = (
"Silvery-white rare-earth metal which is relatively stable in "
"air. It happens to be the most expensive rare-earth metal. Its "
"found with almost all rare-earth metals, but is very difficult to "
"separate from other elements. Least abundant of all natural "
"elements. Used in metal alloys, and as a catalyst in various "
"processes. There are two natural, stable isotopes, and seven "
"radioisotopes, the most stable being Lu-174 with a half-life of "
"3.3 years. The separation of lutetium from Ytterbium was "
"described by Georges Urbain in 1907. It was discovered at "
"approximately the same time by Carl Auer von Welsbach. The name "
"comes from the Greek word lutetia which means Paris.")
e['Hf'].description = (
"Silvery lustrous metallic transition element. Used in tungsten "
"alloys in filaments and electrodes, also acts as a neutron "
"absorber. First reported by Urbain in 1911, existence was finally "
"established in 1923 by D. Coster, G.C. de Hevesy in 1923.")
e['Ta'].description = (
"Heavy blue-grey metallic transition element. Ta-181 is a stable "
"isotope, and Ta-180 is a radioactive isotope, with a half-life in "
"excess of 10^7 years. Used in surgery as it is unreactive. Forms "
"a passive oxide layer in air. Identified in 1802 by Ekeberg and "
"isolated in 1820 by Jons J. Berzelius.")
e['W'].description = (
"White or grey metallic transition element,formerly called "
"Wolfram. Forms a protective oxide in air and can be oxidized at "
"high temperature. First isolated by Jose and Fausto de Elhuyer in "
"1783.")
e['Re'].description = (
"Silvery-white metallic transition element. Obtained as a "
"by-product of molybdenum refinement. Rhenium-molybdenum alloys "
"are superconducting.")
e['Os'].description = (
"Hard blue-white metallic transition element. Found with platinum "
"and used in some alloys with platinum and iridium.")
e['Ir'].description = (
"Very hard and brittle, silvery metallic transition element. It "
"has a yellowish cast to it. Salts of iridium are highly colored. "
"It is the most corrosion resistant metal known, not attacked by "
"any acid, but is attacked by molten salts. There are two natural "
"isotopes of iridium, and 4 radioisotopes, the most stable being "
"Ir-192 with a half-life of 73.83 days. Ir-192 decays into "
"Platinum, while the other radioisotopes decay into Osmium. "
"Iridium is used in high temperature apparatus, electrical "
"contacts, and as a hardening agent for platinumpy. Discovered in "
"1803 by Smithson Tennant in England. The name comes from the "
"Greek word iris, which means rainbow. Iridium metal is generally "
"non-toxic due to its relative unreactivity, but iridium compounds "
"should be considered highly toxic.")
e['Pt'].description = (
"Attractive greyish-white metal. When pure, it is malleable and "
"ductile. Does not oxidize in air, insoluble in hydrochloric and "
"nitric acid. Corroded by halogens, cyandies, sulphur and alkalis. "
"Hydrogen and Oxygen react explosively in the presence of "
"platinumpy. There are six stable isotopes and three "
"radioisotopes, the most stable being Pt-193 with a half-life of "
"60 years. Platinum is used in jewelry, laboratory equipment, "
"electrical contacts, dentistry, and anti-pollution devices in "
"cars. PtCl2(NH3)2 is used to treat some forms of cancer. "
"Platinum-Cobalt alloys have magnetic properties. It is also used "
"in the definition of the Standard Hydrogen Electrode. Discovered "
"by Antonio de Ulloa in South America in 1735. The name comes from "
"the Spanish word platina which means silver. Platinum metal is "
"generally not a health concern due to its unreactivity, however "
"platinum compounds should be considered highly toxic.")
e['Au'].description = (
"Gold is gold colored. It is the most malleable and ductile metal "
"known. There is only one stable isotope of gold, and five "
"radioisotopes of gold, Au-195 being the most stable with a "
"half-life of 186 days. Gold is used as a monetary standard, in "
"jewelry, dentistry, electronics. Au-198 is used in treating "
"cancer and some other medical conditions. Gold has been known to "
"exist as far back as 2600 BC. Gold comes from the Anglo-Saxon "
"word gold. Its symbol, Au, comes from the Latin word aurum, which "
"means gold. Gold is not particularly toxic, however it is known "
"to cause damage to the liver and kidneys in some.")
e['Hg'].description = (
"Heavy silvery liquid metallic element, belongs to the zinc "
"group. Used in thermometers, barometers and other scientific "
"apparatus. Less reactive than zinc and cadmium, does not displace "
"hydrogen from acids. Forms a number of complexes and "
"organomercury compounds.")
e['Tl'].description = (
"Pure, unreacted thallium appears silvery-white and exhibits a "
"metallic lustre. Upon reacting with air, it begins to turn "
"bluish-grey and looks like lead. It is very malleable, and can be "
"cut with a knife. There are two stable isotopes, and four "
"radioisotopes, Tl-204 being the most stable with a half-life of "
"3.78 years. Thallium sulphate was used as a rodenticide. Thallium "
"sulphine's conductivity changes with exposure to infrared light, "
"this gives it a use in infrared detectors. Discovered by Sir "
"William Crookes via spectroscopy. Its name comes from the Greek "
"word thallos, which means green twig. Thallium and its compounds "
"are toxic and can cause cancer.")
e['Pb'].description = (
"Heavy dull grey ductile metallic element, belongs to group 14. "
"Used in building construction, lead-place accumulators, bullets "
"and shot, and is part of solder, pewter, bearing metals, type "
"metals and fusible alloys.")
e['Bi'].description = (
"White crystalline metal with a pink tinge, belongs to group 15. "
"Most diamagnetic of all metals and has the lowest thermal "
"conductivity of all the elements except mercury. Lead-free "
"bismuth compounds are used in cosmetics and medical procedures. "
"Burns in the air and produces a blue flame. In 1753, C.G. Junine "
"first demonstrated that it was different from lead.")
e['Po'].description = (
"Rare radioactive metallic element, belongs to group 16 of the "
"periodic table. Over 30 known isotopes exist, the most of all "
"elements. Po-209 has a half-life of 103 years. Possible uses in "
"heating spacecraft. Discovered by Marie Curie in 1898 in a sample "
"of pitchblende.")
e['At'].description = (
"Radioactive halogen element. Occurs naturally from uranium and "
"thorium decay. At least 20 known isotopes. At-210, the most "
"stable, has a half-life of 8.3 hours. Synthesized by nuclear "
"bombardment in 1940 by D.R. Corson, K.R. MacKenzie and E. Segre "
"at the University of California.")
e['Rn'].description = (
"Colorless radioactive gaseous element, belongs to the noble "
"gases. Of the twenty known isotopes, the most stable is Rn-222 "
"with a half-life of 3.8 days. Formed by the radioactive decay of "
"Radium-226. Radon itself decays into Polonium. Used in "
"radiotherapy. As a noble gas, it is effectively inert, though "
"radon fluoride has been synthesized. First isolated in 1908 by "
"Ramsey and Gray.")
e['Fr'].description = (
"Radioactive element, belongs to group 1 of the periodic table. "
"Found in uranium and thorium ores. The 22 known isotopes are all "
"radioactive, with the most stable being Fr-223. Its existence was "
"confirmed in 1939 by Marguerite Perey.")
e['Ra'].description = (
"Radioactive metallic transuranic element, belongs to group 2 of "
"the periodic table. Most stable isotope, Ra-226 has a half-life "
"of 1602 years, which decays into radon. Isolated from pitchblende "
"in 1898 Marie and Pierre Curie.")
e['Ac'].description = (
"Silvery radioactive metallic element, belongs to group 3 of the "
"periodic table. The most stable isotope, Ac-227, has a half-life "
"of 217 years. Ac-228 (half-life of 6.13 hours) also occurs in "
"nature. There are 22 other artificial isotopes, all radioactive "
"and having very short half-lives. Chemistry similar to "
"lanthanumpy. Used as a source of alpha particles. Discovered by "
"A. Debierne in 1899.")
e['Th'].description = (
"Grey radioactive metallic element. Belongs to actinoids. Found "
"in monazite sand in Brazil, India and the US. Thorium-232 has a "
"half-life of 1.39x10^10 years. Can be used as a nuclear fuel for "
"breeder reactors. Thorium-232 captures slow Neutrons and breeds "
"uranium-233. Discovered by Jons J. Berzelius in 1829.")
e['Pa'].description = (
"Radioactive metallic element, belongs to the actinoids. The most "
"stable isotope, Pa-231 has a half-life of 2.43*10^4 years. At "
"least 10 other radioactive isotopes are known. No practical "
"applications are known. Discovered in 1917 by Lise Meitner and "
"Otto Hahn.")
e['U'].description = (
"White radioactive metallic element belonging to the actinoids. "
"Three natural isotopes, U-238, U-235 and U-234. Uranium-235 is "
"used as the fuel for nuclear reactors and weapons. Discovered by "
"Martin H. Klaproth in 1789.")
e['Np'].description = (
"Radioactive metallic transuranic element, belongs to the "
"actinoids. Np-237, the most stable isotope, has a half-life of "
"2.2*10^6 years and is a by product of nuclear reactors. The other "
"known isotopes have mass numbers 229 through 236, and 238 through "
"241. Np-236 has a half-life of 5*10^3 years. First produced by "
"Edwin M. McMillan and P.H. Abelson in 1940.")
e['Pu'].description = (
"Dense silvery radioactive metallic transuranic element, belongs "
"to the actinoids. Pu-244 is the most stable isotope with a "
"half-life of 7.6*10^7 years. Thirteen isotopes are known. Pu-239 "
"is the most important, it undergoes nuclear fission with slow "
"neutrons and is hence important to nuclear weapons and reactors. "
"Plutonium production is monitored down to the gram to prevent "
"military misuse. First produced by Gleen T. Seaborg, Edwin M. "
"McMillan, J.W. Kennedy and A.C. Wahl in 1940.")
e['Am'].description = (
"Radioactive metallic transuranic element, belongs to the "
"actinoids. Ten known isotopes. Am-243 is the most stable isotope, "
"with a half-life of 7.95*10^3 years. Discovered by Glenn T. "
"Seaborg and associates in 1945, it was obtained by bombarding "
"Uranium-238 with alpha particles.")
e['Cm'].description = (
"Radioactive metallic transuranic element. Belongs to actinoid "
"series. Nine known isotopes, Cm-247 has a half-life of 1.64*10^7 "
"years. First identified by Glenn T. Seaborg and associates in "
"1944, first produced by L.B. Werner and I. Perlman in 1947 by "
"bombarding americium-241 with Neutrons. Named for Marie Curie.")
e['Bk'].description = (
"Radioactive metallic transuranic element. Belongs to actinoid "
"series. Eight known isotopes, the most common Bk-247, has a "
"half-life of 1.4*10^3 years. First produced by Glenn T. Seaborg "
"and associates in 1949 by bombarding americium-241 with alpha "
"particles.")
e['Cf'].description = (
"Radioactive metallic transuranic element. Belongs to actinoid "
"series. Cf-251 has a half life of about 700 years. Nine isotopes "
"are known. Cf-252 is an intense Neutron source, which makes it an "
"intense Neutron source and gives it a use in Neutron activation "
"analysis and a possible use as a radiation source in medicine. "
"First produced by Glenn T. Seaborg and associates in 1950.")
e['Es'].description = (
"Appearance is unknown, however it is most probably metallic and "
"silver or gray in color. Radioactive metallic transuranic element "
"belonging to the actinoids. Es-254 has the longest half-life of "
"the eleven known isotopes at 270 days. First identified by Albert "
"Ghiorso and associates in the debris of the 1952 hydrogen bomb "
"explosion. In 1961 the first microgram quantities of Es-232 were "
"separated. While einsteinium never exists naturally, if a "
"sufficient amount was assembled, it would pose a radiation "
"hazard.")
e['Fm'].description = (
"Radioactive metallic transuranic element, belongs to the "
"actinoids. Ten known isotopes, most stable is Fm-257 with a "
"half-life of 10 days. First identified by Albert Ghiorso and "
"associates in the debris of the first hydrogen-bomb explosion in "
"1952.")
e['Md'].description = (
"Radioactive metallic transuranic element. Belongs to the "
"actinoid series. Only known isotope, Md-256 has a half-life of "
"1.3 hours. First identified by Glenn T. Seaborg, Albert Ghiorso "
"and associates in 1955. Alternative name Unnilunium has been "
"proposed. Named after the 'inventor' of the periodic table, "
"Dmitri Mendeleev.")
e['No'].description = (
"Radioactive metallic transuranic element, belongs to the "
"actinoids. Seven known isotopes exist, the most stable being "
"No-254 with a half-life of 255 seconds. First identified with "
"certainty by Albert Ghiorso and Glenn T. Seaborg in 1966. "
"Unnilbium has been proposed as an alternative name.")
e['Lr'].description = (
"Appearance unknown, however it is most likely silvery-white or "
"grey and metallic. Lawrencium is a synthetic rare-earth metal. "
"There are eight known radioisotopes, the most stable being Lr-262 "
"with a half-life of 3.6 hours. Due to the short half-life of "
"lawrencium, and its radioactivity, there are no known uses for "
"it. Identified by Albert Ghiorso in 1961 at Berkeley. It was "
"produced by bombarding californium with boron ions. The name is "
"temporary IUPAC nomenclature, the origin of the name comes from "
"Ernest O. Lawrence, the inventor of the cyclotron. If sufficient "
"amounts of lawrencium were produced, it would pose a radiation "
"hazard.")
e['Rf'].description = (
"Radioactive transactinide element. Expected to have similar "
"chemical properties to those displayed by hafnium. Rf-260 was "
"discovered by the Joint Nuclear Research Institute at Dubna "
"(U.S.S.R.) in 1964. Researchers at Berkeley discovered Unq-257 "
"and Unq-258 in 1964.")
e['Db'].description = (
"Also known as Hahnium, Ha. Radioactive transactinide element. "
"Half-life of 1.6s. Discovered in 1970 by Berkeley researchers. So "
"far, seven isotopes have been discovered.")
e['Sg'].description = (
"Half-life of 0.9 +/- 0.2 s. Discovered by the Joint Institute "
"for Nuclear Research at Dubna (U.S.S.R.) in June of 1974. Its "
"existence was confirmed by the Lawrence Berkeley Laboratory and "
"Livermore National Laboratory in September of 1974.")
e['Bh'].description = (
"Radioactive transition metal. Half-life of approximately 1/500 "
"s. Discovered by the Joint Institute for Nuclear Research at "
"Dubna (U.S.S.R.) in 1976. Confirmed by West German physicists at "
"the Heavy Ion Research Laboratory at Darmstadt.")
e['Hs'].description = (
"Radioactive transition metal first synthesized in 1984 by a "
"German research team led by Peter Armbruster and Gottfried "
"Muenzenberg at the Institute for Heavy Ion Research at Darmstadt.")
e['Mt'].description = (
"Half-life of approximately 5 ms. The creation of this element "
"demonstrated that fusion techniques could indeed be used to make "
"new, heavy nuclei. Made and identified by physicists of the Heavy "
"Ion Research Laboratory, Darmstadt, West Germany in 1982. Named "
"in honor of Lise Meitner, the Austrian physicist.")
return e[symbol].description
def sqlite_script():
"""Return SQL script to create sqlite database of elements.
Examples
--------
>>> import sqlite3
>>> con = sqlite3.connect(':memory:')
>>> cur = con.executescript(sqlite_script())
>>> con.commit()
>>> for r in cur.execute("SELECT name FROM element WHERE number=6"):
... str(r[0])
'Carbon'
>>> con.close()
"""
sql = ["""
CREATE TABLE "period" (
"number" TINYINT NOT NULL PRIMARY KEY,
"label" CHAR NOT NULL UNIQUE,
"description" VARCHAR(64)
);
CREATE TABLE "group" (
"number" TINYINT NOT NULL PRIMARY KEY,
"label" VARCHAR(8) NOT NULL,
"description" VARCHAR(64)
);
CREATE TABLE "block" (
"label" CHAR NOT NULL PRIMARY KEY,
"description" VARCHAR(64)
);
CREATE TABLE "series" (
"id" TINYINT NOT NULL PRIMARY KEY,
"label" VARCHAR(32) NOT NULL,
"description" VARCHAR(256)
);
CREATE TABLE "element" (
"number" TINYINT NOT NULL PRIMARY KEY,
"symbol" VARCHAR(2) UNIQUE NOT NULL,
"name" VARCHAR(16) UNIQUE NOT NULL,
"period" TINYINT NOT NULL,
--FOREIGN KEY("period") REFERENCES "period"(number),
"group" TINYINT NOT NULL,
--FOREIGN KEY("group") REFERENCES "group"(number),
"block" CHAR NOT NULL,
--FOREIGN KEY("block") REFERENCES "block"(label),
"series" TINYINT NOT NULL,
--FOREIGN KEY("series") REFERENCES "series"(id),
"mass" REAL NOT NULL,
"eleneg" REAL,
"covrad" REAL,
"atmrad" REAL,
"vdwrad" REAL,
"tboil" REAL,
"tmelt" REAL,
"density" REAL,
"eleaffin" REAL,
"eleconfig" VARCHAR(32),
"oxistates" VARCHAR(32),
"description" VARCHAR(2048)
);
CREATE TABLE "isotope" (
"element" TINYINT NOT NULL,
--FOREIGN KEY ("element") REFERENCES "element"("number"),
"massnum" TINYINT NOT NULL,
"mass" REAL NOT NULL,
"abundance" REAL NOT NULL,
PRIMARY KEY ("element", "massnum")
);
CREATE TABLE "eleconfig" (
"element" TINYINT NOT NULL,
--FOREIGN KEY ("element") REFERENCES "element"("number"),
"shell" TINYINT NOT NULL,
--FOREIGN KEY ("shell") REFERENCES "period"("number"),
"subshell" CHAR NOT NULL,
--FOREIGN KEY ("subshell") REFERENCES "block"("label"),
"count" TINYINT,
PRIMARY KEY ("element", "shell", "subshell")
);
CREATE TABLE "ionenergy" (
"element" TINYINT NOT NULL,
--FOREIGN KEY ("element") REFERENCES "element"("number"),
"number" TINYINT NOT NULL,
"energy" REAL NOT NULL,
PRIMARY KEY ("element", "number")
);
"""]
for key, label in PERIODS.items():
sql.append("""INSERT INTO "period" VALUES (%i, '%s', NULL);""" % (
key, label))
for key, (label, descr) in GROUPS.items():
sql.append("""INSERT INTO "group" VALUES (%i, '%s', '%s');""" % (
key, label, descr))
for data in BLOCKS.items():
sql.append("""INSERT INTO "block" VALUES ('%s', '%s');""" % data)
for series in sorted(SERIES):
sql.append("""INSERT INTO "series" VALUES (%i, '%s', '');""" % (
series, SERIES[series]))
for ele in ELEMENTS:
sql.append("""
INSERT INTO "element" VALUES (%i, '%s', '%s', %i, %i, '%s', %i,
%.10f, %.4f, %.4f, %.4f, %.4f,
%.4f, %.4f, %.4f, %.8f,
'%s', '%s',
'%s'
);""" % (
ele.number, ele.symbol, ele.name, ele.period, ele.group,
ele.block, ele.series, ele.mass, ele.eleneg,
ele.covrad, ele.atmrad, ele.vdwrad, ele.tboil, ele.tmelt,
ele.density, ele.eleaffin, ele.eleconfig, ele.oxistates,
word_wrap(
ele.description.replace("'", "\'\'").replace("\"", "\"\""),
linelen=74, indent=0, joinstr="\n ")))
for ele in ELEMENTS:
for iso in ele.isotopes.values():
sql.append(
"""INSERT INTO "isotope" VALUES (%i, %i, %.10f, %.8f);""" % (
ele.number, iso.massnumber, iso.mass, iso.abundance))
for ele in ELEMENTS:
for (shell, subshell), count in ele.eleconfig_dict.items():
sql.append(
"""INSERT INTO "eleconfig" VALUES (%i, %i, '%s', %i);""" % (
ele.number, shell, subshell, count))
for ele in ELEMENTS:
for i, ionenergy in enumerate(ele.ionenergy):
sql.append("""INSERT INTO "ionenergy" VALUES (%i, %i, %.4f);""" % (
ele.number, i + 1, ionenergy))
return '\n'.join(sql).replace(" ", "")
def word_wrap(text, linelen=80, indent=0, joinstr="\n"):
"""Return string, word wrapped at linelen."""
if len(text) < linelen:
return text
result = []
line = []
llen = -indent
for word in text.split():
llen += len(word) + 1
if llen < linelen:
line.append(word)
else:
result.append(" ".join(line))
line = [word]
llen = len(word)
if line:
result.append(" ".join(line))
return joinstr.join(result)
if __name__ == "__main__":
for ele in ELEMENTS:
print(repr(ele), '\n')
import doctest
doctest.testmod(verbose=False)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment