You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.