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:
Returns:

Updated state after one integration step

Return type:

NPTCRescaleState

References