Open rkurchin opened 2 years ago
Hi @rkurchin, AtomsBase is definitely on my radar. This package in particular is very general and arguably one can use it with any type of "particle". Some of my other packages like PDBTools.jl and (the recent) MolecularMinimumDistances.jl are probably suited to have standard interfaces with the rest of the ecosystem.
I saw MolecularMinimumDistances, but it seems it just depends on this for its structural representations, which was why I thought that this one made sense for AtomsBase. I could imagine a way for the CellList
object to subtype AbstractSystem
and dispatch the interface in a relatively straightforward way. Actually, probably a single Cell
could and then the dispatch onto CellList
could make use of those dispatches...let me know if this all sounds crazy 😛
Uhm... I see what you mean. I suppose that if a System
(an AbstractSystem
) has some standard data structure containing the periodic boundary conditions and coordinates, there could be a shortcut to use CellListMap in which we didn't need to specify them explicitly with the CellListMap interface. That may make sense. I will take a closer look at the interface exposed by AtomsBase to see how that could be done.
The AtomsBase interface doesn't demand any particular internal data structure (which we see as a major strength), it just needs a small set of functions (e.g. to return a list of atomic positions) dispatched. If it would be helpful, I can start a draft PR showing you a way I could imagine to do it and we can iterate on that. But it would probably be worthwhile for you to get a sense of the interface anyway, so LMK if you'd rather just do it yourself.
I think the most important is for me to understand what can be useful in terms of that interface, for others to use. CellListMap accepts coordinates as vectors of vectors or matrices as input, with units, so there should be no major problem there, but these are inputs for CellListMap. The output can pretty much anything desired by the user.
In my mind, the utility would be to take `AbstractSystem objects as input so that someone like @jgreener64, who develops Molly.jl, which uses AtomsBase, could easily use his systems as direct inputs into CellListMap without needing to write more "interface code" to extract things into the right format or whatever...
I am open to implement anything that helps on that direction (Molly.jl is already using CellLIstMap :-) ). The thing is that CellListMap can compute "anything", so what exactly to expect from the interface must be more precise, so it can be useful.
👋 Hi there!
As you may be aware, some of us over at JuliaMolSim have been developing AtomsBase, an interface package for specifying atomic geometries. This package seems like a phenomenal candidate to support it so that developers of packages making use of this tool can easily "hook it up" to their system!
I thought I'd put this on your radar, and would be happy to discuss the best way to go about implementing the interface, and/or contribute to a PR to do so!