Skip to content

Convergence Trouble Shooting

william-dawson edited this page Aug 10, 2018 · 1 revision

In this wiki entry, we'll go over tips for choosing convergence parameters. Admittedly, this is a weakness in NTPoly, for which there are solutions available in the literature [1], which will hopefully be fixed in future releases. In the meantime, please consider the tips in this document.

Convergence Challenges

In NTPoly, we have two different parameters which are crucial for good performance. First, the threshold value which is used for truncating small matrix elements to zero. Next the convergence threshold, which is used to check when a calculation has converged. Unfortunately, these two parameters are tightly coupled. This is because truncating the matrix at each iterations causes an accumulation of error that eventually prevents us from reaching complete convergence.

Below, we show the convergence of a calculation performed on a small amino acid chain. We show both the overlap matrix calculation (using Jansik's method) and the density matrix calculation (using TRS4). As one can see, using too high of a convergence value can lead to a calculation that never finishes. Notably, the correct choice of convergence tolerance is different for the overlap and density matrix. Thus it is essential to use different criteria for the overlap and density matrix parts of the calculation.

One helpful parameter in this case is the max_iterations parameter. During the SCF loop, you can perform some initial more expensive calculations to get an idea of what accuracy is possible. By capping the max_iterations to a reasonable value, you can keep the cost of this first step low.

References

[1] Kruchinina, Anastasia, Elias Rudberg, and Emanuel H. Rubensson. "On-the-fly computation of frontal orbitals in density matrix expansions." Journal of chemical theory and computation 14, no. 1 (2017): 139-153.