Skip to content
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

Feature: add nearest neighbours analysis #53

Open
wants to merge 48 commits into
base: master
Choose a base branch
from
Open

Conversation

bastonero
Copy link
Collaborator

Complex structures may present multiple coordination environments. The hp.x is unable to distinguish multiple neighbours at the post-processing steps with the usual approach. One can still input to hp.x a maximum radius for which to print the nearest neighbours. Such analysis is performed using pymatgen capabilities, and it is now performed by default.

This should wait https://github.com/bastonero/aiida-quantumespresso/tree/feat/voronoi to be merged.

bastonero added 20 commits May 31, 2023 09:02
Two exit codes are added, for which a possible handler
can be implemented in the future.
We implement the logic to skip a certain number of relax iterations.
For these iterations the check on convergence is also skipped.
Some fixes are also added.
Two exit codes are added, for which a possible handler
can be implemented in the future.
The `hp.x` and `pw.x` code can distinguish hubbard values
for atoms with the same names, thus relabeling is not performed
for the intersite case. Alghough, this is not the case
when utilizing only onsite U.
We implement the logic to skip a certain number of relax iterations.
For these iterations the check on convergence is also skipped.
Some fixes are also added.
Modify the `SelfConsistentHubbardWorkChain`
to clean the work directories at each iteration instead
of cleaning everything at the end, eventually saving
lots of storage space, which may be crucial for large scale
calculations or for users with few space.
Some structures may have onsite atoms of the same
specie but with different nearest neighbours (e.g. Fe3O4).
The hp.x code can handle this only specifying a maximum
radius, within which one can find the nearest neighbours.
As such radius may change during relaxation of the atomic
structure, an analysis is introduced to define at each iteration
such maximum radius.
Timo Reents and others added 7 commits December 6, 2023 15:00
Fixes #55

Exit status 0 was given when at the last iteration
no self-consistency (of Hubbard parameters) was
reached. This is misleading, and a new exit code is
added to highlitght better this condition.
Adapt the `convergence_not_reached` handler so that it only adjusts `alpha_mix`. `niter_max` is moved to the protocol.
The current raw output parser would miss some corner cases,
when lots of q-points are generated and the number has no more
any space left from the parenthesis.
The solution is to use a more general regex search. As a sanity
check, also the perturbed atom number sites regex search is
changed correspondingly.
Fixes #66

The relabel function might not work if the spin configuration
changes and the kinds cannot be determined uniquely by
the parsed configuration from the hp.x post-processing.
For this reason, we catch the error and exit smoothly with
a new exit code if this would happen.
The convergence check on parameters had a bug in the logic.
That logic would work for 1 Hubbard atom only, and that's the
reason why this passed unseen in the tests. The fix is rather
simple, and the new tests are tested again a case which made
the old tests to make.
The convergence check on parameters had a bug in the logic.
That logic would work for 1 Hubbard atom only, and that's the
reason why this passed unseen in the tests. The fix is rather
simple, and the new tests are tested again a case which made
the old tests to make.
The self-consistent workflow now checks the maximum number of neighbours
and defines the hp inputs so to print all the possible intersites couples. The
parser is then instructed to only keep the interactions that were defined in
the initial HubbardStructureData. This is useful in case the actual first neighbours
are different then the activated intersite interactions, thus a screening
of the HUBBARD.dat file cannot be avoided. This methodology allows for
having a more consistent definition and parsing of the nearest neighbours
using Voronoi tessellation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant