[Pw_forum] complex band
Manoj Srivastava
manoj at phys.ufl.edu
Sun Nov 30 20:53:06 CET 2008
Dear Alexander,
Thank you very much for your answer. It has started making sense, but
unfortunately not a whole lot. I think I need to have complete
understanding of this subroutine in order to have the bigger picture. In
the other e-mail, copied and pasted as below -
> the expression -
> norm2=(((il+xyk(1,ik))*bg(1,1)+(jl+xyk(2,ik))*bg(1,2))**2+ &
> ((il+xyk(1,ik))*bg(2,1)+(jl+xyk(2,ik))*bg(2,2))**2)* &
>
> i believe is |G+k|^2. How do you get above expression in the code for
> this?
norm2 is indeed |G_perp+k_perp|^2, where G_perp=il*b_1+jl*b_2 and 2d
vector
k_perp=xyk(1,ik)*b_1+xyk(2,ik)*b_2 and you indeed select out those
G_perp+k_perp which satisfy (G_perp+k_perp)^2<Ecut2d.
Why is K_perp in terms of b_1 and b_2? You can ofcourse take it
like that but is there any specific reason to do that? If we look at the
Fourier transform of wavefunction psi(r)=sum_{G}\psi(G)exp(i(K+G).r).
here in this expression do we always take K in terms of G. I dont think
so, K can be a label, which might be in terms of G vectors but not
necessarily. What do you think?
In the input file where we enter k_x and k_y, do we enter these in
terms of b1 and b2? or somewhere later in the code it gets multiplied with
b1 and b2, if yes where? I am having tough time figuring it out :(
Thanks for help.
Regards,
Manoj Srivastava
Department of Physics,
University of Florida, Gainesville
On Fri, 28 Nov 2008,
Alexander wrote:
> Dear Manoj
> Ngper is the total number of g_perp=G_perp+k_perp with |g_perp|^2<E_cut
> which are arranged into the shells. Each shell contains g_perp having the same
> norm which is very useful because many calculations with g_perp depend only
> on their norms. The number of shells is ngpsh. gnsh(ngpsh) is the norm for
> each shell, ninsh(ngpsh) is the number of g_perp in the shell.
> The array nshell is the auxiliary array used further to arrange the g_perp
> vectors in the shells.
>
> Hope this helps you,
> regards, Alexander
>
> and ngpsh is the number of shells
>
> On Thursday 27 November 2008 00:26, Manoj Srivastava wrote:
> > Dear Alexander, PWSCF users and developers,
> > I have a technical question in one of the subroutines used to calculate
> > complex band. The subroutine 'init_gper.f90' under PWCOND directory is
> > used to calculate number of G perpendicular vectors within the energy
> > cutoff by using [k_{\perp}+G_{\perp}]^2.le.E_{cut}. I understand the
> > counting of Gper, but i dont understand how do they construct the Gper
> > vectors. For example what is 'ngpsh'? It is defined as 'no. of shells for
> > G', but i really dont understand what this is. I dont understand after
> > line 50 of the code in init_gper.f90. Mainly what does the following
> > piece of code do
> >
> > do i=1,nrx
> > do j=1,nry
> > icount=0
> > do iw=1, ngpsh
> > if (abs(norm2-gnorm2(iw)).gt.eps) then
> > icount=icount+1
> > else
> > nshell(i,j)=iw
> > endif
> > enddo
> > if (icount.eq.ngpsh) then
> > ngpsh=ngpsh+1
> > gnorm2(ngpsh)=norm2
> > nshell(i,j)=ngpsh
> > endif
> > endif
> > enddo
> > enddo
> > I understand it is not a good way of asking question, but I am completely
> > lost. Any help will be appreciated.
> >
> > Regards,
> > Manoj
> >
> > _______________________________________________
> > Pw_forum mailing list
> > Pw_forum at pwscf.org
> > http://www.democritos.it/mailman/listinfo/pw_forum
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://www.democritos.it/mailman/listinfo/pw_forum
>
More information about the Pw_forum
mailing list