В молекулярной динамике наиболее часто используемым алгоритмом интегрирования по времени является, вероятно, так называемый алгоритм Верле [5]. Основная идея состоит в том, чтобы записать разложение Тейлора до третьего порядка вперед и назад по времени. Пусть
| (4) |
Складывая эти 2 выражения получаем
| (5) |
Это основная формула алгоритма Верле. Так как мы интегрируем уравнения Ньютона, то
| (6) |
Видно, что ошибка обрывания алгоритма, когда система эволюционирует в течении времени
Проблема с этой версией алгоритма Верле состоит в том, что скорости явно не вычисляются. Хотя они не нужны для временной эволюции, но их знание иногда необходимо. Кроме того, они нужны для вычисления кинетической энергии
| (7) |
Однако, ошибки, которые дает это выражение, порядка
Чтобы преодолеть эту трудность, были развиты варианты алгоритма Верле. Они дают точно ту же траекторию и отличаются переменными, которые хранятся в памяти. Leap-frog алгоритм есть один из таких вариантов.
Лучший реализацией того же основного алгоритма есть так называемый алгоритм Верле со скоростью, когда положение скорости и ускорения в момент времени
| (8) |
Заметим, что необходимо 9N ячеек памяти, чтобы сохранить 3N положений, скоростей и ускорений, но нам не нужно одновременно хранить значения любой из этих величин для двух различных времен.
Чтобы моделировать деформацию при нулевой температуре используется процедура минимизации, которая позволяет поддерживать систему вблизи локального минимума энергии все время. Деформация и минимизация выполняются одновременно. Алгоритм минимизации представляет собой модифицированный алгоритм МД. После каждого шага по времени МД для каждого атома вычисляется скалярное произведение между импульсом и силой. Для атомов, скалярное произведение для которых отрицательно, импульс зануляется, так как эти атомы движутся в направлении, в котором потенциальная энергия возрастает. Таким образом, кинетическая энергия атомов удаляется, тогда как потенциальная энергия приближается к локальному минимуму энергии вдоль направления движения атома. Такая процедура минимизации быстро сдвигает систему в окрестность локального минимума энергии, но полной сходимости не получается, так как полная сходимость требует числа шагов по времени порядка числа степеней свободы системы. Однако, обычно увеличении числа шагов процедуры минимизации приводит лишь к малым изменениям в эволюции системы.
Наибольших вычислительных усилий требует вычисление сил, действующих между атомами. Поэтому оптимизации алгоритма вычисления сил необходимо уделить особое внимание. Один из шагов в этом направлении состоит в замене сложных для вычисления выражений для сил (например, содержащих экспоненту) на легко вычисляемые выражения (например, сплайны третьего порядка). Второй шаг состоит в использовании потенциалов с ограниченным радиусом действия, или, как указывалось выше, в обрезании несущественной области потенциала, если радиус действия потенциала бесконечен. При этом необходимо вычислить только силы, действующие со стороны ближайших атомов, т.е. находящихся внутри сферы (окружности в двумерном случае) с радиусом равным радиусу обрезания
Третий шаг состоит в оптимизации алгоритма поиска атомов, ближайших к данному атому. Дело в том, что прямолинейный перебор всех атомов, вычисление расстояний до них и отбрасывание тех атомов, расстояние до которых превышает радиус обрезания
Удобно разбить ячейку моделирования на субячейки – параллелепипеды (прямоугольники в двумерном случае). Вследствие сильного отталкивания на малых расстояниях, атомы не могут подходить близко друг к другу. Поэтому можно выбрать такие размеры субячеек, что в каждой из них будет находится не более одного атома.
Таким образом, алгоритм поиска атомов, удаленных от данного атома на расстояние не больше радиуса обрезания