I'm looking for a piece of software for performing molecular dynamics simulations with the following specifications:

  • required: well published (as in there are papers citing it in one or more reasonably respectable journals)
  • required: incorporates some degree of non-determinism in how it runs (ex. each run from the same initial state may result in a slightly different end state for the system)
  • required: should be able to generate initial states from a distribution (specifically the Maxwell-Boltzmann distribution)
  • required: at the end of any particular trial run, it should be possible to get either a local temperature in a region I define, or the locations and velocities of all particles in the system
  • optional: ideally we would be simulating gas particles as hard spheres with elastic collisions
  • optional: it would be an added bonus if it's written in something similar to either Java or Python as I'm quite familiar with those languages
  • note: two or three dimensions are both fine for the purposes of my simulations

I am already aware of a number of pieces of deterministic MD software (ex. LAMMPS, NAMb, VMD, etc) but as far as I can tell, none of these incorporate the second point I want addressed and I'm loath to make any serious modifications to someone else's code as I want to get onto running simulations.

Thanks for your time.

  • $\begingroup$ If you want to model particles as hard spheres with elastic collisions, this seems pretty much incompatible with your second goal. Where would the non-determinism come from in this situation? $\endgroup$
    – N. Virgo
    Oct 2, 2013 at 2:41
  • 2
    $\begingroup$ By the way this is likely to get closed, since this community decided against accepting software questions a long time ago. You might have better luck on Computational Science, although it's probably a good idea to read their FAQ first to check this would be on topic. $\endgroup$
    – N. Virgo
    Oct 2, 2013 at 2:42
  • 2
    $\begingroup$ This will depend what exactly your model is, i.e. what you mean by non-determinism. LAMMPS, for instance, can simulate Langevin dynamics, where each particle has both an effective drag force on it and a fluctuating force. LAMMPS also supports "dissipative particle dynamics," another stochastic simulation scheme. However, DPD typically uses soft-core potentials. Look for "fix langevin" and "pair_style dpd" in the LAMMPS documentation. The real answer will depend highly on what your underlying model is. Langevin and DPD are typical schemes for coarse-grained simulations of soft matter. $\endgroup$
    – AJK
    Oct 2, 2013 at 3:16
  • $\begingroup$ @Nathaniel: modelling as hard spheres and elastic collisions is less important than non-determinism, perhaps I will get rid of that point. I will take your advice on posting into the scicomp stack exchange as well. $\endgroup$
    – WizzPhiz
    Oct 3, 2013 at 3:44

1 Answer 1


I would suggest any of the biomolecular MD packages as potentially suitable (GROMACS, NAMD, DESMOND, AMBER, CHARMM, GROMOS, ACEMD, TINKER, Espresso,... and doubtless another dozen). Those are all

  • well published,
  • likely can all generate a Maxwell-Boltzmann velocity distribution (which you could do yourself so long as they'll use your velocities),
  • will write positions and velocities to taste,
  • incorporate non-determinism by design through their use of floating-point computation (as well as any stochastic integration schemes, as AJK points out),
  • work in three dimensions.

Non-determinism is easy to generate - just shuffle the order of the particles in your input. This will change the order of the accumulation of the force and energy calculations, which will typically cause enough numerical difference for divergence of the trajectory.

Each code will have ways its implementation leads to non-determinism. For example, running GROMACS in parallel with domain decomposition and dynamic load balancing is non-deterministic because it depends on timing measurements that are not reproducible on a real-world computer. You can suppress that with its reproducible mode, but even that will not be reproducible with respect to the input particle order.

I don't know that any of the above do hard spheres with elastic collisions.

Well-cited pretty much means written in a serious HPC programming language (C, C++, Fortran), because people use and cite the codes that run fast. So you can't have recently developed programming languages and good publication history.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.