class PUCCSD(num_spatial_orbitals=None, num_particles=None, qubit_mapper=None, *, reps=1, initial_state=None)[source]#

Bases: UCC

The spin-adapted paired-UCC Ansatz.

This ansatz (by default) contains paired single and double excitations. This ensures that not only the number of particles but also the spin is preserved. [1]

Note, that this ansatz will produce a generalized operator pool (generalized=True).

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


[1] arXiv:2207.00085

  • 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 instance 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.



generate_excitations(num_spatial_orbitals, num_particles)[source]#

Generates the excitations for the PUCCSD Ansatz.

  • 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

  • class. (this) –


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, …]]]