* Draft integration of the Alchemical Transfer Method (ATM) plugin
* Attempt to store and retrieve forces--does not compile
* Implement addForce()/getForce() methods
* Throw exception when specifying properties without a Platform (#4130)
* Fixed DOF calculation for NoseHooverIntegrator (#4128)
* Fix variance in documentation of VerletIntegrator (#4138)
* Python API for ATMForce
* Fixed compilation error
* Minor cleanup of formatting and documentation
* Files for ATMForce test cases
* More cleanup
* Removed variable groups
* Test ATMForce with two particles
* More tests for ATMForce plus fixes
* Added missing header
* Rework interface to pass displacements as vector of parameters
* Revert "Rework interface to pass displacements as vector of parameters"
This reverts commit 5e092031f3.
* Test with nonbonded force
* Allow energy expression to be customized
* Optional displacements at the initial state
* Fixed compilation error build C wrapper
* Address edge case of default energy expression
* Consistent naming of the variables of the displacement states
* Test of soft core function of the default energy expression
* Mark addForce() as taking ownership
* initial python test for ATMForce
* Test custom expressions
* Expanded C++ API documentation for ATMForce
* Energy parameter derivatives
* Serialization for ATMForce
* Documentation, cleanup, and fixes
* Fixed typos
* getPerturbationEnergy() computes energy
* Another test case
* Minor edits
---------
Co-authored-by: Peter Eastman <peastman@stanford.edu>
Co-authored-by: Michael Plainer <plainer@ymail.com>