NoseHoover (NVT Ensemble)

Custom Nose-Hoover NVT thermostat based on ASE.

This code was originally written by Jonathan Mailoa based on these notes:

It was then adapted by Simon Batzner to be used within ASE. Parts of the overall outline of the class are also based on the Langevin class in ASE.

class flare.md.nosehoover.NoseHoover(*args: Any, **kwargs: Any)

Nose-Hoover (constant N, V, T) molecular dynamics.

Usage: NoseHoover(atoms, dt, temperature)

Parameters:
  • atoms (ASE Atoms) – The list of atoms.

  • timestep (float) – The time step.

  • temperature (float) – Target temperature of the MD run in [K * units.kB]

  • nvt_q (float) – Q in the Nose-Hoover equations.

Example Usage:

nvt_dyn = NoseHoover(
    atoms=atoms,
    timestep=0.5 * units.fs,
    temperature=300. * units.kB,
    nvt_q=334.
)
step()

Perform a MD step.