Re: [AMBER] Assigning new velocities from Maxwell-Boltzmann distribution (ntx = 1)

From: German P. Barletta <>
Date: Tue, 11 Aug 2020 20:46:27 -0300

Thank you for your answers. I tried setting the temperature with ptraj but
ran into a new problem.

Taking the 7th frame and assigning new velocities to the whole system and
letting cpptraj know I intend to use SHAKE for all hydrogens:
parm lb3f.prmtop
trajin 7 7
setvelocity ntc 2
trajout a.rst7
Checking everything went ok:
parm lb3f.prmtop
trajin a.rst7
temperature ntc 2 out temp
But the bad news is temp file looks like this:
#Frame    Tdata_00001
      1     213.6664
I checked the source code and *setvelocity* looks fine but *temperature* does
a weird thing:
double Frame::CalcTemperature(AtomMask const& mask, int deg_of_freedom)
const {
double fac = (Constants::GASK_KCAL/2.0) * deg_of_freedom; // Estimate for
 total_KE *= 0.5;
 return total_KE / fac;
If I'm not mistaken, the 2.0 and the 0.5 cancel each other.
Being suspicious of the *temperature* function, I launched a replica from
my *a.rst7* frame without restarting simulation and reading the velocities.
I also set *ntpr = 1* so I could get the temperature after the 1st step.
Sure enough, *pmemd.cuda* agrees with *setvelocity*:
NSTEP =        1   TIME(PS) =       0.002  TEMP(K) =   303.02  PRESS =
So, I think there's a bug in the *temperature* function.
AMBER mailing list
Received on Tue Aug 11 2020 - 17:00:03 PDT
Custom Search