[Wien] Computing matrix elements using cell-periodic Bloch functions

Peter Blaha pblaha at theochem.tuwien.ac.at
Thu Jun 24 07:32:48 CEST 2021


Hi,
Well, basically all you need is already available and your task is just 
to adopt the different pieces and assemble it together.

Of course you are right, w2w calculates the required matrix elements. 
Unfortunately, I've never looked into the code myself, so cannot guide 
you specifically. (But I'd assume that planew_m  only calculates the 
part in the interstitial and there must be a second part inside the 
spheres with loops over atoms.

Please also note: There is BerryPI in wien2k, which uses the matrix 
elements of w2w and computes the Berry phases. Checkout the the doku and 
the lectures of O. Rubel (from our last workshops). It should give (or 
help) for the Berry connection.

Last but not least, the mstar code in wien2k (again from O.Rubel) uses 
the optical matrix elements to obtain the effective masses. Probably 
also this part is useful for you to see how the momentum matrix elements 
are generated and used.

The UG should give you further references and the lectures + examples by 
Oleg Rubel should give you an idea how to use this.

Finally, spin-orbit is not a problem. All these codes work also with 
spin-orbit.

PS: You may even print the eigenvectors in lapw1 using a proper switch 
in lcase.in1. However, please note: while these coefficients are easy to 
use/understand for the PW part, in our dual basis set you always have to 
calculate also the contributions from inside the spheres (A_lm u_l + 
B_lm u-dot)*Y_lm, where the A_lm,.. are defined through the eigenvectors 
and the corresponding matching conditions. In additions there are LOs, ...

Hope this helps.
Peter Blaha

Am 23.06.2021 um 19:59 schrieb Andrew Parks:
> Hello Wien2k Community,
> 
> I am seeking advice on the best approach for extracting/using 
> information about the eigenvectors that is not available within the 
> current Wien2k code (as far as I know).
> 
> For a custom k-point mesh (e.g. a 2D grid), I want to calculate the 
> band-diagonal overlaps of the cell-periodic Bloch functions between 
> neighbouring k-points; i.e. <u_{m,k}|u_{m,k+dk}>.  I then want to adjust 
> the k-dependent phases of the Bloch functions so that the overlaps 
> become real and positive.  This is a method for obtaining a smooth 
> k-space gauge for isolated (non-degenerate) bands. Once the smooth gauge 
> is obtained, it should then be possible to calculate Berry connections 
> (interband+intraband) with well-defined phase. This is the overall goal.
> 
> (ASIDE: in this approach the cell periodic functions remain 
> eigenfunctions of the k.p Hamiltonian, unlike the smooth k-space gauge 
> produced by Wannier90 which does not suit my needs)
> 
> In short, I want to write a program that does the following for a 
> specified list of bands:
> - choose an initial k-point (k0) having arbitrary Bloch phase
> - compute overlap with a neighbouring k-point (k0+dk)
> - adjust phase at (k0+dk) to give real overlap with (k0)
> - Use (k0+dk) as the next starting point; repeat above steps to obtain 
> real overlaps throughout the entire k-mesh
> 
> Once this is completed, the final step would be to compute the Berry 
> connections between bands.  The intraband connections can be obtained 
> from the overlaps.  The interband connections can be obtained from the 
> momentum matrix elements (as calculated by optic).
> 
> I think the w2w program performs the first step of this calculation 
> (computing overlaps) in preparation for a Wannier90 calculation.  The 
> w2w source code does not have much documentation so it is a bit 
> difficult for me to follow.  At a glance, it looks like the overlaps are 
> calculated in the "planew_m" module contained in "modules_rc.F".
> 
> It would be helpful if someone with more familiarity could confirm if I 
> am on the right track, and perhaps offer a bit of guidance on how to 
> adapt this part of the w2w module to suit my task.  I would also want to 
> adapt code from the optic program in order to calculate the interband 
> momentum matrix elements at the end.  Finally, it is important to be 
> able to include spin-orbit coupling in this calculation.  I haven't been 
> able to find much information on how the eigenvectors are stored and 
> used in calculations, but this seems important.  The information I need 
> is obviously present; the issue is learning how the code is structured 
> so I can work with it.
> 
> Apologies for the long email, but this is a rather specific task I am 
> working on.  Any help would be appreciated.
> 
> Thanks,
> 
> Andrew Parks
> PhD Candidate
> Department of Physics
> University of Ottawa
> 
> _______________________________________________
> Wien mailing list
> Wien at zeus.theochem.tuwien.ac.at
> http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
> SEARCH the MAILING-LIST at:  http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html
> 

-- 
--------------------------------------------------------------------------
Peter BLAHA, Inst.f. Materials Chemistry, TU Vienna, A-1060 Vienna
Phone: +43-1-58801-165300             FAX: +43-1-58801-165982
Email: blaha at theochem.tuwien.ac.at    WIEN2k: http://www.wien2k.at
WWW:   http://www.imc.tuwien.ac.at
-------------------------------------------------------------------------


More information about the Wien mailing list