wannier-developers / wannier90

Official repository of the Wannier90 code
http://www.wannier.org
GNU General Public License v2.0
235 stars 138 forks source link

three suggestions #280

Closed hjunlee closed 4 years ago

hjunlee commented 5 years ago

Dear all:

I have three things (I believe) worth addressing in the future. I believe that all of them are not difficult to implement.

(1) Currently, many functionalities, for instance the plotting routines, etc, are not parallelized; I guess that now only the root node takes care of them. In order to deal with complex cases [ex) plot of Fermi surface on the dense k grids] more efficiently, it is worth while to parallelize such routines.

(2) use of external FFT library: Many routines in W90 rely on the FFT. I believe that the use of optimized FFT library can speed up the calculations in many cases. Of course, in this case, we need some wrappers due to the different flavors of FFT library.

(3) example for the use of only the irreducible k points: Even though I did the similar thing independently, recently the feature of using only the irreducible k grids for W90 (open_grid.x) is implemented and there is an example ( https://gitlab.com/QEF/q-e/tree/develop/PP/examples/W90_open_grid_example ).

From experience with my own implementation such feature is very useful since we can avoid using the full k grids and similar features are available in other DFT codes. Thus, I think that it is worth while to include or mention the example of using open_grid.x in the example or tutorial.

Sincerely,

Hyungjun Lee

jryates commented 5 years ago

Thanks for the interesting suggestions!

1) You are correct. The only reason for this is historic: we intended postw90.x to be an efficient parallel code. We left some of the original functionality (fermi-surface plotting, band-structures and transport) in the serial wannier90.x. Now wannier90.x uses MPI there is no reason why those properties are serial. Before fixing this, we need to decide which of them should move to postw90.x and which stay in wannier90.x

  1. I don't think we do make use of FFTs.

  2. I didn't know about this routine. Yes, it would be good have an example in the tutorial. Of course, a faster approach would be do the overlaps with the IBZ and then unfold - but that involves more work.

hjunlee commented 5 years ago

Dear Jonathan Yates:

Thank you for your feedback.

Regarding 2, I meant that many routines in W90 and postW90 use the Fourier transform (not FFT, very sorry for the typo) and so I just guessed that we could speed up if we use the external FFT library.

Regarding 3, I thought that for the evaluation of Mmn we always need explicitly rotated wave functions while we could do the thing similar to unfolding by use of the expression of rotation of the spherical harmonics (like in the symmetrization of the product of psi and projector in USPP or PAW) for Amn.

That is, if we have Mmn and Amn only for the irreducible k points in the full k grid, I thought that we could unfold Amn, but not Mmn for the remaining k points in the full k grid. But, I could be wrong.

In any case, thanks for reminding me again of unfolding.

giovannipizzi commented 4 years ago

Dear @hjunlee, I am going to move each point in a separate issue so it's easier to track their progress independently, and I will close this one.

In particular: