Nexus: added capability to run self-consistent DFT+U+V in QE > 7.1 #4528
Conversation
…nto nexus-hubbard
…nto nexus-hubbard
|
After discussing with Ye, I understood that the pw2qmcpack.x can handle the conversion of new Hubbard manifolds. I made some final commits to get it ready for PR. An example of how the new features work are provided in qmcpack/nexus/examples/quantum_espresso/02_diamond_self_consistent_U |
|
Wondering if there is anything holding back merging this? QE 7.3 was out on 9 January 2024. Any issues? Does this PR also mean that the current DFT+U format is also fully supported? |
|
@prckent I think it is ready for PR. If you are asking whether the current (older than 7.1) DFT+U format is still in place, the answer is yes. I think Nexus does not perform QE version check, but adds the keywords cumulatively. Nevertheless, at line 2073 of nexus/lib/pwscf_input.py of this PR I wrote some code which complains if both hubbard input formats are defined in the same nexus pwscf object. For QE 7.3, I didn't see any item in the release notes that could have a conflict. They started supporting non-collinear DFT+U+V calculations in 7.3 version, but that should use the pre-existing flags (noncolin=.true.). |
There was a problem hiding this comment.
Addressing a question just now, looks like we missed merging this and that nothing major is holding it back.
@jtkrogel should comment on any compatibility concerns or python issues.
I have been using the latest QE and benefiting from the automatic parallelization.
|
Test this please |
|
Sorry for my very long silence here. I would like this PR to go in as soon as is practical. A number of current projects need this functionality. I think all that is needed is for the branch to be merged with current develop. Can we proceed? |
|
Test this please |
1 similar comment
|
Test this please |
Proposed changes
QE has significantly updated hubbard input syntax in ver. => 7.1. This PR adds capability to run DFT+U and +V calculations using Nexus with QE=>7.1. In addition to providing the Hubbard card in pw.x input, Pwscf class in Nexus is also modified to receive 'hubbard_parameters' as a result from a previous calculation. Thanks to this update, self-consistent DFT+U+V calculations can be performed in Nexus. For the self consistent DFT+U+V calculations, Nexus delegates work to the linear response code, hp.x, in the QE distribution. A temporary example of self-consistent U+V calculations is given for C-diamond. Currently, QE7.1 distribution is not supported under external_codes in QMCPACK, but I think pw2qmcpack.x converter from earlier versions should be able to work using wavefunctions generated with ver. =>7.1.
I have noted some quirks with the DFT+U+V code in QE7.1, but I have learned that these are fixed in the development version and will be published in QE7.2 soon:
What type(s) of changes does this code introduce?
Does this introduce a breaking change?
What systems has this change been tested on?
macOS Monterey 12.6.3, Python 3.9.13
Checklist