`mp-ispectrum`

calculates the spectrum of the transfer operator of an iMPS. This determines the spectrum of correlation lengths.

For simple uses, use `mp-ispectrum <wavefunction>`

.

By default, `mp-ispectrum`

calculates the 10 largest magnitude eigenvalues in each available symmetry sector. To calculate in just a single sector, use `-q`

to specify the quantum number. To calculate a different number of eigenvalues, use `-n`

. To display the magnitude of the eigenvalue, rather than the real and imag parts, use `--mag`

.

The eigenvalue *d* is related to the correlation length as

correlation_length_per_unit_cell = -1 / ln(|d|)

To get the correlation length per site, multiply by the unit cell size.

If the wavefunction is parity symmetric, then the transfer operator is Hermitian and the eigenvalues will be purely real. An imaginary component means that parity symmetry is broken, which may occur either if the Hamiltonian was not parity symmetric to begin with (eg, the Kagome strip), or if the parity symmetry breaks spontaneously, eg due to a long-range chiral order.

This is all that is required for simple uses. `mp-ispectrum`

can also calculate the prefactor of a given operator in the exponential expansion. This can be used to calculate directly the operator scaling dimension by plotting the prefactor as a function of the correlation length. The interface for calculating these prefactors is rather clunky and will be improved in the future, so is not described here.