Operators
There are several different operators defined, which all follow an interface similar to the following:
operator([elt::Type{<:Number}=ComplexF64], [symmetry::Type{<:Sector}=Trivial]; kwargs...)
Here, the scalar type of the operator is defined by elt
, while the symmetry can be chosen through the symmetry
argument. Other parameters are supplied as keywords. The special keyword argument side
can be used for operators that require an additional virtual space to satisfy the symmetry constraints, in which case it determines where this auxiliary space is located, either to the left :L
(default) or to the right :R
.
Spin operators
The spin operators S_x
, S_y
and S_z
are defined such that they obey the spin commutation relations $[S^j, S^k] = i \varepsilon_{jkl} S^l$. Additionally, the ladder operators are defined as $S^{\pm} = S^x \pm i S^y$. Several combinations are defined that act on two spins.
Supported values of symmetry
for spin operators are Trivial
, Z2Irrep
and U1Irrep
. When imposing symmetries, by convention we choose S_z
as the diagonal operator for $\mathrm{U}(1)$, and S_x
as the diagonal operator for $\mathbb{Z}_2$.
MPSKitModels.S_x
— FunctionS_x([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
Sˣ([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
The spin operator along the x-axis.
See also σˣ
MPSKitModels.S_y
— FunctionS_y([eltype::Type{<:Complex}], [symmetry::Type{<:Sector}]; spin=1 // 2)
Sʸ([eltype::Type{<:Complex}], [symmetry::Type{<:Sector}]; spin=1 // 2)
The spin operator along the y-axis.
See also σʸ
MPSKitModels.S_z
— FunctionS_z([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
Sᶻ([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
The spin operator along the z-axis. Possible values for symmetry
are Trivial
, Z2Irrep
, and U1Irrep
.
See also σᶻ
MPSKitModels.S_plus
— FunctionS_plus([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
S⁺([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
The spin plus operator.
See also σ⁺
MPSKitModels.S_min
— FunctionS_min([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
S⁻([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
The spin minus operator.
See also σ⁻
MPSKitModels.S_xx
— FunctionS_xx([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
Sˣˣ([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
The spin xx exchange operator.
See also σˣˣ
MPSKitModels.S_yy
— FunctionS_yy([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
Sʸʸ([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
The spin yy exchange operator.
See also σʸʸ
MPSKitModels.S_zz
— FunctionS_zz([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
Sᶻᶻ([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
The spin zz exchange operator.
See also σᶻᶻ
MPSKitModels.S_plusmin
— FunctionS_plusmin([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
S⁺⁻([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
The spin plusmin exchange operator.
See also σ⁺⁻
MPSKitModels.S_minplus
— FunctionS_minplus([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
S⁻⁺([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
The spin minplus exchange operator.
See also σ⁻⁺
MPSKitModels.S_exchange
— FunctionS_exchange([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
SS([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; spin=1 // 2)
The spin exchange operator.
See also σσ
For convenience, the Pauli matrices can also be recovered as $σⁱ = 2 Sⁱ$.
MPSKitModels.σˣ
— FunctionPauli x operator.
MPSKitModels.σʸ
— FunctionPauli y operator.
MPSKitModels.σᶻ
— FunctionPauli z operator.
MPSKitModels.σ⁺
— FunctionPauli plus operator.
MPSKitModels.σ⁻
— FunctionPauli minus operator.
MPSKitModels.σˣˣ
— FunctionPauli xx operator.
MPSKitModels.σʸʸ
— FunctionPauli yy operator.
MPSKitModels.σᶻᶻ
— FunctionPauli zz operator.
MPSKitModels.σ⁺⁻
— FunctionPauli plusmin operator.
MPSKitModels.σ⁻⁺
— FunctionPauli minplus operator.
MPSKitModels.σσ
— FunctionPauli exchange operator.
Q-state Potts operators
The Q-state Potts operators potts_X
and potts_Z
are defined to fulfill the braiding relation $ZX = \omega XZ$ with $\omega = e^{2\pi i/Q}$.
Supported values of symmetry
for the X
operator are Trivial
and ZNIrrep{Q}
, while for the Z
operator only Trivial
is supported.
Missing docstring for potts_X
. Check Documenter's build log for details.
Missing docstring for potts_Z
. Check Documenter's build log for details.
MPSKitModels.potts_ZZ
— Functionpotts_ZZ([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; q=3)
The Potts operator $Z ⊗ Z'$, where $Z^q = 1$.
Bosonic operators
The bosonic creation and annihilation operators a_plus
($a^+$) and a_min
($a^-$) are defined such that the following holds:
\[a^+ \left|n\right> = \sqrt{n + 1} \left|n+1\right>\]
\[a^- \left|n\right> = \sqrt{n} \left|n-1\right>\]
From these, a number operator a_number
($N$) can be defined:
\[N = a^+ a^-\]
\[N\left|n\right> = n \left|n\right>\]
With these, the following commutators can be obtained:
\[\left[a^-, a^+\right] = 1\]
\[\left[N, a^+\right] = a^+\]
\[\left[N, a^-\right] = -a^-\]
Supported values of symmetry
for bosonic operators are Trivial
and U1Irrep
.
MPSKitModels.a_plus
— Functiona_plus([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; cutoff=5)
a⁺([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; cutoff=5)
The truncated bosonic creation operator, with a maximum of cutoff
bosons per site.
MPSKitModels.a_min
— Functiona_min([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; cutoff=5)
a⁻([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; cutoff=5)
The truncated bosonic annihilation operator, with a maximum of cutoff
bosons per site.
MPSKitModels.a_number
— Functiona_number([eltype::Type{<:Number}], [symmetry::Type{<:Sector}]; cutoff=5)
The truncated bosonic number operator, with a maximum of cutoff
bosons per site.
Fermionic operators
Spinless fermions.
MPSKitModels.c_plus
— Functionc_plus([elt::Type{<:Number}=ComplexF64]; side=:L)
c⁺([elt::Type{<:Number}=ComplexF64]; side=:L)
Fermionic creation operator.
MPSKitModels.c_min
— Functionc_min([elt::Type{<:Number}=ComplexF64]; side=:L)
c⁻([elt::Type{<:Number}=ComplexF64]; side=:L)
Fermionic annihilation operator.
MPSKitModels.c_number
— Functionc_number([elt::Type{<:Number}=ComplexF64])
Fermionic number operator.
Spinful fermions.
Missing docstring for e_plus
. Check Documenter's build log for details.
Missing docstring for e_min
. Check Documenter's build log for details.
MPSKitModels.HubbardOperators.e_number
— Functione_number(T, particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector})
Return the one-body operator that counts the number of particles.