Releases: TorchSim/torch-sim
v0.5.0
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_nlfunction 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
- New unified
π Enhancements
- Batch elastic operations by @orionarcher in #384
calculate_elastic_tensornow usests.staticrunner for batched calculations- Added
autobatcherparameter for memory-efficient processing of deformations - Added
pbarparameter for progress bar support
π Bug Fixes
- Fix Monte Carlo swap for ragged systems by @curtischong in #380
- Fixed
generate_swapscalculation of system start indices for systems with different atom counts
- Fixed
v0.4.2
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
- Add CSVR / V-Rescale thermostat and anisotropic C rescale barostat by @thomasloux in #326
- Support for electrostatics by @orionarcher in #373
- Add support for AMD GPUs (consumer/datacenter) by @amacbride in #347
π Bug Fixes
- Fix: add init_kwargs to ts.integrate by @danielzuegner in #360
- Fix PBC extraction to CPU fairchem model by @nh-univie in #368
- Handle tensor PBC input in FairChemV1Model by @WillEngler in #372
- Fix Comments Issue#309 by @RishikeshMagar in #378
- Fix fairchem-legacy tests by removing explicit Hugging Face login by @WillEngler in #369
π Enhancements
- Consolidate model and model_name args in FairchemModel by @orionarcher in #377
New Contributors
- @amacbride made their first contribution in #347
- @danielzuegner made their first contribution in #360
- @RishikeshMagar made their first contribution in #378
v0.4.1
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
- Standardize argument order to (state, model) by @pragnya17 in #341
- Deprecate pbc_wrap_general by @curtischong in #305
π New Features
- Mixed PBC Support by @curtischong in #320
- Feature: Batched NVT Nose-Hoover by @thomasloux in #265
- Add degrees of freedom (dof) in state and temperature computation by @thomasloux in #328
- Add sources npt langevin by @thomasloux in #298
π 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
- Add integrators in docs by @thomasloux in #290
π·οΈ 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
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
- Fairchem v2 support by @janosh, @CompRhys, @abhijeetgangan, @orionarcher in #211
- Big breaking API redesign by @janosh in #264
- Rename Flavors to more descriptive names by @orionarcher in #282
π New Features
- Enhancement: Heat Flux Function by @stefanbringuier in #127
π Bug Fixes
- Fix: orb squeeze provides incorrect shape for energy tensor by @thomasloux in #257
- Fix docs build by @WillEngler in #271
π 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
- mypy type math.py and test_math.py by @curtischong in #242
- Type test_io, neighbors, and transforms by @curtischong in #243
- Type trajectory by @curtischong in #244
π§Ή House-Keeping
- MAINT: update pins in MACE phonons example. Remove misleading ty from PR template by @CompRhys in #239
New Contributors
- @thomasloux made their first contribution in #257
- @WillEngler made their first contribution in #267
Full Changelog: v0.3.0...v0.4.0
v0.3.0
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
- Define attribute scopes in
SimStatesby @curtischong, @CompRhys, @orionarcher in #228 - Improve typing of
ModelInterfaceby @curtischong, @CompRhys in #215 - Make
system_idxnon-optional inSimStateby @curtischong in #231 - Add new states when the
max_memory_scaleris updated by @kianpu34593 in #222 - Rename
batchtosystemby @curtischong in #217, #233
π Bug Fixes
- Initial fix for concatenation of states in
InFlightAutoBatcherby @t-reents in #219 - Finish fix for
SimStateconcatenation by @t-reents and @curtischong in #232 - Fix broken code block in low-level tutorial by @CompRhys in #226
- Update metatomic checkpoint to fix tests by @curtischong in #223
- Fix memory scaling in
determine_max_batch_sizeby @t-reents, @janosh in #212
π Documentation
- Update README plot with more models by @orionarcher in #236, #237
- Update
citation.cffby @CompRhys in #225
Full Changelog: v0.2.2...v0.3.0
v0.2.2
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 = Falsekeyword tooptimize,integrate,staticrunners by @YutackPark in #181 - Remove unbatched code by @CompRhys in #206
π Bug Fixes
- Fix installing conflicting optional dependencies via
uvinpyproject.tomlby @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
FIREoptimisations inASEandtorch-simby @t-reents in #203
π Documentation
π§ CI
π§ͺ Tests
- Directly compare ASE vs TorchSim Frechet cell FIRE relaxation by @AdeeshKolluru in #146
- more robust ordering checks for
ts.staticby @janosh in #196 - Difference in ASE
FrechetCellFiltervs Torch-Sim (bothmd_flavors) + enhanced convergence testing by @mstapelberg in #200 generate_force_convergence_fndefaultinclude_cell_forcesto True (matching ASE) by @janosh in #209
π₯ Package Health
- Top-level
SimStateby @janosh in #195 - Pin Metatensor as tests broke with Metatrain release by @CompRhys in #204
π§Ή Linting
New Contributors
Full Changelog: v0.2.1...v0.2.2
v0.2.1
What's Changed
π₯ Breaking Changes
π Enhancements
- Add per atom energies and stresses for batched LJ by @abhijeetgangan in #144
- throw error if autobatcher type is wrong by @orionarcher in #167
π Bug Fixes
- Mattersim fix tensors on wrong device (CPU->GPU) by @orionarcher in #154
- fix
npt_langevinby @jla-gardner in #153 - Make sure to move data to CPU before calling vesin by @Luthaf in #156
- Fix virial calculations in
optimizersandintegratorsby @janosh in #163 - Pad memory estimation by @orionarcher in #160
- Refactor sevennet model by @YutackPark in #172
iooptional dependencies inpyproject.tomlby @curtischong in #185- Fix column->row cell vector mismatch in integrators by @CompRhys in #175
π Documentation
- (tiny) add graph-pes to README by @jla-gardner in #149
- Better module fig by @janosh in #168
π Performance
- More efficient Orb
state_to_atoms_graphcalculation by @AdeeshKolluru in #165
π§ CI
π₯ Package Health
π¦ Dependencies
π·οΈ Type Hints
New Contributors
- @Luthaf made their first contribution in #156
- @YutackPark made their first contribution in #172
- @curtischong made their first contribution in #185
Full Changelog: v0.2.0...v0.2.1
v0.2.0
Bug Fixes π
- Fix integrate reporting kwarg to arg error, #113 (raised by @hn-yu)
- Allow runners to take large initial batches, #128 (raised by @YutackPark)
- Add Fairchem model support for PBC, #111 (raised by @ryanliu30)
Enhancements π
- [breaking] Rename
HotSwappingAutobatchertoInFlightAutobatcherandChunkingAutoBatchertoBinningAutoBatcher, #143 @orionarcher - Support for Orbv3, #140, @AdeeshKolluru
- Support metatensor models, #141, @frostedoyster @Luthaf
- Support for graph-pes models, #118 @jla-gardner
- Support MatterSim and fix ASE cell convention issues, #112 @CompRhys
- Implement positions only FIRE optimization, #139 @abhijeetgangan
- Allow different temperatures in batches, #123 @orionarcher
- FairChem model updates: PBC handling, test on OMat24 e-trained model, #126 @AdeeshKolluru
- FairChem model from_data_list support, #138 @ryanliu30
- New correlation function module, #115 @stefanbringuier
Documentation π
- Imoved model documentation, #121 @orionarcher
- Plot of TorchSim module graph in docs, #132 @janosh
House-Keeping π§Ή
- Only install HF for fairchem tests, #134 @CompRhys
- Don't download MBD in CI, #135 @orionarcher
- Tighten graph-pes test bounds, #143 @orionarcher
v0.1.0
Initial release introducing torch-sim, a next-generation open-source atomistic simulation engine for the MLIP era.