Operators

slowquant.qiskit_interface.operators.Eminuspq(p: int, q: int) FermionicOperator

Construct Hermitian singlet one-electron excitation operator.

\[\hat{E}^-_{pq} = \hat{E}_{pq} - \hat{E}_{qp}\]
Parameters:
  • p – Spatial orbital index.

  • q – Spatial orbital index.

Returns:

Singlet one-electron excitation operator.

slowquant.qiskit_interface.operators.Epq(p: int, q: int) FermionicOperator

Construct the singlet one-electron excitation operator.

\[\hat{E}_{pq} = \hat{a}^\dagger_{p,\alpha}\hat{a}_{q,\alpha} + \hat{a}^\dagger_{p,\beta}\hat{a}_{q,\beta}\]
Parameters:
  • p – Spatial orbital index.

  • q – Spatial orbital index.

Returns:

Singlet one-electron excitation operator.

slowquant.qiskit_interface.operators.G1(i: int, a: int) FermionicOperator

Construct singlet one-electron spin-adapted excitation operator.

\[\hat{G}^{[1]}_{ia} = \frac{1}{\sqrt{2}}\hat{E}_{ai}\]
Parameters:
  • i – Spatial orbital index.

  • a – Spatial orbital index.

Returns singlet one-elecetron spin-adapted exciation operator.

slowquant.qiskit_interface.operators.G2_1(i: int, j: int, a: int, b: int) FermionicOperator

Construct first singlet two-electron spin-adapted excitation operator.

\[\hat{G}^{[1]}_{aibj} = \frac{1}{2\sqrt{\left(1+\delta_{ab}\right)\left(1+\delta_{ij}\right)}}\left(\hat{E}_{ai}\hat{E}_{bj} + \hat{E}_{aj}\hat{E}_{bi}\right)\]
Parameters:
  • i – Spatial orbital index.

  • j – Spatial orbital index.

  • a – Spatial orbital index.

  • b – Spatial orbital index.

Returns first singlet two-elecetron spin-adapted exciation operator.

slowquant.qiskit_interface.operators.G2_2(i: int, j: int, a: int, b: int) FermionicOperator

Construct second singlet two-electron spin-adapted excitation operator.

\[\hat{G}^{[2]}_{aibj} = \frac{1}{2\sqrt{3}}\left(\hat{E}_{ai}\hat{E}_{bj} - \hat{E}_{aj}\hat{E}_{bi}\right)\]
Parameters:
  • i – Spatial orbital index.

  • j – Spatial orbital index.

  • a – Spatial orbital index.

  • b – Spatial orbital index.

Returns second singlet two-elecetron spin-adapted exciation operator.

slowquant.qiskit_interface.operators.commutator(A: FermionicOperator, B: FermionicOperator) FermionicOperator

Construct operator commutator.

\[\left[\hat{A},\hat{B}\right] = \hat{A}\hat{B} - \hat{B}\hat{A}\]
Parameters:
  • A – Fermionic operator.

  • B – Fermionic operator.

Returns:

Operator from commutator.

slowquant.qiskit_interface.operators.double_commutator(A: FermionicOperator, B: FermionicOperator, C: FermionicOperator) FermionicOperator

Construct operator double commutator.

\[\left[\hat{A},\left[\hat{B},\hat{C}\right]\right] = \hat{A}\hat{B}\hat{C} - \hat{A}\hat{C}\hat{B} - \hat{B}\hat{C}\hat{A} + \hat{C}\hat{B}\hat{A}\]
Parameters:
  • A – Fermionic operator.

  • B – Fermionic operator.

  • C – Fermionic operator.

Returns:

Operator from double commutator.

slowquant.qiskit_interface.operators.epqrs(p: int, q: int, r: int, s: int) FermionicOperator

Construct the singlet two-electron excitation operator.

\[\hat{e}_{pqrs} = \hat{E}_{pq}\hat{E}_{rs} - \delta_{qr}\hat{E}_{ps}\]
Parameters:
  • p – Spatial orbital index.

  • q – Spatial orbital index.

  • r – Spatial orbital index.

  • s – Spatial orbital index.

Returns:

Singlet two-electron excitation operator.

