Skip to main content

Fermion Operators

This page details the specific operators available for Fermionic systems. These operators implement the general Operator interface described in the Operators concept guide.

Fermionic Algebra and State Representation

Fermionic operators differ fundamentally from spin/qubit operators due to their anti-commutation relations. The creation (fif_i^\dagger) and annihilation (fif_i) operators satisfy:

{fi,fj}=fifj+fjfi=δij\{f_i, f_j^\dagger\} = f_i f_j^\dagger + f_j^\dagger f_i = \delta_{ij} {fi,fj}=0,{fi,fj}=0\{f_i, f_j\} = 0, \quad \{f_i^\dagger, f_j^\dagger\} = 0

This implies the Pauli exclusion principle, where attempting to create two fermions on the same site yields zero (fifi=0f_i^\dagger f_i^\dagger = 0).

When applied to basis states n|n\rangle where occupancy n{0,1}n \in \{0, 1\}:

  • Annihilation: fi1=0f_i |1\rangle = |0\rangle, but fi0=0f_i |0\rangle = 0 (annihilating the vacuum "kills" the state).
  • Creation: fi0=1f_i^\dagger |0\rangle = |1\rangle, but fi1=0f_i^\dagger |1\rangle = 0 (creating on an occupied site "kills" the state).

Fermionic operators in Aleph automatically handle the sign changes arising from these anti-commutation rules when permuting operators past each other.

Static Operators

Static operators define fixed physical actions such as creation, annihilation, hopping, and number interactions. They are purely symbolic and parametrized only by the site indices they act upon.

Factory FunctionSitesDescription
Create(site)1Creation operator fif_i^\dagger.
CreateCreate(i,j)1Product of two creation operators fifjf_i^\dagger f_j^\dagger.
Destroy(site)1Annihilation operator fif_i.
DestroyDestroy(i,j)1Product of two annihilation operators fifjf_i f_j.
Number(site)1Number operator ni=fifin_i = f_i^\dagger f_i.
NumberNumber(site1, site2)2Number interaction ninjn_i n_j.
Hop(i, j)2Hermitian hopping fifj+fjfif_i^\dagger f_j + f_j^\dagger f_i.
Transfer(dest, src)2Unidirectional transfer fdestfsrcf_{\text{dest}}^\dagger f_{\text{src}}.
TransferNumber(dest, src, ctrl)3Conditional transfer fdestfsrcnctrlf_{\text{dest}}^\dagger f_{\text{src}} n_{\text{ctrl}}.
HopNumber(i, j, ctrl)3Conditional hopping (fifj+fjfi)nctrl(f_i^\dagger f_j + f_j^\dagger f_i) n_{\text{ctrl}}.
NumberSum(sites)arbitraryTotal occupancy on a set of sites isitesni\sum_{i \in \mathrm{sites}} n_{i} (legacy: NumberN).
NearestNumberSum(sites)arbitraryNearest-neighbor number interaction inini+1\sum_{i} n_{i} n_{i+1} (legacy: NumberNumberNN).
NextNearestNumberSum(sites)arbitraryNext-nearest-neighbor number interaction inini+2\sum_{i} n_{i} n_{i+2} (legacy: NumberNumberNNN).
PairTransfer(i, j, k, l)4Interaction term fifjfkflf_i^\dagger f_j^\dagger f_k f_l (legacy: FourBody).
PairHop(i, j, k, l)4Double excitation fifjfkfl+h.c.f_i^\dagger f_j^\dagger f_k f_l + h.c. (legacy: DoubleExcitation).

Parameterized Operators

Parameterized operators include continuous variables representing phases or rotation angles. These are often used in time-evolution or variational ansatzes.

Factory FunctionParametersSitesDescription
PhaseHop(phi, i, j)phi (real)2Complex hopping eiϕfifj+eiϕfjfie^{i\phi} f_i^\dagger f_j + e^{-i\phi} f_j^\dagger f_i.
NumberPhase(phi, site)phi (real)1Number phase eiϕnie^{i\phi n_i}.
NumberNumberPhase(phi, i, j)phi (real)2Interaction phase eiϕninje^{i\phi n_i n_j}.
ModeRotation(theta, i, j)theta (real)2Basis rotation eiθ(fifj+fjfi)e^{i\theta (f_i^\dagger f_j + f_j^\dagger f_i)}.
PairRotation(theta, i, j)theta (real)2Pairing rotation eiθ(fifj+fjfi)e^{i\theta (f_i^\dagger f_j^\dagger + f_j f_i)}.
NumberPotential(coefficients [, sites])coefficients (array/list)arbitraryWeighted number sums iαini\sum_{i} \alpha_i n_i.

Tensor and Matrix Operators

For more complex interactions or efficient simulation of non-interacting systems, Aleph provides specialized operator types.

TypeDescription
CoulombSum(tensor)General Coulomb interaction i,j,k,l,σ,σVijklaiσajσakσalσ\sum_{i,j,k,l,\sigma,\sigma'} V_{ijkl} a_{i\sigma}^\dagger a_{j\sigma'}^\dagger a_{k\sigma'} a_{l\sigma} on interleaved spin-orbitals.
FreeOperatorMatrixSpecialized class for non-interacting (free) fermion Hamiltonians, allowing for highly efficient Gaussian state evolution.

Quadratic Operators

For the efficient handling of quadratic fermionic models, Aleph provides the specialized operator types TransferSum, PairingSum and QuadraticSum.

Factory FunctionParametersSitesDescription
TransferSum(A)A (matrix)Contiguous [0,...,L-1] for a passed L×LL\times L matrixRepresents the sum j,kAj,kfjfk\sum_{j,k}A_{j,k}f_j^{\dagger}f_k.
TransferSum(operator [, options])operator OperatorContiguous [0,...,max(operator.support())]Efficiently represents the passed sum of quadratic particle number preserving fermionic terms. A scalar option can be provided.
PairingSum(P)P (matrix)Contiguous [0,...,L-1] for a passed L×LL\times L matrixRepresents the sum j<kPj,kfjfk+j>kPj,kfjfk\sum_{j < k}P_{j,k}f_j^\dagger f_k^\dagger + \sum_{j > k}P_{j,k}f_j f_k
PairingSum(operator [, options])operator OperatorContiguous [0,...,max(operator.support())]Efficiently represents the passed sum of quadratic fermionic pairing terms. A scalar option can be provided.
QuadraticSum(S)S (matrix)Contiguous [0,...,L-1] for a passed L×LL\times L matrixRepresents the sum j,kSj,k+,fjfk+Sj,k,+fjfk+Sj,k+,+fjfk+Sj,k,fjfk\sum_{j,k}S_{j,k}^{+,-}f_j^{\dagger}f_k + S_{j,k}^{-,+}f_jf_k^{\dagger} + S_{j,k}^{+,+}f_j^{\dagger}f_k^{\dagger} + S_{j,k}^{-,-}f_jf_k with S=(S+,,S+,+S,,S,+)S =\begin{pmatrix}S^{+,-}, S^{+,+} \\ S^{-,-}, S^{-,+} \end{pmatrix}
QuadraticSum(operator [, options])operator OperatorContiguous [0,...,max(operator.support())]Efficiently represents the passed sum of quadratic fermionic terms. A scalar option can be provided.

Documentation Contributors

Vincent Michaud-Rioux

Pierre-Gabriel Rozon