# qml.qchem.excitations¶

excitations(electrons, orbitals, delta_sz=0)[source]

Generate single and double excitations from a Hartree-Fock reference state.

Single and double excitations can be generated by acting with the operators $$\hat T_1$$ and $$\hat T_2$$ on the Hartree-Fock reference state:

$\begin{split}&& \hat{T}_1 = \sum_{r \in \mathrm{occ} \\ p \in \mathrm{unocc}} \hat{c}_p^\dagger \hat{c}_r \\ && \hat{T}_2 = \sum_{r>s \in \mathrm{occ} \\ p>q \in \mathrm{unocc}} \hat{c}_p^\dagger \hat{c}_q^\dagger \hat{c}_r \hat{c}_s.\end{split}$

In the equations above the indices $$r, s$$ and $$p, q$$ run over the occupied (occ) and unoccupied (unocc) spin orbitals and $$\hat c$$ and $$\hat c^\dagger$$ are the electron annihilation and creation operators, respectively.

Parameters
• electrons (int) – Number of electrons. If an active space is defined, this is the number of active electrons.

• orbitals (int) – Number of spin orbitals. If an active space is defined, this is the number of active spin-orbitals.

• delta_sz (int) – Specifies the selection rules sz[p] - sz[r] = delta_sz and sz[p] + sz[p] - sz[r] - sz[s] = delta_sz for the spin-projection sz of the orbitals involved in the single and double excitations, respectively. delta_sz can take the values $$0$$, $$\pm 1$$ and $$\pm 2$$.

Returns

lists with the indices of the spin orbitals involved in the single and double excitations

Return type

tuple(list, list)

Example

>>> electrons = 2
>>> orbitals = 4
>>> singles, doubles = excitations(electrons, orbitals)
>>> print(singles)
[[0, 2], [1, 3]]
>>> print(doubles)
[[0, 1, 2, 3]]


Using PennyLane

Development

API