Fock package

Fock degrees of freedom

FID, Fock and FIndex

FockOperator, FOperator and BOperator

Fock terms

FockCoupling

Predefined Fock terms

Manual

QuantumLattices.Essentials.FockPackage.CoulombType
Coulomb(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}.

source
QuantumLattices.Essentials.FockPackage.FockCouplingMethod
FockCoupling{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
source
QuantumLattices.Essentials.FockPackage.HoppingType
Hopping(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}.

source
QuantumLattices.Essentials.FockPackage.HubbardType
Hubbard(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}.

source
QuantumLattices.Essentials.FockPackage.InterOrbitalInterSpinType
InterOrbitalInterSpin(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}.

source
QuantumLattices.Essentials.FockPackage.InterOrbitalIntraSpinType
InterOrbitalIntraSpin(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}.

source
QuantumLattices.Essentials.FockPackage.OnsiteType
Onsite(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}.

source
QuantumLattices.Essentials.FockPackage.PairHoppingType
PairHopping(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}.

source
QuantumLattices.Essentials.FockPackage.PairingType
Pairing(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}.

source
QuantumLattices.Essentials.FockPackage.SpinFlipType
SpinFlip(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}.

source
QuantumLattices.Essentials.FockPackage.@σʸ_strMacro
σʸ"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").

source
QuantumLattices.Essentials.FockPackage.@σˣ_strMacro
σˣ"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").

source
QuantumLattices.Essentials.FockPackage.@σᶻ_strMacro
σᶻ"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").

source
QuantumLattices.Essentials.FockPackage.@σ⁰_strMacro
σ⁰"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").

source
QuantumLattices.Essentials.FockPackage.@σ⁺_strMacro
σ⁺"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").

source
QuantumLattices.Essentials.FockPackage.@σ⁻_strMacro
σ⁻"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").

source
Base.:*Method
*(f1::FOperator, f2::FOperator) -> Union{Nothing, FOperator}

Get the multiplication of two fermionic Fock operators.

source
Base.:*Method
*(fc₁::FockCoupling, fc₂::FockCoupling) -> FockCoupling

Get the multiplication between two Fock couplings.

source
Base.angleMethod
angle(id::OID{<:FIndex}, vectors::AbstractVector{<:AbstractVector{Float}}, values::AbstractVector{Float}) -> Complex{Float}

Get the twist phase corresponding to a Fock oid.

source
Base.reprMethod
repr(fc::FockCoupling) -> String

Get the repr representation of a Fock coupling.

source
Base.showMethod
show(io::IO, fc::FockCoupling)

Show a Fock coupling.

source
QuantumLattices.Essentials.DegreesOfFreedom.scriptMethod
script(::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.

source
QuantumLattices.Essentials.Terms.otypeMethod
otype(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.

source
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.

source
QuantumLattices.Interfaces.expandMethod
expand(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.

source
QuantumLattices.Interfaces.permuteMethod
permute(::Type{<:BOperator}, id₁::OID{<:FIndex{:b}}, id₂::OID{<:FIndex{:b}}) -> Tuple{Vararg{BOperator}}

Permute two bosonic oid and get the result.

source
QuantumLattices.Interfaces.permuteMethod
permute(::Type{<:FOperator}, id₁::OID{<:FIndex{:f}}, id₂::OID{<:FIndex{:f}}) -> Tuple{Vararg{FOperator}}

Permute two fermionic oid and get the result.

source