A classical MD code to test concepts and implementation for use in CONQUEST, in particular, extended-Lagrangian schemes for thermostatting, barostatting and constraining.
MD can run classical molecular dynamics simulations using Lennard-Jones and Morse pair potentials at present. Available ensembles are NVE with velocity Verlet integration, NVT with velocity rescaling or Nose-Hoover chains with the MTK implmenetation. NPT is currently under development using the the Parrinello-Rahman barostat and Nose-Hoover Chains in the MTTK implementation.
Requirements:
- BLAS/LAPACK
- Fortran compiler (I use gfortran)
- Python 3 for analysis scripts
- Scipy
- Matplotlib
- VMD for visualisation
Simply run "make" in the libzamaan directory and molecular_dynamics directories, or run "build.sh" in the molecular dynamics directory. It may be necessary to change some paths in the Makefile.inc files, but it runs on my Macbook Pro.
Once compiled, run the main program using the "md" executable. The program will look for the following three input files in the working directory (examples are in the "examples" directory):
- cell.in - the atomic configuration and cell
- pp.in - pair potential parameters
- md.in - molecular dynamics paramters
It will pipe a load of text to stdout, and additionally generate the following output files:
- stats.out - thermodynamic data, including energies, temperature, pressure
- dump.out - detailed data dump, including atomic configuration, cell parameters, stress tensor, etc for each step
- trajectory.xsf - the trajectory in .xsf format, can be visualised using VMD.
The md_analysis script will look for the above outputs, and will generate:
- stats.pdf - a plot of the thermodynamic data
- stress.pdf - plot of the stress tensor elements and pressure
- vacf.pdf - velocity autocorrelation functions
- vdistr.pdf - velocity distribution
- msd.pdf - mean squared displacement
A VMD script (view.vmd) is included with the examples; trajectory.xsf can be visualised by typing,
vmd -e view.vmd
Assuming the vmd executable is in your $PATH.