BUG in MPI version of prtdos=3 in spin-polarized PAW
Posted: Wed Jul 30, 2014 8:08 pm
Hello,
I have been calculating PDOS of Ni3C using PAWs in abinit. The carbide is known to be paramagnetic and abinit also gives this result when calculating the total DOS. However, when I perform a spin-polarized calculation (abinit correctly reports no magnetization) with prtdos=3 the spin channels differ in magnitude (see page 3 of attachment). This does not look like a problem with normalization, since they do not differ by a constant factor over the whole energy range, there is even a cross-over point (page 4, around -10eV). With prtdensph=1 abinit does not report any magnetization in the atom spheres. Also, all eigenvalues are identical for both channels.
For comparison a colleague ran a calculation using vasp. For the total DOS the abinit and vasp agree well (page 1). But vasp does also not show any difference between the spin channels for PDOS (page 2 vs. 3).
Running with pawprtdos=1 shows that the discrepancy orginates solely in the PW component of the DOS, all-electron and pseudo contribution show no difference between the spin channels.
My input file looks like this:
I saw this using several versions of abinit, including 7.8.1
[Edit] This seems to be a bug in the MPI parallel code, the results are fine when abinit is run on a single CPU core.
Thank you.
I have been calculating PDOS of Ni3C using PAWs in abinit. The carbide is known to be paramagnetic and abinit also gives this result when calculating the total DOS. However, when I perform a spin-polarized calculation (abinit correctly reports no magnetization) with prtdos=3 the spin channels differ in magnitude (see page 3 of attachment). This does not look like a problem with normalization, since they do not differ by a constant factor over the whole energy range, there is even a cross-over point (page 4, around -10eV). With prtdensph=1 abinit does not report any magnetization in the atom spheres. Also, all eigenvalues are identical for both channels.
For comparison a colleague ran a calculation using vasp. For the total DOS the abinit and vasp agree well (page 1). But vasp does also not show any difference between the spin channels for PDOS (page 2 vs. 3).
Running with pawprtdos=1 shows that the discrepancy orginates solely in the PW component of the DOS, all-electron and pseudo contribution show no difference between the spin channels.
My input file looks like this:
Code: Select all
ntypat 2
znucl 28 6
natom 8
typat 2 2 6*1
xred
-3.94426681151606E-18 -2.32635776975131E-17 7.71373150378205E-19
-1.31961253500590E-17 5.00000000000000E-01 5.00000000000000E-01
1.70593337472857E-01 2.50000000000000E-01 2.50000000000000E-01
5.00000000000000E-01 9.20593337472857E-01 2.50000000000000E-01
1.70593337472857E-01 4.20593337472857E-01 7.50000000000000E-01
8.29406662527143E-01 5.79406662527143E-01 2.50000000000000E-01
5.00000000000000E-01 7.94066625271432E-02 7.50000000000000E-01
8.29406662527143E-01 7.50000000000000E-01 7.50000000000000E-01
acell 8.68823391483284E+00 8.68823391473050E+00 9.60347684124753E+00
rprim
1.0 -4.38964554255e-29 -8.43617061338e-57
-0.500000000002 0.866025403783 1.0184651346e-27
0.452348355634 0.261163444886 0.852745343119
toldfe 1.0d-9
ecut 36.0
pawecutdg 52
ngkpt 3*12
nshiftk 1
shiftk 0.0 0.0 0.
nband 44
tsmear 1e-3
occopt 3 #fermi
prtdos 3
prtden 1
nsppol 2
I saw this using several versions of abinit, including 7.8.1
[Edit] This seems to be a bug in the MPI parallel code, the results are fine when abinit is run on a single CPU core.
Thank you.