speigs

tenpy.linalg.np_conserved.speigs(a, charge_sector, k, *args, **kwargs)[source]

Sparse eigenvalue decomposition w, v of square a in a given charge sector.

Finds k right eigenvectors (chosen by kwargs['which']) in a given charge sector, tensordot(A, V[i], axes=1) = W[i] * V[i].

Parameters:
  • a (Array) – A square array with contractible legs and vanishing total charge.

  • charge_sector (charges) – ndim charges to select the block.

  • k (int) – How many eigenvalues/vectors should be calculated. If the block of charge_sector is smaller than k, k may be reduced accordingly.

  • *args – Additional arguments given to scipy.sparse.linalg.eigs.

  • **kwargs – Additional keyword arguments given to scipy.sparse.linalg.eigs.

Returns:

  • W (ndarray) – k (or less) eigenvalues

  • V (list of Array) – k (or less) right eigenvectors of A with total charge charge_sector. Note that when interpreted as a matrix, this is the transpose of what np.eigs normally gives.