VibrationalEnergy#

class VibrationalEnergy(vibrational_integrals, *, truncation_order=None)[source]#

Bases: Hamiltonian

The vibrational energy Hamiltonian.

This class implements the following Hamiltonian:

\[\sum_{l=1}^L \sum_{k_l,h_l}^{N_l} \langle \phi_{k_l} | T(Q_l) + V^{[l]}(Q_l) | \phi_{h_l} \rangle a^\dagger_{k_l} a_{h_l} + \sum_{l<m}^L \sum_{k_l,h_l}^{N_l} \sum_{k_m,h_m}^{N_m} \langle \phi_{k_l} \phi_{k_m} | V^{[l,m]}(Q_l, Q_m) | \phi_{h_l} \phi_{h_m} \rangle a^\dagger_{k_l} a^\dagger_{k_m} a_{h_l} a_{h_m} + \ldots\]

where \(Q\) denotes a vibrational mode, \(T\) denotes the kinetic term, and \(V\) denotes the potential terms acting on multiple modes. The subscripts \(k\) and \(h\) are indexing the modals which each mode \(l\) gets expanded into.

For a detailed explanation please refer to reference [1].

The following attributes can be set via the initializer but can also be read and updated once the VibrationalEnergy object has been constructed.

vibrational_integrals#

the integral coefficients.

Type:

VibrationalIntegrals

truncation_order#

the maximum order of multi-body terms to include in the operator.

Type:

int | None

References

[1]: P. Ollitrault et al. arXiv:2003.12578.

Parameters:
  • vibrational_integrals (VibrationalIntegrals) – the container with the integral coefficients.

  • truncation_order (int | None) – the maximum order of multi-body terms to include in the operator.

Attributes

register_length#

Methods

classmethod from_raw_integrals(integrals)[source]#

Constructs a hamiltonian instance from raw integrals.

This function simply calls qiskit_nature.second_q.operators.VibrationalIntegrals.from_raw_integrals(). See its documentation for more details.

Parameters:

integrals (dict[tuple[int, ...], complex]) – a mapping of matrix index tuples to coefficients.

Returns:

The resulting VibrationalEnergy instance.

Return type:

VibrationalEnergy

interpret(result)[source]#

Interprets an EigenstateResult.

Parameters:

result (qiskit_nature.second_q.problems.EigenstateResult) – The result to add meaning to.

second_q_op()[source]#

Returns the second quantized vibrational energy operator.

Returns:

A dict of VibrationalOp objects.

Return type:

VibrationalOp