Have you ever had a dream, Neo, that you seemed so sure it was real? But if were unable to wake up from that dream, how would you tell the difference between the dream world & the real world?
Tools /
MpIBcTdvpCalculate the time evolution of an MPS with infinite boundary conditions using the TDVP algorithm. Synopsis
Options
Show help message.
The Hamiltonian operator to use for the time evolution (defaults to the EvolutionHamiltonian or Hamiltonian wavefunction attribute).
The initial wavefunction (required).
Prefix for output files (defaults to the Prefix wavefunction attribute or the initial wavefunction name).
The evolution timestep, which can be complex (required).
The number of timesteps to calculate (default 1).
Save the wavefunction every s timesteps (if s = 0, then only save the final wavefunction).
The maximum number of iterations to use for the Lanczos algorithm for evolving each local matrix (default 10).
The error tolerance for the Lanczos algorithm (default 1e16 ).
The error tolerance for the GMRES algorithm for finding the initial left and right Hamiltonian environments (default 1e13 ).
The minimum number of states to keep, i.e. the minimum bond dimension (default 2).
The maximum number of states to keep, i.e. the maximum bond dimension (default 100000).
The truncation error cutoff threshold (alternative to d ).
The eigenvalue cutoff threshold (for bond expansion in 1TDVP or truncations in 2TDVP).
Specify this option to enable bond expansion for singlesite TDVP.
Use twosite TDVP instead of singlesite TDVP.
The tolerance for the fidelity of the edge Amatrices for window expansion (default 1e12 ).
Expand the window manually every {$n$} timesteps.
Use a comoving window with a fixed width specified by this option (see below).
The leftmost site of the initial evolution window (defaults to the wavefunction attribute EvolutionWindowLeft or the leftmost site of the initial window).
The rightmost site of the initial evolution window (defaults to the wavefunction attribute EvolutionWindowRight or the rightmost site of the initial window).
Calculate the error measures {$\epsilon_1^2$} and {$\epsilon_2^2$} (i.e. the singlesite and twosite variances).
The timestep composition scheme to use (use help to show the available compositions, and use v to get their values).
Increase verbosity.
DescriptionTDVP for IBC wavefunctionsThis algorithm is an extension of the finite TDVP algorithm to IBC wavefunctions [1,2] (for more details of the TDVP algorithm itself, see the page for the finite algorithm). By treating the window of the IBC wavefunction as a finite MPS, the basic algorithm is exactly the same, except that the Hamiltonian environments for the left and right edges of the window must be found from the infinite boundaries. Note that we only update sites inside the window of the IBC wavefunction: since the left and right semiinfinite boundaries are assumed to be ground states (or at least eigenstates) of the evolution Hamiltonian, the boundary Amatrices far from the window should not change anyway, up to a phase rotation.
This phase rotation can be removed as well by subtracting the ground state energy density from the Hamiltonian, which should be done anyway to ensure that the global phase obtained using Evolution windowsIf we look at a timeevolution simulation of a system with local perturbation on top of the ground state, it will spread out over time, so that while the perturbation may only be over a few sites in the initial state, it could be over a wide range of sites at a later timestep. Since the state is close to the ground state far from the perturbation, we do not need to update the sites there, and we can just apply the time evolution algorithm in a smaller ‘evolution window’. (Note that this evolution window is a section of the full IBC window, and is not necessarily the full IBC window.
For instance, we will usually keep one extra site on each side of the evolution window inside of the IBC window to allow us to expand the edge bonds of the evolution window.
The size of the initial evolution window can be set using the While we can manually expand the evolution window, it is much more convenient to use some automatic method based on some criterion. The window expansion criterion used by this tool is the fidelity of the leftmost Amatrix (with the Lambda matrix incorporated) {$A^s$} compared with a reference Amatrix {$\tilde{A}^s$} from the initial state, which we can calulate by taking the sum of singular values in the following SVD [2] {$$UDV^\dagger = \sum_s (\tilde{A}^s)^\dagger A^s.$$} (there is a similar criterion for the right edge of the window). Once we reach the end of a left or a right sweep, we calculate this quantity, and when the difference of this quantity from 1 exceeds some tolerance, then we expand the window until it falls below tolerance. Comoving windowsIn some situations, we may only be interested in monitoring the region around the wavefront, and do not care as much about the region some distance behind it. In this case we can use a window with a fixed width which moves along with the wavefront: (for a rightmoving wave) whenever sites are added to the window on the right as the window moves right, sites are 'removed' from the left of the window. (The sites removed from the left of the fixed comoving window are still part of the IBC window, but they are ignored in the TDVP evolution, so that only the sites in the fixedwidth comoving window are swept over.) In this way, we can obtain accurate results for the evolution around the wavefront at a much cheaper computational cost, especially for longer times, but at the expense of losing accuracy in the region behind the wavefront. At the moment, this tool only supports comoving windows which move to the right by specifying the width using the References[1] Ho N. Phien, Guifré Vidal, and Ian P. McCulloch, Infinite boundary conditions for matrix product state calculations, Phys. Rev. B 86, 245107 (2012), doi:10.1103/PhysRevB.86.245107, arXiv:1207.0652.
[2] Ho N. Phien, Guifré Vidal, and Ian P. McCulloch, Dynamical windows for realtime evolution with matrix product states, Phys. Rev. B 88 035103 (2013), doi:10.1103/PhysRevB.88.035103, arXiv1207.0678.
