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

Feature/relax code agn wc #261

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open

Commits on Feb 2, 2022

  1. First implementation of a code agnostic relax workchain

    The code agnostic relax workchain is a workchain wrapping a
    `<Code>CommonRelaxInputGenerator` and the corresponding
    `<Code>CommonRelaxWorkChain`. The implementation (<Code>)
    to be used is selected through the input `relax_sub_process_class`.
    The purpose of the workchain is twofolded:
    1) Transform the inputs of `<Code>CommonRelaxInputGenerator.get_builder()`
       (the common interface among codes) into workchain inputs (therefore
       storable). This presents the challenge to change the valid type
       accepted by the interface from standard python types to Data types.
    2) Implement a robust mechanism to handle "overrides", meaning
       the possibility for code experts to reset code dependent parameters
       that have been provided by the protocols.
    bosonie committed Feb 2, 2022
    Configuration menu
    Copy the full SHA
    abd635d View commit details
    Browse the repository at this point in the history
  2. Added an example to showcase the use of overrides.

    Only for clarifying the interface!
    Code and plugin to use are hard coded!
    bosonie committed Feb 2, 2022
    Configuration menu
    Copy the full SHA
    c7bdf90 View commit details
    Browse the repository at this point in the history
  3. Improve the handling of the inputs and outputs:

    1) The spec of the `CommonRelaxWorkChain` has been modified to
       prevent the call to the command exposing the inputs of the
       `_process_class` when this attribute is not yet defined.
       this fix the bug that was preventing the possibility to expose
       the outputs of `CommonRelaxWorkChain` into the `_relax.RelaxWorkChain`
    2) Added the input `reference_workchain_remote_folder`. This is a
       workaround to the fact that the `WorkChainNodes` are not accepted as
       inputs of a workchain.
       We substitute it with the `reomote_folder` now returned by
       `CommonRelaxWorkChain`
    bosonie committed Feb 2, 2022
    Configuration menu
    Copy the full SHA
    576cfd5 View commit details
    Browse the repository at this point in the history
  4. New interface for the overrides.

    Now the overrides are specified as a list of dictionaries.
    Every dictionary must contain an "entrypoint" keyword and
    a "kwargs" keyword.
    A system of entry-points for overrides functions has been set up
    bosonie committed Feb 2, 2022
    Configuration menu
    Copy the full SHA
    4aa8b98 View commit details
    Browse the repository at this point in the history
  5. Fix linter in example

    bosonie committed Feb 2, 2022
    Configuration menu
    Copy the full SHA
    7981904 View commit details
    Browse the repository at this point in the history
  6. Make the entire output port dynamic.

    This guarantees to return any possible output of the
    implementation of the `CommonRelaxWorkChains`
    bosonie committed Feb 2, 2022
    Configuration menu
    Copy the full SHA
    7d9487d View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    f0c696f View commit details
    Browse the repository at this point in the history