Operator Circuits

slowquant.qiskit_interface.operators_circuits._double_excitation_efficient(k: int, l: int, i: int, j: int, num_orbs: int, qc: QuantumCircuit, theta: Parameter | ParameterExpression) QuantumCircuit

Exact circuit for double excitation.

Implementation of the following operator,

\[\boldsymbol{U} = \exp\left(\theta\hat{a}^\dagger_k\hat{a}^\dagger_l\hat{a}_j\hat{a}_i\right)\]
  1. 10.1103/PhysRevA.102.062612, Fig. 6, Fig. 7, and, Fig. 9

  2. 10.1038/s42005-021-00730-0, Fig. 2

Parameters:
  • k – Weakly occupied spin orbital index.

  • l – Weakly occupied spin orbital index.

  • i – Strongly occupied spin orbital index.

  • j – Strongly occupied spin orbital index.

  • num_orbs – Number of spatial orbitals.

  • qc – Quantum circuit.

  • theta – Circuit parameter.

Returns:

Double excitation circuit.

slowquant.qiskit_interface.operators_circuits._double_excitation_trotter(i: int, j: int, a: int, b: int, num_orbs: int, qc: QuantumCircuit, theta: Parameter | ParameterExpression, mapper: FermionicMapper) QuantumCircuit

Get double excitation as a trotterized fermionic operator.

The Pauli string from the mapped fermionic operator are sorted lexicographically to make the circuit shorter from gate cancelation.

Parameters:
  • i – Strongly occupied spin orbital index.

  • j – Strongly occupied spin orbital index.

  • a – Weakly occupied spin orbital index.

  • b – Weakly occupied spin orbital index.

  • num_orbs – Number of spatial orbitals.

  • qc – Quantum circuit.

  • theta – Circuit parameter.

  • mapper – Fermionic to qubit mapper.

Returns:

Trotterized fermionic double excitation circuit.

slowquant.qiskit_interface.operators_circuits._sa_single_excitation_efficient(k: int, i: int, num_orbs: int, qc: QuantumCircuit, theta: Parameter | ParameterExpression) QuantumCircuit

Exact circuit for spin-adapted singlet single excitation.

Implementation of the following operator,

\[\boldsymbol{U} = \exp\left(\frac{\theta}{\sqrt{2}}\left(\hat{E}_{ki} - \hat{E}_{ik}^\dagger\right)\right)\]

Implemented as,

\[\boldsymbol{U} = \exp\left(\frac{\theta}{\sqrt{2}}\hat{a}^\dagger_{k,\alpha}\hat{a}_{i,\alpha}\right) \exp\left(\frac{\theta}{\sqrt{2}}\hat{a}^\dagger_{k,\beta}\hat{a}_{i,\beta}\right)\]
Parameters:
  • k – Weakly occupied spatial orbital index.

  • i – Strongly occupied spatial orbital index.

  • num_orbs – Number of spatial orbitals.

  • qc – Quantum circuit.

  • theta – Circuit parameter.

Returns:

Single singlet spin-adapted excitation circuit.

slowquant.qiskit_interface.operators_circuits._sa_single_excitation_trotter(i: int, a: int, num_orbs: int, qc: QuantumCircuit, theta: Parameter | ParameterExpression, mapper: FermionicMapper) QuantumCircuit

Get spin-adapted singlet single excitation as a trotterized fermionic operator.

Parameters:
  • i – Strongly occupied spatial orbital index.

  • a – Weakly occupied spatial orbital index.

  • num_orbs – Number of spatial orbitals.

  • qc – Quantum circuit.

  • theta – Circuit parameter.

  • mapper – Fermionic to qubit mapper.

Returns:

Trotterized fermionic spin-adapted singlet single excitation circuit.

slowquant.qiskit_interface.operators_circuits._single_excitation_efficient(k: int, i: int, num_orbs: int, qc: QuantumCircuit, theta: Parameter | ParameterExpression) QuantumCircuit

Exact circuit for single excitation.

Implementation of the following operator,

\[\boldsymbol{U} = \exp\left(\theta\hat{a}^\dagger_k\hat{a}_i\right)\]
  1. 10.1103/PhysRevA.102.062612, Fig. 3 and Fig. 8

  2. 10.1038/s42005-021-00730-0, Fig. 1

Parameters:
  • k – Weakly occupied spin orbital index.

  • i – Strongly occupied spin orbital index.

  • num_orbs – Number of spatial orbitals.

  • qc – Quantum circuit.

  • theta – Circuit parameter.

Returns:

Single excitation circuit.

slowquant.qiskit_interface.operators_circuits._single_excitation_trotter(i: int, a: int, num_orbs: int, qc: QuantumCircuit, theta: Parameter | ParameterExpression, mapper: FermionicMapper) QuantumCircuit

Get single excitation as a trotterized fermionic operator.

The Pauli string from the mapped fermionic operator are sorted lexicographically to make the circuit shorter from gate cancelation.

Parameters:
  • i – Strongly occupied spin orbital index.

  • a – Weakly occupied spin orbital index.

  • num_orbs – Number of spatial orbitals.

  • qc – Quantum circuit.

  • theta – Circuit parameter.

  • mapper – Fermionic to qubit mapper.

Returns:

Trotterized fermionic single excitation circuit.

slowquant.qiskit_interface.operators_circuits.double_excitation(i: int, j: int, a: int, b: int, num_orbs: int, qc: QuantumCircuit, theta: Parameter | ParameterExpression, mapper: FermionicMapper) QuantumCircuit

Get double excitation circuit.

Parameters:
  • i – Strongly occupied spin orbital index.

  • j – Strongly occupied spin orbital index.

  • a – Weakly occupied spin orbital index.

  • b – Weakly occupied spin orbital index.

  • num_orbs – Number of spatial orbitals.

  • qc – Quantum circuit.

  • theta – Circuit parameter.

  • mapper – Fermionic to qubit mapper.

Returns:

Single excitation circuit.

slowquant.qiskit_interface.operators_circuits.sa_single_excitation(i: int, a: int, num_orbs: int, qc: QuantumCircuit, theta: Parameter | ParameterExpression, mapper: FermionicMapper) QuantumCircuit

Get spin-adapted single singlet excitation circuit.

Parameters:
  • i – Strongly occupied spatial orbital index.

  • a – Weakly occupied spatial orbital index.

  • num_orbs – Number of spatial orbitals.

  • qc – Quantum circuit.

  • theta – Circuit parameter.

  • mapper – Fermionic to qubit mapper.

Returns:

Spin-adpated singlet single excitation circuit.

slowquant.qiskit_interface.operators_circuits.single_excitation(i: int, a: int, num_orbs: int, qc: QuantumCircuit, theta: Parameter | ParameterExpression, mapper: FermionicMapper) QuantumCircuit

Get single excitation circuit.

Parameters:
  • i – Strongly occupied spin orbital index.

  • a – Weakly occupied spin orbital index.

  • num_orbs – Number of spatial orbitals.

  • qc – Quantum circuit.

  • theta – Circuit parameter.

  • mapper – Fermionic to qubit mapper.

Returns:

Single excitation circuit.