Example codes: TNR
Please look at the readme page if you have not done so already. Here we present an implementation of tensor network renormalization (TNR) algorithm which can be applied to contract the partition function of a 2D classical statistical mechanics model or the path-integral of a 1D quantum lattice model. This implementation is largely similar to the example TRG code, but includes the extra disentangling step. We include some of the refinements of TNR discussed in the algorithms manuscript and also use implicit disentangling. The code produces a binary MERA defined from disentanglers u and isometries w as discussed in this manuscript. Two versions of the code are included, where the second version implements the gauge fixing steps necessary to produce a manifestly scale-invariant RG flow for critical systems, thus can be used to compute conformal data.
​
Isometries q are chosen to maximize the norm of the C tensor defined below, while isometries v and w are chosen to maximize the norm of the coarse-grained A' tensor defined below. Tensors y, u and s are optimized as to maximize the fidelity between networks T and T' defined below. We assume, for simplicity, that the initial network contains only real coefficients and is symmetric under reflections on both the horizontal and vertical axes.
-
Computational cost: O(χ^6)​
​
-
Exploits (horizontal and vertical) spatial reflection symmetries
​​
-
Each coarse-graining step involves isometries q, y, w, v and a disentangler u, as well as the implicit disentangler s
Coarse-graining structure:
Reflection symmetry constraints:
Index ordering conventions:
Optimization criteria:
Coarse-graining iteration (Python module):
Initialization (Python script):
'mainTNR' benchmark:
​
Method: TNR, bond dimension χv = χh = 6
Test problem: 2D classical Ising model at T = 0.995 Tc, square lattice of 2^12 by 2^12 sites
Running time: approx 20 secs
Quantities computed: free energy density, internal energy density, spontaneous magnetization
​
Typical results:
​
Error in free energy density (TNR): approx 2e-6
Error in internal energy density (TNR): approx 5e-6
​
Spontaneous magnetization (TNR): M = 0.6238...
Spontaneous magnetization (exact): M = 0.6296...
Scale invariant CG iteration (Python module):
Evaluation of scaling dimensions (Python module)
Scaling operators from logarithmic transformation:
Scale invariant initialization (Python script):
'mainScInvTNR' benchmark:
​
Method: scale-invariant TNR, bond dimension χv = χh = 10
Test problem: 2D classical Ising model at T = Tc, infinite square lattice
Running time: approx 2 mins
Quantities computed: free energy density, internal energy density, scaling dimensions
​
Typical results:
​
Error in free energy density (TNR): approx 1e-6
Error in internal energy density (TNR): approx 3e-7
​
Scaling dimensions (TNR): smallest 100 scaling dims of Ising CFT correct to within 1.5% accuracy