Implement common bands work chain for Quantum ESPRESSO - #257
Conversation
Co-authored-by: Sebastiaan Huber <mail@sphuber.net>
| builder_common_bands_wc.pw = builder_calc | ||
| builder = self.process_class.get_builder() | ||
|
|
||
| parameters = builder_common_bands_wc.pw.parameters.get_dict() |
There was a problem hiding this comment.
few more instances of builder_common_bands_wc lying around. Would be good if you could try to run it at least once in absence of unit tests.
There was a problem hiding this comment.
Huh, I think this is only in e81a8e2, in the latest commit (2e298cb) this should be fixed. It seems I was a little careless in accepting the reorganisation of the builder code however, I fixed this in c1d0695. Now I tested the relaxation + bands work chain for Si, and it seems to be running fine again.
There was a problem hiding this comment.
I must have seen it after that first commit. Then I haven't said anything :D
|
@mbercx thanks for the implementation. It looks great. |
|
Thanks for the comments, @bosonie!
I see your point, and I agree. I also think adding engine-specific code in the higher-level work chains is not the best approach because ideally we would be able to make anything but the "base" common work chains completely code-agnostic. I'm not sure if we'll be able to achieve this though. Already the issue on how to define the number of unoccupied bands might be tricky to define in one inputs for the
Overrides will definitely help, but then either the user or the higher-level work chain needs to be aware of having to set
I'd vote against this because of my experience with running a lot of calculations in high-throughput. If you forget to set However, perhaps it is not unreasonable to make |
|
@mbercx you are actually right. Not bad to make |
Implementation of the common bands work chain for Quantum ESPRESSO. A couple of notes:
PwBandsWorkChainin theaiida-quantumespressoplugin, we have annbands_factorinput, which simply increases the number of bands based on the default from the SCF calculation.remote_folderoutput to theQuantumEspressoCommonRelaxWorkChainso this can be passed to the input generator of theQuantumEspressoCommonBandsWorkChain. However, there is another issue here, related to the fact that by default the protocol will setclean_workdirtoTruefor thePwRelaxWorkChain, which means the folders will be cleaned. I now added another input to the generator for the QE relax work chain, but I'm not sure if this is the best approach since it changes the interface? Probably having access to the inputs via overrides might be preferable.