# toyMD

**toyMD** is a package for molecular dynamics simulation. It is designed to be easy to learn and extend, so that students can modify the code and add the features they need for their own projects. The code is written in Fortran 95 and broken up into modules. Many of the modules can be used separately to process the results of other simulations. They include routines to calculate forces and energies, to find time-dependent correlation functions, and other useful calculations.

toyMD handles most classical potentials, rigid bonds using SHAKE, harmonic bonds, Modified Embedded Atom Models for transition metals, and polarisable particles. It simulates the NVE, NVT and NpT ensembles using Nose-Hoover chains and related methods. It calculates inherent structures, and time correlation functions for various fields, such as particle or polarisation densities. The modular structure means that the time correlations of new fields may be studied by writing only a few lines of code, without the need to deal with the more complex internal workings of the program.

Electrostatics are handled using the P3M method based on the FFTW3 Fourier routines. This allows the use of the Fourier routines in the Intel Math Kernel Library.