Skip to main content

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

[8]

abundance_sea

float

Abundance in the seas

mg/L

[8]

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.

[1], [2]

covalent_radius_bragg

float

Covalent radius by Bragg

pm

[3]

covalent_radius_cordero

float

Covalent radius by Cerdero et al.

pm

[4]

covalent_radius_pyykko

float

Covalent radius by Pyykko et al.

pm

[5]

covalent_radius_slater

float

Covalent radius by Slater

pm

[6]

cpk_color

str

Element color in CPK convention

HEX

[24]

density

float

Density at 295K

g/cm3

description

str

Short description of the element

dipole_polarizability

float

Dipole polarizability

a.u.

[7]

electron_affinity

float

Electron affinity

eV

[8], [9]

electrons

int

Number of electrons

en_allen

float

Allen’s scale of electronegativity

eV

[10], [11]

en_mulliken

float

Mulliken’s scale of electronegativity

eV

[12]

en_pauling

float

Pauling’s scale of electronegativity

[8]

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

[8]

group

int

Group in periodic table

heat_of_formation

float

Heat of formation

kJ/mol

[8]

ionenergy

tuple

Ionization energies

eV

[13]

ionic_radii

list

Ionic and crystal radii in pm

pm

[14]

isotopes

list

Isotopes

jmol_color

str

Element color in Jmol convention

HEX

[25]

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

[26]

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

[8]

protons

int

Number of protons

sconst

float

Nuclear charge screening constants

[15], [16]

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

[8]

vdw_radius_batsanov

float

Van der Waals radius according to Batsanov

pm

[17]

vdw_radius_bondi

float

Van der Waals radius according to Bondi

pm

[18]

vdw_radius_dreiding

float

Van der Waals radius from the DREIDING FF

pm

[19]

vdw_radius_mm3

float

Van der Waals radius from the MM3 FF

pm

[20]

vdw_radius_rt

float

Van der Waals radius according to Rowland and Taylor

pm

[21]

vdw_radius_truhlar

float

Van der Waals radius according to Truhlar

pm

[22]

vdw_radius_uff

float

Van der Waals radius from the UFF

pm

[23]

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 Status

Documentation can be found here.

Citing

If you use mendeleev in a scientific publication, please cite the software as

L. M. Mentel, mendeleev, 2014. Available at: https://bitbucket.org/lukaszmentel/mendeleev.

Funding

This project is supported by the RCN (The Research Council of Norway) project number 239193.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mendeleev-0.2.8.tar.gz (160.3 kB view hashes)

Uploaded Source

Built Distribution

mendeleev-0.2.8-py2.py3-none-any.whl (147.0 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page