LanczosEvolution¶
full name: tenpy.linalg.lanczos.LanczosEvolution
parent module:
tenpy.linalg.lanczos
type: class
Inheritance Diagram
Methods
|
Initialize self. |
|
Calculate |
-
class
tenpy.linalg.lanczos.
LanczosEvolution
(H, psi0, options)[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, wheree_0 = (1, 0, 0, ...)
corresponds topsi0
in the original basis.- Parameters
H – Hamiltonian, starting vector and parameters as defined in
LanczosGroundState
. The option :cfg:option`LanczosEvolution.P_tol` defines when convergence is reached, see_converged()
for details.psi0 – Hamiltonian, starting vector and parameters as defined in
LanczosGroundState
. The option :cfg:option`LanczosEvolution.P_tol` defines when convergence is reached, see_converged()
for details.options – Hamiltonian, starting vector and parameters as defined in
LanczosGroundState
. The option :cfg:option`LanczosEvolution.P_tol` defines when convergence is reached, see_converged()
for details.
Options
-
config
LanczosEvolution
¶ option summary Cutoff to abort if `beta` (= norm of next vector in Krylov basis before nor [...]
Shift the energy (=eigenvalues) by that amount *during* the Lanczos run by [...]
Ignored.
Ignored.
The maximum number of `psi` to keep in memory during the first iteration. [...]
Maximum number of steps to perform.
Minimum number of steps to perform.
Tolerance for the error estimate from the Ritz Residual, [...]
For poorly conditioned matrices, one can quickly loose orthogonality of the [...]
-
option
E_tol
¶ Ignored.
-
option
min_gap
¶ Ignored.
-
option
-
delta
¶ Prefactor of H in the exponential.
- Type
float/complex
-
run
(delta, normalize=None)[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!
normalize (bool) – Whether to normalize the resulting state. Defaults to
np.real(delta) == 0
.
- Returns
psi_f (
Array
) – Best approximation forexpm(delta H).dot(psi0)
. IfLanczos.E_shift
is used, it’s an approximation forexpm(delta (H + E_shift)).dot(psi)
.N (int) – Krylov space dimension used.