The mol and ff converters assume that any unit used for a particular variable in the OpenFF schema remains constant throughout. This assumption is made for the sake of code clarity and better performance. Also MMSchema does not support dynamic units for the same field. Should it?
This isn't a safe assumption in the long run. While it will work for our current released FFs, the 0.3 SMIRNOFF spec explicitly requires units to be on each quantity to allow for this sort of flexibility.
The mol and ff converters assume that any unit used for a particular variable in the OpenFF schema remains constant throughout. This assumption is made for the sake of code clarity and better performance. Also MMSchema does not support dynamic units for the same field. Should it?
Example:
The converters extract the units for
k1
in this case fromsmirnoff_data["ProperTorsions"]["Proper"][0]
and assume it is the same for the [-1] entry.