Recent Changes - Search:

HomePage

PmWiki

pmwiki.org

MpITdvp

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

Synopsis

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

Options

--help

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).

--maxiter

The maximum number of iterations to use for the Lanczos algorithm for evolving each local matrix (default 10).

--errtol

The error tolerance for the Lanczos algorithm (default 1e-16).

--gmrestol

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

--min-states

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..
Specify this option to enable bond expansion for single-site TDVP.

-l, --lambdatol

The tolerance for the squared Frobenius norm of the difference of lambda matrices from successive sweeps (default 1e-16).

--max-sweeps

The maximum number of left/right sweeps of the unit cell (default 10).

--epsilon

Calculate the error measures {$\epsilon_1^2$} and {$\epsilon_2^2$} (i.e. the single-site and two-site variances).

-N, --neps

Calculate the error measures {$\epsilon_n^2$} up to {$n = \texttt{NEps}$}.

-c, --composition

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

--magnus

For time-dependent Hamiltonians, use this variant of the Magnus expansion (currently, only a second-order 2 and a fourth-order 4 expansion are implemented).

--timevar

For time-dependent Hamiltonians, use this string to represent the time variable (default t).

--normalize

Normalise the wavefunction when saving (default if the timestep is real).

--nonormalize

Do not normalise the wavefunction when saving (default if the timestep is not real).

-v, --verbose

Increase verbosity.

Description

iTDVP

This algorithm extends the finite TDVP algorithm to calculate the time evolution of infinite MPSs (for more details of the TDVP algorithm itself, see the page for the finite algorithm).

Like finite TDVP, this algorithm performs a right-to-left sweep of the state followed by a left-to-right sweep to evolve the state by a timestep. In order to perform a right-to-left sweep on an infinite MPS, we sweep over the unevolved unit cell multiple times from right-to-left, updating the right Hamiltonian environment after each sweep, until some convergence criterion is met. For this criterion, we use the squared Frobenius norm of difference of the Lambda matrices obtained from successive sweeps ({$\|\Lambda - \Lambda'\|^2$}).

(We note that, when performing an SVD on the leftmost A-matrix in the unit cell to bring it into right-orthogonal form {$A_R$}, we use {$$A = USV^\dagger = \Lambda A_R \quad\text{where}\quad \Lambda = USU^\dagger, \quad A_R = UV^\dagger,$$} this ensures that the bases at the left and right of the unit cell always match, which is important when updating the right Hamiltonian environments between sweeps, and allows us to calculate {$\|\Lambda - \Lambda'\|^2$}, which otherwise may not be possible if the right bases of {$\Lambda$} and {$\Lambda'$} were different.)

(We also note that we could use the fidelity of the unit cell between two successive sweeps as a convergence criterion, but this value is only useful until the difference between the fidelity and 1 falls below machine epsilon, whereas the difference of Lambda matrices is still useful after this point.)

Edit - History - Print - Recent Changes - Search
Page last modified on October 25, 2023, at 07:48 AM