Skip to content

Excitations

Reference for the excitation interface, its algorithms, and the quasiparticle state types it produces. For a task-oriented walkthrough see the how-to guides. The full, canonical docstrings for the whole package live in the Library index.

Interface

MPSKit.excitations Function
julia
excitations(H, algorithm::QuasiparticleAnsatz, ψ::FiniteQP, [left_environments],
            [right_environments]; num = 1) -> (energies, states)
excitations(H, algorithm::QuasiparticleAnsatz, ψ::InfiniteQP, [left_environments],
            [right_environments]; num = 1) -> (energies, states)
excitations(H, algorithm::FiniteExcited, ψs::NTuple{<:Any, <:FiniteMPS};
            num = 1, init) -> (energies, states)
excitations(H, algorithm::ChepigaAnsatz, ψ::FiniteMPS, [envs];
            num = 1, pos = length(ψ) ÷ 2) -> (energies, states)
excitations(H, algorithm::ChepigaAnsatz2, ψ::FiniteMPS, [envs];
            num = 1, pos = length(ψ) ÷ 2) -> (energies, states)

Compute the first excited states and their energy gap above a ground state.

Arguments

  • H::AbstractMPO: operator for which to find the excitations

  • algorithm: optimization algorithm

  • ψ::QP: initial quasiparticle guess

  • ψs::NTuple{N, <:FiniteMPS}: N first excited states

  • [left_environments]: left ground state environment

  • [right_environments]: right ground state environment

Keyword Arguments

  • num::Int: number of excited states to compute

  • solver: algorithm for the linear solver of the quasiparticle environments

  • init: initial excited state guess; defaults to a copy of the first state in ψs

  • pos: position of perturbation

source

Algorithms

MPSKit.QuasiparticleAnsatz Type
julia
struct QuasiparticleAnsatz{A, E} <: MPSKit.Algorithm

Optimization algorithm for quasi-particle excitations on top of MPS groundstates.

Constructors

julia
QuasiparticleAnsatz()
QuasiparticleAnsatz(; kwargs...)
QuasiparticleAnsatz(alg)

Create a QuasiparticleAnsatz algorithm with the given eigensolver, or by passing the keyword arguments to Arnoldi.

Fields

  • alg::Any: algorithm used for the eigenvalue solvers

  • alg_environments::Any: algorithm used for the quasiparticle environments

See also

Used as the algorithm argument of excitations.

References

source
MPSKit.FiniteExcited Type
julia
struct FiniteExcited{A} <: MPSKit.Algorithm

Variational optimization algorithm for excitations of finite MPS by minimizing the energy of

Fields

  • gsalg::Any: optimization algorithm

  • weight::Float64: energy penalty for enforcing orthogonality with previous states

See also

Used as the algorithm argument of excitations.

source
MPSKit.ChepigaAnsatz Type
julia
struct ChepigaAnsatz{A<:KrylovKit.KrylovAlgorithm} <: MPSKit.Algorithm

Single-site optimization algorithm for excitations on top of MPS groundstates.

Constructors

julia
ChepigaAnsatz()
ChepigaAnsatz(; kwargs...)
ChepigaAnsatz(alg)

Create a ChepigaAnsatz algorithm with the given eigensolver, or by passing the keyword arguments to Arnoldi.

Fields

  • alg::KrylovKit.KrylovAlgorithm: algorithm used for the eigenvalue solvers

See also

Used as the algorithm argument of excitations.

References

source
MPSKit.ChepigaAnsatz2 Type
julia
struct ChepigaAnsatz2{A<:KrylovKit.KrylovAlgorithm} <: MPSKit.Algorithm

Two-site optimization algorithm for excitations on top of MPS groundstates.

Constructors

julia
ChepigaAnsatz2()
ChepigaAnsatz2(; kwargs...)
ChepigaAnsatz2(alg, trscheme)

Create a ChepigaAnsatz2 algorithm with the given eigensolver and truncation, or by passing the keyword arguments to Arnoldi.

Fields

  • alg: algorithm used for the eigenvalue problem, defaults to Arnoldi(; krylovdim = 30, tol = 1.0e-10, eager = true)

  • trscheme: truncation scheme used when splitting the optimized two-site tensor, defaults to notrunc()

See also

Used as the algorithm argument of excitations.

References

source

Quasiparticle states

These are the ansatz states produced by, and passed to, excitations on top of a ground state.

MPSKit.QP Type
julia
QP{S, T1, T2}

Union of the quasiparticle excitation ansätze LeftGaugedQP and RightGaugedQP. It is used for dispatch and to share their gauge-independent interface; it is not a concrete type and cannot be constructed on its own. The internal aliases FiniteQP and InfiniteQP further restrict the ground-state type to FiniteMPS or InfiniteMPS respectively.

source
MPSKit.LeftGaugedQP Type
julia
struct LeftGaugedQP{S, T1, T2, E<:Number}

Left-gauged quasiparticle excitation ansatz on top of a matrix product state ground state. The excitation is parametrized through the left-gauge nullspace of the ground-state tensors, and the object behaves as a vector so it can be handed directly to the iterative eigensolvers used by excitations.

For a FiniteMPS ground state this represents a finite (localized) quasiparticle; for an InfiniteMPS ground state it represents a momentum eigenstate with the given momentum. When left_gs !== right_gs the ansatz describes a domain wall between the two ground states.

Constructors

julia
LeftGaugedQP(datfun, left_gs, right_gs = left_gs; sector, momentum = 0.0)

These states are normally produced by excitations with a QuasiparticleAnsatz rather than constructed directly. When constructing manually, datfun initializes the variational tensors (e.g. rand/randn), sector selects the charge sector of the excitation, and momentum sets the momentum for infinite ground states.

Fields

  • left_gs, right_gs: the ground state(s) the excitation lives on; distinct values yield a domain wall.

  • VLs: left-nullspace tensors of the ground-state AL (satisfying AL' * VL == 0).

  • Xs: the variational parameters of the ansatz.

  • momentum: the excitation momentum (used for infinite ground states).

See also

RightGaugedQP, QP

source
MPSKit.RightGaugedQP Type
julia
struct RightGaugedQP{S, T1, T2, E<:Number}

Right-gauged counterpart of LeftGaugedQP: the same quasiparticle excitation ansatz, but parametrized through the right-gauge nullspace of the ground-state tensors. It is most often obtained via convert(RightGaugedQP, ϕ) from a LeftGaugedQP rather than constructed directly.

Constructors

julia
RightGaugedQP(datfun, left_gs, right_gs = left_gs; sector, momentum = 0.0)

Fields

  • left_gs, right_gs: the ground state(s) the excitation lives on; distinct values yield a domain wall.

  • Xs: the variational parameters of the ansatz.

  • VRs: right-nullspace tensors of the ground-state AR.

  • momentum: the excitation momentum (used for infinite ground states).

See also

LeftGaugedQP, QP

source

<!– Maintainer notes:

Symbols documented on this page: excitations, QuasiparticleAnsatz, FiniteExcited, ChepigaAnsatz, ChepigaAnsatz2, QP, LeftGaugedQP, RightGaugedQP. –>