pele-python / pele

Python energy landscape explorer
Other
95 stars 41 forks source link

Minimizer associated with NEB #145

Closed smcantab closed 8 years ago

smcantab commented 8 years ago

@js850 it seems that the optimizer used by NEB is mylbfgs, but your comment seems to recommend not to:

" scipy.lbfgs_b seems to work with NEB pretty well, but lbfgs_py and mylbfgs tend to fail. If you must use one of those try, e.g. maxErise = 1., maxstep=0.01, tol=1e-2 "

at this line:

https://github.com/pele-python/pele/blob/master/pele/transition_states/_NEB.py#L161

is mylfbgs actually the default? Should I change it to scipy.lbfgs_b? Just looking for ways to make NEB a bit faster, it's very slow at the moment for my application

smcantab commented 8 years ago

98% of the computation time is due to calls to the potential getEnergyGradient, so unless changing minimiser will significantly reduce the number of potential calls, it's not gonna make much difference. I just have to launch the calculations on the gpu cluster when tensorflow is installed by IT. Closing for now, but I am still curious about the comment.

js850 commented 8 years ago

yeah, I can't remember why I wrote that comment, it should probably be removed.

Since the NEB forces are not actually gradients of any potential you wouldn't expect a line search to be effective. So you would really expect the pele lbfgs versions with backtracking linesearch to be superior to scipy lbfgs. But some of those parameters, especially maxErise are probably important. Maybe mylbfgs wasn't working for me with NEB because I didn't have those set properly.

smcantab commented 8 years ago

ok but now it is the default one, and seems to work, so I assume that the parameters are set properly?

On Sun, Jan 31, 2016 at 2:52 PM, Jacob Stevenson notifications@github.com wrote:

yeah, I can't remember why I wrote that comment, it should probably be removed.

Since the NEB forces are not actually gradients of any potential you wouldn't expect a line search to be effective. So you would really expect the pele lbfgs versions with backtracking linesearch to be superior to scipy lbfgs. But some of those parameters, especially maxErise are probably important. Maybe mylbfgs wasn't working for me with NEB because I didn't have those set properly.

— Reply to this email directly or view it on GitHub https://github.com/pele-python/pele/issues/145#issuecomment-177515310.