Total energy decreases in Verlet MD

Asked by Leonardo Fonseca

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/velocities from the previous run.

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:
Revision history for this message
Launchpad Janitor (janitor) said :
#1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.

Revision history for this message
Leonardo Fonseca (fonseca65) said :
#2

I ask not to close my question. It is important. I have tried a lot to
solve the problem but could not. I am hoping that someone gives me some
ideas on how to solve it. Thanks!

Em Sex, 6 de jul de 2018 04:58, Launchpad Janitor <
<email address hidden>> escreveu:

> Your question #670350 on Siesta changed:
> https://answers.launchpad.net/siesta/+question/670350
>
> Status: Open => Expired
>
> Launchpad Janitor expired the question:
> This question was expired because it remained in the 'Open' state
> without activity for the last 15 days.
>
> --
> If you're still having this problem, you can reopen your question either
> by replying to this email or by going to the following page and
> entering more information about your problem:
> https://answers.launchpad.net/siesta/+question/670350
>
> You received this question notification because you asked the question.
>

Revision history for this message
Leonardo Fonseca (fonseca65) said :
#3

Dear Siesta developers,

I posted my question regarding the conservation of energy and the lowering of temperature in my Verlet calculations a while ago. I feel that I must be doing something wrong because this is a basic technique. It would help a lot my project if you could offer some advice on how to avoid the problem.

Thanks a lot, Leo

Revision history for this message
Launchpad Janitor (janitor) said :
#4

This question was expired because it remained in the 'Open' state without activity for the last 15 days.