Operator Representations¶
This module provides various data structures for representing fermionic operators in different bases.
Fermion Operator¶
This operator represents fermionic operators in terms of the second-quantization creation and annihilation operators.
A fermionic creation or annihilation action. |
|
A spin-less fermionic operator. |
|
|
A convenience alias for |
|
A convenience alias for |
Majorana Operator¶
This operator represents fermionic operators in terms of Majorana fermions.
The MajoranaAction type. |
|
A Majorana fermion operator. |
|
|
Create a majorana fermion. |
Interaction Operators¶
Many commonly used operators can be expressed as interaction operators which can express operators with even fermionic parity. Such operators are defined in terms of pairs of Majorana actions \(\gamma_k\gamma'_k\) or, equivalently, are generated by the quadratic fermionic operators \(a_i a_j\), \(a_i^\dagger a_j\), \(a_i a^\dagger_j\), and \(a^\dagger_i a^\dagger_j\).
This package provides two different data structures expressing operators of this type in terms of Hermitian generators:
The EdgeAction type. |
|
An edge-vertex operator. |
|
The TransferAction type. |
|
An transfer-vertex operator. |
Protocol¶
All operator classes provides by this submodule implement at least those methods specified by the protocol below:
- class OperatorTrait¶
Bases:
ProtocolA protocol indicating all methods implemented by operator classes.
- __iand__(other)¶
Composes (left-multiplies) another operator onto this one.
- Parameters:
other (Self)
- __and__(other)¶
Composes (left-multiplies) two operators.
- __imatmul__(other)¶
Takes the dot-product (right-multiplication) of another operator onto this one.
- Parameters:
other (Self)
- __matmul__(other)¶
Takes the dot-product (right-multiplication) two operators.
- __pow__(exponent, modulo)¶
Exponentiates this operator by the integer exponent.
- classmethod from_terms(terms)¶
Constructs a new operator from an iterator (see also
iter_terms()).
- equiv(other, atol)¶
Checks this operator with another for equivalence up to the specified absolute tolerance.
- ichop(atol)¶
Trims coefficients below the absolute tolerance from this operator.
- Parameters:
atol (float)
- simplify(atol)¶
Simplifies the terms of this operator, discarding those below the absolute tolerance.
- get_support()¶
Returns the set of mode indices which this operator acts upon.
- relabel_modes(permutation)¶
Relabels the modes of the operator.
- normal_ordered(*args, **kwargs)¶
Returns the normal-ordered form of this operator.
Note
A specific implementation of this method may take additional arguments.
- Return type: