I want to study the crystallographic phase transitions of crystals with increasing temperature. Which freely available MD package should I choose, which has easily available tutorials/example-input-files for this kind of work?
Any popular MD software is likely to allow you to study phase transitions with increasing temperature. LAMMPS slightly beats GROMACS in terms of activity here on MMSE, since the lammps tag has 82 questions in total and 38 asked this year, whereas the gromacs tag comes in a close second with 69 questions in total and 36 asked this year. Our LAMMPS chat room is also a bit older than our Gromacs chat room and the LAMMPS one has more active users and more messages from users in it.
Here's some information about LAMMPS:
- Free, and open-source (GNU GPL license).
- Long history: First released in 1995 (4 years after Gromacs in 1991, although Gromacs was based on an earlier program called GROMOS from 1978).
- Under very active development: For many codes, the majority of the development was done years or decades ago, but the development of LAMMPS seems only to have grown, not waned. This is also true for Gromacs, but LAMMPS has 220 contributors on GitHub whereas Gromacs only has 81. I've even seen a LAMMPS simulation being done on a smartphone back in 2018, and I could see a plot that was changing in real-time as the calculation was being done!
- Since the very beginning (decades ago), it was designed to run in parallel (i.e. fast). In fact the "MP" in LAMMPS" stands for "massively parallel"! There's also support for GPUs.
- Basically all of the advantages listed above are also true of Gromacs (and Gromacs has been developed for longer, but LAMMPS has more developers currently, which is probably more important in the long-run).
- According to Steve Plimpton, a fator of 2x speed-up in GROMACS compared to LAMMPS is "not surprising" because GROMACS has pairwise interactions implemented in assembly code.
- It is primarily a classical MD code, so quantum effects are not the focus. QM/MM is possible, but would require using one of the interfaces.