We started to introduce "extractors" functions that can extract from a run of a common workflow some quantities that are not explicit outputs of the common workflow.
For instance it is useful to create for every implementation of the CommonRelaxWorkChain a function that extracts the TS contribution to the energy.
An entry point should be assigned to these functions and:
- we should distinguish between "extractors with common interface" (e.g. the one for the TS contribution should have a common interface) and those specific to a code (where they can decide whatever interface they want)
- we could use
common_workflows.relax.common_extractor.ts_energy.siesta for "commonly defined" extractors (the ts_energy part is the quantity to extract, the last part is points to a specific implementation) and common_workflows.relax.custom_extractor.something.siesta for a custom SIESTA property called "something".
- alternatively we could invert the name of the code and property
common_workflows.relax.common_extractor.siesta.ts_energy and common_workflows.relax.custom_extractor.siesta.something
- we can then think to add some easy class property to do
siesta_common_workchain_node.common_extractor.ts_energy() or siesta_common_workchain_node.custom_extractor.something() (or some similar tab-completable syntax) so one does not have to remember the long name.
We started to introduce "extractors" functions that can extract from a run of a common workflow some quantities that are not explicit outputs of the common workflow.
For instance it is useful to create for every implementation of the
CommonRelaxWorkChaina function that extracts the TS contribution to the energy.An entry point should be assigned to these functions and:
common_workflows.relax.common_extractor.ts_energy.siestafor "commonly defined" extractors (the ts_energy part is the quantity to extract, the last part is points to a specific implementation) andcommon_workflows.relax.custom_extractor.something.siestafor a custom SIESTA property called "something".common_workflows.relax.common_extractor.siesta.ts_energyandcommon_workflows.relax.custom_extractor.siesta.somethingsiesta_common_workchain_node.common_extractor.ts_energy()orsiesta_common_workchain_node.custom_extractor.something()(or some similar tab-completable syntax) so one does not have to remember the long name.