Wiki

Clone wiki

MIST / About

What is MIST?

MIST is a C++ library, which provides two key abstractions, each implemented as an abstract class:

● The System class consists of a set of particles, with various properties:

  • position,
  • velocity,
  • mass,
  • force on the particle, and
  • species.

A simple API is provided to get and set the properties of each particle. In addition, accessors are provided for
global quantities such as the potential energy, and a single function call updates the forces on the particles given the current state of the system. Subclasses are provided for each supported MD code, as shown in the diagram below, which implement the System API using the data structures present in that code.

System class inheritance

● An Integrator class provides only a single method, which integrates the system from time t to t+dt. Integrators are implemented using only the System API, completely independent of any particular MD code. Several examples are provided, including a Verlet integrator, 4th and 8th order Yoshida symplectic integrators [1], Langevin dynamics using the BAOAB scheme [2], and a Continuous Tempering integrator [3] as schematically show in the diagram below.

Integrator class inheritance

MIST also provides C and Fortran90 APIs to enable integration with 'host' MD codes. MIST API calls are inserted in place of the usual MD step via source-code patches, which are provided with MIST and applied during the build process.

To use MIST requires setting a single configuration flag in the host MD code, then further configuration of MIST is via a separate mist.params file, for example selecting an integrator and setting any additional integrator parameters. All configuration of the force-field, simulation parameters and I/O is done as normal in the MD code's input files. The overall architecture is represented in the diagram below.

MIST Architecture.png

As distributions of LAMMPS, GROMACS, AMBER and NAMD-Lite need to be patched, compiled and linked with the MIST library it is best if you try to keep to the versions described below:

Distribution Version
GROMACS 5.0.2
AMBER 14.x
NAMD-Lite 2.0.3
LAMMPS https://github.com/ibethune/lammps

Only these specific versions are tested and support, so while it may be possible to compile with a similar version - please test carefully!

Up: Home; Next: Installing MIST

Updated