[gmx-developers] energy difference for lambda in free energy calculations

Mirabzadeh, Christopher (mira2978@vandals.uidaho.edu) mira2978 at vandals.uidaho.edu
Mon Apr 24 18:20:27 CEST 2017

I attempted to respond but I got an error that the message was too large so I'm re-sending.

This was very helpful, thank you. It confirms that I was on the right path. I’m storing the averages of the enerd->term[F_DVDL+i] terms in a 2d array, we’ll call it dfhist->dfavg[efptNR][nlim]. I’ve become very intimate with Gromacs expanded ensemble code so, as you know, efptNR is the number of possible lambda types (coul, vdw, etc…) and nlim is the number of lambdas defined in the mdp file. AIM uses the average of dU/dL in the acceptance criteria, so I am storing the individual type (like dU[Coul]/dL) by lambda index. Does that make sense?

You are correct in your assessment that I am only accessing the arrays inside the ExpandedEnsembleDynamics methods. I’ve simply added AIM as part of the  expand->elmcmove enum where it is used inside the ChooseNewLambda() method to choose lamnew.

When you say

The potential energy differences are calculated from: from enerd->enerpart_lambda[i+1]-enerd->enerpart_lambda[0]

If you are only interested in the neighboring differences, the can be calculated from enerd->enerpart_lambda[i+1]- enerd->enerpart_lambda[i] (as the [0] component cancels out).

Do you mean the difference as in U(lamnew, x) - U(fep_state,x) or do you mean the differences of the potential energy at each lambda index?

Thank you,


Christopher A. Mirabzadeh
Research Assistant/Physics Instructor
Physics Department
University of Idaho, Moscow
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20170424/6426c00d/attachment.html>

More information about the gromacs.org_gmx-developers mailing list