How best to regulate temperature during aMD?

The functionality of OpenMM will (eventually) include everything that one would need to run modern molecular simulation.
POST REPLY
User avatar
lewis martin
Posts: 63
Joined: Tue Mar 06, 2018 8:56 pm

How best to regulate temperature during aMD?

Post by lewis martin » Tue Jul 17, 2018 11:15 pm

Hi all,
I noticed that with the same system (4x4x4nm of water), same boost parameters (both E and alpha), that NAMD and OpenMM give different temperatures. Specifically, the AMDIntegrator results in a temp of about 325K, whereas NAMD stays at 300K. Adding an Andersen thermostat (since i wasn't sure if the AMDIntegrator will regulate temperature by itself) doesn't help, if anything it introduces more temperature fluctuations. For NAMD I used langevin dynamics with a damping coefficient of 1/ps (same damping as the Andersen thermostat in openmm but I realise this is different thermostating).

Should boosting the total potential energy in aMD actually increase the temperature? And should this be rectified with a thermostat?

I have attached a picture of 100ps of aMD in either NAMD or OpenMM-with or without the Anderson thermostat.
Thanks for your time!
lewis
Attachments
output.png
output.png (68.31 KiB) Viewed 243 times

User avatar
lewis martin
Posts: 63
Joined: Tue Mar 06, 2018 8:56 pm

Re: How best to regulate temperature during aMD?

Post by lewis martin » Tue Jul 17, 2018 11:27 pm

HBonds, timestep, parameters/forcefield, cutoff are the same. Pressure control is necessarily different as NAMD has no montecarlo barostat.

NAMD, which I believe uses kcal/mol:

Code: Select all

accelMD         on
accelMDdihe     off
accelMDE        -19120.459
accelMDalpha    23.9006
accelMDFirstStep 0
accelMDOutFreq   1000

OpenMM:

Code: Select all

integrator = AMDIntegrator(0.001*picoseconds, 100*kilojoules/mole, -80000*kilojoules/mole)
...
totalPE = simulation.context.getState(getEnergy=True).getPotentialEnergy()
print("Potential energy: ", totalPE, "Boosted PE: ", integrator.getEffectiveEnergy(totalPE), "Boost only: ", integrator.getEffectiveEnergy(totalPE) - totalPE)
and out of interest, the potential energy (namd output was adjusted to kj/mole). It is higher for OpenMM.
Attachments
boostedPE.png
boostedPE.png (50.79 KiB) Viewed 240 times

User avatar
Peter Eastman
Posts: 2573
Joined: Thu Aug 09, 2007 1:25 pm

Re: How best to regulate temperature during aMD?

Post by Peter Eastman » Mon Jul 23, 2018 2:46 pm

AMDIntegrator doesn't do any temperature regulation, so on its own it won't give a thermal distribution. AndersenThermostat ought to work fine with it. Can you provide a complete example (including input files) that reproduces the problem? Something that runs a simulation with AMDIntegrator and AndersenThermostat and has the temperature come out wrong.

POST REPLY