Skip to content

[WIP] Nexus Wannier90 Interface #5385

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

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

Conversation

kayahans
Copy link
Contributor

@kayahans kayahans commented Mar 19, 2025

I wanted to share the progress on this in case somebody else is also working on it so that the effort is not duplicated.
Here is the list of items that I plan to implement, some of which are already advanced significantly. I appreciate any suggestions. My plan is to use a workflow from QE to Wannier related codes. VASP could also be used in the same context, but I don't plan to use it. Automated Wannierization scheme (SCDM) is buggy in VASP with ISPIN=2 ver. < 6.5.0 (https://www.vasp.at/wiki/index.php/Known_issues). I don't know any collaborators who have access to ver. >6.5.0.

  • Implement Wannier90 and Wannier90Input classes for interface to wannier90.x
  • Add tests for these classes using input files in the wannier90 manual
  • Add capability to process pw2wan90.x in the pwscf_postprocessors
  • Implement interface to WannierTools
  • Test with working examples
  • Add user examples and documentation related to these capabilities
  • Add unit tests for Wannier90
  • Add unit tests for WannierTools

Copy link
Contributor

@prckent prckent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the logic for needing so many tests and .win files in test_wannier90_input_files?

@prckent
Copy link
Contributor

prckent commented Mar 19, 2025

Thanks for putting this up Kayahan. Note that -- if you can -- it is better to break these up into many smaller PRs. It will be easier to review them and make any needed updates.

@kayahans
Copy link
Contributor Author

kayahans commented Mar 19, 2025

What is the logic for needing so many tests and .win files in test_wannier90_input_files?

I grabbed the input files from the wannier90 tutorials. Wannier90 has a lot of input parameters, I wanted to make sure that the nexus code can accurately cover everything in their tutorials. I can reduce the number of tests if you think that they are excessive, they could definitely be reduced to cover unique tags in the input or I could make single new file which include all of these possibilities and delete all the examples here.

@kayahans
Copy link
Contributor Author

kayahans commented Mar 19, 2025

Thanks for putting this up Kayahan. Note that -- if you can -- it is better to break these up into many smaller PRs. It will be easier to review them and make any needed updates.

I can easily limit this PR to Wannier90 and its QE interface and push the WannierTools related PR separately later.
I can divide rest of this PR into four if that would make it easier to review:

  1. Pw2WAN90.x interface in pwscf_postprocessors.py
  2. wannier90 input file manipulation in wannier90_input.py (new file)
  3. Wannier90 simulation in wannier90.py (new file)
  4. Unit tests covering above

Did you have even more fine grained PRs in mind? Any suggestion is appreciated.

@prckent
Copy link
Contributor

prckent commented Mar 19, 2025

Did you have even more fine grained PRs in mind? Any suggestion is appreciated.

No. What you suggest would be good for the new code. Remove the [WIP] and make a comment when you are done with updates to this current PR and we can get it merged.

Copy link
Contributor

@prckent prckent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can discuss this further next week, but we can not have copies of any Wannier90 files in our repo due to incompatible license conditions. For now I suggest to make a couple of similar ones independently and to delete all the copied *.win files.

@jtkrogel
Copy link
Contributor

Anything more here? This is a very beneficial feature to have working.

@prckent
Copy link
Contributor

prckent commented May 16, 2025

Fair question:

We are waiting on updates from @kayahans (who has been plenty busy with other things). This PR needs the Wannier90 files removed to avoid license conflicts. We will also not merge a PR marked as WIP.

@kayahans
Copy link
Contributor Author

kayahans commented May 16, 2025

I can spend more time on this in the coming weeks, my intention was to make a complete workflow including wannier90 and wanniertools. @jtkrogel Is there any specific utility or a type of workflow you want to use with wannier90? I had better split this PR into smaller components anyway. I can try to get partially working update covering those areas you might be interested in.

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.

3 participants