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

Merged
merged 43 commits into from
Nov 12, 2024
Merged

Conversation

yanghan234
Copy link
Contributor

@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
Contributor 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
Contributor 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
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
Contributor 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.

@utf
Copy link
Member

utf commented Oct 23, 2024

Hi @yanghan234 are you ok to update the emmet/pymatgen versions in pyproject.toml?

@yanghan234
Copy link
Contributor Author

Thanks @utf, I have updated the version of emmet-core to the latest release candidate 0.84.3rc3. The pymatgen version has already been updated, so I don't need to change.

src/atomate2/vasp/sets/mvl.py Outdated Show resolved Hide resolved
@yanghan234
Copy link
Contributor Author

Thanks @utf. I updated the branch again, and made some modifications as you suggested. Please test it again and see if it is ready. Thank you!

@yanghan234
Copy link
Contributor Author

Hi @utf, when you have a moment, could you kindly review the latest changes? I believe we’re close to finalizing everything, and I’d appreciate your insights before merging. Thank you very much!

@yanghan234
Copy link
Contributor Author

Hi @utf, could you take a moment to review this PR? It’s nearly finalized. Thank you!

@utf
Copy link
Member

utf commented Nov 12, 2024

Hi @yanghan234, appologies for the delay.

This looks good to go.

@utf utf enabled auto-merge (squash) November 12, 2024 15:28
@utf utf merged commit c57f9c1 into materialsproject:main Nov 12, 2024
15 checks passed
@utf utf added the feature A new feature being added label Nov 12, 2024
hrushikesh-s pushed a commit to hrushikesh-s/atomate2 that referenced this pull request Nov 16, 2024
* Added the Materials Virtual Lab GW Set to the repo and implemented the MVLGWSetGenerator

* add a Materials Virtual Lab GW band structure maker

* fix bug

* rename MVLGWMaker

* created a Flow that does all three stages (static, diag, gw) for a GW band structure calculation

* fixed bug

* update the mvl gw yaml file and explicity copy the magmon in it

* update the gw workflow

* Revert line 37 to original state and fixed a typo

* update the class doc of MVLGWSetGenerator

* rewrite job name

* rewrite job name

* make job and flow names short

* update job name

* change the method names to adjust for recent updates on the main branch

* explicitly specify files to copy

* copied all data files for gw test case

* add testcase for running MVL GW workflow

* modified the files needed to copy between jobs

* fixed wrong assertation

* added missing data files to run the tests

* add a warning in the GW workflow

* removed MVL GW set yaml file, instead, import from pymatgen

* reorganize the mvl jobs

* reorganize the mvl gw workflow

* update test case for mvl gw workflow and update the test data

* update the mvl gw workflow

* update test case for mvl gw workflow and corresponding test data

* Bump emmet-core from 0.84.2 to 0.84.3rc3

* updated test data for mvl g0w0

* removed MVLGWSetGenerator class; use MVLGWSet directly instead

* removed deprecate comments

* remove CONTCAR.gz, use CONTCAR instead
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A new feature being added
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants