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.10+ starting with v0.50 (aka "next", aka "QCSchema v2 available").

    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.50.0rc4.tar.gz (7.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qcelemental-0.50.0rc4-py3-none-any.whl (358.4 kB view details)

Uploaded Python 3

File details

Details for the file qcelemental-0.50.0rc4.tar.gz.

File metadata

  • Download URL: qcelemental-0.50.0rc4.tar.gz
  • Upload date:
  • Size: 7.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for qcelemental-0.50.0rc4.tar.gz
Algorithm Hash digest
SHA256 3a282244922dca5a94f48ed57c5a2213e3a726d0c5e6f8708c80313426ff049a
MD5 bd21ef1a91dc10e6eeb0347e69edb0d0
BLAKE2b-256 ef9bb2f4d05f2d41a3f0b4fcbebb1bf713669c0a137182425a510e34c8f6f85d

See more details on using hashes here.

File details

Details for the file qcelemental-0.50.0rc4-py3-none-any.whl.

File metadata

File hashes

Hashes for qcelemental-0.50.0rc4-py3-none-any.whl
Algorithm Hash digest
SHA256 17eb06eb3c3169ec42d670b078fc5bfc3079dcfbcb62786deb2b9d3f544c766f
MD5 1e78d233d087c40c2aadc309956e1906
BLAKE2b-256 deeb10643c5c2a6f50a2aeb3fc9e75e0a75ed76ffd959dc70f052829fa1df389

See more details on using hashes here.

Supported by

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