[Wien] interface between WIEN2k and Wannier90

fatemeh.mirjani f_mirjani at ph.iut.ac.ir
Mon Sep 22 14:58:30 CEST 2008


Dear Prof.Blaha;

I finished the writing of programs for interface code between WIEN2k and Wannier90 but there was a bug in my code which caused the wrong result. I searched for it and finally I found that the bug was in the theta(Gi-Gj+G(k+b)) (FFT of the step-function : theta(r)).

M_mn(k,b) at interstitial region = sigma_Gi,Gj{ c*(k,m)_Gi  c([k+b],n)_Gj  theta(Gi-Gj+G(k+b))  }

 "where G(k+b) denotes the reciprocal space vector that moves (k+b) into the first brillouin zone, [k+b]=k+b-G(k+b)."

I extracted theta(G) from Wien2k with the method which I have explained at the end of Email.
Unfortunately with the used method I cannot extract theta for all of the "Gi-Gj+G(k+b)" vectors. so automatically when the program couldn't extract theta(Gi-Gj+G(k+b)) for a special "Gi-Gj+G(k+b)" it put it's amount equal to zero.


------------------------------------------------------------------------
The procedure to extract theta(G) :
I did 2 steps:

Firstly at the end of rean0.F , I wrote
       do I1=1,IFFT1
       do I2=1,IFFT2
       do I3=1,IFFT3
        write(6788,*)I1,I2,I3,U(I1,I2,I3)
       end do
       end do
       end do

Secondly, at setfft.f I wrote "write(6664,*)I1,I2,I3,kkk(1,j),kkk(2,j),kkk(3,j)"
after these lines:      
      I1=ii1
        IF(I1.LT.0) I1=I1+IFFT1
      I2=ii2
        IF(I2.LT.0) I2=I2+IFFT2
      I3=ii3
        IF(I3.LT.0) I3=I3+IFFT3


Finally I wrote a program to extarct the theta(G) which is corresponding to it's G-vector.

----------------------------------------------------------------------------

for example I should find theta(G= 0  0 -1)
but the file which is consist of theta(G) is like this:
  0.0000000E+00  0.0000000E+00  0.0000000E+00 (176.097523798869,0.000000000000000E+000)
  -1.000000      -1.000000      -1.000000     (34.5063794979096,0.000000000000000E+000)
   1.000000       1.000000      -1.000000     (-34.5063794979096,0.000000000000000E+000)
   1.000000      -1.000000       1.000000     (-34.5063794979096,0.000000000000000E+000)
  -1.000000       1.000000       1.000000     (-34.5063794979097,0.000000000000000E+000)
  -1.000000      -1.000000       1.000000     (-34.5063794979096,0.000000000000000E+000)
   1.000000       1.000000       1.000000     (34.5063794979096,0.000000000000000E+000)
   1.000000      -1.000000      -1.000000     (-34.5063794979097,0.000000000000000E+000)
  -1.000000       1.000000      -1.000000     (-34.5063794979096,0.000000000000000E+000)
  0.0000000E+00  0.0000000E+00  -2.000000     (2.370408305436463E-015,0.000000000000000E+000)
  0.0000000E+00  0.0000000E+00   2.000000     (2.370408305436463E-015,0.000000000000000E+000)
  0.0000000E+00  -2.000000      0.0000000E+00 (2.370408305436463E-015,0.000000000000000E+000)
  ...
  ...
  ...
  ...
so I don't know the amount of theta(G= 0  0 -1)

-- 
Recently the group of FLEUR code have written an interface code to Wannier90 and they said to me:  
It would have been better if you had managed to find the theta in Wien2k, because the normalizations of c(G) and theta(G) have to correspond to each other.

Would you please let me know if you have any suggestion?

Thanks in advance,
Fatemeh
+------------------------------------------------------------------------------+
|Fatemeh Mirjani                              | Email: f_mirjani at ph.iut.ac.ir  |
|Computational Condensed Matter Research Lab. | Tel/Fax Office: +98311-3913746 |
|ICTP Affiliated Center in Isfahan,           | Tel Lab.: +98311-3913731       |
+----------Physics Department, Isfahan University of Technology, Iran----------+



More information about the Wien mailing list