I'll let Axel answer this, as fix smd is his code.
Steve
> Dear LAMMPS users,
>
> I have a question about the PMF calculation in SMD. With "fix smd", it can
> give us the accumulated PMF (the sum of pulling forces times displacement).
> If I use this command working on one rigid group in my NVT system with
> constant steering velocity, what's the relation between the output PMF and
> the PMF of the system people usually talk about?
here is what is accumulated into pmf:
pmf += (fx*xn + fy*yn + fz*zn) * v_smd * update->dt;
so it is the integral over time of the force projected
on the pulling/pushing direction. this is done in every
step so a sophisticated numerical integration is not needed.
nevertheless, it is provided primarily for convenience
and debugging. you have access to all kinds of properties
computed during the SMD step and print them to a file and
post-process them as you wish.
> I read Park's paper (J. Chem. Phys. 2004) mentioned in the manual, and found
> that it essentially need the exponential average estimator of <exp(-W/KBT)>
> or the cumulant estimator to get the estimate of PMF(W is the work done on
> the system). Also, they discussed the error of the PMF calculation based on
> different number of trajectories and different sized samplings. Then what
> about here in "fix smd"? Or there is any approximation or something else?
fix smd simply implements the pushing/pulling. the sampling
issues are independent from how you compute the PMF.
of course the pulling/pushing speed matters as well as
the spring constant and how many (uncorrelated!!!) steering
calculations you do.
thus, for any trivial reaction coordinate, umbrella integration
via fix spring might be a competitive alternative, as it is
easy to adapt the sampling for each bin.
i've been working on cleaning up and simplifying the code
last fall, but then could not complete the work since. with
a bit of luck, i might get to it this summer.
in the mean time, just think of it as being implemented pretty
much straight from the paper and don't get confused by r0.
it has to be set to 0.0 for practically anything that i have
come across and will be eliminated in the next version of
fix smd, since it causes more confusion than anything else.
cheers,
axel.