[QE-users] Increasing gradient precision

Hermes, Eric ehermes at sandia.gov
Wed Apr 17 22:46:15 CEST 2019


Hello,

I am developing a code, Sella (https://github.com/zadorlab/sella ), that can interface with a variety of electronic structure theory packages to perform saddle point optimizations. Sella performs finite difference of the gradient vectors to approximate Hessian-vector products for an iterative eigensolver (operating on the Hessian matrix). Sella therefore requires a high degree of precision in the gradients. If the error in the gradients is at or close to the same order of magnitude as the difference between gradients for two configurations separated by the finite displacement distance (typically 1e-4 Angstrom), then the iterative eigensolver will fail to converge. Increasing the finite displacement distance also results in a poor approximation of Hessian-vector products due to nonlinearity, which also can cause the eigensolver to fail to converge.

Some other codes such as GPAW enable use of the gradient error as an SCF convergence criterion. As far as I can tell, Quantum Espresso does not have this ability. In order to get the accuracy necessary for my code to function properly, I have so far needed to specify an energy convergence threshold of conv_thr=1e-11. However, even with this absurdly tight convergence threshold, my iterative eigensolver still occasionally fails to converge.

I am not particularly concerned about limiting the number of SCF iterations to achieve convergence. For my purposes, it is more important to have gradients with a consistent and tunable level of precision. Lowering conv_thr increases the precision of the gradients, but not in a consistent and predictable way.

Is there a better way to improve gradient precision in Quantum Espresso?

Thanks,

Eric Hermes
Postdoctoral Researcher
Sandia National Labs

--

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20190417/849d7b63/attachment.html>


More information about the users mailing list