Skip to main content

eigen

Function eigen 

Source
pub fn eigen<T: ConjugateScalar>(
    a: &CausalTensorTrainOperator<T>,
    max_rank: usize,
    config: &SolveConfig<<T as ConjugateScalar>::Real>,
) -> Result<(T, CausalTensorTrain<T>), CausalTensorError>
Expand description

Computes the lowest eigenpair (λ, v) of a Hermitian tensor-train operator A by the DMRG3S algorithm: a single-site DMRG sweep (each site solves the local single-site eigenproblem for the smallest Rayleigh quotient) combined with subspace expansion — the bond dimension is grown rank-adaptively by enriching v with the projected residual A·v − λ·v (the same residual-enrichment engine used by linear), seeded small and capped at max_rank.

Each site is solved in mixed-canonical gauge: the state is canonicalize_at(k)-ed before the local solve so the environment is orthonormal and the single-site problem is a standard Hermitian eigenproblem H z = λ z (solved by the cyclic-Jacobi sym_eig, which uses complex Givens similarity for complex scalars and reduces to the real symmetric Jacobi for real ones).

A must be (numerically) Hermitian — the effective operator is Hermitian-symmetrized before each local solve. The returned λ is real (returned as T) and the smallest (most negative) eigenvalue.

Reference: C. Hubig, I. P. McCulloch, U. Schollwöck, and F. A. Wolf, “Strictly single-site DMRG algorithm with subspace expansion,” Phys. Rev. B 91, 155115 (2015). https://doi.org/10.1103/PhysRevB.91.155115 (arXiv:1501.05504).

§Errors