[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