qrunch.chemistry.molecule.basis_sets

Module with basis sets supported in the chemistry module.

Module Attributes

PopularBasisSetName

The available basis set names.

PyscfShell

an angular momentum followed by [exponent, coefficient, ...] rows.

PyscfElementBasis

PySCF basis data for a single element, in the format returned by pyscf.gto.basis.load.

Functions

aux_basis_from_orbital_basis(basis_set)

Select an appropriate auxiliary basis set for density fitting based on the orbital basis set.

is_element_basis_combination_supported(...)

Check if a given PySCF basis set supports a specific element.

reference_basis_for_pyscf(reference_basis, ...)

Turn a reference basis into something PySCF's minao arguments accept.

resolve_basis(value)

Resolve user basis name to internal Enum with PySCF-like normalization.

Classes

BasisSet

All supported basis sets.

class BasisSet

Bases: Enum

All supported basis sets.

ADZP = 'adzp'
AHLRICHS = 'ahlrichs'
AHLRICHSCFIT = 'ahlrichs-cfit'
ANO = 'ano'
ANO_RCC_MB = 'ano-rcc-mb'
ANO_RCC_VDZP = 'ano-rcc-vdzp'
ANO_RCC_VTZP = 'ano-rcc-vtzp'
AQZP = 'aqzp'
ATZP = 'atzp'
AUGCCPV5Z = 'aug-cc-pv5z'
AUGCCPV5ZDK = 'aug-cc-pv5z-dk'
AUGCCPV5ZJKFIT = 'aug-cc-pv5z-jkfit'
AUGCCPV5ZOPTRI = 'aug-cc-pv5z-optri'
AUGCCPV5ZRI = 'aug-cc-pv5z-ri'
AUGCCPVDZ = 'aug-cc-pvdz'
AUGCCPVDZDK = 'aug-cc-pvdz-dk'
AUGCCPVDZJKFIT = 'aug-cc-pvdz-jkfit'
AUGCCPVDZOPTRI = 'aug-cc-pvdz-optri'
AUGCCPVDZPJKFIT = 'aug-cc-pvdzp-jkfit'
AUGCCPVDZPRI = 'aug-cc-pvdzp-ri'
AUGCCPVDZRI = 'aug-cc-pvdz-ri'
AUGCCPVQZ = 'aug-cc-pvqz'
AUGCCPVQZDK = 'aug-cc-pvqz-dk'
AUGCCPVQZJKFIT = 'aug-cc-pvqz-jkfit'
AUGCCPVQZOPTRI = 'aug-cc-pvqz-optri'
AUGCCPVQZRI = 'aug-cc-pvqz-ri'
AUGCCPVTZ = 'aug-cc-pvtz'
AUGCCPVTZDK = 'aug-cc-pvtz-dk'
AUGCCPVTZJKFIT = 'aug-cc-pvtz-jkfit'
AUGCCPVTZOPTRI = 'aug-cc-pvtz-optri'
AUGCCPVTZRI = 'aug-cc-pvtz-ri'
AUGPC0 = 'aug-pc-0'
AUGPC1 = 'aug-pc-1'
AUGPC2 = 'aug-pc-2'
AUGPC3 = 'aug-pc-3'
AUGPC4 = 'aug-pc-4'
AUGPCSEG0 = 'aug-pcseg-0'
AUGPCSEG1 = 'aug-pcseg-1'
AUGPCSEG2 = 'aug-pcseg-2'
AUGPCSEG3 = 'aug-pcseg-3'
AUGPCSEG4 = 'aug-pcseg-4'
BFDV5Z = 'bfd-v5z'
BFDVDZ = 'bfd-vdz'
BFDVQZ = 'bfd-vqz'
BFDVTZ = 'bfd-vtz'
CCPV5Z = 'cc-pv5z'
CCPV5ZDK = 'cc-pv5z-dk'
CCPV5ZJKFIT = 'cc-pv5z-jkfit'
CCPV5ZPP = 'cc-pv5z-pp'
CCPV5ZRI = 'cc-pv5zri'
CCPVDZ = 'cc-pvdz'
CCPVDZDK = 'cc-pvdz-dk'
CCPVDZFIT = 'ccpvdz-fit'
CCPVDZJKFIT = 'cc-pvdz-jkfit'
CCPVDZPP = 'cc-pvdz-pp'
CCPVDZRI = 'cc-pvdz-ri'
CCPVQZ = 'cc-pvqz'
CCPVQZDK = 'cc-pvqz-dk'
CCPVQZJKFIT = 'cc-pvqz-jkfit'
CCPVQZPP = 'cc-pvqz-pp'
CCPVQZRI = 'cc-pvqz-ri'
CCPVTZ = 'cc-pvtz'
CCPVTZDK = 'cc-pvtz-dk'
CCPVTZFIT = 'ccpvtz-fit'
CCPVTZJKFIT = 'cc-pvtz-jkfit'
CCPVTZPP = 'cc-pvtz-pp'
CCPVTZRI = 'cc-pvtz-ri'
CRENBL = 'crenbl'
CRENBS = 'crenbs'
CRYSTALCCPVDZ = 'crystal-cc-pvdz'
DEF2_QZVP = 'def2-qzvp'
DEF2_QZVPD = 'def2-qzvpd'
DEF2_QZVPP = 'def2-qzvpp'
DEF2_QZVPPD = 'def2-qzvppd'
DEF2_QZVPPD_RI = 'def2-qzvppd-ri'
DEF2_QZVPP_RI = 'def2-qzvpp-ri'
DEF2_QZVP_RI = 'def2-qzvp-ri'
DEF2_SVP = 'def2-svp'
DEF2_SVPD = 'def2-svpd'
DEF2_SVPD_RI = 'def2-svpd-ri'
DEF2_SVP_RI = 'def2-svp-ri'
DEF2_TZVP = 'def2-tzvp'
DEF2_TZVPD = 'def2-tzvpd'
DEF2_TZVPD_RI = 'def2-tzvpd-ri'
DEF2_TZVPP = 'def2-tzvpp'
DEF2_TZVPPD = 'def2-tzvppd'
DEF2_TZVPPD_RI = 'def2-tzvppd-ri'
DEF2_TZVPP_RI = 'def2-tzvpp-ri'
DEF2_TZVP_RI = 'def2-tzvp-ri'
DEF2_UNIVERSAL_JFIT = 'def2-universal-jfit'
DEF2_UNIVERSAL_JKFIT = 'def2-universal-jkfit'
DEMON = 'demon'
DEMONCFIT = 'demon-cfit'
DYALL2ZP = 'dyall-2zp'
DYALL3ZP = 'dyall-3zp'
DYALL4ZP = 'dyall-4zp'
DYALLAAE2Z = 'dyall-aae2z'
DYALLAAE3Z = 'dyall-aae3z'
DYALLAAE4Z = 'dyall-aae4z'
DYALLACV2Z = 'dyall-acv2z'
DYALLACV3Z = 'dyall-acv3z'
DYALLACV4Z = 'dyall-acv4z'
DYALLAE2Z = 'dyall-ae2z'
DYALLAE3Z = 'dyall-ae3z'
DYALLAE4Z = 'dyall-ae4z'
DYALLAV2Z = 'dyall-av2z'
DYALLAV3Z = 'dyall-av3z'
DYALLAV4Z = 'dyall-av4z'
DYALLCV2Z = 'dyall-cv2z'
DYALLCV3Z = 'dyall-cv3z'
DYALLCV4Z = 'dyall-cv4z'
DYALLV2Z = 'dyall-v2z'
DYALLV3Z = 'dyall-v3z'
DYALLV4Z = 'dyall-v4z'
DZ = 'dz'
DZP = 'dzp'
DZPDK = 'dzp-dk'
DZPDUNNING = 'dzp-dunning'
DZVP = 'dzvp'
DZVP2 = 'dzvp2'
HEAVYAUGCCPVDZJKFIT = 'heavy-aug-cc-pvdz-jkfit'
HEAVYAUGCCPVDZRI = 'heavy-aug-cc-pvdz-ri'
HEAVYAUGCCPVTZJKFIT = 'heavy-aug-cc-pvtz-jkfit'
HEAVYAUGCCPVTZRI = 'heavy-aug-cc-pvtz-ri'
IGLO = 'iglo'
IGLO3 = 'iglo3'
LANL08 = 'lanl08'
LANL2DZ = 'lanl2dz'
LANL2TZ = 'lanl2tz'
MINAO = 'minao'
PC0 = 'pc-0'
PC1 = 'pc-1'
PC2 = 'pc-2'
PC3 = 'pc-3'
PC4 = 'pc-4'
PCSEG0 = 'pcseg-0'
PCSEG1 = 'pcseg-1'
PCSEG2 = 'pcseg-2'
PCSEG3 = 'pcseg-3'
PCSEG4 = 'pcseg-4'
POBTZVP = 'pob-tzvp'
POBTZVPP = 'pob-tzvpp'
POPLE_321G = '321g'
POPLE_321GS = '321gs'
POPLE_321G_STAR = '321g*'
POPLE_321_PP_G = '321++g'
POPLE_321_PP_GS = '321++gs'
POPLE_321_PP_G_STAR = '321++g*'
POPLE_431G = '431g'
POPLE_6311G = '6311g'
POPLE_6311GS = '6311gs'
POPLE_6311GSS = '6311gss'
POPLE_6311G_STAR = '6311g*'
POPLE_6311G_STAR_STAR = '6311g**'
POPLE_6311_PLUS_G = '6311+g'
POPLE_6311_PLUS_GS = '6311+gs'
POPLE_6311_PLUS_GSS = '6311+gss'
POPLE_6311_PLUS_G_STAR = '6311+g*'
POPLE_6311_PLUS_G_STAR_STAR = '6311+g**'
POPLE_6311_PP_G = '6311++g'
POPLE_6311_PP_GS = '6311++gs'
POPLE_6311_PP_GSS = '6311++gss'
POPLE_6311_PP_G_STAR = '6311++g*'
POPLE_6311_PP_G_STAR_STAR = '6311++g**'
POPLE_631G = '631g'
POPLE_631GS = '631gs'
POPLE_631GSS = '631gss'
POPLE_631G_STAR = '631g*'
POPLE_631G_STAR_STAR = '631g**'
POPLE_631_PLUS_G = '631+g'
POPLE_631_PLUS_GS = '631+gs'
POPLE_631_PLUS_GSS = '631+gss'
POPLE_631_PLUS_G_STAR = '631+g*'
POPLE_631_PLUS_G_STAR_STAR = '631+g**'
POPLE_631_PP_G = '631++g'
POPLE_631_PP_GS = '631++gs'
POPLE_631_PP_GSS = '631++gss'
POPLE_631_PP_G_STAR = '631++g*'
POPLE_631_PP_G_STAR_STAR = '631++g**'
QZP = 'qzp'
QZPDK = 'qzp-dk'
ROOSDZ = 'roos-dz'
ROOSTZ = 'roos-tz'
SBKJC = 'sbkjc'
STO3G = 'sto3g'
STO6G = 'sto6g'
TZP = 'tzp'
TZPDK = 'tzp-dk'
WEIGEND = 'weigend'
WEIGEND_ETB = 'weigend+etb'
PopularBasisSetName

