Feat: GW workflow with VASP
Summary
This is a work-in-progress PR to implement a GW workflow with VASP, as proposed in #800.
TODO
- [x] Debug current code
- [x] Add tests
- [ ] Benchmark the settings
Tagging @mkhorton and @utf for awareness.
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:
- [x] Implement the static, diag and GW types of calculations with the setup compatible with MVLGWSet.
- [x] Added a test case along with the reference test data.
- [x] 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.
@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.
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
Awesome, thanks @yanghan234.