openforcefield / standards

A repository of the standards employed across the Open Force Field Consortium.
https://openforcefield.github.io/standards
MIT License
1 stars 3 forks source link

SMIRNOFF: Specifying "PME" as a non-bonded method is somewhat ambiguous #15

Closed mattwthompson closed 1 year ago

mattwthompson commented 3 years ago

The spec currently states

PME - particle mesh Ewald should be used (DEFAULT); can only apply to periodic systems

without going into more detail. Different users, engines, and possibly hardware are each unlikely to get the same electrostatics energies for identical configurations (positions, partial charges, executions, etc.).

PME is fraught with implementation details. I don't have the expertise to enumerate and discuss them, but I feel comfortable saying that it's something of a rabbit hole that's not implemented 1:1 across engines.

and the list goes on. I'm not sure if the complexity of LJPME settings is similar to electrostatics PME, but it's another layer to consider.

Even in its best case, PME is an approximation. There is not really a "ground truth," whereas (in principle) other energy terms could be computed exactly or to some arbitrary precision.

I'm not sure how to resolve this. @peastman presents an opinion here that a force field spec should specify the potential energy function (i.e. Coulomb's Law) but not the implementation (PME vs. alternatives).

davidlmobley commented 3 years ago

This, also, is difficult; even within PME (e.g. with GROMACS) various PME settings can be altered which will affect performance and accuracy.

I am with Peter Eastman in that what we really mean here when we say PME is something like this:

Compute all possible interactions between all possible periodic copies of particles, no matter how far apart.

It could be the best way to do this is to settle on a name for this, perhaps "lattice-sum" or similar. Note that this is not "Coulomb's law", though Coulomb's Law could be the name for things with no lattice and no cutoff...

So I suppose I'm coming down on the side of changing away from "PME" to something more generic which tries to incorporate all methods in that general category.

mattwthompson commented 2 years ago

Some relevant suggestions in portions of this comment: https://github.com/openforcefield/standards/issues/29#issuecomment-1046067143