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

Feat: GW workflow with VASP #808

Open
wants to merge 32 commits into
base: main
Choose a base branch
from

Conversation

yanghan234
Copy link

@yanghan234 yanghan234 commented Apr 17, 2024

Summary

This is a work-in-progress PR to implement a GW workflow with VASP, as proposed in #800.

TODO

  • Debug current code
  • Add tests
  • Benchmark the settings

@yanghan234
Copy link
Author

Tagging @mkhorton and @utf for awareness.

@yanghan234 yanghan234 marked this pull request as ready for review September 15, 2024 10:50
@yanghan234 yanghan234 changed the title [WIP] feat: GW workflow with VASP Feat: GW workflow with VASP Sep 15, 2024
@yanghan234
Copy link
Author

This PR is ready for review now. In this PR, I have implemented a simple workflow to run GW calculations in atomate2 with the setup defined in the MVLGWSet in pymatgen.

Here I summarize what has been done in more detail:

  • Implement the static, diag and GW types of calculations with the setup compatible with MVLGWSet.
  • Added a test case along with the reference test data.
  • Modified runtypes in emmet to accomodate for GW calculations, and the PR is in Feat: Add run types for GW calculations. The PR in emmet must be merged first, before this PR can be merged.

Please note that benchmarks of the setups are not done yet. One can only get the level of accuracy at the MVLGWSet.

Tagging @mkhorton and @utf for awareness.

Copy link
Member

@utf utf left a comment

Choose a reason for hiding this comment

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

Thanks for the PR. I've put some comments for you.

One thing to note is that in VASP v6.3 there is the option to do a single step GW calculation (i.e., no need for separate static+gw) which simplifies everything. E.g., see the manual here: https://www.vasp.at/wiki/index.php/Practical_guide_to_GW_calculations

As the MVL workflow is quite old, it could be nice to support this newer approach (potentially in a future PR).

src/atomate2/vasp/flows/core.py Outdated Show resolved Hide resolved
src/atomate2/vasp/sets/core.py Outdated Show resolved Hide resolved
src/atomate2/vasp/sets/core.py Outdated Show resolved Hide resolved
src/atomate2/vasp/jobs/core.py Outdated Show resolved Hide resolved
@yanghan234
Copy link
Author

@utf I have reorganized the codes as you suggested. Thanks for the suggestions, and it makes a lot more sense now. Except the setting of NELM for the non-self-consistent calculations. Please let me know what you think. Thanks!

One thing to note is that in VASP v6.3 there is the option to do a single step GW calculation (i.e., no need for separate static+gw) which simplifies everything

As for this suggestion, I think it is more reasonable to add it in future PRs.

src/atomate2/vasp/sets/mvl.py Outdated Show resolved Hide resolved
Copy link
Member

@utf utf left a comment

Choose a reason for hiding this comment

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

Thanks @yanghan234, this is almost there now. Please see the final comment (I believe we will need a PR to custodian to keep the calculation procedure optimal).

@yanghan234
Copy link
Author

I have updated the codes and testcases accordingly. Now, the NELM issue is solved. Once the PRs in emmet and pymatgen repos are merged, this PR should be good to go. Thanks for the comments. @utf

@utf
Copy link
Member

utf commented Sep 17, 2024

Awesome, thanks @yanghan234.

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