nvt_nose_hoover_step¶
- torch_sim.integrators.nvt.nvt_nose_hoover_step(state, model, *, dt, kT)[source]¶
Perform one complete Nose-Hoover chain (NHC) integration step.
Implements the NHC thermostat from Martyna et al. (1996) [3] with Suzuki-Yoshida integration of the chain variables.
Equations of motion (Martyna et al. 1996, Eqs. 13-18):
\[\begin{split}\dot{\mathbf{r}}_i &= \mathbf{p}_i / m_i \\ \dot{\mathbf{p}}_i &= \mathbf{F}_i - \frac{p_{\xi_1}}{Q_1}\,\mathbf{p}_i \\ \dot{\xi}_j &= p_{\xi_j} / Q_j \\ \dot{p}_{\xi_1} &= \bigl(2K - N_f k_BT\bigr) - \frac{p_{\xi_2}}{Q_2}\,p_{\xi_1} \\ \dot{p}_{\xi_j} &= \left(\frac{p_{\xi_{j-1}}^2}{Q_{j-1}} - k_BT\right) - \frac{p_{\xi_{j+1}}}{Q_{j+1}}\,p_{\xi_j} \quad (j = 2,\ldots,M{-}1) \\ \dot{p}_{\xi_M} &= \frac{p_{\xi_{M-1}}^2}{Q_{M-1}} - k_BT\end{split}\]where \(K = \sum_i p_i^2/(2m_i)\) is the kinetic energy, \(N_f = 3N - 3\) the degrees of freedom, and \(Q_j = k_BT\tau^2\) (with \(Q_1 = N_f k_BT\tau^2\)) are the chain masses.
Symmetric propagator (Trotter factorization):
\[e^{i\mathcal{L}\Delta t} = e^{i\mathcal{L}_{\text{NHC}}\Delta t/2} \;e^{i\mathcal{L}_{\text{VV}}\Delta t} \;e^{i\mathcal{L}_{\text{NHC}}\Delta t/2}\]where \(i\mathcal{L}_{\text{VV}}\) is the velocity Verlet propagator and \(i\mathcal{L}_{\text{NHC}}\) integrates the chain with \(n_c \times n_{\text{sy}}\) sub-steps (Suzuki-Yoshida decomposition).
Variable mapping (equation -> code):
Equation symbol
Code variable
\(\mathbf{r}_i\) (positions)
state.positions\(\mathbf{p}_i\) (momenta)
state.momenta\(m_i\) (masses)
state.masses\(\mathbf{F}_i\) (forces)
state.forces\(\xi_j\) (chain positions)
state.chain.positions\(p_{\xi_j}\) (chain momenta)
state.chain.momenta\(Q_j\) (chain masses)
state.chain.masses\(K\) (kinetic energy)
state.chain.kinetic_energy\(N_f\) (degrees of freedom)
state.chain.degrees_of_freedom\(\tau\) (relaxation time)
state.chain.tau\(k_BT\) (thermal energy)
kT\(\Delta t\) (timestep)
dt\(M\) (chain length)
chain_length\(n_c\) (chain substeps)
chain_steps\(n_{\text{sy}}\) (SY steps)
sy_steps- Parameters:
state (NVTNoseHooverState) – Current system state containing positions, momenta, forces, and chain
model (ModelInterface) – Neural network model that computes energies and forces
- Returns:
Updated state after one complete Nose-Hoover step
- Return type:
References