Уравнивание химических реакций в TDLIB

Файлы доступны в архиве http://evgenii.rudnyi.ru/soft/tdlib00+.tar.gz.

Уравнивание химических реакций, в особенности окислительно-восстановительных, это не самое приятное времяпровождение. В то же время существует способ, описанный в книге  Smith & Missen, сделать это совершенно формально на основе линейной алгебры. Коротко метод описан в

http://evgenii.rudnyi.ru/doc/ru/teaching/313/313group.pdf

на стр. 11 — 15. Формульная матрица (ex. 1 и ур. 2.1) содержит в себе всю необходимую информацию и стехиометрическую матрицу, которая содержит уравненные реакции, можно получить очень эффективно посредством LU-разложения. Алгоритм не обеспечивает получение целых стехиометрических коэффициентов. Если это необходимо, то надо можно сделать следующий шаг.

Естественно, что можно найти большее число реакций (любая линейная комбинация из столбцов стехиометрической матрицы также дает химическую реакцию), однако с практической точки зрения важен набор линейно независимых реакций. В термодинамике набор найденных реакций должен просто соотвествать материальному балансу и механизм как таковой не важен. С этой точки зрения наверное будет интересно посмотреть на набор ортонормированных реакций в

http://evgenii.rudnyi.ru/doc/papers1/93jct_va.pdf

(ур. 1-6) которые мне однажды потребовались из соображений математической статистики.

В TDLIB данный алгоритм использован в нескольких объектах. Наиболее наглядно это происходит в точечной фазе (PointPhase, см. стр. 29 в документации). Пример можно найти в ex/phase/pp/k2so4.mod. Команда

assess -m k2so4.mod

показывает уравненную реакцию. Если из списка компонентов уравнять реакцию не удается, то будет выдана ошибка. В объекте PointPhase ищется только одна реакция и лишние компоненты просто удаляются.

Далее алгоритм нахождения стехиометрической матрицы содержится в VCS, которая является частью объекта associated_solution, и в новом объекте AssociatedSolution. Объект PhaseEquilibrium также автоматически составляет уравнения между веществами в разных фазах. В данных объектах однако все происходит формально и скрыто от пользователя, некоторая информации содержится только в файлах отладки (debug=1).

Предыдущее

Расчет фазовых диаграмм с TDLIB
Введение в TDLIB: чистые вещества
Введение в TDLIB: регулярный раствор
Введение в TDLIB: объект фазовые равновесия

Следующее

Программа VCS из книги Smith&Missen


Comments are closed.