Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of Stengel-Spaldin Functional in Wannierization #498

Open
wants to merge 42 commits into
base: develop
Choose a base branch
from

Conversation

sjhong6230
Copy link
Contributor

The main differences for this pull request are shown below.

  • Implemented the Stengel-Spaldin functional [1] in Wannierization.

  • Added use_ss_functional parameter. Uses Stengel-Spaldin functional if true, and Marzari-Vanderbilt for false.

  • Changed some arrays to allocatable in disentangle.f90 and kmesh.f90 for the many k-points computation. (If not, a stack overflow occurs.) (Since this is for personal local tests, it is unnecessary.)

Since the functional sums over k-points before b-vector summation, I needed to order the b-vector information before Wannierization. This sorting is implemented in the kmesh_sort subroutine in kmesh.f90, and only used for wannier90.x (not postw90.x).

The main changes are in wannierise.f90 file. wann_phases, wann_omega, and wann_domega subroutines are changed. guiding_centres=T case is also considered.

Documentations, tests, and tutorials are added by slightly modifying the silicon tutorial. Also, test data are modified for restart and bvec tests.

Since this is my first pull request in Wannier90, there might be many errors and mistakes. Please feel free to comment.

[1] https://journals.aps.org/prb/abstract/10.1103/PhysRevB.73.075121

@sjhong6230
Copy link
Contributor Author

Results of personal local tests

  • bands.pdf : Comparison of interpolated bands for Marzari-Vanderbilt and Stengel-Spaldin functionals

  • convergence.pdf : Convergence tests for Marzari-Vanderbilt and Stengel-Spaldin functionals

  • supercell.pdf : Size-consistency tests. Only Stengel-Spaldin functional is size-consistent.

@sjhong6230
Copy link
Contributor Author

TODO after this PR is merged.

  • Changing the order of Fourier transform and WS distance method for implementation of translation invariant formulas.

  • Implementation of translation invariant formulas for all operators in get_oper.f90

@sjhong6230
Copy link
Contributor Author

Note: The default value of use_ss_functional is false.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant