[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