Changelogยถ
Unreleasedยถ
v0.6.0ยถ
This release is shaped by three major pushes:
External model posture. Model integrations are increasingly maintained in the modelโs own package rather than in-tree. Orb (#456), SevenNet (#467), and Metatomic (#523) are migrated to upstream-maintained torch-sim interfaces, Nequix lands as a new model via the same pattern (#511), and testing utilities for this external-model posture are added (#433, released in v0.5.2).
Extensible extras framework. A new scheme for attaching extra atom/system properties to
SimState(#464) unlocks long-range physics on top of a common base: Electrostatics (#532), D3 Dispersion (#531), and aSumModelinterface for composing force fields (#530, #537).Physical validation. A major effort from @thomasloux introduced an integration-test suite that checks physical observables across the integrators (#521). This surfaced and drove fixes for a string of long-standing bugs in the NPT Nose-Hoover and NPT Langevin integrators (#498, #504, #505, #520, #528), materially improving MD correctness.
Other highlights include a native PyTorch batched cell list, a general pair-potential framework, a first-class PRNG on SimState with reproducibility docs, basic logging configuration, and duecredit support.
๐ New Featuresยถ
Introduce more extensible scheme for extra properties by @CompRhys in #464
Add Electrostatics using extensible extras by @CompRhys in #532
Add D3 Dispersion Model by @CompRhys in #531
Add SumModel interface by @CompRhys in #530
Compose models for allegro-pol simulation by @CompRhys in #537
Migrate Metatomic model to use upstream
metatomic-torchsimintegration by @CompRhys in #523Add Nequix model via upstream
nequixintegration by @teddykoker in #511Migrate Orb model to use upstream
orb-modelsintegration by @CompRhys in #456Migrate SevenNet model to use upstream
sevennintegration by @CompRhys in #467Implement general pair-potential and pair-force by @CompRhys in #483
Add batched Lennard-Jones model by @abhijeetgangan in #474
Add
NPTStatethat carries a stress variable by @thomasloux in #505Introduce PRNG to
SimStateand add reproducibility docs by @CompRhys in #460Configure basic logging by @CompRhys in #484
Implement first pass at
duecreditby @CompRhys in #459
๐ Performanceยถ
๐ Enhancementsยถ
Add
pbc_wrap_batched_and_get_lattice_shiftsto handle unwrapped positions in neighbor lists by @CompRhys in #519Expose
angle_tolerancein symmetry pipeline by @danielzuegner in #527Forward
max_memory_paddingto_chunked_applyinoptimize()by @niklashoelter in #513Enforce compatible constraints in DOF helper by @janosh in #480
Check that models return detached tensors by @CompRhys in #494
Add log line clarifying
BinningAutoBatcheris initialization-only inoptimizeby @orionarcher in #489Add
n_edgesmemory metric to auto-batching by @orionarcher in #481Standardize parameter typing to
float | torch.Tensorwhere appropriate by @CompRhys in #466Remove
StateDicttype andensure_sim_statehelper by @orionarcher in #487Add single-atom motif edge case to the validate function by @CompRhys in #518
Use sequential split instead of iterative
__getitem__for slicing by @thomasloux in #546
๐ Bug Fixesยถ
Fix
state.to()not propagating dtype/device to constraints by @danielzuegner in #527Fix
FixSymmetryconstraintsystem_idxremapping on reordered state slicing by @danielzuegner in #509Fix NPT Nose-Hoover integrator by @alphalm4 in #520
Update momenta before integration in NPT Nose-Hoover by @alphalm4 in #498
Update sources for NPT Nose-Hoover by @thomasloux in #504
Clamp Frechet log-space deformation gradient to prevent NaN from
matrix_expoverflow by @janosh in #450Fix FIRE NaN velocity sentinel corrupting retained systems during autobatcher swaps by @janosh in #490
Fix GPU memory leak from missing
.detach()in model wrappers by @reillyosadchey in #491Adjust test tolerances to resolve false positive test failures by @CompRhys in #507
Update Phonopy test fixture after removal of dummy
pbckwarg in 3.2.0 by @CompRhys in #515Hotfix: max pin on
tablesdue to broken 3.11 PyTables release by @CompRhys in #461
๐งน House-Keepingยถ
Remove
graph-pesmodel integration by @craigxchen in #538General maintenance & reap FairChem v1 by @CompRhys in #522
Add integration tests checking physical observables across integrators by @thomasloux in #521
Add example benchmarking scripts by @CompRhys in #516
Maintenance to restore CI to all passing by @CompRhys in #533
Nits rollup by @CompRhys in #501
Batched pair-function cleanup by @CompRhys in #488
Pin
orb<0.6by @CompRhys in #493Consolidate branch protection rules by @CompRhys in #492
Bump
tablesversion and use py3.14 for highest tests by @CompRhys in #486Run
tyin lint CI by @janosh in #339Restore non-conflicting changes from #339 (ty linting setup) by @CompRhys in #476
Restore #460 seed-removal semantics after #339 by @janosh in #477
Set root path in link check action by @CompRhys in #468
v0.5.2ยถ
This release adds batched L-BFGS and BFGS optimizers, a FixSymmetry constraint, performance improvements to ts.static and ts.optimize through improved batching, and an MD progress bar. It also includes several bug fixes and quality-of-life improvements.
๐ New Featuresยถ
๐ Performanceยถ
Accelerated
ts.static+ added scaling scripts by @falletta in #427Accelerated
ts.optimizeby batching Frechet Cell Filter by @falletta in #439Accelerated
TrajectoryReporterwhen trajectory output is disabled by @falletta in #441Vectorize atom index computation in L-BFGS optimizer by @falletta in #444
๐ Enhancementsยถ
๐ Bug Fixesยถ
๐งน House-Keepingยถ
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
FixAtomsconstraint to fix specific atoms in placeAdded
FixComconstraint to prevent center of mass driftConstraints 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.integrateby @thomasloux in #367Add batch cell list by @abhijeetgangan in #388
Enable appending to trajectory when using
ts.optimize/ts.integrateby @danielzuegner in #361Enable user to save initial state of trajectory by @danielzuegner in #415
๐ Enhancementsยถ
Better default force convergence function by @orionarcher in #404
Add systemwise
max_forceas a default property for reporter_dict by @orionarcher in #410Add charge and spin to common_args dicts by @orionarcher in #413
Replace manual initialization with
from_stateacross integrators and optimizers by @orionarcher in #420Update energy description to โPotential energyโ by @danielzuegner in #408
Use upstream NequipTorchSimModel by @CompRhys in #400
๐ Bug Fixesยถ
Fix cuequivariance MACE by @thomasloux in #391
Fix SevenNet tests by @YutackPark in #393
Fix tutorials dependencies by @thomasloux in #396
Fix offsets in merge_constraints by @falletta in #402
Fix memory scaling calculation for non-periodic boundary conditions by @orionarcher in #412
Download NequIP model from Zenodo instead of nequip.net by @orionarcher in #418
๐ Documentationยถ
Update metatrain version in metatomic tutorial by @Luthaf in #395
๐งน House-Keepingยถ
Add close stale bot by @CompRhys in #411
Significantly consolidate scripts to speed up testing by @orionarcher in #385
Use validate_model_outputs in testing by @CompRhys in #401
Reduce test wall time by @CompRhys in #403
Pin scipy for fairchem tests by @CompRhys in #405
Disable NequIP tests for Python 3.13 by @curtischong in #421
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 selectionMultiple 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_tensornow usests.staticrunner for batched calculationsAdded
autobatcherparameter for memory-efficient processing of deformationsAdded
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
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ยถ
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ยถ
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ยถ
๐ 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ยถ
Add integrators in docs by @thomasloux in #290
๐ท๏ธ Type Hintsยถ
Create py.typed by @arosen93 in #287
๐งน House-Keepingยถ
๐ฆ 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. ๐
Whatโs Changedยถ
๐ฅ Breaking Changesยถ
๐ New Featuresยถ
Enhancement: Heat Flux Function by @stefanbringuier in #127
๐ Bug Fixesยถ
๐ Enhancementsยถ
Fairchem legacy support by @CompRhys in #270
๐ 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: https://github.com/TorchSim/torch-sim/compare/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ยถ
๐ Bug Fixesยถ
Initial fix for concatenation of states in
InFlightAutoBatcherby @t-reents in #219Finish fix for
SimStateconcatenation by @t-reents and @curtischong in #232Fix 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: https://github.com/TorchSim/torch-sim/compare/v0.2.2โฆv0.3.0
v0.2.2ยถ
Whatโs Changedยถ
๐ฅ Breaking Changesยถ
Remove higher level model imports by @CompRhys in https://github.com/TorchSim/torch-sim/pull/179
๐ Enhancementsยถ
Add per atom energies and stresses for batched LJ by @abhijeetgangan in https://github.com/TorchSim/torch-sim/pull/144
throw error if autobatcher type is wrong by @orionarcher in https://github.com/TorchSim/torch-sim/pull/167
๐ Bug Fixesยถ
Mattersim fix tensors on wrong device (CPU->GPU) by @orionarcher in https://github.com/TorchSim/torch-sim/pull/154
fix
npt_langevinby @jla-gardner in https://github.com/TorchSim/torch-sim/pull/153Make sure to move data to CPU before calling vesin by @Luthaf in https://github.com/TorchSim/torch-sim/pull/156
Fix virial calculations in
optimizersandintegratorsby @janosh in https://github.com/TorchSim/torch-sim/pull/163Pad memory estimation by @orionarcher in https://github.com/TorchSim/torch-sim/pull/160
Refactor sevennet model by @YutackPark in https://github.com/TorchSim/torch-sim/pull/172
iooptional dependencies inpyproject.tomlby @curtischong in https://github.com/TorchSim/torch-sim/pull/185Fix column->row cell vector mismatch in integrators by @CompRhys in https://github.com/TorchSim/torch-sim/pull/175
๐ Documentationยถ
(tiny) add graph-pes to README by @jla-gardner in https://github.com/TorchSim/torch-sim/pull/149
Better module fig by @janosh in https://github.com/TorchSim/torch-sim/pull/168
๐ Performanceยถ
More efficient Orb
state_to_atoms_graphcalculation by @AdeeshKolluru in https://github.com/TorchSim/torch-sim/pull/165
๐ง CIยถ
Refactor
test_math.pyandtest_transforms.pyby @janosh in https://github.com/TorchSim/torch-sim/pull/151
๐ฅ Package Healthยถ
Try out hatchling for build vs setuptools by @CompRhys in https://github.com/TorchSim/torch-sim/pull/177
๐ฆ Dependenciesยถ
Bump
mace-torchto v0.3.12 by @janosh in https://github.com/TorchSim/torch-sim/pull/170Update metatrain dependency by @Luthaf in https://github.com/TorchSim/torch-sim/pull/186
๐ท๏ธ Type Hintsยถ
Add
torch_sim/typing.pyby @janosh in https://github.com/TorchSim/torch-sim/pull/157
New Contributorsยถ
@Luthaf made their first contribution in https://github.com/TorchSim/torch-sim/pull/156
@YutackPark made their first contribution in https://github.com/TorchSim/torch-sim/pull/172
@curtischong made their first contribution in https://github.com/TorchSim/torch-sim/pull/185
Full Changelog: https://github.com/TorchSim/torch-sim/compare/v0.2.0โฆv0.2.1
v0.2.1ยถ
Whatโs Changedยถ
๐ฅ Breaking Changesยถ
Remove higher level model imports by @CompRhys in #179
๐ Enhancementsยถ
๐ Bug Fixesยถ
Fix column->row cell vector mismatch in integrators by @CompRhys in #175
Mattersim fix tensors on wrong device (CPU->GPU) by @orionarcher in #154
fix
npt_langevinby @jla-gardner in #153Make sure to move data to CPU before calling vesin by @Luthaf in #156
Fix virial calculations in
optimizersandintegratorsby @janosh in #163Pad memory estimation by @orionarcher in #160
Refactor sevennet model by @YutackPark in #172
iooptional dependencies inpyproject.tomlby @curtischong in #185
๐ Documentationยถ
๐ Performanceยถ
More efficient Orb
state_to_atoms_graphcalculation by @AdeeshKolluru in #165
๐ง CIยถ
Refactor
test_math.pyandtest_transforms.pyby @janosh in #151
๐ฅ Package Healthยถ
Try out hatchling for build vs setuptools by @CompRhys in #177
๐ท๏ธ Type Hintsยถ
Add
torch-sim/typing.pyby @janosh in #157
๐ฆ Dependenciesยถ
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: https://github.com/torchsim/torch-sim/compare/v0.2.0โฆv0.2.1
v0.2.0ยถ
Bug Fixes ๐ยถ
Enhancements ๐ ยถ
breaking Rename
HotSwappingAutobatchertoInFlightAutobatcherandChunkingAutoBatchertoBinningAutoBatcher, #143 @orionarcherSupport for Orbv3, #140, @AdeeshKolluru
Support metatensor models, #141, @frostedoyter @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 ๐ยถ
House-Keeping ๐งนยถ
v0.1.0ยถ
Initial release.