vumps
full name: tenpy.algorithms.vumps
parent module:
tenpy.algorithms
type: module
Classes
|
Engine for the single-site VUMPS algorithm. |
|
Engine for the two-site VUMPS algorithm. |
|
VUMPS base class with common methods for the TwoSiteVUMPS and SingleSiteVUMPS. |
Module description
Variational Uniform Matrix Product State (VUMPS)
The VUMPS algorithm was developed to find ground states directly in the thermodynamic limit in a more principled fashion than iDMRG, which essentially is a finite algorithm extrapolated to the thermodynamic limit. VUMPS is a tangent space MPS method, where we look for the optimal ground state in the manifold of fixed bond dimensionMPS [vanderstraeten2019].
The VUMPS algorithm was introduced in 2017 [zauner-stauber2018], where it was shown
that VUMPS outperforms both iTEBD and iDMRG as ground state search algorithms for both
1D and quasi-1D models. The VUMPS algorithm uses the network UniformMPS
to represent
the current state of the uniform MPS during optimization. On each site, left canonical AL,
right canonical AR, and single-site orthogonality center AC is stored; on each bond a center
matrix C is stored. During the algorithm, the canonical form equality AL_i C_{i+1} = C_i AR_i = AC_i
is not necessarily respected, yet in the ground state, we expect this to be restored. The
difference in norm of the first two is the 'max_split_error'
that is reported at each checkpoint.
There are two derived classes that implement the vumps algorithm, SingleSiteVUMPSEngine
and
TwoSiteVUMPSEngine
. The first implements the algorithm found in the original paper,
where the uMPS is updated by 2 zero-site eigenvalue problems and 1 one-site eigenvalue problem.
This algorithm works at FIXED bond dimension, so the starting uMPS must be prepared with desired
bond dimension. Currently we do this with 'MPS.from_desired_bond_dimension'
which is NOT
compatible with charge conservation, as it is implemented with random unitaries to artificially
grow $chi$. The single-site algorithm allows for optimization of a translationally invariant uMPS
with a single-site unit cell, which is currently not possible in our iDMRG implementation.
Charge conservation and dynamic control of bond dimension is enabled by a novel two-site algorithm, in which we solve a two-site eigenvalue problem and 2 one-site eigenvalue problems. This algorithm involves an SVD, which allows us to dynamically grow the bond dimension. Thus, we can start the algorithm in a product state with charge conservation and enlarge the bond dimension based on max_chi or SVD cutoff. Best practices for multi-site unit cell uMPS would be to start with the 2-site algorithm and switch to the single-site algorithm, which is the more principled algorithm.