The available basis set names.

alias of Literal[‘sto-3g’, ‘3-21g’, ‘6-31g’, ‘6-31g*’, ‘def2-svp’, ‘def2-tzvp’, ‘def2-tzvpp’, ‘cc-pvdz’, ‘cc-pvtz’, ‘cc-pvqz’, ‘aug-cc-pvdz’, ‘aug-cc-pvtz’, ‘aug-cc-pvqz’, ‘pc-0’, ‘pc-1’, ‘pc-2’, ‘pcseg-0’, ‘pcseg-1’, ‘pcseg-2’, ‘weigend’]

PyscfElementBasis

PySCF basis data for a single element, in the format returned by pyscf.gto.basis.load.

alias of list[list[int | list[float]]]

PyscfShell

an angular momentum followed by [exponent, coefficient, ...] rows.

Type:

One PySCF shell

alias of list[int | list[float]]

aux_basis_from_orbital_basis(basis_set: BasisSet) → BasisSet | None

Select an appropriate auxiliary basis set for density fitting based on the orbital basis set.

In case the basis set is not recognized or does not have a known tailored auxiliary basis, this function returns None, indicating that pre-defined auxiliary basis set is not available and an automatically generated auxiliary basis set (e.g., via the AutoAux procedure) should be used instead.

Only RI basis sets suitable for correlated treatments are returned (not JKFIT sets).

