OpenMM methods¶
One page per protocol MD-tools generates. Each page states what the method is for, what this repository implements and does not implement, and what the generated directory contains.
How any of these is actually launched — the Amber-like flags, the platform policy, the MPI rules — is Running.
| method | ensemble | what it is for | page |
|---|---|---|---|
| cMD | NPT explicit, NVT implicit | ordinary molecular dynamics; also the source ensemble of V0 for AIS | protocol: cMD |
| REST2 | NVT | replica exchange with solute tempering — Hamiltonian scaling at one physical temperature | protocol: REST2 |
| AIS | fixed volume | annealed importance sampling: non-equilibrium switching paths from V0 to V1 and their work | protocol: AIS |
| umbrella | as cMD | biased sampling along torsion collective variables, one window per run | protocol: umbrella |
| alchemy | md-openmm combine-topology |
on hold — see On hold | protocol: alchemical |
All five are generated by the same command and differ only by protocol: in the configuration:
What is shared¶
Scaling. Fixed-τ cMD and REST2 scale the Hamiltonian through one implementation, and it runs
in one place: md-openmm build-top --rest2-scaler writes every scaled state as a file
(build/<method>/system_state<i>.xml with its scaler.yaml), and a run integrates those files as
they are. AIS scales nothing: it mixes two end-state Systems it is given,
V(λ) = (1 − λ)·V0 + λ·V1, and for a REST2 switch V0 is such a saved state. There is no second
scaler, so a change to the scaling rules cannot reach one protocol and miss another. The rules
themselves are in
the REST2 page.
Lengths are integer step counts. Every duration in a configuration is a number of steps. The logs derive picoseconds and nanoseconds for the reader once the numerical timestep is known. A schedule that would have to be rounded is refused, with the arithmetic that would fix it.
τ is the only public scaling coordinate. Neither s nor √s is ever written to a
configuration or a record.
Restart is by content, not by name. Every stage records the parent state it continued from with its SHA-256, and a checkpoint is refused if the resolved configuration, System or topology that produced it has changed.
The generated directory¶
build-md writes small entry points, not copies of the implementation. A stage script is:
#!/usr/bin/env python
from md_tools.md import run_generated_stage
raise SystemExit(run_generated_stage(__file__, "min"))
The behaviour lives in the installed md_tools package; resolved.config beside the script is the
single resolved declaration of the workflow, and the script finds it relative to __file__. The
whole directory can be moved and it still runs.
Reading order¶
New to the repository: cMD, then the scientific defaults.
Choosing between enhanced-sampling methods: REST2 → AIS.
rREST2 (REST2 with a Boltzmann reservoir refresh) is archived as of 0.5.4: it is refused by name,
and the git tag rREST2-final is the last commit where it runs.
Registering what you produced: data registration.
Related¶
- Scientific defaults and their evidence — why each default is what it is
- Support matrix — what is supported, experimental, or unsupported
- The dataset contract — the schema-level authority for records