Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hybr solver fails, then seeds adaptive solver with bad starting f_i #544

Open
SimonBoothroyd opened this issue Nov 11, 2024 · 0 comments
Open

Comments

@SimonBoothroyd
Copy link

SimonBoothroyd commented Nov 11, 2024

I've started to see some strange cases where MBAR (in pymbar 4.0) fails to converge (i.e. both the hybr and adaptive solvers in succesion), while UWHAM seems to converge ok and indicates reasonable overlap between states. In such cases, it seems that pymbar <4.0 also runs to convergence.

I have attached a set of u_kn and n_k from the gas phase leg of a hydration free energy calculation that exhibits this issue.

repro.zip

The issue can then be observed by running:

import numpy
import pymbar

print("PYMBAR", pymbar.__version__, flush=True)

u_kn = numpy.load("u_kn.npy")
n_k = numpy.load("n_k.npy")

mbar = pymbar.MBAR(u_kn, n_k)
print(mbar.W_nk)

it looks like the issue in 4.x is due to the default hybr solver basically failing to find a solution and returning non-sensical f_k_nonzero, which then seeds the fallback adaptive solver with with a very wrong start which then propagates through. If I instead just force MBAR to start with the adaptive solver things seem to converge ok.

In general, it would be good to throw optionally throw an error if the solvers fail to converge, or at least have an attribute on MBAR that can be queried for if the solver succeeded.

@SimonBoothroyd SimonBoothroyd changed the title hybr solver fails, then seeds adaptive solver with bad starting f_ij hybr solver fails, then seeds adaptive solver with bad starting f_i Nov 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant