Skip to content

Releases: TorchSim/torch-sim

v0.6.0

24 Apr 00:44
5078604

Choose a tag to compare

What's Changed

πŸ’₯ Breaking Changes

πŸŽ‰ New Features

πŸ› Bug Fixes

πŸ€·β€β™‚οΈ Other Changes

  • Hotfix: Max pin on tables due to broken 3.11 PyTables release by @CompRhys in #461
  • Implement first pass at duecredit by @CompRhys in #459
  • Set root path in link check action by @CompRhys in #468
  • Standardize parameter typing to float | torch.Tensor when appropriate by @CompRhys in #466
  • Eliminate for-loop in build_naive_neighborhood by @CompRhys in #470
  • Restore #460 seed-removal semantics after #339 by @janosh in #477
  • Add n_edges memory metric to auto-batching by @orionarcher in #481
  • Add batch LJ by @abhijeetgangan in #474
  • Configure Basic Logging. by @CompRhys in #484
  • Implement general pair-potential and pair-force by @CompRhys in #483
  • Use first-party implementation of SevenNet Model Interface by @CompRhys in #467
  • Bump tables version and use py314 for highest tests by @CompRhys in #486
  • Fix FIRE NaN velocity sentinel corrupting retained systems during autobatcher swaps by @janosh in #490
  • Consolidate branch protection rules by @CompRhys in #492
  • Fix GPU memory leak from missing .detach() in model wrappers by @reillyosadchey in #491
  • Pin orb <0.6 by @CompRhys in #493
  • Add log line clarifying BinningAutoBatcher is initialization-only in optimize by @orionarcher in #489
  • Nits rollup by @CompRhys in #501
  • update momenta before integration in npt NH by @alphalm4 in #498
  • Clamp Frechet log-space deformation gradient to prevent NaN from matrix_exp overflow by @janosh in #450
  • Adjust test tol to resolve false positive test failures by @CompRhys in #507
  • update sources to npt Nose hoover by @thomasloux in #504
  • add NPTState that has a stress variable by @thomasloux in #505
  • reduce number of threads to prevent overhead slowdown with LJ model running on cpu by @thomasloux in #506
  • Fix FixSymmetry constraint system_idx remapping on reordered state slicing by @danielzuegner in #509
  • Add Nequix model by @teddykoker in #511
  • Phonopy removed dummy pbc kwarg in 3.2.0 breaking test fixture by @CompRhys in #515
  • Forward max_memory_padding to _chunked_apply in optimize() by @niklashoelter in #513
  • Add single atom motif edge case to the validate function by @CompRhys in #518
  • Add benchmarking scripts adapted from propfolio by @CompRhys in #516
  • Add pbc_wrap_batched_and_get_lattice_shifts to handle unwrapped positions in nl by @CompRhys in #519
  • Fix NPT Nose-Hoover things by @alphalm4 in #520
  • Remove unnecessary stress evaluation in NPTLangevin by @thomasloux in #528
  • Fix state.to() not propagating dtype/device to constraints & expose angle_tolerance in symmetry pipeline by @danielzuegner in #527
  • Upstream Metatomic Model by @CompRhys in #523
  • Add sum model interface by @CompRhys in #530
  • Batch the torch Cell List by @CompRhys in #534
  • Maint to restore CI to all passing by @CompRhys in #533
  • Add integration tests checking the physical observables resulting from different the integrators by @thomasloux in #521
  • Remove graph-pes model integration by @craigxchen in #538
  • Introduce more extensible scheme for extra properties. by @CompRhys in #464
  • split instead or sequential getitem (slicing under the hood) by @thomasloux in #546
  • Add isolated atom into the interface test by @CompRhys in #548
  • Cut v0.6.0 release by @CompRhys in #551

New Contributors

Full Changelog: v0.5.2...v0.6.0

v0.5.2

18 Feb 22:15

Choose a tag to compare

What's Changed

