Comments for experts:

  1. ``boundary conditions'' - periodic, antiperiodic, frozen or free or some combination.

  2. ``given potential'' - these can be as simple as a Lennard Jones, or as complex as the Car-Parinello scheme where one solves Schroedinger's equation at each timestep. We usually use something in between - either tightbinding or good classical potentials like the Brenner version of the Tersoff potential. See potential expressions.

  3. ``heat/cool/stretch/shake/strike'' - different thermodynamic ensembles need to be used and their implementation is sometimes awkward.

  4. The first and third points mainly affect the startup time, the second and third points point greatly affect the size of the code and the time and memory demands.

  5. My main personal interest is in geometrical structures, disordered systems and their visualization. The best sources of interesting problems are laboratory experiments.