Total energy decreases in Verlet MD
Dear Siesta users, I am applying the Verlet MD technique to melt/quench a particular material. My plan is to increase the temperature step by step until it melts, followed by lowering the temperature as done by Vanderbilt et al. PRB 71, 85107 (2005). However, I am facing two problems:
1) After thermalizing for several 1 fs steps, I want to restart the run with a different temperature, but do not know how to do it. When I set MD.UseSaveXV .true. siesta reads not only the final coordinates and velocities of the previous run, but also the last temperature. Is there a way for the code to read only the coordinates and velocities, but use the new temperature? Or is there a better way to do the temperature ramp up and ramp down?
2) During thermalization, the total energy decreases. Slowly but surely, while I expect it to oscillate around some mean value. Besides, the temperature value set initially drops considerably instead of oscillating around the initial value. I tried to control the total energy by decreasing the time step from 1 fs to 0.5 fs and to 0.1 fs, but it continues to decrease. For example, with 1 fs time steps the first values look like the following:
# Step T (K) E_KS (eV) E_tot (eV) Vol (A^3) P (kBar)
1 1000.00 -101174.81543 -101145.99156 2826.428 -68.187
2 988.79 -101174.48275 -101145.98215 2826.428 -68.555
3 960.04 -101173.63710 -101145.96505 2826.428 -68.484
4 917.75 -101172.40125 -101145.94819 2826.428 -67.982
5 866.49 -101170.90948 -101145.93396 2826.428 -67.081
6 810.43 -101169.28186 -101145.92212 2826.428 -65.862
and the final steps look like
97 522.07 -101160.17711 -101145.12892 2826.428 -28.932
98 525.26 -101160.25867 -101145.11875 2826.428 -29.843
99 526.97 -101160.29807 -101145.10866 2826.428 -30.633
100 526.83 -101160.28259 -101145.09740 2826.428 -31.274
The temperature initially set to 1000 K ended up in 527 K while the total energy dropped by 0.1 eV over 100 iterations. I restated the same job and run it for another 100 steps 1 fs long:
# Step T (K) E_KS (eV) E_tot (eV) Vol (A^3) P (kBar)
1 524.56 -101160.21196 -101145.09221 2826.428 -31.914
2 520.34 -101160.09001 -101145.09170 2826.428 -32.436
3 514.79 -101159.92868 -101145.09036 2826.428 -32.926
4 508.49 -101159.74571 -101145.08909 2826.428 -33.230
5 502.20 -101159.56221 -101145.08695 2826.428 -33.566
6 496.87 -101159.40571 -101145.08393 2826.428 -33.935
.....
98 569.40 -101161.35197 -101144.93956 2826.428 -40.623
99 575.08 -101161.51491 -101144.93888 2826.428 -40.882
100 578.57 -101161.61351 -101144.93697 2826.428 -40.870
In this second run the temperature oscillates up and down around 524 K, the initial value, but the total energy drops by another 0.15 eV. Finally I continue the same calculation for another 20 steps but reduced the step size to 0.5 fs and got the following:
# Step T (K) E_KS (eV) E_tot (eV) Vol (A^3) P (kBar)
1 578.57 -101161.72497 -101145.04844 2826.428 -40.962
2 576.72 -101161.67117 -101145.04774 2826.428 -40.854
3 574.30 -101161.60041 -101145.04691 2826.428 -40.732
4 571.36 -101161.51481 -101145.04603 2826.428 -40.631
.....
18 521.36 -101160.05932 -101145.03159 2826.428 -38.760
19 519.46 -101160.00387 -101145.03095 2826.428 -38.832
20 517.94 -101159.95915 -101145.03024 2826.428 -38.898
In this case the temperature does not oscillate but decreases by about 60 K while the total energy decreases in every step, lowering by about 0.02 eV in 20 steps. I tried with steps 0.1 fs long and the results were similar: the temperature and the total energy decrease.
Any idea (1) why the total energy drops no matter how long the step size is; (2) why the temperature drops so much with respect to its initial value; (3) how to modify the temperature from run to run while using the coordinates/
Thanks a lot!
Leo
Question information
- Language:
- English Edit question
- Status:
- Expired
- For:
- Siesta Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply: