Item | Notes |
---|
Architecture of VSites | JW – Are vsites assigned parameters, or part of a topology? Assigned parameters Part of topology TG – Generally agree, but there are other variables stored by vsites, like weights and the properties that are used to calculate the coordinates – Are those part of the topology? JW – I’d say those are assigned. TG – In a recent PR, I made things like weights be properties of a particular INSTANCE of a vsite attached to a specific molecule. TG – Generally I think it’s sketchy for the vsite to be separated from the moelcules – Things like orientation and the local frame are very particular to a specific instance of a molecule, and separating them can have undesired effects.
SB – More details on issues? (General) – There are two kinds of info – Scalars in local frame (like angles, weights, and distance) must live on specific INSTANCE of vsite, but weights could be attached to a class or other higher-level object. MT – Do we need a new class/type for every vsite, or can we get away with 4 classes (for the 4 vsite types) TG – The orientations are also important – This records “handedness” of vsites. Like, if a parameter could equally well assign a vsite on either side of a plane, the orientation records the specific atom order to put it on the correct side of the plane.
SB - Does atom ordering encode handedness? SB - Parameters (“scalars”) encoded in force field/XML, atom ordering encodes handedness, other details specific to each type/class of virtual site can be stored in something akin to a class attribute
TG – If we never want to change a SINGLE instance of a vsite, but always propagate changes across ALL instances of that vsite, then does that work in this design? JW’s vote: They’re assigned parameters
JW – Should vsites be allowed to be set pre-parameterization? More concrete proposal: https://docs.google.com/presentation/d/1vR-3pDBz-sG-vENcqm3iXGIBx-X-iRQjn_2s3qTuTN0/edit#slide=id.p
|
What constitutes the state that Interchange should track? | |
Sites vs. Particles | https://github.com/openforcefield/openff-interchange/issues/227 |
Which nonbonded handlers to go in? | SB – In addition to having TopologyKey, maybe also have a VirtualSiteKey. If you have a construct that does that, then you can handle the nonbonded portions of the vsites in a special way. So the geometry rules would live in a vsitehandler, but the ESHandler would know the charges + charge increments, and the vdWHandler would know the sigma and epsilon. MT – I could see how that would work. But the architecture/program order is a bit unclear. Would like to avoid need for intercommunication/out of orderness between handlers. SB – As long as vsite assignment logic is deterministic, then each handler could do it by itself. So in the case of the vdWHandler, I’d allow store_potentials to take in a vsitehandler, and this would make a mix of TopologyKeys and VirtualSiteKeys. Internally these would use vsitehandler.find_matches, which would return the same matches in the same order each time. JW – I think the SMIRNOFF spec needs to have things encapsulated (either VSites in Electrostatics and vdW or vice versa). Otherwise there’s no easy way to know if a vsite’s nonbonded components are appropriate/compatible with a given nonbonded handler SB – I don’t think this is a showstopper. We can just raise errors in these cases. We’d have validation logic for “can this nonbondedhandler consume this vsitehandler?”
|
Differences between input and output topology | |
Timeline for refactor | |