Python API with a database of atomic properties for elements in the periodic table
Project description
This package provides an API for accessing various properties of elements from the periodic table of elements.
Data
Following electronegativity scales are available either as stored values or computed on request from other properties:
Allen
Allred & Rochow
Cottrell & Sutton
Gordy
Li & Xue
Nagle
Martynov & Batsanov
Mulliken
Pauling
Sanderson
The following data are currently available:
Name |
Type |
Comment |
Unit |
Data Source |
---|---|---|---|---|
abundance_crust |
float |
Abundance in the Earth’s crust |
mg/kg |
|
abundance_sea |
float |
Abundance in the seas |
mg/L |
|
annotation |
str |
Annotations regarding the data |
||
atomic_number |
int |
Atomic number |
||
atomic_radius |
float |
Atomic radius |
pm |
|
atomic_volume |
float |
Atomic volume |
cm3/mol |
|
block |
int |
Block in periodic table |
||
boiling_point |
float |
Boiling temperature |
K |
|
c6 |
float |
C_6 dispersion coefficient in a.u. |
a.u. |
|
covalent_radius_bragg |
float |
Covalent radius by Bragg |
pm |
|
covalent_radius_cordero |
float |
Covalent radius by Cerdero et al. |
pm |
|
covalent_radius_pyykko |
float |
Covalent radius by Pyykko et al. |
pm |
|
covalent_radius_slater |
float |
Covalent radius by Slater |
pm |
|
cpk_color |
str |
Element color in CPK convention |
HEX |
|
density |
float |
Density at 295K |
g/cm3 |
|
description |
str |
Short description of the element |
||
dipole_polarizability |
float |
Dipole polarizability |
a.u. |
|
electron_affinity |
float |
Electron affinity |
eV |
|
electrons |
int |
Number of electrons |
||
en_allen |
float |
Allen’s scale of electronegativity |
eV |
|
en_mulliken |
float |
Mulliken’s scale of electronegativity |
eV |
|
en_pauling |
float |
Pauling’s scale of electronegativity |
||
econf |
str |
Ground state electron configuration |
||
evaporation_heat |
float |
Evaporation heat |
kJ/mol |
|
fusion_heat |
float |
Fusion heat |
kJ/mol |
|
gas_basicity |
float |
Gas basicity |
kJ/mol |
|
group |
int |
Group in periodic table |
||
heat_of_formation |
float |
Heat of formation |
kJ/mol |
|
ionenergy |
tuple |
Ionization energies |
eV |
|
ionic_radii |
list |
Ionic and crystal radii in pm |
pm |
|
isotopes |
list |
Isotopes |
||
jmol_color |
str |
Element color in Jmol convention |
HEX |
|
lattice_constant |
float |
Lattice constant |
Angstrom |
|
lattice_structure |
str |
Lattice structure code |
||
mass |
float |
Relative atomic mass |
||
mass_number |
int |
Mass number (most abundant isotope) |
||
melting_point |
float |
Melting temperature |
K |
|
molcas_gv_color |
str |
Element color in MOCAS GV convention |
HEX |
|
name |
str |
Name in English |
||
neutrons |
int |
Number of neutrons (most abundant isotope) |
||
oxistates |
list |
Oxidation states |
||
period |
int |
Period in periodic table |
||
proton_affinity |
float |
Proton affinity |
kJ/mol |
|
protons |
int |
Number of protons |
||
sconst |
float |
Nuclear charge screening constants |
||
series |
int |
Index to chemical series |
||
specific_heat |
float |
Specific heat @ 20 C |
J/(g mol) |
|
symbol |
str |
Chemical symbol |
||
thermal_conductivity |
float |
Thermal conductivity @25 C |
W/(m K) |
|
vdw_radius |
float |
Van der Waals radius |
pm |
|
vdw_radius_batsanov |
float |
Van der Waals radius according to Batsanov |
pm |
|
vdw_radius_bondi |
float |
Van der Waals radius according to Bondi |
pm |
|
vdw_radius_dreiding |
float |
Van der Waals radius from the DREIDING FF |
pm |
|
vdw_radius_mm3 |
float |
Van der Waals radius from the MM3 FF |
pm |
|
vdw_radius_rt |
float |
Van der Waals radius according to Rowland and Taylor |
pm |
|
vdw_radius_truhlar |
float |
Van der Waals radius according to Truhlar |
pm |
|
vdw_radius_uff |
float |
Van der Waals radius from the UFF |
pm |
Installation
The package can be installed using pip
pip install mendeleev
You can also install the most recent version from the repository:
pip install https://bitbucket.org/lukaszmentel/mendeleev/get/tip.tar.gz
Usage
The simple interface to the data is through the element method that returns the Element objects:
>>> from mendeleev import element
The element method accepts unique identifiers: atomic number, atomic symbol or element’s name in english. To retrieve the entries on Silicon by symbol type
>>> si = element('Si')
>>> si
Element(
annotation=u'',
atomic_number=14,
atomic_radius=132.0,
atomic_volume=12.1,
block=u'p',
boiling_point=2628.0,
covalent_radius_2008=111.00000000000001,
covalent_radius_2009=115.99999999999999,
density=2.33,
description=u"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.",
dipole_polarizability=37.31,
ec=1s2 2s2 2p6 3s2 3p2,
econf=u'[Ne] 3s2 3p2',
electron_affinity=1.3895211,
en_allen=11.33,
en_pauling=1.9,
evaporation_heat=383.0,
fusion_heat=50.6,
group_id=14,
lattice_constant=5.43,
lattice_structure=u'DIA',
mass=28.0855,
melting_point=u'1683',
name=u'Silicon',
period=3,
specific_heat=0.703,
symbol=u'Si',
thermal_conductivity=149.0,
vdw_radius=210.0,
)
Similarly to access the data by atomic number or element names type
>>> al = element(13)
>>> al.name
'Aluminium'
>>> o = element('Oxygen')
>>> o.atomic_number
8
Lists of elements
The element method also accepts list or tuple of identifiers and then returns a list of Element objects
>>> c, h, o = element(['C', 'Hydrogen', 8])
>>> c.name, h.name, o.name
('Carbon', 'Hydrogen', 'Oxygen')
Composite Attributes
Currently four of the attributes are more complex object than str, int or float, those are:
oxistates, returns a list of oxidation states
ionenergies, returns a dictionary of ionization energies
isotopes, returns a list of Isotope objects
ionic_radii returns a list of IonicRadius objects
Oxidation states
For examples oxistates returns a list of oxidation states for a given element
>>> fe = element('Fe')
>>> fe.oxistates
[6, 3, 2, 0, -2]
Ionization energies
The ionenergies returns a dictionary with ionization energies as values and degrees of ionization as keys.
>>> fe = element('Fe')
>>> fe.ionenergies
{1: 7.9024678,
2: 16.1992,
3: 30.651,
4: 54.91,
5: 75.0,
6: 98.985,
7: 125.0,
8: 151.06,
9: 233.6,
10: 262.1,
11: 290.9,
12: 330.81,
13: 361.0,
14: 392.2,
15: 456.2,
16: 489.312,
17: 1262.7,
18: 1357.8,
19: 1460.0,
20: 1575.6,
21: 1687.0,
22: 1798.43,
23: 1950.4,
24: 2045.759,
25: 8828.1875,
26: 9277.681}
Isotopes
The isotopes attribute returns a list of Isotope objects with the following attributes per isotope
atomic_number
mass
abundance
mass_number
>>> fe = element('Fe')
>>> for iso in fe.isotopes:
... print(iso)
26 55.93494 91.75% 56
26 56.93540 2.12% 57
26 57.93328 0.28% 58
26 53.93961 5.85% 54
The columns represent the attributes atomic_number, mass, abundance and mass_number respectively.
Ionic radii
Another composite attribute is ionic_radii which returns a list of IonicRadius object with the following attributes
atomic_number, atomic number of the ion
charge, charge of the ion
econf, electronic configuration of the ion
coordination, coordination type of the ion
spin, spin state of the ion (HS or LS)
crystal_radius
ionic_radius
origin, source of the data
most_reliable, recommended value
>>> fe = element('Fe')
>>> for ir in fe.ionic_radii:
... print(ir)
charge= 2, coordination=IV , crystal_radius= 0.770, ionic_radius= 0.630
charge= 2, coordination=IVSQ , crystal_radius= 0.780, ionic_radius= 0.640
charge= 2, coordination=VI , crystal_radius= 0.750, ionic_radius= 0.610
charge= 2, coordination=VI , crystal_radius= 0.920, ionic_radius= 0.780
charge= 2, coordination=VIII , crystal_radius= 1.060, ionic_radius= 0.920
charge= 3, coordination=IV , crystal_radius= 0.630, ionic_radius= 0.490
charge= 3, coordination=V , crystal_radius= 0.720, ionic_radius= 0.580
charge= 3, coordination=VI , crystal_radius= 0.690, ionic_radius= 0.550
charge= 3, coordination=VI , crystal_radius= 0.785, ionic_radius= 0.645
charge= 3, coordination=VIII , crystal_radius= 0.920, ionic_radius= 0.780
charge= 4, coordination=VI , crystal_radius= 0.725, ionic_radius= 0.585
charge= 6, coordination=IV , crystal_radius= 0.390, ionic_radius= 0.250
CLI utility
For those who work in the terminal there is a simple command line interface (CLI) for printing the information about a given element. The script name is element.py and it accepts either the symbol or name of the element as an argument and prints the data about it. For example, to print the properties of silicon type
$ element.py 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.
Properties
==========
Annotation
Atomic number 14
Atomic radius 132
Atomic volume 12.1
Block p
Boiling point 2628
Covalent radius 2008 111
Covalent radius 2009 116
Cpk color #daa520
Density 2.33
Dipole polarizability 37.31
Electron affinity 1.38952
Electronic configuration [Ne] 3s2 3p2
En allen 11.33
En pauling 1.9
Evaporation heat 383
Fusion heat 50.6
Gas basicity 814.1
Group id 14
Heat of formation 450
Jmol color #f0c8a0
Lattice constant 5.43
Lattice structure DIA
Mass 28.0855
Melting point 1683
Name Silicon
Period 3
Proton affinity 837
Series id 5
Specific heat 0.703
Symbol Si
Thermal conductivity 149
Vdw radius 210
Documentation
Documentation can be found here.
Citing
If you use mendeleev in a scientific publication, please cite the software as
Funding
This project is supported by the RCN (The Research Council of Norway) project number 239193.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mendeleev-0.2.7-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3dd405bd37f7975880c794769bf334e5eb36ca2facfad8c09abea1e9b4887c6d |
|
MD5 | 28dc409fbbf70ac13047b81bed4e1920 |
|
BLAKE2b-256 | 6c9238668acb0b53cd3efaa6d727c77240c9baa627a0c64c5a7561408afc50d3 |