MYLBFGS.adjustStepSize(X, E, G, stp)[source]

We now have a proposed step. This function will make sure it is a good step and then take it. This is known as a Backtracking linesearch

  1. if the step is not anti-aligned with the gradient (i.e. downhill), then reverse the step

  2. if the step is larger than maxstep, then rescale the step

  3. calculate the energy and gradient of the new position

  4. if the step increases the energy by more than maxErise,

    then reduce the step size and go to 3)

  5. if the step is reduced more than 10 times and the energy is still not acceptable, then increment nfail, reset the lbfgs optimizer and continue

  6. if nfail is greater than 5 abort the quench

Previous topic


Next topic