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 () and annihilation () operators satisfy:
This implies the Pauli exclusion principle, where attempting to create two fermions on the same site yields zero ().
When applied to basis states where occupancy :
- Annihilation: , but (annihilating the vacuum "kills" the state).
- Creation: , but (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 Function | Sites | Description |
|---|---|---|
Create(site) | 1 | Creation operator . |
CreateCreate(i,j) | 1 | Product of two creation operators . |
Destroy(site) | 1 | Annihilation operator . |
DestroyDestroy(i,j) | 1 | Product of two annihilation operators . |
Number(site) | 1 | Number operator . |
NumberNumber(site1, site2) | 2 | Number interaction . |
Hop(i, j) | 2 | Hermitian hopping . |
Transfer(dest, src) | 2 | Unidirectional transfer . |
TransferNumber(dest, src, ctrl) | 3 | Conditional transfer . |
HopNumber(i, j, ctrl) | 3 | Conditional hopping . |
NumberSum(sites) | arbitrary | Total occupancy on a set of sites (legacy: NumberN). |
NearestNumberSum(sites) | arbitrary | Nearest-neighbor number interaction (legacy: NumberNumberNN). |
NextNearestNumberSum(sites) | arbitrary | Next-nearest-neighbor number interaction (legacy: NumberNumberNNN). |
PairTransfer(i, j, k, l) | 4 | Interaction term (legacy: FourBody). |
PairHop(i, j, k, l) | 4 | Double excitation (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 Function | Parameters | Sites | Description |
|---|---|---|---|
PhaseHop(phi, i, j) | phi (real) | 2 | Complex hopping . |
NumberPhase(phi, site) | phi (real) | 1 | Number phase . |
NumberNumberPhase(phi, i, j) | phi (real) | 2 | Interaction phase . |
ModeRotation(theta, i, j) | theta (real) | 2 | Basis rotation . |
PairRotation(theta, i, j) | theta (real) | 2 | Pairing rotation . |
NumberPotential(coefficients [, sites]) | coefficients (array/list) | arbitrary | Weighted number sums . |
Tensor and Matrix Operators
For more complex interactions or efficient simulation of non-interacting systems, Aleph provides specialized operator types.
| Type | Description |
|---|---|
CoulombSum(tensor) | General Coulomb interaction on interleaved spin-orbitals. |
FreeOperatorMatrix | Specialized 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 Function | Parameters | Sites | Description |
|---|---|---|---|
TransferSum(A) | A (matrix) | Contiguous [0,...,L-1] for a passed matrix | Represents the sum . |
TransferSum(operator [, options]) | operator Operator | Contiguous [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 matrix | Represents the sum |
PairingSum(operator [, options]) | operator Operator | Contiguous [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 matrix | Represents the sum with |
QuadraticSum(operator [, options]) | operator Operator | Contiguous [0,...,max(operator.support())] | Efficiently represents the passed sum of quadratic fermionic terms. A scalar option can be provided. |