Skip to content

v0.3.1

Latest

Choose a tag to compare

@laserkelvin laserkelvin released this 15 Apr 23:28
8f4ab23

v0.3.1 Release Notes

Breaking Changes

  • Virial sign convention for DSF and LJ (#56): previous implementation used the wrong sign for DSF and LJ virials. Virials now consistently follow W = -Σ rᵢⱼ ⊗ fᵢⱼ (positive pressure produces positive virial trace). A new conventions page at docs/userguide/about/conventions.md documents the convention used throughout the library.

Additions/New Features

  • Hybrid forces mode for PME/Ewald electrostatics (#57): new forces_mode parameter ("real", "reciprocal", "full") enables ~3x speedup for force and virial prediction with geometry-dependent charges.
  • Left- and right-handed lattice support in cell list neighbor search (#59 ): cell_list and batch_cell_list now correctly handle both lattice handedness via absolute value of the determinant.
  • CUDA 13 support (#60, #68): compatibility fixes for CUDA 13 toolkit, updated install documentation and FAQ.

Bug Fixes

  • torch.compile correctness for PME and Ewald (#53): rewrote the warp_custom_op autograd wrapper to produce computation graphs compatible with torch.compile; added comprehensive autograd unit tests.
  • PME reciprocal virial shape for single-system batches (#52): virial output now correctly returns shape (n_systems, 3, 3) even when n_systems=1, for both PyTorch and JAX bindings.
  • Background energy virial correction for non-neutral Ewald/PME systems (#62): the background self-energy correction now properly contributes its virial term via the strain derivative for both PyTorch and JAX.
  • Detached charges/cell in PME reciprocal virial background correction (#65): prevents incorrect gradient flow through the background correction term during backpropagation.
  • retain_graph=True support in warp_custom_op backward (#64): the backward pass no longer invalidates saved tensors on the first call, enabling multiple backward passes over the same graph.
  • NPT/NPH strain rate tensor (#66): drag force and cell kinetic energy now use the strain rate tensor ε̇ = ḣ h⁻¹ instead of the raw cell velocity, fixing barostat dynamics for constant-pressure simulations.