quri_parts.openfermion.ansatz.uccsd module#

class TrotterUCCSD(n_spin_orbitals, n_fermions, fermion_qubit_mapping=<quri_parts.openfermion.transforms.OpenFermionJordanWignerFactory object>, trotter_number=1, use_singles=True, delta_sz=0, singlet_excitation=False)#

Bases: ImmutableLinearMappedUnboundParametricQuantumCircuit

Unitary coupled-cluster singles and doubles (UCCSD) ansatz. The ansatz consists of the exponentials of single excitation and double excitation operator decomposed by first-order Trotter product formula. Note that the occupied orbitals are the lowest n_fermions spin orbitals. The decomposition using Trotter product formula is executed for each qubit operators obtained by mapping excitation operators. The excitation operator involved in the UCCSD ansatz will be determined by (n_spin_orbitals, n_fermions, delta_sz).

Parameters:
  • n_spin_orbitals (int) – Number of spin orbitals.

  • n_fermions (int) – Number of fermions.

  • fermion_qubit_mapping (OpenFermionMappingMethods) – Mapping from FermionOperator to Operator

  • trotter_number (int) – Number for first-order Trotter product formula.

  • use_singles (bool) – If True, single-excitation gates are applied.

  • delta_sz (int) – The spin difference of the molecule before and after the transition. If delta_sz = 0, the excitation operator T present in the ansatz respects the symmetry condition \([T, S_z] = 0\).

  • singlet_excitation (bool) –

    If True, certain circuit parameters that corresponds to the excitation amplitude will be identified according to the symmetry condition: \([S_x, T] = [S_y, T] = [S_z, T] = 0\). Please check out the note below for information about how circuit parameters are identified by the symmetry condition.

    Parameters for the spin symmetric ansatz are named according to the spatial transition amplitude.

    • For single excitations, parameter named s_i_a denotes the excitation

      from occupied spatial orbital i to virtual spatial orbital a.

    • For double excitations, parameter named d_i_j_a_b denotes the excitation

      from occupied spin orbital (i, ↑), (j, ↓) to virtual spin orbitals (a, ↑), (b, ↓).

Note

When singlet_excitation = True:

  1. Certain excitation operators will share the same circuit parameters.
    • For single excitation:

      \(c_{a↑}^† c_{i↑}\) and \(c_{a↓}^† c_{i↓}\) share the same transition amplitude \(t_i^a\), thus sharing the same circuit parameter s_i_a.

    • For mixed spin double excitation:
      • \(c_{a↑}^† c_{b↓}^† c_{j↓} c_{i↑}\) and \(c_{a↓}^† c_{b↑}^† c_{j↑} c_{i↓}\) share the same excitaion amplitude \(t_{i↑, j↓}^{a↑, b↓}\), thus sharing the same circuit parameter d_i_j_a_b.

      • All the circuit parameters for double excitation are fixed by

        the mixed spin double excitation mode.

    • For same spin double excitation:

      \(c_{a↑}^† c_{b↑}^† c_{j↑} c_{i↑}\) and \(c_{a↓}^† c_{b↓}^† c_{j↓} c_{i↓}\) share the same excitation amplitude \(t_{i↑, j↓}^{a↑, b↓} - t_{i↓, j↑}^{a↑, b↓}\), where the corresponding parameters d_i_j_a_b and d_i_j_b_a are already added to the circuit when constructing the mixed spin excitation modes.

  2. Parameter count:

    For a system with \(n_o\) occupied spatial orbitals and \(n_v\) virtual spatial orbitals:

    • Single excitations amount for \(n_o n_v\) parameters.

    • Double excitations amount for \(n_o n_v (n_o n_v + 1)/2\) parameters.