Как определить равновесие в моделировании Монте-Карло NVTNVTNVT?

Я запускаю NVT (постоянное количество частиц, объем и температура) моделирование Монте-Карло (алгоритм Метрополиса) частиц в двух измерениях, взаимодействующих через потенциал Леннарда-Джонса.

U "=" 4 ( 1 р 12 1 р 6 ) ,
(в сокращенных единицах). Граничные условия являются периодическими.

Из этой симуляции я рассчитываю мгновенное давление и потенциальную энергию. На первых шагах система не находится в равновесии, поэтому мне нужно начать усреднение после того, как система придет в равновесие.

Я начинаю моделирование со случайной конфигурации.

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

Вот несколько примеров кривой:Энергия Против.  шаг моделирования для высокой температуры (чем теплее цвет, тем выше плотность)

Энергия Против. шаг моделирования для высокой температуры (чем теплее цвет, тем выше плотность)
Энергия Против.  шаг моделирования для низкой температуры (чем теплее цвет, тем выше плотность)

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

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

Это хороший вопрос, но в научной литературе ответ на вопрос, когда система пришла в равновесие, звучит так: «когда вам этого захочется». Действительно, вы можете легко найти людей, публикующих результаты новых явлений, когда на самом деле они являются просто артефактами неравновесия. Даже когда вы достигли «устойчивого состояния», вам не гарантируется, что вы нашли репрезентативное состояние минимума свободной энергии. Примером служит случайно переохлажденная жидкость (например, из-за эффектов конечного размера).
интересный другой пост с тем же вопросом, но в теоретическом контексте Функции и шкалы длины
Этот вопрос отличается от моего, потому что мое равновесие колеблется...
Это все в моем вопросе ... «Я запускаю NVT (постоянное количество частиц, объем и температура) моделирование Монте-Карло (алгоритм Метрополиса) частиц в двух измерениях, взаимодействующих через потенциал Леннарда-Джонса (U = 4 (1r12- 1r6)U=4(1r12−1r6), в приведенных единицах), граничные условия периодические. Я не понимаю, что такое параметры насыщения. графики показывают 500000 пробегов
Насыщение @igael - это когда достигается тепловое равновесие. В моделировании Монте-Карло мы пытаемся оценить интеграл: е ты к Т ты г ты где интеграл по всем возможным состояниям. поэтому мы создаем набор систем, представляющих наиболее вероятные конфигурации (конфигурации теплового равновесия). мы даем каждой конфигурации вероятность е ты к Т чтобы отразить экспоненциальный член. поэтому «насыщение» достигается, когда мы смоделировали достаточное количество конфигураций системы, так что мы можем сказать, что наша конечная сумма отражает бесконечный интеграл. Я спрашиваю, когда это достигнуто

Ответы (5)

Я вижу, что этот вопрос снова был поднят на главную страницу. Недавно я ответил на аналогичный вопрос на https://math.stackexchange.com/a/2920136/575517 , поэтому я изложу его суть здесь, если кто-то сочтет это полезным.

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

Проблема здесь в том, что нужна оценка т А заранее, а также что этот аргумент в общих чертах основан на теории линейного отклика : а именно, что релаксация слегка возмущенного состояния к равновесию происходит в масштабе времени, определяемом формулой т А , которое является свойством корреляционной функции равновесного времени. Нет никакой гарантии, что релаксация из произвольно подготовленной начальной конфигурации будет следовать этому закону, даже если т А может дать разумное руководство.

Однако мне известно по крайней мере об одной статье, в которой была предпринята попытка Джона Чодеры объективно подойти к этому вопросу: https://doi.org/10.1101/021659 , которая также была опубликована в J Chem Theo Comp, 12, 1799 . (2016) .

Я не буду пытаться воспроизвести здесь математику, но основная идея состоит в том, чтобы использовать процедуру оценки статистических ошибок в коррелированных последовательностях данных, которая включает оценку времени корреляции (или статистической неэффективности, которая представляет собой интервал между эффективно независимыми выборками). ) - и применяя его к интервалу ( т 0 , т Макс ) который охватывает период между (предлагаемым) окончанием периода уравновешивания, т 0 , и конец всего набора данных, т Макс . Этот расчет ведет себя предсказуемым образом, если набор данных находится в равновесии: колебания дельта А Δ т 2 конечного среднего

дельта А Δ т "=" А Δ т А , А Δ т "=" 1 Δ т т т + Δ т г т А ( т )
известным образом зависят от интервала усреднения Δ т . Истоки времени т выбираются в пределах интересующего интервала, ( т 0 , т Макс Δ т ) ; колебания рассчитываются по всем периодам Δ т лежащие в этом промежутке. Метод систематически выполняет этот расчет в зависимости от т 0 , уменьшая его от начального высокого значения к началу прогона. В какой-то момент ожидается, что будут замечены отклонения от ожидаемого поведения. Этот момент считается концом периода равновесия.

В любом случае, чтение этого документа должно помочь в прояснении этого вопроса. Автор также предоставляет часть программного обеспечения Python для автоматического выполнения вычислений, поэтому оно также может быть полезным на практике.

Как говорится во многих комментариях, единого и лучшего ответа не существует, каждый использует свой метод. Решение, которое вы нашли, хорошее, но как определить, что равновесие достигнуто?

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

Н "=" 10

И с параметрами, которые определяют ваше равновесие, вы вычисляете среднее значение и стандартное отклонение:

п , Δ п 2

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

В а р ( п я , п я 1 , . . . , п я н ) 0

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

П.Д.: Флуктуации после того, как система достигла равновесия, нормальны, а также эти флуктуации увеличиваются с повышением температуры.

Я не уверен, что правильно тебя понял. когда вы говорите "среднее значение" ( < п > ) вы имеете в виду среднее значение за N шагов моделирования? что вы имеете в виду, когда говорите "временной"? тут нет времени...
Я имею в виду, что вы делаете среднее значение для некоторых значений <P> в течение последних N шагов (это N зависит от вас, последние 10 шагов или 20), и это среднее значение должно сойтись. Таким образом, вы сохраняете некоторые средние значения, чтобы снова проверить дисперсию, которая должна быть небольшим числом (опять еще одно решение, которое вы должны принять, 1e-3? 1e-2? 1e-5?). Я знаю, это хаотично, что вы делаете больше статистики с некоторыми статистическими данными...
И я извиняюсь, потому что я написал среднее значение, когда имел в виду среднее значение, и спасибо за издание.
Хорошо, теперь я понимаю тебя. Кажется логичным, что дисперсия должна стремиться к нулю, но что, если это не обязательно? Поскольку у нас есть температура, может быть, в равновесии система колеблется с постоянной, большей, чем нулевая дисперсия? Я даже не логично думать, что дисперсия непостоянна! В конце концов, это тепловые флуктуации.

Вы не можете знать наверняка.

При моделировании система постоянно хаотично изменяется, и в целом возможно, что после некоторого периода относительного постоянства макроскопических переменных произойдет какое-то радикальное изменение, такое как фазовый переход.

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

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

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

Я считаю совершенно нормальным иметь большие колебания термодинамических функций при повышении температуры. В чем я не уверен, так это в том, относится ли это к реальной ситуации или нет...

Если вы знаете форму результирующей функции распределения частиц, вы можете догадаться, достигла ли ваша система равновесия путем вычисления ее среднего значения, производя расчет функции распределения через каждые n временных шагов (300 временных шагов было хорошо в моих симуляциях Монте-Карло).

Вы должны принять во внимание, что моделирование методом Монте-Карло уже предполагает моделирование равновесной системы, поэтому при его использовании не следует ожидать наблюдения каких-либо динамических явлений (вы не можете наблюдать появление пузырьков в объеме смеси, т.к. пример).

Если вы настраиваете систему для большого диапазона температур, изменение параметра смещения может быть хорошей идеей, поскольку скорость принятия зависит от отношения (новая энергия к старой энергии)/T.

Я нашел ответ в книге Моделирование методом Монте-Карло в статистической физике - введение (К.Биндер, Д.В.Херманн), стр. 35.

Чтобы определить равновесие, нам нужно запустить симуляцию несколько раз, скажем, н р ты н раз. мы определяем среднее < > Т в среднем после т этапы моделирования:

А ( т ) Т "=" 1 н р ты н л "=" 1 н р ты н А ( т , л )
Где А — какое-то физическое свойство, например энергия или давление. А ( т , н ) - значение этого свойства во времени (шаге моделирования) t n-го моделирования. Теперь определим «нелинейную функцию релаксации»:
ф А ( к ) "=" А ( к ) Т А ( ) Т А ( 0 ) Т А ( ) Т
Где А ( ) Т является средним значением A на последнем шаге моделирования, для н р ты н симуляции. Эта функция релаксации обращается в нуль после некоторого шага t. время релаксации этой функции равно:
т А "=" 0 ф ( т ) г т
до сих пор не уверен, почему это время релаксации, я был бы рад, если бы кто-нибудь мог мне это объяснить. Итак, если это время релаксации, то время, за которое система достигает равновесия, должно быть намного больше, чем это время:
т с я м ты л а т я о н т А
поскольку разные свойства могут иметь разное время релаксации, мы должны учитывать самое медленное время релаксации, чтобы привести систему в равновесие.

Что касается вашего вопроса: типичное поведение релаксации - это что-то экспоненциальное, например ф "=" опыт т / т . Вы видите, что можете сделать вывод т по интеграции. Проблема (и я уверен, что г-н Биндер указывает на это): как выбрать А ? Вы можете просто искать наибольшие времена релаксации, но это окажется непрактичным. Таким образом, вам придется найти временную шкалу, на которой процессы, имеющие отношение к вашей проблеме , ослабли.