uniqc.algorithmics.ansatz.uccsd module#

UCCSD (Unitary Coupled-Cluster Singles and Doubles) ansatz.

Implements a simplified UCCSD ansatz for variational quantum chemistry simulations. Each single/double excitation is parameterised by an independent variational angle.

uniqc.algorithmics.ansatz.uccsd.uccsd_ansatz(n_qubits, n_electrons, qubits=None, params=None)[source]#

Build a UCCSD (Unitary Coupled-Cluster Singles and Doubles) ansatz.

Occupies the first n_electrons spin-orbitals and allows single excitations from occupied → virtual and double excitations from pairs of occupied → pairs of virtual.

Parameters:
  • n_qubits (int) – Total number of qubits (spin-orbitals).

  • n_electrons (int) – Number of occupied spin-orbitals.

  • qubits (List[int] | None) – Qubit indices. Nonelist(range(n_qubits)).

  • params (ndarray | None) – Variational parameters. None → zeros (no excitation).

Returns:

A Circuit object.

Raises:
  • ValueErrorn_electrons > n_qubits.

  • ValueErrorparams length does not match the expected count.

Return type:

Circuit

Example

>>> from uniqc.algorithmics.ansatz import uccsd_ansatz
>>> c = uccsd_ansatz(n_qubits=4, n_electrons=2)