AdaptiveHistoryRestart

class AdaptiveHistoryRestart(effective_rank_fraction=None, rank_tolerance=None)

Class for constructing an adaptive history restart option for the PulayMixer. A restart of the mixer history is triggered when the rank of the Gram matrix of the residual vectors is lower than a given fraction of the history size.

A restart can be beneficial to mitigate error stagnation, which can be sometimes been observed in the SCF convergence. The rank of the Gram matrix is used as decision criteria, since it can be seen as a measure of quality of the previous SCF history steps in determining the next guess.

Parameters:
  • effective_rank_fraction (float of range [0; 1]) – A tolerance level which determines when an SCF history should be reset/restarted. In the default case, if the effective rank is 50% less than the number of history steps then restart. A value of 0 implies higher chance of restart, and a value of 1 is equivalent to selecting no restart.
    Default: 0.5

  • rank_tolerance (float) – The tolerance used to determine whether two vectors are linearly dependent. It must be non-negative.
    Default: 1e-6

effectiveRankFraction()
Returns:

The effective rank fraction.

Return type:

float

nlinfo()
Returns:

The nlinfo.

Return type:

dict

rankTolerance()
Returns:

The rank tolerance.

Return type:

float

uniqueString()

Return a unique string representing the state of the object.