Description
When running a models inside a simulation engine which does domain decomposition, it would be interesting to give the model a set of functions to do message passing. This would be used by message-passing GNN to either reduce the amount of work that needs to happen on a given node; and long range models to enable running on multiple nodes altogether!
The interface could look like this: we make message_passing_function
available to the model in some way, and then have the engine implement this function using it's own message passing tools.
Next step would be to think about what functions and data are required to do message passing inside the models, ideally without just duplicating what LAMMPS does since we also want to support other engines. Some inspiration could be taken from the ML-IAP unified interface, which allows Python models to do message passing.