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/langevin scheme [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:
Returns:

Updated state

Return type:

NPTLangevinAnisotropicState

References