Quantum Systems
QuantumLattices.QuantumSystems.FockTerm
— TypeFockTerm
Type alias for Union{Onsite, Hopping, Pairing, Hubbard, InterOrbitalInterSpin, InterOrbitalIntraSpin, SpinFlip, PairHopping, Coulomb}
.
QuantumLattices.QuantumSystems.PhononTerm
— TypePhononTerm
Type alias for Union{Kinetic, Hooke, Elastic}
.
QuantumLattices.QuantumSystems.annihilation
— Constantannihilation
Indicate that the nambu index is annihilation.
QuantumLattices.QuantumSystems.block
— Constant*(f₁::Operator{<:Number, <:ID{FockIndex{:f}}}, f₂::Operator{<:Number, <:ID{FockIndex{:f}}}) -> Operator
*(f₁::Operator{<:Number, <:ID{Index{<:FockIndex{:f}, Int}}}, f₂::Operator{<:Number, <:ID{Index{<:FockIndex{:f}, Int}}}) -> Operator
*(f₁::Operator{<:Number, <:ID{CompositeIndex{<:Index{<:FockIndex{:f}, Int}}}}, f₂::Operator{<:Number, <:ID{CompositeIndex{<:Index{<:FockIndex{:f}, Int}}}}) -> Operator
Get the multiplication of two fermionic Fock operators.
QuantumLattices.QuantumSystems.creation
— Constantcreation
Indicate that the nambu index is creation.
QuantumLattices.QuantumSystems.latexofbosons
— Constantlatexofbosons
Default LaTeX format of a bosonic index.
QuantumLattices.QuantumSystems.latexoffermions
— Constantlatexoffermions
Default LaTeX format of a fermionic index.
QuantumLattices.QuantumSystems.latexofparticles
— Constantlatexofparticles
Default LaTeX format of a wildcard Fock index.
QuantumLattices.QuantumSystems.latexofphonons
— Constantlatexofphonons
Default LaTeX format of a phonon index.
QuantumLattices.QuantumSystems.latexofspins
— Constantlatexofspins
Default LaTeX format of a spin index.
QuantumLattices.DegreesOfFreedom.MatrixCoupling
— MethodMatrixCoupling(F::Union{typeof(𝕗), typeof(𝕓), typeof(𝕕)}, sites::Union{NTuple{2, Ordinal}, Colon}, orbital::Union{AbstractMatrix, Colon}, spin::Union{AbstractMatrix, Colon}, nambu::Union{AbstractMatrix, Colon})
MatrixCoupling(sites::Union{NTuple{2, Ordinal}, Colon}, ::Type{F}, orbital::Union{AbstractMatrix, Colon}, spin::Union{AbstractMatrix, Colon}, nambu::Union{AbstractMatrix, Colon}) where {F<:FockIndex}
Construct a matrix coupling for Fock systems.
QuantumLattices.DegreesOfFreedom.MatrixCoupling
— MethodMatrixCoupling(::typeof(𝕦), sites::Union{NTuple{2, Ordinal}, Colon}, matrix::AbstractMatrix; rows::Union{AbstractVector, Nothing}=nothing, cols::Union{AbstractVector, Nothing}=nothing)
MatrixCoupling(sites::Union{NTuple{2, Ordinal}, Colon}, ::Type{PhononIndex{:u}}, matrix::AbstractMatrix; rows::Union{AbstractVector, Nothing}=nothing, cols::Union{AbstractVector, Nothing}=nothing)
Construct a set of Coupling
s corresponding to the dynamical matrix of phonons.
QuantumLattices.DegreesOfFreedom.MatrixCoupling
— MethodMatrixCoupling(::Type{<:𝕊}, sites::Union{NTuple{2, Ordinal}, Colon}, matrix::AbstractMatrix; rows::AbstractVector=SVector('x', 'y', 'z'), cols::AbstractVector=SVector('x', 'y', 'z'))
MatrixCoupling(sites::Union{NTuple{2, Ordinal}, Colon}, ::Type{<:SpinIndex}, matrix::AbstractMatrix; rows::AbstractVector=SVector('x', 'y', 'z'), cols::AbstractVector=SVector('x', 'y', 'z'))
Construct a matrix coupling for spin systems.
QuantumLattices.QuantumNumbers.Graded
— MethodGraded(fock::Fock{:f})
Graded{ℤ₁}(fock::Fock{:f})
Graded{ℕ}(fock::Fock{:f})
Graded{𝕊ᶻ}(fock::Fock{:f})
Graded{ℕ ⊠ 𝕊ᶻ}(fock::Fock{:f})
Graded{𝕊ᶻ ⊠ ℕ}(fock::Fock{:f})
Decompose a local fermionic Fock space into an Abelian graded space that preserves 1, 2) no symmetry, 3) particle number symmetry, 4) spin-z component symmetry, and 5, 6) both particle-number and spin-z component symmetry.
QuantumLattices.QuantumNumbers.Graded
— MethodGraded(spin::Spin)
Graded{ℤ₁}(spin::Spin)
Graded{𝕊ᶻ}(spin::Spin)
Decompose a local spin space into an Abelian graded space that preserves 1, 2) no symmetry, and 3) spin-z component symmetry.
QuantumLattices.QuantumSystems.Coulomb
— TypeCoulomb(id::Symbol, value, bondkind, coupling=Coupling(𝕕(:, :, :, :), 𝕕(:, :, :, :))^2; ishermitian::Bool=true, amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Coulomb term.
Type alias for Term{:Coulomb, id, V, B, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.DM
— TypeDM(
id::Symbol,
value,
bondkind,
vectors::Pair{<:AbstractVector{<:Union{Number, Tuple{Number, Number}, AbstractVector{<:Number}}}, <:Union{Char, AbstractVector{<:Number}}}...;
unit::Symbol=:degree,
amplitude::Union{Function, Nothing}=nothing,
ismodulatable::Bool=true
)
DM term. Since DM term is antisymmetric on every bond, only the positive direction of a bond is needed. The negative direction of a bond can be handled automatically by this function.
Here, vectors
specify the unit DM vector on every bond in the form [bond₁, bond₂, ...]=>v
, where bondᵢ
can be
- a
Number
specifying the azimuth angle of a bond in the 2-dimensional case, or - a
Tuple{Number, Number}
specifying the polar and azimuth angle pairs of a bond in the 3-dimensional case, or - an
AbstractVector{<:Number}
specifying the direction of a bond;
and v
can be
- a
Char
of 'x', 'y' or 'z', indicating the unit DM vector on the set of bonds is along the x, y or z direction, or - an
AbstractVector{<:Number}
, specifying the direction of the DM vector on the set of bonds.
Type alias for Term{:DM, id, V, B, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Elastic
— TypeElastic(id::Symbol, value, bondkind, coupling; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Generic elastic energy of phonons.
Type alias for Term{:Elastic, id, V, B, C<:TermCoupling, A<:TermAmplitude}
QuantumLattices.QuantumSystems.Fock
— TypeFock{T} <: SimpleInternal{FockIndex{T, Int, Rational{Int}, Int}}
Fock space of Fock generators at a single point.
QuantumLattices.QuantumSystems.FockIndex
— TypeFockIndex{T, O<:Union{Int, Symbol, Colon}, S<:Union{Rational{Int}, Symbol, Colon}, N<:Union{Int, Symbol, Colon}} <: SimpleInternalIndex
Fock index, i.e., the internal index to specify the generators of a Fock space.
QuantumLattices.QuantumSystems.FockIndex
— MethodFockIndex(orbital::Union{Int, Symbol, Colon}, spin::Union{Rational{Int}, Int, Symbol, Colon}, nambu::Union{Int, Symbol, Colon})
FockIndex{T}(orbital::Union{Int, Symbol, Colon}, spin::Union{Rational{Int}, Int, Symbol, Colon}, nambu::Union{Int, Symbol, Colon}) where T
FockIndex{T, O, S, N}(orbital::Union{Int, Symbol, Colon}, spin::Union{Rational{Int}, Symbol, Colon}, nambu::Union{Int, Symbol, Colon}) where {T, O, S, N}
Construct a Fock index.
QuantumLattices.QuantumSystems.Heisenberg
— TypeHeisenberg(id::Symbol, value, bondkind; form::Symbol=Symbol("+-z"), amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Heisenberg term.
Type alias for Term{:Heisenberg, id, V, B, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Hooke
— TypeHooke(id::Symbol, value, bondkind; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Potential energy of phonons by the Hooke's law.
Type alias for Term{:Hooke, id, V, B, C<:TermCoupling, A<:TermAmplitude}
QuantumLattices.QuantumSystems.Hopping
— TypeHopping(id::Symbol, value, bondkind, coupling=Coupling(𝕕(:, :, :, :), 𝕕(:, :, :, :)); amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Hopping term.
Type alias for Term{:Hopping, id, V, B, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Hubbard
— TypeHubbard(id::Symbol, value; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Hubbard term.
Type alias for Term{:Hubbard, id, V, Int, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.InterOrbitalInterSpin
— TypeInterOrbitalInterSpin(id::Symbol, value; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Interorbital-interspin term.
Type alias for Term{:InterOrbitalInterSpin, id, V, Int, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.InterOrbitalIntraSpin
— TypeInterOrbitalIntraSpin(id::Symbol, value; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Interorbital-intraspin term.
Type alias for Term{:InterOrbitalIntraSpin, id, V, Int, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Ising
— TypeIsing(id::Symbol, value, bondkind, direction::Char; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Ising term.
Type alias for Term{:Ising, id, V, B, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Kinetic
— TypeKinetic(id::Symbol, value; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Kinetic energy of phonons.
Type alias for Term{:Kinetic, id, V, Int, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Kitaev
— TypeKitaev(
id::Symbol, value, bondkind;
x::AbstractVector{<:Union{Number, Tuple{Number, Number}, AbstractVector{<:Number}}},
y::AbstractVector{<:Union{Number, Tuple{Number, Number}, AbstractVector{<:Number}}},
z::AbstractVector{<:Union{Number, Tuple{Number, Number}, AbstractVector{<:Number}}},
unit::Symbol=:degree,
amplitude::Union{Function, Nothing}=nothing,
ismodulatable::Bool=true
)
Kitaev term. Since Kitaev term is symmetric on every bond, only one direction of a bond is needed. The inverse direction of a bond can be handled automatically by this function.
Here, x
, y
and z
assign the x-bonds, y-bonds, and z-bonds, respectively, with each kind of bond can be
- a
Number
specifying the azimuth angle of a bond in the 2-dimensional case, or - a
Tuple{Number, Number}
specifying the polar and azimuth angle pairs of a bond in the 3-dimensional case, or - an
AbstractVector{<:Number}
specifying the direction of a bond.
Type alias for Term{:Kitaev, id, V, B, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Onsite
— TypeOnsite(id::Symbol, value, coupling=Coupling(𝕕(:, :, :, :), 𝕕(:, :, :, :)); ishermitian::Bool=true, amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Onsite term.
Type alias for Term{:Onsite, id, V, Int, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.PairHopping
— TypePairHopping(id::Symbol, value; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Pair-hopping term.
Type alias for Term{:PairHopping, id, V, Int, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Pairing
— TypePairing(id::Symbol, value, bondkind, coupling; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Pairing term.
Type alias for Term{:Pairing, id, V, B, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Phonon
— TypePhonon{K} <: SimpleInternal{PhononIndex{K, Char}}
Phonon space of lattice vibration generators at a single point.
QuantumLattices.QuantumSystems.Phonon
— MethodPhonon(ndirection::Integer)
Phonon{K}(ndirection::Integer) where K
Construct a phonon space.
QuantumLattices.QuantumSystems.PhononIndex
— TypePhononIndex{K, D<:Union{Char, Symbol, Colon}} <: SimpleInternalIndex
Phonon index, i.e., the internal index to specify the generators of the vibration of a lattice point.
QuantumLattices.QuantumSystems.PhononIndex
— MethodPhononIndex{K}(direction::Union{Char, Symbol, Colon}) where K
PhononIndex{K, D}(direction::Union{Char, Symbol, Colon}) where {K, D}
Construct a phonon index.
QuantumLattices.QuantumSystems.SingleIonAnisotropy
— TypeSingleIonAnisotropy(id::Symbol, value, direction::Char; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
SingleIonAnisotropy(id::Symbol, value, matrix::AbstractMatrix{<:Number}; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Single ion anisotropy term.
Type alias for Term{:SingleIonAnisotropy, id, V, Int, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Spin
— TypeSpin{S} <: SimpleInternal{SpinIndex{S, Char}}
Spin space of spin generators at a single point.
QuantumLattices.QuantumSystems.SpinFlip
— TypeSpinFlip(id::Symbol, value; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Spin-flip term.
Type alias for Term{:SpinFlip, id, V, Int, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.SpinIndex
— TypeSpinIndex{S, T<:Union{Char, Symbol, Colon}} <: SimpleInternalIndex
Spin index, i.e., the internal index to specify the generators of a spin space.
QuantumLattices.QuantumSystems.SpinIndex
— MethodSpinIndex(tag::Union{Char, Symbol, Colon})
SpinIndex{S}(tag::Union{Char, Symbol, Colon}) where S
SpinIndex{S, T}(tag::Union{Char, Symbol, Colon}) where {S, T}
Construct a spin index.
QuantumLattices.QuantumSystems.SpinTerm
— TypeSpinTerm(id::Symbol, value, bondkind, coupling; amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true)
Generic spin term.
Type alias for Term{:SpinTerm, id, V, B, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Zeeman
— TypeZeeman(
id::Symbol, value, direction::Char, g::Number=1;
amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true
)
Zeeman(
id::Symbol, value, direction::Union{AbstractVector{<:Number}, Tuple{Number, Number}}, g::Union{Number, AbstractMatrix{<:Number}}=1;
unit::Symbol=:degree, amplitude::Union{Function, Nothing}=nothing, ismodulatable::Bool=true
)
Zeeman term.
Type alias for Term{:Zeeman, id, V, Int, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Γ
— TypeΓ(
id::Symbol, value, bondkind;
x::AbstractVector{<:Union{Number, Tuple{Number, Number}, AbstractVector{<:Number}}},
y::AbstractVector{<:Union{Number, Tuple{Number, Number}, AbstractVector{<:Number}}},
z::AbstractVector{<:Union{Number, Tuple{Number, Number}, AbstractVector{<:Number}}},
unit::Symbol=:degree,
amplitude::Union{Function, Nothing}=nothing,
ismodulatable::Bool=true
)
Γ Term. Since Γ term is symmetric on every bond, only one direction of a bond is needed. The inverse direction of a bond can be handled automatically by this function.
Here, x
, y
and z
assign the x-bonds, y-bonds, and z-bonds, respectively, with each kind of bond can be
- a
Number
specifying the azimuth angle of a bond in the 2-dimensional case, or - a
Tuple{Number, Number}
specifying the polar and azimuth angle pairs of a bond in the 3-dimensional case, or - an
AbstractVector{<:Number}
specifying the direction of a bond.
Type alias for Term{:Γ, id, V, B, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.Γ′
— TypeΓ′(
id::Symbol, value, bondkind;
x::AbstractVector{<:Union{Number, Tuple{Number, Number}, AbstractVector{<:Number}}},
y::AbstractVector{<:Union{Number, Tuple{Number, Number}, AbstractVector{<:Number}}},
z::AbstractVector{<:Union{Number, Tuple{Number, Number}, AbstractVector{<:Number}}},
unit::Symbol=:degree,
amplitude::Union{Function, Nothing}=nothing,
ismodulatable::Bool=true
)
Γ′ Term. Since Γ′ term is symmetric on every bond, only one direction of a bond is needed. The inverse direction of a bond can be handled automatically by this function.
Here, x
, y
and z
assign the x-bonds, y-bonds, and z-bonds, respectively, with each bond can be
- a
Number
specifying the azimuth angle of a bond in the 2-dimensional case, or - a
Tuple{Number, Number}
specifying the polar and azimuth angle pairs of a bond in the 3-dimensional case, or - an
AbstractVector{<:Number}
specifying the direction of a bond.
Type alias for Term{:Γ′, id, V, B, C<:TermCoupling, A<:TermAmplitude}
.
QuantumLattices.QuantumSystems.𝕊
— Type𝕊(tag) -> SpinIndex
𝕊(site, tag) -> Index{<:SpinIndex}
𝕊(site, tag, rcoordinate, icoordinate) -> CoordinatedIndex{<:Index{<:SpinIndex}}
𝕊{S}(tag) where S -> SpinIndex{S}
𝕊{S}(site, tag) where S -> Index{<:SpinIndex{S}}
𝕊{S}(site, tag, rcoordinate, icoordinate) where S -> CoordinatedIndex{<:Index{<:SpinIndex{S}}}
Convenient construction of SpinIndex
, Index{<:SpinIndex}
, CoordinatedIndex{<:Index{<:SpinIndex}}
.
QuantumLattices.QuantumSystems.@DM_str
— MacroDM"x" => SparseMatrixCSC([0 0 0; 0 0 1; 0 -1 0])
DM"y" => SparseMatrixCSC([0 0 -1; 0 0 0; 1 0 0])
DM"z" => SparseMatrixCSC([0 1 0; -1 0 0; 0 0 0])
DM coupling matrix.
QuantumLattices.QuantumSystems.@Heisenberg_str
— MacroHeisenberg"" => SparseMatrixCSC([1 0 0; 0 1 0; 0 0 1])
Heisenberg coupling matrix.
QuantumLattices.QuantumSystems.@Ising_str
— MacroIsing"x" => SparseMatrixCSC([1 0 0; 0 0 0; 0 0 0])
Ising"y" => SparseMatrixCSC([0 0 0; 0 1 0; 0 0 0])
Ising"z" => SparseMatrixCSC([0 0 0; 0 0 0; 0 0 1])
Ising coupling matrix.
QuantumLattices.QuantumSystems.@L_str
— MacroL"x" => SparseMatrixCSC([0 0 0; 0 0 1im; 0 -1im 0])
L"y" => SparseMatrixCSC([0 0 -1im; 0 0 0; 1im 0 0])
L"z" => SparseMatrixCSC([0 1im 0; -1im 0 0; 0 0 0])
Three-dimensional rotation generators.
QuantumLattices.QuantumSystems.@Γ_str
— MacroΓ"x" => SparseMatrixCSC([0 0 0; 0 0 1; 0 1 0])
Γ"y" => SparseMatrixCSC([0 0 1; 0 0 0; 1 0 0])
Γ"z" => SparseMatrixCSC([0 1 0; 1 0 0; 0 0 0])
Γ coupling matrix.
QuantumLattices.QuantumSystems.@Γ′_str
— MacroΓ′"x" => SparseMatrixCSC([0 1 1; 1 0 0; 1 0 0])
Γ′"y" => SparseMatrixCSC([0 1 0; 1 0 1; 0 1 0])
Γ′"z" => SparseMatrixCSC([0 0 1; 0 0 1; 1 1 0])
Γ′ coupling matrix.
QuantumLattices.QuantumSystems.@σ_str
— Macroσ"0" => SparseMatrixCSC([1 0; 0 1])
σ"x" => SparseMatrixCSC([0 1; 1 0])
σ"y" => SparseMatrixCSC([0 -1im; 1im 0])
σ"z" => SparseMatrixCSC([1 0; 0 -1])
σ"+" => SparseMatrixCSC([0 1; 0 0])
σ"-" => SparseMatrixCSC([0 0; 1 0])
σ"11" => SparseMatrixCSC([1 0; 0 0])
σ"22" => SparseMatrixCSC([0 0; 0 1])
Pauli matrix σ⁰, σˣ, σʸ, σᶻ, σ⁺, σ⁻, σ¹¹, σ²².
Base.angle
— Methodangle(id::CoordinatedIndex{<:Index{<:FockIndex}}, vectors::AbstractVector{<:AbstractVector{<:Number}}, values::AbstractVector{<:Number}) -> Complex{<:Number}
Get the twist phase.
QuantumLattices.DegreesOfFreedom.patternrule
— Methodpatternrule(nambus::NTuple{N, Colon}, ::Val{}, ::Type{<:FockIndex}, ::Val{:nambu}) where N -> NTuple{N, Int}
Default pattern rule for the :nambu
attribute of Fock indexes.
QuantumLattices.QuantumOperators.matrix
— Methodmatrix(index::SpinIndex{S, Char}, dtype::Type{<:Number}=Complex{Float}) where S -> Matrix{dtype}
matrix(index::Index{<:SpinIndex}, dtype::Type{<:Number}=Complex{Float}) -> Matrix{dtype}
matrix(index::CompositeIndex{<:Index{<:SpinIndex}}, dtype::Type{<:Number}=Complex{Float}) -> Matrix{dtype}
Get the matrix representation of an index acting on the local 𝕊ᶻ space.
QuantumLattices.QuantumOperators.script
— Methodscript(index::FockIndex, ::Val{:orbital}; kwargs...) -> String
script(index::FockIndex, ::Val{:spin}; kwargs...) -> String
script(index::FockIndex, ::Val{:spinsym}; kwargs...) -> String
script(index::FockIndex, ::Val{:nambu}; kwargs...) -> String
Get the requested script of a Fock index.
QuantumLattices.QuantumOperators.script
— Methodscript(index::PhononIndex, ::Val{:direction}; kwargs...) -> String
Get the requested script of a phonon index.
QuantumLattices.QuantumOperators.script
— Methodscript(index::SpinIndex, ::Val{:tag}; kwargs...) -> String
Get the requested script of a spin index.
QuantumLattices.QuantumSystems.isannihilation
— Methodisannihilation(index::FockIndex) -> Bool
isannihilation(index::Index) -> Bool
isannihilation(index::CompositeIndex) -> Bool
Judge whether the nambu index is annihilation
.
QuantumLattices.QuantumSystems.iscreation
— Methodiscreation(index::FockIndex) -> Bool
iscreation(index::Index) -> Bool
iscreation(index::CompositeIndex) -> Bool
Judge whether the nambu index is creation
.
QuantumLattices.QuantumSystems.isnormalordered
— Methodisnormalordered(opt::Operator{<:Number, <:ID{CompositeIndex{<:Index{<:FockIndex}}}}) -> Bool
Judge whether an operator is normal ordered.
QuantumLattices.QuantumSystems.totalspin
— Methodtotalspin(::SpinIndex) -> Rational{Int}/Int/Colon
totalspin(::Type{<:SpinIndex}) -> Rational{Int}/Int/Colon/Float64
totalspin(::Index{<:SpinIndex}) -> Rational{Int}/Int/Colon
totalspin(::Type{<:Index{<:SpinIndex}}) -> Rational{Int}/Int/Colon/Float64
totalspin(::CompositeIndex{<:Index{<:SpinIndex}}) -> Rational{Int}/Int/Colon
totalspin(::Type{<:CompositeIndex{<:Index{<:SpinIndex}}}) -> Rational{Int}/Int/Colon/Float64
Get the total spin.
QuantumLattices.QuantumSystems.totalspin
— Methodtotalspin(::Spin) -> Rational{Int}/Int/Colon
totalspin(::Type{<:Spin}) -> Rational{Int}/Int/Colon
Get the total spin.
QuantumLattices.QuantumSystems.𝕊ᵀ𝕊
— Method𝕊ᵀ𝕊(sites::Union{NTuple{2, Ordinal}, Colon}, matrix::AbstractMatrix; rows::AbstractVector=SVector('x', 'y', 'z'), cols::AbstractVector=SVector('x', 'y', 'z')) -> MatrixCoupling
Construct a matrix coupling for spin system.
QuantumLattices.QuantumSystems.𝕓
— Function𝕓(orbital, spin, nambu) -> FockIndex{:b}
𝕓(site, orbital, spin, nambu) -> Index{<:FockIndex{:b}}
𝕓(site, orbital, spin, nambu, rcoordinate, icoordinate) -> CoordinatedIndex{<:Index{<:FockIndex{:b}}}
Convenient construction of FockIndex{:b}
, Index{<:FockIndex{:b}}
, CoordinatedIndex{<:Index{<:FockIndex{:b}}}
.
QuantumLattices.QuantumSystems.𝕕
— Function𝕕(orbital, spin, nambu) -> FockIndex{:}
𝕕(site, orbital, spin, nambu) -> Index{<:FockIndex{:}}
𝕕(site, orbital, spin, nambu, rcoordinate, icoordinate) -> CoordinatedIndex{<:Index{<:FockIndex{:}}}
Convenient construction of FockIndex{:}
, Index{<:FockIndex{:}}
, CoordinatedIndex{<:Index{<:FockIndex{:}}}
.
QuantumLattices.QuantumSystems.𝕗
— Function𝕗(orbital, spin, nambu) -> FockIndex{:f}
𝕗(site, orbital, spin, nambu) -> Index{<:FockIndex{:f}}
𝕗(site, orbital, spin, nambu, rcoordinate, icoordinate) -> CoordinatedIndex{<:Index{<:FockIndex{:f}}}
Convenient construction of FockIndex{:f}
, Index{<:FockIndex{:f}}
, CoordinatedIndex{<:Index{<:FockIndex{f}}}
.
QuantumLattices.QuantumSystems.𝕗⁺𝕗
— Method𝕗⁺𝕗(sites::Union{NTuple{2, Ordinal}, Colon}, orbital::Union{AbstractMatrix, Colon}, spin::Union{AbstractMatrix, Colon}, nambu::Union{AbstractMatrix, Colon}) -> MatrixCoupling
𝕓⁺𝕓(sites::Union{NTuple{2, Ordinal}, Colon}, orbital::Union{AbstractMatrix, Colon}, spin::Union{AbstractMatrix, Colon}, nambu::Union{AbstractMatrix, Colon}) -> MatrixCoupling
𝕕⁺𝕕(sites::Union{NTuple{2, Ordinal}, Colon}, orbital::Union{AbstractMatrix, Colon}, spin::Union{AbstractMatrix, Colon}, nambu::Union{AbstractMatrix, Colon}) -> MatrixCoupling
Construct a matrix coupling for Fock systems.
QuantumLattices.QuantumSystems.𝕡
— Method𝕡(direction) -> PhononIndex{:p}
𝕡(site, direction) -> Index{<:PhononIndex{:p}}
𝕡(site, direction, rcoordinate, icoordinate) -> CoordinatedIndex{<:Index{<:PhononIndex{:p}}}
Convenient construction of SpinIndex{:p}
, Index{<:SpinIndex{:p}}
, CoordinatedIndex{<:Index{<:SpinIndex{:p}}}
.
QuantumLattices.QuantumSystems.𝕦
— Method𝕦(direction) -> PhononIndex{:u}
𝕦(site, direction) -> Index{<:PhononIndex{:u}}
𝕦(site, direction, rcoordinate, icoordinate) -> CoordinatedIndex{<:Index{<:PhononIndex{:u}}}
Convenient construction of SpinIndex{:u}
, Index{<:SpinIndex{:u}}
, CoordinatedIndex{<:Index{<:SpinIndex{:u}}}
.
QuantumLattices.QuantumSystems.𝕦ᵀ𝕦
— Method𝕦ᵀ𝕦(sites::Union{NTuple{2, Ordinal}, Colon}, matrix::AbstractMatrix; rows::Union{AbstractVector, Nothing}=nothing, cols::Union{AbstractVector, Nothing}=nothing) -> MatrixCoupling
Construct a set of Coupling
s corresponding to the dynamical matrix of phonons.
QuantumLattices.expand
— Methodexpand(pnc::Coupling{<:Number, <:Pattern{<:InternalPattern{<:NTuple{2, PhononIndex{:u}}}}}, ::Val{:Hooke}, bond::Bond, hilbert::Hilbert) -> VectorSpace
Expand the default phonon potential coupling on a given bond.
QuantumLattices.kind
— Methodkind(index::PhononIndex) -> Symbol
kind(::Type{<:PhononIndex{K}}) where K -> Symbol
kind(index::Index{<:PhononIndex}) -> Symbol
kind(::Type{<:Index{<:PhononIndex{K}}}) where K -> Symbol
kind(index::CoordinatedIndex{<:Index{<:PhononIndex}}) -> Symbol
kind(::Type{<:CoordinatedIndex{<:Index{<:PhononIndex{K}}}}) where K -> Symbol
Get the kind of a phonon index.
QuantumLattices.kind
— Methodkind(pn::Phonon)
kind(::Type{<:Phonon{K}}) where K
Get the kind of a phonon space.
QuantumLattices.permute
— Methodpermute(id₁::FockIndex, id₂::FockIndex) -> Tuple{Vararg{Operator}}
Permute two Fock indexes and get the result.
QuantumLattices.permute
— Methodpermute(id₁::PhononIndex, id₂::PhononIndex) -> Tuple{Vararg{Operator}}
Permute two phonon indexes and get the result.
QuantumLattices.permute
— Methodpermute(id₁::SpinIndex, id₂::SpinIndex) -> Tuple{Vararg{Operator}}
Permute two spin indexes and get the result.