Troubleshooting Minima-Hopping
Introduction
In this section we would like to discuss how to troubleshoot a few commonly faced problems during a Minima Hopping run. As Minima Hopping relies on BigDFT for energy and force calculation and also for the geometry optimizations, very often it is found that the Minima Hopping is not performing well because of problems like poor convergence in wavefunction optimization or geometry optimizations in BigDFT.
In those cases one should try to solve the problem by adjusting BigDFT input parameters or input geometry configuration in poscur.xyz
. Users are advised to refer BigDFT manual for more detail. In this section we will discuss only the problems which arise only from Minima Hopping code.
Problem 1: Minima Hopping is not finding new Minima
This is the most common problem one is expected to face at the start of a new Minima Hopping run. Depending on the system under study and the computing resources, One may have to wait several hours after starting the calculation to analyze any information about the status of the run. To know how to make an input set for efficient run follow the tutorial carefully.
To troubleshoot this problem we will check the global.mon
file and screen output
. To understand the global.mon
file please see the tutorial presentation.
Now we will discuss different possible scenarios.
Scenario 1:
global.mon
file looks like the following.
maia:~/test >tail global.mon 0. 1.58431372956184E+01 4.459E-03 4.139E-03 1. 1.58894746509521E+01 4.459E-03 3.762E-03 0.00 0.00 1.00 T R 1 2. 1.58608541045569E+01 4.905E-03 3.420E-03 0.00 0.00 1.00 T R 1 3. 1.58555734322905E+01 5.396E-03 3.109E-03 0.00 0.00 1.00 T R 1 4. 1.58500896035491E+01 5.935E-03 2.827E-03 0.00 0.00 1.00 T R 1 5. 1.58519955699513E+01 6.529E-03 2.570E-03 0.00 0.00 1.00 T R 1This means that the program visited new minima but all of them were rejected because they were too high in energy with respect to the starting configuration. The acceptance of a new minimum which is higher in energy than the present one is controlled by the
ediff
parameter, which is written in the third column. One can see the program is automatically increasing the ediff
. The
Fourth column is ekinetic
: The kinetic energy of the MD simulation. The present situation arises mainly due to a High ekinetic
input value in ioput
file.
One can see that the program is automatically reducing the ekinetic
value and if the value of ekinetic
is not too high, the program can adjust it by itself. But in case the input value was too high,
you should try starting a new run with lower ekinetic
value.
Scenario 2:
global.mon
file looks like the following.
maia:~/test >tail global.mon 30. 7.22850844672024E+00 2.727E-02 4.139E-03 0.20 0.10 0.70 S 31. 7.22850845241805E+00 2.727E-02 4.552E-03 0.23 0.10 0.68 S 32. 7.22850834576138E+00 2.727E-02 5.008E-03 0.25 0.09 0.66 S 33. 7.22850839261770E+00 2.727E-02 5.508E-03 0.27 0.09 0.64 SThis means that the same minimum is visited again and again. This is because of a low
ekinetic
value. The program will try to increase the kinetic energy automatically but in some case one may have to increase the value of
ekinetic
in the ioput
file manually.
Problem 2: Minima Hopping Found many minima but most of them are very close in energy and the corresponding poslow*****.xyz
files are similar looking:
In such cases the earr.dat
file looks like the following.
40 50 # of minima already found, # of minima to be found in consecutive run -0.74000000000000000E+03 eref 0.50000000000000001E-03 accur 0.82085000000000008E+01 2.0000000000E+00 0.82100000000000009E+01 1.0000000000E+00 0.82110000000000003E+01 3.0000000000E+00 0.82115000000000009E+01 2.0000000000E+00 0.82119999999999997E+01 2.0000000000E+00 0.82125000000000004E+01 1.0000000000E+00 0.82130000000000010E+01 1.0000000000E+00 0.82134999999999998E+01 1.0000000000E+00 0.82140000000000004E+01 1.0000000000E+00 0.82145000000000010E+01 3.0000000000E+00 0.82149999999999999E+01 1.0000000000E+00 0.82155000000000005E+01 1.0000000000E+00 0.82159999999999993E+01 2.0000000000E+00 0.82164999999999999E+01 1.0000000000E+00 0.82170000000000005E+01 1.0000000000E+00 0.82174999999999994E+01 2.0000000000E+00 0.82180000000000000E+01 1.0000000000E+00 0.82185000000000006E+01 1.0000000000E+00 0.82189999999999994E+01 1.0000000000E+00 0.82195000000000000E+01 5.0000000000E+00 0.82200000000000006E+01 2.0000000000E+00 0.82204999999999995E+01 2.0000000000E+00 0.82210000000000001E+01 3.0000000000E+00 0.82215000000000007E+01 1.0000000000E+00 0.82219999999999995E+01 2.0000000000E+00 0.82225000000000001E+01 2.0000000000E+00 0.82240000000000002E+01 1.0000000000E+00In this
earr.dat
file we can see the program found several minima which differ in energy by the value of accur
in the third line of the file. In these cases one should check the corresponding
poslow*****.xyz
files visually by softwares file V_Sim to confirm if they are really structurally different or not. If one see that the structures are same or differs only by rotation angles then it suggest that
accuracy which was set for this calculation by accur
in the earr.dat
file is not compatible with the actual accuracy in total energy calculation by BigDFT. To say more explicitly, The accuracy set by accur
parameter by which minima hopping program is distinguishing between two structures are lower in value than the actual accuracy
of the BigDFT energy calculation. In the present case the solution is to increase the value of accur
or to prepare a input.dft
file which is able to produce result
in higher accuracy than the present expected accuracy in energy
. Please follow the tutorial and presentation to adjust the accuracy of the program correctly.