[Pw_forum] Atomic rho

2008-10-14 Thread Stefano de Gironcoli
In reciprocal space the sum of atomic densities is

sum_rho_at(G) = \sum_ityp S_ityp(G) rho_atomic_ityp(G)

where rho_atomic_ityp(G) is the Fourier trasform of the atomic charge  
density for atomic type ityp and S_ityp(G) is the strcuture factor for  
that atomic type

S_ityp(G) = \sum_{na such that ityp_of_na=ityp) esp(-i G tau_na) / Omega

If you want a single atom charge density you simply need to use the  
espression above with

S_ityp(G) =  esp(-i G tau_na_you_want) / Omega

this is actually a periodic charge density corresponding to atom  
na_you_want plus its
periodic images ... so the cell must be large enough that these images  
do not overlap.

Hope this helps,

  stefano


Quoting Leonardo Matheus :

> Thanks for your reply Axel.
>
>> well, for practical reasons it is more efficient to loop over
>> atom types and atoms per atom type. per atom-type parameters
>> only need to be computed once this way.
>
> I understand why the calculation is like this, but still couldn't find
> this "atoms per atom type" loop.
>
>> i suggest you first have a look into textbook material
>> explaining the implementation of electronic structure
>> calculation with plane wave pseudopotentials (e.g. the
>> books by jorge kohnoff or richard martin). and then
>> read the marx / hutter review which also gives an overview
>> on how the implementation can be done (on the example of
>> the CPMD code, which is not that different as far as the
>> basic principles are concerned). the CPMD code actually
>> does have an implementation of hirshfeld charges determination,
>> but only for norm-conserving pseudopotentials, IIRC, so you
>> can look up how the implementation principles.
>
> I've already read the book by Kohanoff, and now I'm waiting for the
> licence to download the CPMD code, to see how Hirshfeld charges are
> implemented there, thanks for the hint. ABINIT code also has Hirshfeld
> charges implemented, I'm looking there too.
>
>> for implementing it into QE you'll have to figure out
>> how to handle ultra-soft psps contribution to the atomic
>> density on top of everything else.
>
> I'm also using the SaX code, which accepts just NC PPs, so I haven't
> thought deeply on this, but I would first try to adapt the "addusdens"
> subroutine to the individual atomic densities (at least, this is what
> I understood the subroutine does).
>
> Actually, I've based most of my code on the "voronoy" program, so what
> I really need now is just to obtain the individual atomic rho, the
> rest (I think) is mostly done.
>
>> good luck,
>>   axel.
>
> Thanks
>
> Leonardo Matheus
> Doctorate student - Physics Institute, University of S?o Paulo, Brazil
> Nanomol group - http://nanomol.if.usp.br
> ___
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://www.democritos.it/mailman/listinfo/pw_forum
>




   SISSA Webmail https://webmail.sissa.it/
   Powered by Horde http://www.horde.org/




[Pw_forum] Atomic rho

2008-10-14 Thread Leonardo Matheus
Thanks for your reply Axel.

> well, for practical reasons it is more efficient to loop over
> atom types and atoms per atom type. per atom-type parameters
> only need to be computed once this way.

I understand why the calculation is like this, but still couldn't find
this "atoms per atom type" loop.

> i suggest you first have a look into textbook material
> explaining the implementation of electronic structure
> calculation with plane wave pseudopotentials (e.g. the
> books by jorge kohnoff or richard martin). and then
> read the marx / hutter review which also gives an overview
> on how the implementation can be done (on the example of
> the CPMD code, which is not that different as far as the
> basic principles are concerned). the CPMD code actually
> does have an implementation of hirshfeld charges determination,
> but only for norm-conserving pseudopotentials, IIRC, so you
> can look up how the implementation principles.

I've already read the book by Kohanoff, and now I'm waiting for the
licence to download the CPMD code, to see how Hirshfeld charges are
implemented there, thanks for the hint. ABINIT code also has Hirshfeld
charges implemented, I'm looking there too.

