Skip to content

0.17.0 - Removed Py2 support, faster exact PME treatment

Pre-release
Pre-release
Compare
Choose a tag to compare
@andrrizzi andrrizzi released this 24 Jan 21:48
384c555

New features

  • Add GlobalParameterFunction that allows to enslave a GlobalParameter to an arbitrary function of controlling variables (#380).
  • Allow ignoring velocities when building the dict representation of a SamplerState. This can be useful for example to save bandwidth when sending a SamplerState over the network and velocities are not required (#386).
  • Add DoubleWellDimer_WCAFluid and DoubleWellChain_WCAFluid test systems (#389).

Enhancements

  • New implementation of the exact PME handling that uses the parameter offset feature in OpenMM 7.3. This comes with a
    considerable speed improvement over the previous implementation (#380).
  • Exact PME is now the default for the alchemical_pme_treatment parameter in the constructor of
    AbsoluteAchemicalFactory (#386).
  • It is now possible to have multiple composable states exposing the same attributes/getter/setter in a
    CompoundThermodynamicState (#380).

Bug fixes

  • Fixed a bug involving the NoseHooverChainVelocityVerletIntegrator with System with constraints. The constraints were not taken into account when calculating the number of degrees of freedom resulting in the temperature not converging to the target value. (#384)
  • Fixed a bug affecting reduced_potential_at_states when computing the reduced potential of systems in different AlchemicalStates when the same alchemical parameter appeared in force objects split into different force groups. (#385)

Deprecated and API breaks

  • Python 2 and 3.5 is not supported anymore.
  • The update_alchemical_charges attribute of AlchemicalState, which was deprecated in 0.16.0, has now been removed since it doesn't make sense with the new parameter offset implementation.
  • The methods AlchemicalState.get_alchemical_variable and AlchemicalState.set_alchemical_variable have been deprecated. Use AlchemicalState.get_alchemical_function and AlchemicalState.set_alchemical_function instead.