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
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 excitationsalgorithm: optimization algorithmψ::QP: initial quasiparticle guessψs::NTuple{N, <:FiniteMPS}:Nfirst excited states[left_environments]: left ground state environment[right_environments]: right ground state environment
Keyword Arguments
num::Int: number of excited states to computesolver: algorithm for the linear solver of the quasiparticle environmentsinit: initial excited state guess; defaults to a copy of the first state inψspos: position of perturbation
Algorithms
MPSKit.QuasiparticleAnsatz Type
struct QuasiparticleAnsatz{A, E} <: MPSKit.AlgorithmOptimization algorithm for quasi-particle excitations on top of MPS groundstates.
Constructors
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 solversalg_environments::Any: algorithm used for the quasiparticle environments
See also
Used as the algorithm argument of excitations.
References
sourceMPSKit.FiniteExcited Type
struct FiniteExcited{A} <: MPSKit.AlgorithmVariational optimization algorithm for excitations of finite MPS by minimizing the energy of
Fields
gsalg::Any: optimization algorithmweight::Float64: energy penalty for enforcing orthogonality with previous states
See also
Used as the algorithm argument of excitations.
MPSKit.ChepigaAnsatz Type
struct ChepigaAnsatz{A<:KrylovKit.KrylovAlgorithm} <: MPSKit.AlgorithmSingle-site optimization algorithm for excitations on top of MPS groundstates.
Constructors
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
sourceMPSKit.ChepigaAnsatz2 Type
struct ChepigaAnsatz2{A<:KrylovKit.KrylovAlgorithm} <: MPSKit.AlgorithmTwo-site optimization algorithm for excitations on top of MPS groundstates.
Constructors
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 toArnoldi(; krylovdim = 30, tol = 1.0e-10, eager = true)trscheme: truncation scheme used when splitting the optimized two-site tensor, defaults tonotrunc()
See also
Used as the algorithm argument of excitations.
References
sourceQuasiparticle states
These are the ansatz states produced by, and passed to, excitations on top of a ground state.
MPSKit.QP Type
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.
MPSKit.LeftGaugedQP Type
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
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-stateAL(satisfyingAL' * VL == 0).Xs: the variational parameters of the ansatz.momentum: the excitation momentum (used for infinite ground states).
See also
sourceMPSKit.RightGaugedQP Type
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
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-stateAR.momentum: the excitation momentum (used for infinite ground states).
See also
source<!– Maintainer notes:
Symbols documented on this page: excitations, QuasiparticleAnsatz, FiniteExcited, ChepigaAnsatz, ChepigaAnsatz2, QP, LeftGaugedQP, RightGaugedQP. –>