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

jensj at fysik.dtu.dk jensj at fysik.dtu.dk
Fri Mar 4 08:41:23 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

What you have found here is the true ground-state for oxygen, which is not
spherically symmetric and therefore the p-states are not degenerate.  If
you want to find the spherically symmetric state you can use something
like this:

from ase import Atoms
from gpaw import GPAW, FermiDirac
atom = Atoms('O', magmoms=[2])
atom.center(vacuum=4)
calc = GPAW(xc='PBE',
            occupations=FermiDirac(0.1),
            txt='O-sym.txt')
atom.calc = calc
atom.get_potential_energy()

Fermi Level: -7.25294
                  Up                     Down
 Band  Eigenvalues  Occupancy  Eigenvalues  Occupancy
    0    -25.19128    1.00000    -21.92994    1.00000
    1    -10.21799    1.00000     -7.18362    0.33333
    2    -10.21799    1.00000     -7.18362    0.33333
    3    -10.21799    1.00000     -7.18362    0.33333

You can also find this state with GPAW's 1-d radial program.  Try:

$ python -m gpaw.atom.aeatom O -s

Jens Jørgen

> 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.
> _______________________________________________
> gpaw-users mailing list
> gpaw-users at listserv.fysik.dtu.dk
> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
>




More information about the gpaw-users mailing list