From gaojin06 at 163.com Sun Jan 12 03:01:44 2014 From: gaojin06 at 163.com (gaojin) Date: Sun, 12 Jan 2014 10:01:44 +0800 (CST) Subject: [Wannier] about partially occupied bands Message-ID: <3f8135c.94b5.143842eedde.Coremail.gaojin06@163.com> Dear Wannier users, I am studying electronic polarization using Wannier function centers. In the case of partially occupied bands entangled with empty bands, should i disentangle the partially filled bands from the empty bands and multiply the obtained Wannier function centers by 1 not by 2? Thanks NHB Xi'an Jiao Tong universtiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From huanghq at phys.tsinghua.edu.cn Sun Jan 12 14:57:53 2014 From: huanghq at phys.tsinghua.edu.cn (Hua-Qing Huang) Date: Sun, 12 Jan 2014 21:57:53 +0800 Subject: [Wannier] Wannier Digest, Vol 72, Issue 2 In-Reply-To: References: Message-ID: <20140112135224.M23877@phys.tsinghua.edu.cn> >Dear Wannier users, >I am studying electronic polarization using Wannier function centers. In the >case of partially occupied bands entangled with empty bands, should i >disentangle the partially filled bands from the empty bands and multiply the >obtained Wannier function centers by 1 not by 2? Dear NHB I think the electronic polarization is a concept for insulators. If there are partially occupied bands, the system should be a metal according to band theory. If you want to get the Wannier function for entanled bands, you can disentangle the bands with a proper energy window. Best wishes, -- Huaqing Huang Ph.D. candidate Group of Condensed Matter Theory Department of Physics Tsinghua University Beijing, 100084 P.R.CHINA Tel: 86-10-62772784 From liping.chen at rochester.edu Wed Jan 15 21:56:24 2014 From: liping.chen at rochester.edu (Liping Chen) Date: Wed, 15 Jan 2014 15:56:24 -0500 (EST) Subject: [Wannier] position matrix (dipole transition matrix) printed out in wannier In-Reply-To: <1821017243.169326.1389817245395.JavaMail.root@z.rochester.edu> Message-ID: <1652643241.170777.1389819384420.JavaMail.root@z.rochester.edu> Dear Wannier users, I need to get the info of dipole transition matrix =e. So I just need to get the position matrix . But it seems that there is no way to ask wannier to print out the position matrix in seedname.win. I find that the matrix elements of r2 between WF can be printed out by setting WRITE_R2MN = T. And the codes for writing the matrix elements of r2 are like this: ########################################################################### open(r2mnunit,file=trim(seedname)//'.r2mn',form='formatted',err=158) do nw1 = 1, num_wann do nw2 = 1, num_wann r2ave_mn = 0.0_dp delta = 0.0_dp if (nw1.eq.nw2) delta = 1.0_dp do nkp = 1, num_kpts do nn = 1, nntot r2ave_mn = r2ave_mn + wb(nn) * & ! [GP-begin, Apr13, 2012: corrected sign inside "real"] ( 2.0_dp * delta - real(m_matrix(nw1,nw2,nn,nkp) + & conjg(m_matrix(nw2,nw1,nn,nkp)),kind=dp) ) ! [GP-end] enddo enddo r2ave_mn = r2ave_mn / real(num_kpts,dp) write (r2mnunit, '(2i6,f20.12)') nw1, nw2, r2ave_mn enddo enddo close(r2mnunit) ########################################################################### There should be some similarities for calculating r2ave and the above r2. I've found the codes to calculate rave, rave2 and r2ave in subroutine wann_omega. ########################################################################################## do nkp = 1, num_kpts do nn = 1, nntot do n = 1, num_wann ! Note that this ln_tmp is defined differently wrt the one in wann_domega ln_tmp(n,nn,nkp)=( aimag(log(csheet(n,nn,nkp) & * m_matrix(n,n,nn,nkp))) - sheet(n,nn,nkp) ) end do end do end do rave = 0.0_dp do iw = 1, num_wann do ind = 1, 3 do nkp = 1, num_kpts do nn = 1, nntot rave(ind,iw) = rave(ind,iw) + wb(nn) * bk(ind,nn,nkp) & *ln_tmp(iw,nn,nkp) enddo enddo enddo enddo rave = -rave/real(num_kpts,dp) rave2 = 0.0_dp do iw = 1, num_wann rave2(iw) = sum(rave(:,iw)*rave(:,iw)) enddo r2ave = 0.0_dp do iw = 1, num_wann do nkp = 1, num_kpts do nn = 1, nntot mnn2 = real(m_matrix(iw,iw,nn,nkp)*conjg(m_matrix(iw,iw,nn,nkp)),kind=dp) r2ave(iw) = r2ave(iw) + wb(nn) * ( 1.0_dp - mnn2 + ln_tmp(iw,nn,nkp)**2 ) enddo enddo enddo r2ave = r2ave/real(num_kpts,dp) ########################################################################################## It's true the calculation of r2ave and r2 are similar. But why there is an extra term of "ln_tmp(iw,nn,nkp)**2" for r2ave but not for r2? What should I do to calculate r? ########################################################################### open(rmnunit,file=trim(seedname)//'.rmn',form='formatted',err=158) do nw1 = 1, num_wann do nw2 = 1, num_wann rave_mn = 0.0_dp delta = 0.0_dp if (nw1.eq.nw2) delta = 1.0_dp do nkp = 1, num_kpts do nn = 1, nntot rave_mn = rave_mn + wb(nn) * ?????? (What should I put here?) enddo enddo rave_mn = rave_mn / real(num_kpts,dp) write (rmnunit, '(2i6,f20.12)') nw1, nw2, rave_mn enddo enddo close(rmnunit) ########################################################################### Thanks, Liping Chen Department of Chemistry University of Rochester From ivo_souza at ehu.es Thu Jan 16 09:43:10 2014 From: ivo_souza at ehu.es (Ivo Souza) Date: Thu, 16 Jan 2014 09:43:10 +0100 (CET) Subject: [Wannier] position matrix (dipole transition matrix) printed out in wannier In-Reply-To: <1652643241.170777.1389819384420.JavaMail.root@z.rochester.edu> References: <1652643241.170777.1389819384420.JavaMail.root@z.rochester.edu> Message-ID: Dear Liping, There is one other place in the wannier90 package where the Wannier-basis position matrix elements <0m|r|Rn> are calculated: the subroutine get_AA_R in src/postw90/get_oper.F90 (Those matrix elements are extensively used in the "berry" module of postw90, because their Fourier transform gives the so-called "Berry connection matrix" A_{mn}(k).) You might want to take a look into that subroutine, and see if you can re-use it for your purposes. Best, Ivo On Wed, 15 Jan 2014, Liping Chen wrote: > Dear Wannier users, > > I need to get the info of dipole transition matrix =e. So I just need to get the position matrix . But it seems that there is no way to ask wannier to print out the position matrix in seedname.win. I find that the matrix elements of r2 between WF can be printed out by setting WRITE_R2MN = T. And the codes for writing the matrix elements of r2 are like this: > ########################################################################### > open(r2mnunit,file=trim(seedname)//'.r2mn',form='formatted',err=158) > do nw1 = 1, num_wann > do nw2 = 1, num_wann > r2ave_mn = 0.0_dp > delta = 0.0_dp > if (nw1.eq.nw2) delta = 1.0_dp > do nkp = 1, num_kpts > do nn = 1, nntot > r2ave_mn = r2ave_mn + wb(nn) * & > ! [GP-begin, Apr13, 2012: corrected sign inside "real"] > ( 2.0_dp * delta - real(m_matrix(nw1,nw2,nn,nkp) + & > conjg(m_matrix(nw2,nw1,nn,nkp)),kind=dp) ) > ! [GP-end] > enddo > enddo > r2ave_mn = r2ave_mn / real(num_kpts,dp) > write (r2mnunit, '(2i6,f20.12)') nw1, nw2, r2ave_mn > enddo > enddo > close(r2mnunit) > ########################################################################### > > There should be some similarities for calculating r2ave and the above r2. I've found the codes to calculate rave, rave2 and r2ave in subroutine wann_omega. > ########################################################################################## > do nkp = 1, num_kpts > do nn = 1, nntot > do n = 1, num_wann > ! Note that this ln_tmp is defined differently wrt the one in wann_domega > ln_tmp(n,nn,nkp)=( aimag(log(csheet(n,nn,nkp) & > * m_matrix(n,n,nn,nkp))) - sheet(n,nn,nkp) ) > end do > end do > end do > > > rave = 0.0_dp > do iw = 1, num_wann > do ind = 1, 3 > do nkp = 1, num_kpts > do nn = 1, nntot > rave(ind,iw) = rave(ind,iw) + wb(nn) * bk(ind,nn,nkp) & > *ln_tmp(iw,nn,nkp) > enddo > enddo > enddo > enddo > rave = -rave/real(num_kpts,dp) > > rave2 = 0.0_dp > do iw = 1, num_wann > rave2(iw) = sum(rave(:,iw)*rave(:,iw)) > enddo > > r2ave = 0.0_dp > do iw = 1, num_wann > do nkp = 1, num_kpts > do nn = 1, nntot > mnn2 = real(m_matrix(iw,iw,nn,nkp)*conjg(m_matrix(iw,iw,nn,nkp)),kind=dp) > r2ave(iw) = r2ave(iw) + wb(nn) * ( 1.0_dp - mnn2 + ln_tmp(iw,nn,nkp)**2 ) > enddo > enddo > enddo > r2ave = r2ave/real(num_kpts,dp) > ########################################################################################## > It's true the calculation of r2ave and r2 are similar. But why there is an extra term of "ln_tmp(iw,nn,nkp)**2" for r2ave but not for r2? > > What should I do to calculate r? > ########################################################################### > open(rmnunit,file=trim(seedname)//'.rmn',form='formatted',err=158) > do nw1 = 1, num_wann > do nw2 = 1, num_wann > rave_mn = 0.0_dp > delta = 0.0_dp > if (nw1.eq.nw2) delta = 1.0_dp > do nkp = 1, num_kpts > do nn = 1, nntot > rave_mn = rave_mn + wb(nn) * ?????? (What should I put here?) > enddo > enddo > rave_mn = rave_mn / real(num_kpts,dp) > write (rmnunit, '(2i6,f20.12)') nw1, nw2, rave_mn > enddo > enddo > close(rmnunit) > ########################################################################### > > Thanks, > > Liping Chen > Department of Chemistry > University of Rochester > _______________________________________________ > Wannier mailing list > Wannier at quantum-espresso.org > http://www.democritos.it/mailman/listinfo/wannier > From liping.chen at rochester.edu Thu Jan 16 15:39:41 2014 From: liping.chen at rochester.edu (Liping Chen) Date: Thu, 16 Jan 2014 09:39:41 -0500 (EST) Subject: [Wannier] position matrix (dipole transition matrix) printed out in wannier In-Reply-To: Message-ID: <1261711394.178010.1389883181013.JavaMail.root@z.rochester.edu> Dear Ivo, Thank you very much for your reply. I've had a look at the subroutine get_AA_R. I want to make sure with you that near the end of the subroutine there are ############################################################ call fourier_q_to_R(AA_q(:,:,:,1),AA_R(:,:,:,1)) call fourier_q_to_R(AA_q(:,:,:,2),AA_R(:,:,:,2)) call fourier_q_to_R(AA_q(:,:,:,3),AA_R(:,:,:,3)) ############################################################ AA_R(:,:,:,1), AA_R(:,:,:,2) and AA_R(:,:,:,3) are the position matrix elements <0m|r|Rn> I want, right? Here, I also have a question about the idir = 1, 2, 3. Are these three directions along the three lattice vectors? If so, what about when the lattice vectors are not orthogonal? Thanks, Liping ----- Original Message ----- From: "Ivo Souza" To: "Liping Chen" Cc: wannier at quantum-espresso.org Sent: Thursday, January 16, 2014 3:43:10 AM Subject: Re: [Wannier] position matrix (dipole transition matrix) printed out in wannier Dear Liping, There is one other place in the wannier90 package where the Wannier-basis position matrix elements <0m|r|Rn> are calculated: the subroutine get_AA_R in src/postw90/get_oper.F90 (Those matrix elements are extensively used in the "berry" module of postw90, because their Fourier transform gives the so-called "Berry connection matrix" A_{mn}(k).) You might want to take a look into that subroutine, and see if you can re-use it for your purposes. Best, Ivo On Wed, 15 Jan 2014, Liping Chen wrote: > Dear Wannier users, > > I need to get the info of dipole transition matrix =e. So I just need to get the position matrix . But it seems that there is no way to ask wannier to print out the position matrix in seedname.win. I find that the matrix elements of r2 between WF can be printed out by setting WRITE_R2MN = T. And the codes for writing the matrix elements of r2 are like this: > ########################################################################### > open(r2mnunit,file=trim(seedname)//'.r2mn',form='formatted',err=158) > do nw1 = 1, num_wann > do nw2 = 1, num_wann > r2ave_mn = 0.0_dp > delta = 0.0_dp > if (nw1.eq.nw2) delta = 1.0_dp > do nkp = 1, num_kpts > do nn = 1, nntot > r2ave_mn = r2ave_mn + wb(nn) * & > ! [GP-begin, Apr13, 2012: corrected sign inside "real"] > ( 2.0_dp * delta - real(m_matrix(nw1,nw2,nn,nkp) + & > conjg(m_matrix(nw2,nw1,nn,nkp)),kind=dp) ) > ! [GP-end] > enddo > enddo > r2ave_mn = r2ave_mn / real(num_kpts,dp) > write (r2mnunit, '(2i6,f20.12)') nw1, nw2, r2ave_mn > enddo > enddo > close(r2mnunit) > ########################################################################### > > There should be some similarities for calculating r2ave and the above r2. I've found the codes to calculate rave, rave2 and r2ave in subroutine wann_omega. > ########################################################################################## > do nkp = 1, num_kpts > do nn = 1, nntot > do n = 1, num_wann > ! Note that this ln_tmp is defined differently wrt the one in wann_domega > ln_tmp(n,nn,nkp)=( aimag(log(csheet(n,nn,nkp) & > * m_matrix(n,n,nn,nkp))) - sheet(n,nn,nkp) ) > end do > end do > end do > > > rave = 0.0_dp > do iw = 1, num_wann > do ind = 1, 3 > do nkp = 1, num_kpts > do nn = 1, nntot > rave(ind,iw) = rave(ind,iw) + wb(nn) * bk(ind,nn,nkp) & > *ln_tmp(iw,nn,nkp) > enddo > enddo > enddo > enddo > rave = -rave/real(num_kpts,dp) > > rave2 = 0.0_dp > do iw = 1, num_wann > rave2(iw) = sum(rave(:,iw)*rave(:,iw)) > enddo > > r2ave = 0.0_dp > do iw = 1, num_wann > do nkp = 1, num_kpts > do nn = 1, nntot > mnn2 = real(m_matrix(iw,iw,nn,nkp)*conjg(m_matrix(iw,iw,nn,nkp)),kind=dp) > r2ave(iw) = r2ave(iw) + wb(nn) * ( 1.0_dp - mnn2 + ln_tmp(iw,nn,nkp)**2 ) > enddo > enddo > enddo > r2ave = r2ave/real(num_kpts,dp) > ########################################################################################## > It's true the calculation of r2ave and r2 are similar. But why there is an extra term of "ln_tmp(iw,nn,nkp)**2" for r2ave but not for r2? > > What should I do to calculate r? > ########################################################################### > open(rmnunit,file=trim(seedname)//'.rmn',form='formatted',err=158) > do nw1 = 1, num_wann > do nw2 = 1, num_wann > rave_mn = 0.0_dp > delta = 0.0_dp > if (nw1.eq.nw2) delta = 1.0_dp > do nkp = 1, num_kpts > do nn = 1, nntot > rave_mn = rave_mn + wb(nn) * ?????? (What should I put here?) > enddo > enddo > rave_mn = rave_mn / real(num_kpts,dp) > write (rmnunit, '(2i6,f20.12)') nw1, nw2, rave_mn > enddo > enddo > close(rmnunit) > ########################################################################### > > Thanks, > > Liping Chen > Department of Chemistry > University of Rochester > _______________________________________________ > Wannier mailing list > Wannier at quantum-espresso.org > https://urldefense.proofpoint.com/v1/url?u=http://www.democritos.it/mailman/listinfo/wannier&k=p4Ly7qpEBiYPBVenR9G2iQ%3D%3D%0A&r=MhxMznMChIKt4IuapbjnvwFAOKg44L9%2FDsTFLScyNxw%3D%0A&m=LrMVtMdPoy5Xhv0RjvETLxTHjF8P6qJE8zOW9sqIC2w%3D%0A&s=d94ca4d5db473173648561905709bdd4b2f1c6d9fdd616d6d14989568372a2ec > From szaboa at iis.ee.ethz.ch Thu Jan 16 17:42:09 2014 From: szaboa at iis.ee.ethz.ch (Aron Szabo) Date: Thu, 16 Jan 2014 17:42:09 +0100 Subject: [Wannier] vasp-wannier supercell symmetry Message-ID: <52D80BE1.6030904@iis.ee.ethz.ch> Dear Wannier users, I was trying to do some calculations with supercells, and I've noticed that wannier90 won't converge when the supercell has different symmetry than the primitive unit cell. E.g. on a graphene sheet using 4 atoms in a cell instead of 2, I can either define the new lattice vectors just as multiplying one of the original ones with 2, or I can set orthogonal lattice vectors as well. In vasp it won't make any difference in the energies, and also the band structures can be mapped onto each other just considering the different shapes of the Brillouin zone. But while in the first case wannier90 will produce the same Wannier functions as in a primitive cell calculation (just repeating them on the other two atoms), in the second case it won't converge to localized results. Instead of the order of 1, the spreads are in the order of 10 or 100, when starting from the same projections, and doing a few hundred iterations. The same happened when building up supercells of zinc-blende GaSb. When keeping the symmetry of the unit cell it works fine, but when building an orthorombic cell, it doesn't converge. First I got negative weights for the k point neighbours, and negative spreads at the end. I found out that it was because instead of just taking the first two neighbours along each axis (as it should be for orthorombic cells) four other k points (along diagonal directions) were taken too, because they were exactly at the same distance as the first neighbors along the axial direction (the sides of the BZ are a, b, and c, with c^2 = a^2+b^2, due to the symmetry of the system). Artificially changing one lattice vector a bit solved this part with the negative weights, but still, the Wannier functions did not converge to a localized state, but the spread remained huge. Has anyone met such issues, and had maybe any idea what causes this, and how to solve it, when the use of a supercell with some different symmetry as the primitive cell can't be avoided (e.g. to simulate an ultra-thin-body transistor with some pre-defined transport orientation)? Thank you in advance for any help Aron Szabo PhD student @ ETH Zurich, Integrated Systems Laboratory From jonathan.yates at materials.ox.ac.uk Thu Jan 16 18:57:59 2014 From: jonathan.yates at materials.ox.ac.uk (Jonathan Yates) Date: Thu, 16 Jan 2014 17:57:59 +0000 Subject: [Wannier] vasp-wannier supercell symmetry In-Reply-To: <52D80BE1.6030904@iis.ee.ethz.ch> References: <52D80BE1.6030904@iis.ee.ethz.ch> Message-ID: <78877D222077A642A4CFAB09BD0077E0341D8480@MBX10.ad.oak.ox.ac.uk> Aron, I don't see a fundamental reason why using a supercell would not work. However, when you change the symmetry of the cell (and hence k-point mesh) you have changed the maths of the problem, and the calculations are now only equivalent in the limit of perfect k-point sampling. Of course the starting guess for the primitive cell should still be perfectly good for the supercell. Have you tried setting guiding_centres = .true. in the win file? That's always a good idea when you see very large spreads from a chemically reasonable guess. I am a little surprised that you need to break the symmetry to get the kmesh routines to work. One should never need to do that. Can you send me your win file so I can take a look. The kmesh routine is pretty robust - there are certain cases where automatic generation does fail - but we tried to get the code to give the user hints as to how to work around these issues. I'd welcome the chance to make it more robust. Yours Jonathan On 16 Jan 2014, at 16:42, Aron Szabo wrote: > Dear Wannier users, > > I was trying to do some calculations with supercells, and I've noticed > that wannier90 won't converge when the supercell has different symmetry > than the primitive unit cell. E.g. on a graphene sheet using 4 atoms in > a cell instead of 2, I can either define the new lattice vectors just as > multiplying one of the original ones with 2, or I can set orthogonal > lattice vectors as well. In vasp it won't make any difference in the > energies, and also the band structures can be mapped onto each other > just considering the different shapes of the Brillouin zone. But while > in the first case wannier90 will produce the same Wannier functions as > in a primitive cell calculation (just repeating them on the other two > atoms), in the second case it won't converge to localized results. > Instead of the order of 1, the spreads are in the order of 10 or 100, > when starting from the same projections, and doing a few hundred iterations. > > The same happened when building up supercells of zinc-blende GaSb. When > keeping the symmetry of the unit cell it works fine, but when building > an orthorombic cell, it doesn't converge. First I got negative weights > for the k point neighbours, and negative spreads at the end. I found out > that it was because instead of just taking the first two neighbours > along each axis (as it should be for orthorombic cells) four other k > points (along diagonal directions) were taken too, because they were > exactly at the same distance as the first neighbors along the axial > direction (the sides of the BZ are a, b, and c, with c^2 = a^2+b^2, due > to the symmetry of the system). Artificially changing one lattice vector > a bit solved this part with the negative weights, but still, the Wannier > functions did not converge to a localized state, but the spread remained > huge. > > Has anyone met such issues, and had maybe any idea what causes this, and > how to solve it, when the use of a supercell with some different > symmetry as the primitive cell can't be avoided (e.g. to simulate an > ultra-thin-body transistor with some pre-defined transport orientation)? > > Thank you in advance for any help > > Aron Szabo > PhD student @ ETH Zurich, Integrated Systems Laboratory > _______________________________________________ > Wannier mailing list > Wannier at quantum-espresso.org > http://www.democritos.it/mailman/listinfo/wannier -- Department of Materials, University of Oxford, Parks Road, Oxford, OX1 3PH, UK tel: +44 (0)1865 612797 http://users.ox.ac.uk/~oums0549/ From liping.chen at rochester.edu Thu Jan 16 20:44:29 2014 From: liping.chen at rochester.edu (Liping Chen) Date: Thu, 16 Jan 2014 14:44:29 -0500 (EST) Subject: [Wannier] hamiltonian matrix in wannier In-Reply-To: <2118040611.186088.1389901106921.JavaMail.root@z.rochester.edu> Message-ID: <2004272044.186263.1389901469377.JavaMail.root@z.rochester.edu> Dear wannier users, >From the manual, I can get hamiltonian in the WF basis by setting HR_PLOT = true. Below are the codes to write the hamiltonian matrix in hamiltonian.F90 ################################################################### write(file_unit,*) header ! Date and time write(file_unit,*) num_wann write(file_unit,*) nrpts write(file_unit,'(15I5)') (ndegen(i),i=1,nrpts) do irpt=1,nrpts do i=1,num_wann do j=1,num_wann write(file_unit,'(5I5,2F12.6)') irvec(:,irpt), j, i,& ham_r(j,i,irpt) end do end do end do ################################################################### What's the relationship between num_kpts and nrpts? The former should be the total number of the kpoints, right? It seems that there are degeneracies for nrpts. Does it mean that the sum(ndegen(i),i=1,nrpts) = num_kpts? The hamiltonian matrix elements with the same degeneracy are the same? What is irvec(:,irpt) for? Thanks, Liping Chen Department of Chemistry University of Rochester From liping.chen at rochester.edu Fri Jan 17 16:40:52 2014 From: liping.chen at rochester.edu (Liping Chen) Date: Fri, 17 Jan 2014 10:40:52 -0500 (EST) Subject: [Wannier] hamiltonian matrix in wannier In-Reply-To: <2004272044.186263.1389901469377.JavaMail.root@z.rochester.edu> Message-ID: <693448210.197161.1389973251985.JavaMail.root@z.rochester.edu> Dear all, Sorry for the spam. When I checked the mailing list archive in the homepage of wannier90, I found the email I sent out with only one sentence. I also received one copy, but it's normal as below. Is there anyone who can help with the following questions about hamiltonian matrix in wannier90? Since the dimension of position matrix is AA_R(num_wann,num_wann,num_kpts,3) and the dimension of hamiltonian matrix is ham_r(num_wann,num_wann,nrpts), I don't know what's the difference between num_kpts and nrpts. Thanks! Best, Liping ----- Original Message ----- From: "Liping Chen" To: wannier at quantum-espresso.org Sent: Thursday, January 16, 2014 2:44:29 PM Subject: hamiltonian matrix in wannier Dear wannier users, >From the manual, I can get hamiltonian in the WF basis by setting HR_PLOT = true. Below are the codes to write the hamiltonian matrix in hamiltonian.F90 ################################################################### write(file_unit,*) header ! Date and time write(file_unit,*) num_wann write(file_unit,*) nrpts write(file_unit,'(15I5)') (ndegen(i),i=1,nrpts) do irpt=1,nrpts do i=1,num_wann do j=1,num_wann write(file_unit,'(5I5,2F12.6)') irvec(:,irpt), j, i,& ham_r(j,i,irpt) end do end do end do ################################################################### What's the relationship between num_kpts and nrpts? The former should be the total number of the kpoints, right? It seems that there are degeneracies for nrpts. Does it mean that the sum(ndegen(i),i=1,nrpts) = num_kpts? The hamiltonian matrix elements with the same degeneracy are the same? What is irvec(:,irpt) for? Thanks, Liping Chen Department of Chemistry University of Rochester From ivo_souza at ehu.es Sat Jan 18 19:10:22 2014 From: ivo_souza at ehu.es (Ivo Souza) Date: Sat, 18 Jan 2014 19:10:22 +0100 (CET) Subject: [Wannier] hamiltonian matrix in wannier In-Reply-To: <693448210.197161.1389973251985.JavaMail.root@z.rochester.edu> References: <693448210.197161.1389973251985.JavaMail.root@z.rochester.edu> Message-ID: Dear Liping, > Is there anyone who can help with the following questions about > hamiltonian matrix in wannier90? Since the dimension of position matrix > is AA_R(num_wann,num_wann,num_kpts,3) and the dimension of hamiltonian > matrix is ham_r(num_wann,num_wann,nrpts), I don't know what's the > difference between num_kpts and nrpts. Thanks! 1) Actually AA_R has dimensions (num_wann,num_wann,nrpts,3), with nrpts as the third dimension, *not* num_kpts. Indeed, all operators in the Wannier basis (Op = H, r, etc) are defined as <0m|Op|Rn>, where R runs over the same set of nrpts lattice vectors R, which are obtained as expalined below. 2) Regarding the difference between nrpts (number of R-vectors) and num_kpts (number of k-points in the uniform grid used in the nscf ab-initio calculation): If your ab-initio k-point grid contains num_kpts = N_1*N_2*N_3 k-points, the Wannier functions are periodic over a supercell with dimensions A_i=N_i*a_i, where {a_i} are the crystal-cell lattice vectors, and i=1,2,3. The vectors {A_i} are the primitive translations of a superlattice of vectors RR. The optimal choice of R-vectors to be used in the Fourier sums are the ones which lie within a Wigner-Seitz (W-S) supercell centered at the origin: they are closer to RR=0 than to any other superlattice vectors RR. You are right to expect that there should be exactly num_kpts such R-vectors (i.e., nrpts = num_kpts). But there is a subtlety: sometimes you will find R-vectors which are equidistant to RR=0 and to one or several adjacent RR-vectors. When that happens, the R-vector in question is added to your set, but the code also records, in the variable ndegen, the number of W-S cells which "share" this R-vector. At the end you arrive at a set of nrpts >= num_kpts R-vectors, such that the "sum rule" sum_R 1/ndegen(R) = num_kpts is satisfied, with the sum over the nrpts R-vectors. Of course, ndegen=1 for "interior" R-vectors (those which are not at W-S supercell boundary). If all R-vectors are interior, then nrpts=num_kpts. Suppose you have calculated the Hamiltonian matrix H_mn(R)=<0m|H|Rn> in the Wannier basis. The Fourier transform H_mn(k) is obtained as H_mn(k) = sum_R e^{+ik.R}*H_mn(R)/ndegen(R) [note the weighting factor 1/ndegen(R)]. 3) Your last question: "What is irvec(:,irpt) for?" This is how the R-vectors that enter the sum_R above are stored in the code. The index irpt runs from 1 to nrpts, and irvec(1:3,irpt) are the integer expansion coefficients of R in the basis of the lattice vectors {a_i}. Best, Ivo > > Best, > > Liping > > ----- Original Message ----- > From: "Liping Chen" > To: wannier at quantum-espresso.org > Sent: Thursday, January 16, 2014 2:44:29 PM > Subject: hamiltonian matrix in wannier > > Dear wannier users, > > From the manual, I can get hamiltonian in the WF basis by setting > HR_PLOT = true. Below are the codes to write the hamiltonian matrix in > hamiltonian.F90 > ################################################################### > write(file_unit,*) header ! Date and time > write(file_unit,*) num_wann > write(file_unit,*) nrpts > write(file_unit,'(15I5)') (ndegen(i),i=1,nrpts) > do irpt=1,nrpts > do i=1,num_wann > do j=1,num_wann > write(file_unit,'(5I5,2F12.6)') irvec(:,irpt), j, i,& > ham_r(j,i,irpt) > end do > end do > end do > ################################################################### > What's the relationship between num_kpts and nrpts? The former should be > the total number of the kpoints, right? It seems that there are > degeneracies for nrpts. Does it mean that the sum(ndegen(i),i=1,nrpts) = > num_kpts? The hamiltonian matrix elements with the same degeneracy are > the same? What is irvec(:,irpt) for? > > Thanks, > > Liping Chen > Department of Chemistry > University of Rochester > _______________________________________________ > Wannier mailing list > Wannier at quantum-espresso.org > http://www.democritos.it/mailman/listinfo/wannier > From ssg09d at my.fsu.edu Tue Jan 28 01:57:08 2014 From: ssg09d at my.fsu.edu (Ghosh, Soham Subhra) Date: Tue, 28 Jan 2014 00:57:08 +0000 Subject: [Wannier] Projections Message-ID: Dear Wannier90 users, I am a new user of Wannier90. I have two questions, and I will be very thankful if you can help me out. I am trying to find MLWFs for the cuprate La4Ba2Cu2O10. A DFT LDA calculation shows (using the Vienna-Ab-Initio Simulation package) that it has 2 narrow bands around the Fermi level, with a dispersion of only a few meV. They are well separated from all the other bands. My axes are along the lattice vectors of the SC cell and the Cu-O planes are at 45 degrees to the walls of the cell. What I understand from the site-and-band projected DOS (in VASP) is that each of the two bands is the sum of antibonding Cu-dxy and Cu-dz2-r2. There is one band per copper atom. Both Cu-dxy and Cu-dz2-r2 have two peaks, one at Fermi energy and one significantly below. Is there a way to incorporate that in my initial projections? For my 2 wannier functions, wannier90 allows only specific values of 'l' and 'm' as initial projection. The only projection that converges is Cu-dz2. My second question is about the use of narrow gaussian states centered at one of the main lobes of the Cu-d contribution as projection. Is that possible in Wannier90? As a first step of my calculation, I am trying to replicate the MLWFs in existing literature (PRL 89,16(2002)) where the use of this specific projection is quoted. I am copying below my .win file (without the k-point list). Delta spread becomes ~10E-11 only after 180 odd steps. The program does not converge below Delta-spread ~10E-02 for most other values of trial_step, and for any other projection. Energy from VASP itself is well-converged. ------------------------------------------------------------------------------ exclude_bands = 1-72,75-160 num_wann = 2 begin projections c=0.00,3.42,2.93:dz2 c=3.42,0.00,2.93:dz2 end projections num_iter = 200 guiding_centres = TRUE trial_step = 1.9 begin unit_cell_cart 6.8447000 0.0000000 0.0000000 0.0000000 6.8447000 0.0000000 0.0000000 0.0000000 5.8637000 end unit_cell_cart begin atoms_cart La 1.1964536 4.6188036 0.0000000 La 2.2258964 1.1964536 0.0000000 La 5.6482464 2.2258964 0.0000000 La 4.6188036 5.6482464 0.0000000 Ba 0.0000000 0.0000000 2.9318500 Ba 3.4223500 3.4223500 2.9318500 Cu 0.0000000 3.4223500 2.9318500 Cu 3.4223500 0.0000000 2.9318500 O 0.0000000 0.0000000 0.0000000 O 3.4223500 3.4223500 0.0000000 O 2.4818882 5.9042382 1.5509486 O 2.4818882 5.9042382 4.3127514 O 0.9404618 2.4818882 1.5509486 O 0.9404618 2.4818882 4.3127514 O 4.3628118 0.9404618 1.5509486 O 4.3628118 0.9404618 4.3127514 O 5.9042382 4.3628118 1.5509486 O 5.9042382 4.3628118 4.3127514 end atoms_cart --------------------------------------------------------------------------------- Thank a lot you for your time. Regards, Soham. Soham S. Ghosh Graduate Student Department of Physics, Florida State University -------------- next part -------------- An HTML attachment was scrubbed... URL: From a.mostofi at imperial.ac.uk Tue Jan 28 22:44:41 2014 From: a.mostofi at imperial.ac.uk (Arash Mostofi) Date: Tue, 28 Jan 2014 21:44:41 +0000 Subject: [Wannier] Projections In-Reply-To: References: Message-ID: <52E824C9.50107@imperial.ac.uk> Dear Soham, There's no means by which to explicitly get the code to ask for projections that are linear combinations of different d-orbital projections. However, given that your system is effectively only a two-band problem, you may be able to perform the necessary linear combinations yourself. Eg, the electronic structure code will return to you projections such as <\psi_nk | d_1> and <\psi_nk | d_2> whereas you would like, for example, <\psi_nk | (d_1 \pm d_2)> = <\psi_nk | d_1> + <\psi_nk | d_2>. You may be able to achieve the result you want by taking appropriate linear combinations of the columns of the A_{mn} matrix that is returned by the electronic structure code. Regarding your second question, whilst the code does not support Gaussian projections, it should not make too much of a difference to use "s" orbital (l=0) projections at the locations that you want. You can then control the narrowness using the "zona" parameter in the definition of the projection (Wannier90 User Guide, Ch. 3 for more information). Best wishes, Arash -- Dr Arash A Mostofi Departments of Materials and Physics Deputy Director, CDT on Theory and Simulation of Materials Imperial College London, London SW7 2AZ, UK +44 (0)207 594 8154 | www.cmth.ph.ic.ac.uk/people/a.mostofi On 28/01/2014 00:57, Ghosh, Soham Subhra wrote: > Dear Wannier90 users, > > I am a new user of Wannier90. I have two questions, and I will be very > thankful if you can help me out. > > I am trying to find MLWFs for the cuprate La4Ba2Cu2O10. A DFT LDA > calculation shows (using the Vienna-Ab-Initio Simulation package) that > it has 2 narrow bands around the Fermi level, with a dispersion of only > a few meV. They are well separated from all the other bands. My axes are > along the lattice vectors of the SC cell and the Cu-O planes are at 45 > degrees to the walls of the cell. > > What I understand from the site-and-band projected DOS (in VASP) is that > each of the two bands is the sum of antibonding Cu-dxy and Cu-dz2-r2. > There is one band per copper atom. Both Cu-dxy and Cu-dz2-r2 have two > peaks, one at Fermi energy and one significantly below. Is there a way > to incorporate that in my initial projections? For my 2 wannier > functions, wannier90 allows only specific values of 'l' and 'm' as > initial projection. The only projection that converges is Cu-dz2. > > > My second question is about the use of narrow gaussian states centered > at one of the main lobes of the Cu-d contribution as projection. Is that > possible in Wannier90? As a first step of my calculation, I am trying to > replicate the MLWFs in existing literature (PRL 89,16(2002)) where the > use of this specific projection is quoted. > > > I am copying below my .win file (without the k-point list). Delta spread > becomes ~10E-11 only after 180 odd steps. The program does not converge > below Delta-spread ~10E-02 for most other values of trial_step, and for > any other projection. Energy from VASP itself is well-converged. > ------------------------------------------------------------------------------ > exclude_bands = 1-72,75-160 > num_wann = 2 > > begin projections > c=0.00,3.42,2.93:dz2 > c=3.42,0.00,2.93:dz2 > end projections > > num_iter = 200 > guiding_centres = TRUE > trial_step = 1.9 > > begin unit_cell_cart > 6.8447000 0.0000000 0.0000000 > 0.0000000 6.8447000 0.0000000 > 0.0000000 0.0000000 5.8637000 > end unit_cell_cart > > begin atoms_cart > La 1.1964536 4.6188036 0.0000000 > La 2.2258964 1.1964536 0.0000000 > La 5.6482464 2.2258964 0.0000000 > La 4.6188036 5.6482464 0.0000000 > Ba 0.0000000 0.0000000 2.9318500 > Ba 3.4223500 3.4223500 2.9318500 > Cu 0.0000000 3.4223500 2.9318500 > Cu 3.4223500 0.0000000 2.9318500 > O 0.0000000 0.0000000 0.0000000 > O 3.4223500 3.4223500 0.0000000 > O 2.4818882 5.9042382 1.5509486 > O 2.4818882 5.9042382 4.3127514 > O 0.9404618 2.4818882 1.5509486 > O 0.9404618 2.4818882 4.3127514 > O 4.3628118 0.9404618 1.5509486 > O 4.3628118 0.9404618 4.3127514 > O 5.9042382 4.3628118 1.5509486 > O 5.9042382 4.3628118 4.3127514 > end atoms_cart > > --------------------------------------------------------------------------------- > > Thank a lot you for your time. > > Regards, > Soham. > > Soham S. Ghosh > Graduate Student > Department of Physics, > Florida State University > > > > _______________________________________________ > Wannier mailing list > Wannier at quantum-espresso.org > http://www.democritos.it/mailman/listinfo/wannier > From 20134208031 at stu.suda.edu.cn Wed Jan 29 11:24:30 2014 From: 20134208031 at stu.suda.edu.cn (=?GBK?B?wfXKy7O/?=) Date: Wed, 29 Jan 2014 18:24:30 +0800 (GMT+08:00) Subject: [Wannier] how to calculate fermi surface with VASP and WANNIER90 Message-ID: <168c518e.43734.143dd875613.Coremail.20134208031@stu.suda.edu.cn> Dear All: I've just started to use the wannier90 code, and having a little problem. so, I would appreciate very much if you could give me a little bit of suggestions. I want to know how to calculate fermi surface with VASP and WANNIER90, I failed to get a good result for some metals. It is my steps: 1. run scf with VASP INCAR : LWANNIER90 = .TRUE. ISYM=-1 KPOINTS: Gamma-centered Monkhorst-Pack grid 0 G 20 20 20 0 0 0 2. run wannier90.x wannier90.win: num_wann = 24 ! set to NBANDS by VASP use_bloch_phases = T num_iter = 10000 num_print_cycles = 500 fermi_energy = 2.51449163 fermi_surface_plot = true fermi_surface_num_points = 50 mp_grid = 20 20 20 I'm looking forward to hearing your suggestions. Thanks. Best Shi-Chen Liu -- Address: Department of Physics, Soochow University, No. 001, Shizi Road, Suzhou, Jiangsu province, China Postcode?215006 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jonathan.yates at materials.ox.ac.uk Wed Jan 29 14:05:54 2014 From: jonathan.yates at materials.ox.ac.uk (Jonathan Yates) Date: Wed, 29 Jan 2014 13:05:54 +0000 Subject: [Wannier] how to calculate fermi surface with VASP and WANNIER90 In-Reply-To: <168c518e.43734.143dd875613.Coremail.20134208031@stu.suda.edu.cn> References: <168c518e.43734.143dd875613.Coremail.20134208031@stu.suda.edu.cn> Message-ID: <78877D222077A642A4CFAB09BD0077E03424C308@MBX10.ad.oak.ox.ac.uk> On 29 Jan 2014, at 10:24, ??? wrote: > Dear All: > > I've just started to use the wannier90 code, and having a little problem. so, I would appreciate very much if you could give me a little bit of suggestions. > I want to know how to calculate fermi surface with VASP and WANNIER90, I failed to get a good result for some metals. Shi-Chen, You've not given us much information here - how do you decide what is good result, and which metals fail? Anyhow, let me make some generic comments: In order for the wannier interpolation, and hence Fermi surface calculation, to work well you need to have "good" (ie well localised) wannier functions. - Are your WF real? - Do the wannier interpolated bands match well the VASP bands in the region of interest? If these conditions are not satisfied, you should not expect to get a meaningful fermi surface. In the wannier tutorial there are examples for Copper and Iron - these are written for pwscf, but they could be easily adapted for vasp. Finally, I note that you are using a 20 20 20 MP grid to generate the Wannier functions - this is likely to be far more than is needed for converged results (not a problem, just makes the calculations a lot slower). You might find it easier to start with a pretty small grid (eg 4x4x4) to get things working, then move up to a larger grid to converge the results to the accuracy you require. Jonathan -- Department of Materials, University of Oxford, Parks Road, Oxford, OX1 3PH, UK tel: +44 (0)1865 612797 http://users.ox.ac.uk/~oums0549/ From ssg09d at my.fsu.edu Thu Jan 30 17:12:55 2014 From: ssg09d at my.fsu.edu (Ghosh, Soham Subhra) Date: Thu, 30 Jan 2014 16:12:55 +0000 Subject: [Wannier] Projections In-Reply-To: <52E824C9.50107@imperial.ac.uk> References: , <52E824C9.50107@imperial.ac.uk> Message-ID: <4180360ee7e7486498199640dfbbcd7d@BL2PR05MB209.namprd05.prod.outlook.com> Dear Dr. Arash A Mostafi, Thank you, I will get working on those ideas. Regards, Soham. Soham S. Ghosh Graduate Student Department of Physics Florida State University ________________________________________ From: wannier-bounces at quantum-espresso.org on behalf of Arash Mostofi Sent: Tuesday, January 28, 2014 4:44 PM To: wannier at quantum-espresso.org Subject: Re: [Wannier] Projections Dear Soham, There's no means by which to explicitly get the code to ask for projections that are linear combinations of different d-orbital projections. However, given that your system is effectively only a two-band problem, you may be able to perform the necessary linear combinations yourself. Eg, the electronic structure code will return to you projections such as <\psi_nk | d_1> and <\psi_nk | d_2> whereas you would like, for example, <\psi_nk | (d_1 \pm d_2)> = <\psi_nk | d_1> + <\psi_nk | d_2>. You may be able to achieve the result you want by taking appropriate linear combinations of the columns of the A_{mn} matrix that is returned by the electronic structure code. Regarding your second question, whilst the code does not support Gaussian projections, it should not make too much of a difference to use "s" orbital (l=0) projections at the locations that you want. You can then control the narrowness using the "zona" parameter in the definition of the projection (Wannier90 User Guide, Ch. 3 for more information). Best wishes, Arash -- Dr Arash A Mostofi Departments of Materials and Physics Deputy Director, CDT on Theory and Simulation of Materials Imperial College London, London SW7 2AZ, UK +44 (0)207 594 8154 | www.cmth.ph.ic.ac.uk/people/a.mostofi On 28/01/2014 00:57, Ghosh, Soham Subhra wrote: > Dear Wannier90 users, > > I am a new user of Wannier90. I have two questions, and I will be very > thankful if you can help me out. > > I am trying to find MLWFs for the cuprate La4Ba2Cu2O10. A DFT LDA > calculation shows (using the Vienna-Ab-Initio Simulation package) that > it has 2 narrow bands around the Fermi level, with a dispersion of only > a few meV. They are well separated from all the other bands. My axes are > along the lattice vectors of the SC cell and the Cu-O planes are at 45 > degrees to the walls of the cell. > > What I understand from the site-and-band projected DOS (in VASP) is that > each of the two bands is the sum of antibonding Cu-dxy and Cu-dz2-r2. > There is one band per copper atom. Both Cu-dxy and Cu-dz2-r2 have two > peaks, one at Fermi energy and one significantly below. Is there a way > to incorporate that in my initial projections? For my 2 wannier > functions, wannier90 allows only specific values of 'l' and 'm' as > initial projection. The only projection that converges is Cu-dz2. > > > My second question is about the use of narrow gaussian states centered > at one of the main lobes of the Cu-d contribution as projection. Is that > possible in Wannier90? As a first step of my calculation, I am trying to > replicate the MLWFs in existing literature (PRL 89,16(2002)) where the > use of this specific projection is quoted. > > > I am copying below my .win file (without the k-point list). Delta spread > becomes ~10E-11 only after 180 odd steps. The program does not converge > below Delta-spread ~10E-02 for most other values of trial_step, and for > any other projection. Energy from VASP itself is well-converged. > ------------------------------------------------------------------------------ > exclude_bands = 1-72,75-160 > num_wann = 2 > > begin projections > c=0.00,3.42,2.93:dz2 > c=3.42,0.00,2.93:dz2 > end projections > > num_iter = 200 > guiding_centres = TRUE > trial_step = 1.9 > > begin unit_cell_cart > 6.8447000 0.0000000 0.0000000 > 0.0000000 6.8447000 0.0000000 > 0.0000000 0.0000000 5.8637000 > end unit_cell_cart > > begin atoms_cart > La 1.1964536 4.6188036 0.0000000 > La 2.2258964 1.1964536 0.0000000 > La 5.6482464 2.2258964 0.0000000 > La 4.6188036 5.6482464 0.0000000 > Ba 0.0000000 0.0000000 2.9318500 > Ba 3.4223500 3.4223500 2.9318500 > Cu 0.0000000 3.4223500 2.9318500 > Cu 3.4223500 0.0000000 2.9318500 > O 0.0000000 0.0000000 0.0000000 > O 3.4223500 3.4223500 0.0000000 > O 2.4818882 5.9042382 1.5509486 > O 2.4818882 5.9042382 4.3127514 > O 0.9404618 2.4818882 1.5509486 > O 0.9404618 2.4818882 4.3127514 > O 4.3628118 0.9404618 1.5509486 > O 4.3628118 0.9404618 4.3127514 > O 5.9042382 4.3628118 1.5509486 > O 5.9042382 4.3628118 4.3127514 > end atoms_cart > > --------------------------------------------------------------------------------- > > Thank a lot you for your time. > > Regards, > Soham. > > Soham S. Ghosh > Graduate Student > Department of Physics, > Florida State University > > > > _______________________________________________ > Wannier mailing list > Wannier at quantum-espresso.org > http://www.democritos.it/mailman/listinfo/wannier > _______________________________________________ Wannier mailing list Wannier at quantum-espresso.org http://www.democritos.it/mailman/listinfo/wannier From liping.chen at rochester.edu Thu Jan 30 19:37:02 2014 From: liping.chen at rochester.edu (Liping Chen) Date: Thu, 30 Jan 2014 13:37:02 -0500 (EST) Subject: [Wannier] wannier WF and Hamiltonian In-Reply-To: <1488617344.378252.1391105581815.JavaMail.root@z.rochester.edu> Message-ID: <1629926865.378803.1391107022284.JavaMail.root@z.rochester.edu> Dear wannier users, I want to show the wannier WF with xcrysden. I find that there is an example (the first one) in wannier90 tutorial. It seems that the UNK* files should to be prepared in advance. It's easy to get them by PWSCF. But now I'm using VASP. I've tried to check the WAVECAR from VASP. It seems that the WAVECAR for the coefficients is written like this: ################################################## do ik=1,num_kpoints do iband=1,nband do iplane=1,nplane coeff(iplane,iband) ! write the coefficients enddo enddo enddo ################################################## The number of plane waves (nplane) is not the same for all the kpoints (ik). I don't know the relationship the number of plane waves and the ngx, ngy, ngz written in the beginning of the UNK* files. How to get the UNK* files from VASP so that I can get the WF from wannier and then plot it? In the previous discussion of "how to calculate fermi surface with VASP and WANNIER90", it seems that Jonathan said WF should be real. Then should the Hamilton matrix <0n|H|Rm> and the position matrix <0n|r|Rm> in WF basis be real accordingly? But when I print out hamiltonian matrix with "hr_plot = true", it's not real but complex with unignorable imaginary part. Is it wrong or not? Thanks in advance! Liping Chen Department of Chemistry University of Rochester From szaboa at iis.ee.ethz.ch Thu Jan 30 21:02:18 2014 From: szaboa at iis.ee.ethz.ch (szaboa) Date: Thu, 30 Jan 2014 21:02:18 +0100 Subject: [Wannier] wannier WF and Hamiltonian In-Reply-To: <1629926865.378803.1391107022284.JavaMail.root@z.rochester.edu> References: <1629926865.378803.1391107022284.JavaMail.root@z.rochester.edu> Message-ID: Dear Liping Chen, You should add an LWRITE_UNK = .TRUE. line in the INCAR file to make vasp produce those UNK files. Regarding your second question: The matrix elements should be real indeed. As far as i know, having nonnegligible imaginary parts usually means that the program converged to a fals minimum. You should probably specify different initial projections. Best regards, Aron Szabo On 2014-01-30 19:37, Liping Chen wrote: > Dear wannier users, > > I want to show the wannier WF with xcrysden. I find that there is an > example (the first one) in wannier90 tutorial. It seems that the UNK* > files should to be prepared in advance. It's easy to get them by > PWSCF. But now I'm using VASP. I've tried to check the WAVECAR from > VASP. It seems that the WAVECAR for the coefficients is written like > this: > ################################################## > do ik=1,num_kpoints > do iband=1,nband > do iplane=1,nplane > coeff(iplane,iband) ! write the coefficients > enddo > enddo > enddo > ################################################## > The number of plane waves (nplane) is not the same for all the > kpoints (ik). I don't know the relationship the number of plane waves > and the ngx, ngy, ngz written in the beginning of the UNK* files. How > to get the UNK* files from VASP so that I can get the WF from wannier > and then plot it? > > In the previous discussion of "how to calculate fermi surface with > VASP and WANNIER90", it seems that Jonathan said WF should be real. > Then should the Hamilton matrix <0n|H|Rm> and the position matrix > <0n|r|Rm> in WF basis be real accordingly? But when I print out > hamiltonian matrix with "hr_plot = true", it's not real but complex > with unignorable imaginary part. Is it wrong or not? > > Thanks in advance! > > Liping Chen > Department of Chemistry > University of Rochester > _______________________________________________ > Wannier mailing list > Wannier at quantum-espresso.org > http://www.democritos.it/mailman/listinfo/wannier From liping.chen at rochester.edu Thu Jan 30 21:27:25 2014 From: liping.chen at rochester.edu (Liping Chen) Date: Thu, 30 Jan 2014 15:27:25 -0500 (EST) Subject: [Wannier] wannier WF and Hamiltonian In-Reply-To: Message-ID: <818595766.381839.1391113645757.JavaMail.root@z.rochester.edu> Dear Aron, Thanks for your quick reply! About the initial projections, I always have problems. Now I'm doing the calculation on SiO2. Actually, I tried different initial projections. They gave similar results of "Omega Total = 579.766631183", which means that the WF is extended over 3-4 unit cells (the lattice constant lc in three directions is 7.12 Ang). It shouldn't be like this, right? My supervisor thinks the WF should be localized in one unit cell. I don't know it's correct or not, since I've looked at the WF of GaAs in example01 of wannier90. It seems that the WF is not localized in one unit cell. If the WF is localized in one unit cell, does it mean that Omega Total should be close to the value of lc*lc? Is any principle to set the initial projections? It seems that num_wann should be consistent with the number of projections, since sometimes it says "too many projections" or "too less projections". Can you give some suggestions about the initial projections? Thanks! Liping ----- Original Message ----- From: "szaboa" To: wannier at quantum-espresso.org Sent: Thursday, January 30, 2014 3:02:18 PM Subject: Re: [Wannier] wannier WF and Hamiltonian Dear Liping Chen, You should add an LWRITE_UNK = .TRUE. line in the INCAR file to make vasp produce those UNK files. Regarding your second question: The matrix elements should be real indeed. As far as i know, having nonnegligible imaginary parts usually means that the program converged to a fals minimum. You should probably specify different initial projections. Best regards, Aron Szabo On 2014-01-30 19:37, Liping Chen wrote: > Dear wannier users, > > I want to show the wannier WF with xcrysden. I find that there is an > example (the first one) in wannier90 tutorial. It seems that the UNK* > files should to be prepared in advance. It's easy to get them by > PWSCF. But now I'm using VASP. I've tried to check the WAVECAR from > VASP. It seems that the WAVECAR for the coefficients is written like > this: > ################################################## > do ik=1,num_kpoints > do iband=1,nband > do iplane=1,nplane > coeff(iplane,iband) ! write the coefficients > enddo > enddo > enddo > ################################################## > The number of plane waves (nplane) is not the same for all the > kpoints (ik). I don't know the relationship the number of plane waves > and the ngx, ngy, ngz written in the beginning of the UNK* files. How > to get the UNK* files from VASP so that I can get the WF from wannier > and then plot it? > > In the previous discussion of "how to calculate fermi surface with > VASP and WANNIER90", it seems that Jonathan said WF should be real. > Then should the Hamilton matrix <0n|H|Rm> and the position matrix > <0n|r|Rm> in WF basis be real accordingly? But when I print out > hamiltonian matrix with "hr_plot = true", it's not real but complex > with unignorable imaginary part. Is it wrong or not? > > Thanks in advance! > > Liping Chen > Department of Chemistry > University of Rochester > _______________________________________________ > Wannier mailing list > Wannier at quantum-espresso.org > https://urldefense.proofpoint.com/v1/url?u=http://www.democritos.it/mailman/listinfo/wannier&k=p4Ly7qpEBiYPBVenR9G2iQ%3D%3D%0A&r=MhxMznMChIKt4IuapbjnvwFAOKg44L9%2FDsTFLScyNxw%3D%0A&m=dvh1GVVx08Fk0oEASvg2eLCYhLzlSQ47S4ouvCLQWgI%3D%0A&s=a0394c2f48f06646cee39dc908cfece9100e75fbcd14193291a49c29eb8638b9 _______________________________________________ Wannier mailing list Wannier at quantum-espresso.org https://urldefense.proofpoint.com/v1/url?u=http://www.democritos.it/mailman/listinfo/wannier&k=p4Ly7qpEBiYPBVenR9G2iQ%3D%3D%0A&r=MhxMznMChIKt4IuapbjnvwFAOKg44L9%2FDsTFLScyNxw%3D%0A&m=dvh1GVVx08Fk0oEASvg2eLCYhLzlSQ47S4ouvCLQWgI%3D%0A&s=a0394c2f48f06646cee39dc908cfece9100e75fbcd14193291a49c29eb8638b9 From szaboa at iis.ee.ethz.ch Thu Jan 30 23:31:41 2014 From: szaboa at iis.ee.ethz.ch (szaboa) Date: Thu, 30 Jan 2014 23:31:41 +0100 Subject: [Wannier] wannier WF and Hamiltonian In-Reply-To: <818595766.381839.1391113645757.JavaMail.root@z.rochester.edu> References: <818595766.381839.1391113645757.JavaMail.root@z.rochester.edu> Message-ID: <5028d53ec03f966466f7ea9b67e91a48@iis.ee.ethz.ch> Dear Liping, The total spread is just the sum of all the spreads of the WFs, so it's value depends on the number of WFs. Instead you should look at the individual WF spreads. It might depend on the system, but in my experience they should be in the order of a few (2-3) Angstrom^2 when everything goes fine. Before calculating the Wannier functions, you should calculate the band structure of your system, and decide which bands you want to reproduce with WFs. You are probably interested in the ones close to Fermi energy. If you have a set of bands that are separated from the others, then you should use the exclude_bands [n1-n2] command in the wannier90.win file to exclude all the other bands. If it's not the case, then you need to use the disentanglement method, where you have to specify an inner energy window, where the bands will be identical to the bloch states, and an outer, that's used to disentangle the bands. In this case increasing the size of the inner window will increase the spread of the WFs, so you should only cover the energy range with it that you want to reproduce very accurately. Yes, the number of the projections must be the same as the Wannier functions. One initial projection corresponds to one WF. And the number of WF's must be the same as the number of input bands if those bands are not entangled. To make good initial projections, you should look at the primary character of the considered bands. In Vasp, specifying LORBIT = 10 in the INCAR, it will project the DOS onto spherical harmonics, centered on the ions. It will create a file called PROCAR, where you can find your bands by looking at the energy and k points. Try to find the ion and the orbital type that contributes the most for a given band at various k points, and use that as the projection for that band. Hope it helps, Aron On 2014-01-30 21:27, Liping Chen wrote: > Dear Aron, > > Thanks for your quick reply! > > About the initial projections, I always have problems. Now I'm doing > the calculation on SiO2. Actually, I tried different initial > projections. They gave similar results of "Omega Total = > 579.766631183", which means that the WF is extended over 3-4 unit > cells (the lattice constant lc in three directions is 7.12 Ang). It > shouldn't be like this, right? My supervisor thinks the WF should be > localized in one unit cell. I don't know it's correct or not, since > I've looked at the WF of GaAs in example01 of wannier90. It seems > that > the WF is not localized in one unit cell. If the WF is localized in > one unit cell, does it mean that Omega Total should be close to the > value of lc*lc? Is any principle to set the initial projections? It > seems that num_wann should be consistent with the number of > projections, since sometimes it says "too many projections" or "too > less projections". Can you give some suggestions about the initial > projections? Thanks! > > Liping > > ----- Original Message ----- > From: "szaboa" > To: wannier at quantum-espresso.org > Sent: Thursday, January 30, 2014 3:02:18 PM > Subject: Re: [Wannier] wannier WF and Hamiltonian > > Dear Liping Chen, > > You should add an LWRITE_UNK = .TRUE. line in the INCAR file to make > vasp produce those UNK files. > > Regarding your second question: The matrix elements should be real > indeed. As far as i know, having nonnegligible imaginary parts > usually > means that the program converged to a fals minimum. You should > probably > specify different initial projections. > > Best regards, > Aron Szabo > > On 2014-01-30 19:37, Liping Chen wrote: >> Dear wannier users, >> >> I want to show the wannier WF with xcrysden. I find that there is an >> example (the first one) in wannier90 tutorial. It seems that the >> UNK* >> files should to be prepared in advance. It's easy to get them by >> PWSCF. But now I'm using VASP. I've tried to check the WAVECAR from >> VASP. It seems that the WAVECAR for the coefficients is written like >> this: >> ################################################## >> do ik=1,num_kpoints >> do iband=1,nband >> do iplane=1,nplane >> coeff(iplane,iband) ! write the coefficients >> enddo >> enddo >> enddo >> ################################################## >> The number of plane waves (nplane) is not the same for all the >> kpoints (ik). I don't know the relationship the number of plane >> waves >> and the ngx, ngy, ngz written in the beginning of the UNK* files. >> How >> to get the UNK* files from VASP so that I can get the WF from >> wannier >> and then plot it? >> >> In the previous discussion of "how to calculate fermi surface with >> VASP and WANNIER90", it seems that Jonathan said WF should be real. >> Then should the Hamilton matrix <0n|H|Rm> and the position matrix >> <0n|r|Rm> in WF basis be real accordingly? But when I print out >> hamiltonian matrix with "hr_plot = true", it's not real but complex >> with unignorable imaginary part. Is it wrong or not? >> >> Thanks in advance! >> >> Liping Chen >> Department of Chemistry >> University of Rochester >> _______________________________________________ >> Wannier mailing list >> Wannier at quantum-espresso.org >> >> https://urldefense.proofpoint.com/v1/url?u=http://www.democritos.it/mailman/listinfo/wannier&k=p4Ly7qpEBiYPBVenR9G2iQ%3D%3D%0A&r=MhxMznMChIKt4IuapbjnvwFAOKg44L9%2FDsTFLScyNxw%3D%0A&m=dvh1GVVx08Fk0oEASvg2eLCYhLzlSQ47S4ouvCLQWgI%3D%0A&s=a0394c2f48f06646cee39dc908cfece9100e75fbcd14193291a49c29eb8638b9 > _______________________________________________ > Wannier mailing list > Wannier at quantum-espresso.org > > https://urldefense.proofpoint.com/v1/url?u=http://www.democritos.it/mailman/listinfo/wannier&k=p4Ly7qpEBiYPBVenR9G2iQ%3D%3D%0A&r=MhxMznMChIKt4IuapbjnvwFAOKg44L9%2FDsTFLScyNxw%3D%0A&m=dvh1GVVx08Fk0oEASvg2eLCYhLzlSQ47S4ouvCLQWgI%3D%0A&s=a0394c2f48f06646cee39dc908cfece9100e75fbcd14193291a49c29eb8638b9 > _______________________________________________ > Wannier mailing list > Wannier at quantum-espresso.org > http://www.democritos.it/mailman/listinfo/wannier