-
Notifications
You must be signed in to change notification settings - Fork 63
More general Beutler soft-core implementation #227
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
base: master
Are you sure you want to change the base?
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #227 +/- ##
===========================================
- Coverage 68.10% 26.36% -41.74%
===========================================
Files 43 45 +2
Lines 8816 9091 +275
===========================================
- Hits 6004 2397 -3607
- Misses 2812 6694 +3882 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Thanks for this. We are still working out the best way to implement alchemical features. Currently we use a dual topology approach where atoms can be turned on or off with λ but can't be modified from one atom to another. If we do allow a single topology approach where atoms can change from one type to another this could be useful. In that case we would probably want to store the σ/ϵ parameters from each state in the atom.
That is indeed a bug and should be fixed. |
|
Alright, thanks for the reply. I would be interested in a single topology approach allowing for interpolation of atoms for alchemical transformations for the purpose of free energy calculations. This should be general enough to allow for on/off switching as well as transformations of the interactions. I am not sure how much work is required to put this into a general framework, but in my (admittedly quite minimal) experiments no modifications to other parts of the simulation were necessary. Do you have any concrete plans for the future whether and if yes how you would like to see this implemented? |
|
Not much concrete yet, but it would probably require a new atom type (to store the σ/ϵ at each end point) and consideration of how e.g. bond parameters move smoothly between the end points. |
I have a proposition for an alternative, more general implementation of the Beutler soft-core Lennard-Jones potential. The main difference to the previous version is that this implementation allows for the interpolation between two arbitrary soft-core Lennard-Jones potentials (or no interaction), with the freedom of choice which state is at which value of lambda. It also uses the standard Lennard-Jones force and potential functions internally, so any changes to these (e.g. performance-wise) will automatically be integrated into this soft-core formulation.
The implementation follows the formulation of the one in the GROMACS documentation.
This implementation has an additional factor of lambda in both the force and the potential that the old implementation was missing, I don't know whether that was intentional or a bug but I have adjusted the relevant tests.
This implementation also features a function$\frac{\partial H}{\partial\lambda}$ for thermodynamic integration. For now this is only accessible via custom logger or manually, but once there are more of these functions implemented for other soft-core potentials it might be worth adding standard support for them.
∂H_∂λwhich computes the analytical derivative of the potential with respect to lambda