LanczosEvolution

Inheritance Diagram

Inheritance diagram of tenpy.linalg.lanczos.LanczosEvolution

Methods

LanczosEvolution.__init__(H, psi0, params)

Initialize self.

LanczosEvolution.run(delta)

Calculate expm(delta H).dot(psi0) using Lanczos.

class tenpy.linalg.lanczos.LanczosEvolution(H, psi0, params)[source]

Bases: tenpy.linalg.lanczos.LanczosGroundState

Calculate \(exp(delta H) |psi0>\) using Lanczos.

It turns out that the Lanczos algorithm is also good for calculating the matrix exponential applied to the starting vector. Instead of diagonalizing the tri-diagonal T and taking the ground state, we now calculate exp(delta T) e_0 in the Krylov ONB, where ``e_0 = (1, 0, 0, ...) corresponds to psi0 in the original basis.

Parameters

psi0, params (H,) – Hamiltonian, starting vector and parameters as defined in LanczosGroundState. The parameters E_tol and min_gap are ignored, the parameters P_tol defines when convergence is reached, see _converged() for details.

delta

Prefactor of H in the exponential.

Type

float/complex

_result_norm

Norm of the resulting vector.

Type

float

run(delta)[source]

Calculate expm(delta H).dot(psi0) using Lanczos.

Parameters

delta (float/complex) – Time step by which we should evolve psi0: prefactor of H in the exponential. Note that the complex i is not included!

Returns

  • psi_f (Array) – Best approximation for expm(delta H).dot(psi0)

  • N (int) – Krylov space dimension used.