the problem is that the maximal jumps in energy from changing the number of bands
reach 0.005 eV = 0.01 kcal/mol per atom, and don't converge with large number of bands (up to 35).
I noticed it happens at least for C, O, F, Si, Cl atoms (maybe others).
When calculating atomization energies of larger molecules one can easily get larger errors.
A longer story: i'm trying to reproduce results from DOI: 10.1063/1.1926272.
The article mentions 0.46 kcal/mol agreement between vasp and gaussian PBE results on G2_1 set.
I see strange total energy jumps when changing the number of bands.
This seems to happen only for isolated atoms. I have tested both F and F_h potentials,
with vasp.5.2.11 18Jan11 complex on CentOS5 x86_64 AMD opteron, gfortran 4.1.2, openmpi 1.3.3, acml 4.0.1,
and vasp.5.2.2 15Apr09 complex on CentOS5 x86_64 Intel Xeon, ifort 11.1.072, openmpi 1.3.3, acml 4.4.0,
run in parallel on 4 or 8 cores, and in serial.
Both executables give the same overall behaviour, with few exceptions when energies differ.
This is illustrated by the results below for F_h, with several eigensolvers available in vasp
and with LDIAG = .TRUE. or .FALSE.
Run the example with run.sh (the whole takes ~2 days, so check just few numbers of bands)
and extract results with results.sh. Relevant vasp input files attached.
The question is: do you see the same behaviour on your vasp installations?
If so, what would be the recommended way of calculating energies of atoms in vasp?
Please attach INCAR.
Best regards
Code: Select all
INCAR?test
?SIGMA?=?0.000000
?NELECT?=?7.000000
?EDIFF?=?1.00e-08
?PREC?=?high
?NBANDS?=?15
?ISMEAR?=?-1
?NUPDOWN?=?1
?NPAR?=?1
?LASPH?=?.TRUE.
?ADDGRID?=?.FALSE.
?LPLANE?=?.FALSE.
?LSCALAPACK?=?.FALSE.
?ISPIN?=?2
?MAGMOM?=?1*1.0000?
?LDIAG?=?.TRUE.
?ALGO?=?Normal
Code: Select all
KPOINTS?test
0
Monkhorst-Pack
1?1?1?
0?0?0
Code: Select all
?F?
?1.0000000000000000
????12.0000000000000000????0.0000000000000000????0.0000000000000000
?????0.0000000000000000???12.0100000000000016????0.0000000000000000
?????0.0000000000000000????0.0000000000000000???12.0199999999999996
???1
Cartesian
??6.0000000000000000??6.0050000000000008??6.0099999999999998
Code: Select all
No?of?bands?->?TOTEN:?LDIAG?=?.TRUE.?(NaN?in?OUTCAR?);?LDIAG?=?.FALSE.?(NaN?in?OUTCAR?)
Normal
04:?????????-0.790025?eV,?OK;?????????-0.790066?eV,?OK
05:?????????-0.789735?eV,?OK;?????????-0.789735?eV,?OK
06:?????????-0.790024?eV,?OK;?????????-0.790024?eV,?OK
07:?????????-0.790024?eV,?OK;?????????-0.790024?eV,?OK
08:?????????-0.790066?eV,?OK;?????????-0.790066?eV,?OK
09:?????????-0.790024?eV,?OK;?????????-0.790024?eV,?OK
10:?????????-0.790066?eV,?OK;?????????-0.790024?eV,?OK
11:?????????-0.790066?eV,?OK;?????????-0.790024?eV,?OK
12:?????????-0.789735?eV,?OK;?????????-0.789735?eV,?OK
13:?????????-0.790066?eV,?OK;?????????-0.790024?eV,?OK
14:?????????-0.789735?eV,?OK;?????????-0.790024?eV,?OK
15:?????????-0.789735?eV,?OK;?????????-0.790066?eV,?OK
20:?????????-0.789735?eV,?OK;?????????-0.790066?eV,?OK
25:?????????-0.790066?eV,?OK;?????????-0.789735?eV,?OK
30:?????????-0.790024?eV,?OK;?????????-0.789735?eV,?OK
35:?????????-0.790066?eV,?OK;?????????-0.789735?eV,?OK
VeryFast
04:?????????80.638803?eV,?OK;?????????83.039021?eV,?OK
05:?????????44.617975?eV,?OK;?????????36.570190?eV,?OK
06:?????????36.557698?eV,?OK;?????????38.534380?eV,?OK
07:?????????12.947947?eV,?OK;?????????12.953125?eV,?OK
08:?????????12.947840?eV,?OK;?????????12.947840?eV,?OK
09:?????????-0.790024?eV,?OK;?????????-0.790025?eV,?OK
10:?????????-0.790024?eV,?OK;?????????-0.790066?eV,?OK
11:?????????-0.790066?eV,?OK;?????????-0.790066?eV,?OK
12:?????????-0.790024?eV,?OK;?????????-0.790024?eV,?OK
13:?????????-0.789735?eV,?OK;?????????-0.789735?eV,?OK
14:?????????-0.789735?eV,?OK;?????????-0.789735?eV,?OK
15:?????????-0.789735?eV,?OK;?????????-0.789735?eV,?OK
20:?????????-0.790024?eV,?OK;?????????-0.790025?eV,?OK
25:?????????-0.789735?eV,?OK;?????????-0.790066?eV,?OK
30:?????????-0.789735?eV,?OK;?????????-0.789735?eV,?OK
35:?????????-0.789735?eV,?OK;?????????-0.789735?eV,?OK
Fast
04:?????????-0.790024?eV,?OK;?????????-0.790024?eV,?OK
05:?????????-0.789735?eV,?OK;?????????-0.789735?eV,?OK
06:?????????-0.790024?eV,?OK;?????????-0.790024?eV,?OK
07:?????????-0.790024?eV,?OK;?????????-0.790024?eV,?OK
08:?????????-0.790066?eV,?OK;?????????-0.790066?eV,?OK
09:?????????-0.790024?eV,?OK;?????????-0.790024?eV,?OK
10:?????????-0.790066?eV,?OK;?????????-0.790066?eV,?OK
11:?????????-0.790066?eV,?OK;?????????-0.790066?eV,?OK
12:?????????-0.789735?eV,?OK;?????????-0.789735?eV,?OK
13:?????????-0.790066?eV,?OK;?????????-0.790066?eV,?OK
14:?????????-0.789735?eV,?OK;?????????-0.789735?eV,?OK
15:?????????-0.789735?eV,?OK;?????????-0.789735?eV,?OK
20:?????????-0.789735?eV,?OK;?????????-0.789735?eV,?OK
25:?????????-0.790066?eV,?OK;?????????-0.790066?eV,?OK
30:?????????-0.790024?eV,?OK;?????????-0.790024?eV,?OK
35:?????????-0.790066?eV,?OK;?????????-0.790066?eV,?OK
Conjugate
04:?Failed,?;?????????-0.790024?eV,?OK
05:?Failed,?;?????????-0.789735?eV,?OK
06:?Failed,?;?????????-0.790024?eV,?OK
07:?Failed,?;?????????-0.790024?eV,?OK
08:?Failed,?;?????????-0.790066?eV,?OK
09:?Failed,?;?????????-0.789735?eV,?OK
10:?Failed,?;?????????-0.790024?eV,?OK
11:?Failed,?;?????????-0.790066?eV,?OK
12:?Failed,?;?????????-0.789735?eV,?OK
13:?Failed,?;?????????-0.790066?eV,?OK
14:?Failed,?;?????????-0.789735?eV,?OK
15:?Failed,?;?????????-0.789735?eV,?OK
20:?Failed,?;?????????-0.789735?eV,?OK
25:?Failed,?;?????????-0.790066?eV,?OK
30:?Failed,?;?????????-0.790024?eV,?OK
35:?Failed,?;?????????-0.790066?eV,?OK
All
04:?Failed,?;?????????-0.790024?eV,?OK
05:?Failed,?;?????????-0.789735?eV,?OK
06:?Failed,?;?????????-0.790024?eV,?OK
07:?Failed,?;?????????-0.790024?eV,?OK
08:?Failed,?;?????????-0.790066?eV,?OK
09:?Failed,?;?????????-0.789735?eV,?OK
10:?Failed,?;?????????-0.790024?eV,?OK
11:?Failed,?;?????????-0.790066?eV,?OK
12:?Failed,?;?????????-0.789735?eV,?OK
13:?Failed,?;?????????-0.790066?eV,?OK
14:?Failed,?;?????????-0.789735?eV,?OK
15:?Failed,?;?????????-0.789735?eV,?OK
20:?Failed,?;?????????-0.789735?eV,?OK
25:?Failed,?;?????????-0.790066?eV,?OK
30:?Failed,?;?????????-0.790024?eV,?OK
35:?Failed,?;?????????-0.790066?eV,?OK
Damped
04:?????????-0.790066?eV,?NaN;?????????-0.790066?eV,?OK
05:?????????-0.790066?eV,?NaN;?????????22.242929?eV,?OK
06:?????????-0.790025?eV,?NaN;??????????9.711788?eV,?OK
07:?????????-0.790025?eV,?NaN;?????????10.477905?eV,?OK
08:?????????-0.790025?eV,?NaN;?????????10.466385?eV,?OK
09:?????????-0.790025?eV,?NaN;?????????11.929748?eV,?OK
10:?????????-0.790066?eV,?NaN;??????????6.194233?eV,?OK
11:?????????-0.790066?eV,?NaN;?????????11.608795?eV,?OK
12:?????????-0.790025?eV,?NaN;??????????6.188213?eV,?OK
13:?????????-0.790025?eV,?NaN;?????????11.594491?eV,?OK
14:?????????-0.790066?eV,?NaN;?????????-0.790066?eV,?OK
15:?????????-0.790066?eV,?NaN;?????????-0.790066?eV,?OK
20:?????????-0.790066?eV,?NaN;?????????-0.790066?eV,?OK
25:?????????-0.790066?eV,?NaN;?????????-0.790066?eV,?OK
30:?????????-0.790066?eV,?NaN;?????????-0.790066?eV,?OK
35:?????????-0.790066?eV,?NaN;?????????-0.790066?eV,?OK
run.sh
Code: Select all
#!/bin/sh
nbands="04?05?06?07?08?09?10?11?12?13?14?15?20?25?30?35"
algos="Normal?VeryFast?Fast?Conjugate?All?Damped"
for?n?in?${nbands};
??do
??for?a?in?${algos};
????do
????cp?-pf?F.orig/*?.
????sed?-i?"s/15/${n}/"?INCAR
????sed?-i?"s/Normal/${a}/"?INCAR
????mpiexec?vasp
????rm?-f?CHG?CHGCAR?WAVECAR
????mv?OUTCAR?${n}_${a}.OUTCAR
????mv?OSZICAR?${n}_${a}.OSZICAR
????#
????sed?-i?"s/LDIAG?=.*/LDIAG?=?.FALSE./"?INCAR
????mpiexec?vasp
????rm?-f?CHG?CHGCAR?WAVECAR
????mv?OUTCAR?${n}_${a}.OUTCAR.LDIAG_FALSE
????mv?OSZICAR?${n}_${a}.OSZICAR.LDIAG_FALSE
??done
done
Code: Select all
#!/bin/sh
nbands="04?05?06?07?08?09?10?11?12?13?14?15?20?25?30?35"
algos="Normal?VeryFast?Fast?Conjugate?All?Damped"
echo?"No?of?bands?->?TOTEN:?LDIAG?=?.TRUE.?(NaN?in?OUTCAR?);?LDIAG?=?.FALSE.?(NaN?in?OUTCAR?)"
for?a?in?${algos};
??do
??echo?${a}
??for?n?in?${nbands};
????do
????energy=`grep?"free??energy???TOTEN"?${n}_${a}*.OUTCAR?|?cut?-d"="?-f?2`
????if?test?-z?"${energy}";
????????then
????????energy=Failed
????fi
????warning=`grep?"NaN"?${n}_${a}*.OUTCAR`
????if?!?test?-z?"${warning}";
????????then
????????warning=NaN
????else
????????if?[?"${energy}"?==?"Failed"?];
????????????then
????????????warning=''
????????else
????????????warning=OK
????????fi
????fi
????energy_ldiag_false=`grep?"free??energy???TOTEN"?${n}_${a}*.OUTCAR.LDIAG_FALSE?|?cut?-d"="?-f?2`
????if?test?-z?"${energy_ldiag_false}";
????????then
????????energy_ldiag_false=Failed
????fi
????warning_ldiag_false=`grep?"NaN"?${n}_${a}*.OUTCAR.LDIAG_FALSE`
????if?!?test?-z?"${warning_ldiag_false}";
????????then
????????warning_ldiag_false=NaN
????else
????????if?[?"${energy_ldiag_false}"?==?"Failed"?];
????????????then
????????????warning_ldiag_false=''
????????else
????????????warning_ldiag_false=OK
????????fi
????fi
????echo?"${n}:?${energy},?${warning};?${energy_ldiag_false},?${warning_ldiag_false}"
??done
done