> for implementing it into QE you'll have to figure out
> how to handle ultra-soft psps contribution to the atomic
> density on top of everything else.

I'm also using the SaX code, which accepts just NC PPs, so I haven't
thought deeply on this, but I would first try to adapt the "addusdens"
subroutine to the individual atomic densities (at least, this is what
I understood the subroutine does).

Actually, I've based most of my code on the "voronoy" program, so what
I really need now is just to obtain the individual atomic rho, the
rest (I think) is mostly done.

> good luck,
>   axel.

Thanks

Leonardo Matheus
Doctorate student - Physics Institute, University of S?o Paulo, Brazil
Nanomol group - http://nanomol.if.usp.br


[Pw_forum] Atomic rho

2008-10-13 Thread Axel Kohlmeyer
On Mon, 13 Oct 2008, Leonardo Matheus wrote:

LM> Hello,

hello leonardo,

LM> I'm trying to calculate Hirshfeld charges as a postprocess. To do so,
LM> I need to obtain the atomic rho for each atom, in real space. I've
LM> seen that "atomic_rho.f90" calculates the total rho as a superposition
LM> of the individual atomic ones, obtained from the pseudopotentials.
LM> But I couldn't understand how this superposition is done, as the
LM> internal loop is based on atomic types, and not on individual atoms. I

well, for practical reasons it is more efficient to loop over
atom types and atoms per atom type. per atom-type parameters 
only need to be computed once this way.

LM> couldn't also find how the atomic coordinates are used (to "center"
LM> the charge on the atomic position), and which variable stores them. I
LM> saw that it was all done in reciprocal space, and probably this is
LM> where I'm confusing myself.

i suggest you first have a look into textbook material 
explaining the implementation of electronic structure
calculation with plane wave pseudopotentials (e.g. the 
books by jorge kohnoff or richard martin). and then
read the marx / hutter review which also gives an overview
on how the implementation can be done (on the example of
the CPMD code, which is not that different as far as the 
basic principles are concerned). the CPMD code actually 
does have an implementation of hirshfeld charges determination, 
but only for norm-conserving pseudopotentials, IIRC, so you
can look up how the implementation principles.

for implementing it into QE you'll have to figure out
how to handle ultra-soft psps contribution to the atomic
density on top of everything else.

good luck,
   axel.


LM> Can someone please give me a hand?
LM> 
LM> Thanks,
LM> 
LM> Leonardo Matheus
LM> Doctorate student - Physics Institute, University of S?o Paulo, Brazil
LM> Nanomol group - http://nanomol.if.usp.br
LM> ___
LM> Pw_forum mailing list
LM> Pw_forum at pwscf.org
LM> http://www.democritos.it/mailman/listinfo/pw_forum
LM> 

-- 
===
Axel Kohlmeyer   akohlmey at cmm.chem.upenn.edu   http://www.cmm.upenn.edu
   Center for Molecular Modeling   --   University of Pennsylvania
Department of Chemistry, 231 S.34th Street, Philadelphia, PA 19104-6323
tel: 1-215-898-1582,  fax: 1-215-573-6233,  office-tel: 1-215-898-5425
===
If you make something idiot-proof, the universe creates a better idiot.


[Pw_forum] Atomic rho

2008-10-13 Thread Leonardo Matheus
Hello,

I'm trying to calculate Hirshfeld charges as a postprocess. To do so,
I need to obtain the atomic rho for each atom, in real space. I've
seen that "atomic_rho.f90" calculates the total rho as a superposition
of the individual atomic ones, obtained from the pseudopotentials.
But I couldn't understand how this superposition is done, as the
internal loop is based on atomic types, and not on individual atoms. I
couldn't also find how the atomic coordinates are used (to "center"
the charge on the atomic position), and which variable stores them. I
saw that it was all done in reciprocal space, and probably this is
where I'm confusing myself.
Can someone please give me a hand?

Thanks,

Leonardo Matheus
Doctorate student - Physics Institute, University of S?o Paulo, Brazil
Nanomol group - http://nanomol.if.usp.br