You hear that, Mr. Anderson? That's the sound of inevitability, that's the sound of your death, goodbye, Mr. Anderson.
Tools /
MpExcitationAnsatzCalculate excited states using the MPS excitation ansatz [1]. Synopsis
Options
Show help message.
The operator the use for the Hamiltonian (if unspecified, use wavefunction attribute Hamiltonian of psi ).
The excitation momentum, in units of {$\pi$} (default 0). This can be a single number, or a range in the form start:end:step or start:end,num , which will produce num = floor(1 + (end-start)/step) samples from start to end inclusive.
Override the lattice unit cell size (otherwise, use the size of the unit cell of the lattice).
(2D cylinders) The target value of the y-momentum, in units of {$\pi$} (only a single value at a time is currently allowed). Specifying this option will enable targeting eigenstates of y-momentum.
(2D cylinders) Shift ky by subtracting this value, in units of {$\pi$} (useful when the output value of ky is shifted by some arbitrary phase).
(2D cylinders) The energy parameter to penalise states with the wrong y-momentum (default 5).
The number of lowest eigenvalues to calculate (default 1).
The quantum number sector for the excitation (default identity).
Rotate the right boundary unit cell by this many sites to the left.
(2D cylinders) The string MPO representation of the cylinder translation operator {$T_y$} for calculating the momentum in the y axis.
The prefix to use for output files, which will be of the form [prefix].k[k] ; if a y-momentum is being targeted, this will become [prefix].kx[kx].ky[ky] ; if more than one eigenvalue per momentum is being calculated, then .n[n] is appended to the end, where [n] is the index of the eigenvalue (starting from zero).
If this option is not specified, no files are saved.
Force the output filenames to use this many decimal places in the momentum.
The error tolerance for the ARPACK eigensolver for finding the excited states (default 1e-10 ).
The error tolerance for the GMRES algorithm for solving the left and right block Hamiltonians (default 1e-13 ).
The error tolerance for transfer matrix eigenvalues near unity (default 1e-12 ).
The random number generator seed for generating the initial state.
Use a random initial guess for each momentum. Otherwise, the lowest eigenvector for the previous momentum is used as an initial guess for the next one.
Store the left and right boundary wavefunctions by references to the input files.
Store the left and right boundary wavefunctions by writing them to the output files (default).
Hide column headings; use twice to hide output of momentum.
Increase verbosity.
DescriptionThis tool calculates the excited states for a given ground state using the MPS excitation ansatz {$$|\Phi_k(B)\rangle = \sum_n \mathrm{e}^{\mathrm{i}kn} \cdots A_L^{s_{n-2}} A_L^{s_{n-1}} B^{s_n} A_R^{s_{n+1}} A_R^{s_{n+2}} \cdots$$} where {$A_L$} and {$A_R$} are the left- and right-orthogonal forms respectively of the ground state. The lowest-energy states of this form are found for a specified momentum {$k$} by using a numerical eigensolver on the effective Hamiltonian for this state as the matrix {$B$} is varied. We may also calculate topologically non-trivial excitations where the {$A_L$} and {$A_R$} matrices are taken from two different ground states, which can be done by specifying the optional command line option For 2D systems on a finite-width cylinder, we can calculate the {$y$}-momentum along the circumference of the cylinder by specifying the cylinder translation operator using the ExamplesAs an example, we can calculate the Haldane gap, as was done in the original MPS excitation ansatz paper [1]. First, we find the ground state of the spin-1 antiferromagnetic Heisenberg model: $ spinchain-u1 -S 1 -o lattice $ mp-idmrg-s3e -H lattice:H_J1 -w psi -m "10..100x100,100x100" -q 0 --create We can then calculate the energy gap at {$k = \pi$} by $ mp-excitation-ansatz psi -k 1 #mp-excitation-ansatz psi -k 1 #Date: Tue, 17 Oct 2023 15:40:44 +1000 #Wavefunction unit cell size is 1 site #Using a lattice unit cell size of 1 site #FBZ ranges from 0 to 2pi #k/pi #E 1 0.41047915829201 We can calculate the dispersion relation for a range of {$k$} with the following command, using a larger error tolerance to speed up the calculation (in this example, the finite bond dimension of the ground state will have the most significant impact on the error anyway) $ mp-excitation-ansatz psi -k 0:1:0.1 --tol 1e-5 #mp-excitation-ansatz psi -k 0:1:0.1 --tol 1e-5 #Date: Tue, 17 Oct 2023 15:42:10 +1000 #Wavefunction unit cell size is 1 site #Using a lattice unit cell size of 1 site #FBZ ranges from 0 to 2pi #k/pi #E 0 0.90251679306323 0.1 1.1825165295609 0.2 1.7522702327676 0.3 2.312985081061 0.4 2.6486031454093 0.5 2.7162814426233 0.6 2.5226507892681 0.7 2.1070146846372 0.8 1.5291130870744 0.9 0.8684292477286 1 0.41047915829369 Notes
References[1] J. Haegeman et al., Variational matrix product ansatz for dispersion relations, Phys. Rev. B 85, 100408(R) (2012), doi:10.1103/PhysRevB.85.100408, arXiv:1103.2286.
[2] M. Van Damme et al., Efficient matrix product state methods for extracting spectral information on rings and cylinders, Phys. Rev. B 104, 115142 (2021), doi:10.1103/PhysRevB.104.115142, arXiv:2102.10982.
|