[Wannier] Question over the Amn(k) matrix

Mostofi, Arash a.mostofi at imperial.ac.uk
Wed Nov 7 18:00:09 CET 2018

Dear Hung,

You need to think of the projection function g_{n}(r) as being localised in all space, and the integral A_{mn}^{k} = < \psi_{mk} | g_{n} > as being over all space:

A_{mn}^{k} = \int_{all space} dr \psi_{mk}(r) g_{n}(r)

Then use Bloch’s theorem to write \psi_{mk}(r) = u_{mk}(r) e^{ik.r}, where u_{mk}(r) is a function that has the periodicity of the unit cell and, therefore, can be expressed as a Fourier series u_{mk}(r) = \sum_{G} c_{mk,G} e^{iG.r}, where G is a reciprocal lattice vector of the unit cell. Then you’ll see that you can write A_{mn}^{k} as a sum in G-space involving the Fourier coefficients of u_{mk}(r) (essentially the eigenvectors that come out of an electronic structure calculation) and the Fourier transform of g_{n}(r) at specific k+G vectors. So A_{mn}^{k} can be evaluated quite easily on the reciprocal-space Fourier mesh. This is, I believe, the way it’s done in pw2wannier90 — Stefano de Gironcoli did the original implementation of that.

I’m not sure about implementations in the interfaces to other electronic structure codes but, in principle, you could evaluate A_{mn}^{k} in real space too. You would need to use a supercell and your domain of integration needs to be large enough for g_n(r) to have decayed sufficiently to converge the truncated real-space integral.

Best wishes,


On 28 Sep 2018, at 18:55, Hung Pham <phamx494 at umn.edu<mailto:phamx494 at umn.edu>> wrote:

Dear Wannier90 developers,

Firstly, I do apologize for my long email. Thank you for your patience.

I have implemented the interface between Wannier90 and PySCF.
I have a question over Amn(k) matrix. I just recall the formula of Amn(k)

* In my 1st implementation, | psi_m^k(r)> is represented by a uniform grid of the unit cell. The gn(r) is similarly described in a similar way (only computed at the grid points in the unit cell). And Amn(k) is calculated in a numerical manner. Here, I assume that gn(r) is not k-dependent.
There is a concern over this. If we put a p orbital, for example, as a guess at (0.0,0.0,0.0), then we will lose the partially information of the gn(r), i.e. the part outside the unit cell (only grid points in the unit cell is considered).

* In my 2nd implementation, the gn(r) is represented by a uniform grid for the supercell that is consistent with the k-mesh used. Then gn(r) is Fourier-transformed to the k-space representation gn^k(r). This implementation is backed up by the fact that one wants gn(r), as a guessed function, is close to the WFs (the Fourier-transformed functions of Block states).

Personally, I think the 2nd scheme should be more reasonable.
However, in fact, the 1st scheme often results in more localized WFs (the img/real ratios are smaller).
Is there anything wrong with these both schemes?

I would appreciate any comments, especially developer for QE_wannier90.

Thank you,
Hung Pham


Hung Q. Pham
Gagliardi Group
Office: Smith 101
Email: phamx494 at umn.edu<mailto:phamx494 at umn.edu>

Department of Chemistry
University of Minnesota - Twin Cities, Minneapolis, MN 55455
Wannier mailing list
Wannier at lists.quantum-espresso.org<mailto:Wannier at lists.quantum-espresso.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/wannier/attachments/20181107/61703967/attachment.html>

More information about the Wannier mailing list