.. _lanczos: ================= Lanczos ================= The Lanczos method is a way to find the lowest eigenvalue and eigenvector efficiently without building the whole Hessian matrix. At each iteration, a new direction is added to the searching space by timing the Hessian, H, to the previous direction, v. Hv can be evaluated by finite difference: Hv = F(x0+dR*v) - F(x0), where F is the force and dR is the finite difference step, i.e. the separation distance in the dimer method. After ith iteration, the explored space spanned by :math:`\{ \rm{v, Hv, H^{2}v, \cdots, H^{i-1}v} \}`, which is the Krylov subspace. The lowest eigenvalue usually converges when i is much less than the dimensionality of the system. [#Lanczos1950]_ [#Zeng14_044115]_ Usage ===== The lanczos_atoms is a subclass of SSDimer_atoms, which employs the Lanczos algorithm to find the lowest curvature mode (the rotational part in ssdimer). class lanczos_atoms(SSDimer_atoms): **rotationOpt**: not valid Example: .. code-block:: none from tsase.dimer import lanczos d = lanczos.lanczos_atoms(p, rotationMax = 10, phi_tol=3, ss = False) # use quickmin optimizer in ssdimer d.search(minForce = 0.0001, movie = "dimer2.movie", interval = 20 ) ### Or use other first order optimizer in ase. ### Second order optimizers cannot be used when "ss = True". #dyn = MDMin(d) #dyn.run(fmax=0.0001) .. rubric:: References .. [#Lanczos1950] C. Lanczos, "An iteration method for the solution of the eigenvalue problem of linear differential and integral operators", (United States Government Press Office, 1950). .. [#Zeng14_044115] Y. Zeng, P. Xiao, and G. Henkelman, "Unification of algorithms for minimum mode optimization", *J. Chem. Phys.* **140**, 044115 (2014). `DOI `_