Fock package
Fock degrees of freedom
FID, Fock and FIndex
FockOperator, FOperator and BOperator
Fock terms
FockCoupling
Predefined Fock terms
Manual
QuantumLattices.Essentials.FockPackage.ANNIHILATION
— ConstantANNIHILATION
Indicate that the nambu index is ANNIHILATION.
QuantumLattices.Essentials.FockPackage.CREATION
— ConstantCREATION
Indicate that the nambu index is CREATION.
QuantumLattices.Essentials.FockPackage.MAJORANA
— ConstantMAJORANA
Indicate that the nambu index is MAJORANA.
QuantumLattices.Essentials.FockPackage.bdefaultlatex
— Constantbdefaultlatex
The default LaTeX format for a bosonic oid.
QuantumLattices.Essentials.FockPackage.fdefaultlatex
— Constantfdefaultlatex
The default LaTeX format for a fermionic oid.
QuantumLattices.Essentials.FockPackage.AbstractFockOperator
— TypeAbstractFockOperator{V<:Number, I<:ID{OID{<:FIndex}}} <: Operator{V, I}
Abstract type for all Fock operators.
QuantumLattices.Essentials.FockPackage.BOperator
— TypeBOperator{V<:Number, I<:ID{OID{<:FIndex{:b}}}} <: AbstractFockOperator{V, I}
Bosonic Fock operator.
QuantumLattices.Essentials.FockPackage.Coulomb
— TypeCoulomb(id::Symbol, value::Any, bondkind::Int=1;
couplings::Union{Function, Coupling, Couplings, Nothing}=nothing,
amplitude::Union{Function, Nothing}=nothing,
modulate::Union{Function, Bool}=false
)
Coulomb term.
Type alias for Term{:Coulomb, 4, id, V, Int, <:TermCouplings, <:TermAmplitude, <:TermModulate}
.
QuantumLattices.Essentials.FockPackage.FCID
— TypeFCID{A<:Tuple, N<:Tuple} <: SimpleID
The id of the atoms and nambus part of a Fock coupling.
QuantumLattices.Essentials.FockPackage.FID
— TypeFID <: IID
The Fock id.
QuantumLattices.Essentials.FockPackage.FID
— MethodFID{ST}(; orbital::Int=1, spin::Int=1, nambu::Int=ANNIHILATION) where ST
Create a Fock id.
QuantumLattices.Essentials.FockPackage.FIndex
— TypeFIndex{ST, S} <: Index{PID{S}, FID{ST}}
The Fock index.
QuantumLattices.Essentials.FockPackage.FIndex
— MethodFIndex(pid::PID, fid::FID) -> FIndex
Construct a Fock index by a pid and an fid.
QuantumLattices.Essentials.FockPackage.FOperator
— TypeFOperator{V<:Number, I<:ID{OID{<:FIndex{:f}}}} <: AbstractFockOperator{V, I}
Fermionic Fock operator.
QuantumLattices.Essentials.FockPackage.Fock
— TypeFock{ST} <: Internal{FID{ST}}
The Fock interanl degrees of freedom.
QuantumLattices.Essentials.FockPackage.Fock
— MethodFock{ST}(; atom::Int=1, norbital::Int=1, nspin::Int=2, nnambu::Int=2) where ST
Construct a Fock degrees of freedom.
QuantumLattices.Essentials.FockPackage.FockCoupling
— TypeFockCoupling{V, A<:Tuple, N<:Tuple, O<:Subscripts, S<:Subscripts, I<:Tuple{FCID, SubID, SubID}} <: Coupling{V, I}
Fock coupling.
QuantumLattices.Essentials.FockPackage.FockCoupling
— MethodFockCoupling{N}(value::Number=1;
atoms::Union{NTuple{N, Int}, Nothing}=nothing,
nambus::Union{NTuple{N, Int}, Nothing}=nothing,
orbitals::Union{NTuple{N, Int}, Subscripts, Nothing}=nothing,
spins::Union{NTuple{N, Int}, Subscripts, Nothing}=nothing
) where N
QuantumLattices.Essentials.FockPackage.Hopping
— TypeHopping(id::Symbol, value::Any, bondkind::Int=1;
couplings::Union{Function, Coupling, Couplings, Nothing}=nothing,
amplitude::Union{Function, Nothing}=nothing,
modulate::Union{Function, Bool}=false,
)
Hopping term.
Type alias for Term{:Hopping, 2, id, V, Int, <:TermCouplings, <:TermAmplitude, <:TermModulate}
.
QuantumLattices.Essentials.FockPackage.Hubbard
— TypeHubbard(id::Symbol, value::Any; amplitude::Union{Function, Nothing}=nothing, modulate::Union{Function, Bool}=false)
Hubbard term.
Type alias for Term{:Hubbard, 4, id, V, Int, <:TermCouplings, <:TermAmplitude, <:TermModulate}
.
QuantumLattices.Essentials.FockPackage.InterOrbitalInterSpin
— TypeInterOrbitalInterSpin(id::Symbol, value::Any; amplitude::Union{Function, Nothing}=nothing, modulate::Union{Function, Bool}=false)
Interorbital-interspin term.
Type alias for Term{:InterOrbitalInterSpin, 4, id, V, Int, <:TermCouplings, <:TermAmplitude, <:TermModulate}
.
QuantumLattices.Essentials.FockPackage.InterOrbitalIntraSpin
— TypeInterOrbitalIntraSpin(id::Symbol, value::Any; amplitude::Union{Function, Nothing}=nothing, modulate::Union{Function, Bool}=false)
Interorbital-intraspin term.
Type alias for Term{:InterOrbitalIntraSpin, 4, id, V, Int, <:TermCouplings, <:TermAmplitude, <:TermModulate}
.
QuantumLattices.Essentials.FockPackage.Onsite
— TypeOnsite(id::Symbol, value::Any;
couplings::Union{Function, Coupling, Couplings, Nothing}=nothing,
amplitude::Union{Function, Nothing}=nothing,
modulate::Union{Function, Bool}=false,
)
Onsite term.
Type alias for Term{:Onsite, 2, id, V, Int, <:TermCouplings, <:TermAmplitude, <:TermModulate}
.
QuantumLattices.Essentials.FockPackage.PairHopping
— TypePairHopping(id::Symbol, value::Any; amplitude::Union{Function, Nothing}=nothing, modulate::Union{Function, Bool}=false)
Pair-hopping term.
Type alias for Term{:PairHopping, 4, id, V, Int, <:TermCouplings, <:TermAmplitude, <:TermModulate}
.
QuantumLattices.Essentials.FockPackage.Pairing
— TypePairing(id::Symbol, value::Any, bondkind::Int=0;
couplings::Union{Function, Coupling, Couplings, Nothing}=nothing,
amplitude::Union{Function, Nothing}=nothing,
modulate::Union{Function, Bool}=false,
)
Pairing term.
Type alias for Term{:Pairing, 2, id, V, Int, <:TermCouplings, <:TermAmplitude, <:TermModulate}
.
QuantumLattices.Essentials.FockPackage.SpinFlip
— TypeSpinFlip(id::Symbol, value::Any; amplitude::Union{Function, Nothing}=nothing, modulate::Union{Function, Bool}=false)
Spin-flip term.
Type alias for Term{:SpinFlip, 4, id, V, Int, <:TermCouplings, <:TermAmplitude, <:TermModulate}
.
QuantumLattices.Essentials.FockPackage.@fc_str
— Macrofc"..." -> FockCoupling
Construct a FockCoupling from a literal string.
QuantumLattices.Essentials.FockPackage.@σʸ_str
— Macroσʸ"sp" -> Couplings
σʸ"ob" -> Couplings
σʸ"sl" -> Couplings
σʸ"ph" -> Couplings
The Pauli matrix σʸ, which can act on the space of spins("sp"), orbitals("ob"), sublattices("sl") or particle-holes("ph").
QuantumLattices.Essentials.FockPackage.@σˣ_str
— Macroσˣ"sp" -> Couplings
σˣ"ob" -> Couplings
σˣ"sl" -> Couplings
σˣ"ph" -> Couplings
The Pauli matrix σˣ, which can act on the space of spins("sp"), orbitals("ob"), sublattices("sl") or particle-holes("ph").
QuantumLattices.Essentials.FockPackage.@σᶻ_str
— Macroσᶻ"sp" -> Couplings
σᶻ"ob" -> Couplings
σᶻ"sl" -> Couplings
σᶻ"ph" -> Couplings
The Pauli matrix σᶻ, which can act on the space of spins("sp"), orbitals("ob"), sublattices("sl") or particle-holes("ph").
QuantumLattices.Essentials.FockPackage.@σ⁰_str
— Macroσ⁰"sp" -> Couplings
σ⁰"ob" -> Couplings
σ⁰"sl" -> Couplings
σ⁰"ph" -> Couplings
The Pauli matrix σ⁰, which can act on the space of spins("sp"), orbitals("ob"), sublattices("sl") or particle-holes("ph").
QuantumLattices.Essentials.FockPackage.@σ⁺_str
— Macroσ⁺"sp" -> Couplings
σ⁺"ob" -> Couplings
σ⁺"sl" -> Couplings
σ⁺"ph" -> Couplings
The Pauli matrix σ⁺, which can act on the space of spins("sp"), orbitals("ob"), sublattices("sl") or particle-holes("ph").
QuantumLattices.Essentials.FockPackage.@σ⁻_str
— Macroσ⁻"sp" -> Couplings
σ⁻"ob" -> Couplings
σ⁻"sl" -> Couplings
σ⁻"ph" -> Couplings
The Pauli matrix σ⁻, which can act on the space of spins("sp"), orbitals("ob"), sublattices("sl") or particle-holes("ph").
Base.:*
— Method*(f1::FOperator, f2::FOperator) -> Union{Nothing, FOperator}
Get the multiplication of two fermionic Fock operators.
Base.:*
— Method*(fc₁::FockCoupling, fc₂::FockCoupling) -> FockCoupling
Get the multiplication between two Fock couplings.
Base.angle
— Methodangle(id::OID{<:FIndex}, vectors::AbstractVector{<:AbstractVector{Float}}, values::AbstractVector{Float}) -> Complex{Float}
Get the twist phase corresponding to a Fock oid.
Base.repr
— Methodrepr(fc::FockCoupling) -> String
Get the repr representation of a Fock coupling.
Base.show
— Methodshow(io::IO, fc::FockCoupling)
Show a Fock coupling.
QuantumLattices.Essentials.DegreesOfFreedom.script
— Methodscript(::Val{:site}, index::FIndex; kwargs...) -> Int
script(::Val{:orbital}, index::FIndex; kwargs...) -> Int
script(::Val{:spinint}, index::FIndex; kwargs...) -> Int
script(::Val{:spinsym}, index::FIndex; kwargs...) -> String
script(::Val{:nambu}, index::FIndex; kwargs...) -> String
Get the required script of a Fock index.
QuantumLattices.Essentials.FockPackage.isnormalordered
— Methodisnormalordered(opt::AbstractFockOperator) -> Bool
Judge whether a Fock operator is normal ordered.
QuantumLattices.Essentials.FockPackage.nambufockindextotuple
— Functionnambufockindextotuple
Indicate that the choosed fields are (:scope, :nambu, :site, :orbital, :spin)
when converting a Fock index to tuple.
QuantumLattices.Essentials.FockPackage.statistics
— Methodstatistics(opt::BOperator) -> Symbol
statistics(::Type{<:BOperator}) -> Symbol
Get the statistics of BOperator.
QuantumLattices.Essentials.FockPackage.statistics
— Methodstatistics(opt::FOperator) -> Symbol
statistics(::Type{<:FOperator}) -> Symbol
Get the statistics of FOperator.
QuantumLattices.Essentials.FockPackage.usualfockindextotuple
— Functionusualfockindextotuple
Indicate that the choosed fields are (:scope, :site, :orbital, :spin)
when converting a Fock index to tuple.
QuantumLattices.Essentials.FockPackage.σʸ
— Methodσʸ(mode::String) -> Couplings
The Pauli matrix σʸ, which can act on the space of spins("sp"), orbitals("ob"), sublattices("sl") or particle-holes("ph").
QuantumLattices.Essentials.FockPackage.σˣ
— Methodσˣ(mode::String) -> Couplings
The Pauli matrix σˣ, which can act on the space of spins("sp"), orbitals("ob"), sublattices("sl") or particle-holes("ph").
QuantumLattices.Essentials.FockPackage.σᶻ
— Methodσᶻ(mode::String) -> Couplings
The Pauli matrix σᶻ, which can act on the space of spins("sp"), orbitals("ob"), sublattices("sl") or particle-holes("ph").
QuantumLattices.Essentials.FockPackage.σ⁰
— Methodσ⁰(mode::String) -> Couplings
The Pauli matrix σ⁰, which can act on the space of spins("sp"), orbitals("ob"), sublattices("sl") or particle-holes("ph").
QuantumLattices.Essentials.FockPackage.σ⁺
— Methodσ⁺(mode::String) -> Couplings
The Pauli matrix σ⁺, which can act on the space of spins("sp"), orbitals("ob"), sublattices("sl") or particle-holes("ph").
QuantumLattices.Essentials.FockPackage.σ⁻
— Methodσ⁻(mode::String) -> Couplings
The Pauli matrix σ⁻, which can act on the space of spins("sp"), orbitals("ob"), sublattices("sl") or particle-holes("ph").
QuantumLattices.Essentials.Terms.otype
— Methodotype(T::Type{<:Term}, C::Type{<:Config{<:Fock{:f}}}, B::Type{<:AbstractBond})
otype(T::Type{<:Term}, C::Type{<:Config{<:Fock{:b}}}, B::Type{<:AbstractBond})
Get the operator type of a Fock term.
QuantumLattices.Interfaces.:⊗
— Method⊗(fc₁::FockCoupling, fc₂::FockCoupling) -> FockCoupling
Get the direct product between two Fock couplings.
QuantumLattices.Interfaces.:⋅
— Method⋅(fc₁::FockCoupling, fc₂::FockCoupling) -> FockCoupling
Get the dot product of two rank-2 Fock couplings.
A rank-2 FockCoupling can be considered as a matrix acting on the sublattice, orbital, spin and nambu spaces. Therefore, the dot product here is defined as the multiplication between such matrices.
QuantumLattices.Interfaces.expand
— Methodexpand(fc::FockCoupling, points::NTuple{R, Point}, focks::NTuple{R, Fock}, info::Val) where R -> Union{FCExpand, Tuple{}}
Expand a Fock coupling with the given set of points and Fock degrees of freedom.
QuantumLattices.Interfaces.permute
— Methodpermute(::Type{<:BOperator}, id₁::OID{<:FIndex{:b}}, id₂::OID{<:FIndex{:b}}) -> Tuple{Vararg{BOperator}}
Permute two bosonic oid and get the result.
QuantumLattices.Interfaces.permute
— Methodpermute(::Type{<:FOperator}, id₁::OID{<:FIndex{:f}}, id₂::OID{<:FIndex{:f}}) -> Tuple{Vararg{FOperator}}
Permute two fermionic oid and get the result.