[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