[gpaw-users] PDOS with LCAO

Torsten Hahn Torsten.Hahn at physik.tu-freiberg.de
Thu Jan 17 13:40:36 CET 2013


Dear Ask,

pls. find attached a small patch against the current svn-version of gpaw. This fixes a small typo in the LCAODOS code.

Beside this, things are going very well. :-)

Best,
Torsten.

Am 14.01.2013 um 13:11 schrieb Ask Hjorth Larsen <asklarsen at gmail.com>:

> Hi
> 
> 2012/11/19 Ask Hjorth Larsen <asklarsen at gmail.com>:
>> Hi
>> 
>> I will finish it [pdos based on atomic orbitals in LCAO mode] and check it in sooner or later.
>> 
>> Regards
>> Ask
> 
> The above has been done and I claim that it works, but have only done
> very little testing, so there may be cases where it does not.
> 
> Basically:
> 
> from gpaw.utilities.dos import LCAODOS, RestartLCAODOS, fold
> 
> if you're restarting:
>  calc = GPAW(filename, ...)
>  dos = RestartLCAODOS(calc)
> else:
>  calc = GPAW(...)
>  <perform calculation>
>  dos = LCAODOS(calc)
> 
> energies, weights = dos.get_subspace_pdos([7, 8, 9, 12])
> # That gets the subspace PDOS on the space of orbitals number 7-9 and 12
> 
> e, w = fold(eps_n * Hartree, weights, 800, 0.1)
> 
> e and w are continuous energy/DOS arrays.  For example the integral of
> e dw should be the number of states.  I would appreciate if someone
> can test any of this.  It should in some ways be far superior to the
> PDOS calculated from PAW projectors.
> 
> Also:
> 
>  dos.get_atomic_subspace_pdos(a) gets the dos for all basis functions on atom a
>  dos.get_orbital_pdos(M) gets the dos on only one orbital
> 
> Finaly there's the keyword ravel=True.  If set to False you get the
> energies and weights as multidimensional lists with kpt/spin/band
> indices.
> 
> Best regards
> Ask
> 
> 
> 
> 
>> 
>> 2012/11/18 Silvio a Beccara <s.abeccara at gmail.com>:
>>> Dear Ask,
>>> 
>>> I would be interested in having the PDOS with LCAO, too. I would use it to
>>> calculate overlap matrices.
>>> Best
>>> 
>>> Silvio
>>> 
>>> 
>>>> 
>>>> 
>>>> That's not implemented I'm afraid.
>>>> 
>>>> The best way to calculate PDOS with LCAO is to use the orbitals
>>>> directly.  The advantage is that you project onto something complete
>>>> *and* take the non-orthogonality into account.  This makes it the only
>>>> quantitiative PDOS.  Its disadvantage is that it hasn't been
>>>> implemented either, but I claim to have an almost finished version
>>>> lying around somewhere, if some day someone expresses sufficient
>>>> interest.
>>>> 
>>>> Regards
>>>> Ask
>>>> 
>>>> 
>>>> ------------------------------
>>>> 
>>>> Message: 2
>>>> Date: Thu, 15 Nov 2012 14:31:51 +0100
>>>> From: Torsten Hahn <torstenhahn at fastmail.fm>
>>>> Subject: Re: [gpaw-users] get_all_electron_ldos in lcao
>>>> To: Ask Hjorth Larsen <asklarsen at gmail.com>
>>>> Cc: gpaw-users <gpaw-users at listserv.fysik.dtu.dk>
>>>> Message-ID: <EA094016-2088-424C-944F-0242047446AF at fastmail.fm>
>>>> Content-Type: text/plain; charset=windows-1252
>>>> 
>>>> Am 15.11.2012 um 12:31 schrieb Ask Hjorth Larsen <asklarsen at gmail.com>:
>>>> 
>>>>> Hi
>>>>> 
>>>>> 2012/11/15 Torsten Hahn <torstenhahn at fastmail.fm>:
>>>>>> Hi,
>>>>>> 
>>>>>> is there a way for LCAO-mode calculations to use the
>>>>>> get_all_electron_ldos function?
>>>>>> 
>>>>>> If you give the function-argument wf_k other than 'None', the functions
>>>>>> fails (see. pDOS example on the GPAW-Website) due to the fact that
>>>>>> kpt.psit_nG is not set in LCAO mode?
>>>>>> 
>>>>>> Is there a workaround ?
>>>>>> 
>>>>>> Best regards,
>>>>>> Torsten.
>>>>>> _______________________________________________
>>>>>> gpaw-users mailing list
>>>>>> gpaw-users at listserv.fysik.dtu.dk
>>>>>> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
>>>>> 
>>>>> That's not implemented I'm afraid.
>>>>> 
>>>>> The best way to calculate PDOS with LCAO is to use the orbitals
>>>>> directly.  The advantage is that you project onto something complete
>>>>> *and* take the non-orthogonality into account.  This makes it the only
>>>>> quantitiative PDOS.  Its disadvantage is that it hasn't been
>>>>> implemented either, but I claim to have an almost finished version
>>>>> lying around somewhere, if some day someone expresses sufficient
>>>>> interest.
>>>>> 
>>>>> Regards
>>>>> Ask
>>>> 
>>>> I express my interest now and i could also spend some time to test /
>>>> debugging ?
>>>> 
>>>> Regards,
>>>> Torsten.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ------------------------------
>>>> 
>>>> Message: 3
>>>> Date: Fri, 16 Nov 2012 11:52:01 +0100
>>>> From: Torsten Hahn <torstenhahn at fastmail.fm>
>>>> Subject: Re: [gpaw-users] get parallel hamiltonian
>>>> To: Ask Hjorth Larsen <asklarsen at gmail.com>
>>>> Cc: gpaw-users <gpaw-users at listserv.fysik.dtu.dk>
>>>> Message-ID: <943B1B81-9B5B-4E5F-852B-D24E205EE90F at fastmail.fm>
>>>> Content-Type: text/plain; charset=us-ascii
>>>> 
>>>> 
>>>> Am 26.10.2012 um 23:38 schrieb Ask Hjorth Larsen <asklarsen at gmail.com>:
>>>> 
>>>>> 2012/10/26 Ask Hjorth Larsen <asklarsen at gmail.com>:
>>>>> (...)
>>>>>> 
>>>>>> For each s and k, do:
>>>>>> 
>>>>>> Hfull_MM = calc.wfs.ksl.mmdescriptor.collect_on_master(H_MM)
>>>>>> 
>>>>>> ksl is the "Kohn-Sham layout", representing the parallelization of KS
>>>>>> states.
>>>>>> 
>>>>>> mmdescriptor is a matrix descriptor (from gpaw/blacs.py) describing
>>>>>> the blocked ("mm" rather than "MM") layout of the Hamiltonian.
>>>>>> 
>>>>>> Regards
>>>>>> Ask
>>>>> 
>>>>> (I write this partially from memory so if something goes wrong, some
>>>>> tinkering may be required)
>>>> 
>>>> 
>>>> thx, it worked just fine.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ------------------------------
>>>> 
>>>> _______________________________________________
>>>> gpaw-users mailing list
>>>> gpaw-users at listserv.fysik.dtu.dk
>>>> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
>>>> 
>>>> End of gpaw-users Digest, Vol 34, Issue 12
>>>> ******************************************
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> gpaw-users mailing list
>>> gpaw-users at listserv.fysik.dtu.dk
>>> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
> _______________________________________________
> gpaw-users mailing list
> gpaw-users at listserv.fysik.dtu.dk
> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dos.py.diff
Type: application/octet-stream
Size: 682 bytes
Desc: not available
Url : http://listserv.fysik.dtu.dk/pipermail/gpaw-users/attachments/20130117/d3062858/attachment.obj 


More information about the gpaw-users mailing list