npt_crescale_isotropic_step¶
- torch_sim.integrators.npt.npt_crescale_isotropic_step(state, model, *, dt, kT, external_pressure, tau=None)[source]¶
Perform one NPT integration step with isotropic stochastic cell rescaling.
Implements isotropic C-Rescale from Bernetti & Bussi (2020) [6]. Cell shape is preserved; cell lengths are scaled equally.
Trotter splitting:
V-Rescale(dt/2) -> B(dt/2) -> Barostat(dt) -> Force eval -> B(dt/2) -> V-Rescale(dt/2)
Isotropic volume SDE (Eq. 7 of [6], using \(\lambda = \sqrt{V}\)):
\[d\lambda = -\frac{\beta_T\lambda}{2\tau_p} \left(P_0 - \frac{\text{Tr}(\mathbf{P}_{\text{int}})}{3} - \frac{k_BT}{2V}\right) dt + \sqrt{\frac{k_BT\,\beta_T}{2\tau_p}}\;dW\]where \(\beta_T\) is the isothermal compressibility and \(\mathbf{P}_{\text{int}}\) is the instantaneous pressure tensor (including the kinetic contribution).
Position and momentum scaling (SI Eqs. S13a-b of [6], corrected):
\[\begin{split}\mathbf{r}_i &\leftarrow \mu\,\mathbf{r}_i + (\mu + \mu^{-1})\,\frac{\mathbf{p}_i}{2m_i}\,\Delta t \\ \mathbf{p}_i &\leftarrow \mu^{-1}\,\mathbf{p}_i \\ \mathbf{h} &\leftarrow \mu\,\mathbf{h}\end{split}\]where \(\mu = (V'/V)^{1/3}\) is the isotropic scaling factor and \(\mathbf{h}\) is the cell matrix.
Variable mapping (equation -> code):
- Parameters:
model (ModelInterface) – Model to compute forces and energies
state (NPTCRescaleState) – Current system state
external_pressure (float | Tensor) – Target external pressure
tau (float | Tensor | None) – V-Rescale thermostat relaxation time. If None, defaults to 100*dt
- Returns:
Updated state after one integration step
- Return type:
References