mech_optimiz  4.4.1
microkinetic mechanism investigation tool
Работа с базой данных реакций

По умолчанию mech_optimiz использует коллекцию reactions (в NOSql подходе, используемом mongodb, это чем-то напоминает таблицу реляционной базы данных) базы данных mreactions.


Подключение к базе данных осуществляется от имени пользователя mouser с паролем 1357mo
mech_optimiz распознает данные о реакциях в формате JSON, поэтому при объяснении структуры записей мы ориентируемся на JSON-формат представления данных в mongodb.

Импорт и экспорт базы данных реакций

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

mongoimport --port 27651 -u mouser --db mreactions --collection reactions --file reactions.json

Если вы хотите не только дополнить/исправить базу данных, но и полностью ее переписать (то есть, вначале удалить старое содержимое), то добавьте опцию --drop:

mongoimport --port 27651 -u mouser --db mreactions --collection reactions --drop --file reactions.json

Наоборот, экспортировать данные из БД в файл формата JSON можно следующим образом:

mongoexport --port 27651 -u mouser --db mreactions --collection reactions --out reactions_exported.json
О заполнении полей

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

"field" : "value"

Документ выделяется фигурными скобками {} и может содержать множество пар ключ : значение, отдельные пары отделяются друг от друга запятой:

{"field" : "value", "field2" : "value2"}

Любой документ в любом поле может содержать значение-массив:

{"field" : "value", "field2" : ["item1": "value1", "item2": "value2"] }

Массив записывается с помощью квадратных скобок: [].
Пробелы перед/после двоеточий и скобок не обязательны, но расставлены для наглядности.

Объявление реакции

Синтаксис документа

Пример синтаксиса объявления реакции:

{ "reaction" : "NO(*) = Pt(*) + NO", "reactants" : ["NO(*)"], "products" : ["Pt(*)", "NO"], "material" : { "name" : "Pt", "face" : "111", "type": "surface"}, "forward" : { "A" : "3.16e+15", "E" : "33.1", "Eunits" : "kcal/mol", "eta" : [ { "intermediates" : [ { "name" : "O(*)", "coverage" : "0.25" } ], "effect" : "-2.90" }, { "intermediates" : [ { "name" : "NO(*)", "coverage" : "0.25" } ], "effect" : "-3.50" } ], "eps" : [ { "intermediates" : [ { "name" : "O(*)", "coverage" : "0.25" } ], "E" : "17.1" }, { "intermediates" : [ { "name" : "NO(*)", "coverage" : "0.25" } ], "E" : "27" } ] }, "backward" : { "S0" : "0.88", "E" : "0.0", "eta" : [ { "intermediates" : [ { "name" : "O(*)", "coverage" : "0.25" } ], "effect" : "-0.1663" } ] }, "method" : ["molecular beam experiments"], "ref" : "Campbell, C. T., Ertl, G., & Segner, J. (1982). A molecular beam study on the interaction of NO with a Pt (111) surface. Surface Science, 115(2), 309-322.", "doi": "10.1016/0039-6028(82)90411-3", "comment" : "defect sites. -0.1663 = log10(0.6/0.88). -2.90= log10(3.98e+12/3.16e+15). -3.50= log10(1e+12/3.16e+15)"}

На данный момент список поддерживаемых ключей первого уровня (находятся непосредственно в записи, не вложены) таков:

  1. "reaction"
  2. "reactants"
  3. "products"
  4. "material"
  5. "forward"
  6. "backward"
  7. "method"
  8. "ref"
  9. "comment"

"reaction" - формула реакции. Ключи "reactants", "products"

Правила записи реакций таковы:
  1. Место на катализаторе (активный центр) обозначается звездочкой: Pt(*). Если активных центров несколько (несколько кристаллических граней, или катализатор сложного состава), они обозначены в кинетическом механизме в формате .inp/.cti как (S), (S1) и т.п.. В базе данных такие активные центры должны быть обозначены, как ..(*), ..(*1) и т.д., т.е., буквы S/s заменяются на *. Буквы B/b, обозначающие сплошную фазу катализатора, заменяются только на заглавную B.
  2. Между правой и левой частью реакции ставится знак равенства =.

