[gmx-developers] Drift in Conserved-Energy with Nose-Hoover thermostat
Bernhard
b.reuter at uni-kassel.de
Wed Jul 15 17:48:04 CEST 2015
I mean a drift of the total energy in NVE - while with Nose-Hoover the
drift is in the Conserved-Energy quantity of g_energy (the total energy
shows no drift with Noose-Hoover...).
Am 15/07/15 um 17:38 schrieb Bernhard:
> I also did a NVE simulation with the same parameters, system and
> starting conditions but with manually set rlist=1.012nm (since
> verlet-buffer-drift doesnt work in NVE):
> There I also got a linear drift (but smaller) of 0.78 kJ/mol/ps
> (3.436*10^-5 kJ/mol/ps per atom).
> For comparison reasons I also did a NVT Nose-Hoover Simulation with
> manually set rlist=1.012nm:
> There I got a comparable linear drift of 0.67 kJ/mol/ps (2.94*10^-5
> kJ/mol/ps per atom).
> So no differences between NVE and NVT so far in my opinion...
>
> Best,
> Bernhard
>
> Am 15/07/15 um 17:10 schrieb Shirts, Michael R. (mrs5pt):
>> The conserved quantity in nose-hoover is not quite as good as the
>> conserved energy, which should have no drift at all. For NH, the
>> conserved quantity should drift as a random Gaussian process with mean
>> zero (i.e. go with sqrt(N)). It shouldn't be drifting linearly.
>>
>> I would check to see if your system conserved energy when run with NVE
>> (use the endpoint of the NPT simulation). It's easier to diagnose any
>> problems with an NVE simulation, which should have virtually no
>> drift, vs
>> a NVT simulation, which has random noise drift. Odds are, if there is a
>> problem with the NVT simulation, it will also show up in the NVE
>> simulation if only the thermostat is removed.
>>
>> Also, consider looking at http://pubs.acs.org/doi/abs/10.1021/ct300688p
>> for tests of whether the ensemble generated is correct.
>>
>> Best,
>> ~~~~~~~~~~~~
>> Michael Shirts
>> Associate Professor
>> Department of Chemical Engineering
>> University of Virginia
>> michael.shirts at virginia.edu
>> (434) 243-1821
>>
>>
>>
>> On 7/15/15, 10:58 AM, "Bernhard" <b.reuter at uni-kassel.de> wrote:
>>
>>> Dear Gromacs Users and Developers,
>>>
>>> I have a problem regarding energy conservation in my 10ns NVT
>>> protein+water+ions (22765 atoms) production (minimization and
>>> equilibration for more than 15ns was carried out in NPT before)
>>> simulations using a Nose-Hoover thermostat (tau=2.5ps).
>>> On first glance everything looks fine - the potential, kinetic and
>>> total
>>> energy are nearly perfectly constant (with normal fluctuations) - but
>>> when I checked the "Conserved-Energy" quantity that g_energy outputs I
>>> had to recognize a significant (nearly perfectly) linear downward drift
>>> of this "to-be-conserved" quantity of around 1.7 kJ/mol/ps (7.48*10^-5
>>> kJ/mol/ps per atom).
>>> This appears somehow disturbing to me since I would expect that this
>>> Conserved-Energy is the conserved energy of the extended Nose-Hoover
>>> Hamiltonian - which should by definition be conserved.
>>>
>>> If it would be a drift caused by normal round-off error due to single
>>> precision I would expect it to grow with Sqrt(N) and not with N
>>> (linear)
>>> (N=number of steps).
>>> So I would like to know if this is a normal behaviour and also what
>>> could cause this (buffer size, precision, constraints etc)?
>>> Also I would like to know, if I am correct with my guess that the
>>> "Conserved-Energy" quantity is in this case the energy of the extended
>>> Nose-Hoover Hamiltonian?
>>> The .mdp file is atatched (don't be confused about rlist=1 - since Im
>>> using the Verlet-scheme the verlet-buffer-drift option should be by
>>> default active and determine the rlist value (Verlet buffer-size)
>>> automatically).
>>>
>>> Best regards,
>>> Bernhard
>>>
>>> ; Run parameters
>>> integrator = md ; leap-frog integrator
>>> nsteps = 10000000 ; 10000 ps = 10 ns
>>> dt = 0.001 ; 1 fs
>>> ; Output control
>>> nstxout = 5000 ; save coordinates every ps
>>> nstvout = 5000 ; save velocities every ps
>>> nstxtcout = 1000 ; xtc compressed trajectory output every ps
>>> nstenergy = 1000 ; save energies every ps
>>> nstlog = 5000 ; update log file every ps
>>> ; Bond parameters
>>> continuation = yes ; continue from NPT
>>> constraint_algorithm = lincs ; holonomic constraints
>>> constraints = h-bonds ; all bonds (even heavy atom-H bonds)
>>> constrained
>>> lincs_iter = 1 ; accuracy of LINCS
>>> lincs_order = 4 ; also related to accuracy
>>> ; Neighborsearching
>>> cutoff-scheme = Verlet ; Verlet cutoff-scheme instead of
>>> group-scheme (no charge-groups used)
>>> ns_type = grid ; search neighboring grid cells
>>> nstlist = 10 ; 10 fs
>>> rlist = 1.0 ; short-range neighborlist cutoff (in nm)
>>> rcoulomb = 1.0 ; short-range electrostatic cutoff (in nm)
>>> rvdw = 1.0 ; short-range van der Waals cutoff (in nm)
>>> ; Electrostatics
>>> coulombtype = PME ; Particle Mesh Ewald for long-range
>>> electrostatics
>>> pme_order = 4 ; cubic interpolation
>>> fourierspacing = 0.12 ; grid spacing for FFT
>>> ; Temperature coupling is on
>>> tcoupl = nose-hoover ; modified Berendsen thermostat
>>> tc-grps = Protein Non-Protein ; two coupling groups - more
>>> accurate
>>> tau_t = 2.5 2.5 ; time constant, in ps
>>> ref_t = 300 300 ; reference temperature, one for each
>>> group, in K
>>> ; Pressure coupling is off
>>> pcoupl = no ; no pressure coupling in NVT
>>> ; Periodic boundary conditions
>>> pbc = xyz ; 3-D PBC
>>> ; Dispersion correction
>>> DispCorr = EnerPres ; account for cut-off vdW scheme
>>> ; Velocity generation
>>> gen_vel = no ; don¹t assign velocities from Maxwell
>>> distribution
>>>
>>> --
>>> Gromacs Developers mailing list
>>>
>>> * Please search the archive at
>>> http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List before
>>> posting!
>>>
>>> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>>>
>>> * For (un)subscribe requests visit
>>> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
>>> or send a mail to gmx-developers-request at gromacs.org.
>
More information about the gromacs.org_gmx-developers
mailing list