Как смоделировать фазовый переход в молекулярной динамике?

Я пытаюсь смоделировать фазовый переход для золота и кремния отдельно, используя LAMMPS. Я правильно определил температуру плавления золота, используя приведенный ниже код.

units   metal
atom_style      atomic
boundary        p p p
variable        a equal 4.0782

lattice fcc 4.0782
region  box block 0 10 0 10 0 10
create_box      1 box
create_atoms    1 box
mass    1 196.97

pair_style      eam
pair_coeff      * * Au_u3.eam

minimize        1.0e-8 1.0e-8 1000 100000
min_style       cg

timestep 0.001
velocity all create 300.0 454883 mom yes rot yes dist gaussian

thermo  50000
thermo_style    custom step pe ke etotal temp vol press density atoms

fix 1 all press/berendsen iso 0.0 0.0 100.0
fix 2 all nvt temp 300.00 2400.00 1.0


run     10000000

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

отредактировано: результат показан ниже как для золота, так и для кремния.

золото: температура против энергии

кремний: температура vd энергия

Пробовали разные граничные условия?
Покажите нам, что вы получаете с золотом и что вы получаете с кремнием. Дайте нам более подробную информацию о том, почему вы думаете, что ваша симуляция не удалась.
(В сторону: ваша постоянная времени nvt составляет около 10 × слишком большой)
@ valerio92 вывод показан выше, где показано, что в золоте фазовый переход происходит при температуре около 1300 К, что правильно, и я рассчитал скрытую теплоту, и это тоже было правильно. однако для кремния температура плавления была неверной, когда она составляла около 2000 К, а правильное значение составляло около 1600 К.

Ответы (1)

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

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

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

Если, однако, ваша цель состоит в том, чтобы смоделировать событие зародышеобразования, то это очень сложная проблема и очень активная область исследований. Вы можете просто перейти к более высокой температуре или исправить размер ячейки (удалить исправление прессы/берендсена) - это вызовет фазовый переход, но это не обязательно будет реалистичный переход. Существуют гораздо более сложные процедуры, использующие для этого методы выборки редких событий, такие как метадинамика [ 1 ] или методы заполнения [ 2 ].

Я пытаюсь измерить температуру плавления. поэтому я думаю, что мне следует создать две фазы, но не могли бы вы подробнее рассказать о том, как это сделать?
@maryam Это должно быть периодически с расплавлением половины кристалла; ансамбль НПТ; запустить моделирование при нескольких температурах (например, 1000 K, 1100 K, ...). Для каждого из них запишите, рос ли кристалл или росла аморфная фаза. Вы найдете пороговую температуру, которая разделяет эти два класса — это точка плавления. Если вам нужно точное измерение температуры плавления, вы можете использовать параметр порядка (либо потенциальную энергию, либо геометрический, такой как параметр центросимметрии) для измерения роста каждой фазы. ... Если вы зададите конкретный вопрос, я могу дать конкретный ответ.
Спасибо! Я сделал то, что вы сказали, и получил следующие результаты: повышение температуры при каждом запуске не влияет на систему. Аморфная фаза не увеличивается, хотя я пытался запустить ее при 2500 К, поэтому я думаю, что с моим скриптом что-то не так. Я был бы очень признателен, если бы я мог поделиться с вами сценарием и помочь мне понять, где я ошибся.