Open jhenin opened 20 hours ago
Oh! I didn't know colvars had non-linear TI. Is that new?
But yes, our current approach is to manually recalculate the (linear) gradients so we can get error estimates. I'm agnostic as to whether this is the best approach. Is there a way to output the gradients directly from colvars/namd? Then we wouldn't need to mirror any gradient calculations.
In that issue you linked, you mention equilibrium detection, is there a reason we can't use this pymbar functionality (which we use indirectly for subsampling FEP data), or did you have a different method in mind?
Well... I started implementing this, struggled to understand what was already written, and then realized it's already implemented - the exponent is stored in the not-so-transparently-named entry targetFE
. The only part that is missing is handling the "decoupling" option.
In particular, non-linear decoupling that removes the need for explicit, complicated lambda schedules. Functions should take the lambda exponent as extra parameter. This may be a better alternative to https://github.com/Colvars/colvars/pull/753, since the energy derivative can be recomputed from the CV trajectory, if all user parameters are known.