Я запускаю NVT (постоянное количество частиц, объем и температура) моделирование Монте-Карло (алгоритм Метрополиса) частиц в двух измерениях, взаимодействующих через потенциал Леннарда-Джонса.
Из этой симуляции я рассчитываю мгновенное давление и потенциальную энергию. На первых шагах система не находится в равновесии, поэтому мне нужно начать усреднение после того, как система придет в равновесие.
Я начинаю моделирование со случайной конфигурации.
Мой вопрос : даже после того, как система достигла равновесия, она колеблется вокруг этого равновесия. Эти колебания могут быть большими при больших температурах. Итак, как я узнаю, что достиг равновесия?
Вот несколько примеров кривой:
Я вижу, что этот вопрос снова был поднят на главную страницу. Недавно я ответил на аналогичный вопрос на https://math.stackexchange.com/a/2920136/575517 , поэтому я изложу его суть здесь, если кто-то сочтет это полезным.
Этот вопрос «Как я узнаю, что прогон симуляции достиг равновесия?» часто приукрашивают и оставляют как «эмпирическое правило». Как обсуждалось в других ответах, обычно требуется, чтобы время «уравновешивания» или «прижигания» было не менее продолжительным, чем время корреляции. переменной представляющие интерес или, что еще лучше, все интересующие переменные (занимающие самые длинные ). Эту часть траектории отбрасывают и после этого начинают накапливать средние значения.
Проблема здесь в том, что нужна оценка заранее, а также что этот аргумент в общих чертах основан на теории линейного отклика : а именно, что релаксация слегка возмущенного состояния к равновесию происходит в масштабе времени, определяемом формулой , которое является свойством корреляционной функции равновесного времени. Нет никакой гарантии, что релаксация из произвольно подготовленной начальной конфигурации будет следовать этому закону, даже если может дать разумное руководство.
Однако мне известно по крайней мере об одной статье, в которой была предпринята попытка Джона Чодеры объективно подойти к этому вопросу: https://doi.org/10.1101/021659 , которая также была опубликована в J Chem Theo Comp, 12, 1799 . (2016) .
Я не буду пытаться воспроизвести здесь математику, но основная идея состоит в том, чтобы использовать процедуру оценки статистических ошибок в коррелированных последовательностях данных, которая включает оценку времени корреляции (или статистической неэффективности, которая представляет собой интервал между эффективно независимыми выборками). ) - и применяя его к интервалу который охватывает период между (предлагаемым) окончанием периода уравновешивания, , и конец всего набора данных, . Этот расчет ведет себя предсказуемым образом, если набор данных находится в равновесии: колебания конечного среднего
В любом случае, чтение этого документа должно помочь в прояснении этого вопроса. Автор также предоставляет часть программного обеспечения Python для автоматического выполнения вычислений, поэтому оно также может быть полезным на практике.
Как говорится во многих комментариях, единого и лучшего ответа не существует, каждый использует свой метод. Решение, которое вы нашли, хорошее, но как определить, что равновесие достигнуто?
Для этого вам нужно проверить последние значения моделирования (энергия, давление и т. д.), поэтому вы выбираете набор предыдущих конфигураций, которые вы будете проверять:
И с параметрами, которые определяют ваше равновесие, вы вычисляете среднее значение и стандартное отклонение:
Эти значения не должны сильно измениться после нескольких шагов. если вы сохраните некоторые средние значения и их дисперсию, вы увидите, что среднее значение сходится к значению системы, а дисперсия временных средних значений на каждом шаге будет стремиться к нулю.
Таким образом, вам нужно выбрать в качестве параметра равновесия количество шагов, которые вы учитываете для получения среднего значения, и количество средних значений, которые вы используете для вычисления дисперсии.
П.Д.: Флуктуации после того, как система достигла равновесия, нормальны, а также эти флуктуации увеличиваются с повышением температуры.
Вы не можете знать наверняка.
При моделировании система постоянно хаотично изменяется, и в целом возможно, что после некоторого периода относительного постоянства макроскопических переменных произойдет какое-то радикальное изменение, такое как фазовый переход.
Однако, если система очень проста, например газ твердых сфер, можно теоретически рассчитать, как должно выглядеть состояние равновесия при заданных ограничениях, таких как объем и температура. Тогда, если значения, полученные в результате моделирования, приближаются к этим теоретическим значениям, мы можем сказать, что, скорее всего, мы наблюдаем переход к равновесию, и ничего удивительного не произойдет.
Если мы не знаем значений переменных в термодинамическом равновесии, мы не можем сказать, что система приближается к нему.
Однако существует также идея ограниченного термодинамического равновесия, определенного только для некоторого ограниченного периода времени, который нас интересует. Тогда система находится в равновесии, если оценка средней кинетической энергии однородна во всей области пространства системы и если ее наблюдается флуктуации во времени и пространстве согласуются с распределением Больцмана, и если то же самое верно для других представляющих интерес физических величин (среднее давление, результирующая потенциальная энергия).
Я считаю совершенно нормальным иметь большие колебания термодинамических функций при повышении температуры. В чем я не уверен, так это в том, относится ли это к реальной ситуации или нет...
Если вы знаете форму результирующей функции распределения частиц, вы можете догадаться, достигла ли ваша система равновесия путем вычисления ее среднего значения, производя расчет функции распределения через каждые n временных шагов (300 временных шагов было хорошо в моих симуляциях Монте-Карло).
Вы должны принять во внимание, что моделирование методом Монте-Карло уже предполагает моделирование равновесной системы, поэтому при его использовании не следует ожидать наблюдения каких-либо динамических явлений (вы не можете наблюдать появление пузырьков в объеме смеси, т.к. пример).
Если вы настраиваете систему для большого диапазона температур, изменение параметра смещения может быть хорошей идеей, поскольку скорость принятия зависит от отношения (новая энергия к старой энергии)/T.
Я нашел ответ в книге Моделирование методом Монте-Карло в статистической физике - введение (К.Биндер, Д.В.Херманн), стр. 35.
Чтобы определить равновесие, нам нужно запустить симуляцию несколько раз, скажем, раз. мы определяем среднее в среднем после этапы моделирования:
большой
пользователь46925
Ади Ро
Ади Ро
Ади Ро