Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supporting AtomsBase #56

Open
rkurchin opened this issue Mar 25, 2022 · 7 comments
Open

Supporting AtomsBase #56

rkurchin opened this issue Mar 25, 2022 · 7 comments

Comments

@rkurchin
Copy link

👋 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!

@lmiq
Copy link
Member

lmiq commented Mar 25, 2022

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.

@rkurchin
Copy link
Author

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 😛

@lmiq
Copy link
Member

lmiq commented Mar 25, 2022

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.

@rkurchin
Copy link
Author

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.

@lmiq
Copy link
Member

lmiq commented Mar 25, 2022

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.

@rkurchin
Copy link
Author

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...

@lmiq
Copy link
Member

lmiq commented Mar 25, 2022

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants