GRAPH REDUCTION METHODS IN CHEMICAL KINETICS
MODELS
A. R. Gerb, E. E. Deviatykh*, G.A. Omarova
Institute of Computational Mathematics and Mathematical Geophysics SB RAS,
630090, Novosibirsk, Russia *Novosibirsk State University, 630090, Novosibirsk, Russia
DOI: 10.24412/2073-0667-2024-3-29-46 EDX: DBIOYQ
The work is devoted to the study and analysis of graph reduction algorithms in chemical kinetics models. A comparative study of pvMARS based on the supported methods DRG, DRGEP, PFA is carried out. The "pros" and "cons" of the pvMARS software package are reflected.
Key words: graph, reduction, chemical kinetics model, DRG, DRGEP, PFA, pvMARS.
References
1. Ra Y., Reitz R. D. A reduced chemical kinetic model for IC engine combustion simulations with primary reference fuels /7 Combustion and Flame. 2008. V. 155. N 4. P. 713 738. [El. Res.]: https://doi.org/10.1016/j.combustflame.2008.05.002.
2. Lu T., Law C. K. A directed relation graph method for mechanism reduction /7 Proc. of the Combustion Institute. 2005. V. 30, iss. 1. P. 1333 1341. DOI: 10.1016/j.proci.2004.08.145.
3. Pepiot-Desjardins P., Pitseh H. An efficient error-propagation-based reduction method for large chemical kinetic mechanisms /7 Combustion and Flame. 2008. V. 154. N 1 2. P. 67 81. DOI: 10.1016/j.eombustflame.2007.10.020.
4. Niemever K. E., Sung C.-J. On the importance of graph search algorithms for DRGEP-based mechanism reduction methods /7 Combustion and Flame. 2011. V. 158, iss. 8. P. 1439 1443. DOI: 10.1016/j.eombustflame.2010.12.010.
5. Sun W., Chen Z., Gou X., Ju Y. A path flux analysis method for the reduction of detailed chemical kinetic mechanisms /7 Combustion and Flame. 2010. V. 157. N 7. P. 1298 1307. DOI: 10.1016/j .combustflame. 2010.03! 006.
6. Gao X., Yang S., Sun W. A global pathway selection algorithm for the reduction of detailed chemical kinetic mechanisms /7 Combustion and Flame. 2016. V. 167. P. 238 247. DOI: 10.1016/j .combustflame.2016.02.007.
7. Niemever K. E., Sung C.-J., Ra.ju M. P. Skeletal mechanism generation for surrogate fuels using directed relation graph with error propagation and sensitivity analysis /7 Combustion and Flame. 2010. V. 157. N 9. P. 1760 1770. DOI: 10.1016/j.eombustflame.2009.12.022.
8. Rabitz H., Kramer M., Dacol D. Sensitivity analysis in chemical kinetics /7 Annual Review of Physical Chemistry. 1983. V. 34. N 1. P. 419 461. D01:10.1146/annurev.pc.34.100183.002223.
The study was carried out within the framework of the scientific program of the National Center for Physics and Mathematics (the project ''Mathematical modeling on supercomputers with exa- and zettaflop performance").
© A. R. Gerb, E. E. Deviatykh, G. A. Omarova, 2024
9. Zheng X., Lu T., Law C. K. Experimental counterflow ignition temperatures and reaction mechanisms of 1,3-butadiene // Proc. of the Combustion Institute. 2007. V. 31, iss. 1. P. 367-375. DOI: 10.1016/j.proci.2006.07.182.
10. Sankaran R., Hawkes E. R., Chen J. H., Lu T., Law C. K. Structure of a spatially developing turbulent lean methane — air bunsen flame // Proc. of the Combustion Institute. 2007. V. 31, iss. 1. P. 1291-1298. DOI: 10.1016/j.proci.2006.08.025.
11. Mauersberger G. ISSA (iterative screening and structure analysis) — a new reduction method and its application to the tropospheric cloud chemical mechanism RACM/CÀPRAM2.4 // Atmospheric Environment. 2005. V. 39, iss. 23-24. P. 4341-4350. DOI: 10.1016/j.atmosenv.2005.02.015.
12. Pepiot-Desjardins P., Pitsch H. An automatic chemical lumping method for the reduction of large chemical kinetic mechanisms // Combustion Theory and Modelling. 2008. V. 12, iss. 6. P. 10891108. DOI: 10.1080/13647830802245177.
13. Zeuch T., Moréac G., Ahmed S., Mauss F. A comprehensive skeletal mechanism for the oxidation of n-heptane generated by chemistrv-guided reduction // Combustion and Flame. 2008. V. 155. P. 651— 674. DOI: 10.1016/j.combustflame.2008.05.007.
14. Tosatto L., Bennett B. A. V., Smooke M. D. Comparison of different DRG-based methods for the skeletal reduction of JP-8 surrogate mechanisms // Combustion and Flame. 2013. V. 160. P. 1572-1582. [El. Res.]: https://doi.Org/10.1016/j.combustflame.2013.03.024.
15. The Kinetic Pre-Processor (KPP). [El. Res.]: https://github.com/KineticPreProcessor/ KPP?tab=readme-ov-file.
16. Lin H., Long M. S., Sander R., Sandu A., Yantosca R. M., Estrada L. A., et al. An adaptive auto-reduction solver for speeding up integration of chemical kinetics in atmospheric chemistry models: Implementation and evaluation in the Kinetic Pre-Processor (KPP) version 3.0.0. // J. of Adv. Modeling Earth Systems. 2023. V. 15. e2022MS003293. [El. Res.]: https://doi.org/10.1029/ 2022MS003293.
17. [El. Res.]: https://www.opensmokepp.polimi.it/index.php.
18. Stagni A., Cuoci A., Frassoldati A., Faravelli T., Ranzi E. Lumping and reduction of detailed kinetic schemes: An effective coupling // Indust. Engin. Chem. Res. 2014. V. 53, iss. 22. P. 9004-9016. DOI: 10.1021/ie403272f.
19. [El. Res.]: http://kintecus.com/index.htm.
20. Ianni J. C. Kintecus, Windows Version 6.01. 2017. [El. Res.]: www.kintecus.com.
21. Ianni J. C. A Comparison of the Bader — Deuflhard and the Cash — Karp Runge — Kutta Integrators for the GRI-MECH 3.0 model based on the chemical kinetics code kintecus // Comput. Fluid and Solid Mechanics. 2003 / K.J. Bathe (ed.). P. 1368-1372.
22. [El. Res.]: https://github.com/Niemeyer-Research-Group/pyMARS.
23. [El. Res.]: https://niemeyer-research-group.github.io/pyMARS.
24. Niemever K. E., Mestas P. O., Clayton P. pvMARS: an open software package for reducing chemical kinetics models // 10th Meeting of the Western States Section of The Combustion Institute. Laramie, WY USA, 2017.
25. Mestas III P. O., Clayton P., Niemever K. E. pvMARS: Automatically reducing chemical kinetic models in Python // J. of Open Source Software. 2019. V. 4, iss. 41. P. 1543. DOI: 10.21105.joss.01543.
26. Mestas III P. O. Comparing chemical kinetic model reduction techniques using pvMARS //A THESIS submitted to Oregon State University University Honors College, 2020.
27. Goodwin D. G., Moffat H. K., Speth R. L. Cantera: An object-oriented software toolkit for chemical kinetics, thermodynamics, and transport processes. [El. Res.]: http://www.cantera.org. Version 2.3.0. 2017.
28. Lu T., Law C. K. Linear time reduction of large kinetic mechanisms with directed relation graph: n-heptane and iso-octane // Combustion and Flame. 2006. V. 144, iss. 1-2. P. 24-36. DOI: 10.1016/j.combustflame.2005.02.015.
29. Dijkstra E. W. A note on two problems in connexion with graphs // Numerische Mathematik. 1959. V. 1, iss. 1. P. 269-271. DOI: 10.1007/bf01386390.
30. Wagner D., WTillhalm T. Speed-up techniques for shortest-path computations // STACS 2007. Ed. by WT. Thomas, P. Weil. Lecture Notes in Computer Science. Berlin, Heidelberg: Springer, 2007. V. 4393. P. 23-36. DOLIO.1007/978-3-540-70918-3^3.
31. Hagberg A. A., Schult D. A., Swart P. J. Exploring network structure, dynamics, and function using NetworkX // Proc. of the 7th Python in Science Conference. Ed. by G. Varoquaux, T. Vaught, J. Millman. Pasadena, CA USA, 2008. P. 11-15.
32. The CRECK Modeling Group. Detailed kinetic mechanisms. [El. Res.]: http:// ereckmodeling.ehem.polimi.it/menu-kinetics/menu-kinetics-detailed-mechanisms/.
МЕТОДЫ ГРАФОВОЙ РЕДУКЦИИ В МОДЕЛЯХ ХИМИЧЕСКОЙ КИНЕТИКИ
А. Р. Герб, Е. Е. Девятых*, Г. А. Омарова
Институт вычислительной математики и математической геофизики СО РАН,
630090, Новосибирск, Россия * Новосибирский государственный университет, 630090, Новосибирск, Россия
УДК 519.17—51-7
Б01: 10.24412/2073-0667-2024-3-29-46 ЕБХ: БВЮУд
Работа посвящена исследованию и анализу графовых а.;и'оритмов редукции в моделях химической кинетики. Проведено сравнительное исследование руМАИБ на основе поддерживаемых
методов Г)Г»( !. Г)ГК Г1гР. РРА. Отражены «плюсы» и «минусы» ирограммнохч) пакета руМАИБ.
Ключевые слова: граф, редукция, модель химкинетики, Г)Г»(!. Г)ГКГ1гР. РРА, руМАИБ.
Введение. Изучение подробных химических кинетических моделей в моделировании реактивного потока существенно осложняется большим объемом вычислительных затрат, обусловленных химической жесткостью и размером модели. Для включения таких моделей в детальное многомерное моделирование применяются методы уменьшения размера и сложности.
Химико-кинетические модели, используемые дня описания систем сгорания, определяют скорость изменения концентраций всех присутствующих соединений. Каждая реакция в системе характеризуется скоростью, с которой потребляются или производятся участвующие в реакции вещества. Скорость реакции — функция концентрации реагентов в реакции, а также других факторов, включая температуру Например, в реакции СО 2+С ^2СО участвуют С02, С и СО. Скорость реакции зависит от произведения концентраций С02 и С и соответствует скорости, с которой потребляются С02 и С, в то время как СО производится в два раза быстрее. Все темпы производства/потребления соединений вместе представляют собой систему обыкновенных дифференциальных уравнений, описывающих поведение модели.
Моделирование может быть выполнено с помощью моделей путем интегрирования этих дифференциальных уравнений но времени, чтобы найти изменяющиеся во времени концентрации соединений. Однако эти операции могут быть дорогостоящими в вычислительном отношении, особенно дня более крупных кинетических моделей, которые могут включать от сотен до тысяч соединений — то есть систему обыкновенных дифференциальных уравнений такого же размера, взаимодействующих посредством тысяч или десятков тысяч
Исследование выполнено в рамках научной программы Национального центра физики и математики (проект «Математическое моделирование на супер-ЭВМ экса- и зеттафлопеной производительности»).
(с) А. Р. Герб, Е. Е. Девятых, Г. А. Омарова, 2024
реакций. Моделирование практических систем сгорания и пожара становится непрактичным для более крупных кинетических моделей, но можно добиться гораздо более приемлемого времени моделирования, удалив несущественные соединения и реакции из таких больших моделей.
Один из способов решения этой проблемы — уменьшение размера и сложности модели химкинетики. Правильно разработанные механизмы сокращения облегчают вычислительные затраты, сохраняя при этом точность [1]. Алгоритмы скелетного сокращения, основанные на теории графов, имеют целью удалить реакции и соединения из подробных моделей, представляя отношения между соединениями на графе и просматривая граф от заданных целевых соединений, чтобы определить соединения, которые можно удалить. Один из часто используемых алгоритмов - метод на основе ориентированного" графа (DEG) [2]. Применение DRG эффективно при уменьшении размера химико-кинетических моделей, однако у него есть недостатки, такие как рассмотрение отношений между соединениями только в первом поколении. Метод DRGEP [3-4] — ориентированный граф отношений с распространением ошибок и анализ потока пути (PFA) [5] — имеет целью улучшить алгоритм DEG, учитывая факторы, которые он игнорирует. Выбор глобального пути - более поздний алгоритм, разработанный как следующее поколение PFA [6].
Грубые методы сокращения могут найти несущественные соединения, пропущенные алгоритмами, однако требуют большего количества вычислений ошибок, поэтому их выполнение занимает значительно больше времени, В результате такие методы обычно применяются к модели, которая уже была уменьшена с помощью другого алгоритма сокращения, Методы сокращения могут включать анализ чувствительности [7-10] и структурный анализ (ISSA) [11]. Другой распространенный способ уменьшить размер модели — сгруппировать распространенные соединения в группу, устранив необходимость отслеживать похожие соединения [12]. Метод химического восстановления (CGR) также использует объединение по химическим признакам для уменьшения размера детальных моделей [13].
Нимейер и др. [7] сравнили результаты"DEG, DRGEP, анализа чувствительности с помощью DRG (DRGASA) и анализа чувствительности с помощью DRGEP (DRGEPSA) на двух разных моделях и обнаружили, что DRGEP и DRGEPSA работали лучше, чем DRG и DRGASA в обоих случаях. Представляя метод PFA, Сан с соавторами [5] на двух разных моделях в широком диапазоне начальных условий показали, что PFA работает также или лучше, чем DRG, Tocan о и др. [14] рассмотрели влияние различных методов расчета весов соединений и их влияние на результат сокращения. Кроме того, они отметили, что сокращенные модели, созданные DRG и DRGEP, сильно различаются с точки зрения выбранных для сокращения соединений, и что оперативная версия DRG работает значительно лучше, чем глобальная, Гао и др. [6] использовали метод PFA для разработки алгоритма выбора глобального пути, который, как они доказали, превосходит PFA и DRGEPSA и в используемом тестовом примере показал результаты, аналогичные DRGASA. В прошлых исследованиях обсуждаемые методы применялись к одной или двум моделям, и, как правило, не проводился их анализ применительно к широкому кругу моделей, Таким образом, остается открытым вопрос о том, какой общий метод сокращения моделей наиболее эффективен для широкого спектра моделей,
В настоящее время разработаны и продолжают разрабатываться новые методы, однако в открытом доступе присутствуют лишь несколько программных реализаций методов редукции, В большинстве случаев программные продукты платны, либо предоставляется бета-версия, ограниченная по возможностям и времени.
КРР [15-16] — программный инструмент, который автоматически генерирует код для эффективного интегрирования химических механизмов, КРР принимает набор входных файлов с описанием механизма и генерирует код на языках Fortran 90, С или MATLAB для решения соответствующей системы ОДУ с использованием любого метода интегрирования из набора, КРР используется во многих моделях атмосферной химии. Адаптивный решатель в КРР выполняет авторедукцию химического механизма локально и «на лету», во время выполнения сравнивая локальные скорости производства и потери каждого соединения с порогом разделения. Соединения, у которых скорости производства и потерь превышают порог, считаются быстрыми и решаются как связанный субмеханизм в КРР, в то время как другие соединения считаются медленными и решаются по отдельности явным методом,
OpenSMOKE++ [17-18] — общий программный комплекс, разработанный Лабораторией моделирования CRECK для численного моделирования реакционных систем с подробными кинетическими механизмами, OpenSMOKE++ может выполнять моделирование идеальных реакторов, ударных труб, машин быстрого сжатия, одномерных ламинарных пламен и многомерных реакционных систем, предоставляет полезные численные инструменты, такие как анализ чувствительности и скорости производства, В его составе
находится пакет DoctorSMOKE+H--численный пакет для автоматического сокращения
детальных химико-кинетических механизмов, В настоящее время он находится в стадии бета-тестирования и доступен только академическим пользователям.
Программное дополнение Atropos к Kinteeus [19-21] позволяет точно «вырезать» реакции, которые не влияют на результаты, С его помощью также можно исследовать и ранжировать важные и наименее важные реакции при помощи анализа главных компонент (PCА), который проводится на основе файлов нормализованных коэффициентов чувствительности (NSC), выводимых Kinteeus. Авторы предупреждают, что их метод может приводить к неверным результатам, и призывают не использовать только NSC для обоснования механизма. Платно,
Программный продукт с открытым исходным кодом на основе Python-pvMARS, реализующий графовые методы редукции: граф направленных отношений (DRG), DRG с распространением ошибок (DRGEP), анализ потока пути и анализ чувствительности. Программный комплекс pvMARS принимает модели, заданные в стандартных форматах файлов Cantera или Chemkin (последний сначала преобразуется в Cantera), указанный предел ошибок, дополнительные списки соединений, которые всегда сохраняются, после этого удаляет как можно больше соединений и реакций, используя указанные методы. Цель данной работы — тестирование алгоритмов на разных моделях, изучение архитектуры графовых алгоритмов редукции в химической кинетике,
К сожалению, pvMARS в последний раз обновлялся в 2019 г, и в настоящее время не работает, однако существует официальный сайт [22] и код программ [23] с лицензией MIT, 1. Программный пакет pyMARS, pvMARS — программное обеспечение для автоматизированного сокращения моделей химической кинетики на основе Python с открытым исходным кодом [24-26]. В pvMARS реализованы описанные в литературе методы сокращения моделей с использованием библиотеки Cantera [27]. pvMARS использует четыре основных метода: DRG [2], DRGEP [3, 4], PFA [5] и анализ чувствительности (SA) [7-9].
Эти методы применяют теорию графов, чтобы определить, какие соединения следует исключить из модели: отношения между соединениями в модели представляются в виде ориентированного графа, веса ребер которого представляют зависимость каждого соеди-
нения от другого. Метод БЕС сохраняет соединения, которые остаются связанными с определенными целевыми соединениями в графе после удаления неважных ребер на основе небольшого порогового значения, РЕА аналогичен БЕС, но при определении силы взаимоотношений .между соединениями рассматривает пути «второго поколения». Метод БИСЕР учитывает распространение зависимости посредством косвенных взаимодействий и количественно определяет общую важность соединения для достижения цели на основе произведения весов ребер по пути графа.
Для каждого графового метода руМЛНЯ начинает с нижнего порогового значения, создает пробную уменьшенную модель и повторяет увеличение пороговых значений до достижения заданной пользователем максимальной ошибки. Ошибка определяется путем сравнения смоделированных времен задержки самовоспламенения между исходной и уменьшенной моделями в заданных условиях,
руМЛНЯ также использует метод анализа чувствительности [8], который удаляет соединения индивидуально на основе ошибки, вызванной их удалением. Этот метод требует больших вычислительных затрат, если выполняется отдельно, однако его можно использовать в качестве дополнения к методам сокращения на основе графов, таким как 1)НСЛЯЛ
1,1, Методы. руМЛНЯ реализует методы БЕС, БИСЕР и РЕА для сокращения моделей [2-3, 5], Анализ чувствительности [8] может использоваться независимо или в сочетании с другими методами для удаления дополнительных соединений [7],
Поддерживаемые методы работают итерационно: удаляют одно или несколько соединений, оценивают ошибку задержки самовоспламенения относительно исходного механизма, чтобы определить, работает ли модель-кандидат в пределах указанного предела ошибки, затем пытаются удалить следующий набор соединений и повторяют действия. Методы БЕС и БЕСЕР имеют много общего, различаются преимущественно тем, как они используют граф для определения соединений, которые следует исключить из модели. Примечательно, что БЕС использует порог отсечения для удаления неважных ребер графа непосредственно между соединениями (с последующим поиском по графу для определения соединений, достижимых из цели), в то время как БЕСЕР использует порог отсечения для удаления неважных соединений на основе их общей метрики важности, РЕА использует тот же алгоритм поиска по графу, что и БЕС, но применяет другой метод расчета весов ребер на графе.
Метод Б ВС. После запуска программы с выбранным методом БЕС, запускается моделирование самовоспламенения для определения данных термохимического состояния, используемых для расчета коэффициентов прямого взаимодействия. Эти коэффициенты отражают зависимость одного соединения от другого соединения. Коэффициент прямого взаимодействия соединений А с соединениями В определяется в работе [2] как гав'-
и ПНСКРЯЛ [7, 9-10].
I
Е I 6Вг |
ГАВ =
I
(1)
Е I шг |
1, если в элементарной реакции участвует соединение В 0, иначе.
где / — количество реакций в модели; — етехиометричеекий коэффициент соединения А в г-й реакции; Шг — общая скорость реакции в г-й реакции.
Коэффициенты прямого взаимодействия соединений в системе используются в качестве весов в ориентированном графе. Для каждого набора начальных условий, представленных с помощью инструментов, доступных в библиотеке ХоНгогкХ. создается один граф [26], Ребро включается в граф тогда и только тогда, когда его вес превышает указанное пороговое значение е, т. е. гав
После создания графа, выполняется поиск в глубину для каждого целевого соединения, Соединение, не обнаруженное в результате поиска, удаляется из модели для этого порогового значения вместе со всеми реакциями, в которых он участвует.
Программа использует итерационный процесс для определения максимального количества соединений, которые можно удалить до достижения допустимого уровня ошибки (например, 10 % задержки самовоспламенения для заданных условий). Итерация происходит путем увеличения порогового значения. Программа запускается с пороговым значением 0,01, в этом случае значение многократно делится на 10, пока внесенная ошибка не станет ниже допустимого предела. Доля ошибок рассчитывается на основе задержки самовоспламенения путем создания уменьшенной модели и запуска моделирования самовоспламенения с использованием полученной модели. Задержка самовоспламенения из данной симуляции сравнивается с задержкой самовоспламенения из исходной модели, чтобы определить долю ошибок. Когда начальное пороговое значение будет определено, пороговое значение будет немного увеличено и ошибка будет рассчитана заново. Как только ошибка выйдет за допустимый уровень, итерация остановится. Все соединения, не связанные с целевыми соединениями в конечном графе, удаляются из модели, и все реакции с участием любого из этих соединений также удаляются,
Лу и Лоу [28] показали эффективность метода БШ, особенно на больших моделях. Выбор целевых соединений для метода БЕС важен, но не критически, поскольку все соединения, которые следует поддерживать, будут связаны между собой. Метод использует поиск в глубину для определения того, что будет использоваться в сокращенной модели. Все соединения, которые следует сохранить, будут находиться в пределах до тех пор, пока одно из целевых соединений находится в этой группе. Например, если выбраны (один или несколько) соединения топлива, то все соединения, необходимые для представления окисления топлива, должны быть доступны.
Метод DB.CEР. Реализация ПНСК!' аналогична реализации БЕС, методы различаются способом создания и поиском в графе. Вместо того чтобы для поиска каждого порогового уровня создавать новый граф, метод БЕСЕР использует только один граф для каждого начального условия перед итерацией. На основе этих графов составляются данные для принятия решений о том, что должно быть удалено. Коэффициенты прямого взаимодействия вычисляются аналогично БЕС, Подробности расчетов приведены в работах [3-4]:
I
Е ^г
гав =
г=0
(3)
тах (РА,СА)
I
Ра = ^2 тах (0,^ (4)
А
г=0
I
С А = max (0, - vA,i Wi) (5)
г=0
Для каждого начального условия создается граф с использованием всех коэффициентов и соединений прямого взаимодействия. Коэффициент пути на графе можно вычислить умножением всех весов ребер на этом пути. Это значение будет уменьшаться или оставаться неизменным с каждым новым ребром, добавляемым в граф, поскольку веса всех ребер равны или меньше единицы. Общий коэффициент взаимодействия для каждого соединения определяется как наибольший коэффициент пути между соединением и целевым соединением. Для определения общего коэффициента взаимодействия (OIC) для каждого соединения по каждому целевому соединению на каждом графе предварительно проводится поиск, чтобы определить максимально возможный путь к каждому другому соединению. Этот поиск осуществляется с использованием модифицированной версии алгоритма Дейкетры [29], который находит максимальный путь к каждому узлу графа, Вагнер [30] показал множество оптимизаций, которые можно провести в алгоритме Дейкетры, а Нимейер и Су иг [4] установили, что эта реализация алгоритма Дейкетры является лучшим алгоритмом поиска по графу специально для DRGEP, Реализация алгоритма Дейкетры в NetworkX была модифицирована, чтобы соответствовать алгоритму, используемому pyMARS [26]. Максимальный путь к каждому соединению от любого целевого соединения на любом из графов хранится в среде данных. Эти значения представляют каждое соединение OIC. Соединения с OIC ниже порогового значения удаляются из модели. Пороговое значение повторяется так же, как и в методе DRG. OIC каждого соединения зависит от того, какие целевые соединения используются. По этой причине выбор целевых соединений имеет критически важное значение для метода DRGEP: расстояние между соединением и целевым веществом влияет на его OIC.
Метод PFA. Этапы поиска по графу и итерации аналогичны используемым методам DRG, различие заключается только в способе расчета коэффициентов прямого взаимодействия. В отличие от DRG, алгоритм PFA учитывает пути второго поколения между соединениями при расчете их коэффициентов прямого взаимодействия. Значения рассчитываются с использованием потоков производства и потребления для каждого соединения, как показано в уравнениях (4), (5) соответственно, а также потоков производства и потребления, вызываемых соединением В для каждого соединения А, как определено в работе [5]:
i
Pab = max (0,v А^в%) (6)
г=0 I
Cab = ^ max (0,-Ьа,М8в^ (7)
г=0
Коэффициенты взаимодействия первого поколения:
р
„pro-1st = Г АВ (8)
ГАВ = max (Pa,Ca) (8)
„con—1st _ Cab (9)
АВ max(PA,CA)' (9)
где pro представляет производство, con — потребление. Коэффициенты взаимодействия второго поколения получаются из произведений коэффициентов взаимодействия первого поколения по путям второго поколения:
pro — 2nd _ \ Л í pro-1st pro-1st
£ И—1st ■ r^) (10)
ГАВ _ 2-^Í VAMi ■ rMiB
Mi=A,B
„con—2nd _ \ Л frcon—1st „con—1st
'AB _ / v VAMi ■ ' MiB
con-1st con-1st / , VAMi ■ MiB ) (11)
Mi=A,B
Наконец, коэффициенты взаимодействия первого и второго поколений объединяются для определения коэффициента прямого взаимодействия:
„ _ „pro-1st , „con-1st I „pro-2nd , „con-2nd (12)
гав _ тАВ + rAB + rAB + rAB (±2)
Эти значения, как и в методе DRG, используются для определения соединений, подлежащих удалению из искомой модели. Граф строится с ребрами между всеми парами соединений, имеющими коэффициент прямого взаимодействия больше порогового значения гав > £■ Затем выполняется поиск в глубину от целевых соединений, и все соединения, не обнаруженные в результате поиска, удаляются из модели.
Анализ чувствительности. Анализ чувствительности можно выполнить с помощью методов DRG или DRGEP для дальнейшего сокращения модели. Набор соединений, находящихся в подвешенном состоянии, должен быть определен на основе заданного пользователем порогового значения е*. Используемый ранее алгоритм сокращения должен выполняться с е* в качестве порогового значения. Соединения, оставшиеся после первой стадии сокращения, но которые будут удалены при таком пороге, составляют набор «подвешенных», Далее соединения неопределенности удаляются из сокращенной модели одно за другим, вычисляется ошибка, вызванная их удалением, и соединению В присваивается мера ошибки:
SВ _ l^B,índ — $red\ , (13)
где ÓB,ind ~ ошибка приведенной модели без соединения Sred — ошибка приведенной модели первого этапа приведения [7]. Далее соединения удаляются из модели по одному в порядке возрастания этих значений. Окончательная модель — это последняя модель в этой серии, которая не превышает заданный предел погрешности,
1,2, Реализация. Описание реализации сделано на основе официальной документации и исходного кода программы pvMARS, Данный программный комплекс реализован на Python и использует библиотеку Cantera [27] для обработки химической кинетики и хранения информации о моделях. Используется библиотека NetworkX для обработки графов, используемых в алгоритмах [31]. Ключевые компоненты программного комплекса разделены на модули. При использовании pvMARS пользователь предоставляет входной файл через командную строку с опцией -i. Аргументы командной строки анализируются с помощью argparse. Входные файлы хранятся в формате YAM i. и состоят из названия модели, подлежащей сокращению, целевых соединений для модели, соединений, которые необходимо сохранить при сокращении, алгоритма, который необходимо запустить для максимального порога ошибки, информации анализа чувствительности и начальных условий
моделирования самовоспламенения. Файл YAML анализируется, а входные данные проверяются на наличие ошибок в функции parse_inputs(). Если все утверждения пройдены, вызывается основная функция, в ней проверяются входы и вызывается основная функция модуля для соответствующего алгоритма приведения. Если входной файл правильно настроен для анализа чувствительности, он выполняется после первоначального уменьшения.
Модули моделирования. Моделирование используется для запуска исходной и сокращенной моделей для оценки задержки самовоспламенения и вычисляемой на ее основе ошибки. Эта операция выполняется модулем моделирования в pyMARS с использованием пакета химической кинетики Cantera [27].
Модуль моделирования содержит класс моделирования, который взаимодействует с Cantera для выполнения необходимых операций. Чтобы создать экземпляр класса, вызывающая сторона должна предоставить модель, а также свойства моделирования, такие как начальные условия и информация о временном шаге. Перед запуском моделирования необходимо вызвать функцию setup_ caseÇ) для создания объектов внутри класса на основе свойств, предоставленных при инициализации. Затем функцию run_case() можно использовать для запуска ранее настроенного моделирования. Подробная информация о каждом временном шаге будет записана на диск в формате файла HDF5 (иерархический формат данных). После завершения моделирования, можно запустить функцию process_results() для получения информации из этого файла. Если полная подробная информация не требуется, можно использовать функцию Calculation^ ignition (), чтобы оперативно определить задержку самовоспламенения. Эта функция выполняется намного быстрее, поскольку не записывает подробную информацию на диск.
Модуль выборки. Модуль выборки использует модуль моделирования для параллельного запуска нескольких симуляций для одной и той же модели. Модуль содержит класс Inputlgnition, содержащий входную информацию для одного случая моделирования самовоспламенения.
Функция parse_ignition_inputs() принимает модель и начальные условия из словаря данных, выполняет проверку на входных данных и создает входной объект, если все утверждения переданы. Наиболее важными функциями модуля являются функции ignore_ worker () и Simulation^ worker (). Каждая функция принимает объект моделирования в качестве входных данных, запускает моделирование и выводит соответствующие данные. Функция Simulation^ worker () выполняет детальное моделирование, а функция ignore_ worker () — более быстрое моделирование задержки самовоспламенения без записи данных. Функции sampleQ и sample_metrics() принимают список входных условий и создают на их основе список объектов моделирования. Затем они создают пул потоков на основе введенных пользователем данных о количестве потоков и параллельно сопоставляют соответствующую рабочую функцию списку симуляций. В примере функции используется подробный метод Simulation^ worker (), а в функции s ample _ metrics () используется более быстрый метод ignore_ worker (). Функции сначала проверяют, сохранены ли выходные данные моделирования на диске, если да, используют предыдущие выходные данные. Кроме того, модуль содержит функцию Calcul_ error (), которая используется при сравнении результатов моделирования для расчета доли ошибок, вносимых сокращенной моделью.
Служебные модули. В дополнение к модулям, связанным с моделированием и сокращением, pyMARS реализует различные служебные модули, используемые модулями
сокращения. Модуль soln2eti принимает объект решения Cantera в качестве входных данных и записывает соответствующий файл ("П. в котором хранится модуль. Аналогично модуль soln2ek записывает объект решения Cantera в формате CHEMKIN, Оба модуля содержат различные вспомогательные функции, создающие определенные разделы соответствующего выходного файла. Модуль инструментов содержит функцию Convert (), которая может конвертировать файл из формата Cantera в формат CHEMKIN, считывая файл Cantera в объект решения Cantera и используя модуль soln2ek для записи объекта в формат файла CHEMIKIN, Чтобы преобразовать формат CHEMKIN в формат Cantera, функция вызывает встроенный инструмент Cantera ck2cti. Кроме того, модуль инструментов содержит функцию Compare_models(), выполняющую глубокое сравнение двух объектов решения Cantera и определяющую, представляют ли эти объекты одну и ту же модель.
Модуль reduce_ model содержит функцию отсечения списка соединений из заданной модели. Будет создан список соединений, которые входят в модель, а не в список исключений, Также создается список реакций, включающий все реакции исходной модели, не включающие ни одного соединения из списка исключений. Сокращенные списки соединений и реакций используются для создания уменьшенного объекта решения Cantera, который представляет сокращенную модель. Эта функция часто используется в алгоритмах сокращения.
Алгоритмические модули. Каждый из реализованных алгоритмов имеет собственный модуль, отвечающий за функциональность. Все алгоритмы, за исключением анализа чувствительности, исполняются по аналогичной схеме.
Функция run () — основная функция алгоритма, осуществляющего поиск оптимального порогового значения, используемого при сокращении. Сначала создается объект модели Cantera для решения задачи, а затем с помощью специального модуля производится выборка ключевых данных из модели. Далее используется функция create_ matrix () для создания матрицы коэффициентов прямого взаимодействия на основе соответствующего алгоритма. Программа пытается использовать начальное пороговое значение 0,01 для уменьшения, но уменьшает пороговое значение, только если ошибка, вызванная на этом уровне, превышает допустимый уровень. Найдя приемлемое начальное пороговое значение, программа выполняет уменьшение начального порогового значения и продолжает увеличивать пороговое значение на начальное значение до тех пор, пока ошибка не превысит допустимый предел. Последняя модель, попадающая в допустимый диапазон ошибок, будет использована в качестве окончательного результата сокращения.
Выполнение сокращения при определенном пороговом значении осуществляется с помощью функции reduce(), генерирующей список соединений, которые необходимо удалить из модели, и использующей ранее описанные модули для создания сокращенной версии исходной модели, и запуска моделирования для записи задержки самовоспламенения и расчета ошибки, вносимой этой сокращенной моделью.
Для определения соединений, которые должны быть удалены из модели, используется функция trim (). В DRG и PFA эта функция строит граф с ребрами, превышающими пороговое значение, и выполняет поиск в глубину целевых соединений, возвращая все соединения, которые не отображаются в этом поиске как подлежащие удалению. Для DRGEP функция run () использует коэффициенты прямого взаимодействия при создании словаря данных общих коэффициентов взаимодействия. Для удаления выбираются соединения, у которых общие коэффициенты взаимодействия ниже порогового значения. Эти ал горит-
мы очень похожи, поэтому их можно было бы реализовать е использованием шаблона проектирования. Однако большинство будущих алгоритмов не будут следовать одному и тому же шаблону, поэтому добавление этой функциональности будет иметь негативные последствия,
2. Исследование работы программного пакета pyMARS. Проведено сравнительное исследование pvMARS на основе поддерживаемых методов DRG, DRGEP,
PFA, Исследование проводилось на моделях ('líIX 'К_200-'>_Г<) Г_Н'Г_I.'Г_ММ.
CRECK_2003_TOT_HT_LT_ME, (Ъ'КСК^ООЗ JI'OT JIT. ( Ъ'КСК J2ÜÜ3 JI'OT J IT
[25], Каждая модель была представлена в стандартном файловом формате Chemkin и перед исследованием переводилась в стандартный файловый формат Cantera с помощью программы ck2cti, включенной в Python библиотеку-интерфейс Cantera, Модели включают:
CRECK_2003_TOT_HT_LT_ME - 582 вещества и 21174 реакции;
CRECK_2003_C1_C3_HT - 114 веществ и 1999 реакций;
CRECK_2003_TOT_HT — 368 веществ и 14462 реакции;
CRECK_2003_TPRF_HT_ALC_NOX - 299 веществ и 8028 реакций.
Как упоминалось выше, pvMARS в настоящее время не работает, поэтому перед исследованием были изменены код программы и версия используемой Cantera для восстановления работоспособности программы, нарушенной вследствие несовместимости последних версий зависимостей с изначальным кодом программы. Для всех запусков pvMARS использовались одни и те же настройки, отличающиеся только заранее заданной ошибкой и методом.
Настройки включают целевые вещества: 02, С2Нб, С3Н8; вещества, не подлежащие удалению: N2; Условия для моделирования процесса воспламенения: (Давление — 1 атм,; Температура: — 1200 К; Молярный состав: 1 моль C3Hg, 6 молей 02, 22.56 моли N2); Количество логических ядер, используемых при моделировании, — 10,
Симуляция процесса самовоспламенения происходит за счет использования реакторной сети Cantera, представленной классом ReaetorNet, и переданной ей фазе, моделирующей идеальный газ с константным или неконстантным давлением, что определяется настройками пользователя. Фаза, моделирующая идеальный газ, представлена двумя классами IdealGasReactor и IdealGasConstPressureReactor соответственно. Константность или не константность давления определяется пользовательским параметром kind отдельно для каждых конкретных заданных условий самовоспламенения во входном YAML файле, Начальное термодинамическое состояние и пропорции веществ фазы также задаются пользователем во входном файле путем определения давления, температуры с помощью параметров pressure и temperature соответственно и молярных или массовых долей, описываемых параметром reactants. Также имеется возможность описания пропорций веществ путем определения молярных или массовых долей топлива и окислителя и их соотношения, что регулируется параметрами fuel, oxidizer и equivalence-ratio соответственно. Способ определения пропорций с помощью массовых или молярных долей определяется параметром composition-type.
Исследование проводилось на ОС Ubuntu 20,04,6 LTS с процессором AMD Rvzen 5500U (6 физических и 12 логических ядер), 8 Гб оперативной памяти, работающей на частоте 3200 МГц.
В табл. 1-4 представлены результаты запусков программы ME (Max error) — максимальная ошибка; SA (Species after) - количество веществ уменьшенной модели; RA
Таблица 1
Результаты модели CRECK_2003_T()T_HT_LT_ME
ME DRG DRGEP PFA
SA RA Е Т SA RA Е Т SA RA Е Т
0.1 333 11626 0.07 233.81 182 4812 0.05 193.83 327 11468 0.07 170.63
0.2 329 10779 0.16 252.13 177 4759 0.13 206.64 327 11468 0.07 167.66
0.3 298 9881 0.28 128.76 177 4759 0.13 205.25 275 8679 0.28 200.10
0.4 298 9881 0.28 129.01 177 4759 0.13 203.70 275 8679 0.28 199.63
0.5 298 9881 0.28 128.04 166 4409 0.45 261.66 275 8679 0.28 205.23
0.6 222 5804 0.52 140.38 160 4201 0.58 276.63 214 5535 0.52 210.57
0.7 222 5804 0.52 140.07 129 2984 0.25 199.20 214 5535 0.52 209.83
0.8 222 5804 0.52 139.73 129 2984 0.25 199.52 214 5535 0.52 219.39
0.9 222 5804 0.52 140.43 129 2984 0.25 201.69 214 5535 0.52 209.32
1.0 222 5804 0.52 139.86 129 2984 0.25 200.85 214 5535 0.52 207.44
5.0 133 2682 0.86 180.48 111 2352 3.74 148.07 126 2558 0.20 288.37
10.0 105 2069 5.78 256.89 111 2352 3.74 154.93 95 1709 5.66 458.41
Таблица 2
Результаты модели CRECK_2003_C1_C3_HT
ME DRG DRGEP PFA
SA RA E T SA RA E T SA RA E T
0.1 100 1840 0.03 16.33 99 1878 0.05 17.02 101 1869 0.01 9.97
0.2 97 1829 0.15 9.18 99 1878 0.05 16.80 97 1829 0.15 11.66
0.3 97 1829 0.15 9.23 99 1878 0.05 16.77 97 1829 0.15 11.70
0.4 97 1829 0.15 9.25 97 1833 0.34 20.36 97 1829 0.15 11.68
0.5 91 1751 0.43 10.75 97 1833 0.34 20.46 97 1829 0.15 11.64
0.6 91 1751 0.43 10.72 94 1795 0.58 12.21 97 1829 0.15 11.75
0.7 91 1751 0.43 10.68 94 1795 0.58 12.10 97 1829 0.15 11.66
0.8 91 1751 0.43 10.68 94 1795 0.58 12.16 90 1715 0.42 14.86
0.9 91 1751 0.43 10.75 94 1795 0.58 12.11 90 1715 0.42 14.94
1.0 91 1751 0.43 10.78 83 1572 0.0 16.51 90 1715 0.42 14.88
5.0 70 1203 1.72 24.78 74 1177 4.25 11.33 71 1274 1.21 37.24
10.0 67 1016 5.21 27.47 74 1177 4.25 27.47 67 1037 6.75 43.68
(Reactions after) — количество реакций уменьшенной модели; Е (Error) — ошибка для уменьшенной модели; Т (Time) — время работы программы.
Исследование проводилось на ОС Ubuntu 20,04,6 LTS с процессором AMD Rvzen 5500U (6 физических и 12 логических ядер), 8 Гб оперативной памяти, работающей на частоте 3200 МГц.
2,1, Анализ результатов. Наиболее эффективным с точки зрения размера итоговой модели оказался метод DRGEP, что обусловлено особенностями его алгоритма. После анализа путей от целевых веществ и поиска максимального значечния, производится удаление веществ, значение «длины» пути у которых не превосходит заданный порог. Таким образом, данный метод напрямую удаляет вещества, в то время как другие методы в некотором роде делят граф на классы связности и оставляют те, в которых имеются целевые вещества.
Просматривая результаты, можно заметить, что во многих случаях увеличение максимальной заданной ошибки не приводит к росту уменьшения модели. Для примера рас-
Таблица 3
Результаты модели (,НК('К_'21)1):>_Т() I"_IГ Г
МЕ Б1ШЕР РЕА
БА ИА Е Т БА ИА Е Т БА ИА Е т
0.1 267 9093 0.01 116.92 170 4254 0.09 99.74 269 9263 0.01 71.82
0.2 267 9093 0.01 116.79 164 4159 0.17 106.45 269 9263 0.01 72.50
0.3 267 9093 0.01 117.08 164 4159 0.17 106.67 269 9263 0.01 71.62
0.4 246 7550 0.34 61.29 164 4159 0.17 107.04 231 6972 0.31 86.74
0.5 246 7550 0.34 61.18 153 3854 0.48 134.95 231 6972 0.31 86.80
0.6 124 2526 0.27 78.30 153 3854 0.48 134.65 123 2417 0.36 121.99
0.7 124 2526 0.27 79.17 153 3854 0.48 133.91 118 2394 0.63 131.74
0.8 124 2526 0.27 78.55 126 2832 0.42 97.54 118 2394 0.63 131.42
0.9 124 2526 0.27 78.33 114 2461 0.37 110.45 118 2394 0.63 132.61
1.0 124 2526 0.27 79.12 114 2461 0.37 110.27 118 2394 0.63 132.30
5.0 124 2526 0.27 85.88 102 1894 3.56 85.09 118 2394 0.63 142.82
10.0 102 1908 5.83 154.00 102 1894 3.56 74.75 93 1663 5.59 232.74
Таблица 4
Результаты модели < 1? 1 .<'К НК? Г1Ч11 1 Г А)Х
МЕ Б1ШЕР РЕА
БА ИА Е Т БА ИА Е Т БА ИА Е Т
0.1 238 6277 0.02 71.70 176 4294 0.05 61.5 239 6316 0.01 40.97
0.2 236 6271 0.12 77.91 168 4176 0.14 66.64 239 6316 0.01 41.30
0.3 236 6271 0.12 78.18 168 4176 0.14 66.43 239 6316 0.01 41.62
0.4 230 5750 0.37 36.31 168 4176 0.14 71.90 216 5166 0.37 53.38
0.5 230 5750 0.37 37.26 161 3955 0.46 84.25 216 5166 0.37 52.97
0.6 202 4613 0.57 41.56 161 3955 0.46 82.45 201 4611 0.57 57.98
0.7 202 4613 0.57 40.96 161 3955 0.46 82.81 201 4611 0.57 58.29
0.8 202 4613 0.57 40.86 132 2950 0.28 64.41 201 4611 0.57 58.01
0.9 202 4613 0.57 41.31 132 2950 0.28 64.53 201 4611 0.57 58.73
1.0 202 4613 0.57 41.35 132 2950 0.28 64.49 201 4611 0.57 58.33
5.0 146 3003 1.18 50.79 116 2340 1.78 48.21 135 2734 1.32 95.19
10.0 109 2093 6.04 93.41 116 2340 1.78 47.08 100 1754 9.78 178.30
смотрим первую модель и метод БЕС, При максимальной заданной ошибке со значением от 0,6 до 1,0 включительно уменьшенная модель получилась одинаковой. Вызвано это тем, что стартовое значение порога подобрано одинаковым, и увеличение порога на последнем шаге во всех случаях вызвало рост ошибки, превышающий заданный порог. Тем самым программа выбрала в качестве итоговой модель, полученную на предпоследнем шаге, ошибка которой удовлетворяет заданному критерию,
В результатах анализа моделей 2 и 3 для метода 1)Н(1К1' (и не только этих моделей и данного метода) можно заметить, что ошибка уменьшенной модели в какой-то момент стала меньше, хотя заданная максимальная увеличилась. Это закономерно, поскольку удаление веществ может привести как к задержке момента самовоспламенения, так и приближению его. Таким образом, в некоторых случаях удаление дополнительного набора веществ оказало эффект, противоположный предыдущему уменьшению модели, произошедшему при меньшем заданном пороге ошибки.
По результатам моделей 1, 3 (они нагляднее) можно заметить немонотонное поведение значения времени выполнения программы при роете заданной максимальной ошибки для некоторых методов. Объясняется это тем, что программа при малых значениях максимальной ошибки (пример 0,1-0,2 для метода DRG и модели 1) дольше подбирала начальное пороговое значение из-за большего количества итераций подбора и, как следствие, большего количества проведенных симуляций процесса самовоспламенения. Также меньшее значение инкремента порога, которое равно подобранному начальному, привело к большему количеству итераций и симуляций. Если рассматривать большие значения заданной ошибки (тот же случай, только со значением ошибки 5,0), то в данном случае причиной является большое количество итераций увеличения порога и подбора более уменьшенной модели.
Заключение, Подводя итоги, можно выделить преимущества и недостатки pvMARS,
Недостатки:
1) Формирование графа для последующей редукции в формате матрицы смежности
размера пхп. Данная особенность не позволяет хранить большие модели химкинетики
2
альтернативы, устраняющей данный недостаток, стоило бы использовать CSR или CSS форматы хранения матрицы. Они отлично подходят для хранения разреженных матриц, оптимизируя потребление памяти,
2) Реализация алгоритмов редукций на языке Python, Одна из особенностей языка Python — низкая скорость работы по сравнению с такими языками, как C/C++, что очевидным образом отражается на скорости работы алгоритмов,
3) Отсутствие поддержки со стороны разработчика. Как упоминалось ранее, последнее обновление происходило в 2019 г., поэтому в настоящее время программный комплекс не работает должным образом из-за несовместимости интерфейсов зависимостей последних версий, используемых данным программным комплексом,
4) Отсутствие поддержки пользовательских методов определения ошибки. Данная особенность не позволяет встраивать альтернативные методы оценки ошибки редуцированной модели, которые были бы более подходящими в соответствии с исследовательскими целями пользователя,
5) Отсутствие поддержки нового формата хранения моделей химической кинетики Cantera, В последние несколько лет Cantera использует новый формат хранения моделей на основе YAML формата, К сожалению, отсутствуют инструменты конвертирования нового формата в старый, который поддерживает pvMARS, Это не позволяет пользователю использовать pvMARS с новыми моделями.
6) Невозможность ручного выставления значения порога отсечения. Это не позволяет пользователю вручную подбирать значение для достижения лучшего результата редуцирования.
Преимущества:
1) Реализация алгоритма подбора порога. Данная особенность позволяет использовать pvMARS с высокой эффективностью без необходимости длительного подбора порога.
2) Реализация на языке Python. Вследствие большой популярности языка разработчики способны проанализировать код данной программы, а в дальнейшем поддерживать его при необходимости или использовать.
3) Полностью открытая лицензия М ГГ. Такая лицензия позволяет использовать программу и изменять ее код в любых целях и при любых условиях.
Список литературы
1. Ra Y., Reitz R. D. A reduced chemical kinetic model for 1С engine combustion simulations with primary reference fuels // Combustion and Flame. 2008. V. 155. N 4. P. 713-738. [El. Res.]: https://doi.org/10.1016/j.combustflame.2008.05.002.
2. Lu Т., Law С. K. A directed relation graph method for mechanism reduction // Proc. of the Combustion Institute. 2005. V. 30, iss. 1. P. 1333-1341. DOI: 10.1016/j.proci.2004.08.145.
3. Pepiot-Desjardins P., Pitsch H. An efficient error-propagation-based reduction method for large chemical kinetic mechanisms // Combustion and Flame. 2008. V. 154. N 1-2. P. 67-81. DOI: 10.1016/j.combustflame.2007.10.020.
4. Niemever К. E., Sung C.-J. On the importance of graph search algorithms for DRGEP-based mechanism reduction methods // Combustion and Flame. 2011. V. 158, iss. 8. P. 1439-1443. DOI: 10.1016/j.combustflame.2010.12.010.
5. Sun W., Chen Z., Gou X., Ju Y. A path flux analysis method for the reduction of detailed chemical kinetic mechanisms // Combustion and Flame. 2010. V. 157. N 7. P. 1298-1307. DOI: 10.1016/j.combustflame.2010.03.006.
6. Gao X., Yang S., Sun W. A global pathway selection algorithm for the reduction of detailed chemical kinetic mechanisms // Combustion and Flame. 2016. V. 167. P. 238-247. DOI: 10.1016/j.combustflame.2016.02.007.
7. Niemever К. E., Sung C.-J., Raju M. P. Skeletal mechanism generation for surrogate fuels using directed relation graph with error propagation and sensitivity analysis // Combustion and Flame. 2010. V. 157. N 9. P. 1760-1770. DOI: 10.1016/j.combustflame.2009.12.022.
8. Rabitz H., Kramer M., Dacol D. Sensitivity analysis in chemical kinetics // Annual Review of Physical Chemistry. 1983. V. 34. N 1. P. 419-461* D01:10.1146/annurev.pc.34.100183.002223.
9. Zheng X., Lu Т., Law С. K. Experimental counterflow ignition temperatures and reaction mechanisms of 1,3-butadiene // Proc. of the Combustion Institute. 2007. V. 31, iss. 1. P. 367-375. DOI: 10.1016/j.proci.2006.07.182.
10. Sankaran R., Hawkes E. R., Chen J. H., Lu Т., Law С. K. Structure of a spatially developing turbulent lean methane — air bunsen flame // Proc. of the Combustion Institute. 2007. V. 31, iss. 1. P. 1291-1298. DOI: 10.1016/j.proci.2006.08.025.
11. Mauersberger G. ISS A (iterative screening and structure analysis) — a new reduction method and its application to the tropospheric cloud chemical mechanism RACM/CAPRAM2.4 // Atmospheric Environment. 2005. V. 39, iss. 23-24. P. 4341-4350. DOI: 10.1016/j.atmosenv.2005.02.015.
12. Pepiot-Desjardins P., Pitsch H. An automatic chemical lumping method for the reduction of large chemical kinetic mechanisms // Combustion Theory and Modelling. 2008. V. 12, iss. 6. P. 10891108. DOI: 10.1080/13647830802245177.
13. Zeuch Т., Могёас G., Ahmed S., Mauss F. A comprehensive skeletal mechanism for the oxidation of n-heptane generated by chemistry-guided reduction // Combustion and Flame. 2008. V. 155. P. 651— 674. DOI: 10.1016/j.combustflame.2008.05.007.
14. Tosatto L., Bennett В. A. V., Smooke M. D. Comparison of different DRG-based methods for the skeletal reduction of JP-8 surrogate mechanisms // Combustion and Flame. 2013. V. 160. P. 1572-1582. [El. Res.]: https://doi.Org/10.1016/j.combustflame.2013.03.024.
15. The Kinetic Pre-Processor (KPP). [El. Res.]: https://github.com/KineticPreProcessor/ KPP?tab=readme-ov-file.
16. Lin H., Long M. S., Sander R., Sandu A., Yantosca R. M., Estrada L. A., et al. An adaptive auto-reduction solver for speeding up integration of chemical kinetics in atmospheric chemistry models: Implementation and evaluation in the Kinetic Pre-Processor (KPP) version 3.0.0. // J. of Adv. Modeling Earth Systems. 2023. V. 15. e2022MS003293. [El. Res.]: https://doi.org/10.1029/ 2022MS003293.
17. [El. Res.]: https://www.opensmokepp.polimi.it/index.php.
18. Stagni A., Cuoci A., Frassoldati A., Faravelli T., Ranzi E. Lumping and reduction of detailed kinetic schemes: An effective coupling // Indust. Engin. Chem. Res. 2014. V. 53, iss. 22. P. 9004-9016. DOI: 10.1021 /ie403272f.
19. [El. Res.]: http://kintecus.com/index.htm.
20. Ianni J. C. Kintecus, Windows Version 6.01. 2017. [El. Res.]: www.kintecus.com.
21. Ianni J. C. A Comparison of the Bader — Deuflhard and the Cash — Karp Runge — Kutta Integrators for the GRI-MECH 3.0 model based on the chemical kinetics code kintecus // Comput. Fluid and Solid Mechanics. 2003 / K.J. Bathe (ed.). P. 1368-1372.
22. [El. Res.]: https://github.com/Niemeyer-Research-Group/pyMARS.
23. [El. Res.]: https://niemeyer-research-group.github.io/pyMARS.
24. Niemeyer K. E., Mestas P. O., Clayton P. pyMARS: an open software package for reducing chemical kinetics models // 10th Meeting of the Western States Section of The Combustion Institute. Laramie, WY USA, 2017.
25. Mestas III P. O., Clayton P., Niemeyer K. E. pyMARS: Automatically reducing chemical kinetic models in Python // J. of Open Source Software. 2019. V. 4, iss. 41. P. 1543. DOI: 10.21105.joss.01543.
26. Mestas III P. O. Comparing chemical kinetic model reduction techniques using pyMARS //A THESIS submitted to Oregon State University University Honors College, 2020.
27. Goodwin D. G., Moffat H. K., Speth R. L. Cantera: An object-oriented software toolkit for chemical kinetics, thermodynamics, and transport processes. [El. Res.]: http://www.cantera.org. Version 2.3.0. 2017.
28. Lu T., Law C. K. Linear time reduction of large kinetic mechanisms with directed relation graph: n-heptane and iso-octane // Combustion and Flame. 2006. V. 144, iss. 1-2. P. 24-36. DOI: 10.1016/j.combustflame.2005.02.015.
29. Dijkstra E. W. A note on two problems in connexion with graphs // Numerische Mathematik. 1959. V. 1, iss. 1. P. 269-271. DOI: 10.1007/bf01386390.
30. Wagner D., Willhalm T. Speed-up techniques for shortest-path computations // STACS 2007. Ed. by W. Thomas, P. Weil. Lecture Notes in Computer Science. Berlin, Heidelberg: Springer, 2007. V. 4393. P. 23-36. DOI:10.1007/978-3-540-70918-3_3.
31. Hagberg A. A., Schult D. A., Swart P. J. Exploring network structure, dynamics, and function using NetworkX // Proc. of the 7th Python in Science Conference. Ed. by G. Varoquaux, T. Vaught, J. Millman. Pasadena, CA USA, 2008. P. 11-15.
32. The CRECK Modeling Group. Detailed kinetic mechanisms. [El. Res.]: http:// creckmodeling.chem.polimi.it/menu-kinetics/menu-kinetics-detailed-mechanisms/.
Герб Артем Родионович — аспирант Института вычислительной математики и математической геофизики СО РАН; e-mail: gerb-artem@mail. ru.
Gerb Artem is a
postgraduate student of the Institute of Computational Mathematics and Mathematical Geophysics SB RAS. Graduated from Novosibirsk State University's Math Faculty in 2023.
Девятых Егор Евгеньевич — студент 4-го курса Механико-математического факультета Новосибирского государственного университета; e-mail: klasifate@gmail.com.
Devyatykh Egor is a 4th year student of the Mechanics and Mathematics Faculty of Novosibirsk State University, a graduate of the Specialized Educational and Scientific Center of Novosibirsk State University.
Омарова Гульзира Али-мовна — канд. физ.-мат. наук, науч. сотр. Института вычислительной математики и математической геофизики СО РАН; e-mail: gulzira@rav. sscc.ru.
Omarova Gulzira is PhD in Physics and Mathematics, Research Fellow at the Institute of Computational Mathematics and Mathematical Geophysics SB RAS.
Дата поступления — 02.05.2024