-
Notifications
You must be signed in to change notification settings - Fork 0
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
Development: Support QuantumESPRESSO v7.2
#32
Conversation
4b8ddc1
to
3865ca5
Compare
src/aiida_quantumespresso_hp/calculations/functions/structure_relabel_kinds.py
Outdated
Show resolved
Hide resolved
v7.1
v7.2
@bastonero |
The calcfunction for relabelling the structure data is adapted to keep track of the initial starting magnetization and to relabel each chemical symbol starting from 0. Capital letters are used when the number is greater than 9.
Update the reorder function using the `HubbardUtils` of aiida-quantumespresso.
The following changes are applied: * New validation functions are added to support different case scenario * The `HUBBARD.dat` file is now retrieved temporarely * The `structure` input is replaced by `hubbard_structure` * New exit code is added if the parsing failure of `HUBBARD.dat` * Symlinking of `parent_scf` is added * Other adaptations for post-processing options
The following changes are applied: * Split the parse of stdout in a separate file * Adapt the logic for parsing U and U+V cases * Add `HUBBARD.dat` parsing function * Adapt logic for different post-processings, i.e. when parallelizing over atom or q points * Add out of walltime exit message
Update dependencies, authors and entry points.
Update the conftest.py with useful fixtures, and add pseudo potentials fixtures for future protocols.
Add the following methods: * `set_tot_magnetization`: useful for setting the total magnetization to an integer value, otherwise QE will complain * `is_perturb_only_atom`: used to detect the "perturb_only_atom" key in the hp.parameters (used in different validations)
The following changes are applied: * Introduce the `clean_workdir` input * Introduce automatic setting of `max_seconds` * Add the `get_builder_from_protocol` method
A work chain for parallelizing over q points on single perturbed atom is introduced. The parallelization is simple and it launches an `HpBaseWorkChain` for each single independent q point that it finds. This implementation works starting from Quantum ESPRESSO v7.2.
The following changes have been applied: * Inspect methods are added to the outline to check status of completed sub processes * Possibility of parallelizing over q points * `clean_workdir` input is added
The following changes are applied: * Introduction of `clean_workdir` input * Introduction of `parallelize_qpoints` input * The `qpoints_distance` input, along method in the outline is added in order to automatically assign the q point grid given a distance between points in reciprocal space * The `get_builder_from_protocol` is added to fill automatically a builder ready to submit
The following changes are applied: * Inputs adapted for handling both onsite and intersite cases (U and U+V) * New inputs for skipping the first relaxation and for controlling the frequency of the call to the relax workflow * Validation for magnetic inputs * Outline change: always perform an scf with smearing, than recognize if it is a metal or insultaor; if insulator, than do scf with fixed occupation. * The check on convergence over Hubbard parameters is performed separately on onsite (U) and intersite (V). * Protocols through the `get_builder_from_protocol` * `clean_workdir` input
d821c78
to
ab45d9e
Compare
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 a lot @bastonero for all of this work! I have given most of the changes a look and it looks very reasonable. Since the changes are quite substantial and the original code was anyway very alpha, I propose we merge this as is, unless @mbercx still wants to have a look.
I'm sure it's great work. 😉 Also I won't have time for a proper code review anytime soon, so feel free to go ahead! Let's keep testing it in the field and see what we can improve (if anything). |
Bombs away! |
Thanks a lot! |
The QuantumESPRESSO binaries used in this plugin (
pw.x
andhp.x
) changed the IO interface in the newv7.1
release. The main improvement is provided by the introduction of theHubbardStructureData
in the aiida-quantumespresso, which allows for an easy handling of the Hubbard parameters along with the structure information.We want to provide full support for the new version, and release robust workflows.
Here a to do list for the merge:
HpCalculation
andHpParser
(requires review and tests)get_builder_from_protocol
method - implemented, need discussionDiscussion:
protocols
: shall we introduce theqpoints_distance
in theHpBaseWorkChain
? How to do it, since the structure could be absent? Maybe we can introduce it only for theHpMainWorkChain
, which is handling the parallelization (meaning thehubbard_structure
should be specified)?workflows
: how to handle differentwalltime
s, e.g. when only performing anhp.x
initialization for parallelizing over atoms?