Temperature fluctuations in NVT simulation

Dear lammps user,

I am trying to simulate two dimensional Lennard Jone fluid whose density is 0.3 with number of particles 256, at temperature 0.6 . I simulate the system using NVT simulation where the Nose-Hoover thermostat is used. After doing the simulation using the below lammps script, I plotted the Temperature versus time which can be seen the attached file. My professor told me such fluctuations are not acceptable at all for my system, and the fact that the system has 256 particles does NOT mean that the temperature fluctuations should be like the one in the attached file, which was produced by lammps. I have been told to work on reducing the fluctuations up to smaller values.

Therefore, apart from the drag factor in the fix nvt command, is there anyway to more reduce the fluctuation ?.

I could not find commands that control the heat-bath mass value (Q) that appears in the extended Lagrangian developed by the work of Nose and Hoover. Usually changing Q leads to change in the temperature fluctuation. Does lammps have a command to change Q?

My past questions to the mail list were about NVE simulation. I just like to mention this hint in case you feel I am repeating the questions.

Much thanks in advance.

nvt.png

Dear lammps user,

[…]

Therefore, apart from the drag factor in the fix nvt command, is there anyway to more reduce the fluctuation ?.

The temperature fluctuations are due to the potential, particle masses, temperature, and number of particles. I don’t consider it a good idea to arbitrarily reduce fluctuations, as this would mean a change in sampling and you would no longer be simulating the desired NVT ensemble. For a given system, the only way to reduce (global) fluctuations without changing the physics is to increase the system size.

The “drag” flag is a ‘hack’ to stabilize simulations of incompressible systems.

Perhaps there is a miscommunication between your adviser and you.

I could not find commands that control the heat-bath mass value (Q) that appears in the extended Lagrangian developed by the work of Nose and Hoover. Usually changing Q leads to change in the temperature fluctuation. Does lammps have a command to change Q?

The mass of the fictitious degree of freedom is implicitly set through the temperature damping parameter Tdamp.
you can look up the relation in the source code. https://github.com/lammps/lammps/blob/stable_3Mar2020/src/fix_nh.cpp#L786

Axel.

Thanks a lot Shafat and Axel,

Axel, according to the link you sent which contains the Nose-Hoover algorithm, I could find the following relations:

  1. eta_mass[0] = tdof * boltz * t_target / (t_freq*t_freq);

  2. eta_mass[ich] = boltz * t_target / (t_freq*t_freq);

Therefore, I understood the relation between Q (the mass of the factious degree of freedom in Nose Lagrangian) and the Tdamp parameter in “fix nvt commands” in lammps as following:

Q = Boltzmann_constant * target temperature / (Tdamp*Tdamp)

I feel my relation is not correct. Could you please help me figure out the correct relation ?

I am asking about this because I need to plot the temperature at several Q values given to me. Therefore I need to calculate the values of Tdamp.

Regards

Mohammed

Please ask your adviser for help. I have no time to do your (or his/her) work for you. I can point you into the right direction, but the legwork is something that you have to do.

Axel.