πŸ’₯ Breaking Changes

  • Accelerated ts.static + added scaling scripts by @falletta in #427

πŸ“¦ Dependencies

  • Bump pre-commit hooks and fix ruff lint errors by @janosh in #442

πŸ€·β€β™‚οΈ Other Changes

  • Testing utils for external Model posture by @CompRhys in #433
  • Handle wrapping correctly for default neighborlist by @abhijeetgangan in #436
  • Implement lbfgs and bfgs by @abhijeetgangan in #365
  • Implement SimState.wrap_positions using pbc_wrap_batched by @Praagnya in #350
  • Feature: Add fix symmetry constraint by @danielzuegner in #438
  • Fix L-BFGS history consistency for state updates by @falletta in #443
  • Vectorize atom index computation in L-BFGS optimizer by @falletta in #444
  • Add cumulative strain guard to FixSymmetry by @janosh in #447
  • Make GraphPES tests less flaky as failures are not related to ts code. by @CompRhys in #446
  • Accelerated TrajectoryReporter when trajectory output is disabled by @falletta in #441
  • Accelerated ts.optimize by batching Frechet Cell Filter by @falletta in #439
  • Minor: enable MD progress bar by @danielzuegner in #448
  • Move SPS to a helper method and add some documentation for the two methods. by @CompRhys in #455
  • Fix constraint atom_idx not remapped on reordered slice by @falletta in #457

Full Changelog: v0.5.1...v0.5.2

v0.5.1

29 Jan 20:03
b6dfe4b

Choose a tag to compare

v0.5.1

This release adds several new features including constraints support for molecular dynamics and optimization, trajectory appending capabilities, and a batch cell list implementation. It also includes improvements to integrator initialization, temperature handling, and numerous bug fixes.

πŸŽ‰ New Features

  • Constraints support for molecular dynamics and optimization by @thomasloux in #294
    • Added FixAtoms constraint to fix specific atoms in place
    • Added FixCom constraint to prevent center of mass drift
    • Constraints automatically adjust degrees of freedom for accurate temperature calculations
    • Full support across all integrators (NVE, NVT, NPT) and optimizers (FIRE, Gradient Descent)
    • Constraints preserved during state manipulation (slicing, splitting, concatenation)
  • Scale atoms when changing cell by @thomasloux in #344
  • Allow different temperatures in ts.integrate by @thomasloux in #367
  • Add batch cell list by @abhijeetgangan in #388
  • Enable appending to trajectory when using ts.optimize/ts.integrate by @danielzuegner in #361
  • Enable user to save initial state of trajectory by @danielzuegner in #415

πŸ›  Enhancements

πŸ› Bug Fixes

πŸ“– Documentation

  • Update metatrain version in metatomic tutorial by @Luthaf in #395

🧹 House-Keeping

v0.5.0

19 Dec 17:03

Choose a tag to compare

v0.5.0

This release focuses on improving batch processing capabilities across TorchSim. The neighbor list module has been completely refactored to support batched calculations with multiple backend implementations, elastic tensor calculations now leverage batched operations for improved performance, and a bug fix ensures Monte Carlo swaps work correctly with ragged (different-sized) systems.

πŸŽ‰ New Features

  • Refactor neighbor list module with batched support and multiple backends by @abhijeetgangan in #348
    • New unified torchsim_nl function with automatic backend selection
    • Multiple implementations: Alchemiops (NVIDIA CUDA), Vesin, torch_nl, and pure PyTorch fallback
    • Support for both single-system and batched (multi-system) calculations
    • Automatic selection of best available implementation based on installed packages

πŸ›  Enhancements

  • Batch elastic operations by @orionarcher in #384
    • calculate_elastic_tensor now uses ts.static runner for batched calculations
    • Added autobatcher parameter for memory-efficient processing of deformations
    • Added pbar parameter for progress bar support

