ISEARCH

From VASP Wiki
Revision as of 14:21, 27 May 2025 by Csheldon (talk | contribs)

ISEARCH = 0 | 1
Default: ISEARCH = 0 

Description: ISEARCH controls the line search algorithm used during the direct minimization of the electronic structure (when ALGO = A).


  • ISEARCH = 0: Legacy line search algorithm.
  • ISEARCH = 1: Improved line search algorithm.

The line search determines the optimal step size along the conjugate gradient search direction. ISEARCH = 0 performs incremental steps along the search direction. It may lead to inconsistencies in total energy evaluations and slower convergence. ISEARCH = 1 introduces a more robust and consistent method for determining the optimal step size, resulting in better convergence behavior and more reliable energy minimization.

Description of the Improved Algorithm

The improved algorithm (enabled with ISEARCH = 1) introduces several enhancements over the legacy implementation:

  • Absolute reference - each line search step starts from the origin of the search direction rather than progressing incrementally. This improves energy consistency.
  • Efficient slot system - all trial steps are stored in slots, reducing redundant energy evaluations.
  • Minimum acceptance criterion - the final energy minimum of the line search is accepted only if its neighboring slots have also been evaluated (first principles energies are known), ensuring reliable interpolation.
  • Polynomial and spline fitting
    • If ≤ 5 data points are available, an up to 4th-order polynomial fit is used to determine the minimum.
    • If > 5 data points are available, a spline interpolation is used instead, offering greater robustness than higher-order polynomials.
  • Gradient correction - the line search typically relies on total energy evaluations only, which is faster than computing gradients. If the new gradient is not sufficiently orthogonal to the search direction from the previous step, a correction is applied using all available data points (via polynomial or spline fit).

Recommendations

It is recommended to use ISEARCH = 1 when performing electronic minimizations with ALGO = A, as it generally improves convergence stability and reduces the total number of required SCF steps, e.g.:

 ALGO = A; ISEARCH = 1

ISEARCH = 0 should only be used for backward compatibility or benchmarking against legacy behavior.

Related tags and articles

ALGO

Examples that use this tag