[Pw_forum] Atomic rho
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
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
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
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