Question

# How can I reduce temperature oscillation in NVT ensemble simulation of FPMD?

Hi, everyone. I'm a beginner to do First-principle MD for NVT ensemble. The software is VASP. My system is GeTe (128atom - 64Ge+64Te), one phase-change material (semiconductor). However, the temperature oscillation is too much for my case 423K ± 80K. The attachment is the figure for temp oscillation. Is someone familiar with NVT simulation to teach me some methods to reduce the temp oscillation? Appreciate for your help. I'm looking forward to your reply.

14th Nov, 2020
Philip James Hasnip
The University of York
Ilia Pankin this energy drift is almost certainly a consequence of the finite time-step used for the time-integration. A certain amount of energy drift is inevitable, but you should try to keep it small. As a rough guide, try to use a small enough time step that the energy drift is only a few meV/atom/ps.
Also remember that the size of time step you need is related not only to the potential energy surface, but also to the mass of the constituent atoms. If you have lighter atoms, you should expect to have to reduce the time step in order to get accurate dynamics. If you have hydrogen, the time step may have to be very short (a fraction of a femtosecond).
As for your original question about temperature fluctuations, @Dmytro Antypov is correct that it is due to the fundamental statistical mechanics. Remember that what we mean by "temperature" is that the distribution of kinetic energies is drawn from a particular continuous distribution (usually Maxwell-Boltzmann) with that characteristic temperature -- your MD run has a finite number of atoms and samples this distribution randomly, so the actual instantaneous distribution of kinetic energies will not follow the distribution exactly.
2 Recommendations

5th Jun, 2017
Dmytro Antypov
University of Liverpool
The temperature fluctuations of a closed system containing N atoms are proportional to 1/sqrt(N). For a system of 128 atoms 1/sqrt(128)=0.0884 or 8.84%.
With the average temperature being 423K, one would expect its standard deviation to be about 0.0884*423K=37K. This is exactly what is observed in the graph in the opening  post.
This is basic thermodynamics that cannot be changed by adjusting parameters of Nose-Hoover thermostat in the constant NVT ensemble or by switching to the constant NVE ensemble.
You can set SMASS=-1 and NBLOCK=1 in VASP to force velocities to be rescaled every time step to artificially keep the temperature exactly constant. These settings, however, do not produce correct dynamics and are normally used only for equilibration runs.
17 Recommendations

12th Jun, 2015
Andreas Funk
What kind of thermostat are you using?
12th Jun, 2015
Fei Lu
Nanyang Technological University
It is NVT thermostat, sir. Nose- hoover.
For the oscillation, the range is about +/- 10% of the set temperature. I'm not sure what is the key factor for this problem? Some people said one reason is the size of the system, bigger system, smaller oscillation; another one is increase or reduce the temperature gradually to the objective value; final one is to do the geometry optimization to remove the effect of pressure. I've tried them. But the result didn't get better. Hope you can give me some useful suggestions.
1 Recommendation
12th Jun, 2015
Andreas Funk
Personally, I would try and change the chain length of the Nose-Hoover chain of thermostats. Unfortunately, I am no expert with VASP, so I cannot tell you how this can be achieved in VASP. Another option would be to use a different thermostat.
13th Jun, 2015
Fei Lu
Nanyang Technological University
Thanks for your advice. There is only one parameter in VASP to control the frequency of heat exchange with the bath - SMASS. But I've tried to control this parameter to make sure the heat exchange frequency is consistent with the phonon mode of material. But the temperature oscillation seems not to become smaller. Still not sure how to figure it out.
15th Jun, 2015
Yuke Li
The Chinese University of Hong Kong
you can decrease the SMASS.   SMASS=0.01 corresponds to period of  367.5 time steps. T ~ sqrt(SMASS), as the SMASS is smaller, the T is smaller.
1 Recommendation
15th Jun, 2015
Fei Lu
Nanyang Technological University
Hi, Yuke
Thanks for your reply. I've tried SMASS = 0.01, but the temperature oscillation seems very fast and range of oscillation keeps at +/- 10% of the set temperature, not become smaller. I'm afraid if SMASS is so small that the heat exchange frequency will be very high. Finally the system might deviate from the equilibrium state. Have you used this small SMASS before? Will it cause the system to have unreal state?
16th Jun, 2015
Yuke Li
The Chinese University of Hong Kong
please use this command "grep "Nose"  OUTCAR".  You can know the exchange frequency,
5th Feb, 2017
Shilendra Kumar Sharma
Indian Institute of Technology Kanpur
Dear All,
In VASP which parameter fix NVT ensemble and which NVE ? Can we do NPT ensemble calculation in VASP also?
Shilendra
1 Recommendation
5th Jun, 2017
Dmytro Antypov
University of Liverpool
The temperature fluctuations of a closed system containing N atoms are proportional to 1/sqrt(N). For a system of 128 atoms 1/sqrt(128)=0.0884 or 8.84%.
With the average temperature being 423K, one would expect its standard deviation to be about 0.0884*423K=37K. This is exactly what is observed in the graph in the opening  post.
This is basic thermodynamics that cannot be changed by adjusting parameters of Nose-Hoover thermostat in the constant NVT ensemble or by switching to the constant NVE ensemble.
You can set SMASS=-1 and NBLOCK=1 in VASP to force velocities to be rescaled every time step to artificially keep the temperature exactly constant. These settings, however, do not produce correct dynamics and are normally used only for equilibration runs.
17 Recommendations
13th Apr, 2020
Ilia Pankin
Southern Federal University
Dear all,
In my case, I'm doing also NVT simulations by using VASP for metal-exchange zeolites. I'm able to control temperature fluctuations by adjusting an appropriate value for SMASS parameters. However, I have also an undesired gradual shift for the energy of the system along the MD run. For large-scale simulations i.e. around 50000 MD steps the increase in the energy of the system can reach up to few eV. Any ideas what can be the reason for this energy shift and suggestions on how to overcome this problem highly appreciated!!
24th Sep, 2020
Bo Niu
East China University of Science and Technology
Anyone has related references？@all
14th Nov, 2020
Changming Fang
Brunel University London