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

Merge/scfwc/u/u+v #18

Closed
wants to merge 4 commits into from
Closed

Merge/scfwc/u/u+v #18

wants to merge 4 commits into from

Conversation

bastonero
Copy link
Collaborator

I hereby propose a new version of the ScfHubbardWorkChain, which allows to compute self-consistently U and, also, U+V. The implementation follows directly from the one already proposed in the previous versions and with the new outline proposed in #17 . It essentially merges #13 and add the check needed for the self-consistent run.
The changes concern:

  1. New inputs:
  • hubbard_file: the same as in A new SelfConsistentHubbardVWorkChain #13; a validation function has been also added for dumbest-user-of-the-year (could be also improved).
  • hubbard_start: solve the issue of the 'how-can-I-find-the-indices' when doing the very first hubbard U+V run, so to have a similar input to the one of only hubbard U; a calcfunction has been added as well to reorder the hubbard atoms, which otherwise would make hp.x to crash and an other one to make the transition hubbard_start --> qe input. It will be "override" if hubbard_file is specified.
  • tolerance --> tolerance_u
  • tolerance_v: self-explanatory.
  • 'skip_first_relax: you may want to skip the first relaxation if meta_convergence == True` (i.e. doing sc run)
  • cut_on_file: could be useful if one wants to delete some too low values on the parameters file; NOT implemented and I don't know if it is useful. To be discussed.
  1. New methods:
  • create_hubbard_v_from_distance: makes the transition hubbard_start --> qe input; it is a calcfunction. The name is in line with the one of aiida-qe for kpoints.
  • validation methods: quite bomb-proof method for validating the entire input namespace.
  • set_tot_magnetization: allows to avoid the 'non-integer-value' issue for magnetic insulators; if a 'hard-coded' threshold is exceeded, it will stop the run.
  1. Miscellaneous:
  • the convergence on the parameters has been split in two internal methods
  • the convergence check on the U+V case has been thought as the following: first check U convergence; if it is converged, check V (i.e. off-diagonal parameters) convergence; if both are true, then check if the interaction sites of the previous file are a strict subset of the new one. This chain should be quite smart, since on the first iterations of the scf cycle, atoms are moving (especially those on which are defined the V values), thus changing the sites numbers. This way, if we first check the U convergence, the 'off-diagonal-indices' should be already "converged"; then we check their convergence, and, before saying victory, I included the check of the worst case scenario where still some index has changed.
  1. To do:
  • add tests ; I had not the time (and the knowledge) to write them, but I just tested everything using nodes of mine and everything is working. Still, this is not reproducible and bomb-proof.
  • discuss some extra features that were present in A new SelfConsistentHubbardVWorkChain #13, the ones @MackeEric suggested, such as a new input for doing more the one hp.x calculation, etc...
  • do a proper discussion about all

It allows the scf calculation of also U+V hubbard parameters, using the same outlin.
@bastonero
Copy link
Collaborator Author

Fixed in #32

@bastonero bastonero closed this May 7, 2023
@bastonero bastonero deleted the merge/scfwc/U/U+V branch May 23, 2023 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant