22 integrate the kratos computation into the same snakefile for example linear elastic plate with hole #23
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.
I have added kratos here to the "new" Snakefile and now both tools have the same structure. This is integrated into a hierarchical Snakefile structure with a documentation in the README of the linear elastic benchmark, please have a look at that. The fenics subworkflow is purely the simulation, in kratos there are multiple steps for generating input files, converting meshes and collecting outputs as separate steps. The analytical solution is also moved to the general directory and integrated into a new class. In order to avoid mistakes (implementing the solution twice, once in text and once in an evaluable expression), I have also converted the text output of the function into a sympy representation, such that we define the exact solution only once, and then the string output is generated automatically. There might be some performance slow downs for the evaluate, though I have used lambda functions to evaluate the sympy expression and at least for our case it seems as fast as the original implementation.
There is still a fenics_nextflow directory under the linear_elastic.benchmark, this has to be removed in the future and just another nextflow workflow to be added in parallel to the Snakefile (and potentially in a similar way into a hierarchical structure with a nextflow subworkflow in each subdirectory related to the tools). We might also clean up the directory structure (e.g. placing parameter files , or the environments, or the python files in separate directories, but that could also be done later. It would also be nice to somehow think about test cases, at least on an integration test level, e.g. be running the workflow for each tool, collecting the metrics files and testing those (even though this is not fully correct, since e.g. when the version of a tool is changed that workflow might still work, just the output of the tool has changed - which is not what we want to test). But maybe that is also a subsequent issue, but important as soon as the others are integrating their own stuff.