npt_langevin_anisotropic_step¶
- torch_sim.integrators.npt.npt_langevin_anisotropic_step(state, model, *, dt, kT, external_pressure)[source]¶
Perform one NPT Langevin step with independent per-dimension cell lengths.
Implements constant-pressure Langevin dynamics based on Gronbech-Jensen & Farago (2014) [4] and the LAMMPS
fix press/langevinscheme [5].Each spatial dimension i has its own logarithmic strain \(\varepsilon_i = \ln(L_i/L_{i,0})\) driven by the diagonal pressure component \(P_{ii}\).
Per-dimension strain force:
\[F_{\varepsilon_i} = V \cdot (P_{ii} - P_{\text{ext},i})\]where \(P_{ii} = -\sigma_{ii} + N k_B T / V\).
With three identical target pressures the sum \(\sum_i F_{\varepsilon_i}\) equals the isotropic strain force.
Cell reconstruction:
\[\mathbf{h}_i = e^{\varepsilon_i}\,\mathbf{h}_{i,0}\]Particle scaling (per component):
\[r_{k,i} \to e^{\varepsilon_i^{n+1} - \varepsilon_i^n}\, r_{k,i}\]- Parameters:
state (NPTLangevinAnisotropicState) – Current NPT state
model (ModelInterface) – Model computing energy, forces, stress
external_pressure (float | Tensor) – Target pressure — scalar (same for all dims), shape [3] (per-dimension), or [n_systems, 3]
- Returns:
Updated state
- Return type:
References