Plans for aiida-lammps #21
Replies: 6 comments 17 replies
-
Hi @chrisjsewell, thanks for inform about the future plans of the repository |
Beta Was this translation helpful? Give feedback.
-
Just to mention that @RaffaelaCabriolu may also have a use case for the aiida-lammps plugin (for computing the diffusion coefficient)
For provenance tracking I don't see an issue. |
Beta Was this translation helpful? Give feedback.
-
Assuming that there is going to be some analysis-workflows component to the common-workflows, having some wrapper around the trajectories which allows them to be interpreted as aiida-core Trajectory objects might be useful. The compression trick you've used is brilliant, but would likely make data generated in aiida-lammps incompatible with generic trajectory analysis workflows. |
Beta Was this translation helpful? Give feedback.
-
@chrisjsewell As you already mention pyiron this might also be the point to think about a generic interface to make simulation codes available in various simulation frameworks at the same time, similar to optimade for atomic databases. With the majority of simulation codes being available as conda-forge packages - at least for Linux - we already achieved the first step. It is now easier than ever to test a simulation code like abinit, cp2k, LAMMPS, quantum espresso or siesta. The next steps from my perspective is defining an interface which is reasonable for multiple simulation frameworks. Such a universal interface could handle the conversion of units and the parsing of input and output files while each framework internally can use a different user interface, data storage and job management. |
Beta Was this translation helpful? Give feedback.
-
@chrisjsewell something that we have been discussing is the level of "workflow" logic that one should allow
One thing that would be good to settle before trying to come up with a generic interface is what is the level of "scripting" that one allows in a given Once that answer that question, one can much more easily design a "common" interface. The solution that several frameworks such as ASE and Pyiron (@jan-janssen please correct me if I'm wrong) seems to be that only a very small set of predefined variables can be passed to the basic Another completely different option (and something I do not think is very good from the AiiDA perspective is to do what seems to be done inside atomate where one can pass the entire lammps input file instead of just variables in the file. This of course gives you a lot of flexibility, but I think destroys a lot of the reproducibility, and traceability aspects at the core of AiiDA, so I think that this is not something that one should do. Instead something more in-between these solutions, where some flexibility is given would be ideal. Something that I plan to be dealing with quite soon is with the implementation of |
Beta Was this translation helpful? Give feedback.
-
Hello everyone! TL;DR We are trying to refactor the plugin to make it more flexible. If you have ideas/comments/suggestions/concerns please feel free to check the issues and let us know what you think. As you might have made a little milestone to refactor the plugin to make it more flexible. The basic idea is to change what is three calculations now into a single base calculation, in which the user can run any single stage LAMMPS calculation, depending of which parameters they have passed, i.e. instead of running an optimize calculation for relaxation, you pass the Why this change? The idea is that at the Calculation level, one can have any options that one wants, for a single stage LAMMPS run, i.e. whatever fixes and computes you want (taking care of that certain fixes do not work if you run a minimization for example). While in the workflow level, a set of predefined parameters would let you tackle very specific issues. By making the Calculation very flexible, building these workflows would be simpler, as one would not have to worry about whether a compute or fix is present in the calculation that one is using. You can see that in the milestone I have been gathering certain issues that could be used to improve If you are curious on what some of the actual implementation ideas are, I have made a fork of the plugin and I'm doing the development there, currently dealing mostly with the input generation, I think that making this flexible would be key. I'm mostly using the same philosophy from @abelcarreras but without the separation of types of runs, instead having certain things to be mutually exclusive, e.g. you cannot run an All in all please let me know what you think, and if you want to help us out hacking away we are more than happy to collaborate! |
Beta Was this translation helpful? Give feedback.
-
This morning I met with @JPchico and co from Sandvik Coromant, and we discussed what the plans are for moving forward on this plugin.
Here are the key points we want to address:
The current Calculation/Workflow structure is too constrictive to harness the full capabilities of LAMMPS and enact "real-world" workflows.
We would like the plugin to be easier to use for "non-experts"
We would like to have wider buy-in by the LAMMPS/MD community
Beta Was this translation helpful? Give feedback.
All reactions