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

--

_______________________________________________
Quantum Espresso is supported by MaX (www.max-centre.eu/quantum-espresso)
users mailing list [email protected]
https://lists.quantum-espresso.org/mailman/listinfo/users

Reply via email to