-
Notifications
You must be signed in to change notification settings - Fork 82
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
Add OpenGridCalculation
for open_grid.x
code
#714
Conversation
Thanks @Yunfeng. Before I review this, a quick couple of questions:
|
Thanks @sphuber,
In essence, the
Yes I agree we should fix the
In this opengrid case, the ProjwfcParser should use the opengrid output kpoints , since it is different from its input kpoints , so we can add an optional input kpoints to ProjwfcCalculation . Similarly, we can add an optional input structure for ProjwfcCalculation . But for number_of_spin_components , adding an optional input parameters containing number_of_spin_components to ProjwfcCalculation , is a bit weird. Also the projwfc.x raw output does not contain spin info.Or, in a totally different way, the XML file in the parent_folder contains the needed info to generate kpoints , structure , and number_of_spin_components , should we parse the XML in ProjwfcParser ?
|
Thanks a lot. So just to see if I get the use case here: after an NSCF performed on a set of kpoints in the IBZ, instead of doing a new NSCF restart on the full mesh before passing it to
I am not sure that adding inputs to
If the output of |
In accordance with (aiidateam/aiida-quantumespresso#714)
Thanks @qiaojunfeng . I propose we wait for @mbercx 's PRs to be finished and merged and then we rebase your PR. Then I will give it a final pass and we can merge it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @qiaojunfeng! Already gave the PR a quick pass, left some minor nitpicks.
I wanted to give this a test myself, also so I can see open_grid.x
in action. However, you mentioned something on Slack regarding a customized version of open_grid.x
that's already merged into the develop branch of QE, but not released. Does this mean that this implementation doesn't work with the latest released version of QE?
73c64a0
to
199f926
Compare
All right, just did some checks, including
and all things work well. One noticeable change: I use For the compatibility matrix, maybe we can add a footnote to the QE version, saying for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great, thanks @qiaojunfeng! Just had a quick look at the changes, and only have a few comments.
OpengridCalculation
for open_grid.x
codeOpenGridCalculation
for open_grid.x
code
open_grid.x unfolds a scf/nscf calculation with symmetry-reduced kpoints to the full kpoints. It rewrites the eigenvalues and recalculates the wavefunctions.
With (aiidateam#747) the `ProjwfcParser` has no implicit requirements on parent calculation. The code for compatibility with `ProjwfcCalculation` is now removed.
Co-authored-by: Marnik Bercx <[email protected]> Co-authored-by: Sebastiaan Huber <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For me this one is good to go! 🚀 @sphuber did you still want to have another look or can I go ahead and merge?
Sure looks good to me! Thanks a lot to both. Just make sure to squash merge and add a nice commit message as per yuzh |
A `Calculation` that wraps `open_grid.x` code. The `open_grid.x` unfolds an scf/nscf calculation with symmetry-reduced kpoints to the full kpoint mesh. It rewrites the eigenvalues and rotates the wavefunctions according to symmetries. Note this relies on a PR to QE, which is merged since QE 7.0 https://gitlab.com/QEF/q-e/-/merge_requests/1526 Co-authored-by: Marnik Bercx <[email protected]> Co-authored-by: Sebastiaan Huber <[email protected]>
QE has an
open_grid.x
code to unfold an irreducible-Brillouin-zone calculation to a full kmesh, significantly reduces the computation if the following calculation requires a full kmesh. This PR adds aOpengridCalculation
class to support the code.To allow subsequent
ProjwfcCalculation
on top of theOpengridCalculation
, I have to introduce a somewhat ugly input/output spec:structure
input which isn't used by theOpengridCalculation
, but becauseProjwfcCalculation
implicitly requires the parent calculation having an inputstructure
(so it can parse the atomic orbitals).ProjwfcParser
to allow it to use outputkpoints
if no inputkpoints
in the parent calculation (projwfc should use the outputkpoints
which is the full kmesh).