Recent Changes - Search:




Calculate the time evolution of an MPS with infinite boundary conditions using the TDVP algorithm.


mp-ibc-tdvp -w <input-psi> -t <timestep> [options]



Show help message.

-H, --Hamiltonian

The Hamiltonian operator to use for the time evolution (defaults to the EvolutionHamiltonian or Hamiltonian wavefunction attribute).

-w, --wavefunction

The initial wavefunction (required).

-o, --output

Prefix for output files (defaults to the Prefix wavefunction attribute or the initial wavefunction name).

-t, --timestep

The evolution timestep, which can be complex (required).

-n, --num-timesteps

The number of timesteps to calculate (default 1).

-s, --save-timesteps

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 1e-16).


The error tolerance for the GMRES algorithm for finding the initial left and right Hamiltonian environments (default 1e-13).


The minimum number of states to keep, i.e. the minimum bond dimension (default 2).

-m, --max-states

The maximum number of states to keep, i.e. the maximum bond dimension (default 100000).

-r, --trunc

The truncation error cutoff threshold (alternative to -d).

-d, --eigen-cutoff

The eigenvalue cutoff threshold (for bond expansion in 1TDVP or truncations in 2TDVP).
Specify this option to enable bond expansion for single-site TDVP.

-2, --two-site

Use two-site TDVP instead of single-site TDVP.

-f, --fidtol

The tolerance for the fidelity of the edge A-matrices for window expansion (default 1e-12).


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 single-site and two-site variances).

-c, --composition

The timestep composition scheme to use (use --help to show the available compositions, and use -v to get their values).

-v, --verbose

Increase verbosity.


TDVP for IBC wavefunctions

This 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 semi-infinite boundaries are assumed to be ground states (or at least eigenstates) of the evolution Hamiltonian, the boundary A-matrices 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 mp-expectation or mp-ibc-overlap is consistent.

Evolution windows

If we look at a time-evolution 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 --ewleft and --ewright options.)

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 A-matrix (with the Lambda matrix incorporated) {$A^s$} compared with a reference A-matrix {$\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 windows

In 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 right-moving 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 fixed-width 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 --comoving option.


[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 real-time evolution with matrix product states, Phys. Rev. B 88 035103 (2013), doi:10.1103/PhysRevB.88.035103, arXiv1207.0678.
Edit - History - Print - Recent Changes - Search
Page last modified on October 25, 2023, at 08:24 AM