Library documentation
States
MPSKit.FiniteMPS
— Typemutable struct FiniteMPS{A<:GenericMPSTensor,B<:MPSBondTensor} <: AbstractMPS
Represents a finite matrix product state
When queried for AL/AR/AC/CL it will check if it is missing. If not, return If it is, calculate it, store it and return
MPSKit.InfiniteMPS
— Typestruct InfiniteMPS{A<:GenericMPSTensor,B<:MPSBondTensor}
Represents an infinite matrix product state The state is stored in the centergauge where state.AL[i]state.CR[i] = state.AC[i] = state.CR[i-1]state.AR[i]
MPSKit.MPSComoving
— TypeMPSComoving(leftstate,window,rightstate)
muteable window of tensors on top of an infinite chain
MPSKit.MPSMultiline
— Type2d extension of InfiniteMPS
Operators
MPSKit.MPOHamiltonian
— TypeMPOHamiltonian
represents a general periodic quantum hamiltonian
MPSKit.ComAct
— TypeComAct(ham1,ham2)
Acts on an mpo with mpo hamiltonian 'ham1' from below + 'ham2' from above.
Can therefore represent the (anti) commutator.
MPSKit.PeriodicMPO
— TypeRepresents a periodic (in 2 directions) statmech mpo
Environments
MPSKit.AbstractInfEnv
— TypeAbstract environment for an infinite state
distinct from finite, because we have to recalculate everything when the state changes
MPSKit.PerMPOInfEnv
— TypeThis object manages the periodic mpo environments for an MPSMultiline
MPSKit.MPOHamInfEnv
— TypeThis object manages the hamiltonian environments for an InfiniteMPS
MPSKit.FinEnv
— TypeFinEnv keeps track of the environments for FiniteMPS / MPSComoving
It automatically checks if the queried environment is still correctly cached and if not - recalculates
MPSKit.SimpleEnv
— TypeSimpleEnv does nothing fancy to ensure the correctness of the environments it returns.
Supports setleftenv! and setrightenv!
Only used internally (in idmrg); no public constructor is provided
Missing docstring for MPSKit.OvlEnv
. Check Documenter's build log for details.
Generic actions
MPSKit.c_prime
— FunctionZero-site derivative (the C matrix to the right of pos)
MPSKit.ac_prime
— FunctionOne-site derivative
MPSKit.ac2_prime
— FunctionTwo-site derivative
MPSKit.expectation_value
— Functioncalculates the expectation value of op, where op is a plain tensormap where the first index works on site at
calculates the expectation value of op = op1op2op3*... (ie an N site operator) starting at site at
calculates the expectation value for the given operator/hamiltonian
Algorithms
MPSKit.find_groundstate
— Functionfind_groundstate(state,ham,alg,pars=params(state,ham))
find the groundstate for ham using algorithm alg
MPSKit.timestep
— Functionfunction timestep(psi, operator, dt, alg,pars = params(psi,operator))
time evolves psi by timestep dt using algorithm alg
MPSKit.leading_boundary
— Functionleading_boundary(state,opp,alg,pars=params(state,ham))
approximate the leading eigenvector for opp
MPSKit.dynamicaldmrg
— Functionhttps://arxiv.org/pdf/cond-mat/0203500.pdf
MPSKit.quasiparticle_excitation
— Functionquasiparticle_excitation calculates the energy of the first excited state at momentum 'moment'
Missing docstring for changebonds
. Check Documenter's build log for details.
Groundstate algorithms
MPSKit.Vumps
— Typesee https://arxiv.org/abs/1701.07035
MPSKit.Idmrg1
— Typeonesite infinite dmrg
MPSKit.Dmrg
— Typeonesite dmrg
MPSKit.Dmrg2
— Typetwosite dmrg
MPSKit.GradientGrassmann
— TypeGradientGrassmann is an optimisation methdod that keeps the MPS in left-canonical form, and treats the tensors as points on Grassmann manifolds. It then applies one of the standard gradient optimisation methods, e.g. conjugate gradient, to the MPS, making use of the Riemannian manifold structure. A preconditioner is used, so that effectively the metric used on the manifold is that given by the Hilbert space inner product.
The arguments to the constructor are method = OptimKit.ConjugateGradient The gradient optimisation method to be used. Should either be an instance or a subtype of OptimKit.OptimizationAlgorithm
. If it's an instance, this method
is simply used to do the optimisation. If it's a subtype, then an instance is constructed as method(; maxiter=maxiter, verbosity=verbosity, gradtol=tol)
finalize! = OptimKit._finalize! A function that gets called once each iteration. See OptimKit for details.
tol = Defaults.tol maxiter = Defaults.maxiter verbosity = 2 Arguments passed to the method
constructor. If method
is an instance of OptimKit.OptimizationAlgorithm
, these argument are ignored.
In other words, by default conjugate gradient is used. One can easily set tol
, maxiter
and verbosity
for it, or switch to LBFGS or gradient descent by setting method
. If more control is wanted over things like specifics of the linesearch, CG flavor or the m
parameter of LBFGS, then the user should create the OptimKit.OptimizationAlgorithm
instance manually and pass it as method
.
Time evolution algorithms
MPSKit.Tdvp
— Typeonesite tdvp
MPSKit.Tdvp2
— Typetwosite tdvp (works for finite mps's)
Leading boundary algorithms
Missing docstring for Vumps
. Check Documenter's build log for details.
MPSKit.PowerMethod
— TypePowerMethod way of finding the leading boundary mps
Bond change algorithms
MPSKit.OptimalExpand
— Typeexpands the given mps using the algorithm given in the vumps paper
MPSKit.VumpsSvdCut
— Typeuse an idmrg2 step to truncate/expand the bond dimension
MPSKit.SvdCut
— TypeTruncate a given state using svd