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
Missing docstring for MPSMultiline
. Check Documenter's build log for details.
Operators
MPSKit.MPOHamiltonian
— TypeMPOHamiltonian
represents a general periodic quantum hamiltonian
MPSKit.InfiniteMPO
— TypeRepresents a periodic statmech mpo
Environments
MPSKit.AbstractInfEnv
— TypeAbstract environment for an infinite state
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
Missing docstring for MPSKit.SimpleEnv
. Check Documenter's build log for details.
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
Missing docstring for find_groundstate
. Check Documenter's build log for details.
MPSKit.timestep
— Functionfunction timestep(psi, operator, dt, alg,envs = environments(psi,operator))
time evolves psi by timestep dt using algorithm alg
MPSKit.leading_boundary
— Functionleading_boundary(state,opp,alg,envs=environments(state,ham))
approximate the leading eigenvector for opp
MPSKit.dynamicaldmrg
— Functionhttps://arxiv.org/pdf/cond-mat/0203500.pdf
Missing docstring for changebonds
. Check Documenter's build log for details.
MPSKit.excitations
— Functionexcitations(H::Hamiltonian, alg::QuasiparticleAnsatz, args...; kwargs...)
Compute the first excited states and their energy gap above a groundstate.
This is an implementation of the algorithm found here.
Missing docstring for approximate
. Check Documenter's build log for details.
Groundstate algorithms
MPSKit.Vumps
— Typesee https://arxiv.org/abs/1701.07035
MPSKit.Idmrg1
— Typeonesite infinite dmrg
MPSKit.Idmrg2
— Typetwosite 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.
Missing docstring for PowerMethod
. Check Documenter's build log for details.
Bond change algorithms
MPSKit.OptimalExpand
— Typeexpands the given mps using the algorithm given in the vumps paper
MPSKit.RandExpand
— Typeexpands the bond dimension by adding random unitary vectors
MPSKit.VumpsSvdCut
— Typeuse an idmrg2 step to truncate/expand the bond dimension
MPSKit.SvdCut
— TypeTruncate a given state using svd
[Excitations]
Missing docstring for QuasiparticleAnsatz
. Check Documenter's build log for details.
Missing docstring for FiniteExcited
. Check Documenter's build log for details.