slowquant.qiskit_interface.operators.hamiltonian_full_space(h_mo: ndarray, g_mo: ndarray, num_orbs: int) FermionicOperator

Construct full-space electronic Hamiltonian.

\[\hat{H} = \sum_{pq}h_{pq}\hat{E}_{pq} + \frac{1}{2}\sum_{pqrs}g_{pqrs}\hat{e}_{pqrs}\]
Parameters:
  • h_mo – Core one-electron integrals in MO basis.

  • g_mo – Two-electron integrals in MO basis.

  • num_orbs – Number of spatial orbitals.

Returns:

Hamiltonian operator in full-space.

slowquant.qiskit_interface.operators.hamiltonian_pauli_0i_0a(h_mo: ndarray, g_mo: ndarray, num_inactive_orbs: int, num_active_orbs: int) FermionicOperator

Get energy Hamiltonian operator.

Parameters:
  • h_mo – One-electron Hamiltonian integrals in MO.

  • g_mo – Two-electron Hamiltonian integrals in MO.

  • num_inactive_orbs – Number of inactive orbitals in spatial basis.

  • num_active_orbs – Number of active orbitals in spatial basis.

Returns:

Energy Hamilonian fermionic operator.

slowquant.qiskit_interface.operators.hamiltonian_pauli_1i_1a(h_mo: ndarray, g_mo: ndarray, num_inactive_orbs: int, num_active_orbs: int, num_virtual_orbs: int) FermionicOperator

Get Hamiltonian operator that works together with an extra inactive and an extra virtual index.

Parameters:
  • h_mo – One-electron Hamiltonian integrals in MO.

  • g_mo – Two-electron Hamiltonian integrals in MO.

  • num_inactive_orbs – Number of inactive orbitals in spatial basis.

  • num_active_orbs – Number of active orbitals in spatial basis.

  • num_virtual_orbs – Number of virtual orbitals in spatial basis.

Returns:

Modified Hamilonian fermionic operator.

slowquant.qiskit_interface.operators.hamiltonian_pauli_2i_2a(h_mo: ndarray, g_mo: ndarray, num_inactive_orbs: int, num_active_orbs: int, num_virtual_orbs: int) FermionicOperator

Get Hamiltonian operator that works together with two extra inactive and two extra virtual index.

Parameters:
  • h_mo – One-electron Hamiltonian integrals in MO.

  • g_mo – Two-electron Hamiltonian integrals in MO.

  • num_inactive_orbs – Number of inactive orbitals in spatial basis.

  • num_active_orbs – Number of active orbitals in spatial basis.

  • num_virtual_orbs – Number of virtual orbitals in spatial basis.

Returns:

Modified Hamilonian fermionic operator.

slowquant.qiskit_interface.operators.one_elec_op_0i_0a(ints_mo: ndarray, num_inactive_orbs: int, num_active_orbs: int) FermionicOperator

Create one-electron operator that makes no changes in the inactive and virtual orbitals.

Parameters:
  • ints_mo – One-electron integrals for operator in MO basis.

  • num_inactive_orbs – Number of inactive orbitals in spatial basis.

  • num_active_orbs – Number of active orbitals in spatial basis.

Returns:

One-electron operator for active-space.

slowquant.qiskit_interface.operators.one_elec_op_1i_1a(ints_mo: ndarray, num_inactive_orbs: int, num_active_orbs: int, num_virtual_orbs: int) FermionicOperator

Create one-electron operator that makes up to one change in the inactive and virtual orbitals.

Parameters:
  • ints_mo – One-electron integrals for operator in MO basis.

  • num_inactive_orbs – Number of inactive orbitals in spatial basis.

  • num_active_orbs – Number of active orbitals in spatial basis.

  • num_virtual_orbs – Number of virtual orbitals in spatial basis.

Returns:

Modified one-electron operator.

slowquant.qiskit_interface.operators.one_elec_op_full_space(ints_mo: ndarray, num_orbs: int) FermionicOperator

Construct full-space one-electron operator.

\[\hat{O} = \sum_{pq}h_{pq}\hat{E}_{pq}\]
Parameters:
  • ints_mo – One-electron integrals for operator in MO basis.

  • num_orbs – Number of spatial orbitals.

Returns:

Hamiltonian operator in full-space.