Skip to content

Should workflow logic stay inside API code or move into amorphouspy package? #164

@ltalirz

Description

@ltalirz

So far, amorphouspy has no dependency on a workflow manager (except one test that uses executorlib - perhaps we should drop it there).
This is great, since users can easily integrate the package into their workflow system of choice.

At the same time, this means the full pipeline "composition" -> "properties" (which uses executorlib) currently lives somewhat hidden inside the API in the folder below

STEPS: dict[str, AnalysisFn] = {
"structure_generation": generate_structure,
"melt_quench": run_melt_quench,
"structure": run_structural_analysis,
"viscosity": run_viscosity,
"cte": run_cte,
"elastic": run_elastic,
}

So far, the pipeline does not do much besides chaining the individual steps in a sensible parallel way and preparing data for plots, but I suspect that over time more and more logic will build up there (e.g. around error recovery). I suspect this will be valuable not only for users of the API but also for users of amorphouspy who want to screen a bunch of compositions.

I would suggest we leave this question open until we've had some feedback on this question from users.
In the meanwhile, we should try whenever possible to add logic concerning choosing sensible defaults, and even error recovery at LAMMPS level inside amorphouspy rather than at the workflow level in the API.

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions