[Pw_forum] possible bug in scatter_forw.f90

Manoj Srivastava manoj at phys.ufl.edu
Thu Oct 16 23:15:13 CEST 2008


Dear Alexandar, 
 Thank you very much. Your answers make sense and now i have better
understanding of the subroutine scatter_forw.f90.  I have one question
about poten.f90 subroutine, where you calculate the V(p,gper) in each
slices of the slab(equation 15). I have a question about Gz, which is
2*pi*q/L, with [-N/2]+1<=q>=[N/2]. Now in the code at the line at the line
60, you have Gz multiplied with bg(3,3). I kind of understand this is
because 3rd direction is perpendicular to xy plane, but not totally clear
about it. Would you mind explaining? my other question is when reciprocal
space vectors b1, b2 and b3 are not orhogonal to each other, which is
more general case, then should not we take bg(1,3) and bg(2,3) in there
too? 
 Thank you once again for listening to my questions and i hope i am
not bothering you too much.

Regards, 
Manoj Srivastava 
Physics Graduate Student 
Department of Physics 
Gainesville, FL, USA.


have  On Wed, 15 Oct 2008, Alexander wrote:

> Dear Manoj
> 
> On Tuesday 14 October 2008 17:49, Manoj Srivastava wrote:
> > Dear Alexader,
> >
> >  Thank you very much for your reply. I was out of town and could not see
> > the message till yesterday. I have some questions on it, it would be great
> > if you could answer them.
> >
> > On Fri, 10 Oct 2008, Alexander wrote:
> > > Dear Manoj
> > >
> > > On Friday 10 October 2008 05:20, Manoj Srivastava wrote:
> > > > Any follow ups on the message below? Alexander?
> > > >
> > > > Regards,
> > > > Manoj
> > > >
> > > > On Wed, 8 Oct 2008, Manoj Srivastava wrote:
> > > > > Dear All,
> > > > >  Is any body familiar with the scatter_forw.f90 subroutine of PWCOND?
> > > > > I think there is a bug in this subroutine at the place where you
> > > > > calculate intw2, which is z integration of nonlocal wavefunction with
> > > > > beta function. I have looked up the necessary formulae in the Choi &
> > > > > Ihm's paper (PRB 59, 2267, Jan 1999). In the paper, nonlocal
> > > > > wavefunction has 3 terms, one of which contains beta function, say W.
> > > > > The other two parts dont have any W in them, rather they are just
> > > > > plane wave solution. (Please have a look at equation 24 and 26 of the
> > > > > paper ). So, when we are doing z integration of nonlocal wavefunction
> > > > > with beta function W, we should have three terms, one of which should
> > > > > contain two W, but rest should just have one W. On the other hand in
> > > > > the code all three terms contain two beta functions!! (please have a
> > > > > look at line 228 of scatter_forw.f90). I am wondering if my
> > > > > understanding is right?
> > >
> > > Your understanding is wrong. On the line 228 you add to the integral ONLY
> > > contribution with two beta functions (from the 1st term in the nonlocal
> > > function, see Eq. 24) but on the line 393 the contribution from the 2nd
> > > term is added too. There is no 3rd term since every step you rotate your
> > > local solutions \psi_n in such a way that b_{\lambda \alpha lm} vanish
> > > (see the paragraph after Eq. 37).
> >
> >   I believe that the equations 40, 41 and 42 implemented in the code are
> > in the momentum space. In the code, intw2 has 3 terms. We can tell this by
> > looking at the subroutine integrals.f90, where int2d is defined. Now, by
> > looking at the choi& Ihm 's paper, the very first term of psi{alpha,l,m}
> > has f{lambda,alpha,l,m}(equation26).And, if we substitute this in equation
> > 40, we should just get one term. I am just confuesd on the fact that how
> > come this one term in paper gets transformed into 3 terms of the code!
> 
> intw2(alpha,beta) is the integral of nonlocal solution (24) with w functions,
> intw2(alpha,beta) = \int_{0,d} w_{alpha}(r)*psi_{beta}(r)dr, where
> alpha,beta={alpha,l,m} in the paper. In each slab it will have TWO 
> contributions from the first and second terms of (24), the one from the third 
> term vanishes as I explained before. These two contributions are calculated
> on the lines  228  and 393 of the code. The integrals intw1
> (alpha,n)=\int_{0,d} w_{alpha}(r)*psi_{n}(r)dr are the integrals of local 
> solutions (17) with the same projector functions w. 
> The integrals intw2 and intw1 have nothing to do with boundary conditions 
> (40). They enter in (11) and are needed to construct the final solutions 
> according to Eq.(10). Substituting the form of this solution (10) in the 
> boundary conditions (40) you will be led to the generalized eigenvalue 
> problem, AX=exp(ikd) BX, with known matrices A and B and unknown
> coefficients X={a_n,C_{alpha,l,m}} defining the resulting solution (10).
> 
> > Would you mind explaining? Also, the integrals that are defined in the
> > code are only in the slabs (nz1), so how are you taking the integration in
> > the region (0,d), which we need according to equations 40, 41 and 42 ?
> 
> When you go over slabs you add new contributions to the integrals intw1 and 
> intw2 (see the line 228 for the first contribution to intw2 and the part "add 
> to the integrals" for another contribution to intw2 and contributions to 
> intw1) so at the end you obtain integrals over all the region.
> 
> Regards,
> Alexander
> 
> >
> > >  > > I have one more question in the later part of the same subroutine.
> > >  > > What
> > > > >
> > > > > does the lapack subroutine
> > > > > ZGESV(2*n2d,2*n2d+norb*npol,amat,2*n2d,ipiv,xmat,2*n2d,info)
> > > > > do?
> > > > > I tried to look it up and i got the idea that it is trying to solve
> > > > > amat*x=xmat, with amat and xmat known and x unknown, and at the end
> > > > > of calculation it stores x in xmat.
> > > > > so, basically it does--  x=[(amat)^(-1)]*xmat. Am i right? So, it
> > > > > changes the structure of xmat from what is defined in 'constructs
> > > > > matrices' part. Is it correct?
> > >
> > > Here, you are right.
> > >
> > > > > Also, afterwards in this code where  it 'rotates integrals' is not
> > > > > very clear to me.
> > > > > Could somebody please tell me in little detail, what is going on
> > > > > here?
> > >
> > > As I explained before rotation means that every step (at each slab)
> > > you make a linear combination of local solutions \psi_n with the
> > > transformation matrix  h_{nn'} (see the last paragraph on the p. 2270).
> > > so that the new solutions have the property:
> > > b_{\lambda n} = \delta_{\lambda n} and the new nonlocal solutions have
> > > b_{\lambda \alpha lm}=0. Doing this transformation of local and nonlocal
> > > solutions you should also perform the corresponding transformations
> > > of the integrals.
> > >
> > > > > Also, is this subroutine written just on the basis of Choi and Ihm
> > > > > paper, or are there more reference to it? If yes, would someone mind
> > > > > mentioning them?
> > >
> > > Unfortunately, the paper of Choi and Ihm is very detail, and in the
> > > PWCOND code we followed it very closely, so no more references
> > > are needed. In our papers we just extended those ideas to ultrasoft
> > > pseudopotentials, magnetism, spin-orbit coupling and so on.
> > >
> > > Hope this helped you,
> > > regards, Alexander
> > >
> > > > > Regards,
> > > > > Manoj Srivastava
> > > > > Physics Graduate Student
> > > > > University of Florida,
> > > > > Gainesville,FL, USA
> > > >
> > > > _______________________________________________
> > > > 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
> >
> > Once again thank you very much for your help. I appreciate it.
> >
> > Regards,
> > Manoj Srivastava
> >
> > _______________________________________________
> > 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 users mailing list