Hi,
I think it is better to show KBcos info before stopping the program when
ghosts states are found, by changing the order of lines in atom.f like this:
write(6,'(/,a)')'KBgen: Kleinman-Bylander projectors: '
do l=0,lmxkb
do ikb=1, nkbl(l)
write(6,'(3x,a,i2,4(3x,a,f10.6))')
. 'l=',l, 'rc=',rc(ikb,l), 'el=',erefkb(ikb,l),
. 'Ekb=',ekb(ikb,l),'kbcos=',dkbcos(ikb,l)
enddo
enddo
if (ighost.eq.1) then
write(6,"(2a)")'KBgen: WARNING: ',
. 'Ghost states have been detected'
write(6,"(2a)")'KBgen: WARNING: ',
. 'Some parameter should be changed in the '
write(6,"(2a)")'KBgen: WARNING: ',
. 'pseudopotential generation procedure.'
call die
endif
--------------------------------------
And then, can anybody say if it is possible to judge about presense of
ghost states by Ekb and kbcos?
Gonze et al. wrote that it is roughly |Ekb|>100eV and |kbcos|<0.15, but
I don't see it in this output:
GHOST: WARNING: Ghost state for L = 0
GHOST: No ghost state for L = 1
GHOST: No ghost state for L = 2
GHOST: No ghost state for L = 3
KBgen: Kleinman-Bylander projectors:
l= 0 rc= 4.018761 el= -1.062766 Ekb= -5.960904 kbcos= -0.253155
l= 1 rc= 4.172329 el= -0.381927 Ekb= -1.015081 kbcos= -0.534856
l= 2 rc= 4.386253 el= 0.001993 Ekb= -0.504804 kbcos= -0.146414
l= 3 rc= 4.497293 el= 0.003097 Ekb= -0.291363 kbcos= -0.056480
KBgen: WARNING: Ghost states have been detected
KBgen: WARNING: Some parameter should be changed in the
KBgen: WARNING: pseudopotential generation procedure.
-----------------------------------------------
Also why having 16 projectors (for lmax=4), Ekb and kbcos info only for
4 of them is shown?
KBgen: Total number of Kleinman-Bylander projectors: 16
Sincerely,
ALexander