Releases: Quantum-Many-Body/QuantumLattices.jl
v0.11.0
QuantumLattices v0.11.0
Breaking changes
- Rename
OperatorUnit
toOperatorIndex
; - Rename
OperatorUnitToTuple
toOperatorIndexToTuple
; - Rename
dtype
toscalartype
; - Rename
optype
tooperatortype
; - Rename
Momentum
to𝕂
,Momentum₁
to𝕂¹
,Momentum₂
to𝕂²
andMomentum₃
to𝕂³
; - Rename
isscalartype
toequivalenttoscalar
; - Change
OperatorGenerator(::Tuple{Vararg{Term}}, ::Vector{<:Bond}, ::Hilbert)
toOperatorGenerator(::Vector{<:Bond}, ::Hilbert, ::OneOrMore{Term})
; - Change
Generator(::Tuple{Vararg{Term}}, ::Vector{<:Bond}, ::Hilbert)
toOperatorGenerator(::Vector{<:Bond}, ::Hilbert, ::OneOrMore{Term})
; - Change
operatortype(::Type{<:Term}, ::Type{<:Hilbert}, ::Type{<:Bond})
tooperatortype(::Type{<:Bond}, ::Type{<:Hilbert}, ::Type{<:Term})
; - Change
values(::SimpleAbelianQuantumNumber)
which now returns aTuple
; - Restrict
indextype
to situations that only returnType{<:Index}
; 𝕓
,𝕗
,𝕕
,𝕊
and𝕦
must be the first argument when they are used in the construction functions ofMatrixCoupling
;- Change the bases of
matrix(::SpinIndex)
from ascending Sᶻ to descending Sᶻ so it is consistent with the usual convention; - Iteration of
Spin
now only contains the three Sˣ, Sʸ and Sᶻ generators of spin algebra; - Interchange the first and second type parameters of `Pattern;
- Interchange the first and second type parameters of
InternalPattern
.
New methods
- Add
OneOrMore{T}
, which is a type alias forUnion{T, Tuple{T, Vararg{T}}}
; - Add
nneighbor
forOneOrMore{Term}
; - Add
valtype
forOneOrMore{Term}
; - Add type alias for
ℤ₁
forℤ{1}
; - Add
value
forSimpleAbelianQuantumNumber
andAbelianQuantumNumberProd
; - Add
Toolkit.SubTypeTree
; - Add
dimension
forMomenta
andInternal
; - Add
𝕔
(equivalent to𝕗
) and𝕒
(equivalent to𝕓
); - Add
𝕒⁺𝕒
,𝕓⁺𝕓
,𝕔⁺𝕔
,𝕕⁺𝕕
,𝕗⁺𝕗
,𝕊ᵀ𝕊
and𝕦ᵀ𝕦
for convenient constructions of the correspondingMatrixCoupling
s; - Add
InternalIndex(::OperatorIndex)
,internalindextype(::OperatorIndex)
andinternalindextype(::Type{<:OperatorIndex})
; - Add
Index(:OperatorIndex)
,indextype(::OperatorIndex)
andindextype(::Type{<:OperatorIndex})
; - Add
isnormalordered(::Operator{<:Number, <:ID{Union{CompositeIndex{<:Index{<:FockIndex}}, Index{<:FockIndex}, FockIndex}}})
; - Add
update!
andreset!
for aCategorizedGenerator
by aTrasnsformation
and anOperatorGenerator
.
v0.10.4
QuantumLattices v0.10.4
v0.10.3
QuantumLattices v0.10.3
v0.10.2
QuantumLattices v0.10.2
v0.10.1
QuantumLattices v0.10.1
v0.10.0
QuantumLattices v0.10.0
Breaking changes
Such changes do affect the public interfaces that users interact with.
Fermion/boson/spin/phonon indexes and operators
-
Construction of fermion/boson/spin/phonon indexes and operators are changed.
𝕗
(\bbf<tab>
ferimion),𝕓
(\bbb<tab>
, boson),𝕊
(\bbS<tab>
, spin),𝕦
(\bbu<tab>
, displacement of lattice vibration) and𝕡
(\bbp<tab>
, momentum of lattice vibration) are the new interfaces to construct and display such indexes and operators. -
Underlying types to implement fermion/boson/spin/phonon indexes and operators are renamed: 1) the abstract type
IID
=>InternalIndex
, and the concrete typesFID
=>FockIndex
,SID
=>SpinIndex
,PID
=>PhononIndex
; 2)CompositeIndex
=>CoordinatedIndex
. -
The
:iid
attribute ofIndex
now is renamed to:internal
.
Coupling
- A new type,
Pattern
, is introduced to represent the coupling pattern in aCoupling
. - Construction of
Coupling
with constraints now uses a new macro,@pattern
. The old@indexes
macro is removed. Coupling
with different types ofIndex
es now must be initialized with the@pattern
macro.- The
:site
attribute of anIndex
used to construct aCoupling
can no longer be an integer; it must now be either a:
or anOrdinal
to clearly indicate that it represents the ordinal in a bond.
Quantum numbers
Quantum numbers are completely redesigned.
Mechanism changes
Such changes typically do not affect the public interfaces that users interact with, but they are significant for developers looking to extend this package.
- New function
Patternrule
is introduced to implement default rules for coupling patterns. - Interface of
script
, which is used to support latex-formatted output of operators, is changed. - Interface of
expand
for aCoupling
is changed. - Interfaces of
Toolkit.VectorSpace
are changed.
Merged pull requests: