torch_sim.integrators¶
Integrators for molecular dynamics simulations.
This module provides a collection of integrators for molecular dynamics simulations, supporting NVE (microcanonical), NVT (canonical), and NPT (isothermal-isobaric) ensembles. Each integrator handles batched simulations efficiently using PyTorch tensors and supports periodic boundary conditions.
- NVE:
Velocity Verlet integrator for constant energy simulations
nve.nve_step()
- NVT:
- Velocity Rescaling thermostat integrator
- Langevin thermostat integrator
nvt.nvt_langevin_step() using BAOAB scheme [2]
- Langevin thermostat integrator
Nosé-Hoover thermostat integrator
nvt.nvt_nose_hoover_step()from [3]
- NPT:
Isotropic Langevin barostat
npt.npt_langevin_isotropic_step()[4, 5]- Anisotropic Langevin barostat (independent cell lengths)
Isotropic Nosé-Hoover barostat
npt.npt_nose_hoover_isotropic_step()from [10]- Isotropic C-Rescale barostat
npt.npt_crescale_isotropic_step() from [6, 8, 9]
- Isotropic C-Rescale barostat
- Triclinic C-Rescale barostat (cell lengths and angles)
npt.npt_crescale_triclinic_step()from [7, 8, 9]
References
- [1] Bussi G, Donadio D, Parrinello M. “Canonical sampling through velocity rescaling.”
The Journal of chemical physics, 126(1), 014101 (2007).
- [2] Leimkuhler B, Matthews C.2016 Efficient molecular dynamics using geodesic
integration and solvent-solute splitting. Proc. R. Soc. A 472: 20160138
- [3] Martyna, G. J., Tuckerman, M. E., Tobias, D. J., & Klein, M. L. (1996).
Explicit reversible integrators for extended systems dynamics. Molecular Physics, 87(5), 1117-1157.
- [4] Grønbech-Jensen, N., & Farago, O. (2014).
Constant pressure and temperature discrete-time Langevin molecular dynamics. The Journal of chemical physics, 141(19).
[5] LAMMPS: https://docs.lammps.org/fix_press_langevin.html
- [6] Bernetti, Mattia, and Giovanni Bussi.
“Pressure control using stochastic cell rescaling.” The Journal of Chemical Physics 153.11 (2020).
- [7] Del Tatto, Vittorio, et al. “Molecular dynamics of solids at
constant pressure and stress using anisotropic stochastic cell rescaling.” Applied Sciences 12.3 (2022): 1139.
- [8] Bussi Anisotropic C-Rescale SimpleMD implementation:
https://github.com/bussilab/crescale/blob/master/simplemd_anisotropic/simplemd.cpp
[9] Supplementary Information for [6].
- [10]Tuckerman, Mark E., et al. “A Liouville-operator derived measure-preserving
integrator for molecular dynamics simulations in the isothermal-isobaric ensemble.” Journal of Physics A: Mathematical and General 39.19 (2006): 5629-5651.
Examples
>>> import torch_sim as ts
>>> state = ts.nvt_langevin_init(initial_state, model, kT=300.0 * units.temperature)
>>> for _ in range(1000):
... state = ts.nvt_langevin_step(
... state, model, dt=1e-3 * units.time, kT=300.0 * units.temperature
... )
Notes
All integrators support batched operations for efficient parallel simulation of multiple systems.
Module Attributes
Integrator registry - maps integrator names to (init_fn, step_fn) pairs. |
Classes
Enumeration of available molecular dynamics (MD) integrators. |
Modules