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


Reply via email to