Degrees of freedom
IID, Internal and Index
Config
OID and Operator
Operators
Metric and Table
LaTeX
Boundary
Manual
Core.Type
— Method(INDEX::Type{<:Index})(pid::PID, iid::IID) -> INDEX
Get the corresponding index from a pid and an iid.
QuantumLattices.Essentials.DegreesOfFreedom.AbstractOID
— TypeAbstractOID <: SimpleID
Abstract type of operator id.
QuantumLattices.Essentials.DegreesOfFreedom.Boundary
— TypeBoundary{Names}(values::AbstractVector{Float}, vectors::AbstractVector{<:AbstractVector{Float}}) where Names
Boundary twist of operators.
QuantumLattices.Essentials.DegreesOfFreedom.Boundary
— Method(bound::Boundary)(operator::Operator) -> Operator
Get the boundary twisted operator.
QuantumLattices.Essentials.DegreesOfFreedom.Config
— TypeConfig{I}(map::Function, pids::AbstractVector{<:PID}) where {I<:Internal}
Configuration of the internal degrees of freedom at a lattice.
Here, map
maps a PID
to an Internal
.
QuantumLattices.Essentials.DegreesOfFreedom.IID
— TypeIID <: SimpleID
The id of an internal degree of freedom.
QuantumLattices.Essentials.DegreesOfFreedom.Index
— TypeIndex{P<:PID, I<:IID} <: SimpleID
The index of a degree of freedom, which consist of the spatial part and the internal part.
QuantumLattices.Essentials.DegreesOfFreedom.Internal
— TypeInternal{I<:IID} <: CartesianVectorSpace{I}
The whole internal degrees of freedom at a single point.
QuantumLattices.Essentials.DegreesOfFreedom.LaTeX
— TypeLaTeX{SP, SB}(body) where {SP, SB}
LaTeX string representation.
QuantumLattices.Essentials.DegreesOfFreedom.Metric
— TypeMetric <: Function
The rules for measuring a concrete oid so that oids can be compared.
As a function, every instance should accept only one positional argument, i.e. the concrete oid to be measured.
QuantumLattices.Essentials.DegreesOfFreedom.OID
— TypeOID(index::Index, rcoord, icoord)
OID(index::Index; rcoord, icoord)
Operator id.
QuantumLattices.Essentials.DegreesOfFreedom.OIDToTuple
— TypeOIDToTuple{Fields} <: Metric
A rule that converts an oid to a tuple by iterating over a set of selected fields in a specific order.
QuantumLattices.Essentials.DegreesOfFreedom.OIDToTuple
— Method(oidtotuple::OIDToTuple)(index::Index) -> Tuple
(oidtotuple::OIDToTuple)(oid::OID) -> Tuple
Convert a concrete oid to a tuple.
QuantumLattices.Essentials.DegreesOfFreedom.OIDToTuple
— MethodOIDToTuple(::Type{C}) where {C<:Config}
Construct the convertion rule from the information of Config
.
QuantumLattices.Essentials.DegreesOfFreedom.OIDToTuple
— MethodOIDToTuple(::Type{I}) where {I<:Index}
OIDToTuple(::Type{I}) where {I<:OID}
Construct the convertion rule from the information of subtypes of AbstractOID
.
QuantumLattices.Essentials.DegreesOfFreedom.Operator
— TypeOperator{V<:Number, I<:ID{AbstractOID}} <: Element{V, I}
Abstract type for an operator.
QuantumLattices.Essentials.DegreesOfFreedom.Operators
— TypeOperators(opts::Operator...)
A set of operators.
Type alias for Elements{<:ID{AbstractOID}, <:Operator}
.
QuantumLattices.Essentials.DegreesOfFreedom.Table
— TypeTable{I, B<:Metric} <: CompositeDict{I, Int}
The table of oid-sequence pairs.
QuantumLattices.Essentials.DegreesOfFreedom.Table
— TypeTable(config::Config, by::Metric=OIDToTuple(typeof(config))) -> Table
Get the oid-sequence table of the whole internal degrees of freedom of a lattice by use of their configurations.
QuantumLattices.Essentials.DegreesOfFreedom.Table
— TypeTable(oids::AbstractVector{<:AbstractOID}, by::Metric=OIDToTuple(eltype(oids)))
Convert a set of concrete oids to the corresponding table of oid-sequence pairs.
The input oids are measured by the input by
function with the duplicates removed. The resulting unique values are sorted, which determines the sequence of the input oids
. Note that two oids have the same sequence if their converted values are equal to each other.
Base.:==
— Method==(bound1::Boundary, bound2::Boundary) -> Bool
Judge whether two boundaries conditions are equivalent to each other.
Base.adjoint
— Methodadjoint(opts::Operators) -> Operators
Get the adjoint of a set of operators.
Base.adjoint
— Methodadjoint(index::Index) -> typeof(index)
Get the adjoint of an index.
Base.adjoint
— Methodadjoint(oid::OID) -> typeof(oid)
adjoint(oid::ID{OID, N}) where N -> typeof(oid)
Get the adjoint of an operator id.
Base.adjoint
— Methodadjoint(opt::Operator) -> Operator
Get the adjoint of an operator.
Base.angle
— Methodangle(bound::Boundary, operator::Operator) -> Float
Get the boundary twist phase of an operator.
Base.angle
— Methodangle(id::ID{AbstractOID}, vectors::AbstractVector{<:AbstractVector{Float}}, values::AbstractVector{Float}) -> Float
Get the total twist phase of an id.
Base.filter
— Methodfilter(f::Function, oidtotuple::OIDToTuple) -> OIDToTuple
Filter the selected fields.
Base.getindex
— Methodgetindex(table::Table, oid::AbstractOID) -> Int
Inquiry the sequence of an oid.
Base.haskey
— Methodhaskey(table::Table, oid::AbstractOID) -> Bool
haskey(table::Table, id::ID{AbstractOID}) -> Tuple{Vararg{Bool}}
Judge whether a single oid or a set of oids have been assigned with sequences in table.
Base.isequal
— Methodisequal(bound1::Boundary, bound2::Boundary) -> Bool
Judge whether two boundaries conditions are equivalent to each other.
Base.keys
— Methodkeys(bound::Boundary) -> Tuple{Vararg{Symbol}}
keys(::Type{<:Boundary{Names}}) where Names -> Names
Get the names of the boundary parameters.
Base.keys
— Methodkeys(::OIDToTuple{Fields}) where Fields -> Fields
keys(::Type{<:OIDToTuple{Fields}}) where Fields -> Fields
Get the names of the selected fields.
Base.repr
— Methodrepr(oid::AbstractOID) -> String
repr(oid::OID, l::LaTeX) -> String
LaTeX string representation of an oid.
Base.repr
— Methodrepr(opts::Operators) -> String
Get the string representation of a set of operators in the LaTeX format.
Base.repr
— Methodrepr(opt::Operator) -> String
Get the string representation of an operator in the LaTeX format.
Base.show
— Methodshow(io::IO, i::Internal)
Show an internal.
Base.show
— Methodshow(io::IO, ::MIME"text/latex", opts::Operators)
Show LaTeX formed operators.
Base.show
— Methodshow(io::IO, ::MIME"text/latex", opt::Operator)
Show an operator.
Base.show
— Methodshow(io::IO, oid::OID)
Show an operator id.
Base.show
— Methodshow(io::IO, opt::Operator)
Show an operator.
Base.summary
— Methodsummary(io::IO, opts::Operators)
Print a brief description of a set of operators to an io.
Base.union
— Methodunion(tables::Table...) -> Table
Unite several oid-sequence tables.
Base.union
— Methodunion(::Type{P}, ::Type{I}) where {P<:PID, I<:IID}
Combine a concrete PID
type and a concrete IID
type to a concrete Index
type.
Base.valtype
— Methodvaltype(::Type{<:OIDToTuple}, ::Type{<:Index})
valtype(::Type{<:OIDToTuple}, ::Type{<:OID})
Get the valtype of applying an OIDToTuple
rule to a subtype of AbstractOID
.
QuantumLattices.Essentials.DegreesOfFreedom.iid
— Methodiid(index::Index) -> IID
Get the internal part of an index.
QuantumLattices.Essentials.DegreesOfFreedom.iidtype
— Methodiidtype(index::Index)
iidtype(::Type{<:Index{<:PID, I}}) where {I<:IID}
Get the type of the internal part of an index.
QuantumLattices.Essentials.DegreesOfFreedom.isHermitian
— MethodisHermitian(opts::Operators) -> Bool
Judge whether a set of operators as a whole is Hermitian.
QuantumLattices.Essentials.DegreesOfFreedom.isHermitian
— MethodisHermitian(opt::Operator) -> Bool
Judge whether an operator is Hermitian.
QuantumLattices.Essentials.DegreesOfFreedom.isHermitian
— MethodisHermitian(id::ID{AbstractOID, N}) where N -> Bool
Judge whether an operator id is Hermitian.
QuantumLattices.Essentials.DegreesOfFreedom.latexformat
— Methodlatexformat(T::Type{<:AbstractOID}) -> LaTeX
latexformat(T::Type{<:AbstractOID}, l::LaTeX) -> LaTeX
Get/Set the LaTeX format for a subtype of Operator
.
QuantumLattices.Essentials.DegreesOfFreedom.latexname
— Methodlatexname(T::Type{<:AbstractOID}) -> Symbol
Get the name of a type of AbstractOID
in the latex format lookups.
QuantumLattices.Essentials.DegreesOfFreedom.oidtype
— Methodoidtype(I::Type{<:Internal}, P::Type{<:Point}, ::Val)
Get the compatible oid type from the combination of the internal part and the spatial part.
QuantumLattices.Essentials.DegreesOfFreedom.pid
— Methodpid(index::Index) -> PID
Get the spatial part of an index.
QuantumLattices.Essentials.DegreesOfFreedom.plain
— Functionplain
Plain boundary condition without any twist.
QuantumLattices.Essentials.DegreesOfFreedom.script
— Methodscript(::Val{:BD}, oid::AbstractOID, l::LaTeX) -> Any
script(::Val{:SP}, oid::AbstractOID, l::LaTeX) -> Tuple
script(::Val{:SB}, oid::AbstractOID, l::LaTeX) -> Tuple
Get the body/superscript/subscript of the LaTeX string representation of an oid.
QuantumLattices.Essentials.DegreesOfFreedom.script
— Methodscript(::Val{:integeralicoord}, oid::OID; vectors, kwargs...)
Get the integeral script of the icoord of an oid.
QuantumLattices.Essentials.DegreesOfFreedom.script
— Methodscript(::Val{:rcoord}, oid::OID; kwargs...) -> String
script(::Val{:icoord}, oid::OID; kwargs...) -> String
Get the :rcoord/:icoord
script of an oid.
QuantumLattices.Essentials.DegreesOfFreedom.script
— Methodscript(::Val{attr}, oid::OID; kwargs...) where attr
Get the attr
script of an oid, which is contained in its index.
QuantumLattices.Essentials.DegreesOfFreedom.twist
— Methodtwist(operator::Operator, vectors::AbstractVector{<:AbstractVector{Float}}, values::AbstractVector{Float}) -> Operator
Twist an operator.
QuantumLattices.Essentials.Spatials.icoord
— Methodicoord(opt::Operator) -> SVector
Get the whole icoord of an operator.
QuantumLattices.Essentials.Spatials.pidtype
— Methodpidtype(index::Index)
pidtype(::Type{<:Index{P}}) where {P<:PID}
Get the type of the spatial part of an index.
QuantumLattices.Essentials.Spatials.rcoord
— Methodrcoord(opt::Operator) -> SVector
Get the whole rcoord of an operator.
QuantumLattices.Essentials.reset!
— Methodreset!(config::Config, pids) -> Config
Reset the config with new pids.
QuantumLattices.Essentials.reset!
— Methodreset!(table::Table, oids::AbstractVector{<:AbstractOID}) -> Table
Reset a table by a new set of oids.
QuantumLattices.Essentials.reset!
— Methodreset!(table::Table, config::Config) -> Table
Reset a table by a complete configuration of internal degrees of freedom on a lattice.
QuantumLattices.Essentials.update!
— Methodupdate!(bound::Boundary, args...; kwargs...) -> Boundary
Update the values of the boundary twisted phase.
QuantumLattices.Mathematics.AlgebraOverFields.sequence
— Methodsequence(opt::Operator, table::AbstractDict) -> NTuple{rank(opt), Int}
Get the sequence of the oids of an operator according to a table.