Example codes: variational MERA
Please look at the readme page if you have not done so already. Here we present an implementation of the variational energy minimization algorithm for a scale-invariant MERA, which can be applied to study ground states of quantum critical systems on infinite D=1 dimensional lattices. Also included is an implementation of the algorithms for extracting conformal data from a scale-invariant MERA. These codes utilize a modified binary MERA, one of the more useful MERA implementations for practical purposes, which has the following properties:
-
Computational cost: O(χ^7)
-
Based on a 2-site unit cell (A-B pattern)
​
-
Easy implementation of spatial reflection symmetry
​​
-
Two isometries w, v and one disentangler u at each level
What are Tensor Networks used for?
Fundamentally, tensor networks serve to represent sets of correlated data, the nature of which can depend on the application in question. Some common applications include:
-
the study quantum many-body systems, where tensor networks are used to encode the coefficients of a state wavefunction.
-
the study classical many-body systems, where tensor networks are used to encode statistical ensembles of microstates (i.e. the partition function).
-
big data analytics, where tensor networks can represent multi-dimensional data arising in diverse branches such as signal processing, neuroscience, bio-metrics, pattern recognition etc.
Quick algorithm explanation:
The goal of the algorithm is to optimize a MERA tensor network such that the corresponding wavefunction |Ψ> best approximates the ground state of a Hamiltonian H. This is achieved by varying the individual tensors as to minimize the energy, E = <Ψ|H|Ψ>.
-
the optimization is based upon single tensor updates, where only a single tensor is changed during an update step.
-
the update of a single tensor is accomplished by first computing its linearized environment with respect to <Ψ|H|Ψ>; the single tensor is then chosen to minimize its energy with respect to this environment.
-
the update steps are organized into a sweep over all layers of the MERA, such that all tensors are updated once during each iteration. The update sweeps are iterated until the energy is sufficiently converged.
-
after the MERA is optimized, a separate routine is run to extract its conformal data, via an analysis of the scaling operators and their fusion relations.
Network structure:
Energy contributions:
Index ordering conventions:
Reflection symmetry constraints:
Isometric constraints:
Code examples:
MATLAB
Julia
Python
Variational energy minimization (function file):
Extraction of conformal data (function file):
Initialization (script):
'mainVarMERA' benchmark:
​
Method: scale-invariant MERA, bond dimension χ = 12
Test problem: 1D transverse Ising model at criticality (on an infinite lattice)
Running time: approx 10 mins
Quantities computed: ground energy density, scaling dimensions, OPE coefficients
​
Typical results:
​
Error in ground energy density (MERA): approx 3e-8
Scaling dimensions (MERA): [0, 0.1248, 0.997, 1.120, 1.120, 1.90, 1.90, 1.95, 1.96]
Scaling dimensions (exact): [0, 0.1250, 1.000, 1.125, 1.125, 2.00, 2.00, 2.00, 2.00]
​
OPE coefficient (MERA): C(epsilon,sigma,sigma) = 0.5005
OPE coefficient (exact): C(epsilon,sigma,sigma) = 0.5000