BigDFT-group / aiida-bigdft-plugin-legacy

BigDFT plugin for Aiida
MIT License
2 stars 2 forks source link

`BigDftCalculation`: pass pseudo potentials directly in as nodes not as a `List` of relative filepaths #5

Open sphuber opened 3 years ago

sphuber commented 3 years ago

The usage of relative filepaths is not only fragile, as resolving them on different systems can fail or work differently, reducing the portability of the plugin, but in addition, it doesn't really help the provenance. Only recording the relative filename will not guarantee anything later which pseudo was used by looking at the input, because the filename can change over time. Other plugins all use the concept where a pseudo potential is represented by an individual Node (often a SinglefileData or a subclass thereof) which is passed directly as an input. To be able to provide multiple pseudos, the pseudos input is actually a namespace where the key references the kind name to which the pseudo should be applied. For example, a GeTe structure could have in the inputs the pseudos as follows:

inputs = {
    ....,
    'pseudos': {
        'Ge': SinglefileData(...),
        'Te': SingleFileData(...),
    }
}

The aiida-pseudo provides a lot functionality to make working with pseudos in this way a lot easier. It also provides ways to automatically define recommended cutoffs, which makes it easy to write automated input parameter generating protocols. If you let me know what kind of pseudos BigDFT can work with, we can see how to add support for aiida-pseudo in this plugin.