[Pw_forum] General question about occupations
Julen Ibanez Azpiroz
julen.azpiroz at gmail.com
Wed May 5 17:52:02 CEST 2010
Hello
I have had a problem related to the Fermi level of a system of Silicon and
Thallium. I was trying to compute a scf calculation of a Silicon slab made
of 24 layers in the (1,1,1) direction with one thallium on top of it (the
total length is about 45 Angstrom), with 10.41 Angstrom of vacuum in the
same direction; this is my unit cell which tries to be a surface (fully
relativistic noncollinear calculation with spin orbit coupling). First, I
have used the choice
occupations='smearing',
smearing='methfessel-paxton',
degauss=0.05d0
In this way I have let the system relax with the 'bfgs' method, and I have
checked the convergence with respect to the cutoff energy (45 Ry) and the
k_point mesh (16*16*1). As a result the system has ended up relaxed with
negligible forces and I have calculated the bands using the results of the
.save file, there was no problem when reading it and the bands fit well with
the bulk background bands (calculated in bulk Si in 1 1 1 direction). Then I
have increased the length of the vacuum to 30 Angstroms, I have relaxed the
system, the atoms moved a little bit and I have checked all the convergences
again. However, when I tried to use the results from the .save file to
compute again the bands, the program has stopped with an error
from setup : error # 3
problem reading ef from file /lscratch/azpiroz/scf/scf.save
Also, when I have tried to perform a 'nscf' calculation using the results
from the scf run, the program stops with
task # 5
from efermig : error # 1
internal error, cannot braket Ef
I have looked for possible explanations about this last error, and I have
found that in the Users Guide from Espresso there is a place where it says
7.16 pw.x stops with "internal error: cannot braket Ef " in efermig Possible
reasons:
- serious error in data, such as bad number of electrons, insufficient
number of bands, absurd value of broadening;
- the Fermi energy is found by bisection assuming that the integrated DOS
N(E ) is an increasing function of the energy. This is not guaranteed for
Methfessel-Paxton smearing of order 1 and can give problems when very few
k-points are used. Use some other smearing function: simple Gaussian
broadening or, better, Marzari-Vanderbilt 'cold smearing'.
I have tried many times the scf calculation and it never gives any error,
the number of electrons is correct and I have used different values of the
broadening and number of bands, and the error still persists in the nscf
calculation. I dont have any clue about how to change 'correctly' the value
of the broadening so that its not absurd, or the number of bands, any
suggestion to this respect will be appreciated. Also, I have tried with
Marzari-Vanderbilt smearing and many k points, but the error still
persists.
The error seems to be related with the Fermi level and the type of
occupation. The question is, why does it appear when the vacuum is 30
Angstrom but not when the vacuum is 10 Angstrom long?
Finally, I have seen that there is an option for the occupations called
'fixed', for 'insulators with a gap'. Even though this system is not an
insulator (there is a band crossing the Fermi surface), I have tried this
option and it works well, and even more it does not give any problem neither
when computing the band structure nor with the 'nscf' calculation. The band
structure obtained in this way coincides with the one obtained with
'methfessel-paxton' smearing (in the case of 10 Angstroms of vacuum), and as
I said it works well for 30 Angstrom of vacuum. I think that the point is
that with occupations='fixed' the program does not return any Fermi level,
but I would really appreciate any help to this respect. Thank you very much
in advance
Julen Ibañez Azpiroz
University of the Basque Country
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20100505/671f730f/attachment.html>
More information about the users
mailing list