# [Pw_forum] G vector used to represent wfcs

Ryky Nelson nelson.ryky at gmail.com
Fri May 13 10:08:39 CEST 2016

Hello Dario,

thank you very much for your explanation, it's so helpful.

Best,

Ryky Nelson
Institut für Anorganische Chemie
RWTH Aachen University

On Thu, May 12, 2016 at 4:14 PM, dario rocca <roccad at gmail.com> wrote:

> Dear Ryky,
> For more details about the G vector generation you can take a look in the
> ggen subroutine in Modules/recvec_subs.f90. Take a look also in
> n_plane_waves.f90
> In gereral the G vectors are determined with the condition
> G^2 * hbar^2 / (2m_e) < E_cut(density)=4*E_cut(wfc)  (without the k point;
> inside QE Rydberg atomic units are used)
> This is a sphere in reciprocal space centered in (0,0,0).
>
> Concerning each orbital corresponding to a specific k point you apply the
> condition
> (G+k)^2 * hbar^2 / (2m_e) < E_cut(wfc)
> In this case the G vectors are a subset of the vectors used for the
> density. In this case we have a sphere in reciprocal space shifted from the
> origin. Depending on k you can have a different set of G vectors included
> in the sphere and also their number could differ.
>
> In order to menage the g vectors for each k-point, you can use the arrays
> ngk (number of G vectors for each k-point) and igk (index of G
> corresponding to a given index of k+G; basically an index that allows you
> to identify the G vectors corresponding to a given k and order them).
>
> For example the kinetic energy corresponding to a given k-point ik is
>  g2kin(1:ngk(ik)) = ( ( xk(1,ik) + g(1,igk(1:ngk(ik))) )**2 + &
>                    ( xk(2,ik) + g(2,igk(1:ngk(ik))) )**2 + &
>                    ( xk(3,ik) + g(3,igk(1:ngk(ik))) )**2 ) * tpiba2
> where tpiba2 = (2\pi/a)^2
>
> There is only one FFT for the wavefunctions so the grid does not depend on
> the k-points; however, for a given wavefunction, only the components
> corresponding to a G vector that satisfy (G+k)^2 * hbar^2 / (2m_e) <
> E_cut(wfc) are different from 0
>
> Best,
> Dario
>
>
>
>
>
>
> On Thu, May 12, 2016 at 1:38 PM, Ryky Nelson <nelson.ryky at gmail.com>
> wrote:
>
>> Hello QE users and developers,
>>
>> I'm trying to figure out how G vectors in PWscf are selected to represent
>> the corresponding wfcs. Could someone tell me if the following is the only
>> criterion used to determine G vectors?
>>
>> abs(G+k)^2 * hbar^2 / (2m_e) < E_cut
>>
>> and does the code basically start from the origin (0,0,0) and scan
>> through all grid coordinates (positive and negative) and check if the grid
>> agrees with the above criterion? Also, does the number of G vectors (for
>> each k) have relation to the FFT dimensions?
>>
>> Thank you!
>>
>> Ryky Nelson
>> Institut für Anorganische Chemie
>> RWTH Aachen University
>>
>> _______________________________________________
>> Pw_forum mailing list
>> Pw_forum at pwscf.org
>> http://pwscf.org/mailman/listinfo/pw_forum
>>
>
>
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://pwscf.org/mailman/listinfo/pw_forum
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20160513/b1dd4938/attachment.html>


More information about the users mailing list