Правила записи реагентов и продуктов таковы:

  1. Реагенты и продукты (р./п.) являются строками. Не разрешается ставить пробелы перед названием р./п. и после него. Добавление пробела приведет к тому, что данная реакция никогда не будет использована mech_optimiz, поскольку ее р./п. не совпадут с представлением, имеющимся в фалах .inp кинетического механизма.
  2. Дублирующиеся реагенты/продукты записываются с помощью стехиометрических коэффициентов, указанных без пробела перед их названием:

    • неправильно: "products" : ["O(*)", "O(*)", "Pt(*)"]
    • правильно: "products" : ["2O(*)", "Pt(*)"]

    Любое поле, кроме названия реакции и реагентов/продуктов, можно опустить.

    Заметки
    MongoDB не проверяет наличие/отсутствие полей, так как в подходе NoSQL отсутствует схема данных. Наличие названия реакции, равно как и корректность названия/заполнения остальных полей, лежит на пользователе базы данных.

Прямые и обратные стадии реакции "forward" и "backward"

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

Вложенные элементы

Вложенные элементы для полей "forward" и "backward" содержат информацию о кинетических параметрах, которая может быть использована в mech_optimiz для выбора диапазона поиска кинетических параметров. Допускаются следующие элементы:

  1. A - предэкспоненциальный множитель реакции
  2. Aunits - единицы предэкспоненциального множителя реакции
  3. E - энергия активации реакции
  4. Eunits - единицы энергии активации реакции
  5. b - температурный множитель \(T^b\) в модифицированном уравнении Аррениуса
  6. eps - (массив документов) модификатор энергии активации реакции
  7. eta - (массив документов) модификатор предэкспоненциального множителя реакции
  8. mu - (массив документов) модификатор, позволяющий сделать скорость химической реакции пропорциональной доле заполнения поверхности некоторой частицей в той или иной степени
  9. ord - (массив документов) модификатор (частного) порядка реакции по веществу

Подробнее о значении eps, eta, mu читайте: Coltrin et. al. (2000) [1].

Параметр Aunits может принимать следующие значения:

  • cm2/mol/s
  • m2/mol/s
  • cm2/kmol/s
  • m2/kmol/s
  • mol/m2/s
  • mol/cm2/s
  • 1/s
    Если параметр не указан, принимается, что A дано в единицах по умолчанию.
    Единицы по умолчанию для A - 1/с (1/s). Параметр Aunits может принимать следующие значения:
  • eV
  • cal/mol
  • kcal/mol
  • J/mol
  • kJ/mol 1 термохимическая калория (cal) = 4.184 Дж
    Если параметр не указан, принимается, что E дано в единицах по умолчанию. Единицы по умолчанию для E - кДж/моль (kJ/mol).

eps, eta, mu - это массивы, они содержат внутри себя другие документы.

Элементы eps - это документы, включающие следующие поля, относящиеся к модификации энергии активации реакции:

  1. intermediates - массив документов, описывающих состояние поверхности, для которого будет указано новое значение энергии активации. Содержит обязательные поля: 1.1. name - название интермедиата 1.2 coverage - покрытие (доля покрытия) интермедиатом поверхности
  2. E или effect - новое значение энергии активации, или ее изменение по сравнению с чистой, незанятой поверхностью. Пример:
    "eps" : [ { "intermediates" : [ { "name" : "NO(*)", "coverage" : "0.25" } ], "E" : "1.88" } ]
    Данный документ eps содержит информацию о том, что
  • при доле покрытия поверхности интермедиатом NO(*), равной 0.25, энергия активации реакции равна 1.88 у.е.

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

"eps" : [ { "intermediates" : [ { "name" : "NO(*)", "coverage" : "0.5" } ], "effect" : "-0.14" } ]

В приведенном фрагменте кода указывается, что при доле покрытия поверхности интермедиатом NO(*), равной 0.5, энергия активации реакции уменьшается на 0.14 у.е. Данный пример подразумевает, что с помощью Eunits заданы единицы "eV".

Аналогичный формат записи применяется и для модификатора eta:

"eta" : [ { "intermediates" : [ { "name" : "O(*)", "coverage" : "0.25" } ], "effect" : "-0.1663" } ]

Запись означает, что начальное значение A/S0 будет изменено таким образом, что разность десятичных логарифмов измененного значения и начального будет равна указанному числу (-0.1663) при покрытии поверхности интермедиатом O(*), равным 0.25. Иными словами: \(-0.1663 = log_{10}(0.6/0.88)\).

Заметим, что для eta и mu можно указывать только величину изменения параметра с помощью effect.

На данный момент, если в массиве "intermediates" содержатся несколько записей, то есть effect/E соответствует покрытию поверхности сразу несколькими адсорбатами с указанными степения покрытия, то при определении величины eps значение effect/E будет приписано независимо к каждому адсорбату, как если бы было две отдельных записи в массиве eps:

"eps" : [ { "intermediates" : [ { "name" : "CO(*)", "coverage" : "0.2" }, { "name" : "NO(*)", "coverage" : "0.5" } ], "effect" : "-0.14" } ]