Parameters:

basis_set (BasisSet) – The orbital basis set.

Return type:

BasisSet | None

is_element_basis_combination_supported(basis_name: str, element_symbol: str) → bool

Check if a given PySCF basis set supports a specific element.

Parameters:
  • basis_name (str) – The name of the basis set (e.g., ‘sto-3g’, ‘cc-pvdz’).

  • element_symbol (str) – The chemical symbol of the element (e.g., ‘H’, ‘O’).

Returns:

True if the basis set supports the element, False otherwise.

Return type:

bool

reference_basis_for_pyscf(reference_basis: BasisSet | Literal['sto-3g', '3-21g', '6-31g', '6-31g*', 'def2-svp', 'def2-tzvp', 'def2-tzvpp', 'cc-pvdz', 'cc-pvtz', 'cc-pvqz', 'aug-cc-pvdz', 'aug-cc-pvtz', 'aug-cc-pvqz', 'pc-0', 'pc-1', 'pc-2', 'pcseg-0', 'pcseg-1', 'pcseg-2', 'weigend'] | str, pyscf_molecule: object) → str | dict[str, list[list[int | list[float]]]]

Turn a reference basis into something PySCF’s minao arguments accept.

Ordinary basis sets pass through as their PySCF name. The truncated ANO-RCC rungs have no PySCF data file, so they are materialized into a per-element basis dictionary instead; see _ANO_RCC_ZETA_LEVELS for why, and for how to remove this once basis_set_exchange is available. Both forms are accepted anywhere PySCF takes a basis, including lo.iao.iao, lo.iao.reference_mol and mcscf.avas.

