Несмотря на широкую популярность молекулярной динамики (МД), одним из ее традиционных ограничений является то, что она масштабируется как задача n².

Чтобы осветить проблемы, рассмотрим систему со 100 молекулами — малая по сравнению с МД-моделированием. Если парная сила, действующая на каждый атом, рассчитывается методом грубой силы, нам нужно посетить 99 атомов для каждого расчета силы.

(100 атомов) x (99 вычислений силы/атом) ~10⁴ попарных вычислений силы

Теперь рассмотрим немного большую систему… 1000 атомов.

(1000 атомов)*(999 расчетов силы/атом) ~10⁶ попарных расчетов силы

Это экспоненциальное увеличение числа попарных вычислений является ожидаемым поведением системы n². Работа с системой n² может привести к огромным компромиссам во времени вычислений при масштабировании. Никто не хочет тратить недели вычислительного времени, чтобы получить точные результаты. Но, с другой стороны, нам нужно моделировать более крупные системы, чтобы увеличить отношение сигнал/шум свойств извлеченного материала.

Для ускорения этих вычислений было разработано много методов, и я собираюсь обсудить и продемонстрировать один из них: списки соседей.

Списки соседей

Один из способов справиться с экспоненциальным увеличением парных расчетов сил — установить радиус отсечки и ввести в действие список соседей. Любая частица, которая находится за пределами радиуса отсечки, игнорируется при расчете полной силы частицы.

Выбор радиуса отсечки – нетривиальная задача. Во-первых, радиус отсечки следует выбирать таким, чтобы частицы не взаимодействовали со своими периодическими граничными изображениями. Однако радиус не должен быть настолько большим, чтобы время вычислений увеличивалось из-за табулирования незначительных дальних взаимодействий.

Кроме того, введение радиуса отсечки влияет на расчет межатомной силы, поскольку градиент функции потенциальной энергии (то есть силы) не может быть бесконечным или неопределенным в любой точке. Если функция потенциальной энергии просто «обрезается» в определенной точке, разрыв может привести к нежелательному поведению вблизи отсечки. По этой причине были разработаны потенциалы, которые имеют параметр радиуса отсечки и являются гладкими по всем значениям, чтобы избежать разрывов, возникающих в точке отсечки. Например, для потенциала Леннарда-Джонса Стоддард и Форд разработали версию, удобную для радиуса отсечки, которая постепенно стремится к нулю на расстоянии отсечки и, следовательно, позволяет избежать проблем с неопределенным или бесконечным градиентом.

Более глубокое понимание потенциалов и их различных форм/приложений жизненно важно для точной МД, но выходит за рамки этой краткой статьи.

После выбора радиуса отсечки необходимо заполнить список соседей путем перебора всех местоположений частиц и поиска подходящих соседей.

Таким образом, создание/обновление списка соседей само по себе является проблемой n², но список не нужно обновлять каждую итерацию. Существует несколько разных подходов к решению, когда обновлять списки соседей. Можно использовать либо расстояние, либо время. Одним из методов является установка «глубины кожи», которая представляет собой расстояние за пределами радиуса отсечки. Как только частица покидает пределы радиуса и глубины скин-слоя, запускается обновление списка соседей. В качестве альтернативы, если известна средняя или максимальная скорость частицы, можно рассчитать необходимое количество временных шагов для того, чтобы частица покинула глубину скин-слоя, и списки соседей могут быть повторно заполнены всякий раз, когда прошедшее время превышает ожидаемый отрезок времени для частица, чтобы покинуть глубину кожи.

Преимущество списков соседей можно продемонстрировать на простом одномерном примере со 100 частицами. Мы можем смоделировать небольшую симуляцию 10 000 временных шагов, вычислив парную силу 10 000 раз. Противопоставляются два отдельных подхода:

Подход 1. Вычислите общую силу, действующую на все частицы, 10 000 раз путем грубого перебора всех позиций частиц, чтобы попарно вычислить силу без списка соседей.

Подход 2: вычислить общую силу, действующую на все частицы, 10 000 раз, используя список соседей. Обновление списка соседей каждые 10 итераций для имитации необходимости поддержания точного списка соседей.

Что выведет:

No neighbor list: 27.15s 
Using a neighbor list: 7.17s 
Particle 0 neighbors: [11, 26, 27, 36, 40, 42, 45, 69, 73, 83, 87, 96] 
Particle 1 neighbors: [3, 24, 30, 36, 37, 40, 44, 45, 50, 69, 74, 78, 82, 83, 84, 88, 96]
Particle 2 neighbors: [22, 46, 47, 48, 67, 75, 93, 98] 
Particle 3 neighbors: [1, 24, 30, 36, 37, 38, 40, 44, 50, 52, 74, 78, 82, 84, 88, 96]

Таким образом, в этом случае использование списка соседей сократило время вычислений примерно на 75%!

Соображения о дальних расстояниях

Списки соседей довольно легко реализовать, и они могут значительно повысить вычислительную эффективность моделирования масштабирования. Однако очевидным недостатком применения списка соседей является то, что взаимодействия на большом расстоянии игнорируются. Если исследуемый физический механизм требует дальнодействующих вкладов, результаты МД могут быть искажены или совершенно ненадежны.

При определении радиуса отсечки необходимо тщательно продумать, чтобы не затронуть интересующие свойства. Один из общих подходов к нахождению подходящей границы отсечки заключается в постепенном уменьшении расстояния отсечки до тех пор, пока система больше не будет отражать какое-либо эталонное значение свойства (например, коэффициент диффузии, модуль упругости и т. д.) в пределах «приемлемой ошибки». Эталонное значение свойства может быть рассчитано с чрезвычайно большим (или бесконечным) радиусом отсечки, а затем радиус отсечки может систематически уменьшаться до тех пор, пока вычисленное значение свойства не выйдет за пределы допустимой погрешности.

Спасибо за чтение — любые предложения или исправления приветствуются! Пожалуйста, свяжитесь со мной по адресу [email protected]

использованная литература

  1. Френкель, Даан и Беренд Смит. Понимание молекулярного моделирования от алгоритмов до приложений. Академическая пресса, 2002.
  2. Браун, Ефрем и др. «Передовые практики для основ молекулярного моделирования [статья v1.0]». Живой журнал вычислительной молекулярной науки, vol. 1, нет. 1, 2019 г., doi: 10.33011/livecoms.1.1.5957.