Operator Representations

This module provides various data structures for representing fermionic operators in different bases.

OperatorTrait(*args, **kwargs)

A protocol indicating all methods implemented by operator classes.

Fermion Operator

This operator represents fermionic operators in terms of the second-quantization creation and annihilation operators.

FermionAction

A fermionic creation or annihilation action.

FermionOperator(coeffs, actions, modes, ...)

A spin-less fermionic operator.

cre(mode)

Constructs a creation action on the fermionic mode at mode.

ann(mode)

Constructs an annihilation action on the fermionic mode at mode.

Majorana Operator

This operator represents fermionic operators in terms of Majorana fermions.

MajoranaAction

The MajoranaAction type.

MajoranaOperator(coeffs, modes, boundaries)

A Majorana fermion operator.

gamma(mode, is_prime)

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:

EdgeAction

The EdgeAction type.

TransferAction

The TransferAction type.

EdgeVertexOperator(coeffs, left_indices, ...)

An edge-vertex operator.

TransferVertexOperator(coeffs, left_indices, ...)

A transfer-vertex operator.