Команда разработчиков набора библиотек и инструментов Cantera, предназначенных для решения задач химической кинетики, термодинамики и процессов переноса, рада объявить о выпуске Cantera 3.0.0. С момента появления предыдущей версии Cantera 2.6.0 в мае 2022 г. внесено 1400 изменений, принято 192 запросов на изменение кода и исправлено 111 ошибок.
Основные изменения
-
Значительно улучшена производительность вычислений для сети реакторов при использовании больших кинетических механизмов. Это удалось реализовать благодаря новой формулировке управляющих уравнений для реактора, используемой совместно с итерационным решателем для разреженных матриц в интеграторе обыкновенных дифференциальных уравнений (ОДУ). Интегратор ОДУ при этом использует полуаналитический метод вычисления якобиана, а новая формулировка управляющих уравнений опирается на использование мольных долей компонентов (а не массовых долей).
-
Добавлен класс
ExtensibleRate
для интерфейса на языке программирования Python, который можно использовать для реализации новых способов описания скоростей реакции с помощью параметров заданных во входных YAML-файлах. Такие типы задания скоростей могут быть использованы даже если основное пользовательское приложение не написано на языке Python. -
Добавлен класс
SolutionArray
для языка программирования C++, который теперь используется как основа для реализации аналогичного класса для интерфейса для языка программирования Python. -
Добавлена поддержка HDF5 для задания входных/выходных данных для класса
SolutionArray
и одномерных пламён. -
Добавлена новая термодинамическая модель
coverage-dependent-surface
для описания поверхностей на которых энтальпия, энтропия и теплоёмкость каждого компонента может зависеть от покрытия поверхности и других компонентов покрытия в данной фазе. -
Добавлена поддержка поверхностных химических реакций для модели реактора идеального вытеснения.
-
Добавлена поддержка моделей состояния реального газа Редлиха-Квонга и Пенга-Робинсона для реактора одномерного пламени.
-
Реализован скрипт
yaml2ck
для преобразования кинетического механизма в формате Cantera YAML в формат Chemkin описания кинетического механизма. -
Добавлен экспериментальный модуль для интерфейса на языке Python, который позволяет Cantera возвращать размерные величины значений (с помощью пакета
pint
). Данная возможность на текущий момент поддерживается только для термодинамических методов интерфейса для языка программирования Python. -
Добавлена предварительная реализация нового интерфейса для языка Matlab, с переписанным API. Она позволяет использовать новые возможности языка Matlab и заменить сложную для поддержки реализацию, основанную на формате MEX-файла, реализацией основанной на вызове
calllib
для взаимодействия напрямую с интерфейсом Cantera для языка C. -
Добавлен предварительная реализация интерфейса для языка C#.
Помимо этого добавлены другие новые возможности для ранее реализованных классов и их методов, исправлен ряд ошибок.
>>> Подробности