[Wannier] Confusion concerning unitary matrices and Wannier-code implementation

Junfeng Qiao qiao0junfeng at gmail.com
Sat May 26 06:03:39 CEST 2018


Dear Peyton Cline,

I am not a Wannier90 developer but I am interested in some works based on 
Wannier function and currently digging into the code.

Let me try to explain your questions based on my own understandings and if 
anyone finds it's wrong please correct my words.

On Saturday, May 26, 2018 1:20:59 AM CST Robert Peyton Cline wrote:
> Dear developers and fellow Wannier90 users,
> 
> I have recently used Wannier90 to extract tight-binding parameters and
> develop a model for nonadiabatic small polaron transport in my system, and
> so far I've seen great success in developing this model.  Now, I am moving
> forward and considering possible superexchange mechanisms, and I believe I
> can use the final unitary matrices (from both the disentanglement and
> wannierisation phases) calculated with Wannier90 to connect my MLWFs to the
> original Bloch states.  However, I am a bit confused in a very specific way
> as to how the code is using the unitary matrices during the procedure, so I
> wanted to run my thoughts by anyone who can help.
> 
> I'll focus on just the disentanglement since it seems the wannierisation
> phase will follow suit, and the dimensionality of the disentanglement phase
> is nontrivial.  Based on your published papers, I understand that
> disentanglement constructs new |u_opt_nk> states through U^{dis(k)},
> specifically taking U_{mn}^{dis(k)} |u_mk> and summing over m.  I also
> understand the matrix U^{dis(k)} is rectangular, with indices m > n.  Based
> on this notation from the papers, it seems the transformation from the
> "old" to "new" basis is something like
> 
> (New) = U (Old),
> 
> where U is shorthand for U^{dis(k)}.  However, the dimensions here don't
> make sense if U is an m x n matrix and (Old) represents a set of m-length
> column vectors.  

I think the (old) are not m-length column vectors, they are the N_q basis of 
the (Old) ab-initio space. The transformation form (Old) to (New) is a 
transformation of basis, which takes the form of (New) = (Old) U, as suggested 
by Equ. (6) in YWVS2007 [PRB 75, 195121 (2007)]. So the equation transforms 
N_q (Old) basis to M (New) basis,

(|u_{1q}^{(W)}>, |u_{2q}^{(W)}>, ..., |u_{Mq}^{(W)}>) = 
(|u_{1q}>, ..., |u_{{N_q}q}>) * U

here the dimension of U is N_q * M. The dimensions of |u_{1q}^{(W)}> and |
u_{1q}> are the same and are not m.

> Furthermore, my understanding of unitary transformations
> from my courses in quantum mechanics is that, instead of the above, I
> should actually see something like:
> 
> (New) = U^dagger (Old),
> 
> which is shown to be true in J.J. Sakurai's 2nd edition QM book (page 37).
> Lastly, the code for Wannier90 contains a comment that says:
> 
> Note: |psi> U_opt = |psitilde> and obviously
> 
>  <psitilde| = (U_opt)^dagger <psi|
> 
> which seems to imply that |psi> is a row vector instead of the normal
> column vector, and U_opt is multiplied on the right instead of the left to
> yield the new basis.

Like what I wrote just above, you can think of |psi> or equivalently the |
u_{1q}> having the dimension of 1000 * 1, which are column vectors, here the 
specific number 1000 does not matter and has no influence on the 
transformation. You can treat 
(|u_{1q}^{(W)}>, |u_{2q}^{(W)}>, ..., |u_{Mq}^{(W)}>) 
as a block matrix having the dimension of 1* M, where each block |u_{1q}^{(W)}
> is a column vector of dimension 1000 * 1. In this situation the 
(|u_{1q}^{(W)}>, |u_{2q}^{(W)}>, ..., |u_{Mq}^{(W)}>) 
is a row vector and justify |psitilde> = |psi> * U_opt

> 
> Because of these ambiguities, I'm confused as to how I should use these
> unitary matrices going forward (i.e. which one of the expressions above is
> actually correct?), and I would appreciate any insight you have.
> 
> Many thanks,
> Peyton Cline
> PhD Student
> University of Colorado Boulder

Cheers, 
Junfeng Qiao
Beihang University, Beijing





More information about the Wannier mailing list