Моделирование физических процессов методом молекулярной динамики. Учебное пособие
.pdf
5.2. Исследование материалов на основе больших данных
дящего алгоритма машинного обучения имеет решающее значение для его успешной реализации. Несколько алгоритмов, таких как регрессия наименьших квадратов, нейронные сети и деревья решений, могут создавать модели прогнозирования свойств. Однако, в то время как некоторые алгоритмы (в основном основанные на регрессии) предоставляют фактические функции прогнозирования, другие (например, деревья решений) – нет. Более того, количество доступных данных также может диктовать выбор алгоритмов обучения.
В последние годы было разработано множество программ или инструментов с открытым исходным кодом, таких как scikit-learn, TensorFlow и Chainer, что позволяет неспециалистам применять методы машинного обучения в рамках своих собственных исследований. Scikitlearn – это пакет Python, который объединяет широкий спектр современных алгоритмов машинного обучения как контролируемых, так и неконтролируемых. TensorFlow – это программная библиотека для высокопроизводительных численных вычислений. Первоначально разработанный исследователями и инженерами из отдела искусственного интеллекта Google, TensorFlow теперь обеспечивает надежную поддержку машинного обучения и глубокого обучения. Chainer – это мощный инструмент для построения нейронных сетей, цель которого – преодолеть разрыв между алгоритмами и реализациями. Коммерческое программное обеспечение MATLAB также включает в себя множество алгоритмов машинного обучения в наборах инструментов, таких как Statistics.
После того, как модель машинного обучения определена, можно выполнить обратное проектирование, чтобы найти материалы с желаемыми свойствами на основе модели. Это можно сделать с помощью крупномасштабного скрининга или математической оптимизации. Основная идея метода крупномасштабного отбора состоит в том, чтобы сначала сгенерировать все возможные кандидаты материалов в пространстве дизайна, а затем протестировать их один за другим, используя изученную модель.
После того, как лучшие материалы определены, их можно синтезировать, а их фактические свойства можно проверить экспериментально. Если экспериментальные результаты хорошо согласуются с предсказанными, подтверждается, что материалы имеют самые высокие характеристики. В противном случае разработанные материалы и соответствующие
51
5. Компьютерное моделирование физических процессов методом…
экспериментальные результаты добавляются в обучающую выборку, а модель машинного обучения переобучается.
Машинное обучение ускорило разработку нескольких видов материалов. Машинное обучение играет важную роль в ускорении открытия высокоэффективных энергетических материалов, включая материалы для аккумуляторов и сверхпроводников, электрокерамические и термоэлектрические материалы, а также фотоэлектрические и перовскитные материалы.
Полимерные материалы обладают многими желательными свойствами, такими как высокое отношение прочности к массе, устойчивость к коррозии, легкость формования и низкая стоимость производства. Благодаря этим преимуществам полимерные материалы находят все более широкое применение во многих областях техники, от традиционной упаковки и потребительских товаров до электрохимической и биомедицинской инженерии. Основываясь на большом количестве существующих данных о структуре и свойствах полимеров, метод машинного обучения может сыграть важную роль в открытии и разработке полимеров.
Катализаторы используются во многих промышленных процессах. Традиционно оптимальный дизайн катализаторов был эмпирическим или в основном зависел от экспериментов. Квантово-химические расчеты дают возможность для проектирования катализатора из первых принципов. Однако большие вычислительные затраты ограничивают их применение относительно простыми реакциями и небольшим количеством кандида- тов-катализаторов. В связи с быстрым увеличением количества доступных экспериментальных и расчетных данных, а также развитием информатики катализа, структура катализатора и взаимосвязи активности теперь могут быть хорошо описаны с использованием моделей машинного обучения, которые очень полезны для разработки катализаторов.
Несмотря на значительное количество успешных приложений, эта захватывающая тема все еще находится в начальной стадии, и считается, что машинное обучение будет играть все более важную роль в ускорении разработки различных видов функциональных материалов в обозримом будущем.
Что касается перспектив больших данных и машинного обучения для материаловедения в ближайшие несколько лет, очевидно, что значительных успехов можно достичь, расширив исследовательские усилия по
52
5.2. Исследование материалов на основе больших данных
прогнозированию свойств материалов, конструированию материалов на основе базы данных, идентификации подходящих соединений с генетическими алгоритмами, прогнозированию синтеза с использованием глубокого обучения, компьютерному дизайну материалов и определению функ- ционально-плотностных свойств с использованием альтернативных алгоритмов машинного обучения вместо вычислений.
53
6. Программа моделирования Lammps
6. ПРОГРАММА МОДЕЛИРОВАНИЯ LAMMPS
К наиболее популярным пакетам программного обеспечения для моделирования динамики молекул относят: AMBER, CHARMM, GROMACS, GROMOS, LAMMPS, HOONM-blue, NAMD и другие. LAMMPS (Large-scale Atomic/Molecular Massively Parallel Simulator) представляет собой свободный пакет для классической молекулярной динамики для крупных расчетов (порядка десятка миллионов атомов) для самых разнообразных моделей. Первоначально он был разработан в Sandia National Laboratories, учреждении Министерства энергетики США.
В самом общем смысле LAMMPS интегрирует уравнения движения Ньютона для набора взаимодействующих частиц. Отдельная частица может быть атомом, молекулой или электроном, крупнозернистым кластером атомов или мезоскопическим или макроскопическим участком материала.
Для работы с LAMMPS можно установить и собрать как параллельную версию (используется технология MPI [26]), так и версию для запуска в однопроцессорном режиме. Использование технологии MPI позволяет выполнять вычисления в многозадачном режиме, в котором вся задача разбивается на одновременно работающие процессы, которые относительно редко обмениваются данными друг с другом c помощью механизма передачи сообщений. Благодаря повсеместному распространению многоядерных процессоров в настоящее время, использование технологии MPI является целесообразным для выполнения вычислений не только на высокопроизводительном сервере, но и практически на любом персональном компьютере.
Полные инструкции по установке и сборке рабочей конфигурации LAMMPS в зависимости от установленной операционной системы, доступны на сайте проекта [27]. Для расчётов типовых задач в LAMMPS обычно достаточно загрузить и установить дистрибутив, подходящий для имеющейся аппаратно-программной платформы.
LAMMPS спроектирован по модульному принципу, чтобы его можно было легко модифицировать и расширять за счет новых функций. Поскольку LAMMPS имеет разветвлённую модульную структуру, и эти модули активируются только путём пересборки всего пакета, то настоятельно рекомендуется устанавливать LAMMPS путём компиляции и
54
6. Программа моделирования Lammps
сборки исходных кодов проекта, которые доступны на репозитории GitHub. Традиционно поддерживаются три варианта сочетаемости исходных модулей LAMMPS: stable (стабильный), unstable (нестабильный) и master (основной). Для начинающих пользователей рекомендуется вариант stable, так как в нём минимизирована вероятность появления ошибок разработчиков. Загрузить необходимый набор исходных файлов пакета и поддерживать его в актуальном состоянии можно с помощью свободно распространяемой кроссплатформенной утилиты git, наиболее полное руководство по которой находится в открытом доступе [28]. Для загрузки стабильной версии достаточно воспользоваться командой
git clone -b stable https://github.com/lammps/lammps.git <mylammps> ,
где <mylammps> – каталог для загрузки пакета.
Сборку набора исходных файлов можно осуществить с помощью компоновщика cmake или make. Первый является менее распространённым, чем второй, однако он позволяет произвести сборку пакета несколько проще. Преимуществом второго варианта является доступность компоновщика make практически на любом компьютере, работающем под управлением современной UNIX-подобной операционной системы, поэтому если вы не имеете возможности устанавливать дополнительное системное программное обеспечение на используемом компьютере, и если пакет cmake там не установлен, то использование make является единственно возможным.
После сборки пакета и подготовки исходного текста программы для моделирования в LAMMPS можно выполнить запуск расчёта задачи. Для запуска в однопроцессорном режиме достаточно ввести в командной строке команду:
lmp_serial -in <in.file> ,
где <in.file> – имя исходного текста с параметрами расчётов.
При использовании возможностей многопроцессорных вычислений необходимо также установить какой-либо существующий программный пакет, реализующий технологию MPI, например MPICH [31] или Open MPI [32]. Вычислительные задачи MPI, как правило, запускаются с помо-
55
6. Программа моделирования Lammps
щью команды mpirun. При использовании LAMMPS можно использовать следующий формат вызова:
mpirun -np <N> lmp_mpi -in <in.file> ,
где <N> – количество параллельно работающих процессов, которое целесообразно делать равным количеству процессорных ядер на используемом компьютере, или же, при работе на высокопроизводительном многопользовательском сервере – количеству процессорных ядер в пределах выделенной вам квоты.
ВLAMMPS осуществлена поддержка большинства двухчастичных
имногочастичных короткодействующих потенциалов (потенциалы Лен- нард-Джонса, Морзе, Юкавы, EAM, AI-REBO) [7]. Данный пакет работает только с классическими уравнениями движения Ньютона, которые численно интегрированы для дискретного числа атомов, взаимодействия которых регулируются межатомными потенциалами. LAMMPS позволяет моделировать совокупность частиц в жидком, твердом и газообразном состоянии. С помощью данного пакета можно создавать различные структуры: атомные системы, металлы, полимеры, органические молекулы и ряд других.
LAMMPS имеет встроенные термостаты и баростаты (канонический ансамбль NVT, изобарно-изотермический ансамбль NPT, микроканонический ансамбль NVE и ряд других), а также дает возможность накладывать внешние силы и устанавливать потенциальные стенки.
Пакет LAMMPS не имеет графического интерфейса пользователя, поэтому работа с ним осуществляется с применением командной строки. LAMMPS работает с текстовыми файлами (скриптами), которые создает пользователь.
Скрипт состоит из четырех частей:
−инициализация – в данной части скрипта вводится вид материала, размерность пространства, границы, вид частиц;
−определение границ ячейки моделирования – определяются размеры области моделирования, указывается тип кристаллической решетки;
−установка настроек – определяется температура, давление, силовые
поля;
56
6.Программа моделирования Lammps
−запуск расчетов – задаются параметры выходной информации, количество шагов симуляции.
Ввод исходных параметров модели выполняется через текстовый конфигурационный файл, включающий последовательный набор команд
ипараметров. Результат выводится также в текстовый файл в виде порядковых номеров, координат и других данных об атомах и молекулах. Пример текстового конфигурационного файла для моделирования прогнозирования трещин в двухмерных твердых телах [11]:
# 2d LJ crack simulation
dimension 2 boundary s s p
atom_style atomic neighbor 0.3 bin neigh_modify delay 5
# create geometry
lattice hex 0.93
region box block 0 100 0 40 -0.25 0.25 create_box 5 box
create_atoms 1 box
mass 1 1.0 mass 2 1.0 mass 3 1.0 mass 4 1.0 mass 5 1.0
# LJ potentials pair_style lj/cut 2.5 pair_coeff * * 1.0 1.0 2.5
# define groups
region 1 block INF INF INF 1.25 INF INF group lower region 1
region 2 block INF INF 38.75 INF INF INF group upper region 2
group boundary union lower upper group mobile subtract all boundary
57
6. Программа моделирования Lammps
region leftupper block INF 20 20 INF INF INF region leftlower block INF 20 INF 20 INF INF group leftupper region leftupper
group leftlower region leftlower
set group leftupper type 2 set group leftlower type 3 set group lower type 4 set group upper type 5
# initial velocities
compute new mobile temp
velocity mobile create 0.01 887723 temp new velocity upper set 0.0 0.3 0.0
velocity mobile ramp vy 0.0 0.3 y 1.25 38.75 sum yes
# fixes
fix 1 all nve
fix 2 boundary setforce NULL 0.0 0.0
# run
timestep 0.003 thermo 200
thermo_modify temp new
neigh_modify exclude type 2 3
#dump 1 all atom 500 dump.crack
#dump 2 all image 250 image.*.jpg type type &
# zoom 1.6 adiam 1.5 #dump_modify 2 pad 4
#dump 3 all movie 250 movie.mpg type type &
# zoom 1.6 adiam 1.5 #dump_modify 3 pad 4
run 5000
Команды LAMMPS удобны в применении, так как каждая программа представляет собой ключевое слово и аргументы. Например, для задания кристаллической решетки применяется команда lattice, задается
58
6. Программа моделирования Lammps
тип кристаллической решетки – fcc (face centered cubic), bcc (body centered cubic) или hcp (hexagonal close packed), а также параметр решетки (рассто-
яние между атомами). В приведенном примере команда выглядит следующим образом:
lattice fcc 3.61
LAMMPS может считывать данные о кристаллической решетке из текстового файла.
На этапе инициализации прежде всего определяются такие характеристики моделируемой области, как единицы измерения величин (масса, расстояние, время и ряд других), размерность исследуемого пространства, граничные условия и стиль моделируемых частиц.
При записи команд в файле важно соблюдать порядок их следования, так как LAMMPS реализует их построчно. Символ # обозначает комментарий. Символ & применяется для объединения строк кода в одну длинную строку.
Для выбора единиц измерения и вида материала применяется команда units, которая имеет следующий синтаксис:
units style,
где параметр style может принимать значения lj, real, metal, si, cgs, electron, nicro, nano. В случае style=lj все величины безразмерны. Некоторые единицы измерения физических величин в программном пакете LAMMPS в зависимости от параметра style команды units представлены в табл. 6.1.
|
|
|
|
|
|
|
|
Таблица 6.1 |
|
|
Единицы измерения физических величин |
|
|
||||||
|
|
в программном пакете LAMMPS |
|
|
|
||||
Значение |
|
|
|
|
|
|
|
|
|
параметра |
real |
metal |
si |
cgs |
Electron |
|
micro |
|
Nano |
style |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Масса |
г/моль |
г/моль |
кг |
г |
а.е.м. |
|
Пг |
|
Аг |
Рассто- |
|
|
|
|
боров- |
|
|
|
|
яние |
Å |
Å |
м |
см |
ский |
|
мкм |
|
Нм |
|
|
|
|
|
радиус |
|
|
|
|
Время |
Фс |
пс |
с |
с |
фс |
|
мкс |
|
Нс |
59
6. Программа моделирования Lammps
Окончание табл.6.1
Значение |
|
|
|
|
Elec- |
|
|
|
параметра |
real |
metal |
si |
cgs |
micro |
Nano |
||
tron |
||||||||
style |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Энергия |
|
|
|
|
|
пг* |
аг* |
|
|
ккал/моль |
эВ |
Дж |
эрг |
хартри |
мкм2/ |
||
|
нм2/нс2 |
|||||||
|
|
|
|
|
|
мкс2 |
||
|
|
|
|
|
|
|
||
Температура |
K |
K |
K |
K |
K |
K |
K |
|
Давление |
|
|
|
|
|
пг/ |
аг/ |
|
|
Атмо- |
|
|
Дин/с |
|
(мкм |
||
|
бар |
Па |
Па |
(нм*нс |
||||
|
сфера |
м2 |
*мкс2 |
|||||
|
|
|
|
2) |
||||
|
|
|
|
|
|
) |
||
|
|
|
|
|
|
|
||
Динамиче- |
|
|
Па* |
|
|
пг/ |
аг/ |
|
ская вязкость |
П |
П |
П |
- |
(мкм |
(нм*нс |
||
с |
||||||||
|
|
|
|
|
*мкс) |
) |
||
|
|
|
|
|
|
|||
Электриче- |
Заряд |
Заряд |
|
|
Заряд |
|
Заряд |
|
ский заряд |
прото- |
Кл |
Фр |
прото- |
пКл |
прото- |
||
протона |
||||||||
|
на |
|
|
на |
|
на |
||
|
|
|
|
|
Команда dimension характеризует размерность пространства моделирования (двухмерная или трехмерная).
Команда boundary задает граничные условия моделирования в каждом измерении: p (периодические), f (непериодические, фиксированные), s (непериодические, плотноупакованные) или m (непериодические плотноупакованные с минимальной величиной).
Команда atom_style задает какой стиль применяется для атомов: atomic (атом), dipole (диполь), molecular (молекула), hybrid (гибридный стиль) и другие.
Команда region выделяет области пространства с указанными координатами по шаблону: block (прямоугольный параллелепипед), cylinder (цилиндр), intersect (пересечение двух или более областей) и ряд других. Синтаксис команды следующий:
region <имя> <стиль, например, block, cone, prism, shere и другие> <аргументы для стиля> <ключевые слова – side, move и другие> <аргументы> …
Команда replicate применяется для повторения данной модели в пространстве по всем направлениям. Следует отметить, что новые части модели будут обладать теми же свойствами и будут взаимодействовать с уже
60
