Recent Changes - Search:




The mp-imoments command calculates the expectation values and higher moments of triangular operators (that is, operators that have infinite support and represent a sum of local operators (and generalizations).


mp-imoments [options] <psi> [operator]

The mp-imoments command sums the infinite series of terms in a triangular MPO and returns the result as a polynomial function in the lattice size {$L$}. The algorithm used is described in

The wavefunction psi must be an infinite MPS. The operator can be any triangular MPO expression. If the operator is not specified, then the wavefunction attribute Hamiltonian is used (this provides a short-cut for calculating the energy and variance).

If no display options are specified (--real, --imag, --mag, --arg), then the default is to show both cartesian and polar coordinates of the result.



show help message


calculate moments of the n'th power of the operator [default 1]

-t, --cumulants

calculate the cumulants {$\kappa_m$} instead of the moments

-c, --cart

display the result in Cartesian (real,imag) coordinates [equivalent to --real --imag]

-p, --polar

display the result in polar coordinates [equivalent to --mag --arg]

-r, --real

display the real part of the result

-i, --imag

display the imaginary part of the result

-m, --mag

display the magnitude part of the result

-a, --arg

display the argument part of the result


display the argument part of the result in radians instead of degrees

-u, --unitcell=n

scale the results to this unit cell size [default wavefunction unit cell size]

-d, --degree=n

force the degree of the operator to n. Some MPO's cannot autodetect the degree (for example if the highest power term is zero due to some symmetry).

-q, --quiet

don't display the preamble or column headings


tolerance of the eigensolver [default 1E-15]


epsilon value for testing eigenvalues for unity [default 1E-12]

-q, --quiet

don't display the preamble or column headings

-v, --verbose

show additional debug information. Can be used multiple times


  1. Calculate the energy per unit cell of a wavefunction (assuming that the Hamiltonian is set by the wavefunction attribute)

    $ mp-imoments psi --real
    #mp-imoments psi --real
    #Date: Thu, 12 May 2016 22:24:32 +1000
    #operator "lat:4*H_zz+2*H_x"
    #quantities are calculated per unit cell size of 2 sites
    #moment #degree #real          
    1       1       -2.5450849718747                   

    We used --real to shorten the output, since we know that the imaginary part will be numerically zero. But this is rather dangerous to assume in general!

    The interpretation of the results is that the total energy of the system is -2.5450849718747*N, where N is the number of unit cells (two physical lattice sites, in this case).
  2. Calculate the energy variance

    $ mp-imoments psi --power 2 --real 
    #mp-imoments psi --power 2 --real
    #Date: Thu, 12 May 2016 22:27:42 +1000
    #operator "lat:4*H_zz+2*H_x"
    #quantities are calculated per unit cell size of 2 sites
    #moment #degree #real
    1       1       -2.5450849718747
    2       1       0.0026607795314968
    2       2       6.4774575140627

    The output shows both the first and second moments. The first moment gives the expectation value {$\langle H \rangle$}, which is the energy per unit cell. The second moment gives the expectation value {$\langle H^2 \rangle = e_0^2 L^2 + \sigma^2 L$} where {$e_0$} is the energy per unit cell and {$\sigma^2$} is the variance per unit cell. So the variance per unit cell is given by the coefficient of degree 1 of the 2nd moment, which in this example is 0.00266.
  3. Momentum distribution function

    Often we would use this in a script with $k as a loop variable.

    $ mp-imoments psi lattice:"sum_k($k, N(0)) * sum_k(-$k, N(0))"

    We can simplify the expression here using the sq(X) function, which is equivalent to inner(X,X), or adjoint(X)*X.

    $ mp-imoments psi lattice:"sq(sum_k(-$k, N(0)))"

  4. Large-distance limit of the string correlation function for a spin-1 chain

    $ mp-imoments psi lattice:"sum_kink(exp(i*pi*Sz(0)), Sz(0))^2"

Edit - History - Print - Recent Changes - Search
Page last modified on October 30, 2016, at 02:52 PM