Skip to main content

Core data structures for Quantum Chemistry.

Project description

QCElemental

Build Status codecov Documentation Status Chat on Slack python

Documentation: GitHub Pages

Core data structures for Quantum Chemistry. QCElemental also contains 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.

✨ Getting Started

  • Installation. QCElemental supports Python 3.7+.

    python -m pip install qcelemental
    
  • To install QCElemental with molecule visualization capabilities (useful in iPython or Jupyter notebook environments):

    python -m pip install 'qcelemental[viz]`
    
  • To install QCElemental with various alignment capabilities using networkx

    python -m pip install 'qcelemental[align]`
    
  • Or install both:

    python -m pip install 'qcelemental[viz,align]`
    
  • See documentation

Periodic Table

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

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

Physical Constants

Physical constants can be acquired directly from the NIST CODATA:

>>> import qcelemental as qcel
>>> qcel.constants.Hartree_energy_in_eV
27.21138602
>>> qcel.constants.get('hartree ENERGY in ev')
27.21138602
>>> pc = qcel.constants.get('hartree ENERGY in ev', return_tuple=True)
>>> pc.label
'Hartree energy in eV'
>>> pc.data
Decimal('27.21138602')
>>> pc.units
'eV'
>>> 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")
3.2881547429884475e-14

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')
2.626719314386381
>>> qcel.covalentradii.get('I', units='angstrom')
1.39
>>> qcel.covalentradii.get(116)
Traceback (most recent call last):
...
qcelemental.exceptions.DataUnavailableError: ('covalent radius', 'Lv')
>>> qcel.covalentradii.get(116, missing=4.0)
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 most of the periodic table from Mantina, J. Phys. Chem. A (2009) doi: 10.1021/jp8111556 (details).

>>> import qcelemental as qcel
>>> qcel.vdwradii.get('I')
3.7416577284064996
>>> qcel.vdwradii.get('I', units='angstrom')
1.98
>>> 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.28.0.tar.gz (301.2 kB view details)

Uploaded Source

Built Distribution

qcelemental-0.28.0-py3-none-any.whl (334.1 kB view details)

Uploaded Python 3

File details

Details for the file qcelemental-0.28.0.tar.gz.

File metadata

  • Download URL: qcelemental-0.28.0.tar.gz
  • Upload date:
  • Size: 301.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.9

File hashes

Hashes for qcelemental-0.28.0.tar.gz
Algorithm Hash digest
SHA256 da96fddb88c1701f812b25369a6a169d35f2d5446c37c62e86048cb0f1b168a2
MD5 fc5eee950adc204fa3c797d64d63a4a3
BLAKE2b-256 bb5b35354aba787b2491f444ec8c07d03134927ba982c36fe62e2920f958a65e

See more details on using hashes here.

File details

Details for the file qcelemental-0.28.0-py3-none-any.whl.

File metadata

  • Download URL: qcelemental-0.28.0-py3-none-any.whl
  • Upload date:
  • Size: 334.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.9

File hashes

Hashes for qcelemental-0.28.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34fc05de5e9c32edd687e4306a050c42f9bca94b9feb2d51221f3156c8a327c9
MD5 c5345091410c7d5d6eeff190defb500e
BLAKE2b-256 5111d338d6549482d87ee92ba7f3d2ee32e4e6501d00b51ed2c631cc8e053ea5

See more details on using hashes here.

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