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)\]10.1103/PhysRevA.102.062612, Fig. 6, Fig. 7, and, Fig. 9
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)\]10.1103/PhysRevA.102.062612, Fig. 3 and Fig. 8
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.