SUCCD#

class SUCCD(num_spatial_orbitals=None, num_particles=None, qubit_mapper=None, *, reps=1, initial_state=None, include_singles=(False, False), generalized=False, mirror=False)[source]#

Bases: UCC

The SUCCD Ansatz.

The SUCCD ansatz (by default) only contains double excitations. Furthermore, it only considers the set of excitations which is symmetrically invariant with respect to spin-flips of both particles. For more information see also [1].

Note, that this ansatz can only work for singlet-spin systems. Therefore, the number of alpha and beta electrons must be equal.

This is a convenience subclass of the UCC ansatz. For more information refer to UCC.

References

[1] arXiv:1911.10864

Parameters:
  • num_spatial_orbitals (int | None) – The number of spatial orbitals.

  • num_particles (tuple[int, int] | None) – The tuple of the number of alpha- and beta-spin particles.

  • qubit_mapper (QubitMapper | None) – The QubitMapper which takes care of mapping to a qubit operator.

  • reps (int) – The number of times to repeat the evolved operators.

  • initial_state (QuantumCircuit | None) – A QuantumCircuit object to prepend to the circuit.

  • include_singles (tuple[bool, bool]) – enables the inclusion of single excitations per spin species.

  • generalized (bool) – Boolean flag whether or not to use generalized excitations, which ignore the occupation of the spin orbitals. As such, the set of generalized excitations is only determined from the number of spin orbitals and independent from the number of particles.

  • mirror (bool) – Boolean flag whether or not to include the symmetrically mirrored double excitations, while keeping the original number of circuit parameters. This results in mirrored excitations having identical parameter values. Enabling this parameter will result in the SUCCD ansatz referred to as “q-UCCSD0-full” in reference [1].

Raises:

QiskitNatureError – if the number of alpha and beta electrons is not equal.

Attributes

include_singles#

Whether to include single excitations.

mirror#

Whether to include the symmetrically mirrored double excitations.

Methods

generate_excitations(num_spatial_orbitals, num_particles)[source]#

Generates the excitations for the SUCCD Ansatz.

Parameters:
  • num_spatial_orbitals (int) – the number of spatial orbitals.

  • num_particles (tuple[int, int]) – the number of alpha and beta electrons. Note, these must be identical for this class.

Raises:

QiskitNatureError – if the number of alpha and beta electrons is not equal.

Returns:

The list of excitations encoded as tuples of tuples. Each tuple in the list is a pair of tuples. The first tuple contains the occupied spin orbital indices whereas the second one contains the indices of the unoccupied spin orbitals.

Return type:

list[tuple[tuple[int, …], tuple[int, …]]]