aiida-common-workflows
aiida-common-workflows copied to clipboard
Feature/relax code agn wc
Introduces a code agnostic relaxation workchain. This implementation should be the central piece where to introduce overrides.
@sphuber @giovannipizzi The implementation should be now concluded, with the caveats below:
- The issue https://github.com/aiidateam/aiida-core/issues/5342 explains the difficulty I had in implementing our idea to serialize the content of the
overrides
input. This input expects a list of dictionaries and it might be possible that a dictionary would contain aNode
as value. Since nodes are not storable as elements ofList
orDict
, the serializer is used to convert the node into his uuid. This ideas works well if the user passer alist
asoverrides
. However if aList
is passed instead, the serialization is skipped (see issue linked). This must be fixed somehow, but let's discuss in the issue. - For the moment I just implemented three
generic
overrides. The rest will come soon. - The example I created is not very useful since, as it is, it works only in my environment. Some details must be changed inside to run in other cases. It is just there for your understanding. I will make it general in the future.
- I made
dynamic
the entireoutputs
namespace. So any possible output of aCommonRelaxWorkChain
implementation is automatically returned. - I still have to make the tests for the new workchain. I want a feedback from you first.
In conclusion, you can start to have a look, I will be happy to receive feedback, but not completely ready for merging yet.