Parameters:
  • reference_basis (BasisSet | Literal['sto-3g', '3-21g', '6-31g', '6-31g*', 'def2-svp', 'def2-tzvp', 'def2-tzvpp', 'cc-pvdz', 'cc-pvtz', 'cc-pvqz', 'aug-cc-pvdz', 'aug-cc-pvtz', 'aug-cc-pvqz', 'pc-0', 'pc-1', 'pc-2', 'pcseg-0', 'pcseg-1', 'pcseg-2', 'weigend'] | str) – The reference basis to resolve.

  • pyscf_molecule (object) – PySCF Mole whose elements the basis must cover. Only consulted for the generated ANO-RCC rungs, which must be built element by element.

Return type:

str | dict[str, list[list[int | list[float]]]]

resolve_basis(value: BasisSet | Literal['sto-3g', '3-21g', '6-31g', '6-31g*', 'def2-svp', 'def2-tzvp', 'def2-tzvpp', 'cc-pvdz', 'cc-pvtz', 'cc-pvqz', 'aug-cc-pvdz', 'aug-cc-pvtz', 'aug-cc-pvqz', 'pc-0', 'pc-1', 'pc-2', 'pcseg-0', 'pcseg-1', 'pcseg-2', 'weigend'] | str) → BasisSet

Resolve user basis name to internal Enum with PySCF-like normalization.

Accept: - BasisSet (passes through), - curated Literal names (popular), or - any str (case/spacing/hyphen-insensitive; ‘+’ and ‘*’ preserved).

Parameters:

value (BasisSet | Literal['sto-3g', '3-21g', '6-31g', '6-31g*', 'def2-svp', 'def2-tzvp', 'def2-tzvpp', 'cc-pvdz', 'cc-pvtz', 'cc-pvqz', 'aug-cc-pvdz', 'aug-cc-pvtz', 'aug-cc-pvqz', 'pc-0', 'pc-1', 'pc-2', 'pcseg-0', 'pcseg-1', 'pcseg-2', 'weigend'] | str) – Basis set identifier from user.

Return type:

BasisSet