This answer to Basics of numerical energy minimization techniques used in molecular dynamics? mentions
conjugate gradients, BFGS for energy minimization
and
Metropolis Monte Carlo (and the) the FIRE algorithm
for dynamical simulations.
While the metropolis method has the potential to discover many adjacent minima depending on how high of a temperature it starts with and how rapidly it cools (annealing schedule) the others will tend to find minima near where they are initialized and not necessarily find the global minimum.
Question: What are the basics of configuration initialization strategies used in molecular dynamics simulations? Is this an art based on intuition and a "feel" for the problem? Does one first start with a project budget (e.g. "I've got three months to get results and \$10,000 to spend on supercomputer time") and sprinkle it randomly over initial configuration space?
Of course different types of problems may require very different strategies and all answers are welcome. But for what I'm doing the questions below describes my plan to make a basic molecular dynamics calculation using a Python script rather than a canned, self-contained program.
- How amenable is this 2D Frenkel–Kontorova-like energy minimization problem in Python to the use of a modest PC + GPU? (Heavy reliance on indexing) (SciComp SE)
- Going to try to move some of my scipy/numpy calculation to a new GPU, how to avoid disappointing results? (SciComp SE)
- DIY molecular dynamics for Xenes on crystal surfaces; where can I get applicable open-source force field parameters that I can use in my scripts?