quri_parts.chem.utils.excitations module#
- SingleExcitation#
Alias of
tuple[int, int]
which represents the set of orbital indices involved in excitation. The first element is the index of an occupied orbital and the second element is the index of an unoccupied index.
- DoubleExcitation#
Alias of
tuple[int, int, int, int]
which represents the set of orbital indices involved in excitation. The first and second element is the indices of occupied orbitals and the third and fourth element is the indices of unoccupied orbitals.
- excitations(n_spin_orbitals, n_fermions, delta_sz=0)#
Returns the list of excitation indices for
n_spin_orbitals
andn_fermions
withdelta_sz
as a tuple ofSingleExcitation
andDoubleExcitation
.- Parameters:
n_spin_orbitals (int) –
n_fermions (int) –
delta_sz (float) –
- Return type:
tuple[Sequence[chem.utils.excitations.SingleExcitation], Sequence[chem.utils.excitations.DoubleExcitation]]
- to_spin_symmetric_order(double_excitation)#
Convert ΔSz=0 double excitation operators to make the indices of the ladder operators consistent with that of the following equation:
\[\begin{split}\begin{align} T &= T_1+T_2 \\ &= \sum_{I, A} \left( t_{I\uparrow}^{A\uparrow} c_{A \uparrow}^{\dagger}c_{I\uparrow} + t_{I\downarrow}^{A\downarrow} c_{A \downarrow}^{\dagger}c_{I\downarrow} \right) \\ &\quad + \left[ \sum_{I, J, A, B} t_{I\uparrow J\downarrow}^{A\uparrow B\downarrow} c_{A\uparrow}^{\dagger} c_{B\downarrow}^{\dagger} c_{J\downarrow}c_{I\uparrow} + \sum_{I<J, A<B} \left( t_{I\uparrow J\uparrow}^{A\uparrow B\uparrow} c_{A\uparrow}^{\dagger} c_{B\uparrow}^{\dagger} c_{J\uparrow}c_{I\uparrow} + t_{I\downarrow J\downarrow}^{A\downarrow B\downarrow} c_{A\downarrow}^{\dagger} c_{B\downarrow}^{\dagger} c_{J\downarrow}c_{I\downarrow} \right)\right] \end{align}\end{split}\]- Ref:
Abhinav Anand et al., A Quantum Computing View on Unitary Coupled Cluster Theory, https://arxiv.org/abs/2109.15176
- Parameters:
double_excitation (chem.utils.excitations.DoubleExcitation) –
- Return type:
chem.utils.excitations.DoubleExcitation
- add_single_excitation_circuit(circuit, excitation_indices, param_fn)#
Add a particle-conserving single excitation circuit to the given
circuit
implemented as a Givens rotation \(G(\theta)\)\[\begin{split}\begin{align} G(\theta)|01\rangle &= \cos(\theta /2)|01\rangle + \sin(\theta /2)|10 \rangle \\ G(\theta)|10\rangle &= \cos(\theta /2)|10\rangle - \sin(\theta /2)|01 \rangle \\ \end{align}\end{split}\]applied to the
excitation_indices
.- Parameters:
circuit (LinearMappedUnboundParametricQuantumCircuit) –
excitation_indices (chem.utils.excitations.SingleExcitation) –
param_fn (circuit.parameter_mapping.ParameterOrLinearFunction) –
- Return type:
- add_double_excitation_circuit(circuit, excitation_indices, param_fn)#
Add a particle-conserving double excitation circuit to the given
circuit
implemented as a extended Givens rotation \(G^2(\theta)\) which acts on the space of 4 qubits and performs the \(U(2)\) rotation on the subspace spanned by two states, e.g. \(|0011\rangle\) and \(|1100\rangle\)\[\begin{split}\begin{align} G^2(\theta)|0011\rangle &= \cos(\theta /2)|0011\rangle + \sin(\theta /2) |1100\rangle \\ G^2(\theta)|1100\rangle &= \cos(\theta /2)|1100\rangle - \sin(\theta /2) |0011\rangle \\ \end{align}\end{split}\]applied to the
excitation_indices
.- Parameters:
circuit (LinearMappedUnboundParametricQuantumCircuit) –
excitation_indices (chem.utils.excitations.DoubleExcitation) –
param_fn (circuit.parameter_mapping.ParameterOrLinearFunction) –
- Return type: