Skip to main content

Essentials for Quantum Chemistry.

Project description


Build Status codecov Language grade: Python Documentation Status Chat on Slack python

QCElemental is a resource module for quantum chemistry containing physical constants and periodic table data from NIST and molecule handlers.

Periodic Table and Physical Constants data are pulled from NIST srd144 and srd121, respectively (details) in a renewable manner (class around NIST-published JSON file).

This project also contains a generator, validator, and translator for Molecule QCSchema.

It is intended to keep the QCElemental code compatible with Python 3.6+ as long as dependencies allow. Packages are assured for Python 3.8+.

Periodic Table

A variety of periodic table quantities are available using virtually any alias:

>>> import qcelemental as qcel
>>> qcel.periodictable.to_E('KRYPTON')
>>> qcel.periodictable.to_element(36)
>>> qcel.periodictable.to_Z('kr84')
>>> qcel.periodictable.to_A('Kr')
>>> qcel.periodictable.to_A('D')
>>> qcel.periodictable.to_mass('kr', return_decimal=True)
>>> qcel.periodictable.to_mass('kr84')
>>> qcel.periodictable.to_mass('Kr86')

Physical Constants

Physical constants can be acquired directly from the NIST CODATA:

>>> import qcelemental as qcel
>>> qcel.constants.Hartree_energy_in_eV
>>> qcel.constants.get('hartree ENERGY in ev')
>>> pc = qcel.constants.get('hartree ENERGY in ev', return_tuple=True)
>>> pc.label
'Hartree energy in eV'
>>> pc.units
>>> pc.comment
'uncertainty=0.000 000 17'

Alternatively, with the use of the Pint unit conversion package, arbitrary conversion factors can be obtained:

>>> qcel.constants.conversion_factor("bohr", "miles")

Covalent Radii

Covalent radii are accessible for most of the periodic table from Alvarez, Dalton Transactions (2008) doi:10.1039/b801115j (details).

>>> import qcelemental as qcel
>>> qcel.covalentradii.get('I')
>>> qcel.covalentradii.get('I', units='angstrom')
>>> qcel.covalentradii.get(116)
Traceback (most recent call last):
qcelemental.exceptions.DataUnavailableError: ('covalent radius', 'Lv')
>>> qcel.covalentradii.get(116, missing=4.0)
>>> qcel.covalentradii.get('iodine', return_tuple=True).dict()
{'numeric': True, 'label': 'I', 'units': 'angstrom', 'data': Decimal('1.39'), 'comment': 'e.s.d.=3 n=451', 'doi': 'DOI: 10.1039/b801115j'}

van der Waals Radii

Van der Waals radii are accessible for tmost of the periodic table from Mantina, J. Phys. Chem. A (2009) doi: 10.1021/jp8111556 (details).

>>> import qcelemental as qcel
>>> qcel.vdwradii.get('I')
>>> qcel.vdwradii.get('I', units='angstrom')
>>> qcel.vdwradii.get(116)
Traceback (most recent call last):
qcelemental.exceptions.DataUnavailableError: ('vanderwaals radius', 'Lv')
>>> qcel.vdwradii.get('iodine', return_tuple=True).dict()
{'numeric': True, 'label': 'I', 'units': 'angstrom', 'data': Decimal('1.98'), 'doi': 'DOI: 10.1021/jp8111556'}

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

qcelemental-0.25.1.tar.gz (295.3 kB view hashes)

Uploaded source

Built Distribution

qcelemental-0.25.1-py3-none-any.whl (334.2 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page