VibrationalEnergy#

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

Bases: Hamiltonian

The vibrational energy Hamiltonian.

This class implements the following Hamiltonian:

l=1Lkl,hlNlϕkl|T(Ql)+V[l](Ql)|ϕhlaklahl+l<mLkl,hlNlkm,hmNmϕklϕkm|V[l,m](Ql,Qm)|ϕhlϕhmaklakmahlahm+

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