будет трактоваться равносильно

"eps" : [ { "intermediates" : [ { "name" : "CO(*)", "coverage" : "0.2" } ], "effect" : "-0.14" }, { "intermediates" : [ { "name" : "NO(*)", "coverage" : "0.5" } ], "effect" : "-0.14" } ]

Этот недостаток неустраним до тех пор, пока coverage-модификаторы не будут приписываться к взаимодействующим адсорбатам (и переходному состоянию), а не к отдельным реакционным стадиям.
Coverage-модификаторы для взаимодействующих адсорбатов означает, что присутствие одного адсорбата влияет на химическую связь (и реакционную способность) другого адсорбата (второй вариант - на структуру/свойства переходного состояния).

Если в спецификации eps не указано ни effect, ни E, то при обработке такой записи с помощью mech_optimiz будет выдана ошибка.

Если в записи "forward" или "backward" из базы данных содержится информация о coverage-зависимости eps, то значение энергии активации E на внешнем уровне вложенности записи (где указываются величины p A, Aunits и др.) также должно быть задано. В случае отсутствия последнего будет проведена экстраполяция значения энергии активации на нулевое заполнение поверхности по имеющимся данным при заполнении, отличном от нулевого (т.е., eps). Экстраполяция выполняется с помощью полинома Ньютона. Если число узловых точек (значения eps) меньше двух, то достоверная экстраполяция зависимости энергии активации от степени заполнения поверхности невозможна, и данная запись о реакции не используется mech_optimiz.

Реагенты "reactants" и продукты "products"

Правила записи реагентов и продуктов:
  1. Поля "reactants" и "products" являются массивами.
  2. Реагенты и продукты должны быть записаны аналогично тому, как они записаны в поле "реакция" (реагенты в указанном поле находятся слева от знака равенства, а продукты - справа).
  3. Порядок записи элементов внутри массива не важен.

Материал катализатора "material"

Документ material содержит информацию о материале катализатора.

"material" : { "name" : "Pt", "face" : "111", "type": "surface"}

Приведенная запись соответсвует информации о том, что исследовалась (111)-плоскость Pt. Тип type может иметь значения surface (для индивидуальных плоскостей), cluster (для кластеров атомов, включающих множество кристаллографических плоскостей). face принимает значения, равные индексам Миллера для плоскости (без скобок), или значение poly для поликристаллического катализатора.

Метод получения информации о кинетике процесса "method"

Записывается информация о методе получения данных - DFT, microcalorimetry, EELS, kinetic fit (если параметры подобраны подгонкой кривых по результатам эксперимента), kinetic model (если составлялась детальная модель по литературным данным и, возможно, собственным экспериментам, и использовано более одного источника информации), molecular beam study. Если метод получения данных не указан в данном списке, информация может быть записана пользователем в произвольном виде.

Ссылка на литературный источник и комментарий

Библиографическая ссылка дается в поле "ref", используется APA-стиль. Используйте возможность Google Scholar - Цитировать - APA для быстрого получения библиографической ссылки.
Поле "doi" необходимо заполнять цифровым идентификатором объекта DOI (если есть) источника информации.
Поле "comment" может содержать комментарии, поясняющие данную запись, например, методику получения данных.

Пример записи из базы данных

{ "reaction" : "NO(*) = Pt(*) + NO", "reactants" : ["NO(*)"], "products" : ["Pt(*)", "NO"], "material" : { "name" : "Pt", "face" : "111", "type": "surface" }, "forward" : { "Enuits" : "eV", "eps" : [ { "intermediates" : [ { "name" : "NO(*)", "coverage" : "0.25" } ], "E" : "1.88" }, { "intermediates" : [ { "name" : "NO(*)", "coverage" : "0.5" } ], "E" : "1.42" }, { "intermediates" : [ { "name" : "NO(*)", "coverage" : "0.75" } ], "E" : "1.05" } ] }, "method" : "DFT", "ref" : "Farberow, C. A., Dumesic, J. A., & Mavrikakis, M. (2014). Density functional theory calculations and analysis of reaction pathways for reduction of nitric oxide by hydrogen on Pt (111). ACS Catalysis, 4(10), 3307-3319.", "doi": "10.1021/cs500668k"}

Запись содержит информацию об энергии активации реакции десорбции NO с поверхности Pt(111), полученную с помощью DFT указнными выше авторами в 2014 году.

Цитированная литература
[1] - Coltrin, M. E., Kee, R. J., Rupley, F. M., & Meeks, E. (2000). SURFACE CHEMKIN-A software package for the analysis of heterogeneous chemical kinetics at a solid-surface–gas-phase interface. Reaction Design, SUR-036-1.)