schrodinger.application.matsci.mlip.integrator module¶
Integrators for the MLIP nanoreactor MD engine.
Implements Velocity Verlet and BAOAB Langevin integrators for use with the MDEngine.
Copyright Schrodinger, LLC. All rights reserved.
Tensor shapes use M for the number of replicas and N for the number of atoms in each replica.
- class schrodinger.application.matsci.mlip.integrator.Integrator(engine, dt)¶
Bases:
objectBase integrator class providing the run loop for MDEngine.
Subclasses must implement the step() method.
- __init__(engine, dt)¶
- Parameters:
engine (MDEngine) – The MD engine to integrate
dt (float) – Timestep in femtoseconds
- step()¶
Perform a single integration step. Must be overridden by subclasses.
- run()¶
Run the integration loop until the engine signals stop, then close any async writers.
- class schrodinger.application.matsci.mlip.integrator.VelocityVerlet(engine, dt=0.5)¶
Bases:
IntegratorVelocity Verlet integrator for NVE dynamics.
- __init__(engine, dt=0.5)¶
- Parameters:
engine (MDEngine) – The MD engine to integrate
dt (float) – Timestep in femtoseconds
- step()¶
Perform a single Velocity Verlet step, updating positions and velocities on mdv.
- class schrodinger.application.matsci.mlip.integrator.BAOABLangevin(engine, dt=0.5, temperature=300.0, gamma=1.0, random_seed_generator=None)¶
Bases:
IntegratorBAOAB Langevin integrator for NVT dynamics.
Implements the BAOAB splitting scheme (Leimkuhler & Matthews, 2013) with configurable friction and temperature.
- __init__(engine, dt=0.5, temperature=300.0, gamma=1.0, random_seed_generator=None)¶
- Parameters:
engine (MDEngine) – The MD engine to integrate
dt (float) – Timestep in femtoseconds
temperature (float) – Target temperature in Kelvin
gamma (float) – Friction coefficient in 1/fs
random_seed_generator (torch.Generator or None) – PyTorch random number generator for reproducibility
- step()¶
Perform a single BAOAB Langevin step with Ornstein-Uhlenbeck velocity randomization, updating positions and velocities on mdv.