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

Add PseudoDojo support with suggested cutoffs #14

Closed
zooks97 opened this issue Nov 1, 2020 · 2 comments · Fixed by #26
Closed

Add PseudoDojo support with suggested cutoffs #14

zooks97 opened this issue Nov 1, 2020 · 2 comments · Fixed by #26
Milestone

Comments

@zooks97
Copy link
Contributor

zooks97 commented Nov 1, 2020

PseudoDojo is a widely-used pseudopotential family developed by the Abinit team based on the ONCVPSP pseudopotential code. Despite being developed by the Abinit team (Abinit uses the psp8 format), PseudoDojo supports a variety of pseudo formats for different codes (Abinit, Q-E, Siesta):

  • psp8 : (NC) the pseudo in the psp8 format (abinit)
  • upf : (NC) the pseudoo in the upf format (quantum esperesso)
  • psml : (NC) the pseudoo in the psml format (siesta)
  • xml : (PAW) the paw dataset in xml format (abinit)

In addition to the pseudopotentials themselves, the PseudoDojo project does convergence studies with the potentials using Abinit, and they provide three suggested cutoffs (high, low, and normal) for their ONCVPSP-PBE-FR-PDv0.4 (stringent, standard), ONCVPSP-PBE-PDv0.4 (stringent, standard), ONCVPSP-PBEsol-PDv0.4 (stringent, standard), and ONCVPSP-PW-PDv0.4 (stringent, standard) families.

It would be good to support these in aiida-pseudo, but because there is both more information than the SSSP and many formats associated with these suggestions, I'm not sure how best to modify aiida-pseudo to support PseudoDojo and its suggestions.

@zooks97
Copy link
Contributor Author

zooks97 commented Nov 2, 2020

I've written in support for PseudoDojo by moving the suggested cutoffs support to the PseudoPotentialFamily class and removing it from UpfFamily.

I then implemented a bunch of new classes to support PseudoDojo:

  • pseudodojo.py: PseudoDojoFamily(PseudoPotentialFamily)
  • pseudodojo_psp8.py: PseudoDojoPsp8Family(PseudoDojoFamily, Psp8Family)
  • pseudodojo_psml.py: PseudoDojoPsmlFamily(PseudoDojoFamily, PsmlFamily)
  • pseudodojo_upf.py: PseudoDojoUpfFamily(PseudoDojoFamily, UpfFamily)

Finally, I added a CLI interface for downloading and installing any PseudoDojo family with the choice of low, normal, high, or none suggested cutoffs, depending on support.

@sphuber
Copy link
Contributor

sphuber commented Dec 9, 2020

Fixed by PR #26

@sphuber sphuber closed this as completed Dec 9, 2020
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 a pull request may close this issue.

2 participants