[Pw_forum] How to calculate unoccupied states using cp.x

Hongjun Xiang xianghjun at gmail.com
Thu Sep 13 17:49:04 CEST 2007

Dear Prof. Marzari,
Thanks a lot for your detailed answer.
I tried the first method, it works well.
One minor point is that one should use the same "nbnd" in the ground state
calculation as that in nscf calculation. Otherwise, it will complain:
from cp_readfile : error # 30
electron, bands or spin do not match

Regarding the second method, I will try later.

Have a good day.

Best regards,
Hongjun Xiang

H. J. Xiang
Postdoctoral Research Associate
National Renewable Energy Laboratory

Nicola Marzari wrote:
>> Would someone please tell me if it is possible to obtain correct 
>> eigenvalues of unoccupied states using cp.x? If yes, how?
>> P.S., I am using espresso-3.2.
>> Thank you very much.
>> Best regards,
>> Hongjun Xiang
> I haven't done this in while, but, broadly speaking, these should
> be the two possibilities (I suppose you are looking at an insulator -
> actually, let's consider the water molecule - i.e. 8 electrons, four
> bands).
> 1) You do a ground state calculation with CP, using 4 bands. You get
> the right ground state, the right occupied eigenvalues. You restart
> the code (option 'nscf') with a larger, arbitrary number of states.
> In 'nscf' the charge density is not updated (so your Hamiltonian
> is frozen forever), and you minimize with damped CP dynamics
> a total energy functional in which the Hamiltonian is the frozen
> one above, and in which both the occupied and the unoccupied states are
> fully occupied. This gives you correctly both the occupied and
> unoccupied eigenstates and eigenvalues (if you think at it, you
> are using the correct H[frozen rho]|psi_i> to evolve all the psi_i
> to the overall ground state). In standard CP wouldn't work basically
> for the same reasons you cannot deal with a metal. The ortho constraint
> mixes all the states in the manifold together, and there is no
> dynamics on the occupation numbers (or matrix), while the system
> is not invariant for a unitary transformation in the extended
> manifold (empty + full).
> 2) a second option, for which you need the latest CVS, is to
> use CP in "ensemble-DFT" mode (there is a PRL of ours from 1997, and
> Paolo Umari has recently finished coding all the various parts).
> Basically, this is composed of a conj-grad minimization on the
> orbitals (this can also be used for pure insulators, and it is
> faster in reaching the ground state than damped dynamics) and an
> optimization of the occupation matrix. In practice, it evolves 
> orbitals and occupations at the same time, so it would allow you to do 
> a single
> calculation with filled and empty states at the same time. For an
> insulator, it is probably not worth, and reciped 1) is more efficient.
> For a metal, it is the only possibility, although it will still
> struggle (I think) to give very high, completely empty orbitals 
> correctly (since those do not affect the total energy you are
> minimizing - we have a precondition on the occupations to speed
> things up). Note that only the 'cs' smearing option works, at this
> stage, and the code requires a bit of insider infos to work smoothly.
> We'll improve the documentation.
> Bottom line - for an insulator, especially if you need a lot of
> empty states, use recipe 1). For a metal, use recipe 2) to converge
> to the ground state. If you need only few empty orbitals, 2) will 
> probably give them correctly already. If you need a lot, use 2)
> with only a few empty ones, and then run 1) after 2), with option
> 'nscf' and a lot of states (that will be all filled up, and
> optimized properly).
> Best luck - let us know,
> nicola
> ---------------------------------------------------------------------
> Prof Nicola Marzari Department of Materials Science and Engineering
> 13-5066 MIT 77 Massachusetts Avenue Cambridge MA 02139-4307 USA
> tel 617.4522758 fax 2586534 marzari at mit.edu http://quasiamore.mit.edu
> ------------------------------------------------------------------------
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://www.democritos.it/mailman/listinfo/pw_forum

More information about the users mailing list