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 <[email protected]> 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 <[email protected]> > 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 >> [email protected] >> http://pwscf.org/mailman/listinfo/pw_forum >> > > > _______________________________________________ > Pw_forum mailing list > [email protected] > http://pwscf.org/mailman/listinfo/pw_forum >
_______________________________________________ Pw_forum mailing list [email protected] http://pwscf.org/mailman/listinfo/pw_forum
