Page 1 of 1

Can we do nonlinear interpolation?

Posted: Sat Apr 23, 2022 2:04 pm
by yudeng
Dear Prof. Henkelman,

I have a question. When we perform NEB interpolation, in addition to giving the initial and final states, can we give a predetermined NEB path by giving some intermediate images, and then perform average interpolation based on this? And is there a relevant script?

Thank you very much!

Re: Can we do nonlinear interpolation?

Posted: Sat Apr 23, 2022 6:10 pm
by graeme
Yes, absolutely! Prof. Hannes Jonsson's group developed a very nice method to interpolate in the space of bond distances, which can be much better than in Cartesian space. The IDPP method is available in ASE and our VTSTscripts. If you use our nebmake.py script, it will use the IDPP method by default.

Re: Can we do nonlinear interpolation?

Posted: Tue Sep 20, 2022 1:42 am
by szygmunt
Prof. Henkelman, I used the nebmake.py script to generate an initial NEB pathway for a C-H bond breaking reaction in propane using a small transition metal cluster as a catalyst. I found to my surprise that the pathway generated by nebmake.py was identical to the pathway generated by the nebmake.pl script. This does not make sense to me, since the IDPP method should generate a different pathway than the simple linear interpolation implemented in nebmake.pl. I am attaching the POSCAR_initial and POSCAR_final files, and I generated the pathway for 5 movable images. Can you help me understand what is going on here?

Thanks!

Re: Can we do nonlinear interpolation?

Posted: Tue Sep 20, 2022 2:51 am
by graeme
I will take a closer look tomorrow, but my guess is that the linear interpolation is a minimum for the IDPP method.

Re: Can we do nonlinear interpolation?

Posted: Tue Sep 20, 2022 2:57 am
by szygmunt
That is certainly a possibility, but I thought it was unlikely to be true for a bond-breaking reaction like this. Please let me know what you find out, and thanks for checking!

Re: Can we do nonlinear interpolation?

Posted: Tue Sep 20, 2022 8:15 pm
by graeme
Ok, I've looked into this and the IDPP force is lower than the default convergence of 0.05 eV/Ang even with the initial linear path. If I lower that convergence force, the IDPP path changes a bit, but not significantly. I think it is all working properly.

Re: Can we do nonlinear interpolation?

Posted: Wed Sep 21, 2022 5:46 am
by szygmunt
Thanks for checking. I just wanted to make sure that the nebmake.py script was working correctly. I am a little surprised that the IDPP algorithm results in the same pathway as a simple linear interpolation, but my intuition has been wrong many times in the past! I am doing a study to determine the minimum number of movable images (N) that will yield a converged CI-NEB pathway for this reaction. Using the standard linear interpolation as a starting point, I have converged results (EDIFFG = -1E-02) for N = 15, 13, 11, 9, and 7 that are in substantial agreement, but for N=5 I have been having problems trying to obtain a converged CI-NEB pathway. I have used IOPT = 3 with CI turned on from the very beginning of the calculation for all values of N, but this seems to fail for N=5. I also tried to run 50 iterations without CI and then turn CI on, but this did not work either. I have even constructed an initial pathway for N=5 using every other image from the converged N=11 pathway, but surprisingly this does not converge either. Would you suggest I change the optimizer method (perhaps using the FIRE algorithm?), or is it possible that there is a minimum N value for this NEB pathway and it is N=5?

Thanks for any advice you can give!

Re: Can we do nonlinear interpolation?

Posted: Thu Sep 22, 2022 6:55 pm
by graeme
First, I want to clarify that IDPP path will formally be different from the linear path. The issue is that we have a default fmax convergence criterion for the IDPP method so that if the bond lengths roughly change linearly in the linear path, the IDPP method can converge without changing the path. In the limit of fmax->0, the IDPP path will always be different from the linear path (except in some highly symmetric case).

For general convergence problems, I can take a look at a .tar.gz file of the calculation. I should be able to determine if the initial path is a problem or if it is related to something else.