Changelog¶
0.4.0¶
Breaking changes
Energy parameter derivatives are only computed along with the energy, as in
getState(getEnergy=True, getParameterDerivatives=True). Requested without the energy, they are NaN on all platforms.deriv(energy, ...)in aCustomIntegratoris not affected.
Performance
GPU platforms: requested derivatives no longer slow down steps that compute only forces, such as molecular dynamics steps, and computing many derivatives is faster.
Documentation
Measured costs of slicing and of derivatives in the theory section.
Definition of the derivatives with respect to scaling parameters in the overview.
0.3.0¶
Requires OpenMM 8.4 or later. The Python wrapper must be built with the same SWIG version as OpenMM.
Breaking changes
addScalingParameterDerivative,getNumScalingParameterDerivativesandgetScalingParameterDerivativeNamewere renamed toaddEnergyParameterDerivative,getNumEnergyParameterDerivativesandgetEnergyParameterDerivativeName, as in OpenMM.setScalingParameterDerivativewas removed.SlicedNonbondedForce.hno longer brings thestdandOpenMMnamespaces into code that includes it.nonbondedslicing.unit, an unused re-export ofopenmm.unit, was removed.
New features
CUDA and OpenCL platforms rebuilt on OpenMM’s common compute architecture.
The CUDA platform can use either cuFFT or VkFFT (
setUseCuFFT).Background (neutralizing plasma) energy of Ewald and PME, sliced among subsets.
Bug fixes
Wrong energies and derivatives for systems with particle or exception parameter offsets.
GPU platforms: ported OpenMM 8.4’s fixes to the plasma correction with parameter offsets.
GPU platforms: with parameter offsets and Ewald, PME or LJPME, derivatives of diagonal slices included the self energy when the direct-space force group was evaluated alone.
setScalingParameterdid not detect some clashes with other scaling parameters.useCuFFTwas not serialized.Python:
getScalingParametercould not be called, andcopy,deepcopyandpicklereturned unusable objects.
Build and packaging
CMake honors
OPENMM_DIR,OPENMM_VERSIONandVKFFT_INCLUDE_DIR, and finds CUDA withFindCUDAToolkit.The Python extension is built with setuptools.
Tests
Every slice energy and derivative is checked against
NonbondedForceon all platforms.Tests for 3 subsets, parameter offsets, net charge, API errors, serialization and the Python wrapper; platform-specific CUDA and OpenCL tests run again.