This page hosts the latest version of the '40 ways to simulate liquid argon' presentation that was developed as a case study for the "School on High-Performance and Grid Computing" at the ICTP in Trieste in December 2009. To explain: this presentation is not meant to show the best way of how to program a code to do classical MD simulations (use a package program like LAMMPS, NAMD, or Gromacs for that), but rather use the rather trivial single atom type LJ-MD example to show the most common issues with self-written codes by computational scientists having little or no experience in high-performance computing. It wants to demonstrate how significant speedups can be achieved with comparatively little effort, and showcase how much more can be achieved by re-thinking some parts of the problem instead of implementing the straightforward solution right away.This is a work in progress and if you have any questions, suggestions, or notice any bugs, don't hesitate to drop me a line.
Additional versions of the code:
The archive ljmd_matlab.tar.gz contains a version of the code rewritten in MATLAB by Christopher MacDermaid. This variant is particularly easy to read and easy to modify, e.g. for experimenting with different interaction potentials or different integration algorithms. However, due to the way how MATLAB works being an interpreted script language, it is significantly slower than the compiled variants. A variant of the script that is compatible with GNU Octave is also included. See comments in the header of the scripts for instructions on how to use them.
The archive ljmd-tg11.tar.gz contains a version of the sources with "fill in here" comments from the TeraGrid '11 tutorial in Salt Lake City.