You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Now that the new pseudo interface in PseudoPotentialIO has mostly stabilized, I tried out integrating it with DFTK by defining wrapper functions that follow the NormConservingPsp interface.
After fixing a few bugs and loosening function type signatures to un-break AD, most everything seems to work as expected, i.e. the same results as before, performance TBD (preliminarily, it looks a tad slower 😞).
If we want to provide a deprecation path for the old pseudopotential code in DFTK, some small changes will be have to be made, basically defining a functional interface for accessing the fields that are currently required by NormConservingPsp but which PseudoPotentialIO structs don't provide. I'd rather not re-name the fields in PseudoPotentialIO, so even though it's trivial, a handful of functions will be enough to allow the old and new to coexist.
To fully swap over to PseudoPotentialIO, the pseudopotential tests will need a going-over, and load_pseudo will need to be changed to use PseudoPotentialIO / the artifacts system.
Any calls to eval_psp* and the pseudo-related accessors will need to be changed. In theory, this could also be transparent to most users, so I'd advocate for going directly for this.
In an ideal world, we could also do some re-architecting in the form-factor calculations in DFTK: by swapping the order of the loops to go over angular momentum first (basically elevating conditions on angular momentum up a couple of loops), I think we could also gain some not insignificant performance benefits.
The text was updated successfully, but these errors were encountered:
Now that the new pseudo interface in
PseudoPotentialIO
has mostly stabilized, I tried out integrating it with DFTK by defining wrapper functions that follow theNormConservingPsp
interface.After fixing a few bugs and loosening function type signatures to un-break AD, most everything seems to work as expected, i.e. the same results as before, performance TBD (preliminarily, it looks a tad slower 😞).
If we want to provide a deprecation path for the old pseudopotential code in DFTK, some small changes will be have to be made, basically defining a functional interface for accessing the fields that are currently required by
NormConservingPsp
but whichPseudoPotentialIO
structs don't provide. I'd rather not re-name the fields inPseudoPotentialIO
, so even though it's trivial, a handful of functions will be enough to allow the old and new to coexist.To fully swap over to
PseudoPotentialIO
, the pseudopotential tests will need a going-over, andload_pseudo
will need to be changed to usePseudoPotentialIO
/ the artifacts system.Any calls to
eval_psp*
and the pseudo-related accessors will need to be changed. In theory, this could also be transparent to most users, so I'd advocate for going directly for this.In an ideal world, we could also do some re-architecting in the form-factor calculations in DFTK: by swapping the order of the loops to go over angular momentum first (basically elevating conditions on angular momentum up a couple of loops), I think we could also gain some not insignificant performance benefits.
The text was updated successfully, but these errors were encountered: