跳转到主要内容

量子化学的核心数据结构。

项目描述

QCElemental

Build Status codecov Documentation Status Chat on Slack python

文档: GitHub Pages

量子化学的核心数据结构。QCElemental还包括来自NIST的物理常数和元素周期表数据以及分子处理器。

元素周期表和物理常数数据分别从NIST srd144和srd121获取(详情),以可更新方式获取(围绕NIST发布的JSON文件的类)。

本项目还包含一个生成器、验证器和分子QCSchema的翻译器。

✨ 入门指南

  • 安装。QCElemental支持Python 3.7及以上版本。

    python -m pip install qcelemental
    
  • 安装带有分子可视化功能的QCElemental(在iPython或Jupyter notebook环境中很有用)

    python -m pip install 'qcelemental[viz]`
    
  • 使用networkx安装带有各种对齐功能的QCElemental

    python -m pip install 'qcelemental[align]`
    
  • 或者同时安装两者

    python -m pip install 'qcelemental[viz,align]`
    
  • 请参阅文档

元素周期表

可以使用几乎任何别名来访问各种周期表数量

>>> 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

物理常数

可以从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'

或者,使用Pint单位转换包,可以获得任意的转换因子

>>> qcel.constants.conversion_factor("bohr", "miles")
3.2881547429884475e-14

共价半径

共价半径可以从Alvarez, Dalton Transactions (2008) doi:10.1039/b801115j (详情)获取,适用于周期表中的大多数元素。

>>> 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'}

范德华半径

范德华半径可以从Mantina, J. Phys. Chem. A (2009) doi: 10.1021/jp8111556 (详情)获取,适用于周期表中的大多数元素。

>>> 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'}

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分布

qcelemental-0.28.0.tar.gz (301.2 kB 查看哈希值)

上传时间 源代码

构建版本

qcelemental-0.28.0-py3-none-any.whl (334.1 kB 查看哈希值)

上传时间 Python 3

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面