[gpaw-users] orbital_ldos

Rico Friedrich friedrir at mailserver.tu-freiberg.de
Tue May 15 08:18:32 CEST 2012


Dear GPAW-users,

thank you very much for the answer. The point is that we got a reduced  
magnetic moment of our molecule on the surface and wanted to find out  
what is the reason. So as a first step we thought to take the part of  
the DOS belonging to the molecule and count the electrons to see if it  
is due to a direct charge transfer. But of course there are other  
possibilities as well as for instance plotting the spin density which  
we did instead.

Beste regards,

Rico

Zitat von Ask Hjorth Larsen <asklarsen at gmail.com>:

> Hi
>
> 2012/5/14 Rico Friedrich <friedrir at mailserver.tu-freiberg.de>:
>> 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):
>> &nbsp; &nbsp; doss = np.zeros(npts, dtype='d')
>> &nbsp; &nbsp; #print doss.shape
>> &nbsp; &nbsp; for i in tidx.tolist():
>> &nbsp; &nbsp; &nbsp; &nbsp; parprint(' &nbsp;Spin {0}, Atom  
>> {1}'.format(s,i))
>> &nbsp; &nbsp; &nbsp; &nbsp; if not dryrun:
>> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _e, _d = calc.get_orbital_ldos(i,
>> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; spin=s,
>> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; angular='spdf',
>> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; npts=npts,
>> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; width=width
>> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )
>> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #print _d.shape
>> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; doss += _d
>> &nbsp; &nbsp; dos[s+1] = doss
>> &nbsp; &nbsp; 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
>
> Yes, the PDOS it is unfortunately quite useless for counting electrons
> because the basis of projector functions is neither complete nor
> orthonormal.  If you use LCAO mode, there's a direct way to get the
> correctly normalized PDOS on the atomic orbitals which is *sort of*
> implemented, except not checked into the code yet.  This we should
> probably do at some point.  Do you (or anyone) need this desperately?
>
> Regards
> Ask
>
> _______________________________________________
> gpaw-users mailing list
> gpaw-users at listserv.fysik.dtu.dk
> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users





More information about the gpaw-users mailing list