# LINCS error: Nose-Hoover vs V-rescale

**URL:** <https://gromacs.bioexcel.eu/t/lincs-error-nose-hoover-vs-v-rescale/91>\
**Category:** User discussions\
**Created:** [May 8, 2020, 11:14am UTC](https://gromacs.bioexcel.eu/t/lincs-error-nose-hoover-vs-v-rescale/91 "2020-05-08T11:14:33Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jinyoung](https://avatars.discourse-cdn.com/v4/letter/j/3be4f8/32.png) [@Jinyoung](https://gromacs.bioexcel.eu/u/Jinyoung)\
**Post date:** [May 8, 2020, 11:14am UTC](https://gromacs.bioexcel.eu/t/lincs-error-nose-hoover-vs-v-rescale/91/1 "2020-05-08T11:14:33Z")

</div>

GROMACS version: 2019.4  
GROMACS modification: Yes/No

Dear Gromacs users,

I simulated the Protein-ligand complex. When I run NVT simulation with t-coupling = V-rescale, there is no error. But when I used the t-coupling = Nose-Hoover, error occurred below:  
…  
Step 2161, time 4.322 (ps) LINCS WARNING  
relative constraint deviation after LINCS:  
rms 0.301654, max 14.453189 (between atoms 3935 and 3936)  
bonds that rotated more than 30 degrees:  
atom 1 atom 2 angle previous, current, constraint length  
3871 3872 69.0 0.1630 0.1171 0.1111  
3871 3873 77.3 0.9858 0.1127 0.1111  
3916 3917 90.0 0.0997 0.2134 0.0997  
3933 3934 32.9 0.0997 0.0997 0.0997  
3935 3936 90.0 3.0620 1.6689 0.1080  
3941 3943 64.0 0.1108 0.1116 0.1111  
Wrote pdb files with previous and current coordinates  
Step 2162, time 4.324 (ps) LINCS WARNING  
relative constraint deviation after LINCS:  
rms 1.464865, max 70.247780 (between atoms 3935 and 3936)  
bonds that rotated more than 30 degrees:  
atom 1 atom 2 angle previous, current, constraint length  
3871 3873 90.0 0.1172 0.6335 0.1111  
3916 3917 90.0 0.2219 0.1085 0.0997  
3933 3934 55.6 0.1037 0.0997 0.0997  
3935 3936 90.0 1.7358 7.6948 0.1080  
3941 3943 65.5 0.1160 0.1112 0.1111  
Wrote pdb files with previous and current coordinates  
Step 2163, time 4.326 (ps) LINCS WARNING  
relative constraint deviation after LINCS:  
rms 2.634528, max 125.905602 (between atoms 3916 and 3917)  
bonds that rotated more than 30 degrees:  
atom 1 atom 2 angle previous, current, constraint length  
3871 3872 90.0 0.1118 0.1570 0.1111  
3871 3873 64.9 0.6335 0.1071 0.1111  
3916 3917 145.2 0.1085 12.6525 0.0997  
3933 3934 47.7 0.0997 0.0997 0.0997  
3935 3936 90.0 7.6948 1.5598 0.1080  
3941 3943 67.7 0.1112 0.1108 0.1111  
step 2163: One or more water molecules can not be settled.  
Check for bad contacts and/or reduce the timestep if appropriate

When I tried to find whether there is clash in system with using chimera ‘Find Clashes/Contacts’, there are no contact.  
But I found that the error-occuring atoms are hydrogens and its neighbors.

Any advice on this would be greatly appreciated, thanks!

---

<div class="post-metadata">

**Author:** ![cblau](https://dub1.discourse-cdn.com/flex017/user_avatar/gromacs.bioexcel.eu/cblau/32/5_2.png) [@cblau](https://gromacs.bioexcel.eu/u/cblau)\
**Post date:** [May 8, 2020, 12:18pm UTC](https://gromacs.bioexcel.eu/t/lincs-error-nose-hoover-vs-v-rescale/91/2 "2020-05-08T12:18:11Z")

</div>

Hi Jinyoung,

This is not unusual.

In short - the v-rescale thermostat is more robust than Nosé-Hoover.

The long answer:

The reason `Nosé-Hoover` crashes in systems that are out of equilibrium is that it is coupled to a meta-variable that describes temperature fluctuations with an external oscillator that makes sure that you get the correct Temperature oscillations for your system size. If you start in a not so low energy configuration, atoms might speed up quite a bit, because they have a lot of potential energy they can convert into kinetic energy. To counterbalance this, the thermostat scales down the temperature. At the same time, the thermostat has used the quite high temperature of the system at this step to update the meta-variable oscillation. This high temperature in comparison to the reference temperature results in a drastic change in the meta-temperature variable. In the next step, velocities might be scaled to a very low value, in an over-correction of the meta-variable that controls the temperature with Nosé-Hoover temperature coupling. Now, the temperature is too cold and the thermostat oscillates upwards again to a reference temperature that now is much higher than the reference temperature - this is where velocities might be scaled up suddenly and this is where the simulation is most likely to crash.

`v-rescale` in contrast, does not couple to this external oscillator to get the temperature **distribution** right, but uses a draw from a probability distribution to get the right velocities. It’s much more stable for this reason, because additional energy is directly dissipated and is not stored in an external oscillator.

I would personally recommend to use v-rescale for almost all cases. It’s correct, it’s robust and even the implementation is easier then Nosé-Hoover.

---

<div class="post-metadata">

**Author:** ![Jinyoung](https://avatars.discourse-cdn.com/v4/letter/j/3be4f8/32.png) [@Jinyoung](https://gromacs.bioexcel.eu/u/Jinyoung)\
**Post date:** [May 10, 2020, 11:10am UTC](https://gromacs.bioexcel.eu/t/lincs-error-nose-hoover-vs-v-rescale/91/3 "2020-05-10T11:10:15Z")

</div>

Thank you for your reply
