HarmonicBasis#
- class HarmonicBasis(num_modals, *, threshold=1e-06)[source]#
Bases:
VibrationalBasis
The Harmonic basis.
This class uses the Hermite polynomials (eigenstates of the harmonic oscillator) as a modal basis for the expression of the Watson Hamiltonian or any bosonic operator.
References
- [1] Pauline J. Ollitrault et al. “Hardware efficient quantum algorithms for vibrational
structure calculations” Chem. Sci., 2020, 11, 6842-6855. https://doi.org/10.1039/D0SC01908A
- Parameters:
Methods
- eval_integral(mode, modal_1, modal_2, power, kinetic_term=False)[source]#
The integral evaluation method of this basis.
- Parameters:
mode (int) – the index of the mode.
modal_1 (int) – the index of the first modal.
modal_2 (int) – the index of the second modal.
power (int) – the exponent of the coordinate.
kinetic_term (bool) – if this is True, the method should compute the integral of the kinetic term of the vibrational Hamiltonian, :math:
d^2/dQ^2
.
- Returns:
The evaluated integral for the specified coordinate or
None
if this integral value falls below the threshold.- Raises:
ValueError – if the
power
exceeds 4.- Return type:
complex | None
References
- [1] J. Chem. Phys. 135, 134108 (2011)
https://doi.org/10.1063/1.3644895 (Table 1)
- map(coefficient, modes)#
Maps the provided coefficient and mode index to this second-quantization basis.
This applies the actual basis and expands each mode into the number of modals with which the basis instance was initialized.
- Parameters:
- Yields:
Pairs of integral values and indices. The indices are now three times as long as the initially provided modes index. The reason for that is that each mode index gets expanded into three indices, denoting the
(mode, modal_1, modal_2)
indices.- Return type: