-
Notifications
You must be signed in to change notification settings - Fork 32
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
bosonie
wants to merge
7
commits into
master
Choose a base branch
from
feature/relax_code_agn_wc
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
Only for clarifying the interface! Code and plugin to use are hard coded!
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`
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
This guarantees to return any possible output of the implementation of the `CommonRelaxWorkChains`
@sphuber @giovannipizzi
In conclusion, you can start to have a look, I will be happy to receive feedback, but not completely ready for merging yet. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduces a code agnostic relaxation workchain.
This implementation should be the central piece where to introduce overrides.