πŸ› Bug Fixes

  • Fix Monte Carlo swap for ragged systems by @curtischong in #380
    • Fixed generate_swaps calculation of system start indices for systems with different atom counts

v0.4.2

11 Dec 21:07
4d26167

Choose a tag to compare

v0.4.2

Thank you to everyone who contributed to this release! This release includes important bug fixes and new features. @thomasloux, @orionarcher, @WillEngler, @RishikeshMagar, @nh-univie, @andrewrm98, @danielzuegner, and others made valuable contributions. πŸš€

πŸŽ‰ New Features

πŸ› Bug Fixes

πŸ›  Enhancements

  • Consolidate model and model_name args in FairchemModel by @orionarcher in #377

New Contributors

v0.4.1

23 Nov 17:37

Choose a tag to compare

Thank you to everyone who contributed to this release! This release includes important bug fixes, new features, and API improvements. @thomasloux, @curtischong, @CompRhys, @orionarcher, @WillEngler, @samanvya10, @hn-yu, @wendymak8, @chuin-wei, @pragnya17, and many others made valuable contributions. πŸš€

πŸ’₯ Breaking Changes

πŸŽ‰ New Features

πŸ› Bug Fixes

  • MACE: transfer atomic numbers to CPU before converting to numpy by @t-reents in #289
  • Fixed max atoms memory estimation by @nh-univie in #279
  • Fixing model loading logic (names and cache dir) for fairchem models by @nh-univie in #278
  • Fix fairchem and neighbors tests by @WillEngler in #317
  • Fix #293: State to device side effects by @samanvya10 in #297
  • Fix graph-pes key issue by @jla-gardner in #303
  • Fix calculate static state after relax by @curtischong in #338
  • Misc fixes by @orionarcher in #336
  • Fix cell to cellpar by @thomasloux in #342
  • Fix failing Docs build by @CompRhys in #296
  • Fix: correct speedup plot image path in README by @Joaqland in #333

πŸ›  Enhancements

  • Put SimState Init logic into post_init (and enforce kw_args=true for SimState children) by @curtischong in #335
  • Replace vars(state) with state.attributes by @orionarcher in #329
  • Rename and reorder some variables by @orionarcher in #316
  • Add SevenNet path, str types for model arg by @YutackPark in #322
  • Add version attribute by @thomasloux in #311
  • Convert cell_to_cellpar from ase's numpy implementation to pytorch by @wendymak8 in #306
  • Autobatch OOM handling by @chuin-wei in #337
  • Allow Mace to be loaded from a model path by @orionarcher in #349
  • NPTLangevinState inherits from MDState by @hn-yu in #299

πŸ“– Documentation

🏷️ Type Hints

  • Create py.typed by @arosen93 in #287

🧹 House-Keeping

  • Remove unused imports orb and updates class type check by @thomasloux in #292
  • Skip FairChem tests on forks due to HF secret by @CompRhys in #295

πŸ“¦ Dependencies

  • Loosen numpy dependency by @chuin-wei in #321

New Contributors

  • @arosen93 made their first contribution in #287
  • @nh-univie made their first contribution in #278
  • @samanvya10 made their first contribution in #297
  • @wendymak8 made their first contribution in #306
  • @pragnya17 made their first contribution in #341
  • @chuin-wei made their first contribution in #321
  • @hn-yu made their first contribution in #299
  • @Joaqland made their first contribution in #333

v0.4.0

09 Oct 20:38

Choose a tag to compare

Thank you to everyone who contributed to this release! This release includes significant API improvements and breaking changes. @janosh led a major API redesign to improve usability. @stefanbringuier added heat flux calculations. @curtischong continued improving type safety across the codebase. @CompRhys, @orionarcher, @WillEngler, and @thomasloux all made valuable contributions. πŸš€

Note: This PR makes fairly significant changes to the TorchSim API. Namely, integrators and optimizers no longer return a tuple of init and step functions. Instead these are defined separately and dynamically linked through a registry. In the high level API, you now select the integrator or optimizer by selecting a valid tag from this registry.

