[gpaw-users] orbital_ldos

Rico Friedrich friedrir at mailserver.tu-freiberg.de
Mon May 14 13:37:12 CEST 2012


Dear GPAW users,

we do calculations of molecules on surfaces and want to use the  
following piece of code to obtain the part of the DOS belonging to the  
molecule:

atoms = calc.get_atoms()

tidx = np.where(atoms.get_tags() == 0)[0]
#print tidx
dos = np.zeros((nspins + 1, npts), dtype='d')
for s in range(nspins):
     doss = np.zeros(npts, dtype='d')
     #print doss.shape
     for i in tidx.tolist():
         parprint('  Spin {0}, Atom {1}'.format(s,i))
         if not dryrun:
             _e, _d = calc.get_orbital_ldos(i,
                 spin=s,
                 angular='spdf',
                 npts=npts,
                 width=width
             )
             #print _d.shape
             doss += _d
     dos[s+1] = doss
     dos[0] = _e


However when we plot the obtained DOS for spin up and spin down and  
integrate from the lowest energy to the fermi level then we get far  
bigger values than the number of electrons to be expected on the  
molecule. Then we tried "get_all_electron_ldos" instead of  
"get_orbital_ldos" but even got worse results. Is there some kind of  
weighting we neglected so far? Thanks in advance.

Best,

Rico



More information about the gpaw-users mailing list