Recent Changes - Search:

HomePage

PmWiki

pmwiki.org

MpTridiag

The mp-tridiag program tridiagonalizes the Hamiltonian operator in the effective basis of one or more wavefunctions. This can be used in conjunction with mp-trispectral to calculate the spectral function {$G_A(\omega)$}.

Matrix Product Toolkit version HEAD-0.7.3.0 (subversion tree rev 280M)
Compiled on Oct  9 2006 at 23:51:17
usage: mp-tridiag [options]
Allowed options:
  --help                         show this help message
  -H [ --Hamiltonian ] arg       operator to use for the Hamiltonian (right Lanczos vector attribute
                                 "Hamiltonian")
  -w [ --wavefunction ] arg      input wavefunction to generate the effective basis (zero or more)
  -r [ --right ] arg             right-hand Lanczos vector |R> (defaults to the first --wavefunction)
  -l [ --left ] arg              Left-hand Lanczos vector <L| (defaults to --right)
  -G [ --GroundstateEnergy ] arg groundstate energy of the Hamiltonian (wavefunction attribute
                                 "GroundstateEnergy", not needed if --no-preamble)
  -m [ --max-states ] arg        Maximum number of states to keep in the effective basis [default 100000]
  -t [ --min-trunc ] arg         Minimum desired truncation error per site of the effective basis [default
                                 1.77635683940025e-15]
  -b [ --bond ] arg              Generate the basis at this bond, valid is 1 .. L-1 [default L/2]
  -i [ --max-iter ] arg          maximum number of iterations
  -s [ --threshold ] arg         stopping criteria for the orthogonality of the Krylov vector <kn|k0> [default
                                 0.01]
  -e [ --epsilon ] arg           stopping criteria for the magnitude of Beta [default 1e-05]
  --no-preamble                  only show the tridiagonal coefficients, don't show the groundstate energy
  -v [ --verbose ] arg (=0)      increase verbosity

The required options are --Hamiltonian, --GroundstateEnergy, and one or more -wavefuction's.

It is possible to restrict the final basis size either by number of states --max-states or by truncation error --min-trunc. Currently all of the density matrices are summed with the same weight which probably isn't ideal.

The output is a single line showing the groundstate energy (this is not needed for the tridiagonal coefficients themselves, but is required by mp-trispectral to get the energy offset correct), followed by a table of 5 columns: n Alpha Beta LeftReal LeftImag

n is the vector number, {$|0\rangle$} represents the right input vector vector, {$|n\rangle$} represents the n'th Lanczos vector {$|n\rangle = (H-\alpha_{n-1})|n-1\rangle - \beta_{n-2}|n-2\rangle$}. LeftReal and LeftImag are the coefficients of the left input vector in the tridiagonal basis, i.e. {$\langle L | n \rangle $}.

By default, the tridiagonalization is performed using the effective basis at the central bond of the chain. This can be changed using the --bond option.

There are three possible stopping criteria: if the coefficient {$\beta$} ever reaches zero, then an invariant subspace has been found and the tridiagonalization is exact within the effective Hilbert space. It also indicates loss of orthogonality of the basis, so a stopping criteria is used in case {$\beta$} gets too small. This is controlled by the --epsilon option. Secondly, the overlap of the n'th Lanczos vector with the right input vector is a direct measure of the loss of orthogonality of the basis. By default, we stop when this overlap exceeds 0.01, controlled by the --threshold option.

To calculate a Green's function with any accuracy you must specify at least one more more correction vectors. Typically, using only the input Lanczos vectors results in a completely wrong spectral function as the effective basis is not optimized for representing the appropriate excitations.

See Also

Edit - History - Print - Recent Changes - Search
Page last modified on October 16, 2006, at 08:07 AM