MP2InitialPoint#
- class MP2InitialPoint(*, threshold=1e-12)[source]#
Bases:
InitialPoint
Compute the second-order Møller-Plesset perturbation theory (MP2) initial point.
The computed MP2 correction coefficients are intended for use as an initial point for the VQE parameters in combination with a
UCC
ansatz.The initial point parameters are computed using the
compute()
method, which requires theproblem
andansatz
to be passed as arguments or theproblem
andansatz
attributes to be set already.The
problem
is required to be anElectronicStructureProblem
which contains anElectronicEnergy
Hamiltonian. It also must have itsnum_particles
andorbital_energies
attributes specified. If itsreference_energy
attribute is provided, this will be used to compute thetotal_energy
.ElectronicEnergy
must contain the two-body, molecular-orbitalelectronic_integrals
.Setting the
problem
will compute thet2_amplitudes
andenergy_correction
.Following computation, one can obtain the initial point array via the
to_numpy_array()
method. The initial point parameters that correspond to double excitations in theexcitation_list
will equal the appropriate T2 amplitude, while those belowthreshold
or that correspond to single, triple, or higher excitations will be zero.Attributes
- ansatz#
The UCC ansatz.
The
excitation_list
andreps
used by theUCC
ansatz is obtained to ensure that the shape of the initial point is appropriate.
- energy_correction#
The MP2 energy correction.
- problem#
The problem instance.
See
MP2InitialPoint
for more information on the required properties.- Raises:
QiskitNatureError – If
ElectronicEnergy
is missing or the two-body molecular orbitals matrix.QiskitNatureError – If
num_particles
ororbital_energies
isNone
.NotImplementedError – If alpha and beta spin molecular orbitals are not identical.
- t2_amplitudes#
T2 amplitudes.
Given
t2[i, j, a, b]
i, j
carry virtual indices, whilea, b
carry occupied indices.
- total_energy#
The total energy including the Hartree-Fock energy.
If the reference energy was not obtained from
ElectronicEnergy
this will be equal toenergy_correction
.
Methods
- compute(ansatz=None, problem=None)[source]#
Compute the initial point parameter for each excitation.
See class documentation for more information.
- Parameters:
problem (BaseProblem | None) – The
problem
.
- Raises:
QiskitNatureError – If
ansatz
orproblem
is not set.