What's Changed

πŸ’₯ Breaking Changes

πŸŽ‰ New Features

πŸ› Bug Fixes

πŸ›  Enhancements

πŸ“– Documentation

  • Update citation in README.md by @orionarcher in #240
  • Add GOVERNANCE.md and remove Contributor's Certification checkbox and language by @WillEngler in #272
  • Remove Contributor License Agreement (CLA) in favor of certification in contributing.md by @WillEngler in #267
  • Small update to README and CHANGELOG by @orionarcher in #283

🏷️ Type Hints

🧹 House-Keeping

  • MAINT: update pins in MACE phonons example. Remove misleading ty from PR template by @CompRhys in #239

New Contributors

Full Changelog: v0.3.0...v0.4.0

v0.3.0

13 Aug 22:08
cde91e9

Choose a tag to compare

Thank you to everyone who contributed to this release! @t-reents, @curtischong, and @CompRhys did great work squashing an issue with SimState concatenation. @curtischong continued his crusade to type and improve the TorchSim API. @orionarcher, @kianpu34593, and @janosh all made contributions that continue to improve package quality and usability. πŸš€

What's Changed

πŸ›  Enhancements

πŸ› Bug Fixes

πŸ“– Documentation


Full Changelog: v0.2.2...v0.3.0

v0.2.2

10 Jun 18:17

Choose a tag to compare

Big thank you to @t-reents and @mstapelberg πŸ™ who did an outstanding job first identifying and then fixing several implementation differences between ASE and torch-sim FIRE relaxation. Running fire, unit_cell_fire or frechet_cell_fire with md_flavor="ase_fire" (the new default) is now expected to match the corresponding ASE geometry optimization trajectory. If you encounter any remaining differences, please open an issue!

What's Changed

πŸ›  Enhancements

  • Add pbar: bool | dict = False keyword to optimize, integrate, static runners by @YutackPark in #181
  • Remove unbatched code by @CompRhys in #206

πŸ› Bug Fixes

  • Fix installing conflicting optional dependencies via uv in pyproject.toml by @curtischong in #188
  • Fix Fairchem import possibly failing silently until it reaches setup_imports() by @janosh in #187
  • Fix unit and frechet cell FIRE optimizers not rescaling atom positions after each cell update by @janosh in #199
  • metatensor models have been renamed to metatomic models by @Luthaf in #205
  • Fix discrepancies between FIRE optimisations in ASE and torch-sim by @t-reents in #203

πŸ“– Documentation

  • stricter dead link checks: swap markdown-link-check for lychee by @janosh in #194

🚧 CI

  • Test stresses in the ase consistency test. by @CompRhys in #190

πŸ§ͺ Tests

  • Directly compare ASE vs TorchSim Frechet cell FIRE relaxation by @AdeeshKolluru in #146
  • more robust ordering checks for ts.static by @janosh in #196
  • Difference in ASE FrechetCellFilter vs Torch-Sim (both md_flavors) + enhanced convergence testing by @mstapelberg in #200
  • generate_force_convergence_fn default include_cell_forces to True (matching ASE) by @janosh in #209

πŸ₯ Package Health

🧹 Linting

  • Remove debug print statements from tests and replace them with assertions by @janosh in #210

New Contributors

Full Changelog: v0.2.1...v0.2.2

v0.2.1

02 May 00:46

Choose a tag to compare

What's Changed

πŸ’₯ Breaking Changes

πŸ›  Enhancements

πŸ› Bug Fixes

πŸ“– Documentation

πŸš€ Performance

🚧 CI

  • Refactor test_math.py and test_transforms.py by @janosh in #151

πŸ₯ Package Health

πŸ“¦ Dependencies

🏷️ Type Hints

New Contributors

Full Changelog: v0.2.0...v0.2.1