LanczosEvolution

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
H, psi0, params :

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.

Attributes
deltafloat/complex

Prefactor of H in the exponential.

_result_normfloat

Norm of the resulting vector.

Methods

run(self, delta)

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

run(self, delta)[source]

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

Parameters
deltafloat/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_fArray

Best approximation for expm(delta H).dot(psi0)

Nint

Krylov space dimension used.