Uniform matrix product states in the thermodynamic limit - Exercises
Closely following [1], we want to numerically investigate uniform matrix product states (uMPS) in the thermodynamic limit, importing the modules f_umps.py, g_vumps.py, h_utdvp.py and i_uexcitations.py.
Part 1) Injectivity and canonical form in f_umps.py
A uMPS \(\vert \psi(A) \rangle\) represents a translation invariant state of an infinite chain of \(d\)-dimensional quantum systems and is completely characterized by a single tensor \(A \in \mathbb{C}^{D \times d \times D}\) of physical dimension \(d\) and bond dimension \(D\):
A crucial condition for efficient computations is injectivity of \(A\), meaning that counting algebraic multiplicities, the transfer matrix
has only one eigenvalue of magnitude (and value) 1 and the corresponding right and left eigenvectors are positive definite matrices [2, 3]. Non-injective tensors appear with measure zero. In 1.1) we want to show that a randomly drawn tensor is indeed injective. Within the gauge freedom \(A^s \rightarrow XA^sX^{-1}\) for invertible \(X\), we can bring a uMPS in canonical form
with left/right orthonormal tensors \(A_L\)/\(A_R\) (injective with left/right leading eigenvector equal to identity matrix) and center site tensor \(A_C = A_L C = C A_R\) for some center matrix \(C\). These 4 tensors are the central attributes of the UniformMPS class. As a first physically meaningful and exactly representable uMPS, we consider the AKLT state and justify a few of its properties in 1.2). In 1.3) we make clear under which conditions a UniformMPS instance
and a SimpleMPS(bc="infinite") instance (implemented in a_mps.py) can be converted into each other.
We then investigate the variational power of the set of uMPS with a given bond dimension \(D\), forming a manifold within the full Hilbert space. An element of the tangent space at point \(\vert \psi(A) \rangle\) in this manifold reads
and we denote the projector onto the (orthogonal) tangent space with \(P_A\). For Hamiltonians \(H = \sum_n h_{n, n+1}\) with nearest-neighbor interaction \(h \in \mathbb{C}^{d^2 \times d^2}\), we run the following algorithms:
Part 2) Variational uniform matrix product states (VUMPS) in g_vumps.py
The tangent space gradient reads
The variational ground state optimum (corresponding to \(G=0\)) in the uMPS manifold satisfies a) \(A_C\) ground state of \(H_{\mathrm{eff},1}\), b) \(C\) ground state of \(H_{\mathrm{eff},0}\), c) \(A_C = A_L C = C A_R\). For this perform the following updates till convergence in gradient norm:
\(A_C\) \(\rightarrow\) ground state of \(H_{\mathrm{eff},1}\), b) \(C\) \(\rightarrow\) ground state of \(H_{\mathrm{eff},0}\), c) \(A_L\)/\(A_R\) from left/right polar decompositions of \(A_C\) and \(C\). [1] >> Note that in contrast to iDMRG (implemented in
d_dmrg.py), which successively grows the lattice by updated unit cells, VUMPS truly solves the variational problem in the sense of completely updating the state with each iteration and consequently keeping the translation invariance at any time. [4]
Part 3) Uniform time dependent variational principle (uTDVP) in h_utdvp.py
Approximately solves
for a small time step \(dt\) by a) \(A_C \rightarrow e^{-idtH_{\mathrm{eff},1}}(A_C)\), b) \(C \rightarrow e^{-idtH_{\mathrm{eff},0}}(C)\), c) \(A_L\)/\(A_R\) from left/right polar decompositions of \(A_C\) and \(C\). [1]
Part 4) Variational plane wave excitations in i_uexcitations.py
On top of a uMPS ground state \(\vert \psi(A) \rangle\), we want to variationally find quasiparticle excitations in a plane wave superposition of the form
where \(p\) is the momentum, and \(X\) the left-gauge parametrization of the tensor \(B = V_L X\) (\(V_L\) is orthogonal to \(A_L\)), perturbing the ground state around site \(n\). With
the optimization boils down to diagonalizing \(H_{\mathrm{eff}}(p)\) for a few lowest-lying eigenvalues. [1, 5]
We benchmark our algorithms with the transverse field Ising (TFI) model, which can be diagonalized analytically in one dimension. [6]
References
[1] Vanderstraeten et al., Tangent-space methods for uniform matrix product states, 2019, https://arxiv.org/abs/1810.07006. [2] Perez-Garcia et al., Matrix product state representations, 2007, https://arxiv.org/abs/quant-ph/0608197. [3] Wolf, Quantum Channels and Operations - Guided Tour, 2012, https://mediatum.ub.tum.de/node?id=1701036. [4] Zauner-Stauber et al., Variational optimization algorithms for uniform matrix product states, 2018, https://arxiv.org/abs/1701.07035. [5] Haegeman et al., Variational matrix product ansatz for dispersion relations, 2012, https://arxiv.org/abs/1103.2286. [6] Subir Sachdev, Quantum Phase Transitions, 2nd ed, Cambridge University Press, 2011.
[ ]:
import numpy as np
import matplotlib.pyplot as plt
1) f_umps.py: Random states and AKLT ground state
[ ]:
from tenpy_toycodes.f_umps import UniformMPS, TransferMatrix
from tenpy_toycodes.a_mps import SimpleMPS
1.1) Transfer matrix and canonical form of random injective tensor
Create a random tensor \(A \in \mathbb{C}^{D \times d \times D}\) of physical dimension \(d = 2\) and bond dimension \(D = 4\).
[ ]:
Show that \(A\) is injective, i.e. its
TransferMatrixfulfills \(T_A = \vert R \rangle \langle L \vert + \mathcal{O}(\vert \lambda_2 \vert)\) with \(\vert \lambda_2 \vert < 1\) and \(R,L > 0\).
[ ]:
Compute the canonical form of \(A\), consisting of left/right orthonormal tensor \(A_L / A_R\), center site tensor \(A_C\), and center matrix \(C\).
[ ]:
Show that \(T_{A_L} = \vert R \rangle \langle \mathbb{1} \vert + \mathcal{O}(\vert \lambda_2 \vert)\) with \(\vert \lambda_2 \vert < 1\) and \(R > 0\).
[ ]:
Show that \(T_{A_R} = \vert \mathbb{1} \rangle \langle L \vert + \mathcal{O}(\vert \lambda_2 \vert)\) with \(\vert \lambda_2 \vert < 1\) and \(L > 0\).
[ ]:
Show that \(A_C = A_L C = C A_R\).
[ ]:
Directly create a random
UniformMPS(for different tolerances) and test its canonical form.
[ ]:
1.2) AKLT state
For the spin-1 matrices \(S_x\), \(S_y\) and \(S_z\), we consider the two-site Hamiltonian matrix
The Hamiltonian for multiple sites then simply reads \(H = \sum_{n} h_{n, n+1}\). The eigenenergy is minimized (with a value of \(-2/3\)), if every bond has total spin \(S = 0\) or \(S = 1\). This is fulfilled by distributing spin-1/2 singlets between all neighbor-sites and projecting every site onto the \(S = 1\) subspace. This is the AKLT state \(\vert \psi_{\mathrm{AKLT}} \rangle\). A few lines derivation shows that it can be represented exactly by a uMPS \(\vert \psi(A) \rangle\) with left orthonormal tensor
Implement \(h, h^2 \in \mathbb{C}^{3 \times 3 \times 3 \times 3}\).
[ ]:
Bring the above defined \(A_L\) into canonical form and initialize \(\vert \psi_{\mathrm{AKLT}} \rangle\) as a
UniformMPS.
[ ]:
Show the following properties of \(\vert \psi_{\mathrm{AKLT}} \rangle\):
Ground state energy \(e = \langle h \rangle = -2/3\),
Variance \(\langle h^2 \rangle - \langle h \rangle^2 = 0\) (H is frustration free),
Entanglement entropy \(S = \ln(2) \approx 0.6931471805599453\),
Correlation length \(\xi = -1/\ln(\vert \lambda_2 \vert) = -1/\ln(1/3) = 1/\ln 3 \approx 0.9102392266268371\),
Connected correlation function \(C(n) = \langle S_z^0 S_z^n \rangle - \langle S_z \rangle^2 \rightarrow \vert \lambda_2 \vert^{n-1}\).
[ ]:
1.3) Conversions between uniform MPS and infinite MPS
Convert the
UniformMPS(uMPS) \(\vert \psi_{\mathrm{AKLT}} \rangle\) to aSimpleMPS(bc="infinite")(iMPS) and recheck the values of \(e\), \(S\), \(\xi\).
[ ]:
Denote by \(B \in \mathbb{C}^{2 \times 3 \times 2}\) the right canonical tensor of \(\vert \psi_{\mathrm{AKLT}} \rangle\) and by \(U \in \mathbb{C}^{2 \times 2}\) a random unitary. Show that the iMPS \(\vert\psi(B_1, B_2)\rangle\) with \(B_1 = BU\) and \(B_2 = U^*B\) is translation invariant and can be converted to a uMPS. Check that this is still the AKLT state.
[ ]:
For random right canonical tensors \(B_1 \in \mathbb{C}^{D \times d \times D}\) and \(B_2 \in \mathbb{C}^{D \times d \times D}\), show that the iMPS \(\vert\psi(B_1, B_2)\rangle\) is in general not translation invariant and cannot be converted to a uMPS.
[ ]:
Transverse field Ising model
In the following we want to use uMPS methods to find the ground state, elementary excitations and time-evolved states of the transverse field Ising (TFI) model
\(\mathbb{Z}_2-\mathrm{symmetry}\): \([H, U] = 0\) with \(U = \prod\limits_n \sigma^x_n\), local order parameter: magnetization density \(\langle \sigma^z \rangle\). From connecting the two limits of the transverse field \(g\) we expect the following quantum phase diagram:
Ferromagnetic phase \(g < g_c\)
two degenerate, symmetry broken ground states related by \(U\) (\(\ket{...\uparrow\uparrow\uparrow...}\) and \(\ket{...\downarrow\downarrow\downarrow...}\) for \(g = 0\))
\(\langle \sigma^z \rangle = \pm m \neq 0\) (\(m = 1\) for \(g = 0\))
elementary excitations: topological domain walls (\(\ket{...\uparrow\uparrow\uparrow \downarrow\downarrow\downarrow...}\) for \(g = 0\))
Paramagnetic phase \(g > g_c\)
unique symmetric ground state (\(\ket{...\rightarrow\rightarrow\rightarrow...}\) for \(g \to \infty\))
\(\langle \sigma^z \rangle = 0\)
elementary excitations: single spin flips (\(\ket{...\rightarrow\rightarrow \leftarrow \rightarrow\rightarrow...}\) for \(g \to \infty\))
Quantum phase transition at \(g_c\)
By performing Jordan-Wigner, Fourier and Bogoliubov transformations, the TFI model (with PBC) can be diagonalized analytically. The Hamiltonian in terms of fermionic creation and annihilation operators \(\gamma_{p}^{\dagger}\) and \(\gamma_{p}\) reads
Single particle excitation energy: \(\epsilon_p = 2 \sqrt{1 - 2g\cos(p) + g^2}\) \(\Rightarrow\) energy gap closes at quantum critical point \(g_c = 1\).
Ground state energy: \(E_0 = -\sum_{p} \epsilon_p/2\) \(\Rightarrow\) ground state energy density in the thermodynamic limit: \(e_0 = - \frac{1}{2\pi} \int_{-\pi}^{\pi} \epsilon_p/2\). [2]
2) g_vumps.py: Variational ground state search
[ ]:
from tenpy_toycodes.b_model import TFIModel
from tenpy_toycodes.tfi_exact import infinite_gs_energy
from tenpy_toycodes.f_umps import UniformMPS
from tenpy_toycodes.g_vumps import vumps_algorithm
For the transverse field Ising model in the thermodynamic limit, we want to find the ground state using the vumps_algorithm.
Investigate the convergence of the ground state energy density \(e_0\) with the bond dimension \(D\) by comparison to the exact value \(e_{0, \mathrm{exact}}\) from
tfi_exact.py. Consider both the paramagnetic and ferromagnetic quantum phase.
[ ]:
Plot the ground state magnetization \(m = \vert \langle \sigma^z \rangle \vert\) against the transverse field \(g\) to locate the quantum phase transition at \(g_c = 1\).
[ ]:
3) h_utdvp.py: Global quench dynamics
[ ]:
from tenpy_toycodes.b_model import TFIModel
from tenpy_toycodes.c_tebd import example_TEBD_gs_tf_ising_infinite, calc_U_bonds, update_bond
from tenpy_toycodes.f_umps import UniformMPS
from tenpy_toycodes.g_vumps import vumps_algorithm
from tenpy_toycodes.h_utdvp import utdvp_algorithm
Consider the following global quench dynamics for the TFI model: the ground state for a value \(g_1\) of the transverse field is time-evolved according to a different value \(g_2\),
We want to implement this time evolution using the utdvp_algorithm. For benchmark we use iTEBD. The run_TEBD function in c_tebd.py relies on a first order Trotter decomposition. We want to improve this to second order:
Implement this improved scheme in a function
run_TEBD_second_order.Then write a function
itebd_global_quenchperforming the global quench dynamics described above. Converge the method in bond dimension \(D\) and time step \(dt\).
[ ]:
Analogous to
itebd_global_quench, write a functionutdvp_global_quenchand make sure they give the same dynamics.
[ ]:
4) i_uexcitations.py: Variational plane wave excitations
[ ]:
from tenpy_toycodes.tfi_exact import infinite_gs_energy, infinite_excitation_dispersion
from tenpy_toycodes.b_model import TFIModel
from tenpy_toycodes.f_umps import UniformMPS
from tenpy_toycodes.g_vumps import vumps_algorithm
from tenpy_toycodes.i_uexcitations import VariationalPlaneWaveExcitationEngine
By running the VariationalPlaneWaveExcitationEngine, we want to compute the single particle excitations \(\epsilon_p = 2 \sqrt{1 - 2g\cos(p) + g^2}\) on top of the TFI ground state.
For this write a function
get_tfi_spectrum, returning both the variational dispersion relation and the exact one fromtfi_exact.py. Actively target topological domain wall excitations for transverse field values \(g < 1\).
[ ]: