[gpaw-users] Occupation and degeneracy problem in spin-polarized calculation for atoms

yanli yanli at chips.ncsu.edu
Fri Mar 4 01:57:51 CET 2011


Hello,

I have done a spin-polarized calculation of oxygen atom using gpaw, the 
scf iteration converges in 22 steps but I think there might be some 
problems with the degeneracy of eigen-energies and their occupations. 
For oxygen atom, the 2p orbital should be 3-folded degenerate, right? 
However, the result of gpaw shows following:

Fermi Level: -6.92162
                   Up                     Down
  Band  Eigenvalues  Occupancy  Eigenvalues  Occupancy
     0    -24.96945    1.00000    -21.38416   1.00000
     1    -10.67650    1.00000     -7.40534    0.99213
     2    -10.67650    1.00000     -6.36818    0.00393
     3     -8.71907     1.00000     -6.36818    0.00393
     4     -0.52898     0.00000     -0.33566    0.00000
     5      1.81662     0.00000      2.07444     0.00000
     6      1.83804     0.00000      2.09461     0.00000
     7      1.96408     0.00000      2.13537     0.00000

where for spin-up the three 2p orbital (-10.67650, -10.67650, -8.71907) 
are not degenerate and also for spin-down the 1 electron is supposed to 
equally shared over the three degenerate state 2p orbitals instead of 
with -7.40534 [0.99213], -6.36818 [0.00393], -6.36818[0.00393]. For 
comparison, I did the same calculation using Quantum Espresso and the 
result is shown as follows:
------ SPIN UP ------------
          k = 0.0000 0.0000 0.0000 (166101 PWs)   bands (ev):

    -24.9334 -10.3604 -10.3604 -10.3604  -0.2758   0.3747   0.6266   0.6266

      occupation numbers
      1.0000   1.0000   1.0000   1.0000   0.0000   0.0000   0.0000   0.0000

  ------ SPIN DOWN ----------

           k = 0.0000 0.0000 0.0000 (166101 PWs)   bands (ev):

    -21.7267  -7.2612  -7.2612  -7.2612  -0.2350   0.4426   0.6451   0.6451

      occupation numbers
      1.0000   0.3333   0.3333   0.3333   0.0000   0.0000   0.0000   0.0000
which gives the result as I expected.

I am wondering why I got the dramatically different occupations and 
energies in gpaw. Or maybe there is something wrong in my oxygen script? 
which looks as follows:

from ase import Atoms
from ase.io import write
from gpaw import GPAW, Mixer, FermiDirac
from gpaw.mixer import MixerSum

a = 7.94

# Oxygen atom:
atom = Atoms('O', cell=[a, a, a], pbc=True)
atom.center()

# GPAW calculator with 6 Kohn-Sham states (bands):
calc = GPAW(nbands=8,
         xc='PBE',
         gpts=(32, 32, 32),
         occupations=FermiDirac(0.1),
             hund=True, #assigns the atom its correct magnetic moment
             mixer=MixerSum(beta=0.1, nmaxold=5, weight=50.0), # Pulay mixer
             txt='O.txt')

atom.set_calculator(calc)
atom.get_potential_energy()

BTW, I also tested carbon atom whose occupations and degeneracy are also 
different from what I expected. Would anyone help me with this problem? 
Thank you very much in advance.


More information about the gpaw-users mailing list