Skip to content

Releases: Quantum-Many-Body/QuantumLattices.jl

v0.11.0

31 Dec 12:40
Compare
Choose a tag to compare

QuantumLattices v0.11.0

Diff since v0.10.4

Breaking changes

  • Rename OperatorUnit to OperatorIndex;
  • Rename OperatorUnitToTuple to OperatorIndexToTuple;
  • Rename dtype to scalartype;
  • Rename optype to operatortype;
  • Rename Momentum to 𝕂, Momentum₁ to 𝕂¹, Momentum₂ to 𝕂² and Momentum₃ to 𝕂³;
  • Rename isscalartype to equivalenttoscalar;
  • Change OperatorGenerator(::Tuple{Vararg{Term}}, ::Vector{<:Bond}, ::Hilbert) to OperatorGenerator(::Vector{<:Bond}, ::Hilbert, ::OneOrMore{Term});
  • Change Generator(::Tuple{Vararg{Term}}, ::Vector{<:Bond}, ::Hilbert) to OperatorGenerator(::Vector{<:Bond}, ::Hilbert, ::OneOrMore{Term});
  • Change operatortype(::Type{<:Term}, ::Type{<:Hilbert}, ::Type{<:Bond}) to operatortype(::Type{<:Bond}, ::Type{<:Hilbert}, ::Type{<:Term});
  • Change values(::SimpleAbelianQuantumNumber) which now returns a Tuple;
  • Restrict indextype to situations that only return Type{<:Index};
  • 𝕓, 𝕗, 𝕕, 𝕊 and 𝕦 must be the first argument when they are used in the construction functions of MatrixCoupling;
  • 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 for Union{T, Tuple{T, Vararg{T}}};
  • Add nneighbor for OneOrMore{Term};
  • Add valtype for OneOrMore{Term};
  • Add type alias for ℤ₁ for ℤ{1};
  • Add value for SimpleAbelianQuantumNumber and AbelianQuantumNumberProd;
  • Add Toolkit.SubTypeTree;
  • Add dimension for Momenta and Internal;
  • Add 𝕔 (equivalent to 𝕗) and 𝕒 (equivalent to 𝕓);
  • Add 𝕒⁺𝕒, 𝕓⁺𝕓, 𝕔⁺𝕔, 𝕕⁺𝕕, 𝕗⁺𝕗, 𝕊ᵀ𝕊 and 𝕦ᵀ𝕦 for convenient constructions of the corresponding MatrixCouplings;
  • Add InternalIndex(::OperatorIndex), internalindextype(::OperatorIndex) and internalindextype(::Type{<:OperatorIndex});
  • Add Index(:OperatorIndex), indextype(::OperatorIndex) and indextype(::Type{<:OperatorIndex});
  • Add isnormalordered(::Operator{<:Number, <:ID{Union{CompositeIndex{<:Index{<:FockIndex}}, Index{<:FockIndex}, FockIndex}}});
  • Add update! and reset! for a CategorizedGenerator by a Trasnsformation and an OperatorGenerator.

v0.10.4

07 Dec 04:18
Compare
Choose a tag to compare

QuantumLattices v0.10.4

Diff since v0.10.3

v0.10.3

05 Dec 01:03
Compare
Choose a tag to compare

QuantumLattices v0.10.3

Diff since v0.10.2

v0.10.2

03 Dec 13:27
Compare
Choose a tag to compare

QuantumLattices v0.10.2

Diff since v0.10.1

v0.10.1

29 Nov 04:19
Compare
Choose a tag to compare

QuantumLattices v0.10.1

Diff since v0.10.0

v0.10.0

20 Oct 02:59
Compare
Choose a tag to compare

QuantumLattices v0.10.0

Diff since v0.9.15

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 types FID => FockIndex, SID => SpinIndex, PID => PhononIndex; 2) CompositeIndex => CoordinatedIndex.

  • The :iid attribute of Index now is renamed to :internal.

Coupling

  • A new type, Pattern, is introduced to represent the coupling pattern in a Coupling.
  • Construction of Coupling with constraints now uses a new macro, @pattern. The old @indexes macro is removed.
  • Coupling with different types of Indexes now must be initialized with the @pattern macro.
  • The :site attribute of an Index used to construct a Coupling can no longer be an integer; it must now be either a : or an Ordinal 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 a Coupling is changed.
  • Interfaces of Toolkit.VectorSpace are changed.

Merged pull requests:

v0.9.15

27 May 14:05
Compare
Choose a tag to compare

QuantumLattices v0.9.15

Diff since v0.9.14

v0.9.14

18 Apr 15:34
Compare
Choose a tag to compare

QuantumLattices v0.9.14

Diff since v0.9.13

v0.9.13

26 Mar 04:22
Compare
Choose a tag to compare

QuantumLattices v0.9.13

Diff since v0.9.12

v0.9.12

20 Oct 02:16
Compare
Choose a tag to compare

QuantumLattices v0.9.12

Diff since v0.9.11